var System,ExceptionTypeEnum,NineYi;(function(n){var t;(function(){angular.module("NineYi.Mall",[])})(t=n.Mall||(n.Mall={}))})(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Providers",[])})(t=n.Providers||(n.Providers={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Values",[])})(t=n.Values||(n.Values={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Controllers",["NineYi.Mall.Values","NineYi.Mall.Services","NineYi.Mall.Factories","NineYi.Mall.Providers","NineYi.Mall.Utilities","NineYi.Mall.Templates","LocalStorageModule","facebook","ngCookies","NineYi.Theme.Components","KleeJs","vcRecaptcha","ngMessages"])})(t=n.Controllers||(n.Controllers={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Directives",["ngAnimate","NineYi.Mall.Utilities","NineYi.Mall.Templates","NineYi.Mall.Providers","facebook"])})(t=n.Directives||(n.Directives={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Filters",[])})(t=n.Filters||(n.Filters={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Factories",[])})(t=n.Factories||(n.Factories={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Inteceptors",["NineYi.Mall.Utilities","NineYi.Mall.Configs"])})(t=n.Inteceptors||(n.Inteceptors={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Services",["NineYi.Mall.Configs","NineYi.Mall.Inteceptors","ui.bootstrap","ui.bootstrap.tpls"])})(t=n.Services||(n.Services={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Utilities",["cfp.loadingBar"])})(t=n.Utilities||(n.Utilities={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Templates",[])})(t=n.Templates||(n.Templates={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Theme.Components",["NineYi.Mall.Values","NineYi.Mall.Services","NineYi.Mall.Factories","NineYi.Mall.Inteceptors","NineYi.Mall.Utilities","NineYi.Mall.Templates","LocalStorageModule","facebook","ngCookies"])})(t=n.Components||(n.Components={}))})(t=n.Theme||(n.Theme={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.SetData=function(n){this.Data=n},n.prototype.$get=function(){return this.Data},n}();n.DataProvider=t})(t=n.Providers||(n.Providers={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Configs",["facebook","ngSanitize","pascalprecht.translate"]).value("Mall.Config",{enableAndroidHelper:!0,familyDomain:"tw.91app.com",familyUrl:"https://Mfme.map.com.tw/default.asp",familyUrlV2:"https://ecmfme.map.com.tw/ReceiveOrderInfo.aspx",sevenElevenDomain:"tw.91app.com",sevenElevenUrl:"https://emap.presco.com.tw/c2cemap.ashx",sevenElevenUrl_ForMobile:"https://emap.presco.com.tw/c2cemapm-u.ashx",sevenElevenTCatPickupUrl:"https://appservice.ezcat.com.tw/Map.aspx",sevenElevenTCatPickupUrl_ForMobile:"https://appservice.ezcat.com.tw/MobileMap.aspx",hiLifeDomain:"tw.91app.com",hiLifeUrl:"https://ecmap.hilife.com.tw/ecmap.aspx",webapiUrl:"//tw.91app.com/webapi",exceptionLogUrl:"https://logging.91app.io/webapi/exception",trackServiceEnable:!0,env:"prod",mallUrlPattern:/^(tw.91app.com|loadtest\.mobileweb\.91sandbox\.tw)$/,dataVersion:"0",lazyLoadDelay:3e3,imageQuality:30,scoreThreshold:.8,cookieExpireTimeForFR:864e5,cookieExpireTimeForFR2:864e5,cookieExpireTimeForACT:1728e5,allSalePageCategoryId:0}).config(["$logProvider","$compileProvider",function(n,t){n.debugEnabled(!1);t.debugInfoEnabled(!1)}]).config(["FacebookProvider",function(n){n.init({appId:"253515678092814",locale:"zh_TW",version:"v2.9"})}])})(t=n.Configs||(n.Configs={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var i=function(){function n(){}return n.ChineseAndEnglish=/^[\u4e00-\u9fa5_a-zA-Z]+$/,n.Chinese=/^[\u3400-\u4DB5\u4e00-\u9fa5]+$/,n.Email=/\S+@\S+\.\S+/,n.NumberOnly=/^[0-9]*$/,n.NumberAndEnglish=/^[A-Za-z0-9]+$/,n.Phone=/^09[0-9]{8}$/,n.Date=/^\d{4}\/\d{2}\/\d{2}$/,n.Time=/^([0-1]?[0-9]|2[0-3])?(:[0-5][0-9])?(:[0-5][0-9])$/,n.CreditCardMonth=/^(0[1-9]|1[0-2])$/,n.CreditCardNo=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14})$/,n.CheckCreditCardNoCanNext=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14})$/,n.AECreditCardNo=/^ $/,n.CreditCardFrontFourNo=/^(5[1-5][0-9]{2}|4[0-9]{3}|3[0-9]{3}|6011)$/,n.CreditCardCVV=/^\d{3}$/,n.AECreditCardCVV=/^ $/,n.BankAccount=/^[0-9]{10,14}$/,n.SpecialCharacter=/^[^~!@#$%^&*()_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasAddress=/^[^!@#$%^&*_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasZipCode=/^[0-9a-zA-Z\s\-.,#\/]+$/,n.OverseasNameChineseAndEnglish=/^[\u3400-\u4DB5\u4e00-\u9fa5a-zA-Z\s\-]+$/,n.OverseasAddressChineseAndEnglish=/^[\u4e00-\u9fa5a-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressJapaneseAndEnglish=/^[\u3040-\u309f\u30a0-\u30ff\u4e00-\u9ffca-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressChinese=/^[\u4e00-\u9fa5a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.OverseasAddressEnglish=/^[a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.Telephone=/^[\d\s*\-+#()]+$/,n.EnglishName=/^[a-zA-Z\s\-]+$/,n}(),t,r;n.RegexPattern=i;t=function(){function n(){}return n.ChineseAndEnglish=/^[\u4e00-\u9fa5_a-zA-Z]+$/,n.Chinese=/^[\u3400-\u4DB5\u4e00-\u9fa5]+$/,n.Email=/\S+@\S+\.\S+/,n.NumberOnly=/^[0-9]*$/,n.NumberAndEnglish=/^[A-Za-z0-9]+$/,n.Phone=/^([1|4|5|6|7|8|9])\d{7}$/,n.Date=/^\d{4}\/\d{2}\/\d{2}$/,n.Time=/^([0-1]?[0-9]|2[0-3])?(:[0-5][0-9])?(:[0-5][0-9])$/,n.CreditCardMonth=/^(0[1-9]|1[0-2])$/,n.CreditCardNo=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14}|3[47][0-9]{13})$/,n.CheckCreditCardNoCanNext=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14}|3[47][0-9]{13})$/,n.AECreditCardNo=/^3[47][0-9]{13}$/,n.CreditCardFrontFourNo=/^[0-9]{4}$/,n.CreditCardCVV=/^\d{3}$/,n.AECreditCardCVV=/^\d{4}$/,n.BankAccount=/^[0-9]{10,14}$/,n.SpecialCharacter=/^[^~!@#$%^&*()_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasAddress=/^[^!@#$%^&*_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasZipCode=/^[0-9a-zA-Z\s\-.,#\/]+$/,n.OverseasNameChineseAndEnglish=/^[\u3400-\u4DB5\u4e00-\u9fa5a-zA-Z\s\-]+$/,n.OverseasAddressChineseAndEnglish=/^[\u4e00-\u9fa5a-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressJapaneseAndEnglish=/^[\u3040-\u309f\u30a0-\u30ff\u4e00-\u9ffca-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressChinese=/^[\u4e00-\u9fa5a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.OverseasAddressEnglish=/^[a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.Telephone=/^[\d\s*\-+#()]+$/,n.EnglishName=/^[a-zA-Z\s\-]+$/,n}();n.HKRegexPattern=t;r=function(){function n(){}return n.ChineseAndEnglish=/^[\u4e00-\u9fa5_a-zA-Z]+$/,n.Chinese=/^[\u3400-\u4DB5\u4e00-\u9fa5]+$/,n.Email=/\S+@\S+\.\S+/,n.NumberOnly=/^[0-9]*$/,n.NumberAndEnglish=/^[A-Za-z0-9]+$/,n.Phone=/^0?1\d{8,9}$/,n.Date=/^\d{4}\/\d{2}\/\d{2}$/,n.Time=/^([0-1]?[0-9]|2[0-3])?(:[0-5][0-9])?(:[0-5][0-9])$/,n.CreditCardMonth=/^(0[1-9]|1[0-2])$/,n.CreditCardNo=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14})$/,n.CheckCreditCardNoCanNext=/^(4[0-9]{15}|5[1-5][0-9]{14}|6011[0-9]{12}|35[0-9]{14})$/,n.AECreditCardNo=/^ $/,n.CreditCardFrontFourNo=/^(5[1-5][0-9]{2}|4[0-9]{3}|3[0-9]{3}|6011)$/,n.CreditCardCVV=/^\d{3}$/,n.AECreditCardCVV=/^ $/,n.BankAccount=/^[0-9]{10,14}$/,n.SpecialCharacter=/^[^~!@#$%^&*()_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasAddress=/^[^!@#$%^&*_+=\\|\[\]{}<>?;:'"`]+$/,n.OverseasZipCode=/^[0-9a-zA-Z\s\-.,#\/]+$/,n.OverseasNameChineseAndEnglish=/^[\u3400-\u4DB5\u4e00-\u9fa5a-zA-Z\s\-]+$/,n.OverseasAddressChineseAndEnglish=/^[\u4e00-\u9fa5a-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressJapaneseAndEnglish=/^[\u3040-\u309f\u30a0-\u30ff\u4e00-\u9ffca-zA-Z0-9\s\-&.,#\/]+$/,n.OverseasAddressChinese=/^[\u4e00-\u9fa5a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.OverseasAddressEnglish=/^[a-zA-Z0-9\s()~\/\-&@,.#]+$/,n.Telephone=/^[\d\s*\-+#()]+$/,n.EnglishName=/^[a-zA-Z\s\-]+$/,n}();angular.module("NineYi.Mall.Configs").factory("RegexPattern",["DefaultCountry",function(n){switch(n){case"HK":return t;case"MY":return r;default:return i}}])})(t=n.Configs||(n.Configs={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){var n={DEFAULT:{Common:{CountryCode:"",ShowInvoice:!1,ShowTaxIdNumber:!1,ShowAddressBook:!0,ShowCreditCardList:!0,validateCellPhoneNumber:!1,PayProcessUrl:"/V2/GlobalPay",CountryName:"",ShowCustomerServiceCenter:!0},CreditCard:{CardNumberPlaceholder:"frontend.typescripts.component.ns_credit_card.card_number_placeholder",CardCvvPlaceholder:"frontend.typescripts.component.ns_credit_card.card_cvv_placeholder",CardCvvMaxLength:3},CancelAndReturnGoods:{ShowPrivacyPolicyMsg:!1,RequireIdNumber:!1,ShowCompanyAccount:!1,ShowBankFilter:!1,ShowBankBranchLabel:!1,ShowTemperature:!1,AddressDisabled:!1,CheckAccountLength:!1},TradesOrders:{ShowReorderBtn:!1,AccountLength:50},ShoppingCart:{ShowPayCurrency:!0},StorePickup:{PickupDay:"5"}},TW:{Common:{CountryCode:"886",ShowInvoice:!0,ShowTaxIdNumber:!0,ShowCreditCardList:!1,validateCellPhoneNumber:!0,PayProcessUrl:"/V2/Pay",CountryName:"taiwan"},CancelAndReturnGoods:{ShowPrivacyPolicyMsg:!0,RequireIdNumber:!0,ShowCompanyAccount:!0,ShowBankFilter:!0,ShowBankBranchLabel:!0,ShowTemperature:!0,CheckAccountLength:!0}},MY:{Common:{CountryCode:"60",ShowAddressBook:!1,ShowCreditCardList:!1,CountryName:"malaysia"},CancelAndReturnGoods:{AddressDisabled:!0,CheckAccountLength:!0},TradesOrders:{ShowReorderBtn:!0}},HK:{Common:{CountryCode:"852",ShowAddressBook:!1,CountryName:"hongkong",ShowCustomerServiceCenter:!1},CreditCard:{CardCvvPlaceholder:"frontend.typescripts.component.ns_credit_card.card_cvv_4_number_placeholder",CardCvvMaxLength:4},CancelAndReturnGoods:{ShowTemperature:!0,ShowBankFilter:!0},StorePickup:{PickupDay:"3"}},US:{Common:{CountryCode:"1",ShowAddressBook:!0,ShowCreditCardList:!1,validateCellPhoneNumber:!0,PayProcessUrl:"/V2/Pay",CountryName:"united states"},CreditCard:{CardNumberPlaceholder:"frontend.typescripts.component.ns_credit_card.card_number_placeholder",CardCvvPlaceholder:"frontend.typescripts.component.ns_credit_card.card_cvv_placeholder",CardCvvMaxLength:3},CancelAndReturnGoods:{ShowCompanyAccount:!1,ShowTemperature:!0,AddressDisabled:!0}},TH:{Common:{CountryCode:"66",ShowAddressBook:!0,ShowCreditCardList:!1,validateCellPhoneNumber:!0,PayProcessUrl:"/V2/Pay",CountryName:"thailand"},CreditCard:{CardNumberPlaceholder:"frontend.typescripts.component.ns_credit_card.card_number_placeholder",CardCvvPlaceholder:"frontend.typescripts.component.ns_credit_card.card_cvv_placeholder",CardCvvMaxLength:3},CancelAndReturnGoods:{ShowCompanyAccount:!1,ShowTemperature:!0,AddressDisabled:!0}}};angular.module("NineYi.Mall.Configs").factory("LocalizationConfig",["SalesMarketSettings",function(t){return angular.merge(n.DEFAULT,n[t.SalesMarket])}])})(t=n.Configs||(n.Configs={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.None=0]="None";n[n.Issued=1]="Issued";n[n.Sent=2]="Sent";n[n.Donated=3]="Donated";n[n.Prized=4]="Prized";n[n.Void=5]="Void"})(t=n.InvoiceStatusEnum||(n.InvoiceStatusEnum={}))})(t=n.Invoice||(n.Invoice={}))})(t=n.BE||(n.BE={}))})(t=n.ERP||(n.ERP={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.CancelOrderSlave=0]="CancelOrderSlave";n[n.ReturnGoodsOrderSlave=1]="ReturnGoodsOrderSlave";n[n.SalesOrderFee=2]="SalesOrderFee";n[n.SalesOrderSlave=3]="SalesOrderSlave"})(t=n.RefundRequestSourceDefEnum||(n.RefundRequestSourceDefEnum={})),function(n){n[n.CreditCard=0]="CreditCard";n[n.Remittance=1]="Remittance";n[n.LinePay=2]="LinePay";n[n.CathayPay=3]="CathayPay";n[n.JKOPay=4]="JKOPay";n[n.PXPay=5]="PXPay";n[n.CreditCardOnce_Stripe=6]="CreditCardOnce_Stripe";n[n.EWallet_PayMe=7]="EWallet_PayMe";n[n.Aftee=8]="Aftee";n[n.CreditCardOnce_CheckoutDotCom=9]="CreditCardOnce_CheckoutDotCom";n[n.icashPay=10]="icashPay";n[n.AliPayHK_EftPay=11]="AliPayHK_EftPay";n[n.WechatPayHK_EftPay=12]="WechatPayHK_EftPay";n[n.EasyWallet=13]="EasyWallet";n[n.PoyaPay=14]="PoyaPay";n[n.CreditCardOnce_Razer=15]="CreditCardOnce_Razer";n[n.CreditCardInstallment_Razer=16]="CreditCardInstallment_Razer";n[n.OnlineBanking_Razer=17]="OnlineBanking_Razer";n[n.TNG_Razer=18]="TNG_Razer";n[n.Boost_Razer=19]="Boost_Razer";n[n.GrabPay_Razer=20]="GrabPay_Razer";n[n.BoCPay_SwiftPass=21]="BoCPay_SwiftPass";n[n.Atome=22]="Atome";n[n.UnionPay_EftPay=23]="UnionPay_EftPay"}(i=n.RefundRequestTypeDefEnum||(n.RefundRequestTypeDefEnum={}))})(t=n.RefundRequest||(n.RefundRequest={}))})(t=n.BE||(n.BE={}))})(t=n.ERP||(n.ERP={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Ordering=0]="Ordering";n[n.Cancel=1]="Cancel"})(t=n.RegularOrderStatusDefEnum||(n.RegularOrderStatusDefEnum={}))})(t=n.RegularOrder||(n.RegularOrder={}))})(t=n.BE||(n.BE={}))})(t=n.ERP||(n.ERP={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.NormalReturn=1]="NormalReturn";n[n.CVSReturn=2]="CVSReturn";n[n.CustomerChoice=3]="CustomerChoice";n[n.EVoucher=4]="EVoucher"})(t=n.ReturnShippingTypeEnum||(n.ReturnShippingTypeEnum={}))})(t=n.ReturnGoodsOrder||(n.ReturnGoodsOrder={}))})(t=n.BE||(n.BE={}))})(t=n.ERP||(n.ERP={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.ByPrice=0]="ByPrice";n[n.ByPercent=1]="ByPercent";n[n.Gift=2]="Gift";n[n.FreeShippingByPrice=3]="FreeShippingByPrice";n[n.FreeShippingByPercent=4]="FreeShippingByPercent";n[n.FreeShipping=5]="FreeShipping"})(t=n.ECouponDiscountTypeDefEnum||(n.ECouponDiscountTypeDefEnum={}))})(t=n.ECoupon||(n.ECoupon={}))})(t=n.BE||(n.BE={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.WaitingToSetting=1]="WaitingToSetting";n[n.Open=2]="Open";n[n.Closed=4]="Closed";n[n.Suspend=8]="Suspend"})(t=n.ShopEnum||(n.ShopEnum={}))})(t=n.Shop||(n.Shop={}))})(t=n.BE||(n.BE={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r;(function(n){n[n.TooMuchUntake=0]="TooMuchUntake";n[n.TooMuchReturn=1]="TooMuchReturn";n[n.Dispute=2]="Dispute";n[n.Others=3]="Others"})(t=n.BlacklistCauseEnum||(n.BlacklistCauseEnum={})),function(n){n[n.Normal=0]="Normal";n[n.Invalid=1]="Invalid"}(i=n.BlacklistStatusEnum||(n.BlacklistStatusEnum={})),function(n){n[n.Mall=0]="Mall";n[n.Shop=1]="Shop"}(r=n.BlacklistTypeEnum||(n.BlacklistTypeEnum={}))})(t=n.Blacklist||(n.Blacklist={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Unknown=0]="Unknown";n[n.Desktop=1]="Desktop";n[n.Mobile=2]="Mobile"})(t=n.DeviceModeEnum||(n.DeviceModeEnum={}))})(t=n.Device||(n.Device={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f;(function(n){n[n.ECoupon=0]="ECoupon";n[n.Coupon=1]="Coupon"})(t=n.CampaignTypeDefEnum||(n.CampaignTypeDefEnum={})),function(n){n[n.Promotion=0]="Promotion";n[n.ECoupon=1]="ECoupon"}(i=n.ECouponCalculateTypeDefEnum||(n.ECouponCalculateTypeDefEnum={})),function(n){n[n.ByPrice=0]="ByPrice";n[n.ByPercent=1]="ByPercent";n[n.Gift=2]="Gift";n[n.FreeShippingByPrice=3]="FreeShippingByPrice";n[n.FreeShippingByPercent=4]="FreeShippingByPercent";n[n.FreeShipping=5]="FreeShipping"}(r=n.ECouponDiscountTypeDefEnum||(n.ECouponDiscountTypeDefEnum={})),function(n){n[n.All=0]="All";n[n.Online=10]="Online";n[n.Offline=20]="Offline"}(u=n.ECouponSlaveExchangeChannelTypeEnum||(n.ECouponSlaveExchangeChannelTypeEnum={})),function(n){n[n.All=1]="All";n[n.ECoupon=2]="ECoupon";n[n.GiftECoupon=3]="GiftECoupon";n[n.FreeShippingECoupon=4]="FreeShippingECoupon"}(f=n.ECouponTypeEnum||(n.ECouponTypeEnum={}))})(t=n.ECoupon||(n.ECoupon={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f;(function(n){n[n.TableReservation=1]="TableReservation";n[n.TakeoutOrDelivery=2]="TakeoutOrDelivery"})(t=n.CateringStoreServiceTypeEnum||(n.CateringStoreServiceTypeEnum={})),function(n){n[n.None=0]="None";n[n.Waiting=1]="Waiting";n[n.Seated=2]="Seated"}(i=n.TableReservationStateEnum||(n.TableReservationStateEnum={})),function(n){n[n.None=0]="None";n[n.Waiting=1]="Waiting";n[n.Booking=2]="Booking";n[n.Walkin=3]="Walkin"}(r=n.TableReservationTypeEnum||(n.TableReservationTypeEnum={})),function(n){n[n.None=0]="None";n[n.Takeout=1]="Takeout";n[n.Delivery=2]="Delivery"}(u=n.TakeoutOrDeliveryOrderTypeEnum||(n.TakeoutOrDeliveryOrderTypeEnum={})),function(n){n[n.None=0]="None";n[n.New=1]="New";n[n.Accepted=2]="Accepted";n[n.Ready=3]="Ready";n[n.Pickedup=4]="Pickedup";n[n.Cancelled=5]="Cancelled";n[n.CustomerCancelled=6]="CustomerCancelled"}(f=n.TakeoutOrDeliveryStateEnum||(n.TakeoutOrDeliveryStateEnum={}))})(t=n.Catering||(n.Catering={}))})(t=n.Gateway||(n.Gateway={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Credit=0]="Credit";n[n.OnlineBank=1]="OnlineBank";n[n.EWallet=2]="EWallet"})(t=n.GlobalPayTypeEnum||(n.GlobalPayTypeEnum={}))})(t=n.GlobalPay||(n.GlobalPay={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Album=0]="Album";n[n.Article=1]="Article";n[n.Video=2]="Video"})(t=n.InfoModuleTypeEnum||(n.InfoModuleTypeEnum={}))})(t=n.InfoModule||(n.InfoModule={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.ThreeCopies=0]="ThreeCopies";n[n.TwoCopies=1]="TwoCopies"})(t=n.InvoiceFormatTypeDefEnum||(n.InvoiceFormatTypeDefEnum={})),function(n){n[n.Electronic=0]="Electronic";n[n.Paper=1]="Paper"}(i=n.InvoiceTypeDefEnum||(n.InvoiceTypeDefEnum={}))})(t=n.Invoice||(n.Invoice={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.LINEAuth=0]="LINEAuth";n[n.PayFinish=1]="PayFinish";n[n.LineOABindingReferrer=2]="LineOABindingReferrer";n[n.LineLogin=3]="LineLogin";n[n.AppLineLogin=4]="AppLineLogin";n[n.LineExpressShoppingCart=5]="LineExpressShoppingCart";n[n.RegisterLineBinding=6]="RegisterLineBinding"})(t=n.TargetPageTypeEnum||(n.TargetPageTypeEnum={}))})(t=n.Line||(n.Line={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.All=0]="All";n[n.Domestic=1]="Domestic";n[n.Abroad=2]="Abroad"})(t=n.LocationPickupAreaTypeEnum||(n.LocationPickupAreaTypeEnum={})),function(n){n[n.None=0]="None";n[n.Finish=1]="Finish";n[n.ShippingArrived=2]="ShippingArrived"}(i=n.LocationPickupShippingOrderStatusEnum||(n.LocationPickupShippingOrderStatusEnum={}))})(t=n.LocationPickup||(n.LocationPickup={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Transaction=1]="Transaction";n[n.CustomerService=2]="CustomerService";n[n.Promotion=3]="Promotion";n[n.OthersTransaction=4]="OthersTransaction";n[n.ECouponExchange=5]="ECouponExchange";n[n.OmniTransaction=6]="OmniTransaction";n[n.SystemSchedule=9]="SystemSchedule";n[n.Extend=10]="Extend";n[n.UpgradeLevel=11]="UpgradeLevel";n[n.Migration=12]="Migration";n[n.GiftECouponExchange=13]="GiftECouponExchange";n[n.GiftECouponRefund=14]="GiftECouponRefund";n[n.PromotionReward=15]="PromotionReward";n[n.PromotionRewardStore=16]="PromotionRewardStore";n[n.MemberMergeAccount=17]="MemberMergeAccount";n[n.MemberPresentReward=18]="MemberPresentReward"})(t=n.LoyaltyPointOccurTypeEnum||(n.LoyaltyPointOccurTypeEnum={}))})(t=n.LoyaltyPoints||(n.LoyaltyPoints={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.None=0]="None";n[n.Success=1]="Success";n[n.OverQuota=2]="OverQuota"})(t=n.CampaignStatusEnum||(n.CampaignStatusEnum={}))})(t=n.Enums||(n.Enums={}))})(t=n.MemberInvite||(n.MemberInvite={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.Normal=0]="Normal";n[n.Return=1]="Return"})(t=n.PurchaseTypeEnum||(n.PurchaseTypeEnum={})),function(n){n[n.Normal=0]="Normal";n[n.Gift=1]="Gift";n[n.Coupon=2]="Coupon";n[n.Other=3]="Other";n[n.Ignored=4]="Ignored";n[n.Others=5]="Others";n[n.Point=6]="Point"}(i=n.TypeMemoEnum||(n.TypeMemoEnum={}))})(t=n.MemberRetailStoreOrder||(n.MemberRetailStoreOrder={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f;(function(n){n[n.ShippingFee=0]="ShippingFee"})(t=n.MemberTradesOrderFeeTypeEnum||(n.MemberTradesOrderFeeTypeEnum={})),function(n){n[n.YahooMall=1]="YahooMall";n[n.Rakuten=8]="Rakuten";n[n.Official=33]="Official"}(i=n.MemberTradesOrderForThirdPartyOrderTypeEnum||(n.MemberTradesOrderForThirdPartyOrderTypeEnum={})),function(n){n[n.Success=0]="Success";n[n.Failure=1]="Failure"}(r=n.MemberTradesOrderForThirdPartyResponseStatusEnum||(n.MemberTradesOrderForThirdPartyResponseStatusEnum={})),function(n){n[n.OrderProcessing=1]="OrderProcessing";n[n.WaitingToCreditCheck=2]="WaitingToCreditCheck";n[n.ReturnGoodsRequesting=3]="ReturnGoodsRequesting";n[n.Cancel=4]="Cancel";n[n.ShippingProcessing=5]="ShippingProcessing";n[n.ShippingFinish=6]="ShippingFinish";n[n.ChangeGoodsRequesting=7]="ChangeGoodsRequesting";n[n.ChangeGoodsProcessing=8]="ChangeGoodsProcessing";n[n.ReturnGoodsProcessing=9]="ReturnGoodsProcessing";n[n.WaitingToShipping=10]="WaitingToShipping";n[n.RefundProcessing=11]="RefundProcessing";n[n.RefundFinish=12]="RefundFinish";n[n.StoreShippingArrived=13]="StoreShippingArrived";n[n.StoreShippingPickup=14]="StoreShippingPickup";n[n.StoreShippingOverdue=15]="StoreShippingOverdue";n[n.LocationShippingArrived=16]="LocationShippingArrived";n[n.LocationShippingPickup=17]="LocationShippingPickup";n[n.LocationShippingOverdue=18]="LocationShippingOverdue";n[n.CancelRequesting=19]="CancelRequesting";n[n.StoreDCShipping=20]="StoreDCShipping";n[n.ConfirmedToShipping=21]="ConfirmedToShipping";n[n.RefundFail=22]="RefundFail";n[n.WaitingToPay=23]="WaitingToPay";n[n.CashOnDeliveryDistributing=24]="CashOnDeliveryDistributing";n[n.CashOnDeliveryFinish=25]="CashOnDeliveryFinish";n[n.CashOnDeliveryFail=26]="CashOnDeliveryFail";n[n.PaymentFail=27]="PaymentFail";n[n.DeliveryFinish=28]="DeliveryFinish";n[n.DeliveryFail=29]="DeliveryFail";n[n.RetailStoreShippingArrived=30]="RetailStoreShippingArrived";n[n.RetailStoreShippingPickup=31]="RetailStoreShippingPickup";n[n.RetailStoreShippingOverdue=32]="RetailStoreShippingOverdue";n[n.StaffPickupFinish=33]="StaffPickupFinish";n[n.WaitingToCourierPickup=34]="WaitingToCourierPickup";n[n.Couriering=35]="Couriering";n[n.CourierFinish=36]="CourierFinish";n[n.CourierFail=37]="CourierFail";n[n.CourierOverdue=38]="CourierOverdue";n[n.Distributing=39]="Distributing"}(u=n.MemberTradesOrderOrderSlaveFlowStatusForUserEnum||(n.MemberTradesOrderOrderSlaveFlowStatusForUserEnum={})),function(n){n[n.UPC_A=0]="UPC_A";n[n.EAN_8=1]="EAN_8";n[n.EAN_13=2]="EAN_13";n[n.CODE_39=3]="CODE_39";n[n.CODE_128=4]="CODE_128";n[n.ITF=5]="ITF";n[n.CODABAR=6]="CODABAR";n[n.QR_CODE=7]="QR_CODE"}(f=n.ReturnGoodsCodeTypeEnum||(n.ReturnGoodsCodeTypeEnum={}))})(t=n.MemberTradesOrder||(n.MemberTradesOrder={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f,e;(function(n){n[n.Default=0]="Default";n[n.TopBottom=1]="TopBottom";n[n.Top=2]="Top";n[n.TopLeft=3]="TopLeft";n[n.Center=4]="Center"})(t=n.LayoutAreaDisplayEnum||(n.LayoutAreaDisplayEnum={})),function(n){n[n.Default=0]="Default";n[n.Index=1]="Index";n[n.ShoppingCar=2]="ShoppingCar";n[n.Activity=3]="Activity"}(i=n.LayoutTemplateTypeEnum||(n.LayoutTemplateTypeEnum={})),function(n){n[n.Category=0]="Category";n[n.Brand=1]="Brand";n[n.Payment=2]="Payment";n[n.MyAccount=3]="MyAccount";n[n.Empty=4]="Empty"}(r=n.LeftAsideTypeEnum||(n.LeftAsideTypeEnum={})),function(n){n[n.Activity=0]="Activity";n[n.Content=1]="Content";n[n.Image=2]="Image"}(u=n.OfficialShopLayoutTypeEnum||(n.OfficialShopLayoutTypeEnum={})),function(n){n[n.InProcess=0]="InProcess";n[n.Open=1]="Open";n[n.Closed=2]="Closed"}(f=n.OfficialShopStatusDefEnum||(n.OfficialShopStatusDefEnum={})),function(n){n[n.SelfOwned=0]="SelfOwned";n[n.SubDomain=1]="SubDomain"}(e=n.OfficialShopTypeDefEnum||(n.OfficialShopTypeDefEnum={}))})(t=n.Official||(n.Official={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f,e;(function(n){n[n.Unknown=0]="Unknown";n[n.Visa=1]="Visa";n[n.MasterCard=2]="MasterCard";n[n.AMEX=3]="AMEX";n[n.UnionPay=4]="UnionPay";n[n.JCB=5]="JCB"})(t=n.CreditCardBrandEnum||(n.CreditCardBrandEnum={})),function(n){n[n.NCCC=0]="NCCC";n[n.TapPay=1]="TapPay";n[n.Nine1Payment=2]="Nine1Payment";n[n.PaymentMiddleWare=3]="PaymentMiddleWare"}(i=n.PayProcessCreditCardGatewayTypeEnum||(n.PayProcessCreditCardGatewayTypeEnum={})),function(n){n[n.CreditCardProcess=0]="CreditCardProcess";n[n.ShopProcess=1]="ShopProcess";n[n.AtmProcess=2]="AtmProcess";n[n.CashOnDeliveryProcess=3]="CashOnDeliveryProcess";n[n.LinePayProcess=4]="LinePayProcess";n[n.GlobalPayProcess=5]="GlobalPayProcess";n[n.RegularOrderPayProcess=6]="RegularOrderPayProcess";n[n.CathayPayProcess=7]="CathayPayProcess";n[n.ThirdPartyProcess=8]="ThirdPartyProcess";n[n.JKOPayProcess=9]="JKOPayProcess";n[n.PXPayProcess=10]="PXPayProcess";n[n.FreeOfChargeProcess=11]="FreeOfChargeProcess";n[n.ApplePayProcess=12]="ApplePayProcess";n[n.AfteePayProcess=13]="AfteePayProcess";n[n.GooglePayProcess=14]="GooglePayProcess";n[n.CustomOfflinePaymentProcess=15]="CustomOfflinePaymentProcess";n[n.icashPayProcess=16]="icashPayProcess";n[n.EasyWalletProcess=17]="EasyWalletProcess";n[n.PoyaPayProcess=18]="PoyaPayProcess";n[n.AtomeProcess=19]="AtomeProcess";n[n.PXPayPlusProcess=20]="PXPayPlusProcess"}(r=n.PayProcessFlowTypeEnum||(n.PayProcessFlowTypeEnum={})),function(n){n[n.CancelOrder=0]="CancelOrder";n[n.PartialCancelOrder=1]="PartialCancelOrder"}(u=n.PayProcessOutOfStockTypeDefEnum||(n.PayProcessOutOfStockTypeDefEnum={})),function(n){n[n.Wait=1]="Wait";n[n.CheckOut=2]="CheckOut";n[n.Finish=4]="Finish";n[n.Error=8]="Error";n[n.All=15]="All"}(f=n.PayProcessTicketStatusEnum||(n.PayProcessTicketStatusEnum={})),function(n){n[n.Home=0]="Home";n[n.Shop=1]="Shop"}(e=n.PayProcessTypeEnum||(n.PayProcessTypeEnum={}))})(t=n.PayProcess||(n.PayProcess={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.CreditCardOnce=1]="CreditCardOnce";n[n.CreditCardInstallment=2]="CreditCardInstallment";n[n.Family=4]="Family";n[n.SevenEleven=8]="SevenEleven";n[n.ATM=16]="ATM";n[n.CashOnDelivery=32]="CashOnDelivery";n[n.LinePay=64]="LinePay";n[n.GlobalPay=128]="GlobalPay";n[n.CathayPay=256]="CathayPay";n[n.CreditCardOnce_Stripe=512]="CreditCardOnce_Stripe";n[n.JKOPay=1024]="JKOPay";n[n.PXPay=2048]="PXPay";n[n.FreeOfCharge=4096]="FreeOfCharge";n[n.ApplePay=8192]="ApplePay";n[n.EWallet_PayMe=16384]="EWallet_PayMe";n[n.Aftee=32768]="Aftee";n[n.HiLife=65536]="HiLife";n[n.GooglePay=131072]="GooglePay";n[n.CreditCardOnce_CheckoutDotCom=262144]="CreditCardOnce_CheckoutDotCom";n[n.icashPay=524288]="icashPay";n[n.CustomOfflinePayment=1048576]="CustomOfflinePayment";n[n.AliPayHK_EftPay=2097152]="AliPayHK_EftPay";n[n.WechatPayHK_EftPay=4194304]="WechatPayHK_EftPay";n[n.EasyWallet=8388608]="EasyWallet";n[n.PoyaPay=16777216]="PoyaPay";n[n.CreditCardOnce_Razer=33554432]="CreditCardOnce_Razer";n[n.CreditCardInstallment_Razer=67108864]="CreditCardInstallment_Razer";n[n.OnlineBanking_Razer=134217728]="OnlineBanking_Razer";n[n.TNG_Razer=268435456]="TNG_Razer";n[n.Boost_Razer=536870912]="Boost_Razer";n[n.GrabPay_Razer=1073741824]="GrabPay_Razer";n[n.BoCPay_SwiftPass=2147483648]="BoCPay_SwiftPass";n[n.Atome=4294967296]="Atome";n[n.UnionPay_EftPay=8589934592]="UnionPay_EftPay";n[n.PXPayPlus=17179869184]="PXPayPlus";n[n.All=34359738367]="All"})(t=n.PayProfileTypeDefEnum||(n.PayProfileTypeDefEnum={}))})(t=n.PayProfile||(n.PayProfile={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.All=1]="All";n[n.ECoupon=2]="ECoupon";n[n.GiftECoupon=3]="GiftECoupon";n[n.PromoCodeKOL=4]="PromoCodeKOL";n[n.FreeShippingECoupon=5]="FreeShippingECoupon";n[n.PromoCodeMGO=6]="PromoCodeMGO"})(t=n.PromoCodeTypeEnum||(n.PromoCodeTypeEnum={}))})(t=n.Enums||(n.Enums={}))})(t=n.PromoCode||(n.PromoCode={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r;(function(n){n[n.DiscountPrice=1]="DiscountPrice";n[n.DiscountRate=2]="DiscountRate";n[n.FixedPrice=4]="FixedPrice";n[n.FreeGift=8]="FreeGift";n[n.All=15]="All"})(t=n.PromotionConditionDiscountTypeV2Enum||(n.PromotionConditionDiscountTypeV2Enum={})),function(n){n[n.TotalPrice=1]="TotalPrice";n[n.TotalQty=2]="TotalQty";n[n.ReachQty=4]="ReachQty";n[n.TotalPriceV2=8]="TotalPriceV2";n[n.TotalQtyV2=16]="TotalQtyV2";n[n.CrmMemberTierTotalPrice=32]="CrmMemberTierTotalPrice";n[n.Region=64]="Region";n[n.All=63]="All"}(i=n.PromotionConditionTypeV2Enum||(n.PromotionConditionTypeV2Enum={})),function(n){n[n.Shop=1]="Shop";n[n.Category=2]="Category";n[n.SalePage=4]="SalePage";n[n.PromotionSalePage=8]="PromotionSalePage";n[n.All=15]="All"}(r=n.PromotionTargetTypeV2Enum||(n.PromotionTargetTypeV2Enum={}))})(t=n.Promotion||(n.Promotion={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u;(function(n){n[n.Normal=0]="Normal";n[n.DesignatePayment=1]="DesignatePayment"})(t=n.PromotionDisplayTypeEnum||(n.PromotionDisplayTypeEnum={})),function(n){n[n.Compatible=0]="Compatible";n[n.Incompatible=1]="Incompatible"}(i=n.PromotionEngineCalculateTypeDefEnum||(n.PromotionEngineCalculateTypeDefEnum={})),function(n){n[n.All=0]="All";n[n.MemberTier=1]="MemberTier"}(r=n.PromotionEngineTargetMemberTypeDefEnum||(n.PromotionEngineTargetMemberTypeDefEnum={})),function(n){n[n.DiscountNthPieceWithRate=1]="DiscountNthPieceWithRate";n[n.DiscountNthPieceWithPrice=2]="DiscountNthPieceWithPrice";n[n.DiscountNthPieceWithAmount=4]="DiscountNthPieceWithAmount";n[n.DiscountReachPieceWithPrice=8]="DiscountReachPieceWithPrice";n[n.DiscountReachPieceWithRate=16]="DiscountReachPieceWithRate";n[n.DiscountReachPieceWithAmount=32]="DiscountReachPieceWithAmount";n[n.DiscountReachPriceWithRate=64]="DiscountReachPriceWithRate";n[n.DiscountReachPriceWithAmount=128]="DiscountReachPriceWithAmount";n[n.DiscountReachGroupsPiece=256]="DiscountReachGroupsPiece";n[n.RewardReachPriceWithPoint=512]="RewardReachPriceWithPoint";n[n.RewardReachPriceWithRatePoint=1024]="RewardReachPriceWithRatePoint";n[n.PromoCodeKOLReachPriceAmount=2048]="PromoCodeKOLReachPriceAmount";n[n.PromoCodeKOLReachPriceRate=4096]="PromoCodeKOLReachPriceRate";n[n.PromoCodeKOLNoDiscount=8192]="PromoCodeKOLNoDiscount";n[n.FreeGiftReachPriceWithAmount=16384]="FreeGiftReachPriceWithAmount";n[n.PayTypeReachPriceWithAmount=32768]="PayTypeReachPriceWithAmount";n[n.PromoCodeMGOReachPriceAmount=65536]="PromoCodeMGOReachPriceAmount";n[n.PromoCodeMGOReachPriceRate=131072]="PromoCodeMGOReachPriceRate";n[n.AllDiscount=33279]="AllDiscount";n[n.AllReward=1536]="AllReward";n[n.AllPromoCode=210944]="AllPromoCode";n[n.AllPromoCodeMGO=196608]="AllPromoCodeMGO";n[n.All=262143]="All"}(u=n.PromotionEngineTypeEnum||(n.PromotionEngineTypeEnum={}))})(t=n.PromotionEngine||(n.PromotionEngine={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Nine1=0]="Nine1";n[n.GameBall=1]="GameBall"})(t=n.RegularOrderProviderTypeDefEnum||(n.RegularOrderProviderTypeDefEnum={}))})(t=n.RegularOrder||(n.RegularOrder={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.RetailStoreNotSupport=0]="RetailStoreNotSupport";n[n.Delivery=1]="Delivery";n[n.Pickup=2]="Pickup"})(t=n.LatestChosenServiceEnum||(n.LatestChosenServiceEnum={}))})(t=n.RetailStores||(n.RetailStores={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Hidden=0]="Hidden";n[n.NeverRequest=1]="NeverRequest";n[n.AlreadyRequest=2]="AlreadyRequest"})(t=n.ReturnGoodsInvoiceDescriptionEnum||(n.ReturnGoodsInvoiceDescriptionEnum={}))})(t=n.ReturnGoodsRequestV2||(n.ReturnGoodsRequestV2={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f;(function(n){n[n.Regular=1]="Regular";n[n.BuyOnce=2]="BuyOnce"})(t=n.RegularOrderOptionEnum||(n.RegularOrderOptionEnum={})),function(n){n[n.Normal=0]="Normal";n[n.Hidden=1]="Hidden"}(i=n.SalePageTypeEnum||(n.SalePageTypeEnum={})),function(n){n[n.Day=0]="Day"}(r=n.SaleProductDeliveryPeriodTypeEnum||(n.SaleProductDeliveryPeriodTypeEnum={})),function(n){n[n.Normal=1]="Normal";n[n.PreOrderWithStartDate=2]="PreOrderWithStartDate";n[n.CustomMade=3]="CustomMade";n[n.CustomerAppointment=4]="CustomerAppointment";n[n.PreOrderWithStartDateAndEndDate=5]="PreOrderWithStartDateAndEndDate";n[n.PreOrderWithWorkingDay=6]="PreOrderWithWorkingDay";n[n.RegularOrder=7]="RegularOrder";n[n.PartialPickup=8]="PartialPickup";n[n.RetailStore=9]="RetailStore";n[n.HybridRetailStore=10]="HybridRetailStore"}(u=n.SaleProductShippingTypeEnum||(n.SaleProductShippingTypeEnum={})),function(n){n[n.Normal=1]="Normal";n[n.Refrigerator=2]="Refrigerator";n[n.Freezer=3]="Freezer"}(f=n.SaleProductTemperatureTypeEnum||(n.SaleProductTemperatureTypeEnum={}))})(t=n.SalePage||(n.SalePage={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r;(function(n){n[n.MemberOnly=1]="MemberOnly";n[n.AppOnlyPromotion=2]="AppOnlyPromotion";n[n.ExclusiveLimit=4]="ExclusiveLimit";n[n.RegularOrder=8]="RegularOrder";n[n.BuyFreeGift=16]="BuyFreeGift";n[n.FreeShipping=32]="FreeShipping";n[n.PurchaseExtra=64]="PurchaseExtra";n[n.OverseasDelivery=128]="OverseasDelivery";n[n.All=255]="All"})(t=n.SalePageDisplayTagEnum||(n.SalePageDisplayTagEnum={})),function(n){n[n.Front=0]="Front";n[n.Last=1]="Last"}(i=n.SalePageVideoPositionTypeEnum||(n.SalePageVideoPositionTypeEnum={})),function(n){n[n.MainImage=0]="MainImage";n[n.SaleProductDesc=1]="SaleProductDesc"}(r=n.SalePageVideoTypeEnum||(n.SalePageVideoTypeEnum={}))})(t=n.SalePageV2||(n.SalePageV2={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.ES=0]="ES";n[n.DB=1]="DB"})(t=n.SearchDataSourceEnum||(n.SearchDataSourceEnum={}))})(t=n.Search||(n.Search={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.Free=0]="Free";n[n.OverPrice=1]="OverPrice";n[n.Fixed=2]="Fixed";n[n.WeightBilling=3]="WeightBilling"})(t=n.ShippingFeeTypeDefEnum||(n.ShippingFeeTypeDefEnum={})),function(n){n[n.Home=1]="Home";n[n.Family=2]="Family";n[n.SevenEleven=4]="SevenEleven";n[n.FamilyPickup=8]="FamilyPickup";n[n.SevenElevenPickup=16]="SevenElevenPickup";n[n.LocationPickup=32]="LocationPickup";n[n.CashOnDelivery=64]="CashOnDelivery";n[n.Oversea=128]="Oversea";n[n.PartialPickup=256]="PartialPickup";n[n.AlfredPickup=512]="AlfredPickup";n[n.CircleKPickup=1024]="CircleKPickup";n[n.RetailStorePickup=2048]="RetailStorePickup";n[n.RetailStoreDelivery=4096]="RetailStoreDelivery";n[n.HiLife=8192]="HiLife";n[n.HiLifePickup=16384]="HiLifePickup";n[n.SevenElevenTCatPickup=32768]="SevenElevenTCatPickup";n[n.DigitalDelivery=65536]="DigitalDelivery";n[n.All=131071]="All";n[n.DomesticShipping=65375]="DomesticShipping";n[n.PersonalDataShipping=4289]="PersonalDataShipping"}(i=n.ShippingProfileTypeDefEnum||(n.ShippingProfileTypeDefEnum={}))})(t=n.ShippingProfile||(n.ShippingProfile={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u;(function(n){n[n.MemberPersonalSection=0]="MemberPersonalSection";n[n.MobileWebSideBar=1]="MobileWebSideBar";n[n.WebTradesOrder=2]="WebTradesOrder";n[n.All=3]="All"})(t=n.CustomLinkShowPositionEnum||(n.CustomLinkShowPositionEnum={})),function(n){n[n.MemberPersonalSectionMemberSetting=0]="MemberPersonalSectionMemberSetting"}(i=n.CustomLinkShowSectonPositionEnum||(n.CustomLinkShowSectonPositionEnum={})),function(n){n[n.None=0]="None";n[n.Black=1]="Black";n[n.Blue=2]="Blue";n[n.Purple=3]="Purple";n[n.Pink=4]="Pink";n[n.Green=5]="Green";n[n.Grey=6]="Grey";n[n.Orange=7]="Orange";n[n.Peach=8]="Peach";n[n.Light=9]="Light";n[n.Red=10]="Red";n[n.Cyan=11]="Cyan"}(r=n.ShopHeaderStyleDefEnum||(n.ShopHeaderStyleDefEnum={})),function(n){n[n.Ordinary=0]="Ordinary";n[n.Main=1]="Main";n[n.Medium=2]="Medium";n[n.Small=3]="Small";n[n.Lite=4]="Lite";n[n.Free=5]="Free"}(u=n.ShopTypeDefEnum||(n.ShopTypeDefEnum={}))})(t=n.Shop||(n.Shop={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u,f;(function(n){n[n.All=0]="All";n[n.None=1]="None";n[n.Partial=2]="Partial"})(t=n.ShopCancelTypeEnum||(n.ShopCancelTypeEnum={})),function(n){n[n.MaxTotalPriceLimit=0]="MaxTotalPriceLimit";n[n.SafetyStock=1]="SafetyStock";n[n.ShopChangeGoods=2]="ShopChangeGoods";n[n.ShopPartialSetting=3]="ShopPartialSetting";n[n.ShopCancelGoods=4]="ShopCancelGoods";n[n.ShopCategory=5]="ShopCategory";n[n.ShopVipMemberDisplaySettings=6]="ShopVipMemberDisplaySettings";n[n.ShopMember=7]="ShopMember";n[n.HotSaleRanking=8]="HotSaleRanking";n[n.Facebook=9]="Facebook";n[n.ShopReturnGoods=10]="ShopReturnGoods";n[n.LoyaltyPoint=11]="LoyaltyPoint";n[n.Ecoupon=12]="Ecoupon";n[n.SalePage=13]="SalePage";n[n.StaticFile=14]="StaticFile";n[n.ShoppingCart=15]="ShoppingCart";n[n.PartialPickup=16]="PartialPickup";n[n.PublicNotice=17]="PublicNotice";n[n.Language=18]="Language";n[n.GlobalShipping=19]="GlobalShipping";n[n.Currency=20]="Currency";n[n.CustomerService=21]="CustomerService";n[n.Stock=22]="Stock";n[n.ShoppingCartBlacklist=23]="ShoppingCartBlacklist";n[n.Invoice=24]="Invoice";n[n.RegistrationSetting=25]="RegistrationSetting";n[n.RequiredProfile=26]="RequiredProfile";n[n.OptIn=27]="OptIn";n[n.GlobalPaySetting=28]="GlobalPaySetting";n[n.ResendVerifyCodeUseVoice=29]="ResendVerifyCodeUseVoice";n[n.ShopFunction=30]="ShopFunction";n[n.OfflineOrderDisplay=31]="OfflineOrderDisplay";n[n.MinTotalPriceLimit=32]="MinTotalPriceLimit";n[n.CreditCard=33]="CreditCard";n[n.CheckoutDotCom=34]="CheckoutDotCom";n[n.MemberTradesOrder=35]="MemberTradesOrder";n[n.BlacklistSetting=36]="BlacklistSetting";n[n.CustomOfflinePaymentSetting=37]="CustomOfflinePaymentSetting";n[n.PXRetailStore=38]="PXRetailStore";n[n.PromotionEngine=39]="PromotionEngine";n[n.ThirdPartyLogin=40]="ThirdPartyLogin";n[n.Nine1Payment=41]="Nine1Payment";n[n.VirtualProduct=42]="VirtualProduct";n[n.RegularOrder=43]="RegularOrder";n[n.RecaptchaEnt=44]="RecaptchaEnt";n[n.SecurityMask=45]="SecurityMask"}(i=n.ShopDefaultGroupTypeDefEnum||(n.ShopDefaultGroupTypeDefEnum={})),function(n){n[n.AllSalePageEnabled=0]="AllSalePageEnabled";n[n.ChangeGoodsEnabled=1]="ChangeGoodsEnabled";n[n.DisplayCount=2]="DisplayCount";n[n.DomainVerifyCode=3]="DomainVerifyCode";n[n.FamilyReturnEnabled=4]="FamilyReturnEnabled";n[n.PointExchangeECouponEnabled=5]="PointExchangeECouponEnabled";n[n.IsOrdersSplitByQty=6]="IsOrdersSplitByQty";n[n.CategoryNameOfWeRecommended=7]="CategoryNameOfWeRecommended";n[n.IsEmailRequired=8]="IsEmailRequired";n[n.IsRegularOrderEnable=9]="IsRegularOrderEnable";n[n.PeriodDef=10]="PeriodDef";n[n.SortingCondition=11]="SortingCondition";n[n.CollectGiftTargetSite=12]="CollectGiftTargetSite";n[n.AntiFraud=13]="AntiFraud";n[n.PartialPickupList=14]="PartialPickupList";n[n.PartialPickupHistory=15]="PartialPickupHistory";n[n.EasyParcelAPIKey=16]="EasyParcelAPIKey";n[n.IsDisplay=17]="IsDisplay";n[n.CurrencyDefault=18]="CurrencyDefault";n[n.CurrencySetting=19]="CurrencySetting";n[n.Default=20]="Default";n[n.Setting=21]="Setting";n[n.Contract=22]="Contract";n[n.ChannelTypeDef=23]="ChannelTypeDef";n[n.IsAppEmailRequired=24]="IsAppEmailRequired";n[n.OrderFailReturnStockEnabled=25]="OrderFailReturnStockEnabled";n[n.InvoiceIssueTypeDef=26]="InvoiceIssueTypeDef";n[n.IsBlacklistEnable=27]="IsBlacklistEnable";n[n.CheckTimeInterval=28]="CheckTimeInterval";n[n.CreditCardBlacklistThreshold=29]="CreditCardBlacklistThreshold";n[n.MemberBlacklistThreshold=30]="MemberBlacklistThreshold";n[n.NotBinCodeCardThreshold=31]="NotBinCodeCardThreshold";n[n.NotBinCodeMemberThreshold=32]="NotBinCodeMemberThreshold";n[n.IsBlockLocalUserNotInBinCode=33]="IsBlockLocalUserNotInBinCode";n[n.IsBlockOverseaUserNotInBinCode=34]="IsBlockOverseaUserNotInBinCode";n[n.CreditCard=35]="CreditCard";n[n.OnlineBank=36]="OnlineBank";n[n.EWallet=37]="EWallet";n[n.IsShowQuestionInsert=38]="IsShowQuestionInsert";n[n.RetailStorePickup=39]="RetailStorePickup";n[n.RetailStoreDelivery=40]="RetailStoreDelivery";n[n.RetailStorePickupPrice=41]="RetailStorePickupPrice";n[n.SoldOutActionType=42]="SoldOutActionType";n[n.IsSortSoldOutProduct=43]="IsSortSoldOutProduct";n[n.PaymentGatewayType=44]="PaymentGatewayType";n[n.SecretKey=45]="SecretKey";n[n.IsEnableOrderListPaidAmount=46]="IsEnableOrderListPaidAmount";n[n.RegisteredAutoAddToBlacklist=47]="RegisteredAutoAddToBlacklist";n[n.IsEnableAutoDetectLanguage=48]="IsEnableAutoDetectLanguage";n[n.IsEnableAutoDetectCurrency=49]="IsEnableAutoDetectCurrency";n[n.IsUpdateNoticeLangAfterOrder=50]="IsUpdateNoticeLangAfterOrder";n[n.IsRememberCreditCard=51]="IsRememberCreditCard";n[n.EnableShoppingCartAmountPreviewer=52]="EnableShoppingCartAmountPreviewer";n[n.CourierDistance=53]="CourierDistance";n[n.EnableShowStickerPointInfo=54]="EnableShowStickerPointInfo";n[n.PromoCodeMGOEnabled=55]="PromoCodeMGOEnabled";n[n.AllowMultipleTakenId=56]="AllowMultipleTakenId";n[n.StoreId=57]="StoreId";n[n.ApiKey=58]="ApiKey";n[n.ShopCancelType=59]="ShopCancelType";n[n.PreSelected=60]="PreSelected";n[n.EnableEVoucher=61]="EnableEVoucher";n[n.EnablePurchaseNotes=62]="EnablePurchaseNotes";n[n.ShoppingCartClaimAll=63]="ShoppingCartClaimAll";n[n.ECouponListClaimAll=64]="ECouponListClaimAll";n[n.RegularOrderProvider=65]="RegularOrderProvider";n[n.PurchaseNotesCheckSettings=66]="PurchaseNotesCheckSettings";n[n.EnableNFT=67]="EnableNFT";n[n.IsInfoSecurityEnable=68]="IsInfoSecurityEnable";n[n.ECouponVerificationTypeDef=69]="ECouponVerificationTypeDef";n[n.VerificationCodeVisible=70]="VerificationCodeVisible";n[n.PassScore=71]="PassScore";n[n.PersonalDataMaskEnabled=72]="PersonalDataMaskEnabled";n[n.EnableMultipleCategory=73]="EnableMultipleCategory";n[n.IsShowChangePassword=74]="IsShowChangePassword";n[n.IsAllowBookingPickupDate=75]="IsAllowBookingPickupDate"}(r=n.ShopDefaultKeyEnum||(n.ShopDefaultKeyEnum={})),function(n){n[n.OutOfStock=0]="OutOfStock";n[n.Restock=1]="Restock";n[n.NoRestock=2]="NoRestock";n[n.BackInStockAlert=3]="BackInStockAlert"}(u=n.ShopDefaultSoldOutActionTypeEnum||(n.ShopDefaultSoldOutActionTypeEnum={})),function(n){n[n.IsShowTotalTradesSum=0]="IsShowTotalTradesSum";n[n.IsShowTierTradesSum=1]="IsShowTierTradesSum";n[n.ShopLoyaltyPointEnabled=2]="ShopLoyaltyPointEnabled";n[n.PointExchangeECouponEnabled=3]="PointExchangeECouponEnabled";n[n.IsShowVipMemberInfo=4]="IsShowVipMemberInfo";n[n.EnableFavoriteLoc=5]="EnableFavoriteLoc";n[n.IsBirthdayEnable=6]="IsBirthdayEnable";n[n.IsMemberNameEnable=7]="IsMemberNameEnable"}(f=n.ShopVipMemberDisplaySettingsTypeEnum||(n.ShopVipMemberDisplaySettingsTypeEnum={}))})(t=n.ShopDefault||(n.ShopDefault={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u;(function(n){n[n.CreditCardOnce=0]="CreditCardOnce";n[n.CreditCardInstallment=1]="CreditCardInstallment";n[n.Family=2]="Family";n[n.SevenEleven=3]="SevenEleven"})(t=n.ShoppingCartPayTypeEnum||(n.ShoppingCartPayTypeEnum={})),function(n){n[n.Unknown=0]="Unknown";n[n.Mall=1]="Mall";n[n.Brand=2]="Brand";n[n.Express=3]="Express";n[n.PayPage=4]="PayPage"}(i=n.ShoppingCartTrackChannelTypeDefEnum||(n.ShoppingCartTrackChannelTypeDefEnum={})),function(n){n[n.Unknown=0]="Unknown";n[n.PC=1]="PC";n[n.Mobile=2]="Mobile";n[n.Pad=3]="Pad"}(r=n.ShoppingCartTrackDeviceTypeDefEnum||(n.ShoppingCartTrackDeviceTypeDefEnum={})),function(n){n[n.Unknown=0]="Unknown";n[n.Web=1]="Web";n[n.iOSApp=2]="iOSApp";n[n.AndroidApp=3]="AndroidApp";n[n.LocationWizard=4]="LocationWizard"}(u=n.ShoppingCartTrackSourceTypeDefEnum||(n.ShoppingCartTrackSourceTypeDefEnum={}))})(t=n.ShoppingCart||(n.ShoppingCart={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.Redirect=0]="Redirect";n[n.GoToNext=1]="GoToNext"})(t=n.NextStepAlertButtonActionTypeEnum||(n.NextStepAlertButtonActionTypeEnum={})),function(n){n[n.Normal=0]="Normal";n[n.NoIntersection=1]="NoIntersection";n[n.OverseaNoIntersection=2]="OverseaNoIntersection"}(i=n.PayShippingIntersectionEnum||(n.PayShippingIntersectionEnum={}))})(t=n.ShoppingCartV2||(n.ShoppingCartV2={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.PartialPickup=1]="PartialPickup";n[n.Normal=2]="Normal";n[n.PreOrder=3]="PreOrder";n[n.RetailStore=4]="RetailStore";n[n.HybridRetailStore=5]="HybridRetailStore"})(t=n.PXShoppingCartPreviewTypeDef||(n.PXShoppingCartPreviewTypeDef={}))})(t=n.Preview||(n.Preview={}))})(t=n.ShoppingCartV2||(n.ShoppingCartV2={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r,u;(function(n){n[n.None=0]="None";n[n.SystemError=1]="SystemError";n[n.Success=2]="Success";n[n.MustAddFriendship=3]="MustAddFriendship";n[n.MemberIdConflict=4]="MemberIdConflict";n[n.UserAccessDenied=5]="UserAccessDenied";n[n.ECouponIssued=2001]="ECouponIssued";n[n.ECouponReceived=2002]="ECouponReceived"})(t=n.JoiningRewardExecutionResultEnum||(n.JoiningRewardExecutionResultEnum={})),function(n){n[n.Unbinding=1]="Unbinding";n[n.BoundDifferentMember=2]="BoundDifferentMember";n[n.Bound=3]="Bound"}(i=n.LineBindingResultEnum||(n.LineBindingResultEnum={})),function(n){n[n.None=0]="None";n[n.NoReward=1]="NoReward";n[n.ECoupon=2]="ECoupon"}(r=n.RewardTypeEnum||(n.RewardTypeEnum={})),function(n){n[n.None=0]="None";n[n.LINE=1]="LINE"}(u=n.SocialMediaEnum||(n.SocialMediaEnum={}))})(t=n.SocialOfficialAccounts||(n.SocialOfficialAccounts={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Normal=13]="Normal";n[n.Freezer=14]="Freezer";n[n.Refrigerator=15]="Refrigerator"})(t=n.SevenElevenTCatPickupTempratureEnum||(n.SevenElevenTCatPickupTempratureEnum={}))})(t=n.Store||(n.Store={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.New=0]="New";n[n.WaitingToPay=1]="WaitingToPay";n[n.Success=2]="Success";n[n.Fail=3]="Fail";n[n.Cancel=4]="Cancel";n[n.CancelRequest=5]="CancelRequest";n[n.RePaySuccess=6]="RePaySuccess"})(t=n.TradesOrderThirdPartyPaymentStatusEnum||(n.TradesOrderThirdPartyPaymentStatusEnum={}))})(t=n.TradesOrderThirdPartyPayment||(n.TradesOrderThirdPartyPayment={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i,r;(function(n){n[n.Unknown=0]="Unknown";n[n.Mall=1]="Mall";n[n.Brand=2]="Brand";n[n.Express=3]="Express";n[n.PayPage=4]="PayPage"})(t=n.UserClientTrackChannelTypeEnum||(n.UserClientTrackChannelTypeEnum={})),function(n){n[n.Unknown=0]="Unknown";n[n.PC=1]="PC";n[n.Mobile=2]="Mobile";n[n.Pad=3]="Pad";n[n.Internal=4]="Internal"}(i=n.UserClientTrackDeviceTypeEnum||(n.UserClientTrackDeviceTypeEnum={})),function(n){n[n.Unknown=0]="Unknown";n[n.Web=1]="Web";n[n.iOSApp=2]="iOSApp";n[n.AndroidApp=4]="AndroidApp";n[n.LocationWizard=8]="LocationWizard";n[n.InternalSchedule=16]="InternalSchedule";n[n.APP=6]="APP";n[n.StoreImport=18]="StoreImport";n[n.Import=19]="Import"}(r=n.UserClientTrackSourceTypeEnum||(n.UserClientTrackSourceTypeEnum={}))})(t=n.UserClientTrack||(n.UserClientTrack={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.UnKnown=0]="UnKnown";n[n.Male=1]="Male";n[n.Female=2]="Female"})(t=n.VipMemberInfoGenderEnum||(n.VipMemberInfoGenderEnum={})),function(n){n[n.Normal=0]="Normal";n[n.MemberModule=1]="MemberModule";n[n.LocationBinding=2]="LocationBinding"}(i=n.VIPMemberShopContractTypeEnum||(n.VIPMemberShopContractTypeEnum={}))})(t=n.VIPMembers||(n.VIPMembers={}))})(t=n.BE||(n.BE={}))})(t=n.Frontend||(n.Frontend={}))})(t=n.WebStore||(n.WebStore={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){n[n.Sunday=0]="Sunday";n[n.Monday=1]="Monday";n[n.Tuesday=2]="Tuesday";n[n.Wednesday=3]="Wednesday";n[n.Thursday=4]="Thursday";n[n.Friday=5]="Friday";n[n.Saturday=6]="Saturday"})(t=n.DayOfWeek||(n.DayOfWeek={}))}(System||(System={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.OfficailIndex=0]="OfficailIndex";n[n.SalePageCategory=1]="SalePageCategory";n[n.SalePageIndex=2]="SalePageIndex";n[n.HotSaleRanking=3]="HotSaleRanking";n[n.NewestSalePage=4]="NewestSalePage";n[n.PromotionList=5]="PromotionList";n[n.PromotionDetail=6]="PromotionDetail";n[n.FreeGiftPromotionDetail=7]="FreeGiftPromotionDetail";n[n.ECouponList=8]="ECouponList";n[n.ECouponDetail=9]="ECouponDetail";n[n.ECouponHowToUse=10]="ECouponHowToUse";n[n.CouponList=11]="CouponList";n[n.CouponDetail=12]="CouponDetail";n[n.SearchIndex=13]="SearchIndex";n[n.ShoppingCartIndex=14]="ShoppingCartIndex";n[n.PayIndex=15]="PayIndex";n[n.PayFinish=16]="PayFinish";n[n.PayLanding=17]="PayLanding";n[n.VideoDetail=18]="VideoDetail";n[n.ArticleDetail=19]="ArticleDetail";n[n.AlbumDetail=20]="AlbumDetail";n[n.VideoList=21]="VideoList";n[n.ArticleList=22]="ArticleList";n[n.AlbumList=23]="AlbumList";n[n.InfoModuleList=24]="InfoModuleList";n[n.ActivityIndex=25]="ActivityIndex";n[n.ShopStoreList=26]="ShopStoreList";n[n.ShopStoreDetail=27]="ShopStoreDetail";n[n.TraceSalePageList=28]="TraceSalePageList";n[n.BrandStory=29]="BrandStory";n[n.ShopIntroduce=30]="ShopIntroduce";n[n.HelpServiceInfo=31]="HelpServiceInfo";n[n.MyAccountPrivacy=32]="MyAccountPrivacy";n[n.VipMemberBenefits=33]="VipMemberBenefits";n[n.AddresseeList=34]="AddresseeList";n[n.MyOrders=35]="MyOrders";n[n.MyCoupons=36]="MyCoupons";n[n.FAQ=37]="FAQ";n[n.InvoiceList=38]="InvoiceList";n[n.ChangePassword=39]="ChangePassword";n[n.MembershipTerms=40]="MembershipTerms";n[n.EmailNotificationSettings=41]="EmailNotificationSettings";n[n.VipMember=42]="VipMember";n[n.Login=43]="Login";n[n.QuestionForm=44]="QuestionForm";n[n.PromotionEngineDetail=45]="PromotionEngineDetail";n[n.PreviewCart=46]="PreviewCart"})(t=n.PageNameEnum||(n.PageNameEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Android=0]="Android";n[n.iOS=1]="iOS";n[n.Bot=2]="Bot";n[n.UnKnown=3]="UnKnown"})(t=n.DeviceOsEnum||(n.DeviceOsEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Mobile=0]="Mobile";n[n.Pad=1]="Pad";n[n.Desktop=2]="Desktop"})(t=n.ScreenSizeEnum||(n.ScreenSizeEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Desktop=0]="Desktop";n[n.Mobile=1]="Mobile";n[n.Pad=2]="Pad"})(t=n.BrowsingModeEnum||(n.BrowsingModeEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Facebook=0]="Facebook";n[n.Instagram=1]="Instagram";n[n.Line=2]="Line";n[n.UnKnown=3]="UnKnown"})(t=n.SocialMediaEnum||(n.SocialMediaEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Register=0]="Register";n[n.FbRegister=1]="FbRegister";n[n.ThirdPartyRegister=2]="ThirdPartyRegister";n[n.ShoppingCart=3]="ShoppingCart";n[n.LineAuthRegister=4]="LineAuthRegister";n[n.ResetPassword=5]="ResetPassword"})(t=n.RequireProfilesSettingSourceEnum||(n.RequireProfilesSettingSourceEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Regular=1]="Regular";n[n.HasBuyOnce=2]="HasBuyOnce"})(t=n.RegularOrderSalePageOptionEnum||(n.RegularOrderSalePageOptionEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t,i;(function(n){n[n.Edenred=1]="Edenred";n[n.NFT=2]="NFT"})(t=n.VirtualProductProviderTypeEnum||(n.VirtualProductProviderTypeEnum={})),function(n){n[n.EVoucher=1]="EVoucher";n[n.NFT=2]="NFT"}(i=n.VirtualProductDisplayTypeEnum||(n.VirtualProductDisplayTypeEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(n){var t;(function(n){n[n.Physical=0]="Physical";n[n.Virtual=1]="Virtual"})(t=n.ProductTypeEnum||(n.ProductTypeEnum={}))})(t=n.Models||(n.Models={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(t){var i;(function(t){var i=function(){function t(){this.isTouchDevice=Modernizr.touchevents;window.innerWidth<768?(this.deviceSize="mobile",this.ScreenSize=n.Mall.Models.ScreenSizeEnum.Mobile):window.innerWidth>=768&&window.innerWidth<1281?(this.deviceSize="pad",this.ScreenSize=n.Mall.Models.ScreenSizeEnum.Pad):(this.deviceSize="pc",this.ScreenSize=n.Mall.Models.ScreenSizeEnum.Desktop)}return t}();t.Value=i;angular.module("NineYi.Mall.Values").value("Mall.Value",new i)})(i=t.Values||(t.Values={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(t){var i;(function(t){var r=n.Mall.Models.BrowsingModeEnum,i=n.Mall.Models.DeviceOsEnum,u=function(){function t(){this.isTouchDevice=Modernizr.touchevents;this.BrowsingMode=(document.cookie.match("(^|; )BrowsingMode=([^;]*)")||0)[2]==="DeskTop"?r.Desktop:/android|webOS|iPhone|iPod|iOS|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||/(tablet|ipad|playbook|silk)|(android(?!.*mobile))/i.test(navigator.userAgent)?r.Mobile:r.Desktop}return t.prototype.GetDeviceOS=function(){return/android/i.test(navigator.userAgent)?i.Android:/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)?i.iOS:/bot|spider|crawl/i.test(navigator.userAgent)?i.Bot:i.UnKnown},t.prototype.IsMobile=function(){return this.BrowsingMode===n.Mall.Models.BrowsingModeEnum.Mobile},t}();t.DeviceValue=u;angular.module("NineYi.Mall.Values").value("DeviceValue",new u)})(i=t.Values||(t.Values={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(t){var i;(function(t){var i=n.Mall.Models.PageNameEnum,r=function(){function n(){var n=window.location.pathname,t=document.referrer;this.CurrentPage=this.GetPageValue(n).PageIndex;this.CurrentPageName=this.GetPageValue(n).PageName;this.CurrentPageNameEn=this.GetPageValue(n).PageNameEn;this.GetPageValue(n);t&&(this.PreviousPageName=this.GetPageValue(t).PageName,this.PreviousPage=this.GetPageValue(t).PageIndex);this.IsSsoDomain=/^((service.91app+)\.tw\.(dev|qa|pp)|(service.91app.com))$/ig.test(window.location.hostname)}return n.prototype.GetPageValue=function(n){var t={PageIndex:null,PageName:null,PageNameEn:null};switch(!0){case/(\/v2\/official\/$)|(\/v2\/official$)|^$|(^\/$)|(\/v2\/official\/Index$)|(\/v2\/official\/Index\/)/ig.test(n):t.PageIndex=i.OfficailIndex;t.PageName="首頁";t.PageNameEn="Home";break;case/\/v2\/official\/salepagecategory\/*/ig.test(n):t.PageIndex=i.SalePageCategory;t.PageName="小分類頁";t.PageNameEn="Product Category";break;case/\/salepage\/index\/*/ig.test(n):t.PageIndex=i.SalePageIndex;t.PageName="商品頁";t.PageNameEn="Product Page";break;case/\/shop\/hotSaleRanking\/*/ig.test(n):t.PageIndex=i.HotSaleRanking;t.PageName="銷售排行";t.PageNameEn="Hot Sale Ranking";break;case/\/v2\/official\/newestSalePage\/*/ig.test(n):t.PageIndex=i.NewestSalePage;t.PageName="最新商品頁";t.PageNameEn="New Products";break;case/\/v2\/promotion\/list\/*/ig.test(n):t.PageIndex=i.PromotionList;t.PageName="折扣活動列表頁";t.PageNameEn="Promotion List";break;case/\/v2\/promotion\/detail\/*/ig.test(n):t.PageIndex=i.PromotionDetail;t.PageName="折扣活動內容頁-現折活動";t.PageNameEn="Promotion Detail";break;case/\/v2\/promotionengine\/detail\/*/ig.test(n):t.PageIndex=i.PromotionEngineDetail;t.PageName="促購引擎折扣活動內容頁";t.PageNameEn="Promotion Engine Detail";break;case/\/promotion\/detail\/*/ig.test(n):t.PageIndex=i.FreeGiftPromotionDetail;t.PageName="折扣活動內容頁-任選/滿額贈";t.PageNameEn="Promotion Detail";break;case/\/ecoupon\/list\/*/ig.test(n):t.PageIndex=i.ECouponList;t.PageName="折價券列表頁";t.PageNameEn="E-coupon List";break;case/\/ecoupon\/detail\/*/ig.test(n):t.PageIndex=i.ECouponDetail;t.PageName="折價券";t.PageNameEn="E-coupon Detail";break;case/\/ecoupon\/howToUse\/*/ig.test(n):t.PageIndex=i.ECouponHowToUse;t.PageName="折價券使用說明";t.PageNameEn="E-coupon How To Use";break;case/\/coupon\/list\/*/ig.test(n):t.PageIndex=i.CouponList;t.PageName="門市優惠券列表";t.PageNameEn="Coupon List";break;case/\/coupon\/detail\/*/ig.test(n):t.PageIndex=i.CouponDetail;t.PageName="門市優惠";t.PageNameEn="Coupon Detail";break;case/\/search\/*/ig.test(n):t.PageIndex=i.SearchIndex;t.PageName="搜尋結果頁";t.PageNameEn="Search";break;case/\/v2\/ShoppingCart\/previewCart*/ig.test(n):t.PageIndex=i.PreviewCart;t.PageName="確認購物車頁";t.PageNameEn="Preview Cart";break;case/\/v2\/ShoppingCart*/ig.test(n):t.PageIndex=i.ShoppingCartIndex;t.PageName="購物車頁";t.PageNameEn="Shopping Cart";break;case/\/v2\/pay\/landing\/*/ig.test(n):t.PageIndex=i.PayLanding;t.PageName="結帳付款頁等待頁";t.PageNameEn="Checkout Step 2";break;case/\/v2\/pay\/finish\/*/ig.test(n):t.PageIndex=i.PayFinish;t.PageName="結帳完成頁";t.PageNameEn="Order Confirmation";break;case/\/v2\/pay*/ig.test(n):t.PageIndex=i.PayIndex;t.PageName="結帳付款頁";t.PageNameEn="Checkout Step 1";break;case/\/v2\/globalpay\/*/ig.test(n):t.PageIndex=i.PayIndex;t.PageName="結帳付款頁";t.PageNameEn="Checkout Step 1";break;case/\/v2\/shop\/InfoModuleList\/*/ig.test(n):window.location.hash==="#/AlbumList"?(t.PageIndex=i.AlbumList,t.PageName="相簿列表頁",t.PageNameEn="Album List"):window.location.hash==="#/ArticleList"?(t.PageIndex=i.ArticleList,t.PageName="文章列表頁",t.PageNameEn="Article List"):window.location.hash==="#/VideoList"?(t.PageIndex=i.VideoList,t.PageName="影片列表頁",t.PageNameEn="Video List"):(t.PageIndex=i.InfoModuleList,t.PageName="資訊模組列表頁",t.PageNameEn="Info Module List");break;case/\/Article\/Detail\/*/ig.test(n):t.PageIndex=i.ArticleDetail;t.PageName="圖文模組頁";t.PageNameEn="Article Detail";break;case/\/Video\/Detail\/*/ig.test(n):t.PageIndex=i.VideoDetail;t.PageName="影音模組頁";t.PageNameEn="Video Detail";break;case/\/Album\/Detail\/*/ig.test(n):t.PageIndex=i.AlbumDetail;t.PageName="相簿模組頁";t.PageNameEn="Album Detail";break;case/\/v2\/activity\/*/ig.test(n):t.PageIndex=i.ActivityIndex;t.PageName="活動頁公版";t.PageNameEn="Activities";break;case/\/Shop\/StoreList\/*/ig.test(n):t.PageIndex=i.ShopStoreList;t.PageName="門市列表頁";t.PageNameEn="Store List";break;case/\/Shop\/StoreDetail\/*/ig.test(n):t.PageIndex=i.ShopStoreDetail;t.PageName="門市資訊內容頁";t.PageNameEn="Store Detail";break;case/\/TraceSalePageList\/TraceSalePageList\/*/ig.test(n):t.PageIndex=i.TraceSalePageList;t.PageName="我的收藏頁";t.PageNameEn="My Wishlist";break;case/\/Official\/BrandStory\/*/ig.test(n):t.PageIndex=i.BrandStory;t.PageName="品牌故事頁";t.PageNameEn="Brand Story";break;case/\/shop\/introduce\/*/ig.test(n):t.PageIndex=i.ShopIntroduce;t.PageName="商店簡介頁";t.PageNameEn="Shop Introduction";break;case/\/Help\/ServiceInfo\/*/ig.test(n):t.PageIndex=i.HelpServiceInfo;t.PageName="服務說明頁";t.PageNameEn="Help Service Information";break;case/\/MyAccount\/Privacy\/*/ig.test(n):t.PageIndex=i.MyAccountPrivacy;t.PageName="隱私權條款頁";t.PageNameEn="Account Privacy";break;case/\/MyAccount\/VipMemberBenefits\/*/ig.test(n):t.PageIndex=i.VipMemberBenefits;t.PageName="會員權益聲明頁";t.PageNameEn="VIP Member Benefits";break;case/\/MyAccount\/LocationBooks\/*/ig.test(n):t.PageIndex=i.AddresseeList;t.PageName="常用收件人";t.PageNameEn="Addressee List";break;case/\/V2\/TradesOrder\/*/ig.test(n):t.PageIndex=i.MyOrders;t.PageName="訂單查詢";t.PageNameEn="My Orders";break;case/\/ECoupon\/MyECoupon\/*/ig.test(n):t.PageIndex=i.MyCoupons;t.PageName="我的折價券";t.PageNameEn="My Coupons";break;case/\/Question\/CustomerServiceCenter\/*/ig.test(n):t.PageIndex=i.FAQ;t.PageName="常見問題/問答紀錄";t.PageNameEn="FAQ";break;case/\/MyAccount\/InvoiceList\/*/ig.test(n):t.PageIndex=i.InvoiceList;t.PageName="常用統一編號";t.PageNameEn="Invoice List";break;case/\/V2\/MyAccount\/ChangePassword\/*/ig.test(n):t.PageIndex=i.ChangePassword;t.PageName="修改密碼";t.PageNameEn="Change Password";break;case/\/V2\/VipMember\/AgreePrivacy\/*/ig.test(n):t.PageIndex=i.MembershipTerms;t.PageName="會員權益聲明";t.PageNameEn="Membership Terms";break;case/\/V2\/VipMember\/EmailNotification\/*/ig.test(n):t.PageIndex=i.EmailNotificationSettings;t.PageName="Email訂閱/取消";t.PageNameEn="Email Notification Settings";break;case/\/V2\/VipMember\/*/ig.test(n):t.PageIndex=i.VipMember;t.PageName="會員專區";t.PageNameEn="Vip Member";break;case/\/Login\/Index\/*/ig.test(n):t.PageIndex=i.Login;t.PageName="登入";t.PageNameEn="Login";break;case/\/Question\/QuestionInsert\/*/ig.test(n):t.PageIndex=i.QuestionForm;t.PageName="客服留言";t.PageNameEn="Question Form"}return t},n}();t.PageValue=r;angular.module("NineYi.Mall.Values").value("PageValue",new r)})(i=t.Values||(t.Values={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(t){var i;(function(){var t=function(){function t(t,i,r,u,f,e,o,s,h,c){var l=this;this.version=t;this.webapiUrl=i;this.urlUtility=r;this.$log=u;this.$q=f;this.$injector=e;this.ShopId=o;this.CurrentLocale=s;this.PageValue=h;this.EnableSessionExpire=c;this.PageNameEnum=n.Mall.Models.PageNameEnum;this.IsExtendingLoginTime=!0;this.ExtendingLoginTimeRange=6e4;this.request=function(n){var t,u,f,i,r;return(l.EnableSessionExpire&&(t=l.webapiUrl+"/AuthV4/KeepAlive/"+o,n.url!==t&&l.IsExtendingLoginTime&&(l.IsExtendingLoginTime=!1,setTimeout(function(){l.IsExtendingLoginTime=!0},l.ExtendingLoginTimeRange),u=l.$injector.get("$http"),u.get(t))),n.cache&&n.cache.info().id==="templates")?n:(f=l.urlUtility.GetQuerystring("r"),f==="t"&&(l.$log.debug("Refresh Cache",n.url),n.url=l.urlUtility.AppendParameter(n.url,"r","t")),i=l.urlUtility.GetQuerystring("v"),i?(l.$log.debug("Include Version",n.url),n.url=l.urlUtility.AppendParameter(n.url,"v",i)):n.url=l.urlUtility.AppendParameter(n.url,"v",l.version),n.url=l.urlUtility.AppendParameter(n.url,"shopId",String(o)),n.url=l.urlUtility.AppendParameter(n.url,"lang",s),r=l.urlUtility.GetQuerystring("locationId"),r&&l.PageValue.CurrentPage===l.PageNameEnum.ShoppingCartIndex&&(n.url=l.urlUtility.AppendParameter(n.url,"locationId",r)),n)};this.response=function(n){var t=+n.headers("x-shop-id");return t&&l.ShopId!==t&&l.$log.error("Response Shop Content Error:",{request:l.ShopId,response:t}),n};this.responseError=function(n){return l.$log.error("Request Error, Url: ",n.config.url,n),l.$q.reject(n)}}return t}();angular.module("NineYi.Mall.Inteceptors").factory("HttpInteceptor",["Mall.Config","UrlUtility","$log","$q","$injector","ShopId","CurrentLocale","PageValue","EnableSessionExpire",function(n,i,r,u,f,e,o,s,h){return new t(n.dataVersion,n.webapiUrl,i,r,u,f,e,o,s,h)}]);angular.module("NineYi.Mall.Inteceptors").config(["$httpProvider",function(n){n.interceptors.push("HttpInteceptor")}])})(i=t.Inteceptors||(t.Inteceptors={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){n[n.JavaScript=0]="JavaScript";n[n.WebCrawler=1]="WebCrawler";n[n.Angular=2]="Angular"}(ExceptionTypeEnum||(ExceptionTypeEnum={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Configs").config(["$provide",function(n){n.decorator("$exceptionHandler",["$delegate","$log","$injector","stacktrace",function(n,t,i,r){var e=n,f=[],u=0;return function(n,o){var c,l,a,p,h;u=u+1;c=i.get("$http");l=i.get("Mall.Config");e(n,o);try{if(u<=10&&(a=f.indexOf(n.message)>-1,!a)){var v=n.toString(),y=r.print({e:n}),s=ExceptionTypeEnum.JavaScript;if(/facebookexternalhit|AdsBot|PetalBot|Googlebot/i.test(navigator.userAgent)?s=ExceptionTypeEnum.WebCrawler:/errors.angularjs.org/i.test(v)&&(s=ExceptionTypeEnum.Angular),y.splice(0,0,v),p=l.webapiUrl+"/Common/JsLogger/LogJavaScriptErrorV2",h=y.join("\r\n"),!h)return;c.post(p,{exception:ExceptionTypeEnum[s],message:encodeURIComponent(h)});f.push(n.message)}}catch(w){t.warn("Error logging failed");t.log(w)}}}])}])})(t=n.Decorators||(n.Decorators={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(n){var t;(function(n){var t;(function(){angular.module("NineYi.Mall.Configs").config(["$provide",function(n){n.decorator("Mall.Config",["$delegate","$log","$location",function(n,t,i){var r=i.host(),u=n.mallUrlPattern;return u.test(r)==!1&&(n.webapiUrl="//"+r+"/webapi",n.familyDomain=r,n.sevenElevenDomain=r,n.hiLifeDomain=r,t.debug("Official site, replace webapi url with ",n.webapiUrl)),n}])}])})(t=n.Decorators||(n.Decorators={}))})(t=n.Mall||(n.Mall={}))}(NineYi||(NineYi={})),function(){"use strict";angular.module("NineYi.Mall.Templates").run(["$templateCache",function(n){n.put("/V2/TypeScripts/Components/ns-add-to-cart/addToCartDialog.html",'<div class="modal-body add-to-cart-popup">\n    <div ns-add-to-cart\n         ns-sale-page-model="SalePageModel"\n         ns-page-name="PageName"\n         ns-list-name="GaListName"\n         ns-position="GaPosition"\n         ns-is-direct-checkout="IsDirectCheckout"\n         ns-hide-show-more="true"\n         ns-is-from-dialog="true"\n         ns-sku-qty-mode="SkuQtyMode">\n    <\/div>\n    <a class="close-btn popup-close" href="javascript:void(0)" data-ng-click="Cancel()">\n        <i class="icon icon-slim-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-add-to-cart/addToCartDirective.html",'<div>\n    <div ng-if="HideHeaderInfo !== true" class="product-wrapper" data-ng-class="{\'product-wrapper-normal\':IsFromDialog}">\n        <div class="product-img-wrapper">\n            <figure class="image-frame">\n                <img class="image-body" ng-src="{{AddToCartDirectiveCtrl.SelectedSkuImgUrl}}"/>\n            <\/figure>\n        <\/div>\n        <div class="product-detail">\n            <h3 class="product-title"\n                data-ng-class="{\'product-title-normal\': IsFromDialog}"\n                data-ng-bind="AddToCartDirectiveCtrl.SelectedSkuTitle">\n                <span translate="frontend.typescripts.components.all_item"><\/span>\n            <\/h3>\n            <div class="price-wrapper">\n                <div class="product-suggestprice"\n                     data-ng-if="AddToCartDirectiveCtrl.IsShowSuggestPrice">\n                    <del data-ng-if="!AddToCartDirectiveCtrl.SelectedSkuSuggestPrice">\n                        <span data-ng-bind="::(AddToCartDirectiveCtrl.SalePageModel.MinSuggestPrice | preferredCurrency)"><\/span>\n                        <span data-ng-if="::(AddToCartDirectiveCtrl.SalePageModel.MaxSuggestPrice > AddToCartDirectiveCtrl.SalePageModel.MinSuggestPrice)"\n                              ng-bind="\' ~ \' + (AddToCartDirectiveCtrl.SalePageModel.MaxSuggestPrice | preferredCurrency)"><\/span>\n                    <\/del>\n                    <del data-ng-if="AddToCartDirectiveCtrl.SelectedSkuSuggestPrice">\n                        <span ng-bind="AddToCartDirectiveCtrl.SelectedSkuSuggestPrice | preferredCurrency"><\/span>\n                    <\/del>\n                <\/div>\n                <div ng-if="AddToCartDirectiveCtrl.IsPointPayOption" class="product-price cms-moneyColor">\n                    <div>\n                        <div ng-if="AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPoints === 0"\n                             ng-bind="AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPrice | preferredCurrency"><\/div>\n                        <div ng-if="AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPrice === 0"\n                             translate="frontend.typescripts.components.pointpay_point"\n                             translate-value-val0="{{ AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPoints }}"><\/div>\n                        <div ng-if="AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPoints > 0 && AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPrice > 0">\n                            <span translate="frontend.typescripts.components.pointpay_point"\n                                  translate-value-val0="{{ AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPoints }}"><\/span><span>＋<\/span><span ng-bind="AddToCartDirectiveCtrl.SelectedPointPayOptionItem.PairsPrice | preferredCurrency"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div ng-if="!AddToCartDirectiveCtrl.IsPointPayOption && !AddToCartDirectiveCtrl.SelectedSkuPrice">\n                    <span class="product-price cms-moneyColor"\n                          ng-bind="::(AddToCartDirectiveCtrl.SalePageModel.MinPrice | preferredCurrency)"><\/span>\n                    <span class="product-price cms-moneyColor"\n                          data-ng-if="::(AddToCartDirectiveCtrl.SalePageModel.MaxPrice > +AddToCartDirectiveCtrl.SalePageModel.MinPrice)"\n                          ng-bind="\' ~ \' + (AddToCartDirectiveCtrl.SalePageModel.MaxPrice | preferredCurrency)"><\/span>\n                <\/div>\n                <div ng-if="!AddToCartDirectiveCtrl.IsPointPayOption && AddToCartDirectiveCtrl.SelectedSkuPrice">\n                    <span class="product-price cms-moneyColor" ng-bind="AddToCartDirectiveCtrl.SelectedSkuPrice | preferredCurrency"><\/span>\n                <\/div>\n                <!-- 加入購物車Popup可售數顯示 -->\n                <span class="stock-qty-text"\n                      ng-if="IsShowStockQty && (AddToCartDirectiveCtrl.IsPopup || AddToCartDirectiveCtrl.IsMobile)"\n                      translate="frontend.typescripts.components.stock_qty_number"\n                      translate-value-val0="{{AddToCartDirectiveCtrl.StockQty|number}}"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class="sku-wrapper">\n        <div class="choose-sku" ng-class="{\'choose-sku-normal\': IsFromDialog && !AddToCartDirectiveCtrl.IsRegularOrder}">\n            <!-- desktop 新定期購 -->\n            <div class="regular-order"\n                 ng-if="AddToCartDirectiveCtrl.IsRegularOrder &&\n                        !AddToCartDirectiveCtrl.IsMobile &&\n                        !IsFromDialog &&\n                        AddToCartDirectiveCtrl.RegularOrderSettingModel.RegularOrderProvider === AddToCartDirectiveCtrl.RegularOrderProviderTypeDefEnum[AddToCartDirectiveCtrl.RegularOrderProviderTypeDefEnum.GameBall]">\n                <div class="regular-order__row"\n                     ng-click="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType = AddToCartDirectiveCtrl.RegularOrderOptionEnum.BuyOnce"\n                     ng-if="AddToCartDirectiveCtrl.RegularOrderSettingModel.SalePageOption === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce"\n                >\n                    <i class="icon circle"\n                       ng-class="{\n                           \'icon-radio-selected\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce,\n                           \'icon-circle\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType !== AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce\n                       }"\n                    ><\/i>\n                    <span translate="frontend.typescripts.sale_page.buy_once"><\/span>\n                <\/div>\n                <div class="regular-order__row"\n                     ng-click="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType = AddToCartDirectiveCtrl.RegularOrderOptionEnum.Regular"\n                     ng-if="AddToCartDirectiveCtrl.RegularOrderSettingModel.SalePageOption === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce"\n                >\n                    <i class="icon circle"\n                       ng-class="{\n                            \'icon-radio-selected\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.Regular,\n                            \'icon-circle\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType !== AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.Regular\n                       }"\n                    ><\/i>\n                    <span translate="frontend.typescripts.sale_page.regular_order"><\/span>\n                <\/div>\n                <div class="order-option-block"\n                     ng-class="{\'order-option-block--has-buy-once\': AddToCartDirectiveCtrl.RegularOrderSettingModel.SalePageOption === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce}"\n                >\n                    <!-- 配送週期 -->\n                    <div ng-if="!!AddToCartDirectiveCtrl.RegularOrderSettingModel.DeliverPeriodList">\n                        <div class="order-option-block__title"\n                             translate="frontend.typescripts.sale_page.delivery_period">\n                        <\/div>\n                        <div class="order-option-block__fn">\n                            <select\n                                name="RegularPeriod"\n                                id="RegularPeriod"\n                                class="selector"\n                                ng-options="period.Value as period.Key for period in AddToCartDirectiveCtrl.RegularPeriodList"\n                                ng-model="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularPeriod"\n                            ><\/select>\n                            <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                        <\/div>\n                    <\/div>\n                    <!-- 配送次數 -->\n                    <div ng-if="AddToCartDirectiveCtrl.RegularOrderSettingModel.MaxDeliverCount > 0">\n                        <div class="order-option-block__title"\n                             translate="frontend.typescripts.sale_page.count_of_delivery"><\/div>\n                        <div class="order-option-block__fn">\n                            <select\n                                name="regularOrderCount"\n                                id="regular-order-count"\n                                class="selector"\n                                ng-options="orderCount.Value as orderCount.Key for orderCount in AddToCartDirectiveCtrl.RegularOrderCountList"\n                                ng-model="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderCount"\n                            ><\/select>\n                            <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                        <\/div>\n                    <\/div>\n                    <div class="order-option-block__desc" translate="frontend.typescripts.sale_page.regular_order_v2_desc"><\/div>\n                    <div>\n                        <a href="javascript:void(0)"\n                           class="link"\n                           translate="frontend.typescripts.sale_page.regular_order_desc"\n                           ng-click="AddToCartDirectiveCtrl.regularOrderUtility.OpenRegularOrderDescDialog()"\n                        ><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- mobile 新定期購-->\n            <div class="regular-order"\n                 ng-if="AddToCartDirectiveCtrl.IsRegularOrder &&\n                        AddToCartDirectiveCtrl.IsMobile &&\n                        AddToCartDirectiveCtrl.RegularOrderSettingModel.RegularOrderProvider === AddToCartDirectiveCtrl.RegularOrderProviderTypeDefEnum[AddToCartDirectiveCtrl.RegularOrderProviderTypeDefEnum.GameBall]"\n            >\n                <div class="order-option-block">\n                    <!-- 購買方式 -->\n                    <div class="order-option-block__row">\n                        <div class="order-option-block__title"\n                             translate="frontend.typescripts.components.buy_type">\n                        <\/div>\n                        <div class="order-option-block__fn">\n                            <div class="option-item"\n                                 ng-class="{\'option-item--selected\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderOptionEnum.Regular}"\n                                 ng-click="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType = AddToCartDirectiveCtrl.RegularOrderOptionEnum.Regular"\n                                 translate="frontend.typescripts.sale_page.regular_order"><\/div>\n                            <div class="option-item"\n                                 ng-if="AddToCartDirectiveCtrl.RegularOrderSettingModel.SalePageOption === AddToCartDirectiveCtrl.RegularOrderSettingOptionEnum.HasBuyOnce"\n                                 ng-class="{\'option-item--selected\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderOptionEnum.BuyOnce}"\n                                 ng-click="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType = AddToCartDirectiveCtrl.RegularOrderOptionEnum.BuyOnce"\n                                 translate="frontend.typescripts.sale_page.buy_once"><\/div>\n                        <\/div>\n                    <\/div>\n                    <!-- 配送週期 -->\n                    <div class="order-option-block__row"\n                         ng-if="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderOptionEnum.Regular">\n                        <div class="order-option-block__title"\n                             translate="frontend.typescripts.sale_page.delivery_period">\n                        <\/div>\n                        <div class="order-option-block__fn">\n                            <div class="option-item"\n                                 ng-repeat="period in AddToCartDirectiveCtrl.RegularPeriodList"\n                                 ng-class="{\'option-item--selected\': AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularPeriod === period.Value}"\n                                 ng-bind="period.Key"\n                                 ng-click="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularPeriod = period.Value"\n                            ><\/div>\n                        <\/div>\n                    <\/div>\n                    <!-- 配送次數 -->\n                    <div class="order-option-block__row"\n                         ng-if="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderType === AddToCartDirectiveCtrl.RegularOrderOptionEnum.Regular &&\n                                AddToCartDirectiveCtrl.RegularOrderSettingModel.MaxDeliverCount > 0 ">\n                        <div class="order-option-block__title"\n                             translate="frontend.typescripts.sale_page.count_of_delivery"><\/div>\n                        <div class="order-option-block__fn">\n                            <span translate="frontend.typescripts.components.maximum_count"><\/span>：\n                            <input\n                                type="number"\n                                class="text-input"\n                                ng-model="AddToCartDirectiveCtrl.SelectedRegularOrderModel.RegularOrderCount"\n                            />\n                        <\/div>\n                        <div class="warning-text"\n                             ng-if="AddToCartDirectiveCtrl.CheckInvalidRegularOrderCount()"\n                             translate="frontend.typescripts.components.count_invalid_msg"\n                             translate-value-val0="{{AddToCartDirectiveCtrl.RegularOrderSettingModel.MaxDeliverCount}}"><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class="product-sku" data-ng-class="{\'product-sku-normal\': IsFromDialog}">\n                <div ng-repeat="skuItem in ::AddToCartDirectiveCtrl.SkuList track by $index"\n                     ng-init="skuItemIndex = $index"\n                     ng-if="::AddToCartDirectiveCtrl.HasMultiLevelSku">\n                    <h6 class="sku-level-title" data-ng-class="{\'sku-level-title-normal\': IsFromDialog}" ng-bind="skuItem.Title">\n                        <span translate="frontend.typescripts.components.sku_item"><\/span>\n                    <\/h6>\n\n                    <ul class="sku-ul">\n                        <li data-ng-repeat="skuItemOption in skuItem.PropertyList track by $index"\n                            data-tooltip-content="{{AddToCartDirectiveCtrl.GetTooltipContent(skuItemIndex, skuItemOption)}}"\n                            data-ng-class="{\'actived cms-primaryBtnBgColor cms-primaryBtnBorderColor cms-primaryBtnBorderColor\': AddToCartDirectiveCtrl.IsSKUSelected(skuItemIndex+1, skuItemOption),\n                                            \'disabled tooltip tooltip-bottom\': AddToCartDirectiveCtrl.IsSKUDisabled(skuItemIndex+1, skuItemOption),\n                                            \'sold-out\': (AddToCartDirectiveCtrl.SkuLevel === skuItemIndex + 1 && AddToCartDirectiveCtrl.IsSKUSoldout(skuItemIndex+1, skuItemOption)) || (AddToCartDirectiveCtrl.SkuLevel === 2 && skuItemIndex === 0 && AddToCartDirectiveCtrl.soldOutL1Property && AddToCartDirectiveCtrl.soldOutL1Property.indexOf(skuItemOption.PropertyNameSet) >= 0),\n                                            \'unselected\': (!SelectedSKUPropertySet&&skuItemIndex!=0),\n                                            \'cms-primaryBtnBorderColor\':hoveringSkuItem && !AddToCartDirectiveCtrl.IsSKUSoldout(skuItemIndex+1, skuItemOption)}"\n                            class="sku-li"\n                            data-ng-hide="AddToCartDirectiveCtrl.IsSKUHidden(skuItemIndex+1, skuItemOption)"\n                            ng-mouseenter="hoveringSkuItem=true"\n                            ng-mouseleave="hoveringSkuItem=false">\n                            <a ng-click="AddToCartDirectiveCtrl.SelectSku(skuItemIndex+1, skuItemOption, skuItem.Title)"\n                               href="javascript:void(0)" class="sku-link" ng-bind="skuItemOption.Name"\n                               data-ng-class="{\n                                   \'sold-out\': (AddToCartDirectiveCtrl.SkuLevel === skuItemIndex + 1 && AddToCartDirectiveCtrl.IsSKUSoldout(skuItemIndex+1, skuItemOption)) || (AddToCartDirectiveCtrl.SkuLevel === 2 && skuItemIndex === 0 && AddToCartDirectiveCtrl.soldOutL1Property && AddToCartDirectiveCtrl.soldOutL1Property.indexOf(skuItemOption.PropertyNameSet) >= 0),\n                                   \'cms-primaryBtnTextColor\': AddToCartDirectiveCtrl.IsSKUSelected(skuItemIndex+1, skuItemOption),\n                                   \'sku-link-normal\': IsFromDialog\n                                }">\n                            <\/a>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <div ng-if="AddToCartDirectiveCtrl.IsPointPayOption" class="purchase-method">\n                    <h6 translate="frontend.typescripts.components.please_choose_purchase_method"\n                        data-ng-class="{\'title_normal\': IsFromDialog}"\n                        class="purchase-method__title"><\/h6>\n                    <div class="purchase-method__pointpay-option-list">\n                        <button ng-repeat="item in AddToCartDirectiveCtrl.PointPayOptionList track by $index"\n                                ng-click="AddToCartDirectiveCtrl.SelectPointPayOption($index)"\n                                ng-class="{ \'cms-primaryBtnBorderColor\':hoveringPointPayOption,\n                                \'cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor add-to-cart-sku-selected\': $index === AddToCartDirectiveCtrl.SelectedPointPayOptionIndex,\n                                \'option_normal\':IsFromDialog }"\n                                ng-mouseenter="hoveringPointPayOption=true"\n                                ng-mouseleave="hoveringPointPayOption=false"\n                                class="purchase-method__pointpay-option-item">\n                                <div ng-if="item.PairsPoints === 0" ng-bind="item.PairsPrice | preferredCurrency"><\/div>\n                                <div ng-if="item.PairsPrice === 0"\n                                     translate="frontend.typescripts.components.pointpay_point"\n                                     translate-value-val0="{{ item.PairsPoints }}"><\/div>\n                                <div ng-if="item.PairsPoints > 0 && item.PairsPrice > 0">\n                                    <span translate="frontend.typescripts.components.pointpay_point"\n                                          translate-value-val0="{{ item.PairsPoints }}"><\/span><span>＋<\/span><span ng-bind="item.PairsPrice | preferredCurrency"><\/span>\n                                <\/div>\n                        <\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class="show-more-sku-link" ng-if="AddToCartDirectiveCtrl.IsShowMore">\n                <a class="core-link"\n                   data-ns-ga-event-track\n                   data-track-category="商品頁"\n                   data-track-action="開啟sku_popup"\n                   data-track-label="看完整商品選項"\n                   ng-click="AddToCartDirectiveCtrl.OpenAddToCartDialog()"\n                   translate="frontend.typescripts.components.all_item"><\/a>\n            <\/div>\n        <\/div>\n        <div class="choose-qty-wrapper" data-ng-class="{\'choose-qty-wrapper-normal\': IsFromDialog}">\n            <div class="choose-qty"\n                 data-ng-class="{\'choose-qty-normal\': IsFromDialog}"\n                 ng-if="!(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut && !AddToCartDirectiveCtrl.IsEnableBackInStockAlert && AddToCartDirectiveCtrl.HasMultiLevelSku === false)">\n                <h6 class="sku-sub-title"\n                    ng-if="!IsFromDialog"\n                    data-ng-class="{\'top-gutter\': !AddToCartDirectiveCtrl.HasMultiLevelSku}"\n                    translate="frontend.typescripts.components.qty"><\/h6>\n                <div class="qty-sold-out"\n                     ng-if="AddToCartDirectiveCtrl.IsShowSoldOut"\n                     translate="frontend.typescripts.components.sold_out"><\/div>\n                <div class="qty-wrapper" \n                     ng-if="!AddToCartDirectiveCtrl.IsShowSoldOut"\n                     data-ng-class="{\'qty-wrapper-normal\': IsFromDialog}">\n                    <div class="qty-counter" data-ng-class="{\'qty-counter-normal\': IsFromDialog}">\n                        <div class="qty-counter-btn decrease-btn"\n                             data-ng-if="!IsFromDialog"\n                             ng-class="{\'disabled\': (AddToCartDirectiveCtrl.AddedQuantity <= 1 || SelectedSKUPropertySet.SellingQty === 0)}"\n                             ng-click="AddToCartDirectiveCtrl.ChangeAddedQuantity(false)">\n                            <i class="icon icon-slim-minus"><\/i>\n                        <\/div>\n                        <div class="qty-counter-btn decrease-btn-normal"\n                             data-ng-if="IsFromDialog"\n                             ng-class="{\'disabled-normal\': (AddToCartDirectiveCtrl.AddedQuantity <= 1 || SelectedSKUPropertySet.SellingQty === 0)}"\n                             ng-click="AddToCartDirectiveCtrl.ChangeAddedQuantity(false)">\n                            <i class="icon icon-slim-minus"><\/i>\n                        <\/div>\n                        <div class="qty-number" data-ng-class="{\'qty-number-normal\': IsFromDialog}">\n                            <input type="number" class="qty-number-input" \n                                   data-ng-class="{\'qty-number-input-normal\': IsFromDialog}"\n                                   ng-model="AddToCartDirectiveCtrl.AddedQuantity"\n                                   ns-input-number-limit\n                                   max="{{!SelectedSKUPropertySet?\'\':AddToCartDirectiveCtrl.SellingQty}}"\n                                   min="1"\n                                   value="1"/>\n                        <\/div>\n                        <div class="qty-counter-btn increase-btn"\n                             data-ng-if="!IsFromDialog"\n                             ng-class="{\'disabled\': (AddToCartDirectiveCtrl.AddedQuantity === SelectedSKUPropertySet.SellingQty),\n                                        \'unselected\': !SelectedSKUPropertySet}"\n                             ng-click="AddToCartDirectiveCtrl.ChangeAddedQuantity(true)">\n                            <i class="icon icon-slim-plus"><\/i>\n                        <\/div>\n                        <div class="qty-counter-btn increase-btn-normal"\n                             data-ng-if="IsFromDialog"\n                             ng-class="{\'disabled-normal\': (AddToCartDirectiveCtrl.AddedQuantity === SelectedSKUPropertySet.SellingQty),\n                                        \'unselected\': !SelectedSKUPropertySet}"\n                             ng-click="AddToCartDirectiveCtrl.ChangeAddedQuantity(true)">\n                            <i class="icon icon-slim-plus"><\/i>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 商品頁可售數顯示 -->\n            <span class="stock-qty-text"                     \n                  ng-if="IsShowStockQty && !AddToCartDirectiveCtrl.IsPopup && !AddToCartDirectiveCtrl.IsMobile"\n                  translate="frontend.typescripts.components.stock_qty_number"\n                  translate-value-val0="{{AddToCartDirectiveCtrl.StockQty|number}}"><\/span>\n            <div class="salepage-btn-group" data-ng-class="{\'salepage-btn-group-normal\': IsFromDialog}">\n                <button class="sale-page-btn core-btn add-to-cart-btn"\n                        ng-class="{\n                            \'cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\': AddToCartDirectiveCtrl.IsMobile || (!AddToCartDirectiveCtrl.IsMobile && IsDirectCheckout===false), \n                            \'cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor\': !AddToCartDirectiveCtrl.IsMobile && IsDirectCheckout!==false\n                        }"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Normal && (!AddToCartDirectiveCtrl.IsEnableBackInStockAlert || !AddToCartDirectiveCtrl.IsShowSoldOut) && (IsDirectCheckout === false || !AddToCartDirectiveCtrl.IsMobile))"\n                        ng-disabled="AddToCartDirectiveCtrl.IsWaitting"\n                        ng-click="AddToCartDirectiveCtrl.AddToCart()"\n                        translate="frontend.typescripts.components.add_to_cart">\n                <\/button>\n                <button class="core-btn immediately-buy-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Normal && (!AddToCartDirectiveCtrl.IsEnableBackInStockAlert || !AddToCartDirectiveCtrl.IsShowSoldOut) && (IsDirectCheckout === true || !AddToCartDirectiveCtrl.IsMobile))"\n                        ng-disabled="AddToCartDirectiveCtrl.IsWaitting"\n                        ng-click="AddToCartDirectiveCtrl.AddToCart(true)"\n                        translate="frontend.typescripts.components.checkout_now">\n                <\/button>\n                <button class="core-btn back-in-stock-alert-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                        ng-if="!AddToCartDirectiveCtrl.IsDisabledBackInStockBtn && AddToCartDirectiveCtrl.IsEnableBackInStockAlert && (SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut || SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Normal) && AddToCartDirectiveCtrl.IsShowSoldOut && !AddToCartDirectiveCtrl.IsSkuSubscribedBackInStock()"\n                        ng-disabled="AddToCartDirectiveCtrl.IsWaitting"\n                        ng-click="AddToCartDirectiveCtrl.SubscribeBackInStock()"\n                        translate="frontend.typescripts.components.back_in_stock_subscribe">\n                <\/button>\n                <button class="core-btn back-in-stock-alert-btn cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                        ng-if="AddToCartDirectiveCtrl.IsEnableBackInStockAlert && (SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut || SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Normal) && AddToCartDirectiveCtrl.IsShowSoldOut && AddToCartDirectiveCtrl.IsSkuSubscribedBackInStock()"\n                        ng-disabled="AddToCartDirectiveCtrl.IsWaitting"\n                        ng-click="AddToCartDirectiveCtrl.UnsubscribeBackInStock()"\n                        translate="frontend.typescripts.components.back_in_stock_unsubscribe">\n                <\/button>\n                <button class="core-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                        ng-class="{\'share-to-buy-btn\': !AddToCartDirectiveCtrl.IsHiddenSale, \'disabled-btn\': AddToCartDirectiveCtrl.IsHiddenSale}"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Locked&&\n                                AddToCartType === AddToCartDirectiveCtrl.AddToCartTypeEnum.ShareToBuy)"\n                        ng-click="AddToCartDirectiveCtrl.FacebookShareToBuy()"\n                        ng-disabled="AddToCartDirectiveCtrl.IsWaitting || AddToCartDirectiveCtrl.IsHiddenSale"\n                        translate="frontend.typescripts.components.buy_immediately_after_sharing">\n                <\/button>\n                <button class="core-btn app-only-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.Locked&&\n                                AddToCartType === AddToCartDirectiveCtrl.AddToCartTypeEnum.AppOnly)"\n                        data-ns-ga-event-track\n                        data-track-category="商品頁"\n                        data-track-action="APP獨賣"\n                        ng-click="AddToCartDirectiveCtrl.AppOnlyToBuy()"\n                        translate="frontend.typescripts.components.app_single_sale">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="AddToCartDirectiveCtrl.IsDisabledBackInStockBtn"\n                        disabled\n                        translate="frontend.typescripts.components.back_in_stock_subscribe">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="(!AddToCartDirectiveCtrl.IsEnableBackInStockAlert && SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut && (AddToCartDirectiveCtrl.SalePageModel.SoldOutActionType === AddToCartDirectiveCtrl.SoldOutTypeEnum[AddToCartDirectiveCtrl.SoldOutTypeEnum.OutOfStock] || !AddToCartDirectiveCtrl.SalePageModel.SoldOutActionType))"\n                        disabled\n                        translate="frontend.typescripts.components.sold_out">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut && AddToCartDirectiveCtrl.SalePageModel.SoldOutActionType === AddToCartDirectiveCtrl.SoldOutTypeEnum[AddToCartDirectiveCtrl.SoldOutTypeEnum.Restock])"\n                        disabled\n                        translate="frontend.typescripts.components.restock">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.SoldOut && AddToCartDirectiveCtrl.SalePageModel.SoldOutActionType === AddToCartDirectiveCtrl.SoldOutTypeEnum[AddToCartDirectiveCtrl.SoldOutTypeEnum.NoRestock])"\n                        disabled\n                        translate="frontend.typescripts.components.no_restock">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.UnListing ||\n                              SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.IsClosed)"\n                        disabled\n                        translate="frontend.typescripts.components.has_been_removed">\n                <\/button>\n                <button class="core-btn disabled-btn"\n                        ng-if="(SalePageStatus === AddToCartDirectiveCtrl.SalePageStatusEnum.NotStartSell)"\n                        disabled\n                        translate="frontend.typescripts.components.not_yet_open_for_sale">\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-add-to-cart/AddToCartResult.html",'<div class="modal-result">\n    <img  src="/V2/Content/Images/Icon/icon-cart-ok.svg" alt="">\n    <div>{{ResultMessage}}<\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-app-only/appOnlyPromotionDirective.html",'<div class="app-only-promotion">\n    <span class="app-only-promotion__desc">\n        {{desc}}\n        <a href="#" class="app-only-promotion__link core-link"\n           ng-click="clickDownloadApp(shopId, salePageId, $event)"\n           ng-bind-html="downloadLinkHtml">\n        <\/a>\n    <\/span>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-basket/basket.html",'<div class="ns-basket"\n     ng-class="{\'basket-with-qty-counter\': TemplateType === TemplateTypeEnum.DesktopWithQtyCounter,\n                \'ns-basket-mobile\': TemplateType === TemplateTypeEnum.Mobile}">\n    <!--菜籃手把-->\n    <div class="basket-header">\n        <a href="javascript:void(0)"\n           class="basket-header-knob trapezoid-bottom"\n           data-ng-click="IsOpen = !IsOpen"\n           ns-ga-event-track\n           track-category="現折活動內容頁-開收菜籃"\n           track-action="開收菜籃/點箭頭">\n            <i class="fa fa-angle-up basket-header-icon"\n               data-ng-class="{\'rotate-knob\':IsOpen}"><\/i>\n        <\/a>\n        <div class="basket-header-line"><\/div>\n    <\/div>\n    <!--菜籃底部-->\n    <!--菜籃主體-->\n    <div class="basket-body"\n         data-ng-class="{\'basket-body-open\':IsOpen,\n                         \'basket-body__with-section-group-bar\': PromotionEngineType === PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece]}"\n         ns-horizon-scrollable\n         ns-scroll-right-btn-class="angle-right"\n         ns-scroll-left-btn-class="angle-left"\n         ns-scroll-content-class="basket-body-ul">\n        <ns-section-group-bar\n            ns-section-group-list="SectionGroupList"\n            ns-selected-section-group="SelectedSectionGroup"\n            ns-section-group-changed="SelectSectionGroup(tagId)"\n            ns-enable_section_group_btn="!IsMobile"\n            ns-identity="basket"\n            data-ng-if="PromotionEngineType === PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece] && !IsMobile">\n        <\/ns-section-group-bar>\n        <!--無商品情況-->\n        <div class="basket-body-frame"\n             data-ng-if="!SalepageList || SalepageList.length === 0">\n            <h4 class="basket-body-title"\n                data-ng-if="PromotionEngineType !== PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece] ||\n                            (IsMobile && PromotionEngineType === PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece])"\n                translate="frontend.typescripts.components.basket_empty_hint"><\/h4>\n            <h4 class="basket-body-title"\n                data-ng-if="!IsMobile && PromotionEngineType === PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece]"\n                translate="frontend.typescripts.components.basket_group_empty_hint"><\/h4>\n        <\/div>\n        <!--有商品情況-->\n        <div class="basket-body__sale-page-list"\n             data-ng-show="SalepageList && SalepageList.length > 0">\n            <a href="javascript:void(0)"\n               class="basket-body-arrow angle-left hide-at-mobile">\n                <i class="fa fa-angle-left"><\/i>\n            <\/a>\n            <div class="basket-body-frame">\n                <ul class="basket-body-ul">\n                    <li data-ng-if="!IsMobile || (IsMobile && PromotionEngineType !== PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece])">\n                        <ul>\n                            <li class="basket-body-li"\n                                data-ng-repeat="salepage in SalepageList | filter: SalePageListFilterByTagId as filterdSalePageList track by $index"\n                                data-ng-class="{\'fade-in\':salepage.IsNew,\'fade-out\':salepage.IsRemove}"\n                                ng-include="ItemListTemplateUrl">\n                            <\/li>\n                            <li class="basket-body-title"\n                                ng-if="filterdSalePageList.length === 0">\n                                <span translate="frontend.typescripts.components.basket_group_empty_hint"><\/span>\n                            <\/li>\n                        <\/ul>\n                    <\/li>\n                    <li data-ng-if="IsMobile && PromotionEngineType === PromotionEngineTypeEnum[PromotionEngineTypeEnum.DiscountReachGroupsPiece]">\n                        <ul class="basket-body__section-group"\n                            data-ng-style="{\'borderLeftColor\': sectionGroup.ColorCode}"\n                            data-ng-repeat="sectionGroup in SectionGroupList"\n                            data-ng-show="sectionGroup.Count > 0">\n                            <li class="basket-body__section-group-title"\n                                data-ng-style="{\'color\': sectionGroup.ColorCode}">\n                                <i class="icon-editor icon-editor-icon_tag basket-body__section-group-title-icon"><\/i>\n                                <span>{{sectionGroup.Title}}<\/span>\n                            <\/li>\n                            <li class="basket-body-li"\n                                data-ng-repeat="salepage in GetSalePageListByTagId(sectionGroup.TagId)"\n                                data-ng-class="{\'fade-in\':salepage.IsNew,\'fade-out\':salepage.IsRemove}"\n                                ng-include="ItemListTemplateUrl">\n                            <\/li>\n                        <\/ul>\n                    <\/li>\n                <\/ul>\n            <\/div>\n            <a href="javascript:void(0)"\n               class="basket-body-arrow angle-right hide-at-mobile">\n                <i class="fa fa-angle-right"><\/i>\n            <\/a>\n        <\/div>\n    <\/div>\n    <div class="basket-footer"\n         data-ng-click="IsOpen = !IsOpen"\n         ns-ga-event-track\n         track-category="現折活動內容頁-開收菜籃"\n         track-action="開收菜籃/點文字資訊">\n        <div class="basket-footer-left">\n            <div class="basket-footer-tag"\n                 ng-if="DiscountMessage.Tags">\n                {{DiscountMessage.Tags}}\n                <a href="#"\n                   class="core-link basket-link"\n                   ng-click="GoToLogin($event)"\n                   ng-if="IsPromotionEngine && CrmShopMemberCardName.length > 0 && !IsLogin"\n                   translate="frontend.typescripts.promotion.log_in_right_now"><\/a>\n            <\/div>\n            <h2 class="basket-footer-title"\n                ng-if="DiscountMessageHtml"\n                ng-bind-html="DiscountMessageHtml">\n            <\/h2>\n            <div class="basket-footer-desc"\n                  ng-bind-html="DiscountSubMessageHtml">\n            <\/div>\n        <\/div>\n        <div class="basket-footer-right">\n            <button class="btn-red basket-footer-btn basket-footer-btn__primary"\n                    data-ng-class="{\'basket-footer-btn--half cms-primaryBtnBgColor cms-primaryBtnTextColor\': IsShowAppDownloadButton()}"\n                    data-ng-click="ConfirmToDownloadApp(ShopId); $event.preventDefault(); $event.stopPropagation()"\n                    data-ng-if="IsShowAppDownloadButton()"\n                    translate="frontend.typescripts.components.download_app_get_bonus"><\/button>\n            <button class="btn-red basket-footer-btn"\n                    data-ng-class="{\'basket-footer-btn__primary\': !IsAppOnlyPromotion || (IsAppOnlyPromotion && (!IsLogin || !IsMatchedUserScopes)),\n                                    \'cms-primaryBtnBgColor cms-primaryBtnTextColor\': !IsAppOnlyPromotion,\n                                    \'basket-footer-btn__sub\': IsShowAppDownloadButton(),\n                                    \'basket-footer-btn--half\': IsShowAppDownloadButton(),\n                                    \'cms-secondBtnTextColor cms-secondBtnBgColor cms-secondBtnBorderColor\': IsShowAppDownloadButton() && SalepageList.length >= 1,\n                                    \'basket-footer-btn--disable\':!SalepageList || SalepageList.length === 0}"\n                    data-ng-click="ConfirmToShop(); $event.preventDefault(); $event.stopPropagation()"\n                    translate="frontend.typescripts.components.basket_go_to_shopping_cart"><\/button>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-basket/itemListDesktop.template.html",'<a href="javascript:void(0)"\n   class="basket-body-close"\n   data-ng-click="RemoveItem(salepage.SalePageId,salepage.SaleProductSKUId)">\n    <i class="icon icon-close"><\/i>\n<\/a>\n<figure class="basket-body-img-container">\n    <img class="basket-body-img"\n         data-ng-class="{\'fade-in\':salepage.IsNew}"\n         ng-src="{{salepage.SalePageImageUrl}}"\n         alt="商品圖片"/>\n<\/figure>\n<div class="basket-body-price cms-moneyColor" data-ng-bind="salepage.Price | preferredCurrency"><\/div>\n<div class="basket-body-qty">\n    <span translate="frontend.typescripts.common.qty"><\/span>:{{salepage.Qty}}\n<\/div>\n<div class="basket-body-sku">\n    <span data-ng-bind="salepage.SkuLevel1"><\/span>\n    <span data-ng-if="salepage.SkuLevel2">/<\/span>\n    <span data-ng-bind="salepage.SkuLevel2"><\/span>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-basket/itemListDesktopWithQtyCounter.template.html",'<a href="javascript:void(0)"\n   class="basket-body-close"\n   data-ng-click="ConfirmDeleteItem(salepage)">\n    <i class="icon icon-close"><\/i>\n<\/a>\n<figure class="basket-body-img-container">\n    <img class="basket-body-img"\n         data-ng-class="{\'fade-in\':salepage.IsNew}"\n         ng-src="{{salepage.SalePageImageUrl}}"\n         alt="商品圖片"/>\n<\/figure>\n<div class="basket-body-sku">\n    <span data-ng-bind="salepage.SkuLevel1"><\/span>\n    <span data-ng-if="salepage.SkuLevel2">/<\/span>\n    <span data-ng-bind="salepage.SkuLevel2"><\/span>\n<\/div>\n<div class="basket-body-price cms-moneyColor" data-ng-bind="salepage.Price | preferredCurrency"><\/div>\n<div class="basket-body-qty">\n    <div class="qty-wrapper">\n        <div class="qty-counter">\n            <div class="qty-counter-btn decrease-btn"\n                 ng-click="ChangeAddedQuantity(false, salepage)">\n                <i class="icon icon-slim-minus"><\/i>\n            <\/div>\n            <div class="qty-number">\n                <input type="number" class="qty-number-input"\n                       ng-model="salepage.Qty"\n                       ns-input-number-limit\n                       max="{{salepage.SellingQty}}"\n                       min="1"\n                       value="1"\n                       disabled/>\n            <\/div>\n            <div class="qty-counter-btn increase-btn"\n                 ng-class="{\'disabled\': (salepage.Qty === salepage.SellingQty)}"\n                 ng-click="ChangeAddedQuantity(true, salepage)">\n                <i class="icon icon-slim-plus"><\/i>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-basket/itemListMobile.template.html",'<a href="javascript:void(0)"\n   class="basket-body-close"\n   data-ng-click="ConfirmDeleteItem(salepage)">\n    <i class="icon icon-slim-close"><\/i>\n<\/a>\n<figure class="basket-body-img-container">\n    <img class="basket-body-img"\n         data-ng-class="{\'fade-in\':salepage.IsNew}"\n         ng-src="{{salepage.SalePageImageUrl}}"\n         alt="商品圖片"/>\n<\/figure>\n<div class="basket-body-info">\n    <div class="basket-body-product-name" data-ng-bind="salepage.Title">\n    <\/div>\n    <div class="basket-body-sku">\n        <span data-ng-bind="salepage.SkuLevel1"><\/span>\n        <span data-ng-if="salepage.SkuLevel2">/<\/span>\n        <span data-ng-bind="salepage.SkuLevel2"><\/span>\n    <\/div>\n    <div class="basket-body-price cms-moneyColor" data-ng-bind="salepage.Price | preferredCurrency"><\/div>\n    <div class="basket-body-qty">\n        <div class="qty-wrapper">\n            <div class="qty-counter">\n                <div class="qty-counter-btn decrease-btn"\n                     ng-click="ChangeAddedQuantity(false, salepage)">\n                    <i class="icon icon-slim-minus"><\/i>\n                <\/div>\n                <div class="qty-number">\n                    <input type="number" class="qty-number-input"\n                           ng-model="salepage.Qty"\n                           ns-input-number-limit\n                           max="{{salepage.SellingQty}}"\n                           min="1"\n                           value="1"\n                           disabled/>\n                <\/div>\n                <div class="qty-counter-btn increase-btn"\n                     ng-class="{\'disabled\': (salepage.Qty === salepage.SellingQty)}"\n                     ng-click="ChangeAddedQuantity(true, salepage)">\n                    <i class="icon icon-slim-plus"><\/i>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-basket/removeItemDialog.template.html",'<div class="modal-body">\n    <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCustomizeCtrl.Close()"><span aria-hidden="true">×<\/span><\/a>\n    <div class="modal-title ns-basket__modal-title">\n        {{ Title }}\n    <\/div>\n    <p class="long-message">\n        <span class="ns-basket__modal-message" ng-bind="Model.message"><\/span>\n    <\/p>\n    <div class="function">\n        <button class="button"\n                ng-click="DialogCustomizeCtrl.Cancel()">\n            <span translate="frontend.typescripts.common.move_to_fav"><\/span>\n        <\/button>\n        <button ng-click="DialogCustomizeCtrl.Ok()"\n                class="button-right cms-primaryBtnBgColor cms-primaryBtnTextColor">\n            <span translate="frontend.typescripts.common.remove_item"><\/span>\n        <\/button>\n    <\/div>\n<\/div>\n\n');n.put("/V2/TypeScripts/Components/ns-browsing-history/browsingHistory.html",'<div id="browsing-history" class="browsing-history">\n    <div class="browsing-header" data-ng-class="{\'close-menu\': !showMenu}">\n        <a class="switch-menu" data-ng-click="switchMenu()">\n            <span class="switch-menu-icon hide-at-mobile" data-ng-class="{\'turn-down\': !showMenu}"><\/span>\n            <i class="icon icon-history"><\/i>\n            <span class="menu-text">瀏覽紀錄<\/span>\n        <\/a>\n    <\/div>\n    <!--desktop 版-->\n    <div class="browsing-body-desktop" data-ng-if="showMenu && isDesktop">\n        <a class="scroll-btn scroll-up" data-ng-class="{\'scroll-disable\': currentIndex <= 0}"\n           data-ng-click="scrollUp()"><i class="fa fa-caret-up"><\/i><\/a>\n        <div class="menu-frame">\n            <div class="empty-menu" data-ng-if="salePageViewList.length === 0">\n                <div class="empty-desc">您還沒有逛過任何商品!<\/div>\n                <div class="link-desc">快來逛<\/div>\n                <a class="popular-salepage-link" ng-href="/Shop/HotSaleRanking/{{shopId}}?period=Weekly">人氣商品推薦<\/a>\n            <\/div>\n            <ul class="browsing-menu-ul" data-ng-if="salePageViewList.length > 0">\n                <li class="browsing-menu-li" data-ng-repeat="item in salePageViewList track by $index"\n                    ns-repeat-end\n                    data-ng-mouseenter="showDetail = hoverDetailFunction(true)"\n                    data-ng-mouseleave="showDetail = hoverDetailFunction(false)">\n                    <div data-ng-class="{\'content-border\': showDetail}">\n                        <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                           data-ns-ga-event-track\n                           data-track-category="瀏覽紀錄"\n                           data-track-action="click"\n                           data-track-label="看商品詳細(PC)"\n                           data-ns-ga-ec-product-clicks\n                           data-product-id="{{::item.SalePageId}}"\n                           data-product-name="{{::item.Title}}"\n                           data-product-price="{{::item.Price}}"\n                           data-product-position="{{::($index+1)}}"\n                           data-list-name="瀏覽紀錄商品">\n                            <img class="menu-image" data-ng-src="{{::item.PicUrl}}" data-ng-alt="item.Title"\n                                 data-ng-class="{\'no-broder\': showDetail}">\n                        <\/a>\n                        <div class="menu-detail" data-ng-if="showDetail">\n                            <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                               data-ns-ga-event-track\n                               data-track-category="瀏覽紀錄"\n                               data-track-action="click"\n                               data-track-label="看商品詳細(PC)"\n                               data-ns-ga-ec-product-clicks\n                               data-product-id="{{::item.SalePageId}}"\n                               data-product-name="{{::item.Title}}"\n                               data-product-price="{{::item.Price}}"\n                               data-product-position="{{::($index+1)}}"\n                               data-list-name="瀏覽紀錄商品">\n                                <h3 class="detail-title" data-ng-bind="item.Title"><\/h3>\n                            <\/a>\n                            <span class="detail-price">${{::item.Price}}<\/span>\n                            <a class="btn-red add-to-cart"\n                               data-ng-click="addToCart(item.SalePageId,item.Title,item.Price)">\n                                <i class="icon icon-cart"><\/i>\n                            <\/a>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <a class="scroll-btn scroll-down"\n           data-ng-class="{\'scroll-disable\': (currentIndex + browsingMenuCount) >= salePageViewList.length}"\n           data-ng-click="scrollDown()"><i class="fa fa-caret-down"><\/i><\/a>\n        <a class="clear-menu-btn" data-ng-if="salePageViewList.length > 0" data-ng-click="clearHistory()">清除紀錄<\/a>\n    <\/div>\n    <!--mobile 版-->\n    <div data-ng-if="!isDesktop">\n        <div ns-push-half-page\n             ns-is-open="showMenu"\n             ns-open-direction="\'right\'"\n             ns-close-function="switchMenu()"\n             class="browsing-body-mobile">\n            <div class="menu-header">\n                <div class="menu-title">\n                    <i class="icon icon-history"><\/i>\n                    <span class="menu-text">瀏覽紀錄<\/span>\n                <\/div>\n                <span class="close-menu-icon"\n                      data-ng-click="switchMenu();$event.preventDefault(); $event.stopPropagation()">\n                    <i class="icon icon-close"><\/i>\n                <\/span>\n            <\/div>\n            <div class="empty-menu" data-ng-if="salePageViewList.length === 0">\n                <div class="empty-desc">您還沒有逛過任何商品!<\/div>\n                <div class="link-desc">快來逛<\/div>\n                <a class="popular-salepage-link" ng-href="/Shop/HotSaleRanking/{{shopId}}?period=Weekly">人氣商品推薦<\/a>\n            <\/div>\n            <div class="scroll-section">\n                <ul class="browsing-menu-ul">\n                    <li class="browsing-menu-li" data-ng-repeat="item in salePageViewList track by $index">\n                        <div class="content-border">\n                            <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                               data-ns-ga-event-track\n                               data-track-category="瀏覽紀錄"\n                               data-track-action="click"\n                               data-track-label="看商品詳細(Mobile)"\n                               data-ns-ga-ec-product-clicks\n                               data-product-id="{{::item.SalePageId}}"\n                               data-product-name="{{::item.Title}}"\n                               data-product-price="{{::item.Price}}"\n                               data-product-position="{{::($index+1)}}"\n                               data-list-name="瀏覽紀錄商品">\n                                <img class="menu-image" data-ng-src="{{::item.PicUrl}}" data-ng-alt="item.Title">\n                            <\/a>\n                            <div class="menu-detail">\n                                <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                                   data-ns-ga-event-track\n                                   data-track-category="瀏覽紀錄"\n                                   data-track-action="click"\n                                   data-track-label="看商品詳細(Mobile)"\n                                   data-ns-ga-ec-product-clicks\n                                   data-product-id="{{::item.SalePageId}}"\n                                   data-product-name="{{::item.Title}}"\n                                   data-product-price="{{::item.Price}}"\n                                   data-product-position="{{::($index+1)}}"\n                                   data-list-name="瀏覽紀錄商品">\n                                    <h3 class="detail-title" data-ng-bind="item.Title"><\/h3>\n                                <\/a>\n                                <span class="detail-price">${{::item.Price}}<\/span>\n                                <a class="btn-red add-to-cart"\n                                   data-ng-click="addToCart(item.SalePageId,item.Title,item.Price)">\n                                    <i class="icon icon-cart"><\/i>\n                                <\/a>\n                            <\/div>\n                        <\/div>\n                    <\/li>\n                <\/ul>\n                <a class="clear-menu-btn" data-ng-if="salePageViewList.length > 0"\n                   data-ng-click="clearHistory()">清除紀錄<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-clock/clock.html",'<div ng-hide="IsHide && HideWhenTimesUp" class="ns-clock {{ClockClass}}">\n    <span class="clock-block clock-day" ng-show="ClockData.Day || !HideWhenTimesUp">\n        <span class="clock-count" ng-bind-html="ClockData.Day"><\/span>\n        <span class="clock-txt" translate="frontend.typescripts.components.strings_promote_day"><\/span>\n    <\/span>\n    <span class="clock-block clock-hour" ng-show="ClockData.Hour || !HideWhenTimesUp">\n        <span class="clock-count" ng-bind-html="ClockData.Hour"><\/span>\n        <span class="clock-txt" translate="frontend.typescripts.components.strings_promote_hour"><\/span>\n    <\/span>\n    <span class="clock-block clock-minute" ng-show="ClockData.Minute || !HideWhenTimesUp">\n        <span class="clock-count" ng-bind-html="ClockData.Minute"><\/span>\n        <span class="clock-txt" translate="frontend.typescripts.components.strings_promote_minute"><\/span>\n    <\/span>\n    <span class="clock-block clock-second" ng-show="ClockData.Second || !HideWhenTimesUp">\n        <span class="clock-count" ng-bind-html="ClockData.Second"><\/span>\n        <span class="clock-txt" translate="frontend.typescripts.components.strings_promote_second"><\/span>\n    <\/span>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-coupon-card/couponCardDirective.html",'<div class="coupon-card">\n  <div class="coupon-card__header">\n    <div class="coupon-card__title">\n      <img class="coupon-card__title__img" src="/V2/Content/Images/ECoupon/icon_coupon.svg">\n      <span class="text font-13" translate="frontend.typescripts.component.ns_coupon_card.coupon"><\/span>\n    <\/div>\n    <div class="coupon-card__way text font-12" translate="frontend.typescripts.component.ns_coupon_card.coupon_tag_offline"><\/div>\n  <\/div>\n  <div class="coupon-card__body">\n    <img class="coupon-card__img" data-ng-src="{{ImgUrl}}">\n    <div class="coupon-card__info">\n      <div class="coupon-card__info__shop-name" data-ng-bind="ShopName"><\/div>\n      <div class="coupon-card__info__title text font-15" data-ng-bind="Title"><\/div>\n      <div class="coupon-card__info__description text font-12" data-ng-bind="Description"><\/div>\n      <div class="coupon-card__info__more-detail text font-12" translate="frontend.typescripts.component.ns_coupon_card.more_detail"><\/div>\n    <\/div>\n  <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-credit-card/creditCard.html",'<form class="creditCardForm" name="CreditCardForm" novalidate>\n    <div class="card-notice" ng-hide="HideNotice">\n        <h2 class="payProcess-block-title" translate="frontend.typescripts.component.ns_credit_card.card_info"><\/h2>\n        <div ng-if="CreditCardDowntime.isVisibled" class="info-text-red info-text-red--normal multi-line">{{CreditCardDowntime.wording}}<\/div>\n    <\/div>\n    <div class="card-notice">\n        <span ng-if="DesignatePaymentPromotionHint" class="info-text-red info-text-red--normal multi-line">{{DesignatePaymentPromotionHint}}<\/span>\n    <\/div>\n    <!-- 信用卡輸入區 -->\n    <div class="creditCard">\n        <div class="cardInfo">\n            <div class="payProcess-item-row payProcess-item-row-white round-top"\n                 ng-class="{\'text-error\': (CreditCardNoTemp && !CheckFrontFourNoValid) || (CreditCardForm.CreditCardNo.$error.creditNoValid && (FocusInputType != 1 || Submitted)) || !CustomCardNoValidate}">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_number">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <input type="tel" class="creditCard-input creditCardNo" data-ng-show="!HasCreditCard || IsEdit"\n                        id="creditCardNo"\n                        name="CreditCardNo"\n                        ng-model="CreditCardNoTemp"\n                        ns-focus="FocusInputType == 1"\n                        ng-focus="FocusInputType = 1"\n                        ng-keyup="CreditCardNoTemp=KeyUpCardNo($event)"\n                        required\n                        autocomplete="off"\n                        ns-credit-no-valid\n                        translate-attr="{ placeholder: CardNumberPlaceholder }"\n                        maxlength="23" />\n                    <div class="creditCard-div"\n                        data-ng-show="HasCreditCard&&!IsEdit"\n                        data-ng-click="EditCardNo()">\n                        ****&nbsp;****&nbsp;****&nbsp;\n                        <span data-ng-bind="CreditCardNo.substring(CreditCardNo.length-4,CreditCardNo.length)"><\/span>\n                    <\/div>\n                    <i class="card-image suffix" ng-class="CreditCardImg"><\/i>\n                <\/div>\n                <p ng-show="CreditCardForm.CreditCardNo.$error.required && Submitted"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.card_number_required">\n                <\/p>\n                <p ng-show="(CreditCardNoTemp && !CheckFrontFourNoValid) || (CreditCardForm.CreditCardNo.$error.creditNoValid && (FocusInputType != 1 || Submitted)) || !CustomCardNoValidate"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.card_number_format_error">\n                <\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <input type="tel" class="creditCard-input creditCardDate"\n                        id="creditCardMonth"\n                        name="CreditCardMonth"\n                        ng-model="Month"\n                        ns-focus="FocusInputType == 2 && !Month"\n                        ng-focus="FocusInputType=2"\n                        ng-blur="CheckIsCreditCardDateFinish(\'month\')"\n                        placeholder="MM"\n                        required\n                        autocomplete="off"\n                        ng-pattern="CreditCardMonthPattern"\n                        ng-class="{\'text-error\':CreditCardForm.CreditCardMonth.$error.pattern && (FocusInputType != 2 || Submitted)}"\n                        ns-only-number\n                        maxlength="2"/>\n                    <span>/<\/span>\n                    <input type="tel" class="creditCard-input creditCardDate"\n                        id="creditCardYear"\n                        name="CreditCardYear"\n                        ng-model="Year"\n                        ns-focus="FocusInputType == 3 && !Year"\n                        ng-focus="FocusInputType=3"\n                        ng-blur="CheckIsCreditCardDateFinish(\'year\')"\n                        ng-class="{\'text-error\':CreditCardForm.CreditCardYear.$error.creditYearValid && (FocusInputType != 3 || Submitted)}"\n                        placeholder="YY"\n                        required\n                        autocomplete="off"\n                        maxlength="2"\n                        ns-credit-year-valid\n                        ns-only-number/>\n                    <span class="creditCard-desc suffix"\n                        data-ng-class="{\'isFocus\':FocusInputType===2||FocusInputType===3}"\n                        translate="frontend.typescripts.component.ns_credit_card.month_year">\n                    <\/span>\n                <\/div>\n                <p ng-show="(CreditCardForm.CreditCardMonth.$error.required || CreditCardForm.CreditCardYear.$error.required) && Submitted"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.expiry_date_required">\n                <\/p>\n                <p ng-show="(CreditCardForm.CreditCardMonth.$error.pattern && (FocusInputType != 2 || Submitted))\n                 || (CreditCardForm.CreditCardYear.$error.creditYearValid && (FocusInputType != 3 || Submitted))"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.expiry_date_format_error">\n                <\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white round-bottom" style="margin-bottom: 1px">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_cvv">\n                <\/label>\n                <input type="tel" class="creditCard-input creditCardCVV"\n                       id="creditCardCVV"\n                       name="CreditCardCVV"\n                       ng-model="CreditCardCVV"\n                       ns-focus="FocusInputType == 4 && !CreditCardCVV"\n                       ng-focus="FocusInputType = 4;CreditCardImg = \'cvv2\'"\n                       translate-attr="{ placeholder: CardCvvPlaceholder }"\n                       autocomplete="off"\n                       ng-blur="FocusInputType = 0; CheckIsCreditCardCVVFinish(CreditCardCVV)"\n                       required\n                       ns-only-number\n                       ng-class="{\'text-error\': CreditCardCVV && !CheckCreditCardCVVValid && (FocusInputType != 4 || Submitted)}"\n                       maxlength="{{ CardCvvMaxLength }}"/>\n                <p ng-show="CreditCardForm.CreditCardCVV.$error.required && Submitted"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.card_cvv_required">\n                <\/p>\n                <p ng-show="CreditCardCVV && !CheckCreditCardCVVValid && (FocusInputType != 4 || Submitted)"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.card_cvv_format_error">\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/form>\n');n.put("/V2/TypeScripts/Components/ns-credit-card/creditCardDisplay.html",'<div>\n    <i class="card-image" ng-class="CreditCardType"><\/i>\n    <span>{{ CreditCardType | uppercase }}<\/span>\n    <span>XXXX-{{ CreditCardNoLastFourNo }}<\/span>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-custom-offline-payment-inform/customOfflinePaymentInformDirective.html",'<div class="custom-offline-payinfo-container">\n    <div class="payment-inform-row" ng-if="!!paymentInfo.value"\n        ng-repeat="paymentInfo in CustomOfflinePaymentInformCtrl.PaymentInfomList">\n        <!-- Title -->\n        <div class="payment-inform-row__header">\n            <span ng-bind="paymentInfo.title"><\/span>\n        <\/div>\n        <!-- Text Content -->\n        <div ng-if="paymentInfo.type === CustomOfflinePaymentInformCtrl.PaymentInfomTypeEnum.text" \n            class="payment-inform-row__content content-container">\n            <div class="content-container__text-row">\n                <span id="paymentInfo-{{paymentInfo.property}}" ng-bind="paymentInfo.value"><\/span>\n            <\/div>\n            <div class="content-container__copy-btn" ng-if="paymentInfo.showCopyButton"\n                ng-click="CustomOfflinePaymentInformCtrl.CopyText(paymentInfo.property)">\n                <span class="icon-editor-icon_copy"><\/span>\n            <\/div>\n        <\/div>\n        <!-- Image Content -->\n        <div ng-if="paymentInfo.type === CustomOfflinePaymentInformCtrl.PaymentInfomTypeEnum.image" \n            class="payment-inform-row__content content-container">\n            <div class="content-container__image-row">\n                <img class="content-container__QRcode-img"\n                    id="paymentInfo-{{paymentInfo.property}}"\n                    alt="QRCodeImg"\n                    src="{{paymentInfo.value}}">\n            <\/div>\n        <\/div>\n        <!-- Note Content -->\n        <div ng-if="paymentInfo.type === CustomOfflinePaymentInformCtrl.PaymentInfomTypeEnum.note" \n            class="payment-inform-row__content content-container">\n            <div class="content-container__note-row">\n                <div id="paymentInfo-{{paymentInfo.property}}" ng-bind="paymentInfo.value"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-dynamic-field/dynamicFieldDirective.html",'<div class="form-memberzone" data-ng-show="isShown">\n    <!-- Label -->\n    <label class="form-member-title">\n        <span class="required-field" data-ng-if="isRequired">*<\/span>\n        <span data-ng-bind="apiModel.CustomName"><\/span>\n    <\/label>\n    \n    <div data-ng-switch="contentType">\n        <!-- Dropdown case -->\n        <div class="custom-dropdown" data-content="" data-ng-switch-when="dropdown">\n            <div class="custom-dropdown--display">{{selectedValue || option}}<\/div>\n            <select class="custom-dropdown--bar" name="{{apiModel.ColumnName}}"\n                    data-ng-model="apiModel.Value"\n                    data-ng-options="option.Value as option.Desc for option in apiModel.Display.DropDownEntities"\n                    data-ng-required="isRequired"\n                    data-ng-disabled="apiModel.IsReadOnly">\n                <option value="" translate="frontend.typescripts.common.select_default_placeholder"><\/option>\n            <\/select>\n        <\/div>\n\n        <!-- Default case(Input text) -->\n        <input data-ng-switch-default="text" name="{{apiModel.ColumnName}}" type="string" class="form-member-input"\n               data-ng-model="apiModel.Value"\n               data-ng-required="isRequired"\n               data-ng-disabled="apiModel.IsReadOnly">\n    <\/div> \n\n    <!-- Validation -->\n    <span class="interror"\n          ng-show="isSubmitted || form[apiModel.ColumnName].$touched">\n        <label class="form-member-title hide-at-mobile"><\/label>\n        <p ng-show="form[apiModel.ColumnName].$error.required" translate="frontend.typescripts.components.this_column_is_required"><\/p>\n    <\/span>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-ecoupon-card/eCouponCardDirective.html",'<div ng-include="getTemplateUrl(discountType)"><\/div>\n');n.put("/V2/TypeScripts/Components/ns-ecoupon-card/eCouponCardTemplate.html",'<div\n  class="ecoupon-card"\n  data-ng-class="{\'official-bg\': isOfficial, \n                     \'exchange-point-bg\': exchangeButton,\n                     \'detail-bg\': isDetail }"\n  data-ng-click="ProceedCallBack($event)"\n  data-ng-if="!isDisable"\n>\n  <!-- 折價券種類 & 使用通路 -->\n  <div\n    class="ecoupon-card-title"\n    data-ng-class="{\'official-title\': isOfficial}"\n  >\n    <img\n      class="ecoupon-card-title__image"\n      src="/V2/Content/Images/ECoupon/icon_coupon.svg"\n      data-ng-show="!isPresent"\n    />\n    <img\n      class="ecoupon-card-title__image"\n      src="/V2/Content/Images/ECoupon/gift.svg"\n      data-ng-show="isPresent"\n    />\n    <span class="ecoupon-card-title__name text font-13 black-three"\n      >{{ ReturnECouponName(ecouponType) }}<\/span\n    >\n  <\/div>\n  <!-- 使用通路 -->\n  <div class="ecoupon-card-way">\n    <!-- 折價券 TAG -->\n    <div class="ecoupon-card-way__text text font-12">{{ ReturnECouponTag(model.IsOnline, model.IsOffline, isTake, model.IsExchangeLocation, model.ExchangeLocationId) }}<\/div>\n  <\/div>\n\n  <!-- 折價券折扣金額 or 打幾折 -->\n  <div class="ecoupon-card-discount">\n    <span class="text black-three font-33 weight-500">\n      {{ ReturnDiscountWording(model.DiscountTypeDef, model.DiscountPercent,\n      model.DiscountPrice) }}\n    <\/span>\n  <\/div>\n\n  <!-- 折價券說明 -->\n  <div class="ecoupon-card-info">\n    <!-- 折價券客戶自訂文字 -->\n    <div class="ecoupon-card-info__custom-word text black-three">\n      {{ model.TicketDisplayText }}\n    <\/div>\n\n    <!-- 使用條件描述 首頁不顯示-->\n    <div\n      class="text warm-grey font-12 ecoupon-card-info__condition-text"\n      data-ng-if="!isOfficial"\n    >\n      <!-- 結帳滿 {{ model.ECouponUsingMinPrice | preferredCurrency }} 可用 -->\n      <span\n        data-ng-if="model.HasECouponUsingMinPrice"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_consumption_has_min_price"\n        translate-value-val0="{{ model.ECouponUsingMinPrice | preferredCurrency }}"\n      ><\/span>\n\n      <!-- 消費即可使用 -->\n      <span\n        data-ng-if="!model.HasECouponUsingMinPrice"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_consumption_no_limt"\n      ><\/span>\n    <\/div>\n\n    <!-- 領取期限 官網腰帶 -->\n    <div\n      class="ecoupon-card-info__date-text text font-12 warm-grey"\n      data-ng-if="!isTake && isOfficial"\n    >\n      <!-- 領取期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"\n      ><\/span>\n      <span class="left"\n        >{{ model.EndDateTime | nsDotNetDateParser | date }}<\/span\n      >\n    <\/div>\n\n    <!-- 領取 or 兌換期限-->\n    <div\n      class="ecoupon-card-info__date-text text font-12"\n      data-ng-class="{\'grapefruit\': CheckTimeLess24(model.EndDateTime), \'warm-grey\': !CheckTimeLess24(model.EndDateTime)}"\n      data-ng-if="!isTake && !isOfficial"\n    >\n      <!-- 兌換期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        data-ng-show="ecouponType === \'PointExchange\'"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_exchange"\n      ><\/span>\n\n      <!-- 領取期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        data-ng-show="ecouponType !== \'PointExchange\'"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"\n      ><\/span>\n\n      <!-- 倒數計時元件 -->\n      <div\n        class="left"\n        ns-clock-time\n        ns-clock-time-end-date="model.EndDateTime"\n        ns-clock-time-is-closed="Reload()"\n        data-ng-if="CheckTimeLess24(model.EndDateTime)"\n      ><\/div>\n      <span class="left" data-ng-if="!CheckTimeLess24(model.EndDateTime)"\n        >{{ model.EndDateTime | date }}<\/span\n      >\n    <\/div>\n\n    <!-- 使用期限-->\n    <div\n      class="ecoupon-card-info__date-text text font-12"\n      data-ng-class="{\'grapefruit\': CheckTimeLess24(model.UsingEndDateTime), \'warm-grey\': !CheckTimeLess24(model.UsingEndDateTime)}"\n      data-ng-if="isTake && !isOfficial"\n    >\n      <!-- 使用期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_use"\n      ><\/span>\n\n      <!-- 倒數計時元件開始 -->\n      <div\n        class="left"\n        ns-clock-time\n        ns-clock-time-end-date="model.UsingEndDateTime"\n        ns-clock-time-is-closed="Reload()"\n        data-ng-if="CheckTimeLess24(model.UsingEndDateTime)"\n      ><\/div>\n      <span class="left" data-ng-if="!CheckTimeLess24(model.UsingEndDateTime)"\n        >{{ model.UsingEndDateTime | date }}<\/span\n      >\n    <\/div>\n  <\/div>\n\n  <!-- 已領取 or 已兌換 -->\n  <div class="ecoupon-card-state" data-ng-if="isTake">\n    <!-- 已領取 -->\n    <div\n      class="ecoupon-card-state__text detail-state text grapefruit font-12 cms-moneyColor"\n      data-ng-show="ecouponType !== \'PointExchange\'"\n    >\n      <i class="fa fa-check-circle state-icon"><\/i>\n      <span\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_state_receive"\n      ><\/span>\n    <\/div>\n\n    <!-- 已兌換 -->\n    <div\n      class="ecoupon-card-state__text detail-state text grapefruit font-12 cms-moneyColor"\n      data-ng-show="ecouponType === \'PointExchange\'"\n    >\n      <i class="fa fa-check-circle state-icon"><\/i>\n      <span\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_state_exchange"\n      ><\/span>\n    <\/div>\n  <\/div>\n\n  <!-- 領取 or 下載app or 點數兌換 -->\n  <div class="ecoupon-card-action" data-ng-if="!isDetail">\n    <!-- 官網腰帶 領取-->\n    <button\n      class="btn ecoupon-card-action__btn"\n      data-ng-click="ProceedCallBack($event)"\n      data-ng-if="isOfficial"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_receive"\n    ><\/button>\n\n    <!-- 一般領取 -->\n    <button\n      class="btn ecoupon-card-action__btn cms-primaryBtnBgColor cms-primaryBtnTextColor"\n      data-ng-click="ReceiveCallBack($event)"\n      data-ng-if="receiveButton"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_receive"\n    ><\/button>\n\n    <!-- 下載APP -->\n    <button\n      class="btn ecoupon-card-action__btn cms-primaryBtnBgColor cms-primaryBtnTextColor"\n      data-ng-click="DownLoadAppCallBack($event)"\n      data-ng-if="downloadButton"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_download"\n    ><\/button>\n\n    <!-- 紅利點數兌換 -->\n    <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n    <button\n      class="btn ecoupon-card-action__btn"\n      data-ng-if="exchangeButton && canExchange"\n      data-ng-click="ExchangePointCallBack($event)"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n      translate-value-val0="{{ model.ExchangePointCost | number }}"\n    ><\/button>\n\n    <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n    <button\n      class="btn ecoupon-card-action__disabled-btn"\n      data-ng-if="exchangeButton && !canExchange"\n      data-ng-click="$event.stopPropagation();"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n      translate-value-val0="{{ model.ExchangePointCost | number }}"\n    ><\/button>\n\n    <!-- 前往購物 -->\n    <button\n      class="btn ecoupon-card-action__outline-btn cms-secondBtnTextColor cms-secondBtnBgColor cms-secondBtnBorderColor"\n      data-ng-click="ProceedCallBack($event)"\n      data-ng-if="isTake"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_shopping"\n    ><\/button>\n  <\/div>\n\n  <!-- 詳細說明 -->\n  <div class="ecoupon-card-more-info" data-ng-if="infoButton">\n    <a\n      herf="javascript:void(0)"\n      class="core-link text weight-500"\n      data-ng-click="OpenEcouponInfoCallBack($event)"\n    >\n      <span\n        translate="frontend.typescripts.component.ns_ecoupon_card.action_info"\n      ><\/span\n      ><i class="icon icon-slim-arrow-right"><\/i>\n    <\/a>\n  <\/div>\n<\/div>\n\n<!-- 無法領取折價券 -->\n<div\n  class="ecoupon-card"\n  data-ng-class="{\'official-bg\': isOfficial, \n                     \'exchange-point-bg\': exchangeButton,\n                     \'detail-bg\': isDetail }"\n  data-ng-click="ProceedCallBack($event)"\n  data-ng-if="isDisable"\n>\n  <!-- 折價券種類 & 使用通路 -->\n  <div\n    class="ecoupon-card-title"\n    data-ng-class="{\'official-title\': isOfficial}"\n  >\n    <img\n      class="ecoupon-card-title__image"\n      src="/V2/Content/Images/ECoupon/icon_coupon.svg"\n      data-ng-show="!isPresent"\n    />\n    <img\n      class="ecoupon-card-title__image"\n      src="/V2/Content/Images/ECoupon/gift.svg"\n      data-ng-show="isPresent"\n    />\n    <span class="ecoupon-card-title__name text font-13 black-three"\n      >{{ ReturnECouponName(ecouponType) }}<\/span\n    >\n    <!-- 使用通路 -->\n    <div class="ecoupon-card-way">\n      <!-- 折價券 TAG -->\n      <div class="text font-12" \n           data-ng-class="{true: \'ecoupon-card-way__text\', false: \'ecoupon-card-way__text--disabled\'}[model.CouponTotalCount > 0]">{{ ReturnECouponTag(model.IsOnline, model.IsOffline, isTake, model.IsExchangeLocation, model.ExchangeLocationId) }}<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- 折價券折扣金額 or 打幾折 -->\n  <div class="ecoupon-card-discount">\n    <span\n      class="text font-33 weight-500"\n      data-ng-class="{true: \'black-three\', false: \'warm-grey\'}[model.CouponTotalCount > 0]"\n    >\n      {{ ReturnDiscountWording(model.DiscountTypeDef, model.DiscountPercent,\n      model.DiscountPrice) }}\n    <\/span>\n  <\/div>\n\n  <!-- 折價券說明 -->\n  <div class="ecoupon-card-info">\n    <!-- 折價券客戶自訂文字 -->\n    <div class="ecoupon-card-info__custom-word">\n      <span\n        class="text"\n        data-ng-class="{true: \'black-three\', false: \'warm-grey\'}[model.CouponTotalCount > 0]"\n      >\n        {{ model.TicketDisplayText }}\n      <\/span>\n    <\/div>\n\n    <!-- 使用條件描述 首頁不顯示-->\n    <div\n      class="text warm-grey font-12 ecoupon-card-info__condition-text"\n      data-ng-if="!isOfficial"\n    >\n      <!-- 結帳滿 {{ model.ECouponUsingMinPrice | preferredCurrency }} 可用 -->\n      <span\n        data-ng-if="model.HasECouponUsingMinPrice"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_consumption_has_min_price"\n        translate-value-val0="{{ model.ECouponUsingMinPrice | preferredCurrency }}"\n      ><\/span>\n\n      <!-- 消費即可使用 -->\n      <span\n        data-ng-if="!model.HasECouponUsingMinPrice"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_consumption_no_limt"\n      ><\/span>\n    <\/div>\n\n    <!-- 領取期限-->\n    <div\n      class="ecoupon-card-info__date-text text font-12 warm-grey"\n      data-ng-if="!isTake"\n    >\n      <!-- 兌換期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        data-ng-if="ecouponType === \'PointExchange\'"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_exchange"\n      ><\/span>\n\n      <!-- 領取期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        data-ng-if="ecouponType !== \'PointExchange\'"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"\n      ><\/span>\n\n      <span class="left" data-ng-if="!isOfficial"\n        >{{ model.EndDateTime | date }}<\/span\n      >\n      <span class="left" data-ng-if="isOfficial"\n        >{{ model.EndDateTime | nsDotNetDateParser| date }}<\/span\n      >\n    <\/div>\n    <!-- 使用期限-->\n    <div\n      class="ecoupon-card-info__date-text text font-12 warm-grey"\n      data-ng-if="isTake && !isOfficial"\n    >\n      <!-- 使用期限 -->\n      <span\n        class="ecoupon-card-info__date-word left"\n        translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_use"\n      ><\/span>\n\n      <span class="left">{{ model.UsingEndDateTime | date }}<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- 點數兌換 -->\n  <div\n    class="ecoupon-card-action"\n    data-ng-if="!isDetail && ecouponType === \'PointExchange\'"\n  >\n    <!-- 紅利點數兌換 -->\n    <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n    <button\n      class="btn ecoupon-card-action__disabled-btn"\n      data-ng-if="model.CouponTotalCount > 0"\n      data-ng-click="$event.stopPropagation();"\n      translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n      translate-value-val0="{{ model.ExchangePointCost | number }}"\n    ><\/button>\n  <\/div>\n\n  <!-- 領取一空 -->\n  <div class="ecoupon-card-action--disabled" data-ng-if="!isDetail">\n    <!-- 兌換一空 -->\n    <button\n      class="btn ecoupon-card-action__disabled-btn"\n      data-ng-show="ecouponType === \'PointExchange\' && model.CouponTotalCount === 0"\n      translate="frontend.typescripts.component.ns_ecoupon_card.disable_empty_exchange"\n    ><\/button>\n\n    <!-- 領取一空 -->\n    <button\n      class="btn ecoupon-card-action__disabled-btn"\n      data-ng-show="ecouponType !== \'PointExchange\'"\n      translate="frontend.typescripts.component.ns_ecoupon_card.disable_empty_receive"\n    ><\/button>\n  <\/div>\n\n  <!-- 詳細說明 -->\n  <div class="ecoupon-card-more-info" data-ng-if="infoButton">\n    <a\n      herf="javascript:void(0)"\n      class="core-link text weight-500"\n      data-ng-click="OpenEcouponInfoCallBack($event)"\n    >\n      <span\n        translate="frontend.typescripts.component.ns_ecoupon_card.action_info"\n      ><\/span\n      ><i class="icon icon-slim-arrow-right"><\/i>\n    <\/a>\n  <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-ecoupon-card/giftECouponCardTemplate.html",'<div class="ecoupon-card ecoupon-card--gift"\n     data-ng-class="{\'official-bg\': isOfficial, \n                     \'exchange-point-bg\': exchangeButton,\n                     \'detail-bg\': isDetail }"\n     data-ng-click="ProceedCallBack($event)" \n     data-ng-if="!isDisable">\n     <!-- 使用通路 -->\n    <div class="ecoupon-card-title" data-ng-class="{\'official-title\': isOfficial}">\n        <img class="ecoupon-card-title__image"\n             src="/V2/Content/Images/ECoupon/icon_coupon.svg">\n        <span class="ecoupon-card-title__name text font-13 black-three"\n              translate="frontend.typescripts.component.ns_ecoupon_card.gift_coupon"><\/span>\n    <\/div>\n    <div class="ecoupon-card-way">\n        <!-- 折價券 TAG -->\n        <div class="ecoupon-card-way__text text font-12">{{ ReturnECouponTag(model.IsOnline, model.IsOffline, isTake, model.IsExchangeLocation, model.ExchangeLocationId) }}<\/div>\n    <\/div>\n    <div class="gift-ecoupon">\n        <div class="gift-ecoupon__frame" data-ng-click="ImageClickCallBack($event)">\n            <img class="gift-ecoupon__frame__img" data-ng-src="{{::model.ImgUrl}}">\n        <\/div>\n        <div class="gift-ecoupon__info">\n            <!-- 會員卡名稱 -->\n            <div class="gift-ecoupon__info__member-tier text font-12" >\n                <i class="fa fa-star" data-ng-if="model.CrmShopMemberCardName"><\/i>\n                <span data-ng-bind="model.CrmShopMemberCardName"><\/span>\n            <\/div>\n            <!-- 折價券客戶自訂文字 -->\n            <div class="gift-ecoupon__info__custom-word text black-three"\n                 data-ng-bind="model.TicketDisplayText">\n            <\/div>\n\n            <!-- 領取期限 官網腰帶 -->\n            <div class="gift-ecoupon__info__date-text text font-12 warm-grey" data-ng-if="!isTake && isOfficial">   \n                <!-- 領取期限 -->\n                <span class="gift-ecoupon__info__date-word left" translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"><\/span>\n                <span class="left" data-ng-bind="model.EndDateTime | nsDotNetDateParser | date"><\/span>\n            <\/div>\n\n            <!-- 領取 or 兌換期限-->\n            <div class="gift-ecoupon__info__date-text text font-12"\n                data-ng-class="{\'grapefruit\': CheckTimeLess24(model.EndDateTime), \'warm-grey\': !CheckTimeLess24(model.EndDateTime)}"\n                data-ng-if="!isTake && !isOfficial">\n\n                <!-- 兌換期限 -->\n                <span class="gift-ecoupon__info__date-word left" \n                    data-ng-show="ecouponType === \'PointExchange\'"\n                    translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_exchange"><\/span>\n\n                <!-- 領取期限 -->\n                <span class="gift-ecoupon__info__date-word left" \n                    data-ng-show="ecouponType !== \'PointExchange\'"\n                    translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"><\/span>\n\n                <!-- 倒數計時元件 -->\n                <div class="left" \n                    ns-clock-time \n                    ns-clock-time-end-date="model.EndDateTime"\n                    ns-clock-time-is-closed="Reload()"\n                    data-ng-if="CheckTimeLess24(model.EndDateTime)"><\/div>\n            <span class="left" \n                  data-ng-if="!CheckTimeLess24(model.EndDateTime)"\n                  data-ng-bind="model.EndDateTime | date"><\/span>\n            <\/div>\n\n            <!-- 使用期限-->\n            <div class="gift-ecoupon__info__date-text text font-12"\n                    data-ng-class="{\'grapefruit\': CheckTimeLess24(model.UsingEndDateTime), \'warm-grey\': !CheckTimeLess24(model.UsingEndDateTime)}"\n                    data-ng-if="isTake && !isOfficial">\n                \n                <!-- 使用期限 -->\n                <span class="gift-ecoupon__info__date-word left" translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_use"><\/span>\n\n                <!-- 倒數計時元件開始 -->\n                <div class="left"\n                        ns-clock-time\n                        ns-clock-time-end-date="model.UsingEndDateTime"\n                        ns-clock-time-is-closed="Reload()"\n                        data-ng-if="CheckTimeLess24(model.UsingEndDateTime)"><\/div>\n                <span class="left" \n                      data-ng-if="!CheckTimeLess24(model.UsingEndDateTime)"\n                      data-ng-bind="model.UsingEndDateTime | date"><\/span>\n            <\/div>\n\n            <!-- 已領取 or 已兌換 -->\n            <div class="gift-ecoupon__state" data-ng-if="isTake">\n                <!-- 已領取 -->\n                <div class="gift-ecoupon__state__text detail-state text grapefruit font-12 cms-moneyColor"\n                    data-ng-show="ecouponType !== \'PointExchange\'">\n                    <i class="fa fa-check-circle state-icon"><\/i>\n                    <span translate="frontend.typescripts.component.ns_ecoupon_card.info_state_receive"><\/span>\n                <\/div>\n            <\/div>\n\n            <!-- 領取 or 下載app or 點數兌換 -->\n            <div class="gift-ecoupon__action" data-ng-if="!isDetail">\n                <!-- 官網腰帶 領取-->\n                <button class="btn gift-ecoupon__action__btn"\n                        data-ng-click="ProceedCallBack($event)"  \n                        data-ng-if="isOfficial"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_receive"><\/button>\n\n                <!-- 一般領取 -->\n                <button class="btn gift-ecoupon__action__btn"\n                        data-ng-click="ReceiveCallBack($event)"\n                        data-ng-if="receiveButton"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_receive"><\/button>\n\n                <!-- 下載APP -->\n                <button class="btn gift-ecoupon__action__btn" \n                        data-ng-click="DownLoadAppCallBack($event)"\n                        data-ng-if="downloadButton"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_download"><\/button>\n\n                <!-- 紅利點數兌換 -->\n                <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n                <button class="btn gift-ecoupon__action__btn" \n                        data-ng-if="exchangeButton && canExchange"\n                        data-ng-click="ExchangePointCallBack($event)"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n                        translate-value-val0="{{ model.ExchangePointCost | number }}"><\/button>\n\n                <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n                <button class="btn gift-ecoupon__action__disabled-btn" \n                        data-ng-if="exchangeButton && !canExchange"\n                        data-ng-click="$event.stopPropagation();"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n                        translate-value-val0="{{ model.ExchangePointCost | number }}"><\/button>\n\n                <!-- 領取贈品 -->\n                <button class="btn gift-ecoupon__action__outline-btn cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                        data-ng-click="ProceedCallBack($event)"  \n                        data-ng-if="isTake"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.use_immediately">\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 無法領取贈品券 -->\n<div class="ecoupon-card" \n     data-ng-class="{\'official-bg\': isOfficial, \n                     \'exchange-point-bg\': exchangeButton,\n                     \'detail-bg\': isDetail }"\n     data-ng-click="ProceedCallBack($event)"   \n     data-ng-if="isDisable">\n    <!-- 使用通路 -->\n    <div class="ecoupon-card-title" data-ng-class="{\'official-title\': isOfficial}">\n        <img class="ecoupon-card-title__image"\n             src="/V2/Content/Images/ECoupon/icon_coupon.svg">\n        <span class="ecoupon-card-title__name text font-13 black-three"\n              translate="frontend.typescripts.component.ns_ecoupon_card.gift_coupon"><\/span>\n        <!-- 使用通路 -->\n        <div class="ecoupon-card-way">\n            <!-- 折價券 TAG -->\n            <div class="text font-12"\n                 data-ng-class="{true: \'ecoupon-card-way__text\', false: \'ecoupon-card-way__text--disabled\'}[model.CouponTotalCount > 0]">{{ ReturnECouponTag(model.IsOnline, model.IsOffline, isTake, model.IsExchangeLocation, model.ExchangeLocationId) }}<\/div>\n        <\/div>\n    <\/div>\n    <div class="gift-ecoupon">\n        <div class="gift-ecoupon__frame" data-ng-click="ImageClickCallBack($event)">\n            <img class="gift-ecoupon__frame__img" data-ng-src="{{::model.ImgUrl}}">\n        <\/div>\n        <div class="gift-ecoupon__info">\n            <!-- 會員卡名稱 -->\n            <div class="gift-ecoupon__info__member-tier text font-12"\n                 data-ng-class="{\'warm-grey\': model.CouponTotalCount === 0}">\n                <i class="fa fa-star" data-ng-if="model.CrmShopMemberCardName"><\/i>\n                <span data-ng-bind="model.CrmShopMemberCardName"><\/span>\n            <\/div>\n            <!-- 折價券客戶自訂文字 -->\n            <div class="gift-ecoupon__info__custom-word text"\n                 data-ng-class="{true: \'black-three\', false: \'warm-grey\'}[model.CouponTotalCount > 0]"\n                 data-ng-bind="model.TicketDisplayText">\n            <\/div>\n            \n            <!-- 領取期限-->\n            <div class="gift-ecoupon__info__date-text text font-12 warm-grey" data-ng-if="!isTake" >\n                <!-- 兌換期限 -->\n                <span class="gift-ecoupon__info__date-word left" \n                      data-ng-if="ecouponType === \'PointExchange\'"\n                      translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_exchange"><\/span>\n    \n                <!-- 領取期限 -->\n                <span class="gift-ecoupon__info__date-word left" \n                      data-ng-if="ecouponType !== \'PointExchange\'"\n                      translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_receive"><\/span>\n                \n                <span class="left" data-ng-if="!isOfficial" data-ng-bind="model.EndDateTime | date"><\/span>\n                <span class="left" data-ng-if="isOfficial" data-ng-bind="model.EndDateTime | nsDotNetDateParser | date"><\/span>\n            <\/div>\n            \n            <!-- 使用期限-->\n            <div class="gift-ecoupon__info__date-text text font-12 warm-grey" data-ng-if="isTake && !isOfficial" >\n                <!-- 使用期限 -->\n                <span class="gift-ecoupon__info__date-word left" translate="frontend.typescripts.component.ns_ecoupon_card.info_during_date_use"><\/span>\n    \n                <span class="left" data-ng-bind="model.UsingEndDateTime | date"><\/span>\n            <\/div>\n\n            <!-- 點數兌換 -->\n            <div class="gift-ecoupon__action" data-ng-if="!isDetail && ecouponType === \'PointExchange\'">\n                <!-- 紅利點數兌換 -->\n                <!-- {{ model.ExchangePointCost | number }}點兌換 -->\n                <button class="btn gift-ecoupon__action__disabled-btn" \n                        data-ng-if="model.CouponTotalCount > 0"\n                        data-ng-click="$event.stopPropagation();"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.action_btn_exchange"\n                        translate-value-val0="{{ model.ExchangePointCost | number }}"><\/button>\n            <\/div>\n\n            <!-- 領取一空 -->\n            <div class="gift-ecoupon__action--disabled" \n                data-ng-if="!isDetail">\n                <!-- 兌換一空 -->\n                <button class="btn gift-ecoupon__action__disabled-btn" \n                        data-ng-show="ecouponType === \'PointExchange\' && model.CouponTotalCount === 0"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.disable_empty_exchange"><\/button>\n\n                <!-- 領取一空 -->\n                <button class="btn gift-ecoupon__action__disabled-btn" \n                        data-ng-show="ecouponType !== \'PointExchange\'"\n                        translate="frontend.typescripts.component.ns_ecoupon_card.disable_empty_receive"><\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-favorite-heart/favoriteHeartDirective.html",'<div class="favorite-heart" ng-class="{\'actived\':isFav}">\n    <!-- favorite-filled -->\n    <i class="favorite-filled">\n      <svg viewBox="0 0 200 200">\n        <g transform="translate(0,-952.36218)">\n          <path d="M15.33293,980.7616c-19.11968,19.8092-19.10147,51.68518,0,71.51379l84.61456,87.86926\n            c28.23759-29.25574,56.47517-58.51135,84.71275-87.76758c19.11969-19.80969,19.11969-51.70477,0-71.51422\n            c-19.12007-19.80945-49.90512-19.80994-69.02521,0l-15.58933,16.15155l-15.68754-16.25305\n            c-19.12008-19.80945-49.90513-19.80945-69.02521,0L15.33293,980.7616z"/>\n        <\/g>\n      <\/svg>\n    <\/i>\n    <!-- favorite-outline -->\n    <i class="favorite-outline">\n      <svg viewBox="0 0 40 40">\n        <path d="M20,35.07,4.55,19.62a8.5,8.5,0,0,1-.12-12l.12-.12a8.72,8.72,0,0,1,12.14,0L20,10.77l3.3-3.3A8.09,8.09,0,0,1,29.13,4.9a8.89,8.89,0,0,1,6.31,2.58,8.5,8.5,0,0,1,.12,12l-.12.12ZM10.64,7.13A6.44,6.44,0,0,0,6.07,18.19L20,32.06,33.94,18.12A6.44,6.44,0,0,0,34,9l0,0a6.44,6.44,0,0,0-4.77-1.85A6,6,0,0,0,24.83,9L20,13.78,15.21,9A6.44,6.44,0,0,0,10.64,7.13Z"/>\n      <\/svg>\n    <\/i>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-gift-coupon-image/giftCouponImageDirective.html",'<div class="gift-coupon-image-container" ng-if="IsShow">\n    <div class="gift-coupon-image-container__header">\n        <div class="gift-coupon-image-container__header__btn" data-ng-click="Close()">\n            <img src="/Content/Images/icon/icon_detailed_back.svg" alt="close">\n        <\/div>\n        <span translate="frontend.typescripts.components.gift_image"><\/span>\n    <\/div>\n    <img class="gift-coupon-image-container__content" data-ng-src="{{ ImgUrl }}">\n<\/div>');n.put("/V2/TypeScripts/Components/ns-global-address/globalAddressDirective.html",'<div ng-form="AddressForm" class="address-block global-address-block">\n    <h2 class="title required-star"\n        ng-if="FormTitle"\n        ng-bind="FormTitle">\n    <\/h2>\n    <div class="item-row"\n         ng-if="!!CountryName">\n        <div class="item-row__title">\n            <label class="title-label"\n                   translate="frontend.typescripts.component.ns_global_address.delivery_location">\n            <\/label>\n        <\/div>\n        <div class="item-row__item">\n            <span class="address-text text-only" ng-bind="CountryName"><\/span>\n        <\/div>\n    <\/div>\n    <div class="item-row"\n         ng-class="{ \'round-top\': IsRoundTop && $first, \'round-bottom\': IsRoundBottom && $last }"\n         ng-repeat="structures in GlobalAddressDirectiveCtrl.AddressStructure.Orders">\n        <div class="item-row__item"\n             ng-class="{\'item-row__item--full-width\': structures.length === 1}"\n             ng-repeat="structure in structures">\n            <div ng-class="{\'split\': !$last}">\n                <input type="text"\n                       name="{{structure}}"\n                       class="address-text"\n                       data-qe-id="receiver{{structure}}"\n                       maxlength="{{GlobalAddressDirectiveCtrl.AddressStructure[structure].MaxLength}}"\n                       ng-required="GlobalAddressDirectiveCtrl.AddressStructure[structure].Required"\n                       ng-pattern="(structure !== \'Address\' || IsSelectedAddressChanged) && GlobalAddressDirectiveCtrl.AddressStructure[structure].OverseasPattern"\n                       ng-if="GlobalAddressDirectiveCtrl.AddressStructure[structure].InputType === \'input\'"\n                       ng-model="GlobalAddressDirectiveCtrl.$scope[\'Selected\' + structure]"\n                       ng-change="GlobalAddressDirectiveCtrl.handleChange(structure)"\n                       translate-attr="{placeholder: GlobalAddressDirectiveCtrl.AddressStructure[structure].Placeholder}">\n                <select name="{{structure}}"\n                        class="option"\n                        data-qe-id="receiver{{structure}}"\n                        ng-class="{\'option--selected\': !!GlobalAddressDirectiveCtrl.$scope[\'Selected\' + structure]}"\n                        ng-required="GlobalAddressDirectiveCtrl.AddressStructure[structure].Required"\n                        ng-disabled="GlobalAddressDirectiveCtrl.AddressStructure[structure].Disabled"\n                        ng-if="GlobalAddressDirectiveCtrl.AddressStructure[structure].InputType === \'select\'"\n                        ng-model="GlobalAddressDirectiveCtrl.$scope[\'Selected\' + structure]"\n                        ng-options="data.Value as data.Text for data in GlobalAddressDirectiveCtrl.AddressStructure[structure].Data">\n                    <option value="" translate="{{GlobalAddressDirectiveCtrl.AddressStructure[structure].Placeholder}}"><\/option>\n                <\/select>\n            <\/div>\n            <p ng-show="AddressForm[structure].$error.required && AddressForm[structure].$dirty"\n               class="interror">\n                <span translate="{{GlobalAddressDirectiveCtrl.AddressStructure[structure].RequiredMessage}}"><\/span>\n            <\/p>\n            <p ng-show="AddressForm[structure].$error.pattern && AddressForm[structure].$dirty"\n               class="interror">\n                <span translate="{{GlobalAddressDirectiveCtrl.AddressStructure[structure].OverseasPatternMessage}}"><\/span>\n            <\/p>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-header-category-menu/headerCategoryMenuDirective.html",'<div class="nav-dropdown-list ns-header-category-menu"\n     ng-controller="HeaderCategoryMenuDirectiveController as HeaderCategoryMenuDirectiveCtrl"\n     ng-mouseenter="HeaderCategoryMenuDirectiveCtrl.OnEnterMenu()"\n     ng-mouseleave="HeaderCategoryMenuDirectiveCtrl.OnLeaveMenu()"\n     ng-style="{ \'width\' : HeaderCategoryMenuDirectiveCtrl.ListWidth ,\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight}">\n    <!--第一階類別 start-->\n    <div class="category-menu-wrapper category-menu-level1-wrapper"\n         ng-show="!HeaderCategoryMenuDirectiveCtrl.IsOpenCategoryLevel2"\n         ng-style="{ \'width\' : HeaderCategoryMenuDirectiveCtrl.ListWidth ,\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n        <section class="category-level1">\n            <ul ng-if="::(!HeaderCategoryMenuDirectiveCtrl.IsEnableLevel1Slide)"\n                ng-init="groupLevel1Index = $index"\n                class="nav-dropdown-list-ul category-menu-list"\n                ng-repeat="groupLevel1 in ::HeaderCategoryMenuDirectiveCtrl.GroupedCategoryListLevel1 track by $index">\n                <li class="nav-dropdown-list-li" ng-repeat="level1 in groupLevel1 track by $index" ng-class="{\'has-child\':level1.ChildList.length > 0}">\n                    <a class="nav-dropdown-list-link theme-color-hover" href="javascript:void(0)" ng-click="HeaderCategoryMenuDirectiveCtrl.OpenLevel1Category(level1,groupLevel1,(groupLevel1Index+1))">\n                       <div class="nav-dropdown-list-item">\n                            <h4 class="nav-dropdown-list-title" ng-bind="::level1.Name"><\/h4>\n                            <span class="tag-rectangle pink-tag cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                  ng-if="HeaderCategoryMenuDirectiveCtrl.HasFreeGift(level1)"\n                                  translate="frontend.typescripts.components.gift"><\/span>\n                       <\/div>\n                        <i ng-if="level1.ChildList.length > 0" class="fa fa-angle-right fa-lg"><\/i>\n                    <\/a>\n                <\/li>\n            <\/ul>\n            <ns-slide-list ng-if="::(HeaderCategoryMenuDirectiveCtrl.IsEnableLevel1Slide)" item-width="300"\n                           item-count="4"\n                           ng-style="::{\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n                <div class="slide-arrow-container">\n                    <a href="javascript:void(0)" class="slide-arrow slider-arrow-prev" ng-click="goToPrev()">\n                        <i class="fa fa-angle-left" aria-hidden="true"><\/i>\n                    <\/a>\n                    <span class="pager-number" ng-bind="(currentSlide+1) +\'/\'+ pagerCount"><\/span>\n                    <a href="javascript:void(0)" class="slide-arrow slider-arrow-next" ng-click="goToNext()">\n                        <i class="fa fa-angle-right" aria-hidden="true"><\/i>\n                    <\/a>\n                <\/div>\n                <div class="ns-slide-list">\n                    <div class="slide-container">\n                        <ul class="nav-dropdown-list-ul category-menu-list slide-item"\n                            ng-repeat="groupLevel1 in ::HeaderCategoryMenuDirectiveCtrl.GroupedCategoryListLevel1 track by $index"\n                            ng-class="{\'clear-border-dashed\': ($index%3 === 0 && $index>0)}"\n                            ng-style="::{\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n                            <li class="nav-dropdown-list-li" ng-repeat="level1 in groupLevel1 track by $index"\n                                ng-class="{\'has-child\':level1.ChildList.length > 0}">\n                                <a class="nav-dropdown-list-link theme-color-hover" href="javascript:void(0)"\n                                   ng-click="HeaderCategoryMenuDirectiveCtrl.OpenLevel1Category(level1,groupLevel1,($index+1))">\n                                    <div class="nav-dropdown-list-item">\n                                        <h4 class="nav-dropdown-list-title" ng-bind="::level1.Name"><\/h4>\n                                        <span class="tag-rectangle pink-tag cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                              ng-if="::HeaderCategoryMenuDirectiveCtrl.HasFreeGift(level1)"\n                                              translate="frontend.typescripts.components.gift">\n                                        <\/span>\n                                    <\/div>\n                                    <i ng-if="level1.ChildList.length > 0" class="fa fa-angle-right fa-lg"><\/i>\n                                <\/a>\n                            <\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/ns-slide-list>\n        <\/section>\n    <\/div>\n    <!--第一階類別 end-->\n    <!--第二階類別 start-->\n    <div class="category-menu-wrapper" ng-if="HeaderCategoryMenuDirectiveCtrl.IsOpenCategoryLevel2"\n         ng-style="{ \'width\' : HeaderCategoryMenuDirectiveCtrl.ListWidth ,\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n        <!--被選擇的第一階類別 start-->\n        <section ng-class="{\'slide-to-left\':HeaderCategoryMenuDirectiveCtrl.SelectedGroupNumber>1,\n                            \'none-slide\':HeaderCategoryMenuDirectiveCtrl.SelectedGroupNumber === 1}"\n                 class="select-parent-group">\n            <ul class="nav-dropdown-list-ul category-menu-list"\n                ng-click="HeaderCategoryMenuDirectiveCtrl.CloseLevel2Category()"\n                ng-style="::{\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n                <li class="nav-dropdown-list-li"\n                    ng-repeat="level1 in ::HeaderCategoryMenuDirectiveCtrl.SelectedGroupedCategoryListLevel1 track by $index"\n                    ng-init="isActive = level1.Id === HeaderCategoryMenuDirectiveCtrl.SelectedCategoryListLevel1.Id"\n                    ng-class="{\'active-category\':isActive === true}">\n                    <a class="nav-dropdown-list-link" href="javascript:void(0)"\n                       ng-class="{\'font-primary-color\':isActive === true}">\n                        <div class="nav-dropdown-list-item">\n                            <h4 class="nav-dropdown-list-title" ng-bind="::level1.Name"><\/h4>\n                            <span class="tag-rectangle pink-tag cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                  ng-if="::HeaderCategoryMenuDirectiveCtrl.HasFreeGift(level1)"\n                                  translate="frontend.typescripts.components.gift">\n                            <\/span>\n                        <\/div>\n                        <i ng-if="isActive === true" class="fa fa-angle-right fa-lg"><\/i>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/section>\n        <!--被選擇的第一階類別 end-->\n        <!-- 開啟的第二階類別 start-->\n        <a href="javascript:void(0)" class="close-level2-category-btn"\n           ng-click="HeaderCategoryMenuDirectiveCtrl.CloseLevel2Category()">\n            <i class="icon icon-slim-close"><\/i>\n        <\/a>\n        <a class="category-level1-link"\n           ng-href="{{HeaderCategoryMenuDirectiveCtrl.GetCategoryLink(HeaderCategoryMenuDirectiveCtrl.SelectedCategoryListLevel1.Id)}}"\n           translate="frontend.typescripts.components.all_items_in_category">\n        <\/a>\n        <section class="category-level2"\n                 ng-if="::HeaderCategoryMenuDirectiveCtrl.IsEnableLevel2Slide">\n            <ns-slide-list item-width="300" item-count="3"\n                           ng-style="::{\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }">\n                <div class="slide-arrow-container">\n                    <a href="javascript:void(0)" class="slide-arrow slider-arrow-prev" ng-click="goToPrev()">\n                        <i class="fa fa-angle-left" aria-hidden="true"><\/i>\n                    <\/a>\n                    <span class="pager-number" ng-bind="(currentSlide+1) +\'/\'+ pagerCount"><\/span>\n                    <a href="javascript:void(0)" class="slide-arrow slider-arrow-next" ng-click="goToNext()">\n                        <i class="fa fa-angle-right" aria-hidden="true"><\/i>\n                    <\/a>\n                <\/div>\n                <div class="ns-slide-list">\n                    <div class="slide-container">\n                        <ul class="nav-dropdown-list-ul category-menu-list slide-item"\n                            ng-repeat="groupLevel2 in ::HeaderCategoryMenuDirectiveCtrl.GroupedCategoryListLevel2 track by $index"\n                            ng-class="{\'category-level2-group\':$index>0,\'clear-border-dashed\': ($index%2 === 0 && $index>0)}">\n                            <li class="nav-dropdown-list-li category-item"\n                                ng-repeat="level2 in groupLevel2 track by $index">\n                                <a class="nav-dropdown-list-link theme-color-hover" href="javascript:void(0)"\n                                   ng-click="HeaderCategoryMenuDirectiveCtrl.OpenLevel2Category(level2)">\n                                    <h4 class="nav-dropdown-list-title" ng-bind="::level2.Name"><\/h4>\n                                    <span class="tag-rectangle pink-tag cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                          ng-if="::HeaderCategoryMenuDirectiveCtrl.HasFreeGift(level2)"\n                                          translate="frontend.typescripts.components.gift">\n                                    <\/span>\n                                <\/a>\n                            <\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/ns-slide-list>\n        <\/section>\n        <section class="category-level2"\n                 ng-if="!HeaderCategoryMenuDirectiveCtrl.IsEnableLevel2Slide">\n            <ul class="nav-dropdown-list-ul category-menu-list"\n                ng-style="::{\'height\': HeaderCategoryMenuDirectiveCtrl.ListHeight }"\n                ng-repeat="groupLevel2 in ::HeaderCategoryMenuDirectiveCtrl.GroupedCategoryListLevel2 track by $index"\n                ng-class="{\'category-level2-group\':$index>0}">\n                <li class="nav-dropdown-list-li category-item" ng-repeat="level2 in groupLevel2 track by $index">\n                    <a class="nav-dropdown-list-link theme-color-hover" href="javascript:void(0)"\n                       ng-click="HeaderCategoryMenuDirectiveCtrl.OpenLevel2Category(level2)">\n                        <h4 class="nav-dropdown-list-title" ng-bind="::level2.Name"><\/h4>\n                        <span class="tag-rectangle pink-tag cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                              ng-if="::HeaderCategoryMenuDirectiveCtrl.HasFreeGift(level2)"\n                              translate="frontend.typescripts.components.gift">\n                        <\/span>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/section>\n    <\/div>\n    <!--第二階類別 end-->\n<\/div>');n.put("/V2/TypeScripts/Components/ns-header-multi-level-menu/headerMultiLevelMenuDirective.html",'<div class="ns-header-multi-level-menu"\n    ng-controller="HeaderMultiLevelMenuDirectiveController as HeaderMultiLevelMenuDirectiveCtrl"\n    ng-style="{ \'left\' : HeaderMultiLevelMenuDirectiveCtrl.leftShiftString, \'width\' : HeaderMultiLevelMenuDirectiveCtrl.menuWidthString }">\n\n    <!-- 第一層選單 開始 -->\n    <section class="menu-wrapper" ng-if="!HeaderMultiLevelMenuDirectiveCtrl.isOpenLevel2Menu">\n        <ul class="link-column" \n            ng-repeat="level1Chunk in HeaderMultiLevelMenuDirectiveCtrl.level1ChunkLinkList track by $index"\n            ng-init="level1ChunkIndex = $index">\n            <li class="link-row"\n                ng-repeat="level1 in level1Chunk track by $index"\n                ng-click="HeaderMultiLevelMenuDirectiveCtrl.OnClickLevel1Link(level1, level1ChunkIndex)">\n                <h4 class="link-row-title" ng-bind="::level1.text"><\/h4>\n                <i ng-if="level1.hasChild" class="fa fa-angle-right fa-lg"><\/i>\n            <\/li>\n        <\/ul>\n    <\/section> \n    <!-- 第一層選單 結束 -->\n\n    <!-- 第二層選單 開始 -->\n    <section class="menu-wrapper" ng-if="HeaderMultiLevelMenuDirectiveCtrl.isOpenLevel2Menu">\n        <!-- 第一層區塊 -->\n        <ul class="link-column__selected">\n            <li class="link-row__gray"\n                ng-repeat="level1 in HeaderMultiLevelMenuDirectiveCtrl.currentLevel1LinkChunk track by $index"\n                ng-class="{\'link-row__active\':level1.itemKey === HeaderMultiLevelMenuDirectiveCtrl.currentLevel1ItemKey}"\n                ng-click="HeaderMultiLevelMenuDirectiveCtrl.OnClickLevel1Link(level1, HeaderMultiLevelMenuDirectiveCtrl.currentLevel1LinkChunkIndex)">\n                <h4 class="link-row-title" ng-bind="::level1.text"><\/h4>\n                <i ng-if="level1.hasChild" class="fa fa-angle-right fa-lg"><\/i>\n            <\/li>\n        <\/ul>\n        <!-- 第二層區塊 -->\n        <div class="level2-menu-wrapper">\n            <div class="heading">\n                <span class="heading-text" ng-bind="HeaderMultiLevelMenuDirectiveCtrl.currentLevel1LinkItem.text"><\/span>\n                <i class="icon icon-slim-close close-icon"\n                    ng-click="HeaderMultiLevelMenuDirectiveCtrl.CloseLevel2Menu()"><\/i>\n            <\/div>\n            <div class="link-list">\n                <ul class="link-column"\n                    ng-repeat="level2Chunk in HeaderMultiLevelMenuDirectiveCtrl.level2ChunkLinkList track by $index">\n                    <li class="link-row"\n                        ng-repeat="level2 in level2Chunk"\n                        ng-click="HeaderMultiLevelMenuDirectiveCtrl.OnClickLevel2Link(level2)">\n                        <h4 class="link-row-title" ng-bind="::level2.text"><\/h4>\n                    <\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n    <\/section>\n    <!-- 第二層選單 結束 -->\n<\/div>');n.put("/V2/TypeScripts/Components/ns-hot-keyword-search/hotKeywordSearch.html",'<div class="ns-hot-keyword-search" data-ng-if="hotKeywordList.length > 0">\n    <label class="hot-keyword-title"\n           translate="frontend.typescripts.components.popular_keywords">\n    <\/label>\n    <ul class="hot-keyword-ul">\n        <li class="hot-keyword-li" data-ng-repeat="item in hotKeywordList">\n            <a href="javascript:void(0)" class="hot-keyword-link cms-keyWordTagTextColor" data-ng-click="hrefTo(item)">{{item.slice(0,8)}}<span data-ng-if="item.length > 8">...<\/span><\/a>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-hot-sale-ranking/hotSaleRanking.html",'<div class="hotSale">\n    <div class="hotSale-top">\n        <span class="hotSale-tilte" translate="frontend.typescripts.components.hot_sale_ranking"><\/span>\n        <a class="arrow-right" href="javascript:void(0)" data-ng-click="HrefTo(\'/Shop/HotSaleRanking/\'+ shopId +\'?period=Weekly\')">\n            <span translate="frontend.typescripts.components.view_all"><\/span>\n            <i class="fa fa-angle-right"><\/i>\n        <\/a>\n    <\/div>\n    <div class="hotSale-box">\n        <a id="ranking-arrow-left" class="hotSale-arrow" data-ng-class="{\'disable\':CurrentIndex <= 0}"\n           href="javascript:void(0)" data-ng-click="Scroll(false)">\n            <i class="fa fa-angle-left"><\/i>\n        <\/a>\n        <div class="hotSale-content">\n            <ul id="ranking-ul" class="hotSale-ul">\n                <li class="hotSale-li" data-ng-repeat="item in HotSaleRankingList track by $index" ns-repeat-end>\n                    <a href="javascript:void(0)" data-ng-click="HrefTo(\'/SalePage/Index/\' + item.HotSaleRanking_SalePageId)" class="product-link">\n                        <img class="product-img" data-ng-src="{{item.HotSaleRanking_PicUrl}}">\n                        <div class="product-name" data-ng-bind="item.HotSaleRanking_SalePageTitle"><\/div>\n                        <span class="product-price">\n                            <span data-ng-bind="item.HotSaleRanking_Price | preferredCurrency"><\/span>\n                        <\/span>\n                        <s class="product-suggest-price">\n                            <span data-ng-bind="item.HotSaleRanking_SuggestPrice | preferredCurrency"><\/span>\n                        <\/s>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <a id="ranking-arrow-right" class="hotSale-arrow" data-ng-class="{\'disable\':CurrentIndex + DisplayCount >= HotSaleRankingList.length}"\n           href="javascript:void(0)" data-ng-click="Scroll(true)">\n            <i class="fa fa-angle-right"><\/i>\n        <\/a>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-hot-tags/hotTags.theme_b.html",'<div class="hotsale-tag">\n    <h2 class="hotsale-tag-caption"\n        translate="frontend.typescripts.components.popular_tags">\n    <\/h2>\n    <ul class="hotsale-tag-list">\n        <li class="hotsale-tag-li ellipse-btn"\n            ng-repeat="item in ::HotTagsDirectiveCtrl.HotTags"\n            ng-class="{\'row-end\': (HotTagsDirectiveCtrl.HotTags.length !== 4 && ($index + 1) % 3 === 0) ||\n                                  (HotTagsDirectiveCtrl.HotTags.length === 4 && ($index + 1) % 2 === 0),\n                       \'four-item\': (HotTagsDirectiveCtrl.HotTags.length === 4)}">\n            <div class="hotsale-tag-text">\n                <a data-ng-href="{{::item.Link}}" class="hotsale-tag-link cms-keyWordTagTextColor"\n                   data-ng-bind="::item.Title"\n                   data-ng-click="HotTagsDirectiveCtrl.onHotSaleTagClick(item.Title, item.Link)"\n                   data-ns-ga-event-track\n                   data-track-category="{{HotTagsDirectiveCtrl.PageName}}"\n                   data-track-action="點擊熱門標籤"\n                   data-track-label="頁尾－{{::item.Title}}"><\/a>\n            <\/div>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-hot-tags/hotTagsDirective.html",'<div class="bottom-section">\n    <div class="tag-div">\n       <label class="hot-tag"\n              translate="frontend.typescripts.components.popular_tags">\n       <\/label>\n    <\/div>\n    <ul class="bottom-ul">\n        <li class="bottom-li" data-ng-class="{\'bottom-li-double\':HotTagsDirectiveCtrl.HotTags.length == 1 ||\n        HotTagsDirectiveCtrl.HotTags.length == 2}"\n            data-ng-repeat="item in ::HotTagsDirectiveCtrl.HotTags">\n            <a class="bottom-link" data-ng-href="{{::item.Link}}" data-ng-bind="::item.Title"\n               data-ns-ga-event-track\n               data-track-category="{{HotTagsDirectiveCtrl.PageName}}"\n               data-track-action="click"\n               data-track-label="頁尾－廣告文字連結{{$index+1}}">\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-load-more/loadMoreDirective.html",'<div ng-if="isEnded!==true" class="ns-load-more font-primary-color">\n    <ns-spinner data-show-spinner="isLoading">\n    <\/ns-spinner>\n    <div ng-hide="isLoading" class="load-more" ng-click="ClickLoadMore()">\n        <div class="load-more-text" translate="frontend.typescripts.trades_order.list.see_more"><\/div>\n        <ns-svg-load-more class="load-more-icon"><\/ns-svg-load-more>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-multi-level-main-menu/multiLevelMainMenuDirective.html",'<div class="ns-multi-level-main-menu">\n    <!-- 隔線 -->\n    <div class="section-top-border" ng-if="MultiLevelMainMenuDirectiveCtrl.$scope.enabledSectionTopBorder"><\/div>\n    <!-- 區塊標題\b -->\n    <div class="caption"\n         ng-if="!!MultiLevelMainMenuDirectiveCtrl.$scope.caption">\n        <div class="caption-title" ng-bind="MultiLevelMainMenuDirectiveCtrl.$scope.caption"><\/div>\n    <\/div>\n    <!-- 主選單 -->\n    <div class="main-menu"\n         ng-repeat="menu in MultiLevelMainMenuDirectiveCtrl.$scope.menuList track by $index"\n         ng-class="{\'main-menu--active\':\n                        MultiLevelMainMenuDirectiveCtrl.$scope.activeMainMenu.menuType === MultiLevelMainMenuDirectiveCtrl.$scope.menuType &&\n                        MultiLevelMainMenuDirectiveCtrl.$scope.activeMainMenu.index === $index\n                    }"\n         ng-click="MultiLevelMainMenuDirectiveCtrl.HandleMainMenuClick({ menu, index: $index })"\n    >\n        <i ng-if="!!menu.titleLogo && menu.titleLogo.type === MultiLevelMainMenuDirectiveCtrl.LogoTypeEnum.ICON"\n           class="{{::menu.titleLogo.srcPath}}"><\/i>\n        <img class="title-image"\n             ng-if="!!menu.titleLogo && menu.titleLogo.type === MultiLevelMainMenuDirectiveCtrl.LogoTypeEnum.IMAGE"\n             ng-src="{{menu.titleLogo.srcPath}}"\n             alt=""\n         />\n        <a class="link-title"\n           ng-if="menu.isRedirectMenu"\n           ng-href="{{menu.link}}"\n           ng-bind="menu.title"\n        ><\/a>\n        <div class="title"\n             ng-if="!menu.isRedirectMenu"\n             ng-bind="menu.title"\n        ><\/div>\n\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-multi-shop-category/headerCategoryMenuDirective.html",'<div\n    class="nav-dropdown-list ns-header-category-menu ns-multi-shop-category"\n    ng-controller="MultiShopCategoryDirectiveController as MultiShopCategoryDirectiveCtrl"\n    ng-mouseleave="MultiShopCategoryDirectiveCtrl.onLeaveMenu()"\n    >\n    <!-- 分三個區塊 -->\n    <div class="category-menu-wrapper">\n        <section class="category-level-list">\n            <!-- 第一層 && 第二層 start -->\n            <ul class="nav-dropdown-list-ul category-menu-list"\n                ng-repeat="levelList in MultiShopCategoryDirectiveCtrl.GroupedCategoryListData track by $index"\n                ng-if="$index < 2">\n                <li class="nav-dropdown-list-li" ng-repeat="levelData in levelList track by levelData.Id"\n                    ng-class="{\'has-child\':levelData.ChildList.length > 0, \'isActive\' : MultiShopCategoryDirectiveCtrl.isItemActive(levelData, $index)}">\n                    <a class="nav-dropdown-list-link theme-color-hover" href="javascript:void(0)"\n                        ng-mouseenter="MultiShopCategoryDirectiveCtrl.OpenNextCategory(levelData)"\n                        ng-click="MultiShopCategoryDirectiveCtrl.OpenCategoryLink(levelData)">\n                        <h4 class="nav-dropdown-list-title" ng-bind="levelData.Name"><\/h4>\n                        <i ng-if="levelData.ChildList.length > 0" class="fa fa-angle-right fa-lg"><\/i>\n                    <\/a>\n                <\/li>\n            <\/ul>\n            <!-- 第一層 && 第二層 end -->\n            <!-- 第三層 start -->\n            <div class="level3-slide-list-block" ng-if="MultiShopCategoryDirectiveCtrl.sliderListShow">\n                <ns-slide-list item-width="190" item-count="3" item-id={{MultiShopCategoryDirectiveCtrl.level2SliderId}} adapt-slider-model="{{true}}">\n                    <div class="slide-arrow-container" ng-show="pagerCount > 1">\n                        <a href="javascript:void(0)" class="slide-arrow slider-arrow-prev" ng-click="goToPrev()">\n                            <i ng-show="currentSlide !== 0" class="fa fa-angle-left" aria-hidden="true"><\/i>\n                        <\/a>\n                        <span class="pager-number" ng-bind="(currentSlide+1) +\'/\'+ pagerCount"><\/span>\n                        <a href="javascript:void(0)" class="slide-arrow slider-arrow-next" ng-click="goToNext()">\n                            <i ng-show="(currentSlide + 1) !== pagerCount" class="fa fa-angle-right" aria-hidden="true"><\/i>\n                        <\/a>\n                    <\/div>\n                    <p class="level2-title-block">\n                        <a class="level2-title" ng-bind="MultiShopCategoryDirectiveCtrl.level2Title" href="javascript:void(0)" ng-click="MultiShopCategoryDirectiveCtrl.OpenCategoryLink(levelData)"><\/a>\n                    <\/p>\n                    <div class="ns-slide-list">\n                        <div class="slide-container">\n                            <ul class="nav-dropdown-list-ul category-menu-list slide-item"\n                                ng-repeat="levelList in MultiShopCategoryDirectiveCtrl.GroupedCategoryListData track by $index"\n                                ng-if="$index >= 2">\n                                <li class="nav-dropdown-list-li" ng-repeat="levelData in levelList track by $index" >\n                                    <a class="nav-dropdown-list-link" href="javascript:void(0)"\n                                        ng-click="MultiShopCategoryDirectiveCtrl.OpenCategoryLink(levelData)">\n                                        <h4 class="nav-dropdown-list-title" ng-bind="levelData.Name"><\/h4>\n                                    <\/a>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                <\/ns-slide-list>\n            <\/div>\n            <!-- 第三層 end -->\n        <\/section>\n    <\/div>\n    <!-- 分三個區塊 -->\n<\/div>');n.put("/V2/TypeScripts/Components/ns-nine1-payment-credit-card/nine1PaymentCardDirective.html",'<div>\n    <div class="card-notice">\n        <h2 class="payProcess-block-title"\n            translate="frontend.typescripts.component.ns_credit_card.card_info"><\/h2>\n        <div class="info-text">\n            <span ng-if="Nine1PaymentCreditCardDirectiveCtrl.CreditCardDowntime.isVisibled"\n                  class="info-text-red info-text-red--normal multi-line">{{Nine1PaymentCreditCardDirectiveCtrl.CreditCardDowntime.wording}}<\/span>\n        <\/div>\n    <\/div>\n    <div class="card-notice">\n        <span ng-if="DesignatePaymentPromotionHint" class="info-text-red info-text-red--normal multi-line">{{DesignatePaymentPromotionHint}}<\/span>\n    <\/div>\n    <div class="creditCard">\n        <!-- 記住這張卡 -->\n        <form class="creditCardForm" name="CreditCardForm" novalidate>\n            <div class="cardInfo"\n                 ng-if="HasCreditCard">\n                <div class="tap-pay__row tap-pay__row--text-only payProcess-item-row round-top">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.card_number">\n                    <\/label>\n                    <div class="creditCard-input-with-suffix">  \n                        <div class="tap-pay__field tap-pay__field--text-only creditCard-input creditCardNo">\n                            {{::Nine1PaymentCreditCardDirectiveCtrl.FormatRememberCreditCardNo(RememberCreditCardInfo.LastFour)}}\n                        <\/div>\n                        <i class="card-image suffix" ng-class="CreditCardImgClassName"><\/i>\n                    <\/div>\n                <\/div>\n                <div class="tap-pay__row tap-pay__row--text-only payProcess-item-row">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                    <\/label>\n                    <div class="creditCard-input-with-suffix">\n                        <div class="tap-pay__field tap-pay__field--text-only creditCard-input creditCardDate">\n                            {{::Nine1PaymentCreditCardDirectiveCtrl.FormatRememberCreditCardExpiryDate(RememberCreditCardInfo.ExpiryDate)}}\n                        <\/div>\n                        <span class="creditCard-desc suffix"\n                            translate="frontend.typescripts.component.ns_credit_card.month_year">\n                        <\/span>\n                    <\/div>\n                <\/div>\n                <div class="tap-pay__row payProcess-item-row round-bottom" style="margin-bottom: 1px">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.card_cvv">\n                    <\/label>\n                    <div id="TapPayFastCheckoutCCV"\n                        class="tap-pay__field creditCard-input creditCardCVV"><\/div>\n                    <p ng-show="CreditCardCCVStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                        class="interror"\n                        translate="frontend.typescripts.component.ns_tap_pay_credit_card.credit_card_verification_code_is_missing_or_formatted_incorrectly">\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/form>\n        <!-- 填寫信用卡 -->\n        <div class="cardInfo"\n             ng-if="!HasCreditCard">\n            <div class="tap-pay__row payProcess-item-row round-top">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_number">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <div id="TapPayCreditCardNumber" class="tap-pay__field creditCard-input creditCardNo"><\/div>\n                    <i class="card-image suffix" ng-class="CreditCardImgClassName"><\/i>\n                <\/div>\n                <p ng-show="CreditCardNumberStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.card_number_is_not_filled_in_or_format_is_wrong">\n                <\/p>\n                <p ng-show="CreditCardNumberStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Valid && !IsCreditCardTypeSupported"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.the_type_of_credit_card_is_unavailable_at_the_moment">\n                <\/p>\n            <\/div>\n            <div class="tap-pay__row payProcess-item-row">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <div id="TapPayCreditCardExpirationDate" class="tap-pay__field creditCard-input creditCardDate"><\/div>\n                    <span class="creditCard-desc suffix"\n                        ng-class="{\'isFocus\': CreditCardExpirationDateStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Typing}"\n                        translate="frontend.typescripts.component.ns_credit_card.month_year">\n                    <\/span>\n                <\/div>\n                <p ng-show="CreditCardExpirationDateStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.the_credit_card_expiration_date_is_missing_or_formatted_incorrectly">\n                <\/p>\n            <\/div>\n            <div class="tap-pay__row payProcess-item-row round-bottom" style="margin-bottom: 1px">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_cvv">\n                <\/label>\n                <div id="TapPayCreditCardCCV"\n                     class="tap-pay__field creditCard-input creditCardCVV"><\/div>\n                <p ng-show="CreditCardCCVStatus === Nine1PaymentCreditCardDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.credit_card_verification_code_is_missing_or_formatted_incorrectly">\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-overseas-cell-phone/countryList.html",'<div class="category-menu">\n    <ul class="menu-ul">\n        <li class="menu-li"\n            data-ng-repeat="country in OverseasCellPhoneDirectiveCtrl.CountryList">\n            <a class="menu-link"\n               data-ng-init="country.selected = false"\n               data-ng-class="{\n                \'open\': country.selected,\n                \'close\': !country.selected,\n                \'link-active\': Country.Id === country.Id}"\n               data-ng-click="OverseasCellPhoneDirectiveCtrl.ChangeCountry(country);\n                              OverseasCellPhoneDirectiveCtrl.CloseHalfPage()">\n                <h4 class="menu-item-name" data-ng-cloak data-ng-bind="country.EnglishName + \' \' + country.Name + \'+\' + country.CountryCode"><\/h4>\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-overseas-cell-phone/overseasCellPhoneDirective.html",'<div class="form-input-wrapper overseas-cell-phone-wrapper">\n    <div class="form-input-container country">\n        <div class="drop-down-list"\n             data-ns-click-outside="OverseasCellPhoneDirectiveCtrl.ToggleCountryList(false)"\n             data-ng-if="!OverseasCellPhoneDirectiveCtrl.IsMobile && OverseasCellPhoneDirectiveCtrl.CountryList.length > 1">\n            <div class="drop-down-title"\n                 data-qe-id="areacode_selection"\n                 data-ng-click="OverseasCellPhoneDirectiveCtrl.ToggleCountryList()">\n                <a href="javascript:void(0)" class="drop-down-link"\n                   data-ng-class="{\'selected\': OverseasCellPhoneDirectiveCtrl.CountrySelectorSelected}">\n                    <span>{{Country.AliasCode + \'+\' + Country.CountryCode}}<\/span>\n                    <i class="fa fa-caret-down"><\/i>\n                <\/a>\n            <\/div>\n            <ul class="drop-down-ul" data-qe-id="areacode_options" data-ng-show="OverseasCellPhoneDirectiveCtrl.ShowCountryList">\n                <li class="drop-down-li"\n                    data-ng-repeat="country in OverseasCellPhoneDirectiveCtrl.CountryList"\n                    data-ng-class="{\'last-li\': $last, \'selected-item\': Country.Id === country.Id}"\n                    data-ng-click="OverseasCellPhoneDirectiveCtrl.ChangeCountry(country)">\n                    <a href="javascript:void(0)" class="drop-down-link"\n                       data-ng-bind="::(country.EnglishName + \' \' + country.Name + \'+\' + country.CountryCode)"><\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <div class="drop-down-list"\n             data-ng-if="OverseasCellPhoneDirectiveCtrl.IsMobile && OverseasCellPhoneDirectiveCtrl.CountryList.length > 1">\n            <div class="drop-down-title"\n                 data-ng-click="OverseasCellPhoneDirectiveCtrl.OpenHalfPage()">\n                <a href="javascript:void(0)" class="drop-down-link"\n                   data-ng-class="{\'selected\': OverseasCellPhoneDirectiveCtrl.CountrySelectorSelected}">\n                    <span>{{Country.AliasCode + \'+\' + Country.CountryCode}}<\/span>\n                    <i class="fa fa-caret-down"><\/i>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class="drop-down-list"\n             data-ng-if="OverseasCellPhoneDirectiveCtrl.CountryList.length === 1">\n            <div class="drop-down-title disable">\n                <span>{{Country.AliasCode + \'+\' + Country.CountryCode}}<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class="form-input-container cell-phone-number"\n         data-ng-class="{\'form-input-error shake-x\': Invalid, \'form-input-error\': HasError, \'not-empty\': OverseasCellPhoneDirectiveCtrl.FocusPhoneNumber}">\n        <input type="tel"\n               class="form-input"\n               name="cellPhoneInput"\n               placeholder="{{\'frontend.typescripts.components.phone_number_tip\'|translate}}"\n               autocomplete="off"\n               data-qe-id="reg_phone_txt"\n               data-ng-focus="OverseasCellPhoneDirectiveCtrl.FocusPhoneNumber = true"\n               data-ng-blur="OverseasCellPhoneDirectiveCtrl.FocusPhoneNumber = false"\n               data-ng-change="OverseasCellPhoneDirectiveCtrl.ShowInvalidMessage = false; HasError = false"\n               data-ng-model-options="{updateOn: \'default blur\', allowInvalid: true}"\n               data-ng-model="PhoneNumber"\n               data-ng-pattern="OverseasCellPhoneDirectiveCtrl.CellPhonePattern"\n               data-ng-required="true" required maxlength="15">\n        <h3 class="form-input-label" translate="frontend.typescripts.components.phone_number"><\/h3>\n        <span class="input-icon-mobile">\n                 <i class="fa fa-mobile" data-ng-if="!Invalid"><\/i>\n                 <i class="fa fa-exclamation" style="color:#E33D26" data-ng-if="Invalid"><\/i>\n            <\/span>\n    <\/div>\n    <div class="error-message" data-ng-class="{\'show-message\': Invalid}" translate="frontend.typescripts.components.format_incorrect"><\/div>\n<\/div>\n\n<div ns-push-half-page\n     ns-is-open="OverseasCellPhoneDirectiveCtrl.ShowHalfPage"\n     ns-show-close="true"\n     ns-page-caption="OverseasCellPhoneDirectiveCtrl.HalfPageTitle"\n     ns-close-function="OverseasCellPhoneDirectiveCtrl.CloseHalfPage()"\n     data-ng-if="OverseasCellPhoneDirectiveCtrl.IsMobile">\n    <div class="menu-content" data-ng-include="OverseasCellPhoneDirectiveCtrl.HalfPageUrl">\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-pagination/paginationDirective.html",'<ul class="pagination" data-ng-if="PageSize">\n    <li class="page-li">\n        <a class="page-link" ng-click="ClickPage(CurrentIndex - 1)" data-ng-class="{\'disable\':CurrentIndex <= 0}">\n            <i class="fa fa-angle-left fa-lg"><\/i>\n        <\/a>\n    <\/li>\n    <li class="page-li" data-ng-repeat="page in PageList" data-ng-class="{\'active\': CurrentIndex + 1 === page}">\n        <a class="page-link" ng-click="ClickPage(page - 1)" data-ng-bind="page"><\/a>\n    <\/li>\n    <li class="page-li">\n        <a class="page-link" ng-click="ClickPage(CurrentIndex + 1)" data-ng-class="{\'disable\':CurrentIndex >= PageSize-1}">\n            <i class="fa fa-angle-right fa-lg"><\/i>\n        <\/a>\n    <\/li>\n<\/ul>\n                    ');n.put("/V2/TypeScripts/Components/ns-preferred-currency-reminder/preferredCurrencyReminder.html",'<p class="preferred-currency-reminder" ng-if="defaultCurrencyCode !== currencyCode">\n    <i class="icon-editor icon-editor-icon_common_alert_solid"><\/i>\n    <span translate="frontend.typescripts.shared.preferred_currency_reminder"><\/span>\n<\/p>');n.put("/V2/TypeScripts/Components/ns-progress-bar/progressBar.html",'<div class="header-progress-bar">\n    <ul>\n        <li ng-repeat="step in model track by $index"\n            ng-class="{\n            \'step{{Math.floor(($index+1)/2)+1}}\': ($index+1)%2>0,\n            \'step-arrow\': ($index+1)%2<=0,\n            \'active cms-moneyColor\': step !== \'>\' && $root.headerProgressBarStep == Math.floor(($index+1)/2)+1}">\n            <span ng-if="step!==\'>\'">\n                <span \n                ng-class="{\'cms-moneyBgColor\': step !== \'>\' && $root.headerProgressBarStep == Math.floor(($index+1)/2)+1}"\n                class="index">{{::Math.floor(($index+1)/2)+1}}<\/span>\n                <span class="step-title" ng-class="{\'cms-moneyColor cms-moneyBorderColor\': step !== \'>\' && $root.headerProgressBarStep == Math.floor(($index+1)/2)+1}"\n                      translate="{{::step}}">\n                <\/span>\n            <\/span>\n            <span ng-if="step===\'>\'">\n                <i class="fa fa-angle-right" \n                   ng-class="{\'cms-moneyColor\': $root.headerProgressBarStep == Math.floor(($index+1)/2)}"\n                aria-hidden="true"><\/i><\/span>\n        <\/li>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-product-list/productList.html",'<h2 class="section-board-title outline"\n    translate="frontend.typescripts.components.list_of_items">\n<\/h2>\n<ul class="ns-product-list clear-float" ng-class="DisplayModeCssClass">\n    <li class="cabinet-li blind-li cabinet-in-pc"\n        data-ns-lazy-load="sleeping-background"\n        data-lazy-load-alarm-clock="{{ScrollIndex}}"\n        data-ng-repeat="item in Products">\n        <a ng-href="/SalePage/Index/{{::item.Id}}?cid={{ProductListDirectiveCtrl.SalePageCategoryId}}"\n           ng-click="ProductListDirectiveCtrl.TrackProductClicks(item.Id,item.Title, item.Price,($index+1))">\n            <div ng-init="item.IsFav = (Favorites.indexOf(item.Id)>=0)" ng-class="{\'is-soldout\':item.IsSoldOut}">\n                <!-- 商品主圖 -->\n                <div class="cabinet-top blind-left sleeping-background" style="background-size: 100%"\n                     ng-class="::{\'dynamic-pic\':item.IsDynamicPic===true}"\n                     data-temp-src="{{::(item.IsDynamicPic ? item.DynamicPicUrl: item.PicUrl)}}">\n                    <div class="soldout-supply" ng-if="item.IsSoldOut">\n                        <span class="soldout-supply-msg"\n                              translate="frontend.typescripts.components.sold_out">\n                        <\/span>\n                    <\/div>\n                    <!-- desktop : hover顯示加入收藏、加入購物車-->\n                    <div ng-if="!ProductListDirectiveCtrl.IsMobile">\n                        <!-- ＰＣ版顯示收藏愛心 -->\n                        <div class="show-saved hide-at-blind"\n                             ng-show="item.IsFav"><\/div>\n                        <!-- hover出現加入購物車及收藏 -->\n                        <div class="buttons-layer">\n                            <div class="buttons-layer-block" ng-if="!ProductListDirectiveCtrl.IsTouchDevice">\n                                <div class="addfav layer-btn"\n                                     ng-click="ProductListDirectiveCtrl.AddToFav($event,item)"\n                                     ng-class="{\'disappearing-love\': item[\'disappearingLove\']}">\n                                    <i class="fa" ng-class="{\'fa-heart\':item.IsFav,\'fa-heart-o\':!item.IsFav}"><\/i>\n                                <\/div>\n                                <div class="addcart layer-btn soldout-addcart"\n                                     ng-click="ProductListDirectiveCtrl.AddToCart($event,item.Id,($index+1),item.IsSoldOut)">\n                                    <i class="icon icon-cart"><\/i>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- 圖片下方區塊 -->\n                <div class="cabinet-middle blind-top">\n                    <h3 ng-bind="::item.Title" class="cabinet-instruction blind-instruction"><\/h3>\n                    <span class="soldout-msg"\n                          translate="frontend.typescripts.components.sold_out">\n                    <\/span>\n                    <!-- 列表標籤 -->\n                    <div class="tag-container">\n                        <div class="small-tag" ng-repeat="tag in ::item.Tags" ng-bind="::tag.TypeDefDesc"\n                             style="background: {{::tag.Color}}"><\/div>\n                    <\/div>\n                    <div class="suggest-price"\n                         ng-class="{\'invisible\':(item.IsSoldOut || item.Price===item.SuggestPrice)}">\n                        <del ng-bind="item.SuggestPrice | preferredCurrency"><\/del>\n                    <\/div>\n                    <div class="blind-price" ng-class="{\'is-soldout\':item.IsSoldOut}"\n                         ng-bind="item.Price | preferredCurrency">\n                    <\/div>\n                    <div class="price cabinet-price price-disable" ng-class="{\'is-soldout\':item.IsSoldOut}">\n                        {{item.Price | preferredCurrency}}\n                        <span class="soldout-text" ng-if="item.IsSoldOut"\n                              translate="frontend.typescripts.components.sold_out">\n                        <\/span>\n                    <\/div>\n                    <button ng-click="ProductListDirectiveCtrl.AddToFav($event,item)" class="small-add-wishlist__btn" ng-class="{\'small-add-wishlist__btn--actived\':item.IsFav,\'\':!item.IsFav}">\n                        <ns-favorite-heart is-fav="item.IsFav"><\/ns-favorite-heart>\n                        <span class="add-wishlist__text" translate="frontend.typescripts.components.wishlist"><\/span>\n                    <\/button>\n                    <!-- 收藏與加入購物車 -->\n                    <!-- 中圖與列表pc版專用愛心 -->\n                    <div class="icon-button set-fav" ng-class="{\'is-fav\':item.IsFav}">\n                        <a href="javascript:void(0)" class="cabinet-link"\n                           ng-click="ProductListDirectiveCtrl.AddToFav($event,item)">\n                            <i ng-if="!ProductListDirectiveCtrl.IsMobile" class="fa" ng-class="{\'fa-heart\':item.IsFav,\'fa-heart-o\':!item.IsFav}"><\/i>\n                            <ns-favorite-heart ng-if="ProductListDirectiveCtrl.IsMobile" is-fav="item.IsFav"><\/ns-favorite-heart>\n                            <span class="icon-text hide-at-cabinet _hide-at-mobile"\n                                  translate="frontend.typescripts.components.wishlist">\n                            <\/span>\n                        <\/a>\n                    <\/div>\n                    <!--ismobile-->\n                    <!-- 大圖與列表mobile版專用愛心 -->\n                    <div ng-if="ProductListDirectiveCtrl.IsMobile">\n                        <div class="icon-button set-fav" ng-class="{\'is-fav\':item.IsFav}">\n                            <a href="javascript:void(0)" class="cabinet-link"\n                               ng-click="ProductListDirectiveCtrl.AddToFav($event,item)">\n                                <ns-favorite-heart is-fav="item.IsFav"><\/ns-favorite-heart>\n                            <\/a>\n                        <\/div>\n                    <\/div>\n                    <div ng-if="!ProductListDirectiveCtrl.IsMobile" \n                        class="icon-button add-to-cart">\n                        <a href="javascript:void(0)" class="cabinet-link"\n                           ng-click="ProductListDirectiveCtrl.AddToCart($event, item.Id,($index+1), item.IsSoldOut)">\n                            <i class="icon icon-cart"><\/i>\n                            <span class="icon-text hide-at-cabinet _hide-at-mobile"\n                                  translate="frontend.typescripts.components.add_to_cart">\n                            <\/span>\n                        <\/a>\n                    <\/div>\n                    \n                <\/div>\n            <\/div>\n        <\/a>\n        <ns-watch-scroll-visiable ng-if="($index % 5) == 0"\n                                  on-visiable="ProductListDirectiveCtrl.TrackImpressions($index,5)"><\/ns-watch-scroll-visiable>\n    <\/li>\n<\/ul>\n');n.put("/V2/TypeScripts/Components/ns-product-list/ProductListSortDisplayDirective.html",'<!--排序與顯示方式-->\n<div class="ns-product-list-sort-display">\n    <!-- Desktop -->\n    <section class="sorting-area" data-ng-if="!ProductListSortDisplayDirectiveCtrl.IsMobile">\n                <span class="sorting-text"\n                      translate="frontend.typescripts.components.items_in_total" \n                      translate-value-val0="{{TotalSize}}">\n                <\/span>\n        <div class="right">\n            <div class="drop-down-list"\n                 data-ns-click-outside="ProductListSortDisplayDirectiveCtrl.ToggleSortList(false)">\n                <div class="drop-down-title"\n                     data-ng-click="ProductListSortDisplayDirectiveCtrl.ToggleSortList()">\n                    <a href="javascript:void(0)" class="drop-down-link">\n                    <span data-ng-bind="ProductListSortDisplayDirectiveCtrl.SortItems[SortMode].title">\n                    <\/span>\n                        <i class="fa fa-caret-down"><\/i>\n                    <\/a>\n                <\/div>\n                <ul class="drop-down-ul" data-ng-show="ProductListSortDisplayDirectiveCtrl.IsShowSortList">\n                    <li class="drop-down-li"\n                        data-ng-repeat="item in ProductListSortDisplayDirectiveCtrl.SortItems track by $index"\n                        data-ng-class="{\'last-li\':$last}"\n                        data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeSortMode(item.mode)"\n                        data-ng-show="item.visible">\n                        <a href="javascript:void(0)" class="drop-down-link"\n                           data-ng-class="{\'selected-item\':(SortMode === item.mode)}"\n                           data-ng-bind="item.title"><\/a>\n                    <\/li>\n                <\/ul>\n\n            <\/div>\n            <ul class="grid-list right">\n                <li class="grid-li _hide-at-mobile"\n                    data-ng-class="{\'active-on\':  ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode ===\n                ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.Grid}">\n                    <a href="javascript:void(0)" class="grid-link"\n                       ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(\n                       ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.Grid,\'切換小圖-desktop\')">\n                        <i class="fa fa-th-large"><\/i>\n                    <\/a>\n                <\/li>\n                <li class="grid-li _hide-at-mobile"\n                    data-ng-class="{\'active-on\':  ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode ===\n                ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.List}">\n                    <a href="javascript:void(0)" class="grid-link"\n                       data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(\n                   ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.List,\'切換列表-desktop\')">\n                        <i class="fa fa-list-ul"><\/i>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/section>\n    <!-- Mobile -->\n    <section class="mix-filter-bar" data-ng-if="ProductListSortDisplayDirectiveCtrl.IsMobile">\n        <ul class="filter-bar-ul">\n            <!--分類-->\n            <li class="filter-bar-li category-li">\n                <a class="filter-bar-link" href="javascript:void(0)"\n                   data-ng-click="ProductListSortDisplayDirectiveCtrl.ToggleMainMenu()">\n                    <h6 class="filter-bar-title"\n                        translate="frontend.typescripts.components.category">\n                    <\/h6>\n                    <span class="category-text" data-ng-bind="CategoryName"><\/span>\n                    <i class="fa fa-caret-down"><\/i>\n                <\/a>\n            <\/li>\n            <!--排序-->\n            <li class="filter-bar-li order-li">\n                <a class="filter-bar-link" href="javascript:void(0)"\n                   data-ng-click="ProductListSortDisplayDirectiveCtrl.ToggleSortList()">\n                    <h6 class="filter-bar-title"\n                        translate="frontend.typescripts.components.sort">\n                    <\/h6>\n                    <span class="category-text"\n                          data-ng-bind="ProductListSortDisplayDirectiveCtrl.SortItems[SortMode].title">\n                <\/span>\n                    <i class="fa fa-caret-down"><\/i>\n                <\/a>\n            <\/li>\n            <!--顯示-->\n            <li class="filter-bar-li border-none display-li">\n                <h6 class="filter-bar-title"\n                    translate="frontend.typescripts.components.show">\n                <\/h6>\n                <ul class="grid-list-search">\n                    <!-- 小圖三品 -->\n                    <li class="grid-li"\n                        data-ng-class="{\'active-on\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode === ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.ThreeGrid,\n                                    \'_hide-at-mobile\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode !== ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.ThreeGrid }">\n                        <a href="javascript:void(0)" class="grid-link"\n                           data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.TwoGrid,\'切換中圖\')">\n                            <i class="fa fa-th"><\/i>\n                        <\/a>\n                    <\/li>\n                    <!-- 中圖二品 -->\n                    <li class="grid-li"\n                        data-ng-class="{\'active-on\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode === ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.TwoGrid ,\n                                    \'_hide-at-mobile\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode !== ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.TwoGrid  }">\n                        <a href="javascript:void(0)" class="grid-link"\n                           data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.List,\'切換列表-mobile\')">\n                            <i class="fa fa-th-large"><\/i>\n                        <\/a>\n                    <\/li>\n                    <!-- 列表 -->\n                    <li class="grid-li"\n                        data-ng-class="{\'active-on\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode === ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.List ,\n                                    \'_hide-at-mobile\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode !== ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.List }">\n                        <a href="javascript:void(0)" class="grid-link"\n                           data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.SigleGrid,\'切換大圖\')">\n                            <i class="fa fa-list-ul"><\/i>\n                        <\/a>\n                    <\/li>\n                    <!-- 大圖 -->\n                    <li class="grid-li"\n                        data-ng-class="{\'active-on\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode === ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.SigleGrid,\n                                \'_hide-at-mobile\': ProductListSortDisplayDirectiveCtrl.SelectedDisplayMode !== ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.SigleGrid }">\n                        <a href="javascript:void(0)" class="grid-link"\n                           data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeDisplayModeTo(ProductListSortDisplayDirectiveCtrl.DisplayModeEnum.ThreeGrid,\'切換小圖-mobile\')">\n                            <i class="fa fa-square"><\/i>\n                        <\/a>\n                    <\/li>\n                <\/ul>\n            <\/li>\n        <\/ul>\n        <div data-ns-push-half-page\n             data-ns-is-open="ProductListSortDisplayDirectiveCtrl.IsShowSortList"\n             data-ns-show-close="true"\n             data-ns-page-caption="\'frontend.typescripts.components.sort\'">\n            <div class="menu-content">\n                <ul class="order-list-ul">\n                    <li class="order-list-li"\n                        data-ng-repeat="item in ProductListSortDisplayDirectiveCtrl.SortItems track by $index"\n                        data-ng-show="item.visible">\n                        <a href="javascript:void(0)" class="order-list-link"\n                           data-ng-class="{\'selected-item\':(SortMode === item.mode)}"\n                           data-ng-click="ProductListSortDisplayDirectiveCtrl.ChangeSortMode(item.mode)">\n                            <i class="icon"\n                               data-ng-class="{\'icon-check\':(SortMode === item.mode)}"><\/i>\n                            <span class="order-list-text" data-ng-bind="::item.title"><\/span>\n                        <\/a>\n                    <\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n    <\/section>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-push-half-page/pushHalfPage.html",'<div class="push-half-page" data-ng-show="IsLoad">\n    <div class="half-page-background" data-ng-click="ClosePage()">\n    <\/div>\n    <div class="half-page-container">\n        <div class="half-page-header cms-main-color" data-ng-show="IsOpen"\n             data-ng-if="PageCaption && ShowClose">\n            <h2 class="half-page-caption cms-sub-color"\n                translate="{{PageCaption}}">\n            <\/h2>\n            <a class="half-page-close cms-sub-color"\n               data-ng-click="ClosePage(); $event.preventDefault(); $event.stopPropagation()">\n                <i class="icon icon-close"><\/i>\n            <\/a>\n        <\/div>\n        <!--有預設header區塊再加入scroll-class-->\n        <div class="half-page-content"\n             data-ng-class="{\'half-page-content--full\': IsFullLayout}"\n             data-ng-show="IsOpen">\n            <ng-transclude ><\/ng-transclude>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-remember-credit-card/rememberCreditCart.html",'<div>\n    <div>\n        <h2 class="payProcess-block-title required-star" translate="frontend.typescripts.component.ns_credit_card.card_info"><\/h2>\n        <div ng-if="RememberCreditCardDirectiveController.CreditCardDowntime.isVisibled" class="info-text-red info-text-red--normal multi-line">\n            {{RememberCreditCardDirectiveController.CreditCardDowntime.wording}}\n        <\/div>\n    <\/div>\n    <div class="creditCard">\n        <div class="cardInfo">\n            <div class="payProcess-item-row payProcess-item-row-white cardInfo__item-row--disabled round-top">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_number">\n                <\/label>\n                <div class="creditCard-div">\n                    <span ng-bind="RememberCreditCardDirectiveCtrl.GetCreditCardNum"><\/span>\n                    <i class="card-image" ng-class="RememberCreditCardDirectiveCtrl.CreditBardBrand"><\/i>\n                <\/div>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white cardInfo__item-row--disabled round-bottom" style="margin-bottom: 1px">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                <\/label>\n                <div class="creditCard-div">\n                    <span ng-bind="RememberCreditCardDirectiveCtrl.GetCreditCardDate"\n                          ng-class="{\'text-error\': !RememberCreditCardDirectiveCtrl.CheckIsCreditCardDateValid()}"><\/span>\n                    <span class="creditCard-desc"\n                          translate="frontend.typescripts.component.ns_credit_card.month_year">\n                    <\/span>\n                <\/div>\n                <p ng-if="!RememberCreditCardDirectiveCtrl.CheckIsCreditCardDateValid()"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_credit_card.date_expired">\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-search/search.html",'<input class="ns-search-input"\n       type="search"\n       placeholder="{{\'frontend.typescripts.components.holder_keyword\'|translate}}"\n       name="q"\n       ng-model="search.keyWord"\n       autocomplete="off" ng-change="search.getKeyWords(e)"\n       ng-keydown="search.selectAutoCompleteItem($event).bind(search)"\n       ng-focus="search.focusSearchBar(true)"\n       ng-blur="search.focusSearchBar(false)">\n<a class="searchkeyword ns-search-btn" href="javascript:void(0)"\n   ng-click="search.doSearch()">\n    <i class="icon-editor icon-editor-icon_common_search search-icon"><\/i>\n    <span class="search-btn-text"\n          translate="frontend.typescripts.components.search">\n    <\/span>\n<\/a>\n<ul class="ns-search-ul" ng-if="search.showListType === \'both\'">\n    <li class="ns-search-li" ng-repeat="item in search.keyWordList| limitTo:search.maxKeyWordLength track by $index "\n        ng-class="{\'selected\': item.selected}">\n        <a class="ns-search-link" href="javascript:void(0)"\n           ng-click="search.clickItem(item)"\n           data-ns-ga-event-track\n           data-track-category="Header_搜尋"\n           data-track-action="搜尋-AutoComplete"\n           data-track-label="{{::item.text}}">\n            <i class="icon" data-ng-class="{\'icon-clock\':item.type===\'history\',\'icon-star\':item.type===\'key\'}"><\/i>\n            <span data-ng-bind-html="item.displayText"><\/span>\n        <\/a>\n    <\/li>\n<\/ul>\n<ul class="ns-search-ul" ng-if="search.showListType === \'history\'">\n    <li class="ns-search-li"\n        ng-repeat="historyItem in search.keyWordList | limitTo:search.maxDisplayHistoryLength track by $index"\n        ng-class="{\'selected\': historyItem.selected}">\n        <a class="ns-search-link" href="javascript:void(0)"\n           data-ns-ga-event-track\n           data-track-category="Header_搜尋"\n           data-track-action="搜尋-AutoComplete"\n           data-track-label="{{::historyItem.text}}"\n           ng-click="search.clickItem(historyItem)">\n            <i class="icon icon-clock"><\/i><span data-ng-bind="historyItem.text"><\/span><\/a>\n    <\/li>\n<\/ul>\n');n.put("/V2/TypeScripts/Components/ns-section-group-bar/sectionGroupBarDirective.html",'<div id="{{Identity}}-section-group-bar"\n     class="section-group-bar">\n    <div class="section-group-bar__scroll">\n        <a href="javascript:void(0)"\n           class="section-group-bar__prev-btn"\n           ng-show="SectionGroupBarDirectiveCtrl.IsPrevBtnShow"\n           ng-click="SectionGroupBarDirectiveCtrl.SectionGroupBtnClicked(SelectedSectionGroup, SectionGroupBarDirectiveCtrl.DirectionEnum.prev)">\n            <i class="fa fa-angle-left fa-lg"><\/i>\n        <\/a>\n        <div id="sectionGroup-{{sectionGroup.TagId}}"\n             class="section-group"\n             ng-repeat="sectionGroup in SectionGroupList"\n             ng-class="{\'section-group--active\': SelectedSectionGroup === sectionGroup.TagId}"\n             ng-style="{\'borderBottomColor\': SelectedSectionGroup === sectionGroup.TagId ? sectionGroup.ColorCode : \'unset\',\n                                    \'color\': sectionGroup.ColorCode,\n                                    \'backgroundColor\': SelectedSectionGroup === sectionGroup.TagId ? SectionGroupBarDirectiveCtrl.GetHEXA(sectionGroup.ColorCode, 0.1) : \'unset\'}"\n             ng-click="SectionGroupBarDirectiveCtrl.SectionGroupChanged(sectionGroup.TagId)">\n            {{sectionGroup.Title}}\n            <span class="section-group__count"\n                  ng-style="{\'backgroundColor\': sectionGroup.ColorCode}"\n                  ng-show="sectionGroup.Count > 0">\n                {{sectionGroup.Count > 99 ? \'99+\' : sectionGroup.Count}}\n            <\/span>\n        <\/div>\n        <a href="javascript:void(0)"\n           class="section-group-bar__next-btn"\n           ng-show="SectionGroupBarDirectiveCtrl.IsNextBtnShow"\n           ng-click="SectionGroupBarDirectiveCtrl.SectionGroupBtnClicked(SelectedSectionGroup, SectionGroupBarDirectiveCtrl.DirectionEnum.next)">\n            <i class="fa fa-angle-right fa-lg"><\/i>\n        <\/a>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-slider/slider.html",'<div class="slider">\n    <div class="slider-box">\n        <a class="slider-arrow" data-ng-class="{\'disable\':CurrentIndex <= 0}"\n           href="javascript:void(0)" data-ng-click="Scroll(false)">\n            <i class="fa fa-angle-left"><\/i>\n        <\/a>\n        <div class="slider-content">\n            <ul class="slider-ul">\n                <li class="slider-li" data-ng-repeat="item in List track by $index" ns-repeat-end>\n                    <a href="javascript:void(0)"\n                       data-ns-ga-ec-product-clicks\n                       data-product-id="{{::item.getId()}}"\n                       data-product-name="{{::item.getTitle()}}"\n                       data-product-price="{{::item.getTotalPayment()}}"\n                       data-product-position="{{::($index+1)}}"\n                       data-list-name="{{::ListName}}"\n                       data-ng-click="HrefTo(OfficialOriginDomain +\'/SalePage/Index/\' + item.getId())" class="product-link">\n                        <img class="product-img" data-ng-src="{{item.getPicUrl()}}">\n                        <span class="product-qty">\n                            <span translate="frontend.typescripts.common.qty"><\/span>: <span data-ng-bind="item.getQty()"><\/span>\n                        <\/span>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <a class="slider-arrow" data-ng-class="{\'disable\':CurrentIndex + DisplayCount >= HotSaleRankingList.length}"\n           href="javascript:void(0)" data-ng-click="Scroll(true)">\n            <i class="fa fa-angle-right"><\/i>\n        <\/a>\n    <\/div>\n<\/div>\n\n');n.put("/V2/TypeScripts/Components/ns-svg/svgCrownDirective.html",'<svg version="1.1" id="&#x5716;&#x5C64;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"\n\t y="0px" width="19px" height="15px" viewBox="0 0 19 15" style="enable-background:new 0 0 19 15;" xml:space="preserve">\n<g>\n\t<g class="purchase-crown" id="Layer_8_42_">\n\t\t<path d="M18.771,3.898c0,0.936-0.758,1.694-1.693,1.694c-0.104,0-0.205-0.011-0.305-0.029l-1.39,4.964\n\t\t\tv1.783H3.617v-1.854L2.238,5.562c-0.102,0.02-0.208,0.03-0.316,0.03c-0.935,0-1.693-0.757-1.693-1.693s0.758-1.693,1.693-1.693\n\t\t\tc0.936,0,1.694,0.758,1.694,1.693c0,0.23-0.046,0.45-0.13,0.65c1.692,0.571,4.305,1.036,5.48-0.932\n\t\t\tc-0.673-0.224-1.16-0.859-1.16-1.607c0-0.936,0.758-1.694,1.693-1.694c0.935,0,1.694,0.759,1.694,1.694\n\t\t\tc0,0.748-0.485,1.382-1.16,1.606c0.688,1.268,2.216,2.592,5.55,1.083c-0.127-0.238-0.199-0.51-0.199-0.799\n\t\t\tc0-0.936,0.759-1.694,1.693-1.694C18.012,2.205,18.771,2.963,18.771,3.898z M3.617,14.686h11.767V13.08H3.617V14.686z"/>\n\t<\/g>\n<\/g>\n<\/svg>');n.put("/V2/TypeScripts/Components/ns-svg/svgLoadMoreDirective.html",'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" class="load-more-icon svg-primary-color"\n\t viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">\n<g transform="translate(-823.000000, -686.000000)">\n\t<g transform="translate(-128.000000, -9803.000000)">\n\t\t<g transform="translate(364.000000, 0.000000)">\n\t\t\t<g transform="translate(0.000000, 6537.000000)">\n\t\t\t\t<g transform="translate(506.000000, 3927.000000)">\n\t\t\t\t\t\t<g id="right-arrow-_x28_1_x29_" transform="translate(90.500000, 35.500000) rotate(90.000000) translate(-90.500000, -35.500000) translate(80.000000, 25.000000)">\n\t\t\t\t\t\t<g id="Capa_1">\n\t\t\t\t\t\t\t<g id="Group">\n\t\t\t\t\t\t\t\t<path id="Shape" d="M19.2,6.1c-1.1-2.5-2.8-4.2-5.3-5.3C12.6,0.3,11.3,0,10,0S7.3,0.3,6.1,0.8C3.6,1.9,1.8,3.6,0.8,6.1\n\t\t\t\t\t\t\t\t\tC0.3,7.3,0,8.6,0,10c0,1.4,0.3,2.7,0.8,3.9c1.1,2.5,2.9,4.3,5.3,5.3C7.3,19.7,8.6,20,10,20s2.7-0.3,3.9-0.8\n\t\t\t\t\t\t\t\t\tc2.5-1.1,4.3-2.9,5.3-5.3c0.5-1.2,0.8-2.5,0.8-3.9C20,8.6,19.7,7.3,19.2,6.1z"/>\n\t\t\t\t\t\t\t\t<path id="Shape_1_" style="fill:#fff" d="M9.1,5.4c-0.2-0.2-0.5-0.2-0.7,0C8.2,5.6,8.2,5.9,8.4,6l3.9,4L8.4,14\n\t\t\t\t\t\t\t\t\tc-0.2,0.2-0.2,0.5,0,0.7c0.1,0.1,0.2,0.1,0.4,0.1c0.1,0,0.2-0.1,0.3-0.1l4.2-4.2c0.2-0.2,0.2-0.5,0-0.7L9.1,5.4z"/>\n\t\t\t\t\t\t\t<\/g>\n\t\t\t\t\t\t<\/g>\n\t\t\t\t\t<\/g>\n\t\t\t\t<\/g>\n\t\t\t<\/g>\n\t\t<\/g>\n\t<\/g>\n<\/g>\n<\/svg>\n');n.put("/V2/TypeScripts/Components/ns-tag-category/tagCategoryDirective.html",'<div class="tag-category">\n    <div class="title-section">\n        <label translate="frontend.typescripts.sale_page.related_category"><\/label>\n    <\/div>\n    <ul class="tag-category-list">\n        <li class="tag-category-item"\n            data-ng-repeat="item in Tags">\n            <a class="tag-category-link cms-keyWordTagTextColor" data-ng-href="{{item.link}}" data-ng-bind="item.text"\n               data-ng-click="onTagCategoryItemClick(item.text)"\n               data-ns-ga-event-track\n               data-track-category="商品頁"\n               data-track-action="{{\'點擊相關分類_\'+item.text}}"\n               data-track-label="{{SalePageId}}">\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>\n<!--分隔線-->\n<div class="salepage-divider"><\/div>\n');n.put("/V2/TypeScripts/Components/ns-tap-pay-credit-card/tapPayCreditCardDirective.html",'<div>\n    <div class="card-notice">\n        <h2 class="payProcess-block-title" translate="frontend.typescripts.component.ns_credit_card.card_info"><\/h2>\n        <div ng-if="TapPayCreditCartDirectiveCtrl.CreditCardDowntime.isVisibled"\n             class="info-text-red info-text-red--normal multi-line">{{TapPayCreditCartDirectiveCtrl.CreditCardDowntime.wording}}<\/div>\n    <\/div>\n    <div class="card-notice">\n        <span ng-if="DesignatePaymentPromotionHint" class="info-text-red info-text-red--normal multi-line">{{DesignatePaymentPromotionHint}}<\/span>\n    <\/div>\n    <div class="creditCard">\n        <!-- 記住這張卡 -->\n        <form class="creditCardForm" name="CreditCardForm" novalidate>\n            <div class="cardInfo"\n                 ng-if="HasCreditCard">\n                <div class="tap-pay__row tap-pay__row--text-only payProcess-item-row round-top">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.card_number">\n                    <\/label>\n                    <div class="creditCard-input-with-suffix">\n                        <div class="tap-pay__field tap-pay__field--text-only creditCard-input creditCardNo">\n                            {{::TapPayCreditCartDirectiveCtrl.FormatRememberCreditCardNo(RememberCreditCardInfo.LastFour)}}\n                        <\/div>\n                        <i class="card-image suffix" ng-class="CreditCardImgClassName"><\/i>\n                    <\/div>\n                <\/div>\n                <div class="tap-pay__row tap-pay__row--text-only payProcess-item-row">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                    <\/label>\n                    <div class="creditCard-input-with-suffix">\n                        <div class="tap-pay__field tap-pay__field--text-only creditCard-input creditCardDate">\n                            {{::TapPayCreditCartDirectiveCtrl.FormatRememberCreditCardExpiryDate(RememberCreditCardInfo.ExpiryDate)}}\n                        <\/div>\n                        <span class="creditCard-desc suffix"\n                            translate="frontend.typescripts.component.ns_credit_card.month_year">\n                        <\/span>\n                    <\/div>\n                <\/div>\n                <div class="tap-pay__row payProcess-item-row round-bottom" style="margin-bottom: 1px">\n                    <label class="cardInfo-title"\n                           translate="frontend.typescripts.component.ns_credit_card.card_cvv">\n                    <\/label>\n                    <input type="tel" class="creditCard-input creditCardCVV"\n                           id="creditCardCVV"\n                           name="CreditCardCCV"\n                           ng-model="TapPayCreditCartDirectiveCtrl.$scope.CCV"\n                           translate-attr="{ placeholder: TapPayCreditCartDirectiveCtrl.LocalizationConfig.CreditCard.CardCvvPlaceholder }"\n                           autocomplete="off"\n                           required\n                           ng-pattern="CCVPattern"\n                           ng-focus="CreditCardImgClassName = \'cvv2\'"\n                           ng-blur="CreditCardImgClassName = TapPayCreditCartDirectiveCtrl.GetCreditCardImgClassName(RememberCreditCardInfo.Type)"\n                           ng-change="TapPayCreditCartDirectiveCtrl.OnCcvUpdate(TapPayCreditCartDirectiveCtrl.$scope.CCV)"\n                           ns-only-number\n                           maxlength="{{ TapPayCreditCartDirectiveCtrl.LocalizationConfig.CreditCard.CardCvvMaxLength }}"/>\n                    <p ng-show="CreditCardForm.CreditCardCCV.$error.required && Submitted"\n                       class="interror"\n                       translate="frontend.typescripts.component.ns_credit_card.card_cvv_required">\n                    <\/p>\n                    <p ng-show="CreditCardForm.CreditCardCCV.$error.pattern && Submitted"\n                       class="interror"\n                       translate="frontend.typescripts.component.ns_credit_card.card_cvv_format_error">\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/form>\n        <!-- 填寫信用卡 -->\n        <div class="cardInfo"\n             ng-if="!HasCreditCard">\n            <div class="tap-pay__row payProcess-item-row round-top">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_number">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <div id="TapPayCreditCardNumber" class="tap-pay__field creditCard-input creditCardNo"><\/div>\n                    <i class="card-image suffix" ng-class="CreditCardImgClassName"><\/i>\n                <\/div>\n                <p ng-show="CreditCardNumberStatus === TapPayCreditCartDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.card_number_is_not_filled_in_or_format_is_wrong">\n                <\/p>\n                <p ng-show="CreditCardNumberStatus === TapPayCreditCartDirectiveCtrl.TapPayFieldStatusEnum.Valid && !IsCreditCardTypeSupported"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.the_type_of_credit_card_is_unavailable_at_the_moment">\n                <\/p>\n            <\/div>\n            <div class="tap-pay__row payProcess-item-row">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.expiry_date">\n                <\/label>\n                <div class="creditCard-input-with-suffix">\n                    <div id="TapPayCreditCardExpirationDate" class="tap-pay__field creditCard-input creditCardDate"><\/div>\n                    <span class="creditCard-desc suffix"\n                        ng-class="{\'isFocus\': CreditCardExpirationDateStatus === TapPayCreditCartDirectiveCtrl.TapPayFieldStatusEnum.Typing}"\n                        translate="frontend.typescripts.component.ns_credit_card.month_year">\n                    <\/span>\n                <\/div>\n                <p ng-show="CreditCardExpirationDateStatus === TapPayCreditCartDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.the_credit_card_expiration_date_is_missing_or_formatted_incorrectly">\n                <\/p>\n            <\/div>\n            <div class="tap-pay__row payProcess-item-row round-bottom" style="margin-bottom: 1px">\n                <label class="cardInfo-title"\n                       translate="frontend.typescripts.component.ns_credit_card.card_cvv">\n                <\/label>\n                <div id="TapPayCreditCardCCV"\n                     class="tap-pay__field creditCard-input creditCardCVV"><\/div>\n                <p ng-show="CreditCardCCVStatus === TapPayCreditCartDirectiveCtrl.TapPayFieldStatusEnum.Invalid"\n                   class="interror"\n                   translate="frontend.typescripts.component.ns_tap_pay_credit_card.credit_card_verification_code_is_missing_or_formatted_incorrectly">\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-tool-box/toolBoxDirective.html",'<div class="ns-tool-box" id="ns-tool-box" data-ng-show="ToolBoxDirectiveCtrl.IsLoaded">\n    <ul class="tool-box-container" data-ng-if="ToolBoxDirectiveCtrl.FanGroupUrl||ToolBoxDirectiveCtrl.LineUrl||ToolBoxDirectiveCtrl.ShopInstagramUrl\n        ||ToolBoxDirectiveCtrl.HasStoreInfo||ToolBoxDirectiveCtrl.HasCoupon||ToolBoxDirectiveCtrl.FBMessenger.hasService">\n        <!-- fb粉絲團 -->\n        <li class="tool-box-li" data-ng-if="::ToolBoxDirectiveCtrl.FanGroupUrl">\n            <a data-ng-href="{{ToolBoxDirectiveCtrl.FanGroupUrl}}"\n               class="tool-box-link theme-color-hover"\n               target="_blank"\n               data-ng-click="ToolBoxDirectiveCtrl.SocialShareClick(\'Facebook\')"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="Social icons"\n               data-track-label="all">\n                <div class="tool-box-icon">\n                    <i class="icon-editor icon-editor-icon_facebook_solid"><\/i>\n                <\/div>\n                <div class="tool-box-text">Facebook<\/div>\n            <\/a>\n        <\/li>\n        <!-- Line -->\n        <li class="tool-box-li" data-ng-if="::ToolBoxDirectiveCtrl.LineUrl">\n            <a data-ng-href="{{ToolBoxDirectiveCtrl.LineUrl}}"\n               class="tool-box-link theme-color-hover"\n               target="_blank"\n               data-ng-click="ToolBoxDirectiveCtrl.SocialShareClick(\'Line\')"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="Social icons"\n               data-track-label="all">\n                <div class="tool-box-icon">\n                    <i class="icon-editor icon-editor-icon_line_round"><\/i>\n                <\/div>\n                <div class="tool-box-text">Line<\/div>\n            <\/a>\n        <\/li>\n        <!-- IG -->\n        <li class="tool-box-li" data-ng-if="::ToolBoxDirectiveCtrl.ShopInstagramUrl">\n            <a data-ng-href="{{ToolBoxDirectiveCtrl.ShopInstagramUrl}}"\n               target="_blank"\n               class="tool-box-link theme-color-hover"\n               data-ng-click="ToolBoxDirectiveCtrl.SocialShareClick(\'Instagram\')"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="Social icons"\n               data-track-label="all">\n                <div class="tool-box-icon">\n                    <i class="icon-editor icon-editor-icon_quick_ig_solid_round"><\/i>\n                <\/div>\n                <div class="tool-box-text">Instagram<\/div>\n            <\/a>\n        <\/li>\n        <!--門市資訊-->\n        <li ng-if="ToolBoxDirectiveCtrl.HasStoreInfo" class="tool-box-li">\n            <a class="tool-box-link theme-color-hover" data-ng-href="/V2/Shop/StoreList/{{::ToolBoxDirectiveCtrl.ShopId}}"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="門市資訊"\n               data-track-label="">\n                <div class="tool-box-icon">\n                    <i class="icon icon-bag-shop"><\/i>\n                <\/div>\n                <div class="tool-box-text"\n                     translate="frontend.typescripts.components.about_store">\n                <\/div>\n            <\/a>\n        <\/li>\n        <!--門市優惠-->\n        <li ng-if="ToolBoxDirectiveCtrl.HasCoupon" class="tool-box-li">\n            <a class="tool-box-link theme-color-hover" href="/Coupon/List"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="門市優惠"\n               data-track-label="">\n                <div class="tool-box-icon">\n                    <i class="icon icon-bag-coupon"><\/i>\n                <\/div>\n                <div class="tool-box-text"\n                     translate="frontend.typescripts.components.store_discount_v1">\n                <\/div>\n            <\/a>\n        <\/li>\n        <!--發送訊息-->\n        <li class="tool-box-li" data-ng-if="ToolBoxDirectiveCtrl.FBMessenger.hasService">\n            <!--客服留言-->\n            <a class="tool-box-link theme-color-hover"\n               href="javascript:void(0)"\n               ng-if="!ToolBoxDirectiveCtrl.IsFBMessengerServiceTime"\n               ng-click="ToolBoxDirectiveCtrl.ConfirmQuestionService()"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="發送訊息"\n               data-track-label="">\n                <div class="tool-box-icon">\n                    <i class="icon icon-message"><\/i>\n                <\/div>\n                <div class="tool-box-text"\n                     translate="frontend.typescripts.components.customer_service">\n                <\/div>\n            <\/a>\n            <!--fb messenger-->\n            <a class="tool-box-link theme-color-hover"\n               data-ng-click="ToolBoxDirectiveCtrl.SwitchFBMessenger()"\n               data-ng-if="ToolBoxDirectiveCtrl.IsFBMessengerServiceTime"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="發送訊息"\n               data-track-label="">\n                <div class="tool-box-icon">\n                    <i class="icon icon-messenger-full"><\/i>\n                <\/div>\n                <div class="tool-box-text"\n                     translate="frontend.typescripts.components.messenger">\n                <\/div>\n            <\/a>\n        <\/li>\n    <\/ul>\n    <!--瀏覽紀錄-->\n    <div class="browsing-history-curtain">\n        <div class="browsing-history-content">\n            <div>\n                <a class="browsing-arrow-link"\n                   data-ng-class="{\'disabled\':ToolBoxDirectiveCtrl.currentPage <= 1 || ToolBoxDirectiveCtrl.salePageViewList.length === 0}"\n                   data-ng-click="ToolBoxDirectiveCtrl.BrowsingHistoryScrollUp()">\n                    <i class="icon icon-slim-arrow-up"><\/i>\n                <\/a>\n                <!--無紀錄-->\n                <div class="browsing-empty-menu" data-ng-if="!ToolBoxDirectiveCtrl.salePageViewList||ToolBoxDirectiveCtrl.salePageViewList.length === 0">\n                    <div class="browsing-empty-title"\n                         translate-compile\n                         translate="frontend.typescripts.components.browsing_popular"\n                         translate-value-val0="\n                            <div>\n                                <a class=\'popular-salepage-link font-primary-color\'\n                                   ng-href=\'/Shop/HotSaleRanking/{{::ToolBoxDirectiveCtrl.ShopId}}?period=Weekly\'\n                                   translate=\'frontend.typescripts.components.popular_items_desktop\'>\n                                <\/a>\n                            <\/div>\n                         "\n                    ><\/div>\n                <\/div>\n                <!--瀏覽商品-->\n                <div class="browsing-menu-frame" data-ng-if="ToolBoxDirectiveCtrl.salePageViewList.length > 0">\n                    <ul class="browsing-menu-ul">\n                        <li class="browsing-menu-li"\n                            data-ng-repeat="item in ToolBoxDirectiveCtrl.salePageViewList track by $index"\n                            ns-repeat-end>\n                            <div class="browsing-product">\n                                <a class="browsing-image-link"\n                                   data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{::ToolBoxDirectiveCtrl.gaReferSrc}}"\n                                   data-ns-ga-event-track\n                                   data-track-category="全站_Rmenu"\n                                   data-track-action="瀏覽紀錄"\n                                   data-track-label="點擊商品"\n                                   data-ns-ga-ec-product-clicks\n                                   data-product-id="{{::item.SalePageId}}"\n                                   data-product-name="{{::item.Title}}"\n                                   data-product-price="{{item.Price | preferredCurrency}}"\n                                   data-product-position="{{::($index+1)}}"\n                                   data-list-name="瀏覽紀錄商品">\n                                    <img class="browsing-image-body" data-ng-src="{{::item.PicUrl}}"\n                                         data-ng-alt="item.Title">\n                                <\/a>\n                            <\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <a class="browsing-arrow-link"\n                   data-ng-class="{\'disabled\':ToolBoxDirectiveCtrl.currentPage >= ToolBoxDirectiveCtrl.totalPage || ToolBoxDirectiveCtrl.salePageViewList.length === 0}"\n                   data-ng-click="ToolBoxDirectiveCtrl.BrowsingHistoryScrollDown()">\n                    <i class="icon icon-slim-arrow-down"><\/i>\n                <\/a>\n                <!--清除-->\n                <a class="clear-browsing-history" data-ng-show="ToolBoxDirectiveCtrl.salePageViewList.length > 0"\n                   data-ng-click="ToolBoxDirectiveCtrl.clearHistory()"\n                   translate="frontend.typescripts.components.clear_history_desktop">\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--go to top-->\n    <div class="scroll-to-top hide-over-bottom" data-ns-scroll-to-top>\n        <a href="javascript:void(0)" class="scroll-to-top-link">\n            <i class="icon icon-slim-arrow-up"><\/i>\n        <\/a>\n    <\/div>\n    <!--fb messenger對話框-->\n    <div class="fb-messenger-dialog" ng-class="{\'open-dialog\': ToolBoxDirectiveCtrl.showMessenger}"\n         data-ng-if="ToolBoxDirectiveCtrl.hasShowMessage"\n         ng-show="ToolBoxDirectiveCtrl.showMessenger">\n        <div class="fb-messenger-dialog-header">\n            <a class="fb-messenger-dialog-link" href="javascript:void(0)"\n               data-ng-click="ToolBoxDirectiveCtrl.SwitchFBMessenger()">\n                <i class="icon icon-messenger-full"><\/i>\n                <span class="fb-messenger-dialog-title"\n                      translate="frontend.typescripts.components.messenger">\n                <\/span>\n                <i class="icon icon-slim-minus right"><\/i>\n            <\/a>\n        <\/div>\n        <div class="fb-messenger-dialog-container">\n            <iframe data-ng-src="{{ToolBoxDirectiveCtrl.FBMessengerIframeSrc}}"\n                    width="340" height="500" style="border:none;overflow:hidden" scrolling="no" frameborder="0"\n                    allowTransparency="true"><\/iframe>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Components/ns-tool-box/toolBoxFloatingIconDirective.html",'<div class="ns-tool-box">\n    <div class="service-tool">\n        <div class="service-tool-group">\n            <!--瀏覽紀錄-->\n            <a class="service-link"\n               data-ng-click="SwitchBrowsingHistory()"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="瀏覽紀錄"\n               data-track-label="OPEN">\n                <i class="icon icon-slim-history"><\/i>\n            <\/a>\n            <!--官網客服-->\n            <a class="question-service service-link"\n               href="javascript:void(0)"\n               ng-if="FBMessenger.hasService && !IsFBMessengerServiceTime"\n               ng-click="ConfirmQuestionService()"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="發送訊息"\n               data-track-label="">\n                <i class="icon icon-message"><\/i>\n            <\/a>\n            <!--fb 客服-->\n            <a class="question-service service-link" target="_blank"\n               data-ng-href="https://m.me/{{FBName}}"\n               ng-if="FBMessenger.hasService && IsFBMessengerServiceTime"\n               data-ns-ga-event-track\n               data-track-category="全站_Rmenu"\n               data-track-action="發送訊息"\n               data-track-label="">\n                <i class="icon icon-messenger-full"><\/i>\n            <\/a>\n\n        <\/div>\n        <div class="scroll-to-top hide-over-bottom" data-ns-scroll-to-top>\n            <a href="javascript:void(0)" class="scroll-to-top-link">\n                <i class="icon icon-slim-arrow-up"><\/i>\n            <\/a>\n        <\/div>\n    <\/div>\n    <div id="browsing-history-half-page" class="browsing-history-half-page">\n        <div ns-push-half-page\n             ns-is-open="IsOpenBrowsingHistory"\n             ns-open-direction="\'right\'"\n             ns-close-function="SwitchBrowsingHistory()"\n             class="browsing-content">\n            <div class="browsing-history-header theme-primary-background cms-main-color">\n                <div class="browsing-history-header-title">\n                    <i class="icon icon-slim-history cms-sub-color"><\/i>\n                    <span class="browsing-history-header-text cms-sub-color"\n                          translate="frontend.typescripts.components.browsing_history">\n                    <\/span>\n                <\/div>\n                <span class="browsing-history-header-close cms-sub-color"\n                      data-ng-click="SwitchBrowsingHistory();$event.preventDefault(); $event.stopPropagation()">\n                        <i class="icon icon-slim-close"><\/i>\n                <\/span>\n            <\/div>\n            <div class="browsing-empty-menu" data-ng-if="salePageViewList.length === 0">\n                <div class="browsing-empty-title"\n                     translate="frontend.typescripts.components.browsing_history_is_empty">\n                <\/div>\n                <div class="browsing-empty-subtitle"\n                     translate="frontend.typescripts.components.go_and_see">\n                <\/div>\n                <a class="popular-salepage-link font-primary-color theme-border cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                   ng-href="/Shop/HotSaleRanking/{{ShopId}}?period=Weekly"\n                   translate="frontend.typescripts.components.popular_items">\n                <\/a>\n            <\/div>\n            <div class="browsing-scroll-section">\n                <ul class="browsing-menu-ul product-list">\n                    <li class="browsing-menu-li" data-ng-repeat="item in salePageViewList track by $index">\n                        <div class="product-card">\n                            <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                            data-ns-ga-event-track\n                            data-track-category="全站_Rmenu"\n                            data-track-action="瀏覽紀錄"\n                            data-track-label="點擊商品"\n                            data-ns-ga-ec-product-clicks\n                            data-product-id="{{::item.SalePageId}}"\n                            data-product-name="{{::item.Title}}"\n                            data-product-price="{{::item.Price}}"\n                            data-product-position="{{::($index+1)}}"\n                            data-list-name="瀏覽紀錄商品">\n                                <img class="browsing-menu-image" data-ng-src="{{::item.PicUrl}}" data-ng-alt="item.Title">\n                            <\/a>\n                            <div class="browsing-menu-detail">\n                                <a data-ng-href="/SalePage/Index/{{item.SalePageId}}?{{gaReferSrc}}"\n                                data-ns-ga-event-track\n                                data-track-category="全站_Rmenu"\n                                data-track-action="瀏覽紀錄"\n                                data-track-label="點擊商品"\n                                data-ns-ga-ec-product-clicks\n                                data-product-id="{{::item.SalePageId}}"\n                                data-product-name="{{::item.Title}}"\n                                data-product-price="{{::item.Price}}"\n                                data-product-position="{{::($index+1)}}"\n                                data-list-name="瀏覽紀錄商品">\n                                    <h3 class="browsing-menu-title" data-ng-bind="item.Title"><\/h3>\n                                <\/a>\n                                <span class="browsing-menu-price cms-moneyColor"\n                                    ng-bind="::item.Price | preferredCurrency"><\/span>\n                                <a class="add-to-cart"\n                                data-ng-click="addToCart(item.SalePageId,item.Title,item.Price)"\n                                data-ns-ga-event-track\n                                data-track-category="全站_Rmenu"\n                                data-track-action="瀏覽紀錄"\n                                data-track-label="加入購物車">\n                                    <i class="icon icon-editor-icon_cart"><\/i>\n                                <\/a>\n                            <\/div>\n                        <\/div>\n                    <\/li>\n                <\/ul>\n                <a class="clear-browsing-history"\n                   data-ng-if="salePageViewList.length > 0"\n                   data-ng-click="clearHistory()"\n                   translate="frontend.typescripts.components.clear_history">\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Components/ns-vertical-progress-bar/verticalProgressBarDirective.html",'<div class="progress-theme--color-{{ColorTheme || \'default\'}}">\n    <div class="progress-container"\n         ng-repeat="progressNode in ProgressList track by $index">\n        <div class="progress-container__dateTime progress-container__dateTime--align-{{DateTextAlign || \'right\'}}"\n             ng-class="{\'progress-container__dateTime--active\': progressNode.IsLatestStatus}">\n            <div class="progress-container__date"\n                 ng-if="progressNode.Time">\n                {{progressNode.Time|nsDotNetDateParser|date: DateFormat || \'medium\' }}\n            <\/div>\n            <div class="progress-container__time"\n                 ng-if="progressNode.Time">\n                {{progressNode.Time|nsDotNetDateParser|date:\'HH:mm\'}}\n            <\/div>\n        <\/div>\n        <div class="time-line">\n            <div class="time-line__top"\n                 ng-class="{\'time-line__top--hidden\': $index === 0}"><\/div>\n            <div class="time-line__bottom"\n                 ng-if="$index < ProgressList.length - 1"><\/div>\n        <\/div>\n        <div class="progress-container__info">\n            <div>\n                <span class="progress-container__info__title"\n                      ng-class="{\'progress-container__info__title--active\': progressNode.IsLatestStatus}">{{progressNode.MainMessage}}<\/span>\n                <i class="icon-editor icon-editor-icon_question"\n                   ng-if="progressNode.WarningMessage"\n                   ng-click="VerticalProgressBarDirectiveCtrl.ShowWarningDialog(progressNode.WarningMessage)"><\/i>\n            <\/div>\n            <div class="progress-container__info__desc" ng-if="progressNode.SubMessage">\n                <div>{{progressNode.SubMessage}}<\/div>\n                <a class="progress-container__info__phone-link"\n                   ng-href="tel:/{{progressNode.ConsumerHotLine}}"\n                   ng-if="progressNode.ConsumerHotLine">\n                    <i class="icon-editor icon-editor-icon_phone"><\/i>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Directives/ns-address/addressDirective.html",'<div ng-form="AddressForm" class="address-block">\n    <h2 ng-if="AddressCtrl.FormTitle" class="block-title" ng-cloak>{{::AddressCtrl.FormTitle }}<\/h2>\n    <div class="item-row " ng-class="{\'round-top\': AddressCtrl.IsAlone}">\n        <div class="choose-place split">\n            <select class="option"\n                    data-qe-id="receiverCity"\n                    ng-model="AddressCtrl.SelectedCity"\n                    ng-options="City.City for City in AddressCtrl.CityList"\n                    ng-change="AddressCtrl.SetSelectedDistrictNull()"\n                    ng-required="::AddressCtrl.IsRequired">\n                <option translate="frontend.typescripts.directives.ns_address.city_select"\n                        value="">\n                <\/option>\n            <\/select>\n        <\/div>\n        <div class="choose-place">\n            <select class="option"\n                    data-qe-id="receiverDistrict"\n                    ng-model="AddressCtrl.SelectedDistrict"\n                    name="District"\n                    ng-options="District as (District.District + \' \' + District.ZipCode) for District in AddressCtrl.SelectedCity.DistrictList"\n                    ng-required="AddressCtrl.IsRequired">\n                <option translate="frontend.typescripts.directives.ns_address.district_select"\n                        value="">\n                <\/option>\n            <\/select>            \n        <\/div>\n        <p ng-show="AddressForm.District.$error.required && Submitted"\n           class="interror"\n           translate="frontend.typescripts.directives.ns_address.district_required">\n        <\/p>        \n    <\/div>\n    <div class="item-row"\n         ng-class="{ \'round-bottom\': !AddressCtrl.$scope.IsShowUserMemo}">\n        <input type="text"\n               class="address-text"\n               ng-model="AddressCtrl.AddressDetail"\n               data-qe-id="receiverAddressDetail"\n               name="AddressDetail"\n               ng-change="AddressdetailChange()"\n               ng-required="AddressCtrl.IsRequired"\n               ns-remove-whitespace\n               ng-pattern="IsAddressdetailChanged && AddressCtrl.AddressDetailRegExp"\n               translate-attr="{placeholder: (AddressCtrl.AddressPlaceholder || \'frontend.typescripts.directives.ns_address.address_placeholder\')}" />\n        <p ng-show="AddressForm.AddressDetail.$error.required && Submitted"\n           class="interror"\n           translate="frontend.typescripts.directives.ns_address.address_required">\n        <\/p>\n        <p ng-show="AddressForm.AddressDetail.$error.pattern && Submitted"\n           class="interror"\n           translate="frontend.typescripts.directives.ns_address.address_format_error">\n        <\/p>\n    <\/div>\n    <section ng-if="AddressCtrl.$scope.IsShowUserMemo">\n        <section class="item-row round-bottom">\n            <label class="info-title"\n                   translate="frontend.typescripts.directives.ns_address.note">\n            <\/label>\n            <input type="text"\n                   class="text"\n                   ng-model="AddressCtrl.$scope.UserMemo"\n                   name="UserMemo"\n                   maxlength="20"\n                   translate-attr="{ placeholder: \'frontend.typescripts.directives.ns_address.note_placeholder\' }" />\n        <\/section>\n    <\/section>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-address-hk/addressHK.html",'<div ng-form="AddressForm" class="address-block-global">\n    <h2 ng-if="AddressHKCtrl.FormTitle" class="block-title" ng-cloak>{{::AddressHKCtrl.FormTitle }}<\/h2>\n    <div class="item-row">\n        <div class="choose-place">\n            <label class="info-title" translate="frontend.typescripts.directives.ns_address.hk_address"><\/label>\n            <!-- 不可包含@、＊ -->\n            <input data-qe-id="receiverAddressDetail"\n                   type="text"\n                   class="address-input"\n                   translate-attr="{ placeholder: \'frontend.typescripts.directives.ns_address.hk_address_placeholder\' }"\n                   name="AddressDetail"\n                   ng-pattern="IsAddressDetailChanged && AddressHKCtrl.AddressDetailRegex"\n                   ng-model="AddressHKCtrl.AddressDetail"\n                   ng-change="AddressDetailChange()"\n                   ng-required="AddressHKCtrl.IsRequired"/>\n            <p ng-show="AddressForm.AddressDetail.$error.required && Submitted"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.address_warning_required">\n            <\/p>\n            <p ng-show="AddressForm.AddressDetail.$error.pattern"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.hk_address_format_error">\n            <\/p>\n        <\/div>\n    <\/div>\n    <div class="item-row round-bottom">\n        <div class="choose-place split">\n            <select data-qe-id="receiverCity"\n                    class="option"\n                    ng-model="AddressHKCtrl.SelectedCity"\n                    name="AddressDetail2"\n                    ng-options="City.CityName for City in AddressHKCtrl.List"\n                    ng-change="AddressHKCtrl.SetSelectedCityNull()"\n                    ng-required="AddressHKCtrl.IsRequired">\n                <option value="" translate="frontend.typescripts.directives.ns_address.area"><\/option>\n            <\/select>\n            <p ng-show="AddressForm.AddressDetail2.$error.required && Submitted" class="interror" translate="frontend.typescripts.directives.ns_address.area_required"><\/p>\n        <\/div>\n        <div class="choose-place">\n            <select data-qe-id="receiverDistrict"\n                    class="option"\n                    name="AddressDetail3"\n                    ng-model="AddressHKCtrl.SelectedDistrict"\n                    ng-options="District.DistrictName for District in AddressHKCtrl.SelectedCity.DistrictList"\n                    ng-required="::AddressHKCtrl.IsRequired">\n                <option value="" translate="frontend.typescripts.directives.ns_address.region"><\/option>\n            <\/select>\n            <p ng-show="AddressForm.AddressDetail3.$error.required && Submitted" class="interror"  translate="frontend.typescripts.directives.ns_address.district_required"><\/p>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-address-my/addressMY.html",'<div ng-form="AddressForm"\n     class="address-block-global">\n    <h2 ng-if="AddressMYCtrl.FormTitle" class="block-title" ng-cloak>{{::AddressMYCtrl.FormTitle }}<\/h2>\n    <div class="item-row ">\n        <div class="choose-place">\n            <label class="info-title" translate="frontend.typescripts.directives.ns_address.address"><\/label>\n            <input data-qe-id="receiverAddressDetail"\n                   type="text"\n                   class="address-input"\n                   translate-attr="{ placeholder: \'frontend.typescripts.directives.ns_address.address_placeholder\' }"\n                   name="AddressDetail"\n                   ng-model="AddressMYCtrl.AddressDetail"\n                   ng-change="AddressDetailChange()"\n                   ng-pattern="IsAddressDetailChanged && AddressMYCtrl.AddressDetailRegex"\n                   ng-required="AddressMYCtrl.IsRequired" />\n            <p ng-show="AddressForm.AddressDetail.$error.required && Submitted"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.address_warning_required">\n            <\/p>\n            <p ng-show="AddressForm.AddressDetail.$error.pattern && AddressForm.AddressDetail.$dirty"\n                class="interror"\n                translate="frontend.typescripts.directives.ns_address.my_address_format_error">\n            <\/p>\n        <\/div>\n    <\/div>\n    <div class="item-row round-bottom">\n        <div class="choose-place split">\n            <select data-qe-id="receiverState"\n                    class="option"\n                    name="AddressDetail2"\n                    ng-model="AddressMYCtrl.SelectedState"\n                    ng-options="State.StateName for State in AddressMYCtrl.List"\n                    ng-change="AddressMYCtrl.RecieiverStateChange()"\n                    ng-required="::AddressMYCtrl.IsRequired">\n                <option value=""\n                        translate="frontend.typescripts.directives.ns_address.state_select">\n                <\/option>\n            <\/select>\n            <p ng-show="AddressForm.AddressDetail2.$error.required && Submitted"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.state_warning_required">\n            <\/p>\n        <\/div>\n        <div class="choose-place split">\n            <select data-qe-id="receiverCity"\n                    class="option"\n                    ng-model="AddressMYCtrl.SelectedCity"\n                    name="AddressDetail3"\n                    ng-options="City.CityName for City in AddressMYCtrl.SelectedState.CityList"\n                    ng-change="AddressMYCtrl.SetSelectedDistrictNull()"\n                    ng-required="AddressMYCtrl.IsRequired">\n                <option value=""\n                        translate="frontend.typescripts.directives.ns_address.city_select">\n                <\/option>\n            <\/select>\n            <p ng-show="AddressForm.AddressDetail3.$error.required && Submitted"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.city_warning_required">\n            <\/p>\n        <\/div>\n        <div class="choose-place">\n            <select data-qe-id="receiverZipcode"\n                    class="option"\n                    ng-model="AddressMYCtrl.SelectedZipcode"\n                    name="AddressDetail4"\n                    ng-options="ZipCode.ZipCode as ZipCode.ZipCode for ZipCode in AddressMYCtrl.SelectedCity.DistrictList"\n                    ng-required="AddressMYCtrl.IsRequired">\n                <option value=""\n                        translate="frontend.typescripts.directives.ns_address.postcode_select">\n                <\/option>\n            <\/select>\n            <p ng-show="AddressForm.AddressDetail4.$error.required && Submitted"\n               class="interror"\n               translate="frontend.typescripts.directives.ns_address.postcode_warning_required">\n            <\/p>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-carousel/carouselDirective.html",'<div class="ns-carousel">\n    <ul class="carousel-ul">\n        <li class="carousel-li">\n            <img class="carousel-img"\n                 data-ng-src="{{::carouselList[carouselList.length - 1].SourceUrl| nsOptimizeImage}}"\n                 data-ns-lazy-image="{{::carouselList[carouselList.length - 1].SourceUrl| nsInitImageSize}}"\n                 alt="{{::carouselList[carouselList.length - 1].Title}}"/>\n        <\/li>\n\n        <li class="carousel-li"\n            data-ng-repeat="item in carouselList track by $index">\n            <span class="number">{{$index+1}}<\/span>\n            <div ng-if="item.MediaType == CarouseMediaTypeEnum.Image">\n                <a data-ng-href="{{::item.Link}}"\n                   data-ng-click="TrackCarouselEvent($index)">\n                    <img class="carousel-img"\n                         data-ng-src="{{::item.SourceUrl| nsOptimizeImage}}"\n                         data-ns-lazy-image="{{::item.SourceUrl| nsInitImageSize}}"\n                         alt="{{::item.Title}}"/>\n                <\/a>\n            <\/div>\n        <\/li>\n        <li class="carousel-li">\n            <img class="carousel-img"\n                 data-ng-src="{{::carouselList[0].SourceUrl| nsOptimizeImage}}"\n                 data-ns-lazy-image="{{::carouselList[0].SourceUrl| nsInitImageSize}}"\n                 alt="{{::carouselList[0].Title}}"/>\n        <\/li>\n    <\/ul>\n    <ol class="dot-nav">\n        <li class="dot-item"\n            data-ng-repeat="control in carouselList track by $index">\n            <a class="jump-button"\n               data-ng-class="{active: currentIndex === $index}"\n               data-ng-click="doJump($index)"><\/a>\n        <\/li>\n    <\/ol>\n    <a class="arrow-button prev" data-ng-click="goPrev()"><i class="fa fa-angle-left"><\/i><\/a>\n    <a class="arrow-button next" data-ng-click="goNext()"><i class="fa fa-angle-right"><\/i><\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Directives/ns-carousel/cycleCarouselDirective.html",'<div class="ns-cycle-carousel" ng-show="IsInitialized">\n    <div class="cycle-carousel-wrapper" ng-transclude><\/div>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-cookie-privacy-tip/cookiePrivacyTipDirective.html",'<div ng-if="isEnablePrivacyTip" ng-style="{ \'bottom\' : bottomOffset +\'px\' }" class="ns-cookie-privacy-wrapper cms-header">\n    <div class="ns-cookie-privacy-content cms-nav">\n        <p class="ns-cookie-privacy-text cms-nav" ng-style="{ \'display\' : isOpenPrivacyBlock ? \'initial\' : \'-webkit-box\' }">\n            <span translate="frontend.typescripts.common.privacy_tip_info_first"><\/span>\n            <a class="ns-cookie-privacy-link cms-nav" href="{{privacyLinkUrl}}">\n                <span translate="frontend.typescripts.common.privacy_tip_info_second"><\/span>\n            <\/a>\n            <span translate="frontend.typescripts.common.privacy_tip_info_third"><\/span>\n        <\/p>\n        <a class="ns-cookie-privacy-see-more-btn cms-nav" ng-hide="isOpenPrivacyBlock" href="#" ng-click="$event.preventDefault();openPrivacyBlock()">\n            <span translate="frontend.typescripts.common.privacy_tip_info_read_more"><\/span>\n        <\/a>\n    <\/div>\n    <a class="ns-cookie-privacy-agree-btn cms-nav" href="#" ng-click="$event.preventDefault();handleAgreeButtonClick()">\n        <span translate="frontend.typescripts.common.privacy_tip_info_check"><\/span>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Directives/ns-date-selector/dateSelector.html",'<div ng-form="DatePickForm" class="ns-date-pick">\n    <div class="choose-birthday split" ng-bind="Title + \'：\'">\n    <\/div>\n    <div class="choose-birthday split">\n        <select class="option"\n                ng-disabled="IsReadonly"\n                ng-model="Year"\n                name="Year"\n                ng-options="(IsGlobalDate? year : ( year - 1911)) for year in [] | nsRange:MinYear:MaxYear | nsReverse"\n                ng-required="IsRequired">\n            <option translate="frontend.typescripts.directives.ns_date_picker.year"\n                    value="">\n            <\/option>\n        <\/select>\n    <\/div>\n    <div class="choose-birthday split">\n        <select class="option"\n                ng-disabled="IsReadonly"\n                ng-model="Month"\n                name="Month"\n                ng-options="month for month in [] | nsRange:1:12"\n                ng-required="IsRequired">\n            <option translate="frontend.typescripts.directives.ns_date_picker.month"\n                    value="">\n            <\/option>\n        <\/select>\n    <\/div>\n    <div class="choose-birthday">\n        <select class="option"\n                ng-disabled="IsReadonly"\n                ng-model="Day"\n                name="Day"\n                ng-options="day for day in [] | nsRange:1:MaxDay"\n                ng-required="IsRequired">\n            <option translate="frontend.typescripts.directives.ns_date_picker.day"\n                    value="">\n            <\/option>\n        <\/select>\n    <\/div>\n    <p ng-show="(DatePickForm.Year.$error.required||DatePickForm.Month.$error.required||DatePickForm.Day.$error.required) && Submitted"\n       class="interror"\n       translate="frontend.typescripts.directives.ns_date_picker.column_required"\n       translate-value-val0="{{Title}}">\n    <\/p>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-datepicker/datepicker.html",'<div class="ns-datepicker" ng-form="datepickerForm">\n    <div class="ns-datepicker__editor">\n        <span class="ns-datepicker__title {{ cssClassTitle }}"\n              translate="frontend.typescripts.directives.ns_date_picker.date">\n        <\/span>\n        <div class="ns-datepicker__inputContainer">\n            <input class="ns-datepicker__input {{ cssClassInput }}"\n                type="text"\n                name="nsSelectedDate"\n                autocomplete="off"\n                ng-model="nsSelectedDate"\n                ng-model-options="{ updateOn: \'blur\' }"\n                ng-required="nsRequired"\n                translate-attr="{ placeholder: nsPlaceholder }" \n                ns-min-date="nsMinDate"\n                ns-max-date="nsMaxDate"\n                ns-disabled-dates="nsDisabledDates"\n                ns-disabled-weekdays="nsDisabledWeekdays"\n                ns-validate-date-format\n                ns-validate-date-selectable\n            />\n            <span class="ns-datepicker__btn {{ cssClassBtn }}"\n                ng-click="nsHandleToggle($event)">\n                <i class="icon-editor icon-editor-lg icon-editor-icon_calendar"><\/i>\n            <\/span>\n        <\/div>\n    <\/div>\n    <div class="ns-datepicker__validation">\n        <p class="{{ cssClassValidation }}"\n           ng-show="datepickerForm.nsSelectedDate.$error.nsValidateDateFormat"\n           translate="frontend.typescripts.directives.ns_date_picker.invalid_date_format">\n        <\/p>\n        <p class="{{ cssClassValidation }}"\n           ng-show="datepickerForm.nsSelectedDate.$error.nsValidateDateSelectable"\n           translate="frontend.typescripts.directives.ns_date_picker.invalid_date">\n        <\/p>\n        <p class="{{ cssClassValidation }}"\n           ng-show="datepickerForm.nsSelectedDate.$error.required && nsSubmitted"\n           translate="frontend.typescripts.directives.ns_date_picker.date_warning_required">\n        <\/p>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-gallery/gallery.html",'<div class="ns-gallery" ng-if="images.length>0">\n    <img id="main-image" ng-src="{{MainImageUrl===undefined?images[initIndex].PicUrl:MainImageUrl}}"/>\n    <ul>\n        <li ng-repeat="image in images">\n            <a href="javascript:void(0)" ng-click="changeImage($index)">\n                <img ng-src="{{ image.PicUrl }}"/>\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-gallery/galleryDirective.html",'<div class="ns-gallery" ng-if="images.length>0">\n    <img id="main-image" ng-src="{{MainImageUrl===undefined?images[initIndex].PicUrl:MainImageUrl}}"/>\n    <ul>\n        <li ng-repeat="image in images">\n            <a href="javascript:void(0)" ng-click="changeImage($index)">\n                <img ng-src="{{ image.PicUrl }}"/>\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-media-carousel/mediaCarouselDirective.html",'<div class="ns-media-carousel">\n    <div ng-transclude><\/div>\n    <div class="media-carousel-counter" ng-if="!IsHideCounter">\n        <span ng-bind="(CurrentIndex+1)">1<\/span>/<span ng-bind="::ItemsCount">1<\/span>\n    <\/div>\n    <ol class="dot-nav" ng-if="IsShowDotNode">\n        <li class="dot-item" data-ng-repeat="control in ::DotNodeList track by $index">\n           <a class="jump-button" data-ng-class="{active: CurrentIndex === $index}"><\/a>\n        <\/li>\n     <\/ol>\n<\/div>\n');n.put("/V2/TypeScripts/Directives/ns-media-gallery/mediaGalleryDirective.html",'<div id="ns-media-gallery" class="ns-media-gallery"\n     ng-if="Items&&Items.length>0" ng-controller="MediaGalleryDirectiveController as MediaGalleryDirectiveCtrl">\n    <!--Main Item-->\n    <figure class="large-image-frame">\n        <a class="gallery-arrow gallery-prev-arrow" href="javascript:void(0)" ng-click="MediaGalleryDirectiveCtrl.GoToPrev()">\n            <i class="icon icon-slim-arrow-left"><\/i>\n        <\/a>\n        <div ng-hide="MediaGalleryDirectiveCtrl.MainItem.MediaType !== MediaGalleryDirectiveCtrl.MediaType.Image">\n            <a ng-href="{{MediaGalleryDirectiveCtrl.MainItem.LinkUrl}}" target="_blank">\n                <img id="ns-media-gallery-main-img" class="large-image" ns-image-zoom-in \n                     ng-src="{{MediaGalleryDirectiveCtrl.MainItemUrl}}" \n                     alt="{{MediaGalleryDirectiveCtrl.MainItem.Desc}}"/>\n            <\/a>\n        <\/div>\n        <div class="main-video" ng-if="::MediaGalleryDirectiveCtrl.VideoItem">\n            <div ns-video class="ns-video" ng-show="MediaGalleryDirectiveCtrl.MainItem.MediaType === MediaGalleryDirectiveCtrl.MediaType.Video" data-auto-play="::MediaGalleryDirectiveCtrl.MainItem.MediaType === MediaGalleryDirectiveCtrl.MediaType.Video"\n                data-pause="MediaGalleryDirectiveCtrl.MainItem.MediaType !== MediaGalleryDirectiveCtrl.MediaType.Video" data-video-url="{{MediaGalleryDirectiveCtrl.VideoItem.OriginUrl}}">\n            <\/div>\n        <\/div>\n        <a class="gallery-arrow gallery-next-arrow" href="javascript:void(0)" ng-click="MediaGalleryDirectiveCtrl.GoToNext()">\n            <i class="icon icon-slim-arrow-right"><\/i>\n        <\/a>\n    <\/figure>\n    <!--Sub Items-->\n    <ul class="small-image-ul">\n        <li class="small-image-li" ng-repeat="item in ::Items track by $index" ng-click="MediaGalleryDirectiveCtrl.ChangeItem($index)"\n            ng-class="{\'actived\':$index === MediaGalleryDirectiveCtrl.CurrentItemIndex}">\n            <figure class="small-image-frame">\n                <img class="small-image" ng-src="{{item.ThumbnailUrl}}" alt="{{item.Desc}}" />\n            <\/figure>\n            <div ng-if="item.MediaType === MediaGalleryDirectiveCtrl.MediaType.Video" class="video-mask">\n                <i class="icon icon-play-circle-o"><\/i>\n            <\/div>\n        <\/li>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-slide-list/slideListDirective.html","<div ng-transclude><\/div>");n.put("/V2/TypeScripts/Directives/ns-slide-show/slideShowDirective.html",'<div class="ns-slideshow">\n    <div ng-transclude><\/div>\n    <ol ng-if="slides.length>1" class="slideshow-control">\n        <li class="slideshow-control-item"\n            data-ng-repeat="slide in slides track by $index">\n            <a class="slideshow-node-btn"\n               data-ng-class="{active: currentSlide === $index}"\n               data-ng-click="changeSlide($index)"><\/a>\n        <\/li>\n    <\/ol>\n<\/div>');n.put("/V2/TypeScripts/Directives/ns-spinner/spinnerDirective.html",'<div ng-show="showSpinner" class="spinner-container">\n\t<?xml version="1.0" encoding="utf-8"?>\n\t<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\n\t<svg class="spinner-svg" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">\n<style type="text/css">\n\t.st0{filter:url(#Adobe_OpacityMaskFilter);}\n\t.st1{fill:#FFFFFF;}\n\t.st2{mask:url(#mask-2);}\n\t.st3{fill:#776E6C;}\n\t.st4{fill:#FF5353;}\n\t.st5{fill:#E94D8A;}\n\t.st6{fill:#FF84A2;}\n\t.st7{fill:#FF9933;}\n\t.st8{fill:#4CAD4C;}\n\t.st9{fill:#5CC7D7;}\n\t.st10{filter:url(#Adobe_OpacityMaskFilter_1_);}\n\t.st11{mask:url(#mask-5);fill:#20AFEA;}\n\t.st12{fill:#7834A1;}\n\t.st13{fill:#666666;}\n\t.st14{fill:#B0AAA8;}\n\t.st15{fill:#4A4E5C;}\n\t.st16{fill:#333333;}\n\t@-webkit-keyframes rotating {\n\t\tfrom{\n\t\t\t-webkit-transform: rotate(0deg);\n\t\t}\n\t\tto{\n\t\t\t-webkit-transform: rotate(360deg);\n\t\t}\n\t}\n\t.spinner-svg {\n\t\t-webkit-animation: rotating 3s linear infinite;\n\t}\n<\/style>\n<g id="Page-1"  transform="translate(119.000000, 11.000000)">\n\t<g id="Group-3"  transform="translate(8.784314, 0.000000)">\n\t\t<g id="Clip-2">\n\t\t<\/g>\n\t\t<defs>\n\t\t\t<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="-119" y="-11" width="2.4" height="4.2">\n\t\t\t\t<feColorMatrix  type="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"/>\n\t\t\t<\/filter>\n\t\t<\/defs>\n\t\t<mask maskUnits="userSpaceOnUse" x="-119" y="-11" width="2.4" height="4.2" id="mask-2">\n\t\t\t<g class="st0">\n\t\t\t\t<polygon id="path-1" class="st1" points="-116.6,-11 -119,-11 -119,-6.8 -116.6,-6.8 \t\t\t\t"/>\n\t\t\t<\/g>\n\t\t<\/mask>\n\t\t<g id="Fill-1"  class="st2">\n\t\t\t<g>\n\t\t\t\t<path id="path-3"  class="st3" d="M-117.8-6.8C-113.7-12.4-121.9-12.4-117.8-6.8"/>\n\t\t\t<\/g>\n\t\t\t<g>\n\t\t\t\t<path id="path-3_1_" class="st4" d="M-117.8-6.8C-113.7-12.4-121.9-12.4-117.8-6.8"/>\n\t\t\t<\/g>\n\t\t<\/g>\n\t<\/g>\n\t<path id="Fill-4" class="st5" d="M-106.1-6C-99.7-8.8-106.9-12.9-106.1-6"/>\n\t<path id="Fill-6" class="st6" d="M-104-3.9C-97.1-3.1-101.2-10.3-104-3.9"/>\n\t<path id="Fill-8" class="st7" d="M-103.2-1C-97.6,3.1-97.6-5.1-103.2-1"/>\n\t<path id="Fill-10" class="st8" d="M-104,1.9C-101.2,8.3-97.1,1.1-104,1.9"/>\n\t<path id="Fill-12" class="st9" d="M-106.1,4C-106.9,10.9-99.7,6.8-106.1,4"/>\n\t<g id="Group-16" transform="translate(8.784314, 15.764706)">\n\t\t<g id="Clip-15">\n\t\t<\/g>\n\t\t<defs>\n\t\t\t<filter id="Adobe_OpacityMaskFilter_1_" filterUnits="userSpaceOnUse" x="-119" y="-11" width="2.4" height="4.2">\n\t\t\t\t<feColorMatrix  type="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 1 0"/>\n\t\t\t<\/filter>\n\t\t<\/defs>\n\t\t<mask maskUnits="userSpaceOnUse" x="-119" y="-11" width="2.4" height="4.2" id="mask-5">\n\t\t\t<g class="st10">\n\t\t\t\t<polygon id="path-4" class="st1" points="-119,-6.8 -116.6,-6.8 -116.6,-11 -119,-11 \t\t\t\t"/>\n\t\t\t<\/g>\n\t\t<\/mask>\n\t\t<path id="Fill-14" class="st11" d="M-117.8-11C-121.9-5.3-113.7-5.4-117.8-11"/>\n\t<\/g>\n\t<path id="Fill-17" class="st12" d="M-111.9,4C-118.3,6.8-111.1,10.9-111.9,4"/>\n\t<path id="Fill-19" class="st13" d="M-114,1.9C-120.9,1.1-116.8,8.3-114,1.9"/>\n\t<g id="Group-23" transform="translate(0.000000, 8.784314)">\n\t\t<path id="Fill-21" class="st14" d="M-114.8-9.8C-120.4-13.9-120.4-5.7-114.8-9.8"/>\n\t<\/g>\n\t<path id="Fill-24" class="st15" d="M-114-3.9C-116.8-10.3-120.9-3.1-114-3.9"/>\n\t<path id="Fill-26" class="st16" d="M-111.9-6C-111.1-12.9-118.3-8.8-111.9-6"/>\n<\/g>\n<\/svg>\n<\/div>');n.put("/V2/TypeScripts/Modules/ChangeGoodsRequest/changeInfoAddressGlobal.template.html",'<ul class="insert-form fixAddressForm">\n    <li>\n        <div class="title" translate="frontend.typescripts.change_goods_request.list.contact_name"><\/div>\n        <div class="desc">\n            <input type="text" ng-model="ChangeGoodsCtrl.FullName" name="FullName"\n                   translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.enter_name_placeholder\'}" required/>\n            <p class="text warning"\n               ng-show="insertForm.$submitted && insertForm.FullName.$invalid"\n               translate="frontend.typescripts.change_goods_request.list.required_field_full_name_error_message"><\/p>\n        <\/div>\n    <\/li>\n    <li>\n        <div class="title" translate="frontend.typescripts.change_goods_request.list.mobile_number"><\/div>\n        <div class="desc">\n            <input type="tel" ng-model="ChangeGoodsCtrl.CellPhone"\n                   name="CellPhone"\n                   ng-pattern="ChangeGoodsCtrl.cellPhoneRegex"\n                   required\n                   translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.replacement_information_cellphone_placeholder\'}" />\n            <p class="text warning"\n               ng-show="insertForm.$submitted && insertForm.CellPhone.$error.required"\n               translate="frontend.typescripts.change_goods_request.list.correct_mobile_number_required_column"><\/p>\n            <p ng-show="insertForm.CellPhone.$error.pattern && insertForm.$submitted"\n               class="text warning"\n               translate="{{ChangeGoodsCtrl.cellPhoneInvalidMsg}}"><\/p>\n        <\/div>\n    <\/li>\n<\/ul>\n<div class="address-block">\n    <div class="item-row">\n        <input type="text" class="address-text" translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.please_enter_address\'}"\n               ng-model="ChangeGoodsCtrl.AddressInfo.TradesOrderReceiverAddress"\n               name="AddressDetail"\n               required\n               ns-remove-whitespace\n               minlength="5">\n        <p ng-show="insertForm.AddressDetail.$error.required && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.address_is_required"><\/p>\n        <p ng-show="insertForm.AddressDetail.$error.minlength && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.address_more_chinese_letters_number"><\/p>\n    <\/div>\n    <div class="item-row round-bottom">\n        <div class="choose-place split">\n            <select class="option"\n                    ng-model="ChangeGoodsCtrl.CityData"\n                    name="City"\n                    ng-options="City.City for City in ChangeGoodsCtrl.CityList"\n                    ng-change="ChangeGoodsCtrl.SetSelectedDistrictNull()"\n                    required>\n                <option value="" translate="frontend.typescripts.change_goods_request.list.area"><\/option>\n            <\/select>\n        <\/div>\n        <div class="choose-place">\n            <select class="option"\n                    ng-model="ChangeGoodsCtrl.DistrictData"\n                    name="District"\n                    ng-options="District.District for District in ChangeGoodsCtrl.CityData.DistrictList"\n                    required>\n                <option value="" translate="frontend.typescripts.change_goods_request.list.district"><\/option>\n            <\/select>\n        <\/div>\n        <p ng-show="insertForm.District.$error.required && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.area_is_required"><\/p>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ChangeGoodsRequest/changeInfoAddressTW.template.html",'<ul class="insert-form fixAddressForm">\n    <li>\n        <div class="title" translate="frontend.typescripts.change_goods_request.list.contact_name"><\/div>\n        <div class="desc">\n            <input type="text" ng-model="ChangeGoodsCtrl.FullName" name="FullName"\n            translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.replacement_information_full_name_placeholder\'}" required/>\n            <p class="text warning"\n               ng-show="insertForm.$submitted && insertForm.FullName.$invalid"\n               translate="frontend.typescripts.change_goods_request.list.required_field_full_name_error_message"><\/p>\n        <\/div>\n    <\/li>\n    <li>\n        <div class="title" translate="frontend.typescripts.change_goods_request.list.mobile_number"><\/div>\n        <div class="desc">\n            <input type="tel" ng-model="ChangeGoodsCtrl.CellPhone"\n                   name="CellPhone" translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.replacement_information_cellphone_placeholder\'}" required maxlength="10"\n                   ns-only-cellphone/>\n            <p class="text warning"\n               ng-show="insertForm.$submitted && insertForm.CellPhone.$invalid"\n               translate="frontend.typescripts.change_goods_request.list.correct_mobile_number_required_column"><\/p>\n        <\/div>\n    <\/li>\n<\/ul>\n<div class="address-block">\n    <div class="item-row">\n        <div class="choose-place split">\n            <select class="option"\n                    ng-model="ChangeGoodsCtrl.CityData"\n                    name="City"\n                    ng-options="City.City for City in ChangeGoodsCtrl.CityList"\n                    ng-change="ChangeGoodsCtrl.SetSelectedDistrictNull()"\n                    required>\n                <option value="" translate="frontend.typescripts.change_goods_request.list.please_choose_city"><\/option>\n            <\/select>\n        <\/div>\n        <div class="choose-place">\n            <select class="option"\n                    ng-model="ChangeGoodsCtrl.DistrictData"\n                    name="District"\n                    ng-options="District as (District.District + \' \' + District.ZipCode) for District in ChangeGoodsCtrl.CityData.DistrictList"\n                    required>\n                <option value="" translate="frontend.typescripts.change_goods_request.list.please_choose_area"><\/option>\n            <\/select>\n        <\/div>\n        <p ng-show="insertForm.District.$error.required && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.area_is_required"><\/p>\n    <\/div>\n    <div class="item-row round-bottom">\n        <input type="text" class="address-text" translate-attr="{\'placeholder\':\'frontend.typescripts.change_goods_request.list.replacement_information_address_placeholder\'}"\n               ng-model="ChangeGoodsCtrl.AddressInfo.TradesOrderReceiverAddress"\n               name="AddressDetail"\n               required\n               ns-remove-whitespace\n               ng-pattern="/^((?!郵政信箱)[一-龥＀-￿0-9a-zA-Z-ㄧ()]){5,}$/"/>\n        <p ng-show="insertForm.AddressDetail.$error.required && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.address_is_required"><\/p>\n        <p ng-show="insertForm.AddressDetail.$error.pattern && insertForm.$submitted"\n           class="interror"\n           translate="frontend.typescripts.change_goods_request.list.address_more_chinese_letters_number"><\/p>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ECoupon/auditTemplate.html",'<div class="modal-body">\n    <img class="audit-dialog-image" src="/V2/Content/Images/ECoupon/audit_dialog.svg"/>\n    <div class="text grapefruit font-18" translate="frontend.typescripts.ecoupon.audit.audit_dialog_warning_message"><\/div>\n    <div ng-if="Model.IsExchangeLocationAndSelcetOffline"\n         class="location-block">\n        <div ng-bind="Model.ExchangeLocationName"><\/div>\n        <div>\n            <!-- 門市店號 -->\n            <span translate="frontend.typescripts.ecoupon.detail.store_outer_code"><\/span>\n            <span ng-bind="Model.OuterLocationCode"><\/span>\n        <\/div>\n    <\/div>\n    <p translate="frontend.typescripts.ecoupon.audit.audit_dialog_message_v1"><\/p>\n    <div class="function">\n        <button class="button" ng-click="DialogCustomizeCtrl.Ok()" translate="frontend.typescripts.ecoupon.audit.audit_dialog_ok"><\/button>\n        <button class="button-right cms-primaryBtnBgColor cms-primaryBtnTextColor" ng-click="DialogCustomizeCtrl.Cancel()" translate="frontend.typescripts.ecoupon.audit.audit_dialog_cancel"><\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ECoupon/categoryMenuTemplate.html",'<div ns-push-half-page\n     ns-is-open="ECouponDetailCtrl.openCategoryMenu"\n     ns-show-close="true"\n     ns-open-direction="\'left\'"\n     ns-page-caption="\'frontend.typescripts.ecoupon.common.activity.category_bar_category\'"\n     class="category-menu">\n    <ul class="menu-ul">\n\n        <li class="menu-li" data-ng-repeat="level1 in ECouponDetailCtrl.categoryChildList track by level1.CategoryId">\n            <a class="menu-link"\n               data-ng-init="level1.selected = false"\n               data-ng-click="level1.selected =!level1.selected;ECouponDetailCtrl.ClickParentCategory(level1)"\n               data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0,\n               \'link-active\':level1.CategoryId === ECouponDetailCtrl.selectedCategory.CategoryId}">\n                <h4 class="menu-item-name" data-ng-bind="level1.Title"><\/h4>\n                (<span data-ng-bind="level1.SalePageCount"><\/span>)\n            <\/a>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0}">\n                <li class="child-menu-li" data-ng-repeat="level2 in level1.ChildList">\n                    <a class="child-menu-link" data-ng-click="ECouponDetailCtrl.ClickParentCategory(level2)"\n                    data-ng-class="{\'link-active\':level2.CategoryId === ECouponDetailCtrl.selectedCategory.CategoryId}">\n                        <h4 class="menu-item-name" data-ng-bind="level2.Title"><\/h4>\n                        (<span data-ng-bind="level2.SalePageCount"><\/span>)\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ECoupon/displayCodeTemplate.html",'<div class="audit-page modal-body">\n    <section class="section-display title-section-bottom" ng-if="Model.IsVerifyEcoupon">\n        <div class="title-container">\n            <span class="text black-three" translate="frontend.typescripts.ecoupon.audit.audit_message"><\/span>\n        <\/div>\n        <div>\n            <img src="/V2/Content/Images/ECoupon/connect-white.gif">\n        <\/div>\n    <\/section>\n    \n    <section class="section-display audit-location-detail" ng-if="Model.IsExchangeLocationAndSelcetOffline">\n        <div ng-bind="Model.ExchangeLocationName"><\/div>\n        <div>\n            <!-- 門市店號 -->\n            <span translate="frontend.typescripts.ecoupon.detail.store_outer_code"><\/span>\n            <span ng-bind="Model.OuterLocationCode"><\/span>\n        <\/div>\n    <\/section>\n\n    <section class="section-display title-section-bottom" ng-if="Model.IsEcouponHistory">\n        <div class="title-container">\n            <span class="text black-three">\n                <span ng-if="Model.UsingStore" translate="frontend.typescripts.ecoupon.audit.used_store" translate-value-val0="{{Model.UsingStore}}"><\/span>\n                <span translate="frontend.typescripts.ecoupon.audit.used_info" translate-value-val0="{{Model.UsingDateTime}}"><\/span>\n            <\/span>\n        <\/div>\n    <\/section>\n\n    <section class="section-display member-code-section-bottom" data-ng-if="Model.VipMemberBarCodeUrl">\n        <div class="barcode-container">\n            <div class="text warm-grey min audit-title" translate="frontend.typescripts.ecoupon.audit.member_barcode"><\/div>\n            <img data-ng-src="{{Model.VipMemberBarCodeUrl}}">                \n        <\/div>\n    <\/section>\n\n    <section class="section-display" data-ng-if="Model.MultipleVerificationCodes">\n        <div class="barcode-container">\n            <div class="text warm-grey min audit-title" translate="frontend.typescripts.ecoupon.audit.verify_barcode"><\/div>\n            <img class="barcode-bottom"\n                 ng-class="{\'barcode-image\': Model.BarCodeTypeDef !== \'QR_CODE\'}"\n                 data-ng-repeat="code in Model.MultipleVerificationCodes"\n                 data-ng-src="{{code}}">\n        <\/div>\n    <\/section>\n\n    <section class="section-display" data-ng-if="Model.SingleECouponCodeUrl">\n        <div class="barcode-container">\n            <div class="text warm-grey min audit-title" translate="frontend.typescripts.ecoupon.audit.verify_barcode"><\/div>\n            <img class="barcode-bottom" \n                 ng-class="{\'barcode-image\': Model.BarCodeTypeDef !== \'QR_CODE\'}" \n                 data-ng-src="{{Model.SingleECouponCodeUrl}}">\n        <\/div>\n    <\/section>\n    <button class="btn complete-btn" data-ng-click="DialogCustomizeCtrl.Ok()" translate="frontend.typescripts.ecoupon.audit.closed"><\/button>\n<\/div>');n.put("/V2/TypeScripts/Modules/ECoupon/ecouponInformationTemplate.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            data-ng-click="ECouponDialogCtrl.Cancel()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n    <!-- 折價券說明 -->\n    <div class="modal__main-title text font-15 black-three weight-500"\n         translate="frontend.typescripts.ecoupon.common.activity.info_main_title"><\/div>\n\n    <!-- 分享連結 -->\n    <div class="modal__main-title" \n         data-ng-show="ECouponDetailCtrl.IsShareable()"\n         data-ng-controller="ECouponDetailController as ECouponDetailCtrl">\n        <div class="modal__share-block">\n            <!-- Line 分享 -->\n            <div class="modal__single-icon" data-ng-click="ECouponDetailCtrl.ShareOnLine()">\n                <img class="modal__share-img" src="/V2/Content/Images/ECoupon/line.svg">\n            <\/div>\n\n            <!-- facebook 分享 -->\n            <a href="javascript:void(0)"\n               class="core-link modal__share-item" \n               data-ng-click="ECouponDetailCtrl.ShareOnFacebook()"\n               data-ns-ga-event-track\n               data-track-category="折價券"\n               data-track-action="Facebook分享"\n               data-track-label="Facebook分享"\n               data-ns-adobe-analytics-event-track\n               data-product-id="{{Model.Data.Id}}"\n               data-product-name="{{Model.Data.Name}}">\n                    <i class="fa fa-facebook"><\/i><span translate="frontend.typescripts.ecoupon.common.activity.info_share"><\/span>\n            <\/a>\n\n            <!-- Email 分享 -->\n            <div class="modal__single-icon" data-ng-click="ECouponDetailCtrl.ShareOnEmail()">\n                <img class="modal__share-img" src="/V2/Content/Images/ECoupon/mail.svg">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 領取期間 or 兌換期間 -->\n    <div class="modal__info-container">\n          <div class="modal__sub-title text font-12 warm-grey"\n               ng-show="Model.Data.TypeDef === Model.EcouponTypeDefEnum.PointExchange" \n               translate="frontend.typescripts.ecoupon.common.activity.info_point_exchange_period"><\/div>\n          <div class="modal__sub-title text font-12 warm-grey"\n               ng-hide="Model.Data.TypeDef === Model.EcouponTypeDefEnum.PointExchange" \n               translate="frontend.typescripts.ecoupon.common.activity.info_take_date"><\/div>\n          <div class="modal__info-content text font-13 black-three">{{ Model.Data.StartDateTime | date: \'medium\' }} - {{ Model.Data.EndDateTime | date: \'medium\' }}<\/div>\n    <\/div>\n\n    <!-- 使用期間 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_use_date"><\/div>\n        <div class="modal__info-content text font-13 black-three"\n             data-ng-show="Model.Data.UseDurationType === Model.UseDurationTypeEnum.Absolute ||\n                          (Model.Data.UseDurationType === Model.UseDurationTypeEnum.Relative && Model.HasECoupon)">\n            {{ Model.Data.UsingStartDateTime | date: \'medium\' }} - {{ Model.Data.UsingEndDateTime | date: \'medium\' }}\n        <\/div>\n\n        <div class="modal__info-content text font-13 black-three"\n             data-ng-show="Model.Data.UseDurationType === Model.UseDurationTypeEnum.Relative && !Model.HasECoupon">\n          <!-- 領取即可使用 -->\n          <div data-ng-show="Model.Data.UseAfterDay === Model.UseAfterDayEnum.Now">\n               <!-- • 領取即可使用。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_now_can_use"><\/div>\n\n               <!-- • {{ Model.Data.UseDurationDay }}天內有效（含開始使用當日）。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_active_day"\n                    translate-value-val0="{{ Model.Data.UseDurationDay }}"><\/div>\n\n               <!-- 領取後，使用期間將顯示確切的時間區間，並以此時間區間為最終解釋。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_remark"><\/div>\n          <\/div>\n\n          <!-- 以領取當天為領取第1天計算，領取第{{ Model.Data.UseAfterDay + 1 }}天的00:00可開始使用 -->\n          <div data-ng-show="Model.Data.UseAfterDay > Model.UseAfterDayEnum.Now">\n               <!-- • 以領取當天為領取第1天計算，領取第{{ Model.Data.UseAfterDay + 1 }}天的00:00可開始使用。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_after_thrid_day_can_use"\n                    translate-value-val0="{{ Model.Data.UseAfterDay + 1 }}"><\/div>\n\n               <!-- • {{ Model.Data.UseDurationDay }}天內有效（含開始使用當日）。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_active_day"\n                    translate-value-val0="{{ Model.Data.UseDurationDay }}"><\/div>\n\n               <!-- 領取後，使用期間將顯示確切的時間區間，並以此時間區間為最終解釋。 -->\n               <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_remark"><\/div>\n          <\/div>\n        <\/div>\n    <\/div>\n    <div class="modal__info-container">\n        <!-- 使用門檻 -->\n        <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_use_threshold"><\/div>\n\n        <!-- 單筆消費滿 {{ Model.Data.ECouponUsingMinPrice | preferredCurrency }}，方可折抵。 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.HasECouponUsingMinPrice"\n             translate="frontend.typescripts.ecoupon.common.activity.info_check_qualify"\n             translate-value-val0="{{ Model.Data.ECouponUsingMinPrice | preferredCurrency }}"><\/div>\n\n        <!-- 消費即可使用 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="!Model.Data.HasECouponUsingMinPrice"\n             translate="frontend.typescripts.ecoupon.common.activity.info_purchase"><\/div>\n\n        <!-- 最高可抵購買總金額的 {{ Model.ReturnMaxDiscountLimit }} -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.ECouponMaxDiscountLimit"\n             translate="frontend.typescripts.ecoupon.common.activity.info_max_discount_limt"\n             translate-value-val0="{{ Model.ReturnMaxDiscountLimit }}"><\/div>\n\n        <!-- 不可使用此折價券的商品，則不列入門檻金額計算，也不可折抵金額。 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.ECouponMaxDiscountLimit"\n             translate="frontend.typescripts.ecoupon.common.activity.info_max_discount_limit_desc"><\/div>\n    <\/div>\n\n    <!-- 可使用通路 -->\n    <div class="modal__info-container">    \n        <div class="modal__sub-title text font-12 warm-grey" \n             translate="frontend.typescripts.ecoupon.common.activity.info_applicable_way"><\/div>\n        <div class="modal__info-content text font-13 black-three">\n          {{ Model.ReturnUsingString }}\n        <\/div>\n     <\/div>\n\n    <!-- 可使用範圍 -->\n    <div class="modal__info-container">    \n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range"><\/div>\n        <div class="modal__info-content text font-13 black-three">\n             <!-- 請參考折價券活動的商品清單。 -->\n            <div translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range_dec"><\/div>\n            <!-- 若商品不可使用此折價券，在結帳時會標註「不適用目前選擇的折價券」。 -->\n            <div translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range_dec2"><\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 活動名稱 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_activity_name"><\/div>\n        <div class="modal__info-content text font-13 black-three">{{ Model.Data.Name }}<\/div>\n    <\/div>\n\n    <!-- 活動說明 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_activity_info"><\/div>\n        <div class="modal__info-content text font-13 black-three">{{ Model.Data.Description }}<\/div>\n    <\/div>\n\n    <!-- 注意事項 -->\n    <div class="modal__info-container" data-ng-if="!Model.HasECoupon">\n        <!-- 注意事項 -->\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_note"><\/div>\n\n        <!-- 領取資格：於活動期間內，首次下載App並完成領取。 -->\n        <div class="modal__info-content text font-13 black-three" \n             data-ng-show="Model.Data.TypeDef === \'FirstDownload\'"\n             translate="frontend.typescripts.ecoupon.common.activity.info_take_qualifications"><\/div>\n\n        <!-- 一個會員帳號只能領取一次。 -->\n        <div class="modal__info-content text font-13 black-three" \n             data-ng-show="Model.Data.TypeDef === \'FirstDownload\'"\n             translate="frontend.typescripts.ecoupon.common.activity.info_take_qualifications_dec"><\/div>\n\n        <!-- 每檔折價券活動的數量均為限時限量，領完為止。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_take_qualifications_dec2"><\/div>\n    <\/div>\n\n    <!-- 使用規則 -->\n    <div class="modal__info-container">\n        <!-- 使用規則 -->\n        <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_rule"><\/div>\n        \n        <!-- 1. 每次線上結帳，只能使用一張折價券，門市及櫃點使用則以另行公告為主。 -->\n        <div class="modal__info-content text font-13 black-three" \n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec1"><\/div>\n        \n        <!-- 2. 使用折價券折抵後，每項商品金額不可為零。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_fix_dec2"><\/div>\n\n        <!-- 3. 若結帳商品標註為「不適用折價券」，則該商品不能使用折價券進行折抵。 -->\n        <div class="modal__info-content text font-13 black-three" \n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec3"><\/div>\n\n        <!-- 4. 折價券僅能使用一次且不找零，一經使用無法恢復。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec4"><\/div>\n\n        <!-- 5. 使用折價券的訂單如取消或退貨，折價券將自動失效不會歸還。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec5"><\/div>\n\n        <!-- 6. 折價券有使用效期，逾期後則無法使用，且無法恢復。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec6"><\/div>\n\n        <!-- 7. 折價券不可折抵運費。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec7"><\/div>    \n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ECoupon/qrcodeTemplate.html",'<div class="modal-header">\n    <h4 class="modal-title">{{Title}}<\/h4>\n<\/div>\n<div class="modal-body">\n    <img class="qr-code-image" ng-src="{{Model.QRCodeImageUrl}}">\n    <div class="function">\n        <button class="button full cms-primaryBtnTextColor cms-primaryBtnBgColor" ng-click="DialogCustomizeCtrl.Ok()" translate="frontend.typescripts.ecoupon.detail.confirm"><\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LineAuth/register.html",'<form class="login-form-container" name="registerForm" novalidate>\n    <div class="login-form" data-ng-class="{\'small-form\': RegisterCtrl.CurrentViewIsSmallSize}">\n        <div class="signup-left" data-ng-class="{\'grey-bg\':RegisterCtrl.CurrentStep === 4}">\n\n            <div ui-view="leftHeader"><\/div>\n\n            <!-- progressbar -->\n            <!-- 如果有增加註冊步驟，則隱藏步驟圖示 -->\n            <ul id="progressbar" data-ng-class="{\'hide-item\': (RegisterCtrl.CurrentStep === 0 || RegisterCtrl.CurrentStep === 4) || RegisterCtrl.IsHideStepProgressbar}">\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 1}"><\/li>\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 2}"><\/li>\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 3}"><\/li>\n            <\/ul>\n\n            <div ui-view="leftFooter"><\/div>\n\n            <div ui-view="rightContent"><\/div>\n        <\/div>\n\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/LocationPickup/detail.html",'<div class="location-pickup-block" ng-controller="LocationPickupDetailController as LocationPickupDetailCtrl">\n\n    <div class="inline-row">\n        <!--商店名稱-->\n        <div class="store-block leftBlock">\n            <div class="shop-info">\n                <a ng-click="LocationPickupDetailCtrl.OpenVerifyConfirmDialog()">\n                    <img class="left" src="/V2/Content/Images/LocationPickup/icon_pickup.png" alt="icon">\n                <\/a>\n                <div class="left shopname">\n                    {{::LocationPickupDetailCtrl.PickupDetail.ShopName}}\n                    <br/>\n                    <strong> 門市取貨單<\/strong>\n                <\/div>\n                <p class="clear message icon-asterisk">\n                    提醒您，取貨時須出示\n                    <span ng-repeat="Item in LocationPickupDetailCtrl.PickupDetail.VerifyInfoList">\n                       {{Item.VerifyTypeDefDesc}}{{!$last?\'、\':\'\'}}\n                   <\/span>以供門市人員確認\n                <\/p>\n            <\/div>\n        <\/div>\n        <!--取貨狀態-->\n        <div class="status-block rightBlock"\n             ng-class="{\'pickup\':LocationPickupDetailCtrl.PickupDetail.Status === LocationPickupDetailCtrl.LocationPickupShippingOrderStatusEnum.Finish}">\n            <span ng-if="LocationPickupDetailCtrl.PickupDetail.Status === LocationPickupDetailCtrl.LocationPickupShippingOrderStatusEnum.Finish && LocationPickupDetailCtrl.Market !== \'PX\'">\n                <i class="fa fa-check-circle"><\/i>\n                取貨完成\n            <\/span>\n            <!-- 全聯特殊狀態 -->\n            <span ng-if="LocationPickupDetailCtrl.PickupDetail.Status === LocationPickupDetailCtrl.LocationPickupShippingOrderStatusEnum.Finish && LocationPickupDetailCtrl.Market === \'PX\'">\n                <i class="fa fa-check-circle"><\/i>\n                訂購完成\n            <\/span>\n            <span ng-if="LocationPickupDetailCtrl.PickupDetail.Status !== LocationPickupDetailCtrl.LocationPickupShippingOrderStatusEnum.Finish">\n                <span class="fa-stack fa-lg">\n                    <i class="fa fa-circle fa-stack-2x"><\/i>\n                    <i class="fa fa-times fa-stack-1x fa-inverse"><\/i>\n                <\/span>\n                未取貨\n            <\/span>\n        <\/div>\n    <\/div>\n    <div class="inline-row">\n        <!--取貨單資訊-->\n        <div class="pickup-detail-block leftBlock">\n            <div class="desc-block">\n                <div class="head">取貨編號<\/div>\n                <div class="desc"> {{::LocationPickupDetailCtrl.PickupDetail.PickupCode}}<\/div>\n            <\/div>\n            <div class="desc-block">\n                <div class="head">取貨門市<\/div>\n                <div class="desc">商店名稱 {{::LocationPickupDetailCtrl.PickupDetail.LocationName}}<\/div>\n            <\/div>\n            <div class="desc-block">\n                <div class="head">門市地址<\/div>\n                <div class="desc">{{::LocationPickupDetailCtrl.PickupDetail.LocationAddress}}<\/div>\n            <\/div>\n            <div class="desc-block">\n                <div class="head">取貨期限<\/div>\n                <div class="desc">\n                    {{::LocationPickupDetailCtrl.PickupDetail.PickupEndDateTime|nsDotNetDateParser|date:\'yyyy/MM/dd\'}}\n                <\/div>\n            <\/div>\n        <\/div>\n        <!--條碼-->\n        <!-- 全聯不顯示條碼 -->\n        <div class="barcode-block rightBlock"\n             ng-if="LocationPickupDetailCtrl.Market !== \'PX\'">\n            <div class="clock">\n                <i class="icon icon-time"><\/i>\n                {{LocationPickupDetailCtrl.CurrentTime|date:\'HH:mm:ss\'}}\n            <\/div>\n            <img class="barcodeImg"\n                 ng-if="LocationPickupDetailCtrl.PickupDetail.BarcodeFormat"\n                 ng-src="{{\'/webapi/BarCode/305/65/\'+LocationPickupDetailCtrl.PickupDetail.BarcodeFormat+\'/\'+LocationPickupDetailCtrl.PickupDetail.PickupCode+\'/\'+ (LocationPickupDetailCtrl.PickupDetail.PickupEndDateTime|nsDotNetDateParser|date:\'sss\')}}"\n                 alt="條碼">\n        <\/div>\n    <\/div>\n    <!--訂單資訊-->\n    <div class="order-detail-block clear">\n        <strong class="head clear">訂單資訊<\/strong>\n        <div class="desc-block horizontal">\n            <div class="head">商品件數<\/div>\n            <div class="desc">總計{{::LocationPickupDetailCtrl.PickupDetail.Qty}}件商品<\/div>\n        <\/div>\n        <div class="desc-block horizontal">\n            <div class="head">總金額<\/div>\n            <div class="desc">{{::LocationPickupDetailCtrl.PickupDetail.TotalPayment|currency}}<\/div>\n        <\/div>\n\n        <div class="desc-block clear">\n            <div class="head">詳細說明<\/div>\n            <div class="desc">{{::LocationPickupDetailCtrl.PickupDetail.PickupDescription}}<\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LocationPickup/locationDetail.html",'<!--門市地圖-->\n<div class="scroll-location"\n     ng-include="\'/V2/TypeScripts/Modules/LocationPickup/locationMap.html\'">\n<\/div>\n\n<!--按鈕區塊-->\n<div class="button-area">\n    <a href="javascript:void(0)" class="map-btn btn-red btn-medium"\n       ng-click="SelectLocationCtrl.ChangeTab(0)"\n       translate="frontend.typescripts.location_pickup.reselect_favorite">\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/LocationPickup/locationMap.html",'<!-- 門市推薦人列表 -->\n<div class="order-referrer" \n     ng-if="SelectLocationCtrl.IsReferee" \n     ng-repeat="LocationEmployee in SelectLocationCtrl.LocationEmployeeList track by $index" \n     data-ng-click="SelectLocationCtrl.SelectLocationEmployee(LocationEmployee)">\n    <h3 class="order-referrer__title">\n        <i class="icon" \n           ng-class="{\'icon-radio-selected\': LocationEmployee.Id === SelectLocationCtrl.SelectedLocationEmployee.Id, \'icon-circle\': LocationEmployee.Id !== SelectLocationCtrl.SelectedLocationEmployee.Id}"><\/i>\n        {{LocationEmployee.FullName}}\n    <\/h3>\n<\/div>\n<!--門市資訊-->\n<div class="store-detail-layout">\n    <h3 class="store-title" data-ng-bind="SelectLocationCtrl.SelectStore.Name"><\/h3>\n    <div class="store-detail" data-ng-bind="SelectLocationCtrl.SelectStore.Address"><\/div>\n    <span class="store-detail" ng-bind-html="\'frontend.typescripts.location_pickup.open_time_line\' | translate: {val0: SelectLocationCtrl.SelectStore.NormalTime, val1: SelectLocationCtrl.SelectStore.WeekendTime}">\n    <\/span>\n    <span class="store-detail"\n          data-ng-if="SelectLocationCtrl.SelectStore.TelPrepend && SelectLocationCtrl.SelectStore.TelPrepend!==\'\'">\n        (<span data-ng-bind="SelectLocationCtrl.SelectStore.TelPrepend"><\/span>)\n         <span data-ng-bind="SelectLocationCtrl.SelectStore.Tel"><\/span>\n    <\/span>\n<\/div>\n<!--地圖區塊-->\n<div class="map-area" data-ng-if="SelectLocationCtrl.MapUrl">\n    <iframe width="100%"\n            height="100%"\n            frameborder="0" style="border:0"\n            ng-src="{{SelectLocationCtrl.MapUrl}}"\n            allowfullscreen>\n    <\/iframe>\n<\/div>\n<!--按鈕區塊-->\n<div class="button-area" ng-show="SelectLocationCtrl.IsShowTab">\n    <a href="javascript:void(0)" class="map-btn btn-red-o btn-medium cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n       ng-click="SelectLocationCtrl.Reset()"\n       translate="frontend.typescripts.location_pickup.reselect"><\/a>\n    <a href="javascript:void(0)" class="map-btn btn-red btn-medium cms-primaryBtnTextColor cms-primaryBtnBgColor"\n       ng-click="SelectLocationCtrl.Confirm()"\n       ng-if="!SelectLocationCtrl.IsReferee || (SelectLocationCtrl.IsReferee && !SelectLocationCtrl.IsEmployeeColumnVisible)" translate="frontend.typescripts.location_pickup.confirm_shop"><\/a>\n    <button class="map-btn btn-red btn-medium"\n            ng-class="{\'btn-grey\': !SelectLocationCtrl.SelectedLocationEmployee.Id}"\n            ng-click="SelectLocationCtrl.UpdateOrderReferee()"\n            ng-if="SelectLocationCtrl.IsReferee && SelectLocationCtrl.IsEmployeeColumnVisible"\n            ng-disabled="!SelectLocationCtrl.SelectedLocationEmployee.Id">確定店員<\/button>\n<\/div>');n.put("/V2/TypeScripts/Modules/LocationPickup/searchAll.html",'<div data-ng-if="!SelectLocationCtrl.ShowMap"\n     data-ns-end-less-list\n     data-scroll-element-id="SelectLocationCtrl.ScrollElementId"\n     data-end-less-model="SelectLocationCtrl.LocationList"\n     data-start-index="SelectLocationCtrl.startIndex"\n     data-is-lock="SelectLocationCtrl.IsLock"\n     data-get-model-method="SelectLocationCtrl.GetLocationListForPickup()"\n     data-scroll-listener="SelectLocationCtrl.endlessScrollListener">\n    <div class="search-store">\n        <form class="ns-search-area" action="/">\n            <input class="ns-search-input" type="search" data-ng-model="SelectLocationCtrl.searchKey"\n                   data-ng-keydown="SelectLocationCtrl.EnterSearch($event)"\n                   translate-attr="{ placeholder: \'frontend.typescripts.location_pickup.search_shop\' }"\n                   name="q"\n                   autocomplete="on">\n            <a class="searchkeyword ns-search-btn" href="javascript:void(0)"\n               data-ng-click="SelectLocationCtrl.SearchStore()">\n                <i class="fa fa-search"><\/i>\n            <\/a>\n        <\/form>\n    <\/div>\n    <div class="text-area" data-ng-if="SelectLocationCtrl.LocationList.length > 0">\n        <span class="text" ng-bind-html="SelectLocationCtrl.LocationListInfo"><\/span>\n    <\/div>\n    <ul class="store-ul">\n        <li class="store-li" data-ng-repeat="storeDetail in SelectLocationCtrl.LocationList track by $index">\n            <a class="store-link" href="javascript:void(0)"\n               data-ng-click="SelectLocationCtrl.ChooseStore(storeDetail)"\n               data-ns-scroll-to-top>\n                <h4 class="store-title">\n                    <span data-ng-bind="storeDetail.CityName"><\/span>/\n                    <span data-ng-bind="storeDetail.Name"><\/span>\n                <\/h4>\n                <span class="store-detail" data-ng-bind="storeDetail.Address"><\/span>\n                <i class="fa fa-angle-right fa-lg"><\/i>\n            <\/a>\n        <\/li>\n    <\/ul>\n    <div class="search-no-result"\n         data-ng-if="SelectLocationCtrl.LocationList.length === 0 && SelectLocationCtrl.searchKey">\n        <h2 class="no-result-title"\n            translate="frontend.typescripts.location_pickup.search_shop"><\/h2>\n    <\/div>\n<\/div>\n\n<!--門市地圖-->\n<div data-ng-if="SelectLocationCtrl.ShowMap" class="scroll-location"\n     ng-include="\'/V2/TypeScripts/Modules/LocationPickup/locationMap.html\'">\n<\/div>\n');n.put("/V2/TypeScripts/Modules/LocationPickup/searchByCity.html",'<div data-ng-if="!SelectLocationCtrl.ShowMap">\n    <div class="location-breadcrumb">\n        <ul class="breadcrumb-ul">\n            <li class="breadcrumb-li"\n                data-ng-repeat="item in SelectLocationCtrl.BreadCrumbList">\n                <i class="fa fa-angle-right" data-ng-class="{\'hide\':$first}"><\/i>\n                <a class="breadcrumb-link" data-ng-bind="item.Desc"\n                   data-ng-click="SelectLocationCtrl.ChangeStep(item.Step)"\n                   data-ng-class="{\'active\':$last}"><\/a>\n            <\/li>\n        <\/ul>\n        <span class="text" data-ng-if="SelectLocationCtrl.CurrentStep === 0">{{SelectLocationCtrl.CityListInfo}}<\/span>\n    <\/div>\n    <div data-ng-switch="SelectLocationCtrl.CurrentStep">\n        <!--選縣市 step1-->\n        <div class="selection-box-layout" data-ng-switch-when="0">\n            <ul class="selection-box-ul">\n                <li class="selection-box-li" data-ng-repeat="cityItem in SelectLocationCtrl.CityList">\n                    <a class="selection-box-link"\n                       data-ng-class="{\'selected\':SelectLocationCtrl.SelectCity.Id===cityItem.Id}"\n                       data-ng-bind="cityItem.Title"\n                       data-ng-click="SelectLocationCtrl.ChooseCity(cityItem)"><\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <!--選區域step2-->\n        <div class="selection-box-layout" data-ng-switch-when="1">\n            <ul class="selection-box-ul">\n                <li class="selection-box-li"\n                    data-ng-repeat="areaItem in SelectLocationCtrl.SelectCity.AreaList">\n                    <a class="selection-box-link"\n                       data-ng-class="{\'selected\':SelectLocationCtrl.SelectArea.Id===areaItem.Id}"\n                       data-ng-bind="areaItem.Title"\n                       data-ng-click="SelectLocationCtrl.ChooseArea(areaItem)"><\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <!--選門市step3-->\n        <div data-ng-switch-when="2"\n             data-ns-end-less-list\n             data-scroll-element-id="SelectLocationCtrl.ScrollElementId"\n             data-end-less-model="SelectLocationCtrl.LocationList"\n             data-start-index="SelectLocationCtrl.startIndex"\n             data-is-lock="SelectLocationCtrl.IsLock"\n             data-get-model-method="SelectLocationCtrl.GetLocationListForPickupByCityArea()"\n             data-scroll-listener="SelectLocationCtrl.endlessScrollListener">\n            <ul class="store-ul">\n                <li class="store-li" data-ng-repeat="storeDetail in SelectLocationCtrl.LocationList track by $index">\n                    <a class="store-link" href="javascript:void(0)"\n                       data-ng-click="SelectLocationCtrl.ChooseStore(storeDetail)"\n                       data-ns-scroll-to-top>\n                        <h4 class="store-title">\n                            <span data-ng-bind="storeDetail.CityName"><\/span>/\n                            <span data-ng-bind="storeDetail.Name"><\/span>\n                        <\/h4>\n                        <span class="store-detail" data-ng-bind="storeDetail.Address"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!--門市地圖-->\n<div data-ng-if="SelectLocationCtrl.ShowMap" class="scroll-location" ng-include="\'/V2/TypeScripts/Modules/LocationPickup/locationMap.html\'">\n<\/div>\n\n');n.put("/V2/TypeScripts/Modules/LocationPickup/verifyDialog.html",'<div class="modal-body">\n    <p>\n        【門市人員專用 - 取貨確認】<br/><br/>\n        請點選「確認」來使用本取貨單。<br/>\n        提醒您，取貨單一經使用，將無法再復原。\n    <\/p>\n    <div class="function">\n        <button class="button"\n                ng-click="DialogCtrl.Cancel()">\n            取消\n        <\/button>\n        <button class="button-right cms-primaryBtnBgColor cms-primaryBtnTextColor" ng-click="DialogCtrl.Ok()">\n            確認\n        <\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/ecouponInformationTemplate.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            data-ng-click="LoyaltyPointDialogCtrl.Cancel()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n    <!-- 折價券說明 -->\n    <div class="modal__main-title text font-15 black-three weight-500"\n         translate="frontend.typescripts.ecoupon.common.activity.info_main_title"><\/div>\n\n    <!-- 兌換期間 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_point_exchange_point"><\/div>\n        \n        <!-- {{ Model.Data.ExchangePointCost | number }}點 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_point_point"\n             translate-value-val0="{{ Model.Data.ExchangePointCost | number }}"><\/div>\n    <\/div>\n\n    <!-- 兌換期間 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_point_exchange_period"><\/div>\n        <div class="modal__info-content text font-13 black-three">{{ Model.Data.StartDateTime | date: \'medium\' }} - {{ Model.Data.EndDateTime | date: \'medium\' }}<\/div>\n    <\/div>\n\n    <!-- 使用期間 -->\n    <div class="modal__info-container">\n          <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_use_date"><\/div>\n          <div class="modal__info-content text font-13 black-three"\n               data-ng-show="Model.Data.UseDurationType === Model.UseDurationTypeEnum.Absolute">\n              {{ Model.Data.UsingStartDateTime | date: \'medium\' }} - {{ Model.Data.UsingEndDateTime | date: \'medium\' }}\n          <\/div>\n  \n          <div class="modal__info-content text font-13 black-three"\n               data-ng-show="Model.Data.UseDurationType === Model.UseDurationTypeEnum.Relative">\n            <!-- 兌換即可使用 -->\n            <div data-ng-show="Model.Data.UseAfterDay === Model.UseAfterDayEnum.Now">\n                 <!-- • 兌換即可使用。 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_exchange_now_can_use"><\/div>\n  \n                 <!-- • {{ Model.Data.UseDurationDay }}天內有效（含開始使用當日）。 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_active_day"\n                      translate-value-val0="{{ Model.Data.UseDurationDay }}"><\/div>\n  \n                 <!-- 兌換後，使用期間將顯示確切的時間區間，並以此時間區間為最終解釋。 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_exchange_remark"><\/div>\n            <\/div>\n  \n            <!-- 以兌換當天為兌換第1天計算，領取第{{ Model.Data.UseAfterDay + 1 }}天的00:00可開始使用 -->\n            <div data-ng-show="Model.Data.UseAfterDay > Model.UseAfterDayEnum.Now">\n                 <!-- • 以兌換當天為領取第1天計算，兌換第{{ Model.Data.UseAfterDay + 1 }}天的00:00可開始使用 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_exchange_after_can_use"\n                      translate-value-val0="{{ Model.Data.UseAfterDay + 1 }}"><\/div>\n  \n                 <!-- • {{ Model.Data.UseDurationDay }}天內有效（含開始使用當日）。 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_active_day"\n                      translate-value-val0="{{ Model.Data.UseDurationDay }}"><\/div>\n  \n                 <!-- 兌換後，使用期間將顯示確切的時間區間，並以此時間區間為最終解釋。 -->\n                 <div translate="frontend.typescripts.ecoupon.common.activity.info_relative_exchange_remark"><\/div>\n            <\/div>\n          <\/div>\n      <\/div>\n\n    <div class="modal__info-container">\n        <!-- 使用門檻 -->\n        <div class="modal__sub-title text font-12 warm-grey" \n             translate="frontend.typescripts.ecoupon.common.activity.info_use_threshold"><\/div>\n\n        <!-- 單筆消費滿 {{ Model.Data.ECouponUsingMinPrice | preferredCurrency }}，方可折抵。 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.HasECouponUsingMinPrice"\n             translate="frontend.typescripts.ecoupon.common.activity.info_check_qualify"\n             translate-value-val0="{{ Model.Data.ECouponUsingMinPrice | preferredCurrency }}">\n        <\/div>\n\n        <!-- 消費即可使用 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="!Model.Data.HasECouponUsingMinPrice"\n             translate="frontend.typescripts.ecoupon.common.activity.info_purchase"><\/div>\n\n        <!-- 最高可抵購買總金額的 {{ Model.ReturnMaxDiscountLimit }} -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.ECouponMaxDiscountLimit"\n             translate="frontend.typescripts.ecoupon.common.activity.info_max_discount_limt"\n             translate-value-val0="{{ Model.ReturnMaxDiscountLimit }}"><\/div>\n\n        <!-- 不可使用此折價券的商品，則不列入門檻金額計算，也不可折抵金額。 -->\n        <div class="modal__info-content text font-13 black-three" \n             ng-show="Model.Data.ECouponMaxDiscountLimit"\n             translate="frontend.typescripts.ecoupon.common.activity.info_max_discount_limit_desc"><\/div>\n    <\/div>\n\n    <!-- 可使用通路 -->\n    <div class="modal__info-container">    \n        <div class="modal__sub-title text font-12 warm-grey" \n             translate="frontend.typescripts.ecoupon.common.activity.info_applicable_way"><\/div>\n        <div class="modal__info-content text font-13 black-three">\n            {{ Model.ReturnUsingString }}\n        <\/div>\n    <\/div>\n\n    <!-- 可使用範圍 -->\n    <div class="modal__info-container">    \n          <div class="modal__sub-title text font-12 warm-grey"\n               translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range"><\/div>\n          <div class="modal__info-content text font-13 black-three">\n               <!-- 請參考折價券活動的商品清單。 -->\n              <div translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range_dec"><\/div>\n              <!-- 若商品不可使用此折價券，在結帳時會標註「不適用目前選擇的折價券」。 -->\n              <div translate="frontend.typescripts.ecoupon.common.activity.info_applicable_range_dec2"><\/div>\n          <\/div>\n      <\/div>\n\n    <!-- 活動名稱 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_activity_name"><\/div>\n        <div class="modal__info-content text font-13 black-three">{{ Model.Data.Name }}<\/div>\n    <\/div>\n\n    <!-- 活動說明 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey"\n             translate="frontend.typescripts.ecoupon.common.activity.info_activity_info"><\/div>\n        <div class="modal__info-content text font-13 black-three">{{ Model.Data.Description }}<\/div>\n    <\/div>\n\n    <!-- 注意事項 -->\n    <div class="modal__info-container" data-ng-if="!Model.HasECoupon">\n        <!-- 注意事項 -->\n        <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_note"><\/div>\n\n        <!-- 每檔紅利點數兌換折價券活動的數量均為限時限量，兌換完為止。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_note_dec1"><\/div>\n\n        <!-- 每張紅利點數兌換折價券需使用紅利點數兌換，每次兌換一張，可重複兌換 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_note_dec2"><\/div>\n\n        <!-- 兌換後的折價券則適用一般折價券使用規則，可在我的折價券內查看。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_note_dec3"><\/div>\n    <\/div>\n\n    <!-- 使用規則 -->\n    <div class="modal__info-container">\n        <div class="modal__sub-title text font-12 warm-grey" translate="frontend.typescripts.ecoupon.common.activity.info_rule"><\/div>\n        <!-- 1. 每次線上結帳，只能使用一張折價券，門市及櫃點使用則以另行公告為主。 -->\n        <div class="modal__info-content text font-13 black-three" \n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec1"><\/div>\n        \n        <!-- 2. 使用折價券折抵後，每項商品金額不可為零。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_fix_dec2"><\/div>\n\n        <!-- 3. 若結帳商品標註為「不適用折價券」，則該商品不能使用折價券進行折抵。 -->\n        <div class="modal__info-content text font-13 black-three" \n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec3"><\/div>\n\n        <!-- 4. 折價券僅能使用一次且不找零，一經使用無法恢復。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec4"><\/div>\n\n        <!-- 5. 使用折價券的訂單如取消或退貨，折價券將自動失效不會歸還。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec5"><\/div>\n             \n        <!-- 6. 折價券有使用效期，逾期後則無法使用，且無法恢復。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec6"><\/div>\n\n        <!-- 7. 折價券不可折抵運費。 -->\n        <div class="modal__info-content text font-13 black-three"\n             translate="frontend.typescripts.ecoupon.common.activity.info_rule_dec7"><\/div>              \n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/pickupUseWayTemplate.html",'<!-- 有React 版本 故之後翻完 點數兌換詳細頁 可以 sunset 這頁 -->\n<div class="modal__body">\n    <h2 class="modal__title" translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_title"><\/h2>\n    <main>\n        <div class="modal__condition-block">\n            <div class="modal__condition-action">\n                <div class="modal__icon-wrapper" ng-click="Model.PickupUseWay = Model.PickupUseWayEnum.Online">\n                    <i class="icon-editor icon-editor-icon_radio_selected icon-editor-lg"\n                       ng-show="Model.PickupUseWay === Model.PickupUseWayEnum.Online"><\/i>\n                    <i class="icon-editor icon-editor-icon_radio_unselected icon-editor-lg"\n                       ng-hide="Model.PickupUseWay === Model.PickupUseWayEnum.Online"><\/i>\n                <\/div>\n            <\/div>\n            <div>\n                <div class="modal__condition-title" \n                     ng-click="Model.PickupUseWay = Model.PickupUseWayEnum.Online"\n                     translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_online_title">\n                <\/div>\n                <div class="modal__condition-info" translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_online_content"><\/div>\n            <\/div>\n        <\/div>\n        <div class="modal__condition-block">\n            <div class="modal__condition-action">\n                <div class="modal__icon-wrapper" ng-click="Model.PickupUseWay = Model.PickupUseWayEnum.Offline">\n                    <i class="icon-editor icon-editor-icon_radio_selected icon-editor-lg"\n                       ng-show="Model.PickupUseWay === Model.PickupUseWayEnum.Offline"><\/i>\n                    <i class="icon-editor icon-editor-icon_radio_unselected icon-editor-lg"\n                       ng-hide="Model.PickupUseWay === Model.PickupUseWayEnum.Offline"><\/i>\n                <\/div>\n            <\/div>\n            <div>\n                <div class="modal__condition-title"\n                     ng-click="Model.PickupUseWay = Model.PickupUseWayEnum.Offline"\n                     translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_offline_title">\n                <\/div>\n                <div class="modal__condition-info" translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_offline_content"><\/div>\n            <\/div>\n        <\/div>\n        <div class="modal__remark-block"> \n            <i class="icon-editor icon-editor-icon_alert icon-editor-lg"><\/i> \n            <span translate="frontend.typescripts.loyalty_points.ecoupon_list.use_way_offline_result"><\/span>\n        <\/div>\n    <\/main>\n    <footer class="modal__footer">\n        <button type="button" \n                class="modal__button-cancel"\n                ng-click="DialogCustomizeCtrl.Cancel()"\n                translate="frontend.typescripts.common.cancel_v1"><\/button>\n        <button type="button" \n                class="modal__button-confirm cms-primaryBtnBgColor cms-primaryBtnTextColor"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                translate="frontend.typescripts.common.confirm"><\/button>\n    <\/footer>\n<\/div>');n.put("/V2/TypeScripts/Modules/Member/fbRegister.html",'<form class="login-form-container" name="registerForm">\n    <div class="login-form" data-ng-class="{\'small-form\': RegisterCtrl.CurrentViewIsSmallSize}">\n\n        <!--左邊開始-->\n        <div class="signup-left">\n            <div ui-view="leftHeader"><\/div>\n            <div ui-view="leftFooter"><\/div>\n        <\/div>\n        <!--左邊結束-->\n\n        <!--右邊開始-->\n        <div ui-view="rightContent"><\/div>\n        <!--右邊結束-->\n\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/Member/forgetPassword.html",'<form class="login-form-container" name="registerForm" novalidate>\n    <div class="login-form" data-ng-class="{\'small-form\': RegisterCtrl.CurrentViewIsSmallSize, \'overflow-hidden\': RegisterCtrl.hasToVerifyBot}">\n        <!--左邊開始-->\n        <div class="signup-left">\n            <div ui-view="leftHeader"><\/div>\n            <div ui-view="leftFooter"><\/div>\n        <\/div>\n        <!--左邊結束-->\n\n        <!--右邊開始-->\n        <div ui-view="rightContent"><\/div>\n        <!--右邊結束-->\n\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/Member/login.html",'\n<form class="login-form-container" name="loginForm" ng-init="LoginCtrl.Init()" ng-class="{\'has-ad-form\':LoginCtrl.adImgSrc}" novalidate>\n    <div class="login-ad" data-ng-if="LoginCtrl.adImgSrc!==\'\'">\n        <!--廣告版位 -->\n        <a href="{{::LoginCtrl.adLink}}">\n            <img data-ng-src="{{::LoginCtrl.adImgSrc}}" data-ng-alt="{{::LoginCtrl.adImgAlt}}" />\n        <\/a>\n        <!--廣告版位 end-->\n    <\/div>\n    <div class="login-form"\n         data-ng-class="{\'has-banner\': LoginCtrl.adImgSrc !== \'\'}">\n        <ul id="login-tab" class="tab-ul">\n            <li class="tab-li active cms-moneyBorderColor">\n                <a class="tab-link cms-moneyColor"\n                   translate="frontend.typescripts.login.member_login"\n                   data-qe-id="login_tab"><\/a>\n            <\/li>\n            <li class="tab-li">\n                <a class="tab-link"\n                   ui-sref="Register.Step1"\n                   translate="frontend.typescripts.login.sign_up"\n                   data-qe-id="register_tab"><\/a>\n            <\/li>\n        <\/ul>\n    <\/div>\n    <div class="login-form has-recaptcha"\n         data-ng-class="{\'has-banner\': LoginCtrl.adImgSrc !== \'\'}">\n\n        <!--左邊開始-->\n        <div class="login-left" data-ng-if="!LoginCtrl.IsThirdPartyLoginButtonFirst">\n            <ns-overseas-cell-phone ns-country="LoginCtrl.SelectedCountry"\n                                    ns-invalid="loginForm.cellPhoneInput.$invalid && LoginCtrl.ShowInvalidMessage"\n                                    ns-has-error="false"\n                                    ns-default-country="LoginCtrl.DefaultCountry"\n                                    ns-phone-number="LoginCtrl.PhoneNumber"\n                                    ns-shop-id="{{LoginCtrl.ShopId}}">\n            <\/ns-overseas-cell-phone>\n            <div class="form-input-wrapper">\n                <div class="form-input-container" data-ng-class="{\'form-input-error shake-x\': loginForm.passwordInput.$invalid && LoginCtrl.ShowInvalidMessage}">\n                    <ns-password-input data-name="passwordInput"\n                                       data-model="LoginCtrl.Password"\n                                       data-placeholder="{{\'frontend.typescripts.login.limit_number_tip\'|translate}}"\n                                       data-label="{{\'frontend.typescripts.login.password\'|translate}}"><\/ns-password-input>\n                <\/div>\n                <div class="error-message"\n                     data-ng-class="{\'show-message\': loginForm.passwordInput.$invalid && LoginCtrl.ShowInvalidMessage}"\n                     translate="frontend.typescripts.login.set_password_tip"><\/div>\n            <\/div>\n\n            <button class="red-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    type="submit"\n                    name="submit-btn"\n                    data-qe-id="login_btn"\n                    data-ng-click="LoginCtrl.Login(LoginCtrl.PhoneNumber, LoginCtrl.Password, \'Web\', \'PC\', LoginCtrl.SelectedCountry.CountryCode, LoginCtrl.SelectedCountry.Id); LoginCtrl.TrackEvent(\'登入\', \'手機登入\', \'完成\');"\n                    data-ng-if="!LoginCtrl.EnableLoginNineYiMemberRecaptcha"\n                    translate="frontend.typescripts.login.login_btn">\n            <\/button>\n\n            <!-- landing spot for recaptcha -->\n            <div class="g-recaptcha" data-size="invisible"><\/div>\n            <button vc-recaptcha\n                    key="LoginCtrl.GoogleRecaptchaSiteKey"\n                    on-create="LoginCtrl.SetWidgetId(widgetId)"\n                    on-success="LoginCtrl.SetResponse(response)"\n                    on-expire="LoginCtrl.Expiration()"\n                    class="form-btn red-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    data-ng-if="LoginCtrl.EnableLoginNineYiMemberRecaptcha">\n                <span translate="frontend.typescripts.login.login_btn"><\/span>\n            <\/button>\n\n            <div class="other-action">\n                <label class="label">\n                    <input type="checkbox"\n                           data-ng-model="LoginCtrl.RememberMeStatus"\n                           data-ng-change="LoginCtrl.UpdateLoginStorage()"/>\n                    <span translate="frontend.typescripts.login.remember_me"><\/span>\n                <\/label>\n                <a  class="forget-pwd" ui-sref="ForgetPassword.Step1" \n                    data-ng-click="LoginCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'忘記密碼\')"\n                    translate="frontend.typescripts.login.forgot_password">\n                <\/a>\n            <\/div>\n\n            <a class="open-point-btn"\n               data-ng-if="LoginCtrl.showThirdPartyButton && LoginCtrl.IsShowThirdPartyButtonBySocialMedia()"\n               data-ng-click="LoginCtrl.OpenOAuthWindow(); LoginCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'舊官網帳號登入\')">{{::LoginCtrl.oAuthBtnText}}<\/a>\n        <\/div>\n\n        <!--FamiClub Login-->\n        <div class="login-left" data-ng-if="LoginCtrl.IsThirdPartyLoginButtonFirst && LoginCtrl.IsShowThirdPartyButtonBySocialMedia()">\n            <div class="form-input-wrapper">\n                <div class="login-logo">\n                    <img src="/V2/content/images/Icon/famiclub.png" width="146px">\n                <\/div>\n                <div class="login-content">\n                    1.【點數超好集】全家行動購購物，消費一元累積一點<br>\n                    2.【點數超好用】可兌換主題贈品、質感精品、民生用品<br>\n                    3.【優惠商品便利買】使用商品預售功能，多樣商品享團購價還可跨店分次取，轉贈功能可邀好友共享優惠價<br>\n                    <div data-ng-class="{\'top-gutter\': LoginCtrl.isMobile}">\n                        ＊詳情請見全家官網：<a href="https://goo.gl/1xchK1" class="text-link" target="_blank">https://goo.gl/1xchK1<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <a class="login-thirdparty-btn"\n               data-ng-click="LoginCtrl.OpenOAuthWindow(); LoginCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'舊官網帳號登入\')">全家會員登入<\/a>\n            <div class="form-input-wrapper" data-ng-if="LoginCtrl.isMobile">\n                <div class="text-gutter">或<\/div>\n            <\/div>\n        <\/div>\n        <!--左邊結束-->\n        <!--右邊開始-->\n        <div class="login-right">\n            <a class="orange-btn"\n               data-ng-if="LoginCtrl.IsThirdPartyLoginButtonFirst"\n               data-ng-click="LoginCtrl.showDriftLogin = !LoginCtrl.showDriftLogin"\n               translate="frontend.typescripts.login.phone_number_login"><\/a>\n            <a class="fbblue-btn"\n               data-ng-class="{\'disabled-item\': !LoginCtrl.FBLoginStatus}"\n               data-ng-click="LoginCtrl.FBLogin(); LoginCtrl.TrackEvent(\'登入\', \'FB登入\', \'完成\')">\n                <img class="fb-icon" src="/V2/content/images/Icon/icon_login_fb.svg">\n                <span class="fb-login-text" translate="frontend.typescripts.login.facebook_login_msg"><\/span>\n            <\/a>\n            <!-- 擁有帳號即表示你同意會員權益聲明與隱私權條款-->\n            <div class="description"  >\n                <span ng-bind-html="\'frontend.typescripts.login.having_account_msg\'|translate"><\/span>\n                <a class="text-info"\n                   data-ng-href="{{LoginContainerCellPhoneCtrl.OfficialOriginDomain}}/V2/MyAccount/VipMemberBenefits"\n                   data-qe-id="tc_link"\n                   target="_blank"\n                   translate="frontend.typescripts.login.having_account_msg_membership" ><\/a>\n\n                <span translate="frontend.typescripts.login.having_account_msg_and"><\/span>\n                <a class="text-info"\n                   data-ng-href="{{LoginContainerCellPhoneCtrl.OfficialOriginDomain}}/MyAccount/Privacy"\n                   data-qe-id="privacy_link"\n                   target="_blank"\n                   data-ng-click="LoginContainerCellPhoneCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'隱私權條款\')"\n                   translate="frontend.typescripts.login.having_account_msg_privacy"><\/a>\n            <\/div>\n        <\/div>\n\n        <div data-ng-if="LoginCtrl.IsThirdPartyLoginButtonFirst">\n            <!--FamiClub MWeb Login For Desktop-->\n            <div data-ng-if="LoginCtrl.showDriftLogin"\n                 data-ng-include="\'/V2/TypeScripts/Modules/Member/partialLogin.template.html\'"><\/div>\n            <!--右邊結束-->\n\n            <!--FamiClub MWeb Login For Mobile-->\n            <div data-ng-if="LoginCtrl.isMobile">\n                <div ns-push-half-page\n                     ns-is-open="LoginCtrl.showDriftLogin"\n                     ns-open-direction="\'bottom\'"\n                     ns-close-function="LoginCtrl.showDriftLogin = false">\n                    <div data-ng-include="\'/V2/TypeScripts/Modules/Member/partialLogin.template.html\'"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/Member/partialLogin.template.html",'<div class="drift-login" data-ng-class="{\'open\': LoginCtrl.showDriftLogin, \'right\': !LoginCtrl.isMobile}">\n    <div class="close-btn-wrapper"\n         data-ng-click="LoginCtrl.showDriftLogin = !LoginCtrl.showDriftLogin">\n        <i class="icon icon-slim-close"><\/i>\n    <\/div>\n    <div class="form-input-wrapper">\n        <div class="title"\n             translate="frontend.typescripts.login.phone_number_login"><\/div>\n    <\/div>\n    <ns-overseas-cell-phone ns-country="LoginCtrl.SelectedCountry"\n                            ns-invalid="loginForm.cellPhoneInput.$invalid && LoginCtrl.ShowInvalidMessage"\n                            ns-has-error="false"\n                            ns-phone-number="LoginCtrl.PhoneNumber"\n                            ns-shop-id="{{LoginCtrl.ShopId}}">\n    <\/ns-overseas-cell-phone>\n    <div class="form-input-wrapper">\n        <div class="form-input-container" data-ng-class="{\'form-input-error shake-x\': loginForm.passwordInput.$invalid && LoginCtrl.ShowInvalidMessage}">\n            <ns-password-input data-name="passwordInput"\n                               data-model="LoginCtrl.Password"\n                               data-placeholder="{{\'frontend.typescripts.login.limit_number_tip\'|translate}}"\n                               data-label="{{\'frontend.typescripts.login.password\'|translate}}"><\/ns-password-input>\n        <\/div>\n        <div class="error-message"\n             data-ng-class="{\'show-message\': loginForm.passwordInput.$invalid && LoginCtrl.ShowInvalidMessage}"\n             translate="frontend.typescripts.login.set_password_tip"><\/div>\n    <\/div>\n    <button class="orange-btn"\n            type="submit"\n            name="submit-btn"\n            data-qe-id="login_btn"\n            data-ng-click="LoginCtrl.Login(LoginCtrl.PhoneNumber, LoginCtrl.Password, \'Web\', \'PC\', LoginCtrl.SelectedCountry.CountryCode, LoginCtrl.SelectedCountry.Id); LoginCtrl.TrackEvent(\'登入\', \'手機登入\', \'完成\');"\n            translate="frontend.typescripts.login.login_btn"><\/button>\n\n    <div class="other-action">\n        <label class="label">\n            <input type="checkbox"\n                   data-ng-model="LoginCtrl.RememberMeStatus"\n                   data-ng-change="LoginCtrl.UpdateLoginStorage()"\n                   translate="frontend.typescripts.login.remember_me">\n        <\/label>\n        <a class="forget-pwd" ui-sref="ForgetPassword.Step1" \n           data-ng-click="LoginCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'忘記密碼\')"\n           translate="frontend.typescripts.login.forgot_password"><\/a>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/Member/register.html",'<form class="login-form-container" name="registerForm" novalidate>\n    <div class="login-form" data-ng-class="{\'small-form\': RegisterCtrl.CurrentViewIsSmallSize}">\n        <ul id="login-tab" class="tab-ul">\n            <li class="tab-li">\n                <a class="tab-link"\n                   ui-sref="Login"\n                   translate="frontend.typescripts.login.member_login"\n                   data-qe-id="login_tab"><\/a>\n            <\/li>\n            <li class="tab-li active cms-moneyBorderColor">\n                <a class="tab-link cms-moneyColor"\n                   translate="frontend.typescripts.login.sign_up"\n                   data-qe-id="register_tab"><\/a>\n            <\/li>\n        <\/ul>\n        <!--左邊開始-->\n        <div class="signup-left">\n\n            <div ui-view="leftHeader"><\/div>\n\n            <!-- progressbar -->\n            <!-- 如果有增加註冊步驟，則隱藏步驟圖示 -->\n            <ul id="progressbar" data-ng-class="{\'hide-item\': RegisterCtrl.IsHideStepProgressbar}">\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 1}"><\/li>\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 2}"><\/li>\n                <li data-ng-class="{\'active\': RegisterCtrl.CurrentStep === 3}"><\/li>\n            <\/ul>\n\n            <div ui-view="leftFooter"><\/div>\n\n        <\/div>\n        <!--左邊結束-->\n\n        <!--右邊開始-->\n        <div ui-view="rightContent"><\/div>\n        <!--右邊結束-->\n\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/Member/thirdPartyRegister.html",'<form class="login-form-container" name="registerForm" novalidate>\n    <div class="login-form" data-ng-class="{\'small-form\': RegisterCtrl.CurrentViewIsSmallSize}">\n\n        <!--左邊開始-->\n        <div class="signup-left">\n            <div ui-view="leftHeader"><\/div>\n            <div ui-view="leftFooter"><\/div>\n        <\/div>\n        <!--左邊結束-->\n\n        <!--右邊開始-->\n        <div ui-view="rightContent"><\/div>\n        <!--右邊結束-->\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/PayProcess/addInvoice.html",'<div class="payProcess-block payProcess-block-lightgrey addInvoice">\n    <div class="payProcess-item border">\n        <form name="MemberInvoiceForm" novalidate\n              ng-submit="EditMemberInvoiceCtrl.Submit(EditMemberInvoiceCtrl.MemberInvoice)">\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <input type="tel" class="text" placeholder="{{\'frontend.typescripts.pay_process.pay_advanced.tax_id_number_placeholder\' | translate}}"\n                       name="RegistrationNo"\n                       ng-model="EditMemberInvoiceCtrl.MemberInvoice.RegistrationNo"\n                       maxlength="8"\n                       required\n                       ns-only-invoiceno/>\n                <p ng-show="MemberInvoiceForm.RegistrationNo.$error.required && EditMemberInvoiceCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_warning_required"><\/span><\/p>\n                <p ng-show="MemberInvoiceForm.RegistrationNo.$error.onlyInvoiceno && EditMemberInvoiceCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_warning_format_error"><\/span><\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white">\n                <input type="text" class="text" placeholder="{{\'frontend.typescripts.pay_process.pay_advanced.invoice_header_placeholder\' | translate}}"\n                       name="Title"\n                       ng-model="EditMemberInvoiceCtrl.MemberInvoice.Title"/>\n            <\/div>\n            <button class="button" ui-sref="Index.Invoice.List"><span translate="frontend.typescripts.common.Cancel"><\/span><\/button>\n            <!-- 新增 -->\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor" type="submit"\n                    ng-if="EditMemberInvoiceCtrl.IsInsertMode()">\n                <span translate="frontend.typescripts.common.confirm"><\/span>\n            <\/button>\n            <!-- 更新 -->\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor" type="submit"\n                    ng-if="EditMemberInvoiceCtrl.IsEditMode()">\n                <span translate="frontend.typescripts.common.update"><\/span>\n            <\/button>\n        <\/form>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/addLocation.html",'<div class="payProcess-block payProcess-block-lightgrey addLocation">\n    <div class="payProcess-item border">\n        <form name="MemberLocationForm" novalidate\n              ng-submit="EditMemberLocationCtrl.Submit(EditMemberLocationCtrl.MemberLocation)">\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <input type="text" class="text" name="FullName" placeholder="{{\'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\' | translate}}"\n                       ng-model="EditMemberLocationCtrl.MemberLocation.FullName"\n                       ng-pattern="EditMemberLocationCtrl.maskedInfoChangedStatus.fullname && EditMemberLocationCtrl.OverseasNameChineseAndEnglish"\n                       required\n                       minlength="2"\n                       maxlength="40"\n                       ns-continuous-chinese-or-english/>\n                <p ng-show="MemberLocationForm.FullName.$error.required && EditMemberLocationCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.onlyChinese && EditMemberLocationCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_min_length"><\/span><\/p>\n                <p ng-show="(MemberLocationForm.FullName.$error.pattern || MemberLocationForm.FullName.$error.minlength || MemberLocationForm.FullName.$error.continuousChineseOrEnglish) && MemberLocationForm.FullName.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span><\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white">\n                <input type="tel" class="text" placeholder="{{\'frontend.typescripts.pay_process.pay_advanced.mobile_number\' | translate}}"\n                       name="CellPhone"\n                       ng-model="EditMemberLocationCtrl.MemberLocation.CellPhone"\n                       required\n                       maxlength="10"\n                       ns-only-cellphone/>\n                <p ng-show="MemberLocationForm.CellPhone.$error.required && EditMemberLocationCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.CellPhone.$error.onlyCellphone && EditMemberLocationCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span><\/p>\n            <\/div>\n            <!-- 地址 -->\n            <div ns-address\n                 ns-city="EditMemberLocationCtrl.MemberLocation.City"\n                 ns-district="EditMemberLocationCtrl.MemberLocation.District"\n                 ns-zipcode="EditMemberLocationCtrl.MemberLocation.ZipCode"\n                 ns-addressdetail="EditMemberLocationCtrl.MemberLocation.AddressDetail"\n                 ns-addressdetail-change="EditMemberLocationCtrl.handleAddressDetailChange()"\n                 ns-is-addressdetail-changed="EditMemberLocationCtrl.maskedInfoChangedStatus.addressDetail"\n                 ns-have-outer-island="false"\n                 ns-submitted="EditMemberLocationCtrl.Submitted"\n                 ns-use-shipping-area="true"\n                 ns-shop-id="EditMemberLocationCtrl.ShopId">\n            <\/div>\n            <button class="button" ng-click="EditMemberLocationCtrl.Cancel()"><span translate="frontend.typescripts.common.Cancel"><\/span><\/button>\n            <!-- 新增 -->\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor" type="submit"\n                    ng-if="EditMemberLocationCtrl.IsInsertMode()">\n                <span translate="frontend.typescripts.common.confirm"><\/span>\n            <\/button>\n            <!-- 更新 -->\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor" type="submit"\n                    ng-if="EditMemberLocationCtrl.IsEditMode()">\n                <span translate="frontend.typescripts.common.update"><\/span>\n            <\/button>\n        <\/form>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/chooseInvoice.html",'<div class="payProcess-block payProcess-block-white">\n    <div class="payProcess-item payProcess-item-white">\n        <ul class="invoice-list clearfix two-item">\n            <li class="invoice-list-item">\n                <button class="button"\n                        ng-class="{\n                            \'button-grey\' : ChangeMemberInvoiceCtrl.Mode !== 0,\n                            \'button-red cms-primaryBtnTextColor cms-primaryBtnBgColor\' : ChangeMemberInvoiceCtrl.Mode === 0,\n                        }"\n                        ng-click="ChangeMemberInvoiceCtrl.Mode=0;ChangeMemberInvoiceCtrl.CarrierType = \'ER0027\'">\n                    <span translate="frontend.typescripts.choose_invoice.electronic_invoice"><\/span>\n                <\/button>\n            <\/li>\n            <li class="invoice-list-item">\n                <button class="button"\n                        ng-class="{\n                            \'button-grey\' : ChangeMemberInvoiceCtrl.Mode !== 1,\n                            \'button-red cms-primaryBtnTextColor cms-primaryBtnBgColor\' : ChangeMemberInvoiceCtrl.Mode === 1,\n                        }"\n                        ng-click="ChangeMemberInvoiceCtrl.Mode=1;ChangeMemberInvoiceCtrl.CarrierType=\'PublicWelfare\'">\n                    <span translate="frontend.typescripts.choose_invoice.donation_invoice"><\/span>\n                <\/button>\n            <\/li>\n        <\/ul>\n    <\/div>\n    <div class="payProcess-item payProcess-item-white">\n    <\/div>\n<\/div>\n<!-- 選擇載具 -->\n<div class="payProcess-block payProcess-block-grey2" ng-show="ChangeMemberInvoiceCtrl.Mode === 0">\n    <h2 class="payProcess-block-title" translate="frontend.typescripts.choose_invoice.please_select"><\/h2>\n    <div class="payProcess-item border">\n        <div class="payProcess-item-row payProcess-item-row-white receiver payProcess-item-row-select"\n             ng-repeat="carrierType in ChangeMemberInvoiceCtrl.GetInvoiceCarrierTypeList(0)"\n             ng-click="ChangeMemberInvoiceCtrl.CarrierType = carrierType.CarrierTypeDefValue"\n             ng-class="{\'round-top\': $first, \'round-bottom\': $last}"\n             ng-include="ChangeMemberInvoiceCtrl.GetCarrierTypeTemplate(carrierType.CarrierTypeDef)">\n        <\/div>\n    <\/div>\n<\/div>\n<!-- 選擇捐贈發票 -->\n<div class="payProcess-block payProcess-block-grey2" ng-show="ChangeMemberInvoiceCtrl.Mode === 1">\n    <h2 class="payProcess-block-title" translate="frontend.typescripts.choose_invoice.donation_of_social_welfare_groups"><\/h2>\n    <div class="payProcess-item border">\n        <div class="payProcess-item-row payProcess-item-row-white receiver payProcess-item-row-select"\n             ng-repeat="loveCode in ChangeMemberInvoiceCtrl.LoveCodeList"\n             ng-click="ChangeMemberInvoiceCtrl.SelectedLoveCode=loveCode;ChangeMemberInvoiceCtrl.SelectInvoice();"\n             ng-class="{ \'round-top\' : $first, \'round-bottom\': $last }">\n            <div class="option-row">\n                <i class="radio"\n                   ng-class="{ \'check\' : ChangeMemberInvoiceCtrl.SelectedLoveCode.Code === loveCode.Code }"><\/i>\n                <span class="label welfare">{{ loveCode.SocialWelfareGroup }}{{ loveCode.Code }}<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- 送出資料 -->\n<div class="payProcess-block payProcess-block-lightgrey" ng-show="ChangeMemberInvoiceCtrl.Mode === 0">\n    <div class="payProcess-item border">\n        <div class="payProcess-item-row">\n            <button class="button button-red submit cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    ng-click="ChangeMemberInvoiceCtrl.SelectInvoice()">\n                <span translate="frontend.typescripts.common.confirm"><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/finish.html",'<div class="order-block">\n    <!-- 訂單標題 -->\n    <div class="order-header"\n         ng-click="PayFinishCtrl.ShowOrder=!PayFinishCtrl.ShowOrder">\n        <div class="order-title">\n            <!-- 感謝您的訂購，本次訂單編號 -->\n            <span translate="frontend.typescripts.finish.purchase_msg"><\/span>\n        <\/div>\n        <div class="order-toggle">\n            <!-- 訂單代碼 -->\n            <span translate="frontend.typescripts.finish.shopping_cart_number"><\/span>\n            <span id="tradesOrderGroup_Code"\n                  ng-bind="PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderGroup_Code">\n                <span translate="frontend.typescripts.finish.default_order_number"><\/span>\n            <\/span>\n            <!-- 明細 -->\n            <span translate="frontend.typescripts.finish.details"><\/span>\n            <i ng-class="{\'arrow-up\' : PayFinishCtrl.ShowOrder,\'arrow-down\': !PayFinishCtrl.ShowOrder}"><\/i>\n        <\/div>\n    <\/div>\n    <!-- 訂單內容 -->\n    <div class="payProcess-block-lightgrey"\n         ng-show="PayFinishCtrl.ShowOrder">\n        <div ng-repeat="SalePageGroup in PayFinishCtrl.DisplaySalePageGroupList">\n            <ul>\n                <!--判斷不是滿額贈贈品也不是買就送贈品-->\n                <li class="order-detail-item"\n                    data-ng-repeat="SalePage in SalePageGroup.SalePageList"\n                    ng-if="!SalePage.IsGift&&!SalePage.IsSalePageGift">\n                    <div class="order-detail-left">\n                        <img class="salePage-img"\n                             ng-src="{{ SalePage.PicUrl }}" />\n                    <\/div>\n                    <div class="order-detail-right">\n                        <p class="salePage-title"\n                           name="order-detail-item-title"\n                           ng-bind="SalePage.Title">\n                            <!-- 商品頁標題 -->\n                            <span translate="frontend.typescripts.finish.item_page_title"><\/span>\n                        <\/p>\n                        <p class="salePage-desc"\n                           ng-bind="!SalePage.IsGift?SalePage.SKUPropertyDisplay:\'frontend.typescripts.finish.gift\'|translate">\n                            <!-- 商品選項 -->\n                            <span translate="frontend.typescripts.finish.item_options"><\/span>\n                        <\/p>\n                        <div class="salePage-qty">\n                            <span translate="frontend.typescripts.order_detail.qty"><\/span>\n                            <span id="{{\'salePageQty_\' + ($index + 1)}}"\n                                  ng-bind="SalePage.Qty">0<\/span>\n                        <\/div>\n                        <div ng-if="!SalePage.IsGift && !SalePage.IsPointsPayPair"\n                             class="salePage-currency"\n                             id="{{\'salePagePrice_\' + ($index + 1)}}"\n                             ng-bind="SalePage.Price | currency"><\/div>\n                        <div ng-if="!SalePage.IsGift && SalePage.IsPointsPayPair"\n                             class="salePage-currency">\n                            <!-- 純點數 -->\n                            <div ng-if="SalePage.PointsPayPair.OriginPairsPrice === 0"\n                                 translate="frontend.typescripts.common.pointpay_point"\n                                 translate-value-val0="{{ SalePage.PointsPayPair.OriginPairsPoints }}"><\/div>\n                            <!-- 點加金 -->\n                            <div ng-if="SalePage.PointsPayPair.OriginPairsPoints > 0 && SalePage.PointsPayPair.OriginPairsPrice > 0">\n                                <span translate="frontend.typescripts.common.pointpay_point"\n                                      translate-value-val0="{{ SalePage.PointsPayPair.OriginPairsPoints }}"><\/span><span>＋<\/span><span ng-bind="SalePage.PointsPayPair.OriginPairsPrice | currency"><\/span>\n                            <\/div>\n                        <\/div>\n                        <div class="order-detail-bottom"\n                             ng-if="SalePage.SalePageGiftList.length !== 0">\n                            <!--買就送贈品清單-->\n                            <div class="detail-gift-title">\n                                <span class="detail-gift-icon"><\/span>\n                                <!-- 贈品 -->\n                                <span translate="frontend.typescripts.finish.gift"><\/span>\n                            <\/div>\n                            <ul>\n                                <li ng-repeat="giftItem in SalePage.SalePageGiftList | orderBy:\'-SalePageId\'"\n                                    class="detail-gift-row">\n                                    <div class="detail-gift-inStock">{{giftItem.Title}}<\/div>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <!--滿額贈贈品-->\n        <ul ng-if="PayFinishCtrl.AllFreeGiftSalePageList.length !== 0">\n            <li class="order-detail-item"\n                ng-repeat="FreeGiftSalePage in PayFinishCtrl.AllFreeGiftSalePageList">\n                <div class="order-detail-left">\n                    <img class="salePage-img"\n                         ng-src="{{ FreeGiftSalePage.PicUrl }}" />\n                <\/div>\n                <div class="order-detail-right">\n                    <p class="salePage-title"\n                       ng-bind="FreeGiftSalePage.Title">\n                        <!-- 商品頁標題 -->\n                        <span translate="frontend.typescripts.finish.item_page_title"><\/span>\n                    <\/p>\n                    <p class="salePage-free-gift"\n                       ng-bind="\'frontend.typescripts.finish.gift\'|translate">\n                        <!-- 商品選項 -->\n                        <span translate="frontend.typescripts.finish.item_options"><\/span>\n                    <\/p>\n                <\/div>\n            <\/li>\n        <\/ul>\n        <!-- 贈品券贈品列表 -->\n        <div ng-repeat="SalePageGroup in PayFinishCtrl.SalePageGiftECouponGroupList">\n            <ul>\n                <li class="order-detail-item"\n                    data-ng-repeat="SalePage in SalePageGroup.SalePageList">\n                    <div class="order-detail-left">\n                        <img class="salePage-img"\n                             ng-src="{{ SalePage.PicUrl }}" />\n                    <\/div>\n                    <div class="order-detail-right">\n                        <p class="salePage-title"\n                           name="order-detail-item-title"\n                           ng-bind="SalePage.Title">\n                            <!-- 商品頁標題 -->\n                            <span translate="frontend.typescripts.finish.item_page_title"><\/span>\n                        <\/p>\n                        <div class="salePage-qty">\n                            <span translate="frontend.typescripts.order_detail.qty"><\/span><span ng-bind="SalePage.Qty"><\/span>\n                        <\/div>\n                        <div class="salePage-gift-coupon"\n                             translate="frontend.typescripts.order_detail.gift_coupon_redemption">\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <ul class="detail-consumption">\n            <li class="detail-item">\n                <!-- 商品小計 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.subtotal">\n                <\/p>\n                <p class="detail-price"\n                   id="totalPrice"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.TotalPrice | currency">\n                    0\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.MemberTierPromotionDiscount">\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.member_exclusive">\n                <\/p>\n                <p class="detail-price"\n                   id="memberTierPromotionDiscount"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.MemberTierPromotionDiscount | currency">\n                    0\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="PayFinishCtrl.PromotionDiscount">\n                <!-- 活動折扣 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.promotion_discount">\n                <\/p>\n                <p class="detail-price"\n                   id="normalPromotionDiscount"\n                   ng-bind="PayFinishCtrl.PromotionDiscount | currency">\n                    0\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.SelectedECouponSlaveId">\n                <!--折價券-->\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.coupon">\n                <\/p>\n                <p class="detail-price"\n                   id="eCouponDiscount"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.ECouponDiscount | currency">\n                    0\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint && (PayFinishCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint.IsUsing || PayFinishCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint.TotalPointsPay.TotalDiscount)">\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.point_discount_amount">\n                <\/p>\n                <p class="detail-price"\n                   id="LoyaltyPointDiscountPrice"\n                   ng-bind="PayFinishCtrl.GetPointDiscountPrice(PayFinishCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint)">\n                <\/p>\n            <\/li>\n            <li class="detail-item">\n                <!--免/運費-->\n                <p class="detail-title"\n                   translate="frontend.typescripts.finish.fee">\n                <\/p>\n                <p class="detail-price"\n                   id="fee">\n                    <span ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2"\n                          ng-bind="PayFinishCtrl.Fee > 0 ? (PayFinishCtrl.Fee | currency) : (\'frontend.typescripts.finish.free_shipping\' | translate)"><\/span>\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2 && PayFinishCtrl.Fee > 0 && PayFinishCtrl.PayProcessData.ShoppingCartV2.ShopShippingTypePromotionDiscount < 0">\n                <!--運費活動折扣-->\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.shipping_fee_promotion_discount">\n                <\/p>\n                <p class="detail-price"\n                   id="shopShippingTypePromotionDiscount"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.ShopShippingTypePromotionDiscount | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.FreeShippingECouponDiscount !== 0">\n                <!-- 運費券折扣 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon_discount"><\/p>\n                <p class="detail-price"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.FreeShippingECouponDiscount | currency"><\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.DesignatePaymentPromotionDiscountForDisplay !== 0">\n                <!-- 指定信用卡折扣 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.shopping_cart.designated_credit_card_discount"><\/p>\n                <p class="detail-price"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.DesignatePaymentPromotionDiscountForDisplay | currency"><\/p>\n            <\/li>\n            <li class="detail-item">\n                <p class="detail-title">\n                    <span class="tier-member"\n                          data-ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.HasCrmShopContract"\n                          ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.CrmMemberTier.CrmShopMemberCardName">\n                    <\/span>\n                    <!--共X項商品，總計-->\n                    <span id="salePageCount"\n                          ng-if="PayFinishCtrl.PayProcessData.ShoppingCartMajorSalePageCount > 0"\n                          translate="frontend.typescripts.finish.total_amount"\n                          translate-value-val0="{{PayFinishCtrl.PayProcessData.ShoppingCartMajorSalePageCount}}">\n                    <\/span>\n                    <!-- 總計 -->\n                    <span ng-if="PayFinishCtrl.PayProcessData.ShoppingCartMajorSalePageCount === 0"\n                          translate="frontend.typescripts.shopping_cart.total">\n                    <\/span>\n                <\/p>\n                <p class="detail-price detail-price__total price-red cms-moneyColor"\n                   id="totalPayment"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.TotalPayment | currency">\n                    0\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint">\n                <p class="detail-item__flex-1">\n                    <span translate="frontend.typescripts.order_detail.total_points"><\/span>\n                    <span class="price-red"\n                          translate="frontend.typescripts.common.pointpay_point"\n                          translate-value-val0="{{ PayFinishCtrl.PointsUsage | nsAbs | number }}">\n                    <\/span>\n                <\/p>\n            <\/li>\n        <\/ul>\n    <\/div>\n    <!-- 訂單明細 -->\n    <div class="payProcess-item payProcess-item-white border">\n        <!-- PXPay 先查後扣 -->\n        <div class="payProcess-item__warning"\n             ng-if="PayFinishCtrl.IsRetailStore &&\n                PayFinishCtrl.PayProcessData.PayProfileType === PayFinishCtrl.PayProfileTypeDefEnum.PXPay &&\n                PayFinishCtrl.PayProcessData.IsPxPayAuthOnly">\n        <span class="payProcess-item__warning__icon">\n            <i class="icon-editor icon-editor-icon_common_alert"><\/i>\n        <\/span>\n            <span class="payProcess-item__warning__text"\n                  translate="frontend.typescripts.finish.retail_store_pay_warning_desc"><\/span>\n        <\/div>\n        <ul class="finish-detail">\n            <li class="detaillist-item">\n                <!--付款方式-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.pay_mode">\n                <\/p>\n                <!--付款方式文字-->\n                <p class="detaillist-price"\n                   name="detaillist-paymode"\n                   ng-bind="PayFinishCtrl.PayProcessData.ShoppingCartV2.SelectedCheckoutPayTypeGroup.DisplayName">\n                    <span translate="frontend.typescripts.finish.pay_mode_default"><\/span>\n                <\/p>\n            <\/li>\n            <li class="detaillist-item">\n                <!--目前狀態-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.current_status">\n                <\/p>\n                <!--訂單送出成功-->\n                <p class="detaillist-price"\n                   translate="frontend.typescripts.finish.order_has_been_made">\n                <\/p>\n            <\/li>\n            <li class="detaillist-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShoppingCartMajorSalePageCount > 0">\n                <!--訂購商品-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.purchased_items">\n                <\/p>\n                <!--共X項-->\n                <p class="detaillist-price"\n                   id="detailListSalePageCount"\n                   name="detaillist-total-item"\n                   translate="frontend.typescripts.finish.total_item"\n                   translate-value-val0="{{PayFinishCtrl.PayProcessData.ShoppingCartMajorSalePageCount}}">\n                <\/p>\n            <\/li>\n            <li class="detaillist-item"\n                ng-if="!PayFinishCtrl.IsPartialPickup()">\n                <!--收件人-->\n                <p class="detaillist-title"\n                   ng-if="PayFinishCtrl.IsShowAddress() || PayFinishCtrl.IsOversea()"\n                   translate="frontend.typescripts.finish.recipient">\n                <\/p>\n                <!--取貨人-->\n                <p class="detaillist-title"\n                   ng-if="PayFinishCtrl.IsLocationPickup()"\n                   translate="frontend.typescripts.finish.location_pick_up_recipient">\n                <\/p>\n                <p class="detaillist-price" ng-if="!PayFinishCtrl.IsEVoucherOrder()">\n                    <!-- 這邊斷行會多出一個空白，因此將其縮排-->\n                    <span name="detaillist-receiver-name"\n                          data-ng-bind="PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderList[0].TradesOrderReceiverList[0].TradesOrderReceiver_Name">\n                    <\/span>\n                    <span name="detaillist-receiver-cellphone"\n                          data-ng-class="{\'cellphone-text\':PayFinishCtrl.IsFromApp}"\n                          data-ng-bind="PayFinishCtrl.CellPhone()">\n                    <\/span>\n                <\/p>\n            <\/li>\n            <li class="detaillist-item"\n                ng-if="!PayFinishCtrl.IsPartialPickup()">\n                <!--收件地址-->\n                <p class="detaillist-title"\n                   name="detaillist-address"\n                   ng-if="PayFinishCtrl.IsShowAddress() || PayFinishCtrl.IsOversea()"\n                   translate="frontend.typescripts.finish.address">\n                <\/p>\n                <!--取貨門市-->\n                <p class="detaillist-title"\n                   name="detaillist-address"\n                   ng-if="PayFinishCtrl.IsLocationPickup()"\n                   translate="frontend.typescripts.finish.pick_up_store">\n                <\/p>\n                <!--收件人地址-->\n                <p class="detaillist-price"\n                   name="detaillist-address"\n                   ng-if="PayFinishCtrl.IsShowAddress() || PayFinishCtrl.IsOversea()"\n                   ng-bind-html="PayFinishCtrl.GetReceiverAddress()">\n                    <span translate="frontend.typescripts.finish.address_default"><\/span>\n                <\/p>\n                <p class="detaillist-price"\n                   name="detaillist-address"\n                   ng-if="PayFinishCtrl.IsLocationPickup()">\n                    <!--取貨門市-->\n                    <!--7-11(店號)店名 店址-->\n                    <!-- TODO royale api 沒有門市名稱 門市名稱先塞 StoreId -->\n                    <span ng-init="tradesOrderReceiver = PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderList[0].TradesOrderReceiverList[0]">\n                        <span ng-if="PayFinishCtrl.ShowStoreShippingName">\n                            <span ng-bind="PayFinishCtrl.StoreShippingName(tradesOrderReceiver.TradesOrderReceiver_ShippingProfileTypeDef)"><\/span>\n                            <span ng-bind="\'(\' + tradesOrderReceiver.TradesOrderReceiver_StoreId + \')\'"><\/span>\n                        <\/span>\n                        {{tradesOrderReceiver.TradesOrderReceiver_StoreName === tradesOrderReceiver.TradesOrderReceiver_StoreId ? \'\' : tradesOrderReceiver.TradesOrderReceiver_StoreName }}\n                    <\/span>\n                    <span class="detaillist-store-address">{{tradesOrderReceiver.TradesOrderReceiver_Address}}<\/span>\n                <\/p>\n            <\/li>\n            <li class="detaillist-item detaillist-item__invoice"\n                ng-if="PayFinishCtrl.BookingPickupDataList.length > 0 && !PayFinishCtrl.IsRetailStore">\n                <!--指定到貨商品送達時間-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.pickup_dates">\n                <\/p>\n                <p class="detaillist-price"\n                   ng-repeat="bookingData in PayFinishCtrl.BookingPickupDataList">\n                    <span class="detaillist-item__bold-text"\n                          translate="{{bookingData.Temperature}}"><\/span>\n                    <span ng-bind="bookingData.PickupDate | date"><\/span>\n                    <span ng-bind="bookingData.PickupPeriod.PeriodDesc"><\/span>\n                <\/p>\n                <!--(非指定到貨商品將依一般出貨時程送達)-->\n                <p class="detaillist-item__notes"\n                   translate="frontend.typescripts.finish.pickup_dates_notes">\n                <\/p>\n            <\/li>\n            <!-- PX 門市自取/門市外送 -->\n            <li class="detaillist-item"\n                ng-if="PayFinishCtrl.BookingPickupDataList[0] && PayFinishCtrl.IsRetailStore">\n                <!--取貨時間-->\n                <p class="detaillist-title"\n                   ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.RetailStorePickup"\n                   translate="frontend.typescripts.finish.retail_store_pickup_dates">\n                <\/p>\n                <!--外送時間-->\n                <p class="detaillist-title"\n                   ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery"\n                   translate="frontend.typescripts.finish.retail_store_delivery_dates">\n                <\/p>\n                <p class="detaillist-price">\n                    <span ng-bind="PayFinishCtrl.BookingPickupDataList[0].PickupDate | date"><\/span>\n                    <span ng-bind="PayFinishCtrl.BookingPickupDataList[0].PickupPeriod.PeriodDesc"><\/span>\n                <\/p>\n            <\/li> \n            <!-- PX 門市外送 -->\n            <li class="detaillist-item"\n                ng-if="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery">\n                <!--配送門市-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.retail_store_delivery_store">\n                <\/p>\n                <p class="detaillist-price"\n                   ng-bind="PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderList[0].TradesOrderReceiverList[0].TradesOrderReceiver_StoreName">\n                <\/p>\n            <\/li> \n            <li class="detaillist-item detaillist-item__border-top">\n                <!--總計金額-->\n                <p class="detaillist-title"\n                   translate="frontend.typescripts.finish.total_amount_default">\n                <\/p>\n                <!--總計金額-->\n                <p class="detaillist-price total-price price-red cms-moneyColor"\n                   id="detailListTotalPayment"\n                   ng-bind="PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderGroup_TotalPayment | currency">\n                    <span translate="frontend.typescripts.finish.total_amount_default"><\/span>\n                <\/p>\n            <\/li>\n            <li>\n                <!--分X期，每期約Y-->\n                <p class="detaillist-installment"\n                   ng-show="PayFinishCtrl.InstallmentInfo"\n                   translate="frontend.typescripts.finish.installment_msg"\n                   translate-value-val0="{{PayFinishCtrl.InstallmentInfo.InstallmentDef}}"\n                   translate-value-val1="{{PayFinishCtrl.InstallmentInfo.EachInstallmentPrice | currency}}">\n                <\/p>\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n<!--提示訊息-->\n<div class="payProcess-block-lightgrey">\n    <!--宅配-->\n    <p class="description"\n       ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.Home">\n        <!--您的商品會在付款資料確認後，儘速送達您指定的收件地址。-->\n        <span translate="frontend.typescripts.finish.address_msg"><\/span>\n    <\/p>\n    <!--門市自取-->\n    <p class="description"\n       ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.LocationPickup">\n        <!--您的商品會在付款資料確認後儘速送達指定門市。-->\n        <span translate="frontend.typescripts.finish.store_msg"><\/span>\n    <\/p>\n    <!--超商取貨-->\n    <p class="description"\n       ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.SevenEleven ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.SevenElevenPickup ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.SevenElevenTCatPickup ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.Family ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.FamilyPickup ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.HiLife ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.HiLifePickup ||\n                PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.CircleKPickup">\n        <!--請在收到[貨到通知]5天內，至指定門市取貨。  <span class="red">若逾期未取將可能列為黑名單<\/span>，影響您在本商店訂購的權利。-->\n        <i class="icon-editor icon-editor-icon_common_alert icon-editor-lg"><\/i>\n        <span translate="frontend.typescripts.finish.store_pickup_msg" translate-value-val0="{{PayFinishCtrl.LocalizationConfig.StorePickup.PickupDay}}"><\/span>\n    <\/p>\n    <!--AlfredPickup 智能櫃-->\n    <p class="description"\n       ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.AlfredPickup">\n        <i class="icon-editor icon-editor-icon_common_alert icon-editor-lg"><\/i>\n        <span translate="frontend.typescripts.finish.alfred_pickup_msg"><\/span>\n    <\/p>\n    <!--貨到付款-->\n    <p class="description"\n       ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.CashOnDelivery">\n        <!--<span class="red">送貨時收取貨款，僅收現金；<\/span>商品送達前會與收件人電話聯絡，請保持電話暢通。如配送3次皆無法聯絡收件人，訂單將會自動取消。-->\n        <span translate="frontend.typescripts.finish.cash_on_delivery_msg"><\/span>\n    <\/p>\n    <!--分批取貨-->\n    <div class="payProcess-item"\n         ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.PartialPickup">\n        <section class="payProcess-item-row payProcess-item-row-white round payProcess-item-row__partial-pickup-container">\n            <section class="payProcess-item-row__partial-pickup-section">\n                <img class="payProcess-item-row__partial-pickup-image"\n                     src="/V2/Content/Images/Pay/partial-pickup.png" />\n                <!--訂單狀態轉為已可領取後，即可至全省任一門市領取，<span class="red">請務必在領取期限到期之前，全數領取完畢。<\/span>-->\n                <p class="payProcess-item-row__partial-pickup-desc"\n                   translate="{{ PayFinishCtrl.PartialPickupDesc }}">\n                <\/p>\n            <\/section>\n            <a class="payProcess-item-row__partial-pickup-link"\n               translate="frontend.typescripts.finish.partial_pickup_btn"\n               ng-href="/V2/VIPMember/CustomLinkRelay?shopId={{ PayFinishCtrl.ShopId }}&groupName=VipMemberCustomLinkGroup01">\n            <\/a>\n        <\/section>\n    <\/div>\n    <!-- 反詐騙警語 -->\n    <p class="description"\n       ng-if="PayFinishCtrl.ShowAntiFraudDesc">\n        <span translate="frontend.typescripts.finish.anti_fraud_description"><\/span>\n    <\/p>\n    <!--門市購-->\n    <div class="description description--highlight"\n         ng-show="PayFinishCtrl.IsRetailStore">\n        <ul class="description__list"\n            ng-if="PayFinishCtrl.PayProcessData.PayProfileType === PayFinishCtrl.PayProfileTypeDefEnum.PXPay &&\n                   PayFinishCtrl.PayProcessData.IsPxPayAuthOnly">\n            <li class="description__list-item description__list-item--highlight"\n                translate="frontend.typescripts.finish.retail_store_pay_hint_desc"><\/li>\n        <\/ul>\n        <ul class="description__list"\n            ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.RetailStorePickup">\n            <li class="description__list-item description__list-item--highlight"\n                translate="frontend.typescripts.finish.retail_store_desc1">\n            <\/li>\n            <li class="description__list-item"\n                translate="frontend.typescripts.finish.retail_store_desc2">\n            <\/li>\n            <li class="description__list-item"\n                translate="frontend.typescripts.finish.retail_store_desc3">\n            <\/li>\n        <\/ul>\n        <ul class="description__list"\n            ng-show="PayFinishCtrl.PayProcessData.ShippingProfileType === PayFinishCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery">\n            <li class="description__list-item"\n                translate="frontend.typescripts.finish.retail_store_desc4">\n            <\/li>\n            <li class="description__list-item"\n                translate="frontend.typescripts.finish.retail_store_desc5">\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n<!--ATM付款資訊-->\n<div class="payProcess-block-lightgrey"\n     ng-if="PayFinishCtrl.PayProcessData.PayProfileType === PayFinishCtrl.PayProfileTypeDefEnum.ATM && PayFinishCtrl.Market !== \'PX\'">\n    <div class="atm-payinfo-container payProcess-item">\n        <div class="payProcess-item-row-white round">\n            <div class="atm-payinfo-title highlight-text">\n                <!--ATM付款資訊-->\n                <span translate="frontend.typescripts.finish.atm_payment"><\/span>\n            <\/div>\n            <div class="atm-payinfo-content">\n                <div class="atm-payinfo-row">\n                    <div class="atm-payinfo-row-title">\n                        <!--轉帳銀行-->\n                        <span translate="frontend.typescripts.finish.atm_bank"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-row-desc">\n                        <span>{{::PayFinishCtrl.PayProcessData.AtmPayInfo.BankName}}<\/span>&nbsp;\n                        <span class="highlight-text">{{::PayFinishCtrl.PayProcessData.AtmPayInfo.BankCode}}<\/span>\n                    <\/div>\n                <\/div>\n                <div class="atm-payinfo-row">\n                    <div class="atm-payinfo-row-title">\n                        <!--轉帳帳號-->\n                        <span translate="frontend.typescripts.finish.atm_bank_account"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-row-desc highlight-text">\n                        {{::PayFinishCtrl.formatAtmPayinfoVirtualAccount(PayFinishCtrl.PayProcessData.AtmPayInfo.VirtualAccount)}}\n                    <\/div>\n                <\/div>\n                <div class="atm-payinfo-row">\n                    <div class="atm-payinfo-row-title">\n                        <!--繳款金額-->\n                        <span translate="frontend.typescripts.finish.atm_amount_pay"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-row-desc total-price price-red cms-moneyColor"\n                         id="atmTotalPayment">\n                        {{::PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderGroup_TotalPayment | currency}}\n                    <\/div>\n                <\/div>\n                <div class="atm-payinfo-row">\n                    <div class="atm-payinfo-row-title">\n                        <!--繳款期限-->\n                        <span translate="frontend.typescripts.finish.atm_payment_deadline"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-row-desc">\n                        <!-- TODO：html頁面時間格式待調整 -->\n                        {{::PayFinishCtrl.PayProcessData.AtmPayInfo.ExpiredDateTime | date: \'yyyy/MM/dd HH:mm\'}}\n                    <\/div>\n                <\/div>\n                <div class="atm-payinfo-desc">\n                    <div class="atm-payinfo-desc-item price-red">\n                        <!--此轉帳帳號僅供本次交易使用-->\n                        <span translate="frontend.typescripts.finish.atm_account_for_this_transaction"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-desc-item highlight-text">\n                        <!--※&nbsp;此繳款帳號若已過繳款期限為無效帳號，如需購買請重新訂購。-->\n                        <span translate="frontend.typescripts.finish.atm_deadline_msg"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-desc-item">\n                        <!--※&nbsp;請於繳款期限前，透過網路銀行、任何一部銀行或郵局的[網路ATM]或[ATM自動提款機]轉帳，輸入轉帳帳號及金額就能輕鬆完成付款。-->\n                        <span translate="frontend.typescripts.finish.atm_payment_msg"><\/span>\n                    <\/div>\n                    <div class="atm-payinfo-desc-item">\n                        <!--※&nbsp;訂單金額若超過三萬元，請改選「轉帳繳費」功能，繳費上限依各金融機構規定-->\n                        <span translate="frontend.typescripts.finish.atm_order_over_amount"><\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!--ATM防詐騙-->\n<div class="payProcess-block-lightgrey"\n     ng-if="PayFinishCtrl.PayProcessData.PayProfileType === PayFinishCtrl.PayProfileTypeDefEnum.ATM && PayFinishCtrl.Market !== \'PX\'">\n    <div class="atm-untiscam-container payProcess-item">\n        <div class="payProcess-item-row payProcess-item-row-white round">\n            <div class="atm-untiscam-content">\n                <div class="atm-untiscam-title">\n                    <i class="icon icon-exclamation"><\/i>\n                    <!--&nbsp;小心！請提防ATM詐騙-->\n                    <span translate="frontend.typescripts.finish.atm_warning"><\/span>\n                <\/div>\n                <div class="atm-untiscam-desc">\n                    <!--由於網路詐騙案件層出不窮，手法也不斷更新，在此特別提醒您，本商家與工作人員，均不會要求消費者至提款機操作任何功能，請小心勿上當。\n                    如果接獲不明人士來信或來電，應立即撥打165防詐騙專線查詢或透過客服專線查證。 讓我們與您一起努力維護網路交易安全！-->\n                    <span translate="frontend.typescripts.finish.atm_warning_content"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 其他轉帳方式 -->\n<div class="payProcess-block-lightgrey"\n    ng-if="PayFinishCtrl.PayProcessData.PayProfileType === PayFinishCtrl.PayProfileTypeDefEnum.CustomOfflinePayment">\n    <div class="payProcess-item">\n        <div class="payProcess-item-row-white round custom-offline-payment">\n            <div class="custom-offline-payment__title">\n                <span translate="frontend.typescripts.finish.custom_offline_payment"><\/span>\n            <\/div>\n            <div class="custom-offline-payment__content">\n                <div ns-custom-offline-payment-Inform\n                    ns-bank-account-info="PayFinishCtrl.CustomOfflinePaymentInform.BankAccountInfo"\n                    ns-payment-mobile="PayFinishCtrl.CustomOfflinePaymentInform.PaymentMobile"\n                    ns-payment-email="PayFinishCtrl.CustomOfflinePaymentInform.PaymentEmail"\n                    ns-q-r-code-img="PayFinishCtrl.CustomOfflinePaymentInform.QRCodeImg"\n                    ns-payment-note="PayFinishCtrl.CustomOfflinePaymentInform.PaymentNote"\n                    ns-has-copy="PayFinishCtrl.CustomOfflinePaymentInform.HasCopy">\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 電子票券 -->\n<div class="payProcess-block-lightgrey" ng-if="PayFinishCtrl.IsEVoucherOrder()">\n    <div class="payProcess-item">\n        <div class="payProcess-item-row-white add-line-official__banner">\n            <section class="content">\n                <div class="content__img-block">\n                    <img class="content__img-block__img"\n                         src="/V2/Content/Images/Pay/e_voucher_banner.svg" />\n                <\/div>\n                <div class="content__info-block">\n                    <h3 class="content__info-block__title">\n                        <span translate="frontend.typescripts.finish.e_voucher_exchange_info"><\/span>\n                    <\/h3>\n                    <p class="content__info-block__desc" translate="frontend.typescripts.finish.e_voucher_region_description"><\/p>\n                <\/div>\n            <\/section>\n            <section class="action-block">\n                <button class="action-block__outline-btn \n                               cms-secondBtnTextColor \n                               cms-secondBtnBgColor \n                               cms-secondBtnBorderColor"\n                        ng-click="PayFinishCtrl.RedirectToEVoucherPage()"\n                        translate="frontend.typescripts.finish.view_my_e_vouchers"><\/button>\n            <\/section>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 登記活動 -->\n<div class="payProcess-block-lightgrey" ng-if="PayFinishCtrl.RegisterPromotionMatchCount">\n    <div class="payProcess-item">\n        <div class="payProcess-item-row-white add-line-official__banner">\n            <section class="content">\n                <div class="content__img-block">\n                    <img class="content__img-block__img"\n                         data-ng-src="{{ PayFinishCtrl.AddRegisterActivityWording.imgUrl }}" />\n                <\/div>\n                <div class="content__info-block">\n                    <h3 class="content__info-block__title">\n                        <span ng-bind="PayFinishCtrl.AddRegisterActivityWording.title"><\/span>\n                    <\/h3>\n                    <p class="content__info-block__desc"\n                       ng-bind="PayFinishCtrl.AddRegisterActivityWording.description"><\/p>\n                    <div class="content__info-block__remark"\n                         ng-bind="PayFinishCtrl.AddRegisterActivityWording.remarkText"><\/div>\n                <\/div>\n            <\/section>\n            <section class="action-block">\n                <button class="action-block__outline-btn \n                               cms-secondBtnTextColor \n                               cms-secondBtnBgColor \n                               cms-secondBtnBorderColor"\n                        ng-bind="PayFinishCtrl.AddRegisterActivityWording.buttonText"\n                        ng-click="PayFinishCtrl.RedirectToTradesOrderDetail()"><\/button>\n            <\/section>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 加入 Line 官方帳號  -->\n<div class="payProcess-block-lightgrey" ng-if="PayFinishCtrl.LineAddOfficialData">\n    <div class="payProcess-item">\n        <div class="payProcess-item-row-white add-line-official__banner">\n            <section class="content">\n                <div class="content__img-block">\n                    <img class="content__img-block__img"\n                         data-ng-src="{{ PayFinishCtrl.AddLineOfficialWording.imgUrl }}" />\n                <\/div>\n                <div class="content__info-block">\n                    <h3 class="content__info-block__title">\n                        <span ng-bind="PayFinishCtrl.AddLineOfficialWording.title"><\/span>\n                        <span class="add-line-official--highlight"\n                              ng-bind="PayFinishCtrl.AddLineOfficialWording.titleHighlight"><\/span>\n                    <\/h3>\n                    <p class="content__info-block__desc"\n                       ng-bind="PayFinishCtrl.AddLineOfficialWording.description"><\/p>\n                    <div class="content__info-block__remark"\n                         ng-bind="PayFinishCtrl.AddLineOfficialWording.remarkText"><\/div>\n                <\/div>\n            <\/section>\n\n            <section class="action-block">\n                <button class="action-block__outline-btn \n                               cms-secondBtnTextColor \n                               cms-secondBtnBgColor \n                               cms-secondBtnBorderColor"\n                        ng-bind="PayFinishCtrl.AddLineOfficialWording.buttonText"\n                        ng-click="PayFinishCtrl.AddLineOfficialAction(\'select_content\')"><\/button>\n            <\/section>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- 引導下載APP -->\n<div class="payProcess-block-lightgrey"\n     data-ng-if="PayFinishCtrl.IsShowDownloadAppBanner">\n    <div class="download-app-container payProcess-item border">\n        <div class="payProcess-item-row payProcess-item-row-white round receiver">\n            <div class="download-app">\n                <img class="download-app-qrcode"\n                     data-ng-if="PayFinishCtrl.isEnableSendAppLinkSMS&&!PayFinishCtrl.IsMobileBrowser"\n                     data-ng-src="{{PayFinishCtrl.QRCodeUrl}}" />\n                <div class="download-app-content">\n                    <img class="download-app-img"\n                         data-ng-src="{{PayFinishCtrl.ShopImgUrl}}" />\n                    <div class="dowload-app-badge">1<\/div>\n                    <div class="download-app-title">\n                        <!--想即時接收出貨通知嗎?-->\n                        <span translate="frontend.typescripts.finish.app_download_title"><\/span>\n                        <div class="show-at-mobile">\n                            <p class="download-app-desc">\n                                <!--現在下載官方APP，-->\n                                <span translate="frontend.typescripts.finish.app_download"><\/span>\n                            <\/p>\n                            <p class="download-app-desc">\n                                <!--更多好康不錯過-->\n                                <span translate="frontend.typescripts.finish.app_download_msg"><\/span>\n                            <\/p>\n                        <\/div>\n                        <!--現在下載官方APP，更多好康不錯過-->\n                        <p class="download-app-desc hide-at-mobile"\n                           translate="frontend.typescripts.finish.app_download_desktop">\n                        <\/p>\n                    <\/div>\n                    <button class="download-app-btn menu-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                            data-ng-if="PayFinishCtrl.isEnableSendAppLinkSMS&&!PayFinishCtrl.IsMobileBrowser"\n                            data-ng-click="PayFinishCtrl.sentDownloadAppLink();PayFinishCtrl.TrackEvent(\'結帳完成_APP下載(PC)\',\'click\',\'傳送載點\')">\n                        <!--免費傳送載點至手機({{PayFinishCtrl.cellPhoneFormat}})-->\n                        <span translate="frontend.typescripts.finish.send_download_link"\n                              translate-value-val0="{{PayFinishCtrl.cellPhoneFormat}}"><\/span>\n                    <\/button>\n                    <button class="download-app-btn menu-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                            data-ng-if="PayFinishCtrl.IsMobileBrowser"\n                            data-ng-click="PayFinishCtrl.goToDownload();PayFinishCtrl.TrackEvent(\'結帳完成_APP下載(PC)\',\'click\',\'傳送載點\')">\n                        <!--立即下載-->\n                        <span translate="frontend.typescripts.finish.app_download_now"><\/span>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<!-- 發票開立資訊 (判斷是否代開發票及載具類型)-->\n<div class="payProcess-block-lightgrey"\n     ng-show="PayFinishCtrl.PayProcessData.MemberInvoice.CarrierTypeDef &&\n              PayFinishCtrl.LocalizationConfig.Common.ShowInvoice &&\n              (PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderGroup_TotalPayment > 0) &&\n              PayFinishCtrl.IsShowInvoiceData">\n    <div class="payProcess-item border">\n        <h2 class="payProcess-block-title" translate="frontend.typescripts.finish.invoice_opening_information"><\/h2>\n        <a ui-sref="Choose"\n           class="link-text-grey">\n            <div class="payProcess-link-row payProcess-item-row-white round receiver">\n                <div ng-switch\n                     on="PayFinishCtrl.PayProcessData.MemberInvoice.CarrierTypeDef">\n                    <div ng-switch-when="ER0027">\n                        <span translate="frontend.typescripts.finish.electronic_invoice_member_vehicle"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                        <p class="invoice-account">\n                            <span translate="frontend.typescripts.finish.there_is_a_member_accout_of_this_site"><\/span>\n                        <\/p>\n                    <\/div>\n                    <div ng-switch-when="3J0002">\n                        <span translate="frontend.typescripts.finish.electronic_invoice_mobile_barcode"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                        <p class="invoice-account">\n                            <span translate="frontend.typescripts.finish.mobile_phone_barcode"><\/span>\n                            <span data-ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.CarrierCode"><\/span>\n                        <\/p>\n                    <\/div>\n                    <div ng-switch-when="CQ0001">\n                        <span translate="frontend.typescripts.finish.electronic_invoice_natural_person_certificate"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                        <p class="invoice-account">\n                            <span translate="frontend.typescripts.finish.natural_person_certificate"><\/span>\n                            <span data-ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.CarrierCode"><\/span>\n                        <\/p>\n                    <\/div>\n                    <div ng-switch-when="PublicWelfare">\n                        <span translate="frontend.typescripts.finish.donation_invoice"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                        <p class="invoice-account">\n                            <span translate="frontend.typescripts.finish.donate"><\/span>\n                            <span data-ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.PublicWelfareName"><\/span>\n                            <span translate="frontend.typescripts.finish.public_welfare_unit">\n                        <\/p>\n                    <\/div>\n                    <div ng-switch-when="BG0001">\n                        <span translate="frontend.typescripts.finish.electronic_invoice_pxmart"><\/span>\n                        <i class="fa fa-angle-right fa-lg"><\/i>\n                        <p class="invoice-account"><span translate="frontend.typescripts.finish.pxmart_card"><\/span><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/a>\n    <\/div>\n<\/div>\n<!-- 三聯式發票開立資訊 -->\n<div class="payProcess-block-lightgrey"\n     ng-show="PayFinishCtrl.PayProcessData.UseMemberInvoice && PayFinishCtrl.LocalizationConfig.Common.ShowInvoice">\n    <div class="payProcess-item border">\n        <h2 class="payProcess-block-title"\n            translate="frontend.typescripts.finish.triple_invoice_opening_information"><\/h2>\n        <div class="payProcess-item-invoice payProcess-item-row-white round-top">\n            <p class="payProcess-item-invoice__title"\n               translate="frontend.typescripts.finish.uniform_numbers">\n            <\/p>\n            <p class="payProcess-item-invoice__content"\n               ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.RegistrationNo">\n            <\/p>\n        <\/div>\n        <div class="payProcess-item-invoice payProcess-item-row-white">\n            <p class="payProcess-item-invoice__title"\n               translate="frontend.typescripts.finish.invoice">\n            <\/p>\n            <p class="payProcess-item-invoice__content"\n               ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.Title">\n            <\/p>\n        <\/div>\n        <div class="payProcess-item-invoice payProcess-item-row-white round-bottom"\n             ng-if="PayFinishCtrl.IsShowInvoiceEmail">\n            <p class="payProcess-item-invoice__title"\n               translate="frontend.typescripts.finish.invoice_received_email">\n            <\/p>\n            <p class="payProcess-item-invoice__content"\n               ng-bind="PayFinishCtrl.PayProcessData.MemberInvoice.Email">\n            <\/p>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- 訂單推薦人 -->\n<div class="payProcess-block-lightgrey" ng-if="PayFinishCtrl.IsEnabledOrderReferee">\n    <div class="payProcess-item border">\n        <h2 class="payProcess-block-title"\n            ng-if="PayFinishCtrl.OrderRefereeTitle"\n            ng-bind="PayFinishCtrl.OrderRefereeTitle"><\/h2>\n        <a ng-click="PayFinishCtrl.OpenChooseOrderRefereePickup()">\n            <div class="payProcess-link-row payProcess-item-row-white receiver round order-referee link-text-grey">\n                <div ng-if="!PayFinishCtrl.OrderReferee.Name">\n                    <span translate="frontend.typescripts.finish.option_referrer"><\/span>\n                    <i class="fa fa-angle-right fa-lg"><\/i>\n                <\/div>\n                <div ng-if="PayFinishCtrl.OrderReferee.Name">\n                    <span ng-bind="PayFinishCtrl.OrderReferee.Name"><\/span>\n                    <i class="fa fa-angle-right fa-lg"><\/i>\n                <\/div>\n                <p class="order-referee__address"\n                   ng-if="PayFinishCtrl.OrderReferee.Address"\n                   ng-bind="PayFinishCtrl.OrderReferee.Address"><\/p>\n            <\/div>\n        <\/a>\n    <\/div>\n<\/div>\n<!-- 未結帳商品 -->\n<div class="payProcess-block-lightgrey"\n     ng-if="PayFinishCtrl.IsShowShoppingCartItem">\n    <div class="payProcess-item border">\n        <h2 class="payProcess-block-title">\n            <!--購物車裡還有這些商品-->\n            <span translate="frontend.typescripts.finish.shopping"><\/span>\n        <\/h2>\n        <ul class="shoppingCart-item-list">\n            <li class="shoppingCart-item"\n                ng-repeat="item in PayFinishCtrl.ShoppingCartItemData">\n                <a ng-href="#"\n                   ng-click="PayFinishCtrl.goToShoppingCart()">\n                    <img class="shoppingCart-img"\n                         ng-src="{{ item.PicUrl }}" />\n                <\/a>\n                <span class="content-item-price cms-moneyColor">{{ item.Price | currency}}<\/span>\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n<!-- 回購物車 -->\n<div class="payProcess-block-lightgrey"\n     ng-show="PayFinishCtrl.IsShowContinueShop">\n    <div class="payProcess-item border">\n        <a href="javascript:void(0)"\n           class="btn-default btn-red btn-round btn-large cms-primaryBtnTextColor cms-primaryBtnBgColor"\n           ng-click="PayFinishCtrl.goToShoppingCart()">\n            <!--前往結帳-->\n            <span translate="frontend.typescripts.finish.checkout"><\/span>\n        <\/a>\n    <\/div>\n<\/div>\n<!-- 功能選單 -->\n<div class="payProcess-block-lightgrey">\n    <div class="payProcess-item border">\n        <a ng-show="PayFinishCtrl.IsShowGoIndex && !PayFinishCtrl.IsShowContinueShop"\n           ng-click="PayFinishCtrl.goToIndex()"\n           class="link-text-grey">\n            <div class="payProcess-link-row payProcess-item-row-white receiver round-top">\n                <span>\n                    <!--回首頁-->\n                    <span translate="frontend.typescripts.finish.return_home_page"><\/span>\n                <\/span>\n                <i class="fa fa-angle-right fa-lg"><\/i>\n            <\/div>\n        <\/a>\n        <a href="/V2/TradesOrder/TradesOrderList?shopId={{ PayFinishCtrl.PayProcessData.ShoppingCartV2.ShopId }}"\n           id="payFinishToTradesOrderList"\n           class="link-text-grey"\n           data-ng-if="PayFinishCtrl.PayProcessData.ShoppingCartV2.ShopId > 0">\n            <div class="payProcess-link-row payProcess-item-row-white receiver">\n                <span>\n                    <!--訂單查詢-->\n                    <span translate="frontend.typescripts.finish.order_search"><\/span>\n                <\/span>\n                <i class="fa fa-angle-right fa-lg"><\/i>\n            <\/div>\n        <\/a>\n\n        <a class="link-text-grey"\n           ng-if="PayFinishCtrl.IsShowQuestionInsert"\n           ng-href="/Question/QuestionInsert/0?sId={{ PayFinishCtrl.PayProcessData.ShoppingCartV2.ShopId }}&oData={{ PayFinishCtrl.PayProcessData.TradesOrderGroup.TradesOrderGroup_Code }}">\n            <div class="payProcess-link-row payProcess-item-row-white receiver round-bottom">\n                <span>\n                    <!--聯絡本店客服-->\n                    <span translate="frontend.typescripts.finish.contact_customer_service"><\/span>\n                <\/span>\n                <i class="fa fa-angle-right fa-lg"><\/i>\n            <\/div>\n        <\/a>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcess/inventoryShortageDialog.template.html",'<div class="modal-body">\n    <div class="modal-title">\n        {{ Title }}\n    <\/div>\n    <div class="modal-message-block">\n        <span class="modal-message"\n              ng-repeat="salePageName in Model.SalePageList | limitTo:2">\n            <span ng-bind="salePageName"><\/span><br/>\n        <\/span>\n        <span translate="frontend.typescripts.pay.landing.inventory_shortage_message"\n              translate-value-val0="{{Model.SalePageList.length}}"><\/span>\n    <\/div>\n    <div class="function">\n        <button ng-click="DialogCustomizeCtrl.Ok()"\n                class="button full cms-primaryBtnTextColor cms-primaryBtnBgColor">\n            <span translate="frontend.typescripts.pay.landing.checkout_again"><\/span>\n        <\/button>\n    <\/div>\n<\/div>\n\n');n.put("/V2/TypeScripts/Modules/PayProcess/invoiceList.html",'<div class="payProcess-block payProcess-block-lightgrey location-list">\n    <div class="payProcess-item border">\n        <div class="payProcess-item-row payProcess-item-row-white round"\n             ng-show="MemberInvoiceListCtrl.MemberInvoiceList.length === 0">\n            <div class="empty">\n                <img src="/V2/Content/Images/Icon/listnull.png">\n                <br/>\n                <span class="location-item-text" translate="frontend.typescripts.pay_process.invoice_list.no_common_tax_id_number"><\/span>\n            <\/div>\n        <\/div>\n        <div class="payProcess-item-row payProcess-item-row-white location-item"\n             ng-repeat="MemberInvoice in MemberInvoiceListCtrl.MemberInvoiceList"\n             ng-click="MemberInvoiceListCtrl.SelectMemberInvoice(MemberInvoice)"\n             ng-class="{ \'round-top\': $first,\'round-bottom\':$last}">\n            <i class="icon" ng-class="{ \'icon-check-selected\' : MemberInvoiceListCtrl.IsMemberSelected(MemberInvoice),\n            \'icon-circle\' : !MemberInvoiceListCtrl.IsMemberSelected(MemberInvoice)}"><\/i>\n            <div class="location-info">\n                <div>\n                    <span class="location-info-text" ng-bind="MemberInvoice.Title"><\/span>\n                    <span class="location-info-text" ng-bind="MemberInvoice.RegistrationNo"><\/span>\n                <\/div>\n                <div class="function">\n                    <button class="button"\n                            ng-click="$event.stopPropagation();MemberInvoiceListCtrl.EditMemberInvoice(MemberInvoice)">\n                        <span translate="frontend.typescripts.common.edit"><\/span>\n                    <\/button>\n                    <button class="button"\n                            ng-click="$event.stopPropagation();MemberInvoiceListCtrl.RemoveMemberInvoice($index, MemberInvoice.Id)">\n                        <span translate="frontend.typescripts.common.delete"><\/span>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="two-button-area">\n            <button class="button" ui-sref="Index.PayAdvanced"><span translate="frontend.typescripts.common.previous_page"><\/span><\/button>\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor" ng-click="$event.stopPropagation();MemberInvoiceListCtrl.AddMemberInvoice()">\n                <span translate="frontend.typescripts.pay_process.invoice_list.add_tax_id_number"><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/locationList.html",'<div class="payProcess-block payProcess-block-lightgrey location-list">\n    <div class="payProcess-item border">\n        <div class="payProcess-item-row payProcess-item-row-white round"\n             ng-show="MemberLocationListCtrl.MemberLocationList.length === 0">\n            <div class="empty">\n                <img src="/V2/Content/Images/Icon/listnull.png">\n                <br/>\n                <span class="location-item-text" translate="frontend.typescripts.pay_process.location_list.no_common_recipient"><\/span>\n            <\/div>\n        <\/div>\n        <div class="payProcess-item-row payProcess-item-row-white location-item"\n             ng-repeat="MemberLocation in MemberLocationListCtrl.MemberLocationList"\n             ng-click="MemberLocationListCtrl.SelectMemberLocation(MemberLocation)"\n             ng-class="{ \'round-top\': $first,\'round-bottom\':$last}">\n            <i class="icon" data-ng-class="{ \'icon-check-selected\' : MemberLocationListCtrl.IsMemberSelected(MemberLocation),\n            \'icon-circle\': !MemberLocationListCtrl.IsMemberSelected(MemberLocation)}"><\/i>\n            <div class="location-info">\n                <div>\n                    <span class="location-info-text" ng-bind="MemberLocation.FullName"><\/span>\n                    <span class="location-info-text" ng-bind="MemberLocation.CellPhone"><\/span><br/>\n                <\/div>\n                <div>\n                    <span class="address"\n                          ng-bind="MemberLocation.City + MemberLocation.District + MemberLocation.AddressDetail"><\/span>\n                <\/div>\n                <div class="function">\n                    <button class="button"\n                            ng-click="$event.stopPropagation();MemberLocationListCtrl.EditMemberLocation(MemberLocation)">\n                        <span translate="frontend.typescripts.common.edit"><\/span>\n                    <\/button>\n                    <button class="button"\n                            ng-click="$event.stopPropagation();MemberLocationListCtrl.RemoveMemberLocation($index, MemberLocation.Id)">\n                        <span translate="frontend.typescripts.common.delete"><\/span>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="two-button-area">\n            <button class="button" ui-sref="Index.PayAdvanced"><span translate="frontend.typescripts.common.previous_page"><\/span><\/button>\n            <button class="button btn-red cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    ng-click="$event.stopPropagation();MemberLocationListCtrl.AddMemberLocation()"><span translate="frontend.typescripts.pay_process.location_list.add_receiver"><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/noPickupDates.template.html",'<div class="modal-body">\n    <div class="modal-title"\n         translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_modal_title">\n    <\/div>\n    <div class="modal-message-block">\n        <p class="px-0"\n           translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_modal_desc">\n        <\/p>\n        <div class="modal-items">\n            <section class="modal-items__section"\n                     ng-repeat="temperature in Model">\n                <p class="modal-temperature">\n                    <span class="modal-temperature__name"\n                          translate="{{ temperature.Name }}">\n                    <\/span>\n                    <span class="modal-temperature__warning pl-1">\n                        <i class="icon-editor icon-editor-icon_common_alert"><\/i>\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_modal_notes"><\/span>\n                    <\/span>\n                <\/p>\n                <div class="modal-salepage"\n                     ng-repeat="item in temperature.ItemList">\n                    <p class="modal-salepage__title"\n                       ng-bind="item.Title"><\/p>\n                    <p class="modal-period modal-period__title"\n                       translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_modal_period">\n                    <\/p>\n                    <p class="modal-period modal-period__dates"\n                       translate="{{ item.Desc }}">\n                    <\/p>\n                <\/div>\n            <\/section>\n        <\/div>\n        <button class="modal-btn"\n                translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_modal_btn"\n                ng-click="DialogCustomizeCtrl.Ok()">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcess/orderDetail.html",'<div ng-controller="OrderDetailController as OrderDetailCtrl">\n    <!-- 訂單標題 -->\n    <div class="order-header">\n        <div class="submit-remind">\n            <div class="order-currency-prompt">\n                <span ng-class="{ \'tooltip tooltip-bottom\': !OrderDetailCtrl.DeviceValue.IsMobile() }"\n                      translate-attr="{\'data-toolTipData\':\'frontend.typescripts.shopping_cart.prompt_content_20190718\'}"\n                      translate-values="{val0:OrderDetailCtrl.SalesCurrency}"\n                      ng-click="OrderDetailCtrl.OpenCurrencyPrompt()">\n                    <span translate="frontend.typescripts.shopping_cart.pay_currency_20190718"\n                          translate-value-val0="{{OrderDetailCtrl.SalesCurrency}}"><\/span>\n                    <i class="fa fa-question-circle-o"><\/i>\n                <\/span>\n            <\/div>\n        <\/div>\n        <div class="order-title" ng-click="OrderDetailCtrl.ShowOrder=!OrderDetailCtrl.ShowOrder">\n            <!-- 共X項商品，總計 -->\n            <span ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount > 0"\n                  translate="frontend.typescripts.order_detail.total_amount"\n                  translate-value-val0="{{OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount}}"><\/span>\n            <!-- 總計 -->\n            <span ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount === 0"\n                  translate="frontend.typescripts.shopping_cart.total"><\/span>\n            <span class="order-text price-red cms-moneyColor"\n                  id="topTotalPayment"\n                  ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.TotalPayment | currency"><\/span>\n        <\/div>\n        <div class="order-toggle" ng-click="OrderDetailCtrl.ShowOrder=!OrderDetailCtrl.ShowOrder" ng-cloak>\n            <span class="order-text price-red"\n                  ng-show="OrderDetailCtrl.SalesCurrency !== OrderDetailCtrl.CurrencyCode">\n                (<span translate="frontend.typescripts.order_detail.about"\n                       translate-value-val0="{{(OrderDetailCtrl.PayProcessData.ShoppingCartV2.TotalPayment | preferredCurrency)}}"><\/span>)\n            <\/span>\n            &nbsp;\n            <i ng-class="{\n               \'arrow-up\' : OrderDetailCtrl.ShowOrder,\n               \'arrow-down\': !OrderDetailCtrl.ShowOrder\n               }"><\/i>\n        <\/div>\n    <\/div>\n    <!-- 訂單內容 -->\n    <div class="payProcess-block-lightgrey"\n         ng-show="OrderDetailCtrl.ShowOrder">\n        <div ng-repeat="SalePageGroup in OrderDetailCtrl.SalePageGroupList">\n            <ul>\n                <!-- 商品 -->\n                <li class="order-detail-item"\n                    data-ng-repeat="SalePage in SalePageGroup.SalePageList">\n                    <div class="order-detail-left">\n                        <img class="salePage-img"\n                             ng-src="{{ SalePage.PicUrl }}" />\n                    <\/div>\n                    <div class="order-detail-right">\n                        <p class="salePage-title"\n                           name="order-detail-item-title"\n                           ng-bind="SalePage.Title">\n                        <\/p>\n                        <p class="salePage-desc"\n                           ng-bind="SalePage.SKUPropertyDisplay">\n                        <\/p>\n                        <div class="salePage-qty">\n                            <span translate="frontend.typescripts.order_detail.qty"><\/span>\n                            <span id="{{\'salePageQty_\' + ($index + 1)}}"\n                                  ng-bind="SalePage.Qty">\n                                0\n                            <\/span>\n                        <\/div>\n                        <div ng-if="!SalePage.IsPointsPayPair"\n                             class="salePage-currency"\n                             id="{{\'salePagePrice_\' + ($index + 1)}}"\n                             ng-bind="SalePage.Price | currency">\n                        <\/div>\n                        <div ng-if="SalePage.IsPointsPayPair"\n                             class="salePage-currency">\n                            <!-- 純點數 -->\n                            <div ng-if="SalePage.PointsPayPair.OriginPairsPrice === 0"\n                                 translate="frontend.typescripts.common.pointpay_point"\n                                 translate-value-val0="{{ SalePage.PointsPayPair.OriginPairsPoints }}">\n                            <\/div>\n                            <!-- 點加金 -->\n                            <div ng-if="SalePage.PointsPayPair.OriginPairsPoints > 0 && SalePage.PointsPayPair.OriginPairsPrice > 0">\n                                <span translate="frontend.typescripts.common.pointpay_point"\n                                      translate-value-val0="{{ SalePage.PointsPayPair.OriginPairsPoints }}"><\/span><span>＋<\/span><span ng-bind="SalePage.PointsPayPair.OriginPairsPrice | currency"><\/span>\n                            <\/div>\n                        <\/div>\n                        <div class="order-detail-bottom"\n                             ng-if="SalePage.SalePageGiftList.length > 0">\n                            <!--買就送贈品清單-->\n                            <div class="detail-gift-title">\n                                <span class="detail-gift-icon"><\/span>\n                                <span translate="frontend.typescripts.order_detail.gift"><\/span>\n                            <\/div>\n                            <ul>\n                                <li ng-repeat="giftItem in SalePage.SalePageGiftList | orderBy:\'-SalePageId\'"\n                                    class="detail-gift-row">\n                                    <div ng-class="{true: \'detail-gift-outStock\',false: \'detail-gift-inStock\'}[giftItem.SellingQty <= 0]">\n                                        <span ng-show="giftItem.SellingQty <= 0 "\n                                              translate="frontend.typescripts.order_detail.has_been_given"><\/span>\n                                        <span data-ng-bind="giftItem.Title"><\/span>\n                                    <\/div>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <!--滿額贈贈品區-->\n        <ul ng-if="OrderDetailCtrl.AllFreeGiftSalePageList.length !== 0 ">\n            <li class="order-detail-item"\n                ng-repeat="SalePage in OrderDetailCtrl.AllFreeGiftSalePageList">\n                <div class="order-detail-left">\n                    <img class="salePage-img"\n                         ng-src="{{ SalePage.PicUrl }}" />\n                <\/div>\n                <div class="order-detail-right">\n                    <p class="salePage-title"\n                       ng-bind="SalePage.Title">\n                    <\/p>\n                    <p class="salePage-free-gift"\n                       translate="frontend.typescripts.order_detail.full_gift">\n                    <\/p>\n                <\/div>\n            <\/li>\n        <\/ul>\n        <!-- 贈品券商品列表 -->\n        <div ng-repeat="SalePageGiftECouponGroup in OrderDetailCtrl.SalePageGiftECouponGroupList">\n            <ul>\n                <li class="order-detail-item"\n                    data-ng-repeat="SalePage in SalePageGiftECouponGroup.SalePageList">\n                    <div class="order-detail-left">\n                        <img class="salePage-img"\n                             ng-src="{{ SalePage.PicUrl }}" />\n                    <\/div>\n                    <div class="order-detail-right">\n                        <p class="salePage-title"\n                           name="order-detail-item-title"\n                           ng-bind="SalePage.Title">\n                        <\/p>\n                        <div class="salePage-qty">\n                            <span translate="frontend.typescripts.order_detail.qty"><\/span><span ng-bind="SalePage.Qty"><\/span>\n                        <\/div>\n                        <div class="salePage-gift-coupon"\n                             translate="frontend.typescripts.order_detail.gift_coupon_redemption">\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n        <ul class="detail-consumption">\n            <li class="detail-item">\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.commodity_subtotal">\n                <\/p>\n                <p class="detail-price"\n                   id="totalPrice"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.TotalPrice | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.MemberTierPromotionDiscount">\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.member_exclusive">\n                <\/p>\n                <p class="detail-price"\n                   id="memberTierPromotionDiscount"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.MemberTierPromotionDiscount | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="OrderDetailCtrl.PromotionDiscount">\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.promotion_discount_amount">\n                <\/p>\n                <p class="detail-price"\n                   id="NormalPromotionDiscountPrice"\n                   ng-bind="OrderDetailCtrl.PromotionDiscount | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                data-ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.SelectedECouponSlaveId">\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.discount_coupon">\n                <\/p>\n                <p class="detail-price"\n                   id="eCouponDiscount"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.ECouponDiscount | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint && (OrderDetailCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint.IsUsing || OrderDetailCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint.TotalPointsPay.TotalDiscount)">\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.point_discount_amount">\n                <\/p>\n                <p class="detail-price"\n                   id="LoyaltyPointDiscountPrice"\n                   ng-bind="OrderDetailCtrl.GetPointDiscountPrice(OrderDetailCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint)">\n                <\/p>\n            <\/li>\n            <li class="detail-item">\n                <!--免/運費-->\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.shipping">\n                <\/p>\n                <p class="detail-price"\n                   id="fee">\n                    <span ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2"\n                          ng-bind="OrderDetailCtrl.Fee > 0 ? (OrderDetailCtrl.Fee | currency) : (\'frontend.typescripts.order_detail.free_shipping\' | translate)"><\/span>\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2 && OrderDetailCtrl.Fee > 0 && OrderDetailCtrl.PayProcessData.ShoppingCartV2.ShopShippingTypePromotionDiscount < 0">\n                <!--運費活動折扣-->\n                <p class="detail-title"\n                   translate="frontend.typescripts.order_detail.shipping_fee_promotion_discount">\n                <\/p>\n                <p class="detail-price"\n                   id="shopShippingTypePromotionDiscount"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.ShopShippingTypePromotionDiscount | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.FreeShippingECouponDiscount !== 0">\n                <!-- 運費券折扣 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon_discount"><\/p>\n                <p class="detail-price"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.FreeShippingECouponDiscount | currency"><\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.DesignatePaymentPromotionDiscountForDisplay !== 0">\n                <!-- 指定信用卡折扣 -->\n                <p class="detail-title"\n                   translate="frontend.typescripts.shopping_cart.designated_credit_card_discount"><\/p>\n                <p class="detail-price"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.DesignatePaymentPromotionDiscountForDisplay | currency"><\/p>\n            <\/li>\n            <li class="detail-item">\n                <p class="detail-title">\n                    <span class="tier-member"\n                          ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.HasCrmShopContract"\n                          ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.CrmMemberTier.CrmShopMemberCardName">\n                    <\/span>\n                    <!--共X項商品，總計-->\n                    <span id="bottomSalePageCount"\n                          ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount > 0"\n                          translate="frontend.typescripts.order_detail.total_amount"\n                          translate-value-val0="{{OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount}}">\n                    <\/span>\n                    <!--總計-->\n                    <span ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.SalePageCount === 0"\n                          translate="frontend.typescripts.shopping_cart.total">\n                    <\/span>\n                <\/p>\n                <p class="detail-price detail-price__total price-red cms-moneyColor"\n                   id="bottomTotalPayment"\n                   ng-bind="OrderDetailCtrl.PayProcessData.ShoppingCartV2.TotalPayment | currency">\n                <\/p>\n            <\/li>\n            <li class="detail-item"\n                ng-if="OrderDetailCtrl.PayProcessData.ShoppingCartV2.LoyaltyPoint">\n                <p class="detail-item__flex-1">\n                    <span translate="frontend.typescripts.order_detail.total_points"><\/span>\n                    <span class="price-red"\n                          translate="frontend.typescripts.common.pointpay_point"\n                          translate-value-val0="{{ OrderDetailCtrl.PointsUsage | nsAbs | number }}">\n                    <\/span>\n                <\/p>\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcess/payAdvanced.html",'<!-- 訂單明細 -->\n<div class="order-block" ng-include="\'/V2/TypeScripts/Modules/PayProcess/orderDetail.html\'">\n<\/div>\n<!-- 分期資料 -->\n<div class="payProcess-block payProcess-block-lightgrey"\n     ng-show="PayAdvancedCtrl.ShowInstallmentField">\n    <div class="payProcess-block-title installment"\n         ng-click="PayAdvancedCtrl.ShowInstallmentBank=!PayAdvancedCtrl.ShowInstallmentBank">\n        <span data-ng-bind-html="PayAdvancedCtrl.GetInstallmentInfo(PayAdvancedCtrl.InstallmentData)" translate-cloak><\/span>\n        <i ng-class="{\n           \'arrow-up\' : PayAdvancedCtrl.ShowInstallmentBank,\n           \'arrow-down\' : !PayAdvancedCtrl.ShowInstallmentBank\n           }"><\/i>\n    <\/div>\n    <div class="payProcess-item bankselect" ng-show="PayAdvancedCtrl.ShowInstallmentBank">\n        <span ng-repeat="bank in PayAdvancedCtrl.InstallmentData.BankList">\n            <span ng-bind="bank"><\/span>\n            <span ng-if="!$last">、<\/span>\n        <\/span>\n    <\/div>\n<\/div>\n\n<!--超商選店-->\n<form name="MemberStoreForm" novalidate>\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-class="{\'height-block\':!PayAdvancedCtrl.ShowCreditCardField && PayAdvancedCtrl.PayProcessData.PayProfileType <= 2}"\n         data-ng-if="PayAdvancedCtrl.ShowShopField">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title required-star" translate="frontend.typescripts.pay_process.pay_advanced.picker_info"><\/h2>\n            <!--姓名-->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.name"><\/label>\n                <!-- 門市自取收件人 -->\n                <input type="text"\n                       class="text"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.convenience_store_pickup_name_placeholder\' }"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       id="memberStoreReceiverFullName"\n                       name="fullname"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.LocationPickup"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       maxlength="5"\n                       required\n                       ns-only-chinese />\n                <!-- 非門市自取(超商取貨)收件人，開放輸入2~40個中英文字 -->\n                <input type="text" class="text"\n                       translate-attr="{ placeholder: PayAdvancedCtrl.GetPlaceholderForStorePickup() }"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       id="memberStoreReceiverFullName"\n                       name="fullname"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType !== PayAdvancedCtrl.ShippingProfileTypeDefEnum.LocationPickup"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"\n                       minlength="2"\n                       maxlength="40"\n                       required\n                       ns-continuous-chinese-or-english />\n                <p ng-show="MemberStoreForm.fullname.$error.required && PayAdvancedCtrl.Submitted" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/p>\n                <p ng-show="MemberStoreForm.fullname.$error.onlyChinese && MemberStoreForm.fullname.$dirty" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_name_warning_min_length"><\/span><\/p>\n                <p ng-show="MemberStoreForm.fullname.$error.maxlength" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_name_warning_max_length"><\/span><\/p>\n                <p ng-show="(MemberStoreForm.fullname.$error.pattern || MemberStoreForm.fullname.$error.minlength || MemberStoreForm.fullname.$error.continuousChineseOrEnglish) && MemberStoreForm.fullname.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span><\/p>\n            <\/div>\n            <!-- 手機號碼 - 無國碼 (Cart1 選擇本國時顯示)-->\n            <div class="payProcess-item-row payProcess-item-row-white" ng-if="!PayAdvancedCtrl.IsAbroadStorePickup">\n                <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.mobile_number"><\/label>\n                <input type="tel"\n                       class="text"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                       name="cellphone"\n                       id="memberStoreReceiverCellPhone"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                       required\n                       maxlength="10"\n                       ns-only-cellphone />\n                <p ng-show="MemberStoreForm.cellphone.$error.required && PayAdvancedCtrl.Submitted" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_required"><\/span><\/p>\n                <p ng-show="MemberStoreForm.cellphone.$error.onlyCellphone && MemberStoreForm.cellphone.$dirty" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_wrong_format"><\/span><\/p>\n            <\/div>\n            <!-- 手機號碼 - 有國碼 (Cart1 選擇國外時顯示) -->\n            <div class="address-block address-block__global" ng-if="PayAdvancedCtrl.IsAbroadStorePickup">\n                <div class="item-row">\n                    <div class="choose-place split"\n                         data-ng-class="{\'error\': MemberStoreForm.CellPhone.$invalid && MemberStoreForm.CellPhone.$dirty}">\n                        <select class="option option__global"\n                                id="option"\n                                name="option"\n                                ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                        <\/select>\n                    <\/div>\n                    <div class="choose-place">\n                        <input type="tel"\n                               class="address-text address-text__global full-width"\n                               id="receiverCellPhone"\n                               name="CellPhone"\n                               translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                               maxlength="15"\n                               ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                               data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                               ng-required="true"\n                               ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                               ns-only-number />\n                        <p ng-show="MemberStoreForm.CellPhone.$error.required && MemberStoreForm.CellPhone.$dirty"\n                           class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span><\/p>\n                        <p ng-show="MemberStoreForm.CellPhone.$error.pattern && MemberStoreForm.CellPhone.$dirty"\n                           class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!--萊爾富超取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'HiLife\'|| PayAdvancedCtrl.DeliveryType === \'HiLifePickup\'">\n                <!-- 選擇取貨超商 -->\n                <div class="payProcess-item-row payProcess-item-row-white choose-store round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseHiLifeStore()">\n                    <i class="hiLife-icon"><\/i>\n                    <span class="choose-store-text"\n                          id="storeNameForHiLife"\n                          translate="{{ PayAdvancedCtrl.PayProcessData.Receiver.StoreName || \'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\' }}">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/span><\/p>\n                <\/div>\n            <\/div>\n            <!--7-11超取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'SevenEleven\'|| PayAdvancedCtrl.DeliveryType === \'SevenElevenPickup\'">\n                <div class="payProcess-item-row payProcess-item-row-white choose-store  round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseSevenElevenStore()">\n                    <i class="sevenEleven-icon"><\/i>\n                    <span class="choose-store-text"\n                          id="storeNameForSevenEleven"\n                          ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.StoreName||(\'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\'|translate)">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <!--商店地址-->\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/span><\/p>\n                <\/div>\n            <\/div>\n            <!--7-11快速超取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'SevenElevenTCatPickup\'">\n                <div class="payProcess-item-row payProcess-item-row-white choose-store  round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseSevenElevenTCatPickupStore()">\n                    <i class="sevenEleven-icon"><\/i>\n                    <span class="choose-store-text"\n                          id="storeNameForSevenEleven"\n                          ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.StoreName||(\'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\'|translate)">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <!--商店地址-->\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/span><\/p>\n                <\/div>\n            <\/div>\n            <!--全家超取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'Family\'|| PayAdvancedCtrl.DeliveryType === \'FamilyPickup\'">\n                <!-- 選擇取貨超商 -->\n                <div class="payProcess-item-row payProcess-item-row-white choose-store round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseFamilyStore()">\n                    <i class="familyMart-icon"><\/i>\n                    <span class="choose-store-text"\n                          id="storeNameForFamilyMart"\n                          translate="{{ PayAdvancedCtrl.PayProcessData.Receiver.StoreName || \'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\' }}">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <!-- 有溫層商品時顯示 -->\n                    <span class="check-temperature" ng-show="PayAdvancedCtrl.ShowTemperatureInfo" translate="frontend.typescripts.pay_process.pay_advanced.check_now"><\/span>\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/span><\/p>\n                <\/div>\n            <\/div>\n            <!-- 有溫層商品時顯示 -->\n            <p class="payProcess-temperature-note" ng-show="PayAdvancedCtrl.ShowTemperatureInfo"><span translate="frontend.typescripts.pay_process.pay_advanced.temperature_info"><\/span><\/p>\n            <!--門市自取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'LocationPickup\'">\n                <div class="payProcess-item-row payProcess-item-row-white choose-store round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseLocationPickup()">\n                    <span class="choose-store-text"\n                          id="storeNameForLocationPickup">\n                        <i class="icon icon-location"><\/i>\n                        <span translate="{{ PayAdvancedCtrl.PayProcessData.Receiver.StoreName || \'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\' }}">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                        <\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/p>\n                <\/div>\n            <\/div>\n            <!--門市購自取-->\n            <div ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStorePickup">\n                <div class="payProcess-item-row payProcess-item-row-white choose-store choose-store__disabled round-bottom">\n                    <span class="choose-store-text">\n                        <i class="icon icon-location"><\/i>\n                        <span translate="{{ PayAdvancedCtrl.PayProcessData.Receiver.StoreName || \'frontend.typescripts.pay_process.pay_advanced.store_name\' }}">\n                        <\/span>\n                    <\/span>\n                    <p class="store-address"\n                       ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail">\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n\n<!-- 收件人資訊 -->\n<form name="MemberLocationForm" novalidate id="receiver" >\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-class="{\'height-block\':!PayAdvancedCtrl.ShowCreditCardField && PayAdvancedCtrl.PayProcessData.PayProfileType <= 2}"\n         data-ng-if="PayAdvancedCtrl.ShowReceiverField && !PayAdvancedCtrl.CanOverseaShipping">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.receiver_info"><\/h2>\n            <!-- 有收件人資訊 -->\n            <a data-ng-click="PayAdvancedCtrl.GoToMemberLocationList()"\n               class="link-text-blue block-right block-top"\n               data-ns-ga-event-track\n               data-track-category="資料填寫"\n               data-track-action="click"\n               data-track-label="常用收件人"\n               ng-hide="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.common_recipient"><\/span>\n            <\/a>\n            <!-- 填寫收件人資訊 -->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.receiver_name"><\/label>\n                <!-- 非宅配收件人 -->\n                <input type="text"\n                       class="text"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder\' }"\n                       id="receiverFullName"\n                       name="FullName"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-if="(PayAdvancedCtrl.PayProcessData.ShippingProfileType !== PayAdvancedCtrl.ShippingProfileTypeDefEnum.Home) &&\n                        (PayAdvancedCtrl.PayProcessData.ShippingProfileType !== PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery)"\n                       required\n                       maxlength="5"\n                       ns-only-chinese/>\n                <!-- 宅配收件人，開放輸入2~40個中英文字 -->\n                <input type="text"\n                       class="text"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\' }"\n                       id="receiverFullName"\n                       name="FullName"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-if="(PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.Home) ||\n                        (PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery)"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"\n                       required\n                       minlength="2"\n                       maxlength="40"\n                       ns-continuous-chinese-or-english/>\n                <p ng-show="MemberLocationForm.FullName.$error.required && PayAdvancedCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.onlyChinese && MemberLocationForm.FullName.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_min_length"><\/span><\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.maxlength"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_max_length"><\/span><\/p>\n                <p ng-show="(MemberLocationForm.FullName.$error.pattern || MemberLocationForm.FullName.$error.minlength || MemberLocationForm.FullName.$error.continuousChineseOrEnglish) && MemberLocationForm.FullName.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span><\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white"\n                 ng-class="{ \'round-bottom\': PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery }">\n                <label class="info-title"\n                       translate="frontend.typescripts.pay_process.pay_advanced.mobile_number">\n                <\/label>\n                <input type="tel" class="text"\n                       id="receiverCellPhone"\n                       name="CellPhone"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                       maxlength="10"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                       required\n                       ns-only-cellphone/>\n                <p ng-show="MemberLocationForm.CellPhone.$error.required && PayAdvancedCtrl.Submitted"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.CellPhone.$error.onlyCellphone && MemberLocationForm.CellPhone.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span><\/p>\n            <\/div>\n            <!-- 外送地址 -->\n            <h2 class="payProcess-block-title pt-lg required-star"\n                ng-show="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery"\n                translate="frontend.typescripts.pay_process.pay_advanced.delivery_address">\n            <\/h2>\n            <!-- 地址 -->\n            <div ns-address\n                 ns-city="PayAdvancedCtrl.PayProcessData.Receiver.City"\n                 ns-district="PayAdvancedCtrl.PayProcessData.Receiver.District"\n                 ns-zipcode="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                 ns-addressdetail="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                 ns-addressdetail-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                 ns-is-addressdetail-changed="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail"\n                 ns-have-outer-island="false"\n                 ns-submitted="PayAdvancedCtrl.Submitted"\n                 ns-use-shipping-area="true"\n                 ns-shipping-area-id="PayAdvancedCtrl.SelectedShippingAreaId"\n                 ns-city-list="PayAdvancedCtrl.CityList"\n                 ns-shop-id="PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId"\n                 ns-is-alone="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery"\n                 ns-is-show-user-memo="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.RetailStoreDelivery"\n                 ns-user-memo="PayAdvancedCtrl.PayProcessData.UserMemo">\n            <\/div>\n            <!-- 全球地址 -->\n            <!--<div ns-global-address\n                 ns-country-alias-code="{{PayAdvancedCtrl.DefaultCountry}}"\n                 ns-shipping-area-id="PayAdvancedCtrl.SelectedShippingAreaId"\n                 ns-selected-state="PayAdvancedCtrl.PayProcessData.Receiver.State"\n                 ns-selected-city="PayAdvancedCtrl.PayProcessData.Receiver.City"\n                 ns-selected-district="PayAdvancedCtrl.PayProcessData.Receiver.District"\n                 ns-selected-postcode="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                 ns-selected-address="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                 ns-is-round-top="false"\n                 ns-is-round-bottom="true">\n            <\/div>-->\n            <div class="btn-center"\n                 data-ng-show="!PayAdvancedCtrl.ShowCreditCardField && (PayAdvancedCtrl.PayProcessData.PayProfileType === 1 || PayAdvancedCtrl.PayProcessData.PayProfileType === 2)">\n                <a href="javascript:void(0)" class="fill-finish-btn"  data-ng-click="PayAdvancedCtrl.CheckFillCreditCard()"\n                   data-ng-class="{true:\'blue\',false:\'grey\'}[MemberLocationForm.$valid]">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_info_complete"><\/span>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 海外配送收件人資訊 -->\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-class="{\'height-block\':!PayAdvancedCtrl.ShowCreditCardField && PayAdvancedCtrl.PayProcessData.PayProfileType <= 2}"\n         data-ng-if="PayAdvancedCtrl.ShowReceiverField && PayAdvancedCtrl.CanOverseaShipping">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.receiver_info"><\/h2>\n            <!-- 填寫收件人資訊 -->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.receiver_name"><\/label>\n                <input type="text"\n                       class="text text__global"\n                       translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\' }"\n                       id="receiverFullName"\n                       name="FullName"\n                       maxlength="40"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-required="true"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"/>\n                <p ng-show="MemberLocationForm.FullName.$error.required && MemberLocationForm.FullName.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.pattern && MemberLocationForm.FullName.$dirty"\n                   class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.oversea_name_warning_format_error"><\/span><\/p>\n            <\/div>\n            <!-- 電話 -->\n            <div class="address-block address-block__global">\n                <div class="item-row">\n                    <div class="choose-place split"\n                         data-ng-class="{\'error\': MemberLocationForm.CellPhone.$invalid && MemberLocationForm.CellPhone.$dirty}">\n                        <select class="option option__global"\n                                id="option"\n                                name="option"\n                                ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                        <\/select>\n                    <\/div>\n                    <div class="choose-place">\n                        <input type="tel"\n                               class="address-text address-text__global full-width"\n                               id="receiverCellPhone"\n                               name="CellPhone"\n                               translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                               maxlength="15"\n                               ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                               data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                               ng-required="true"\n                               ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                               ns-only-number/>\n                        <p ng-show="MemberLocationForm.CellPhone.$error.required && MemberLocationForm.CellPhone.$dirty"\n                           class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span><\/p>\n                        <p ng-show="MemberLocationForm.CellPhone.$error.pattern && MemberLocationForm.CellPhone.$dirty"\n                           class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 全球地址 -->\n            <div ns-global-address\n                 ns-shipping-area="PayAdvancedCtrl.SelectedShippingArea"\n                 ns-country-name="{{PayAdvancedCtrl.PayProcessData.Receiver.Country}}"\n                 ns-selected-state="PayAdvancedCtrl.PayProcessData.Receiver.State"\n                 ns-selected-city="PayAdvancedCtrl.PayProcessData.Receiver.City"\n                 ns-selected-district="PayAdvancedCtrl.PayProcessData.Receiver.District"\n                 ns-selected-postcode="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                 ns-selected-address="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                 ns-selected-address-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                 ns-is-selected-address-changed="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail" \n                 ns-is-round-top="false"\n                 ns-is-round-bottom="true"\n                 ns-on-address-data-error="PayAdvancedCtrl.OnGlobalAddressDataError()">\n            <\/div>\n            <div class="payProcess-item-row info-text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_info"><\/span>\n            <\/div>\n            <div class="btn-center"\n                 data-ng-show="!PayAdvancedCtrl.ShowCreditCardField && (PayAdvancedCtrl.PayProcessData.PayProfileType === 1 || PayAdvancedCtrl.PayProcessData.PayProfileType === 2)">\n                <a href="javascript:void(0)" class="fill-finish-btn"  data-ng-click="PayAdvancedCtrl.CheckFillCreditCard()"\n                   data-ng-class="{true:\'blue\',false:\'grey\'}[MemberLocationForm.$valid]">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_info_complete"><\/span>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n\n<!-- 儲存為常用收件資訊 -->\n<div class="payProcess-item checkbox-row" ng-if="PayAdvancedCtrl.Market === \'PX\' && PayAdvancedCtrl.ShowReceiverField">\n    <div class="checkbox-text">\n        <input \n            type="checkbox" \n            id="IsSaveAsFrequentlyUsedReceiver" \n            ng-model="PayAdvancedCtrl.PayProcessData.Receiver.IsSaveAsFrequentlyUsedReceiver" />\n        <label \n            class="checkbox-label" \n            for="IsSaveAsFrequentlyUsedReceiver" \n            translate="frontend.typescripts.pay_process.pay_advanced.save_location_info"><\/label>\n    <\/div>\n<\/div>\n\n<!--信用卡付款時，與信用卡同時出現-->\n<div class="appear-region" data-ng-show="PayAdvancedCtrl.ShowCreditCardField || PayAdvancedCtrl.PayProcessData.PayProfileType > 2">\n    <!-- 指定到貨日 -->\n    <form name="SelectPickupDateForm"\n          class="pickup-dates"\n          novalidate>\n        <div class="payProcess-block-lightgrey"\n             ng-if="PayAdvancedCtrl.BookingPickupDateDataList.length > 0">\n            <div class="payProcess-item">\n                <section class="pt-lg"\n                    ng-if="!PayAdvancedCtrl.IsRetailStore">\n                    <h2 class="payProcess-block-title required-star"\n                        translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_title">\n                    <\/h2>\n                    <p class="payProcess-block__subtitle mb-sm">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_subtitle"><\/span>\n                        <span class="tooltip tooltip-top"\n                              translate-attr="{ \'data-tooltipdata\': \'frontend.typescripts.pay_process.pay_advanced.pickup_date_tooltip\' }">\n                            <i class="fa fa-info-circle light-icon"><\/i>\n                        <\/span>\n                    <\/p>\n                    <p class="payProcess-block__desc mb-sm"\n                       translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_desc">\n                    <\/p>\n                    <p class="info-text multi-line"\n                         translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_notes">\n                    <\/p>\n                    <div class="mt-md"\n                        ng-repeat="item in PayAdvancedCtrl.BookingPickupDateDataList | limitTo: PayAdvancedCtrl.MaxPickupDateCount"> \n                        <h3 class="payProcess-block__subtitle mb-sm"\n                            ng-hide="PayAdvancedCtrl.IsRetailStore"\n                            translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_temperature_title"\n                            translate-values="{\n                                val0: \'{{ PayAdvancedCtrl.GetTemperatureDisplayName(item.TemperatureTypeDef) | translate }}\'\n                            }">\n                        <\/h3>\n                        <div class="payProcess-item-row payProcess-item-row-white round"\n                            ng-class="{ \'round-top\': PayAdvancedCtrl.PickupPeriods[item.TemperatureTypeDef].Periods.length > 0 }">\n                            <ns-datepicker\n                                ns-selected-date="PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate"\n                                ns-min-date="item.BookingPickupDateData.BookingPickupStartDate"\n                                ns-max-date="item.BookingPickupDateData.BookingPickupEndDate"\n                                ns-disabled-dates="PayAdvancedCtrl.PickupExcludeDateInfo[item.TemperatureTypeDef].ExcludeDates"\n                                ns-disabled-weekdays="PayAdvancedCtrl.PickupExcludeDateInfo[item.TemperatureTypeDef].ExcludeWeekdays"\n                                ns-placeholder="frontend.typescripts.pay_process.pay_advanced.please_select_date"\n                                ns-submitted="PayAdvancedCtrl.Submitted"\n                                ns-required="true"\n                                css-class-title="info-title"\n                                css-class-input="text"\n                                css-class-validation="interror">\n                            <\/ns-datepicker>\n                        <\/div>\n                        <div class="payProcess-item-row payProcess-item-row-white round-bottom"\n                            ng-if="PayAdvancedCtrl.PickupPeriods[item.TemperatureTypeDef].Periods.length > 0">\n                            <div>\n                                <span class="info-title"\n                                    translate="frontend.typescripts.pay_process.pay_advanced.pickup_period">\n                                <\/span>\n                                <div class="payProcess-item-row--with-suffix">\n                                    <select\n                                        class="option pickup-period__option"\n                                        name="SelectedBookingPickupPeriod"\n                                        required\n                                        ng-model="PayAdvancedCtrl.ViewBookingPickupData[item.TemperatureTypeDef].SelectedBookingPickupPeriod"\n                                        ng-options="option as option.PeriodDesc for option in PayAdvancedCtrl.GetFilterPeriods(\n                                            item.TemperatureTypeDef,\n                                            PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate\n                                        )">\n                                        <option\n                                            value=""\n                                            translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_placeholder">\n                                        <\/option>\n                                    <\/select>\n                                    <i class="icon-editor icon-editor-lg icon-editor-icon_common_down_fulltiny"><\/i>\n                                <\/div>\n                            <\/div>\n                            <p class="interror"\n                                ng-show="PayAdvancedCtrl.GetFilterPeriods(item.TemperatureTypeDef, PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate).length === 0"\n                                translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_warning_exceeded">\n                            <\/p>\n                            <p class="interror"\n                                ng-show="SelectPickupDateForm.SelectedBookingPickupPeriod.$error.required && PayAdvancedCtrl.Submitted"\n                                translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_warning_required">\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/section>\n                <!-- 小時達送達提示文案 -->\n                <section class="pickup-arrive-desc"\n                    ng-if="PayAdvancedCtrl.IsRetailStore"\n                    ng-repeat="item in PayAdvancedCtrl.BookingPickupDateDataList | limitTo: PayAdvancedCtrl.MaxPickupDateCount">\n                    <span class="pickup-arrive-desc__icon">\n                        <i class="icon icon-exclamation"><\/i>\n                    <\/span>\n                    <div>\n                        <p class="pickup-arrive-desc__title"\n                            translate="frontend.typescripts.pay_process.pay_advanced.retail_store_delivery_time"\n                            translate-value-val0="{{PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate | date}}">\n                        <\/p>\n                    <\/div>\n                <\/section>\n            <\/div>\n            <div class="payProcess-item"\n                 ng-if="PayAdvancedCtrl.IsRetailStore">\n                <h2 class="payProcess-block-title required-star">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.out_of_stock_title"><\/span>\n                    <a href="javaScript:void(0)"\n                       ng-click="PayAdvancedCtrl.ShowOutOfStockHint()">\n                        <i class="fa fa-question-circle light-icon"><\/i>\n                    <\/a>\n                <\/h2>\n                <div class="payProcess-item-row payProcess-item-row__selector payProcess-item-row-white round-top mt-md"\n                     ng-click="PayAdvancedCtrl.PayProcessData.OutOfStockTypeDef = \'PartialCancelOrder\'">\n                    <span class="payProcess-item__radio"\n                          ng-class="{ \'payProcess-item__radio--selected\': PayAdvancedCtrl.PayProcessData.OutOfStockTypeDef === \'PartialCancelOrder\' }">\n                    <\/span>\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.out_of_stock_option_partial_cancel"><\/span>\n                <\/div>\n                <div class="payProcess-item-row payProcess-item-row__selector payProcess-item-row-white round-bottom"\n                     ng-click="PayAdvancedCtrl.PayProcessData.OutOfStockTypeDef = \'CancelOrder\'">\n                    <span class="payProcess-item__radio"\n                          ng-class="{ \'payProcess-item__radio--selected\': PayAdvancedCtrl.PayProcessData.OutOfStockTypeDef === \'CancelOrder\' }">\n                    <\/span>\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.out_of_stock_option_cancel"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/form>\n    <!--信用卡區塊-->\n    <form name="CreditCardInfoForm" novalidate>\n        <div class="appear-region payProcess-block payProcess-block-lightgrey" id="creditcard" data-ng-if="PayAdvancedCtrl.ShowCreditCardField">\n            <!-- 輸入信用卡 -->\n            <div class="payProcess-item"\n                 ng-if="PayAdvancedCtrl.PayProcessData.CreditCardGatewayType === PayAdvancedCtrl.CreditCardGatewayTypeEnum.NCCC">\n                <div ns-credit-card\n                     ns-credit-card-no="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo"\n                     ns-credit-card-date="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardDate"\n                     ns-credit-card-cvv="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardCVV"\n                     ns-focus-default="PayAdvancedCtrl.DefaultFocusCreditCard"\n                     ns-on-credit-card-no-finish="PayAdvancedCtrl.CheckCreditCard(PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo)"\n                     ns-submitted="PayAdvancedCtrl.Submitted"\n                     ns-credit-info-valid="PayAdvancedCtrl.CreditInfoValid"\n                     ns-has-credit-card="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                     ns-edit-credit-card="PayAdvancedCtrl.$scope.Model.IsEditCreditCard"\n                     ns-reset-card="PayAdvancedCtrl.IsResetCard"\n                     ns-designate-payment-promotion-hint="PayAdvancedCtrl.DesignatePaymentPromotionHint"\n                     ns-support-cart-type="PayAdvancedCtrl.SupportCreditCartType"><\/div>\n            <\/div>\n            <!-- TapPay-->\n            <div class="payProcess-item"\n                 ng-if="PayAdvancedCtrl.PayProcessData.CreditCardGatewayType === PayAdvancedCtrl.CreditCardGatewayTypeEnum.TapPay">\n                <ns-tap-pay-credit-card\n                        ns-on-get-prime-success="PayAdvancedCtrl.SetTapPayPrime(primeResult)"\n                        ns-on-get-ccv-success="PayAdvancedCtrl.SetTapPayCcv(ccv)"\n                        ns-on-error="PayAdvancedCtrl.OnTapPayError(error)"\n                        ns-get-prime-trigger-name="TryGetTapPayPrime"\n                        ns-prime-promise="PayAdvancedCtrl.TapPayPrimePromise"\n                        ns-remember-credit-card-info="PayAdvancedCtrl.PayProcessData.TapPayCardInfo"\n                        ns-reset-flag="PayAdvancedCtrl.TapPayResetFlag"\n                        ns-ccv-reset-flag="PayAdvancedCtrl.TapPayCCVResetFlag"\n                        ns-has-credit-card="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                        ns-submitted="PayAdvancedCtrl.Submitted"\n                        ns-field-validation="PayAdvancedCtrl.TapPayFieldValidation"\n                        ns-designate-payment-promotion-hint="PayAdvancedCtrl.DesignatePaymentPromotionHint"><\/ns-tap-pay-credit-card>\n            <\/div>\n            <!-- Nine1Payment -->\n            <div class="payProcess-item"\n                ng-if="PayAdvancedCtrl.PayProcessData.CreditCardGatewayType === PayAdvancedCtrl.CreditCardGatewayTypeEnum.Nine1Payment">\n                <ns-nine1-payment-credit-card\n                    ns-on-get-prime-success="PayAdvancedCtrl.SetNine1PaymentPrime(primeResult)"\n                    ns-on-get-ccv-success="PayAdvancedCtrl.SetNine1PaymentCcv(ccvResult)"\n                    ns-on-error="PayAdvancedCtrl.OnTapPayError(error)"\n                    ns-get-prime-trigger-name="TryGetTapPayPrime"\n                    ns-prime-promise="PayAdvancedCtrl.TapPayPrimePromise"\n                    ns-remember-credit-card-info="PayAdvancedCtrl.PayProcessData.PaymentInfo.CreditCardInfo"\n                    ns-reset-flag="PayAdvancedCtrl.TapPayResetFlag"\n                    ns-ccv-reset-flag="PayAdvancedCtrl.TapPayCCVResetFlag"\n                    ns-has-credit-card="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                    ns-submitted="PayAdvancedCtrl.Submitted"\n                    ns-field-validation="PayAdvancedCtrl.TapPayFieldValidation"\n                    ns-designate-payment-promotion-hint="PayAdvancedCtrl.DesignatePaymentPromotionHint"><\/ns-nine1-payment-credit-card>\n            <\/div>\n            <!-- 是否記住卡號-->\n            <div class="payProcess-item checkbox-row"\n                 ng-if="PayAdvancedCtrl.EnabledRememberCreditCardNo">\n                <div class="checkbox-text"\n                     data-ng-show="!PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                     ng-click="PayAdvancedCtrl.PayProcessData.RememberCreditCardNo=!PayAdvancedCtrl.PayProcessData.RememberCreditCardNo;">\n                    <input type="checkbox" name="RememberCreditCardNo"\n                           data-ng-model="PayAdvancedCtrl.PayProcessData.RememberCreditCardNo"\n                           ng-click="PayAdvancedCtrl.PayProcessData.RememberCreditCardNo=!PayAdvancedCtrl.PayProcessData.RememberCreditCardNo;"/>\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.remember_this_credit_card"><\/span>\n                <\/div>\n                <a href="javascript:void(0)" class="link-text-blue"\n                   data-ng-show="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                   data-ng-click="PayAdvancedCtrl.UseNewCreditCard()">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.use_other_credit_card"><\/span>\n                <\/a>\n            <\/div>\n            <!-- 定期購服務條款 -->\n            <div ng-include="\'/V2/TypeScripts/Modules/PayProcess/regularOrderPrivacy.template.html\'"><\/div>\n            <!--支援信用卡別提示-->\n            <div class="payProcess-item card-desc-row card-desc_text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.applicable_credit_card_desc"><\/span>\n                <i class="card-desc_img visa"><\/i>\n                <i class="card-desc_img master"><\/i>\n                <i class="card-desc_img jcb"><\/i>\n            <\/div>\n            <!-- 信用卡使用說明 -->\n            <div class="payProcess-item card-desc-row card-desc_text">\n                <span class="info-text-dark multi-line"\n                      translate="frontend.typescripts.component.ns_credit_card.card_info_msg">\n                <\/span>\n            <\/div>\n        <\/div>\n    <\/form>\n\n    <!-- 信用卡徵信區 -->\n<form name="CreditCheckInfoForm" novalidate>\n    <div class="appear-region payProcess-block payProcess-block-lightgrey"\n         ng-show="PayAdvancedCtrl.PayProcessData.IsNeedCreditCheck && PayAdvancedCtrl.ShowCreditCardField">\n        <div class="payProcess-item">\n            <div class="clearfix">\n                <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.cardholder_info"><\/h2>\n                <div class="check-info-text-group">\n                    <span class="info-text" translate="frontend.typescripts.pay_process.pay_advanced.cardholder_info_text"><\/span>\n                <\/div>\n                <div class="block-right">\n                    <input type="checkbox" name="SameAsReceiver" data-ng-model="PayAdvancedCtrl.CheckSameAsReceiver"\n                           class="vertical-align-middle"\n                           data-ng-change="PayAdvancedCtrl.ChangeCreditCheckInfo()"/>\n                    <span data-ng-click="PayAdvancedCtrl.CheckSameAsReceiver=!PayAdvancedCtrl.CheckSameAsReceiver;PayAdvancedCtrl.ChangeCreditCheckInfo()"\n                          class="info-text" translate="frontend.typescripts.pay_process.pay_advanced.info_as_above"><\/span>\n                <\/div>\n            <\/div>\n\n                <!--姓名-->\n                <div class="payProcess-item-row payProcess-item-row-white round-top">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.name"><\/label>\n                    <input type="text"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder\' }"\n                           name="FullName"\n                           ng-model="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.FullName"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           data-ng-change="PayAdvancedCtrl.handleCreditCheckFullnameChange()"\n                           required\n                           maxlength="8"\n                           ns-only-chinese/>\n                    <p ng-show="CreditCheckInfoForm.FullName.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.cardholder_name_warning_required"><\/span><\/p>\n                    <p ng-show="CreditCheckInfoForm.FullName.$error.onlyChinese && CreditCheckInfoForm.FullName.$dirty"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.cardholder_name_warning_min_length"><\/span><\/p>\n                <\/div>\n                <!--電話-->\n                <div class="payProcess-item-row payProcess-item-row-white">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.mobile_number"><\/label>\n                    <input type="tel"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                           name="CellPhone"\n                           ng-model="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.CellPhone"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           data-ng-change="PayAdvancedCtrl.handleCreditCheckCellPhoneChange()"\n                           required\n                           maxlength="10"\n                           ns-only-cellphone/>\n                    <p ng-show="CreditCheckInfoForm.CellPhone.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span><\/p>\n                    <p ng-show="CreditCheckInfoForm.CellPhone.$error.onlyCellphone && CreditCheckInfoForm.CellPhone.$dirty"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span><\/p>\n                <\/div>\n                <!--生日-->\n                <div ns-date-selector\n                     ns-date="PayAdvancedCtrl.BirthDayDate"\n                     ns-title="\'frontend.typescripts.pay_process.pay_advanced.birthday\' | translate"\n                     ns-is-required="true"\n                     ns-is-readonly="false"\n                     ns-is-use-default="false"\n                     ns-is-global-date="true"\n                     ns-submitted="PayAdvancedCtrl.Submitted">\n                <\/div>\n                <!--身分證字號-->\n                <div class="payProcess-item-row payProcess-item-row-white round-bottom">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.identity_card_number"><\/label>\n                    <input type="text"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.correct_identity_card_number\' }"\n                           ng-model="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.IdentifyNo"\n                           name="IdentifyNo"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ns-capitalize\n                           ns-only-identity-no\n                           maxlength="10"\n                           required/>\n                    <p ng-show="CreditCheckInfoForm.IdentifyNo.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.identity_card_number_warning_required"><\/span><\/p>\n                    <p ng-show="CreditCheckInfoForm.IdentifyNo.$error.onlyIdentityNo && CreditCheckInfoForm.IdentifyNo.$dirty"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.indentity_card_number_warning_format_error"><\/span><\/p>\n                <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 信用卡徵信區 地址 -->\n    <div class="appear-region payProcess-block payProcess-block-lightgrey"\n         ng-show="PayAdvancedCtrl.PayProcessData.IsNeedCreditCheck && PayAdvancedCtrl.ShowCreditCardField">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.credit_card_billing_address"><\/h2>\n            <div class="check-info-text-group">\n                <span class="info-text" translate="frontend.typescripts.pay_process.pay_advanced.credit_card_billing_address_info_text"><\/span>\n            <\/div>\n            <!-- 地址 -->\n            <div data-ng-if="PayAdvancedCtrl.PayProcessData.IsNeedCreditCheck"\n                 class="round-top"\n                 ns-address\n                 ns-city="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.City"\n                 ns-district="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.District"\n                 ns-zipcode="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.ZipCode"\n                 ns-addressdetail="PayAdvancedCtrl.PayProcessData.CreditCheckInfo.AddressDetail"\n                 ns-addressdetail-change="PayAdvancedCtrl.handleCreditCheckAddressDetailChange()"\n                 ns-is-addressdetail-changed="PayAdvancedCtrl.maskedInfoChangedStatus.creditCheckAddressDetail"\n                 ns-is-required="true"\n                 ns-submitted="PayAdvancedCtrl.Submitted"\n                 ns-address-placeholder="{{\'frontend.typescripts.pay_process.pay_advanced.credit_card_billing_address_placeholder\' | translate}}"\n                 ns-is-alone="true">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n    <!-- Email輸入-->\n    <div class="payProcess-block payProcess-block-lightgrey">\n        <div class="payProcess-item">\n            <h2 data-ng-class="{\'required-star\':PayAdvancedCtrl.PayProcessData.IsEmailRequired}" class="payProcess-block-title" translate="frontend.typescripts.pay_process.pay_advanced.email"><\/h2>\n            <form name="EmailForm" novalidate>\n                <div class="payProcess-item-row payProcess-item-row-white round">\n                    <input type="email"\n                           class="text full-width"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.email_placeholder\' }"\n                           id="receiverEmailForWeb"\n                           name="Email"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Email"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           data-ng-change="PayAdvancedCtrl.handleEmailChange()"\n                           data-ng-required="PayAdvancedCtrl.PayProcessData.IsEmailRequired"\n                           ns-only-email/>\n                    <p ng-show="EmailForm.Email.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_required"><\/span><\/p>\n                    <p ng-show="EmailForm.Email.$error.onlyEmail && EmailForm.Email.$dirty" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_format_error"><\/span><\/p>\n                <\/div>\n            <\/form>\n            <div class="payProcess-item-row info-text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.email_info"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 備註 -->\n    <div class="payProcess-block payProcess-block-lightgrey" ng-show="PayAdvancedCtrl.PayProcessData.IsTradesOrderMemo && !PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n        <div class="payProcess-item border">\n            <h2 class="payProcess-block-title" translate="frontend.typescripts.pay_process.pay_advanced.note"><\/h2>\n            <form name="UserMemoForm" novalidate>\n                <textarea class="memo"\n                          ng-model="PayAdvancedCtrl.PayProcessData.UserMemo"\n                          translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.note_placeholder\' }"\n                          rows="10"\n                          maxlength="500">\n                <\/textarea>\n            <\/form>\n        <\/div>\n    <\/div>\n\n    <!--訂購備註-->\n    <div class="payProcess-block payProcess-block-lightgrey" ng-show="PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n        <div class="payProcess-item border">\n            <h2 class="payProcess-block-title required-star" translate="frontend.typescripts.pay_process.pay_advanced.note"><\/h2>\n            <form name="TradesOrderSlaveMemoForm" novalidate>\n                <textarea class="memo"\n                          name="TradesOrderSlaveMemo"\n                          required\n                          ng-model="PayAdvancedCtrl.PayProcessData.TradesOrderSlaveMemo"\n                          placeholder="{{PayAdvancedCtrl.PayProcessData.SalePageMemoPlaceholder}}"\n                          rows="10" maxlength="500"><\/textarea>\n                <p ng-show="TradesOrderSlaveMemoForm.TradesOrderSlaveMemo.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.note_warning_required"><\/span><\/p>\n            <\/form>\n        <\/div>\n    <\/div>\n\n    <!--發票統編-->\n    <div class="payProcess-block payProcess-block-lightgrey">\n        <!-- 發票要打統編-->\n        <div class="payProcess-item checkbox-row"\n             ng-show="PayAdvancedCtrl.PayProcessData.IsShowCarrierTypeDefPickUI && \n                      PayAdvancedCtrl.PayProcessData.ShoppingCartV2.TotalPayment > 0">\n            <div class="checkbox-text"\n                 ng-click="PayAdvancedCtrl.PayProcessData.UseMemberInvoice=!PayAdvancedCtrl.PayProcessData.UseMemberInvoice">\n                <input type="checkbox" name="UseMemberInvoice"\n                       data-ng-model="PayAdvancedCtrl.PayProcessData.UseMemberInvoice"\n                       ng-click="PayAdvancedCtrl.PayProcessData.UseMemberInvoice=!PayAdvancedCtrl.PayProcessData.UseMemberInvoice"/>\n                <span translate="frontend.typescripts.pay_process.pay_advanced.invoice_with_tax_id_number"><\/span>\n            <\/div>\n        <\/div>\n        <!-- 三聯式發票輸入 -->\n        <div id="invoice" class="payProcess-item" ng-show="PayAdvancedCtrl.PayProcessData.UseMemberInvoice">\n            <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_info"><\/h2>\n            <!-- 有統一編號資訊 -->\n            <a data-ng-click="PayAdvancedCtrl.SaveMaskedInfoStatus()" ui-sref="Index.Invoice.List" class="link-text-blue block-right block-top">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.commonly_used_tax_id_number"><\/span>\n            <\/a>\n            <!-- 輸入統一編號資訊 -->\n            <form name="MemberInvoiceForm" novalidate>\n                <div class="payProcess-item-row payProcess-item-row-white round-top">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number"><\/label>\n                    <input type="tel"\n                           class="text invoice-text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.tax_id_number_placeholder\' }"\n                           name="RegistrationNo"\n                           ng-model="PayAdvancedCtrl.PayProcessData.MemberInvoice.RegistrationNo"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           required\n                           maxlength="8"\n                           ns-only-invoiceno/>\n                    <p ng-show="MemberInvoiceForm.RegistrationNo.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_warning_required"><\/span><\/p>\n                    <p ng-show="MemberInvoiceForm.RegistrationNo.$error.onlyInvoiceno && MemberInvoiceForm.RegistrationNo.$dirty"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_warning_format_error"><\/span><\/p>\n                <\/div>\n                <div class="payProcess-item-row payProcess-item-row-white">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.invoice_header"><\/label>\n                    <input type="text"\n                           class="text invoice-text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.invoice_header_placeholder\' }"\n                           name="Title"\n                           ng-model="PayAdvancedCtrl.PayProcessData.MemberInvoice.Title"\n                           ng-model-options="{updateOn: \'blur\'}"/>\n                <\/div>\n                <div class="payProcess-item-row payProcess-item-row-white" ng-if="PayAdvancedCtrl.PayProcessData.IsShowInvoiceEmail">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.invoice_received_email"><\/label>\n                    <input type="email"\n                           class="text invoice-text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.tax_id_number_email_placeholder\' }"\n                           name="Email"\n                           ng-model="PayAdvancedCtrl.PayProcessData.MemberInvoice.Email"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           data-ng-change="PayAdvancedCtrl.handleInvoiceEmailChange()"\n                           data-ng-required="true"\n                           ns-only-email/>\n                    <p ng-show="MemberInvoiceForm.Email.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_required"><\/span><\/p>\n                    <p ng-show="MemberInvoiceForm.Email.$error.onlyEmail && MemberInvoiceForm.Email.$dirty" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_format_error"><\/span><\/p>\n                <\/div>\n            <\/form>\n            <div class="payProcess-item-row info-text" ng-if="PayAdvancedCtrl.PayProcessData.IsShowInvoiceEmail">\n                <p class="multi-line"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_info_text"><\/span><\/p>\n                <p class="multi-line"><span translate="frontend.typescripts.pay_process.pay_advanced.tax_id_number_remind"><\/span><\/p>\n            <\/div>\n        <\/div>\n        <!-- 自訂購買須知 -->\n        <div\n            class="payProcess-block payProcess-block-lightgrey"\n            ng-if="PayAdvancedCtrl.PurchaseNotesEntity.EnablePurchaseNotes"\n        >\n            <div class="payProcess-item border">\n                <h2\n                    class="payProcess-block-title"\n                    ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Title"\n                ><\/h2>\n                <pre\n                    class="payProcess-statement"\n                    ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Content"\n                ><\/pre>\n            <\/div>\n        <\/div>\n        <!-- 海外配送權益聲明 -->\n        <div class="payProcess-block payProcess-block-lightgrey" data-ng-if="PayAdvancedCtrl.CanOverseaShipping">\n            <div class="payProcess-item border">\n                <h2 class="payProcess-block-title"\n                    translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_title"><\/h2>\n                <pre class="payProcess-statement" data-ng-bind="PayAdvancedCtrl.OverseasStatement"><\/pre>\n            <\/div>\n            <div class="payProcess-item checkbox-row">\n                <div class="checkbox-text" ng-click="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree=!PayAdvancedCtrl.IsOverseasShippingPrivacyAgree">\n                    <input type="checkbox" name="agreeOverseasShippingPrivacy"\n                           data-ng-model="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree"\n                           ng-click="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree=!PayAdvancedCtrl.IsOverseasShippingPrivacyAgree" />\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_checkbox"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n        <!-- 優惠訊息 -->\n        <div class="payProcess-item checkbox-row">\n            <div class="checkbox-text"\n                 ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM">\n                <input type="checkbox" name="IsEnableEDM" data-ng-model="PayAdvancedCtrl.PayProcessData.IsEnableEDM"\n                       ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM" />\n                <span translate="frontend.typescripts.pay_process.pay_advanced.request_edm"><\/span>\n            <\/div>\n        <\/div>\n        <!-- 會員權益條款與隱私權聲明 -->\n        <div class="payProcess-item checkbox-row">\n            <div class="checkbox-text" ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree">\n                <input type="checkbox" name="agreePrivacy" class="checkbox-area"\n                       data-ng-model="PayAdvancedCtrl.IsPrivacyAgree"\n                       ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree" />\n                <span class="text-content">\n                    <span\n                        translate="frontend.typescripts.pay_process.pay_advanced.agree_policy"\n                        translate-value-val0="\n                            <a \n                                data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                                ng-href=\'/V2/MyAccount/VipMemberBenefits?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                                class=\'link-text\'\n                                translate=\'frontend.typescripts.pay_process.pay_advanced.membership_terms\'\n                            ><\/a>"\n                        translate-value-val1="\n                            <a\n                                data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                                ng-href=\'/MyAccount/Privacy?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                                class=\'link-text\'\n                                translate=\'frontend.typescripts.pay_process.pay_advanced.privacy_policy\'\n                            ><\/a>"\n                        translate-compile \n                    ><\/span>\n                <\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 送出資料 -->\n    <div class="payProcess-block-lightgrey button-area"\n         data-ng-if="!PayAdvancedCtrl.IsThirdPartyPayment"\n    >\n        <a href="javascript:void(0)" class="btn-grey btn-medium btn-submit clear-float"\n           data-ng-if="!PayAdvancedCtrl.CanOrderBeSubmitted && !PayAdvancedCtrl.IsSendBtnDisabled">\n            <span ng-show="PayAdvancedCtrl.SalesCurrency === PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span ng-show="PayAdvancedCtrl.SalesCurrency !== PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit_currency"\n                  translate-value-val0="{{PayAdvancedCtrl.SalesCurrency}}"><\/span>\n        <\/a>\n        <a href="javascript:void(0)" class="btn-red btn-medium btn-submit clear-float cms-primaryBtnTextColor cms-primaryBtnBgColor"\n           data-ng-if="PayAdvancedCtrl.CanOrderBeSubmitted && !PayAdvancedCtrl.IsSendBtnDisabled"\n           ng-click="PayAdvancedCtrl.HandleSubmitOrder()">\n            <span ng-show="PayAdvancedCtrl.SalesCurrency === PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span ng-show="PayAdvancedCtrl.SalesCurrency !== PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit_currency"\n                  translate-value-val0="{{PayAdvancedCtrl.SalesCurrency}}"><\/span>\n        <\/a>\n        <!-- disabled 按鈕-->\n        <a ng-if="PayAdvancedCtrl.IsSendBtnDisabled"\n           class="btn-medium btn-submit btn-disable clear-float"\n           translate="frontend.typescripts.pay_process.pay_advanced.btn_disable_text"\n        ><\/a>\n        <div ng-if="PayAdvancedCtrl.DisplayCreditCardWarningMessage()"\n             translate="frontend.typescripts.pay_process.pay_advanced.credit_card_warning_message"\n             class="warning-message"><\/div>\n    <\/div>\n\n    <!-- third party payment submit button -->\n    <div class="payProcess-block-lightgrey button-area"\n         data-ng-if="PayAdvancedCtrl.IsThirdPartyPayment"\n    >\n        <div \n            data-ng-class="{\n                \'apple-pay-btn\': PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.ApplePay,\n                \'google-pay-btn\': PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.GooglePay,\n                \'btn-red btn-medium btn-submit clear-float cms-primaryBtnTextColor cms-primaryBtnBgColor\': PayAdvancedCtrl.IsThirdPartyNoneTemperatureSubmitBtn()\n            }"\n            data-ng-if="!PayAdvancedCtrl.ShowTemperatureInfo && !PayAdvancedCtrl.IsSendBtnDisabled"\n            data-ng-click="PayAdvancedCtrl.HandleSubmitOrder()"\n            data-ng-switch="PayAdvancedCtrl.PayProfileTypeDefEnum[PayAdvancedCtrl.PayProcessData.PayProfileType]"\n        >\n            <img data-ng-switch-when="ApplePay"\n                 src="/V2/Content/images/apple_pay_mark.png" alt="Apple pay" height="24">\n            <span data-ng-switch-when="EasyWallet"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span data-ng-switch-when="PoyaPay"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n        <\/div>\n        <div \n            data-ng-class="{\n                \'apple-pay-btn apple-pay-btn--disabled\': PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.ApplePay,\n                \'btn-grey btn-submit\': PayAdvancedCtrl.IsThirdPartyTemperatureSubmitBtn() \n            }"\n            data-ng-if="PayAdvancedCtrl.ShowTemperatureInfo && !PayAdvancedCtrl.IsSendBtnDisabled"\n            data-ng-switch="PayAdvancedCtrl.PayProfileTypeDefEnum[PayAdvancedCtrl.PayProcessData.PayProfileType]"\n        >\n            <img data-ng-switch-when="ApplePay"\n                 src="/V2/Content/images/apple_pay_mark.png" alt="Apple pay" height="24">\n            <span data-ng-switch-when="GooglePay"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span data-ng-switch-when="EasyWallet"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span data-ng-switch-when="PoyaPay"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n        <\/div>\n        <!-- disabled 按鈕-->\n        <a ng-if="PayAdvancedCtrl.IsSendBtnDisabled"\n           class="btn-medium btn-submit btn-disable clear-float"\n           translate="frontend.typescripts.pay_process.pay_advanced.btn_disable_text"\n        ><\/a>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcess/regularOrderPrivacy.template.html",'<div\n    class="payProcess-item checkbox-row"\n    ng-if="PayAdvancedCtrl.IsRegularOrder"\n>\n    <div class="checkbox-text">\n        <input\n            type="checkbox"\n            class="checkbox-area"\n            id="RegularOrderPolicyAgree"\n            ng-model="PayAdvancedCtrl.IsRegularOrderPrivacyAgree"\n        />\n        <label \n            class="text-content"\n            for="RegularOrderPolicyAgree"\n            translate="frontend.typescripts.pay_process.pay_advanced.regular_order_privacy_label"\n            translate-value-val0="\n                <a\n                    href=\'javascript:void(0)\'\n                    class=\'link-text\'\n                    translate=\'frontend.typescripts.pay_process.pay_advanced.regular_order_privacy_text\'\n                    ng-click=\'PayAdvancedCtrl.RegularOrderUtility.OpenRegularOrderPrivacyDialog()\'\n                ><\/a>"\n            translate-compile\n        ><\/label>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcessGlobal/payAdvancedHK.html",'<!-- 訂單明細 -->\n<div class="order-block" ng-include="\'/V2/TypeScripts/Modules/PayProcess/orderDetail.html\'"><\/div>\n\n<!--選店-->\n<form name="MemberStoreForm" novalidate>\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-class="{\'height-block\':!PayAdvancedCtrl.ShowCreditCardField && PayAdvancedCtrl.PayProcessData.PayProfileType <= 2}"\n         data-ng-if="PayAdvancedCtrl.ShowShopField">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title required-star"\n                translate="frontend.typescripts.pay_process.pay_advanced.picker_info"><\/h2>\n            <!--姓名-->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.name"><\/label>\n                <!-- 門市自取收件人 -->\n                <input type="text" class="text"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\'}"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       id="memberStoreReceiverFullName"\n                       name="fullname"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.LocationPickup"\n                       minlength="2"\n                       maxlength="40"\n                       required\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"\n                       ns-continuous-chinese-or-english/>\n\n                <!-- 非門市自取(超商取貨)收件人，開放輸入2~40個中英文字 -->\n                <input type="text" class="text"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\'}"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       id="memberStoreReceiverFullName"\n                       name="fullname"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType !== PayAdvancedCtrl.ShippingProfileTypeDefEnum.LocationPickup"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"\n                       minlength="2"\n                       maxlength="40"\n                       required\n                       ns-continuous-chinese-or-english/>\n\n                <p ng-show="MemberStoreForm.fullname.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span>\n                <\/p>\n                <p ng-show="MemberStoreForm.fullname.$error.maxlength" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.picker_name_warning_max_length"><\/span>\n                <\/p>\n                <p ng-show="(MemberStoreForm.fullname.$error.pattern || MemberStoreForm.fullname.$error.minlength || MemberStoreForm.fullname.$error.continuousChineseOrEnglish) && MemberStoreForm.fullname.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span>\n                <\/p>\n            <\/div>\n            <!-- 手機號碼 - 無國碼 (Cart1 選擇本國時顯示)-->\n            <div class="payProcess-item-row payProcess-item-row-white" ng-if="!PayAdvancedCtrl.IsAbroadStorePickup">\n                <label class="info-title"\n                       translate="frontend.typescripts.pay_process.pay_advanced.mobile_number"><\/label>\n                <input type="tel" class="text"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\'}"\n                       name="cellphone"\n                       id="memberStoreReceiverCellPhone"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                       required\n                       ns-only-cellphone/>\n                <p ng-show="MemberStoreForm.cellphone.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_required"><\/span>\n                <\/p>\n                <p ng-show="MemberStoreForm.cellphone.$error.onlyCellphone && MemberStoreForm.cellphone.$dirty" class="interror">\n                   <span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_wrong_format"><\/span>\n                <\/p>\n            <\/div>\n            <!-- 手機號碼 - 有國碼 (Cart1 選擇國外時顯示) -->\n            <div class="address-block-global" ng-if="PayAdvancedCtrl.IsAbroadStorePickup">\n                <div class="item-row">\n                    <div class="choose-place split"\n                        ng-class="{\'error\': MemberStoreForm.CellPhone.$invalid && MemberStoreForm.CellPhone.$dirty}">\n                        <select class="option"\n                                id="option"\n                                name="option"\n                                ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                        <\/select>\n                    <\/div>\n                    <div class="choose-place">\n                        <input type="tel" class="text full-width"\n                                id="receiverCellPhone"\n                                name="CellPhone"\n                                translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_mobile_no_placeholder\'}"\n                                maxlength="15"\n                                ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                                data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                                ng-required="true"\n                                ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                                ns-only-number/>\n                        <p ng-show="MemberStoreForm.CellPhone.$error.required && MemberStoreForm.CellPhone.$dirty"\n                            class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span>\n                        <\/p>\n                        <p ng-show="MemberStoreForm.CellPhone.$error.pattern && MemberStoreForm.CellPhone.$dirty"\n                            class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 有溫層商品時顯示 -->\n            <p class="payProcess-temperature-note" ng-show="PayAdvancedCtrl.ShowTemperatureInfo">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.temperature_info"><\/span>\n            <\/p>\n            <!--店取選店 智能櫃/7-11/OK-->\n            <div id="choosePickupStore"\n                 class="payProcess-item-row payProcess-item-row-white store-pickup round-bottom"\n                 ng-show="PayAdvancedCtrl.DeliveryType === \'AlfredPickup\'||PayAdvancedCtrl.DeliveryType === \'SevenElevenPickup\'||PayAdvancedCtrl.DeliveryType === \'CircleKPickup\'"\n                 ng-click="PayAdvancedCtrl.ChoosePickupStore()">\n                <div class="store-block">\n                    <i ng-class="{ \'AlfredPickup\':\'alfredPickup-icon\',\'SevenElevenPickup\':\'sevenEleven-icon\',\'CircleKPickup\':\'circleKPickup-icon\' }[PayAdvancedCtrl.DeliveryType]"><\/i>\n                <\/div>\n                <div class="store-block select-store" ng-if="!PayAdvancedCtrl.PayProcessData.Receiver.StoreName">\n                    <div ng-if="PayAdvancedCtrl.DeliveryType === \'AlfredPickup\'" translate="frontend.typescripts.pay_process.pay_advanced.select_alfred_pickup_store"><\/div>\n                    <div ng-if="PayAdvancedCtrl.DeliveryType === \'SevenElevenPickup\'" translate="frontend.typescripts.pay_process.pay_advanced.select_seven_eleven_pickup_store"><\/div>\n                    <div ng-if="PayAdvancedCtrl.DeliveryType === \'CircleKPickup\'" translate="frontend.typescripts.pay_process.pay_advanced.select_ok_pickup_store"><\/div>\n                <\/div>\n                <!--已選擇商店地址＆店名-->\n                <div class="store-block"\n                     ng-if="PayAdvancedCtrl.PayProcessData.Receiver.StoreName">\n                    <p class="store-name">\n                        {{PayAdvancedCtrl.StoreDisplayName(PayAdvancedCtrl.PayProcessData.Receiver.DeliveryTypeDef)}}({{PayAdvancedCtrl.PayProcessData.Receiver.StoreId}})\n                    <\/p>\n                    <p class="store-address" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail">\n                    <\/p>\n                <\/div>\n                <div class="store-block store-arrow">\n                    <i class="arrow-right"><\/i>\n                <\/div>\n                <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/span>\n                <\/p>\n            <\/div>\n            <!--門市自取-->\n            <div ng-show="PayAdvancedCtrl.DeliveryType === \'LocationPickup\'">\n                <div class="payProcess-item-row payProcess-item-row-white choose-store round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseLocationPickup()">\n                    <span class="choose-store-text">\n                        <i class="icon icon-location"><\/i>\n                        <span ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.StoreName||(\'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\'|translate)">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                        <\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address"\n                       ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span\n                            translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n<!-- 收件人資訊 -->\n<form name="MemberLocationForm" novalidate id="receiver">\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-if="PayAdvancedCtrl.ShowReceiverField && !PayAdvancedCtrl.CanOverseaShipping">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title inline-block required-star"\n                translate="frontend.typescripts.pay_process.pay_advanced.receiver_info"><\/h2>\n            <!-- 有收件人資訊-->\n            <!-- 填寫收件人資訊 -->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <label class="info-title"\n                       translate="frontend.typescripts.pay_process.pay_advanced.receiver_name"><\/label>\n                <!--收件人姓名-->\n                <input type="text" class="text"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\'}"\n                       id="receiverFullName"\n                       name="FullName"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"\n                       required\n                       minlength="2"\n                       maxlength="40"\n                       ns-continuous-chinese-or-english/>\n                <p ng-show="MemberLocationForm.FullName.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span>\n                <\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.onlyChinese && MemberLocationForm.FullName.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_min_length"><\/span>\n                <\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.maxlength" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_max_length"><\/span>\n                <\/p>\n                <p ng-show="(MemberLocationForm.FullName.$error.pattern || MemberLocationForm.FullName.$error.minlength || MemberLocationForm.FullName.$error.continuousChineseOrEnglish) && MemberLocationForm.FullName.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span>\n                <\/p>\n            <\/div>\n            <div class="payProcess-item-row payProcess-item-row-white">\n                <label class="info-title"\n                       translate="frontend.typescripts.pay_process.pay_advanced.mobile_number"><\/label>\n                <input type="tel" class="text"\n                       id="receiverCellPhone"\n                       name="CellPhone"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\'}"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                       ng-model-options="{updateOn: \'blur\'}"\n                       data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                       required\n                       ns-only-cellphone/>\n                <p ng-show="MemberLocationForm.CellPhone.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span>\n                <\/p>\n                <p ng-show="MemberLocationForm.CellPhone.$error.onlyCellphone && MemberLocationForm.CellPhone.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                <\/p>\n            <\/div>\n            <!-- 地址 -->\n            <div ns-address-hk\n                 ns-city="PayAdvancedCtrl.PayProcessData.Receiver.City"\n                 ns-district="PayAdvancedCtrl.PayProcessData.Receiver.District"\n                 ns-address-detail="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                 ns-address-detail-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                 ns-is-address-detail-changed="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail"\n                 ns-is-required="true"\n                 ns-submitted="PayAdvancedCtrl.Submitted">\n            <\/div>\n            <div class="payProcess-item-row info-text sfexpress-desc">\n                <span class="align-center">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.sfexpress_delivery_desc1"><\/span>\n                    <a ng-click="PayAdvancedCtrl.gaEvents(\'sf_station\');PayAdvancedCtrl.RedirectSfExpressUrl(\'https://htm.sf-express.com/hk/tc/dynamic_function/S.F.Network/SF_store_address/\')"\n                       class="link-text-blue-underline"\n                       translate="frontend.typescripts.pay_process.pay_advanced.sfexpress_delivery_desc3">\n                    <\/a>\n                    <span>、<\/span>\n                    <a ng-click="PayAdvancedCtrl.gaEvents(\'sf_point\');PayAdvancedCtrl.RedirectSfExpressUrl(\'https://htm.sf-express.com/hk/tc/dynamic_function/S.F.Network/SF_business_station_address/\')"\n                       class="link-text-blue-underline"\n                       translate="frontend.typescripts.pay_process.pay_advanced.sfexpress_delivery_desc4">\n                    <\/a>\n                    <span>、<\/span>\n                    <a ng-click="PayAdvancedCtrl.gaEvents(\'sf_locker\');PayAdvancedCtrl.RedirectSfExpressUrl(\'https://htm.sf-express.com/hk/tc/dynamic_function/S.F.Network/SF_Locker/\')"\n                       class="link-text-blue-underline"\n                       translate="frontend.typescripts.pay_process.pay_advanced.sfexpress_delivery_desc5">\n                    <\/a>\n                    <span>、<\/span>\n                    <a ng-click="PayAdvancedCtrl.gaEvents(\'sf_service_partner_address\');PayAdvancedCtrl.RedirectSfExpressUrl(\'https://htm.sf-express.com/hk/tc/dynamic_function/S.F.Network/SF_service_partner_address/\')"\n                       class="link-text-blue-underline"\n                       translate="frontend.typescripts.pay_process.pay_advanced.sfexpress_delivery_desc6">\n                    <\/a>\n                <\/span>\n            <\/div>\n            <div class="btn-center"\n                 data-ng-show="!PayAdvancedCtrl.ShowCreditCardField &&\n                                (PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CreditCardOnce_Stripe ||\n                                PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CreditCardOnce_CheckoutDotCom)">\n                <a href="javascript:void(0)" class="fill-finish-btn"\n                   data-ng-click="PayAdvancedCtrl.CheckFillCreditCard()"\n                   data-ng-class="{true:\'blue\',false:\'grey\'}[MemberLocationForm.$valid]">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_info_complete"><\/span>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 海外配送收件人資訊 -->\n    <div class="payProcess-block payProcess-block-lightgrey"\n         data-ng-class="{\'height-block\':!PayAdvancedCtrl.ShowCreditCardField}"\n         data-ng-if="PayAdvancedCtrl.ShowReceiverField && PayAdvancedCtrl.CanOverseaShipping">\n        <div class="payProcess-item">\n            <h2 class="payProcess-block-title inline-block required-star"\n                translate="frontend.typescripts.pay_process.pay_advanced.receiver_info"><\/h2>\n            <!-- 填寫收件人資訊 -->\n            <div class="payProcess-item-row payProcess-item-row-white round-top">\n                <input type="text" class="text"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_name_placeholder\'}"\n                       id="receiverFullName"\n                       name="FullName"\n                       maxlength="40"\n                       ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                       ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                       data-ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                       ng-required="true"\n                       ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.OverseasNameChineseAndEnglish"/>\n                <p ng-show="MemberLocationForm.FullName.$error.required && MemberLocationForm.FullName.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/span><\/p>\n                <p ng-show="MemberLocationForm.FullName.$error.pattern && MemberLocationForm.FullName.$dirty"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.oversea_name_warning_format_error"><\/span>\n                <\/p>\n            <\/div>\n            <!-- 電話 -->\n            <div class="address-block-global">\n                <div class="item-row">\n                    <div class="choose-place split"\n                         data-ng-class="{\'error\': MemberLocationForm.CellPhone.$invalid && MemberLocationForm.CellPhone.$dirty}">\n                        <select class="option"\n                                id="option"\n                                name="option"\n                                ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                        <\/select>\n                    <\/div>\n                    <div class="choose-place">\n                        <input type="tel" class="text full-width"\n                               id="receiverCellPhone"\n                               name="CellPhone"\n                               translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_mobile_no_placeholder\'}"\n                               maxlength="15"\n                               ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                               data-ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                               ng-required="true"\n                               ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                               ns-only-number/>\n                        <p ng-show="MemberLocationForm.CellPhone.$error.required && MemberLocationForm.CellPhone.$dirty"\n                           class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span>\n                        <\/p>\n                        <p ng-show="MemberLocationForm.CellPhone.$error.pattern && MemberLocationForm.CellPhone.$dirty"\n                           class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 地址 -->\n            <div class="address-block-global">\n                <div class="item-row">\n                    <div class="choose-place split"\n                         data-ng-class="{\'error\': MemberLocationForm.ZipCode.$invalid && MemberLocationForm.ZipCode.$dirty}">\n                        <span class="address-text text text-only" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.Country"><\/span>\n                    <\/div>\n                    <div class="choose-place">\n                        <input type="text"\n                               class="address-text text-only full-width"\n                               translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_zip_code_placeholder\'}"\n                               id="receiverZipCode"\n                               name="ZipCode"\n                               maxlength="20"\n                               ng-model="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                               ng-pattern="PayAdvancedCtrl.OverseasZipCode"/>\n                        <p ng-show="MemberLocationForm.ZipCode.$error.pattern && MemberLocationForm.ZipCode.$dirty"\n                           class="interror"><span\n                                translate="frontend.typescripts.pay_process.pay_advanced.oversea_zip_code_warning_format_error"><\/span>\n                        <\/p>\n                    <\/div>\n                <\/div>\n                <div class="item-row round-bottom">\n                    <div class="choose-place">\n                        <input type="text"\n                               class="address-input"\n                               translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_address_placeholder\'}"\n                               id="receiverAddress"\n                               data-qe-id="receiverAddressDetail"\n                               name="Address"\n                               maxlength="500"\n                               ng-model="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                               data-ng-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                               ng-required="true"\n                               ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail && PayAdvancedCtrl.OverseasAddressChineseAndEnglish"/>\n                        <p ng-show="MemberLocationForm.Address.$error.required && MemberLocationForm.Address.$dirty"\n                           class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_warning_required"><\/span>\n                        <\/p>\n                        <p ng-show="MemberLocationForm.Address.$error.pattern && MemberLocationForm.Address.$dirty"\n                           class="interror">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_warning_format_error"><\/span>\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class="payProcess-item-row info-text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_info"><\/span>\n            <\/div>\n            <div class="btn-center"\n                 data-ng-show="!PayAdvancedCtrl.ShowCreditCardField &&\n                                (PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CreditCardOnce_Stripe ||\n                                PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CreditCardOnce_CheckoutDotCom)">\n                <a href="javascript:void(0)" class="fill-finish-btn"\n                   data-ng-click="PayAdvancedCtrl.CheckFillCreditCard()"\n                   data-ng-class="{true:\'blue\',false:\'grey\'}[MemberLocationForm.$valid]">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.receiver_info_complete"><\/span>\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n<!--信用卡付款時，與信用卡同時出現-->\n<div class="appear-region"\n     data-ng-show="PayAdvancedCtrl.ShowCreditCardField || \n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CashOnDelivery ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.FreeOfCharge ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.EWallet_PayMe ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.CustomOfflinePayment ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.AliPayHK_EftPay ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.WechatPayHK_EftPay ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.BoCPay_SwiftPass ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.UnionPay_EftPay ||\n        PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.Atome">\n    <!-- 指定到貨日 -->\n    <form name="SelectPickupDateForm"\n          class="pickup-dates"\n          novalidate>\n        <div class="payProcess-block-lightgrey"\n             ng-if="PayAdvancedCtrl.BookingPickupDateDataList.length > 0">\n            <div class="payProcess-item">\n                <section class="pt-lg">\n                    <h2 class="payProcess-block-title required-star"\n                        translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_title">\n                    <\/h2>\n                    <p class="payProcess-block__subtitle mb-sm">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_subtitle"><\/span>\n                        <span class="tooltip tooltip-top"\n                              translate-attr="{ \'data-tooltipdata\': \'frontend.typescripts.pay_process.pay_advanced.pickup_date_tooltip\' }">\n                            <i class="fa fa-info-circle light-icon"><\/i>\n                        <\/span>\n                    <\/p>\n                    <p class="payProcess-block__desc mb-sm"\n                       translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_desc">\n                    <\/p>\n                    <p class="info-text multi-line"\n                         translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_notes">\n                    <\/p>\n                    <div class="mt-md"\n                        ng-repeat="item in PayAdvancedCtrl.BookingPickupDateDataList | limitTo: PayAdvancedCtrl.MaxPickupDateCount"> \n                        <h3 class="payProcess-block__subtitle mb-sm"\n                            translate="frontend.typescripts.pay_process.pay_advanced.pickup_date_temperature_title"\n                            translate-values="{\n                                val0: \'{{ PayAdvancedCtrl.GetTemperatureDisplayName(item.TemperatureTypeDef) | translate }}\'\n                            }">\n                        <\/h3>\n                        <div class="payProcess-item-row payProcess-item-row-white round"\n                            ng-class="{ \'round-top\': PayAdvancedCtrl.PickupPeriods[item.TemperatureTypeDef].Periods.length > 0 }">\n                            <ns-datepicker\n                                ns-selected-date="PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate"\n                                ns-min-date="item.BookingPickupDateData.BookingPickupStartDate"\n                                ns-max-date="item.BookingPickupDateData.BookingPickupEndDate"\n                                ns-disabled-dates="PayAdvancedCtrl.PickupExcludeDateInfo[item.TemperatureTypeDef].ExcludeDates"\n                                ns-disabled-weekdays="PayAdvancedCtrl.PickupExcludeDateInfo[item.TemperatureTypeDef].ExcludeWeekdays"\n                                ns-placeholder="frontend.typescripts.pay_process.pay_advanced.please_select_date"\n                                ns-submitted="PayAdvancedCtrl.Submitted"\n                                ns-required="true"\n                                css-class-title="info-title"\n                                css-class-input="text"\n                                css-class-validation="interror">\n                            <\/ns-datepicker>\n                        <\/div>\n                        <div class="payProcess-item-row payProcess-item-row-white round-bottom"\n                            ng-if="PayAdvancedCtrl.PickupPeriods[item.TemperatureTypeDef].Periods.length > 0">\n                            <div>\n                                <span class="info-title"\n                                    translate="frontend.typescripts.pay_process.pay_advanced.pickup_period">\n                                <\/span>\n                                <div class="payProcess-item-row--with-suffix">\n                                    <select\n                                        class="option pickup-period__option"\n                                        name="SelectedBookingPickupPeriod"\n                                        required\n                                        ng-model="PayAdvancedCtrl.ViewBookingPickupData[item.TemperatureTypeDef].SelectedBookingPickupPeriod"\n                                        ng-options="option as option.PeriodDesc for option in PayAdvancedCtrl.GetFilterPeriods(\n                                            item.TemperatureTypeDef,\n                                            PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate\n                                        )">\n                                        <option\n                                            value=""\n                                            translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_placeholder">\n                                        <\/option>\n                                    <\/select>\n                                    <i class="icon-editor icon-editor-lg icon-editor-icon_common_down_fulltiny"><\/i>\n                                <\/div>\n                            <\/div>\n                            <p class="interror"\n                                ng-show="PayAdvancedCtrl.GetFilterPeriods(item.TemperatureTypeDef, PayAdvancedCtrl.PayProcessData.BookingPickupInfo[item.TemperatureTypeDef].SelectedBookingPickupDate).length === 0"\n                                translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_warning_exceeded">\n                            <\/p>\n                            <p class="interror"\n                                ng-show="SelectPickupDateForm.SelectedBookingPickupPeriod.$error.required && PayAdvancedCtrl.Submitted"\n                                translate="frontend.typescripts.pay_process.pay_advanced.pickup_period_warning_required">\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/section>\n            <\/div>\n        <\/div>\n    <\/form>\n    <!--信用卡區塊-->\n    <form name="CreditCardInfoForm" novalidate>\n        <div class="appear-region payProcess-block payProcess-block-lightgrey" id="creditcard" ng-if="PayAdvancedCtrl.ShowCreditCardField">\n            <!-- 信用卡 -->\n            <div class="payProcess-item">\n                <!-- 記住信用卡 -->\n                <div ns-remember-credit-card\n                     ng-if="PayAdvancedCtrl.PayProcessData.HasCreditCard && !PayAdvancedCtrl.IsSelectedDesignatePaymentPromotion() && PayAdvancedCtrl.IsEnabledRememberCreditCardNo"\n                     ns-credit-card-no="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo"\n                     ns-credit-card-date="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardDate"\n                     ns-credit-card-brand="PayAdvancedCtrl.PayProcessData.CreditCardInfo.Brand"\n                     ns-is-credit-card-date-valid="PayAdvancedCtrl.IsSendCreditCardDateValid">\n                <\/div>\n                <!-- 輸入信用卡 -->\n                <div ng-if="!PayAdvancedCtrl.PayProcessData.HasCreditCard || PayAdvancedCtrl.IsSelectedDesignatePaymentPromotion() || !PayAdvancedCtrl.IsEnabledRememberCreditCardNo"\n                     ns-credit-card\n                     ns-credit-card-no="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo"\n                     ns-credit-card-date="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardDate"\n                     ns-credit-card-cvv="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardCVV"\n                     ns-focus-default="PayAdvancedCtrl.DefaultFocusCreditCard"\n                     ns-on-credit-card-no-finish="PayAdvancedCtrl.CheckCreditCard(PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo)"\n                     ns-submitted="PayAdvancedCtrl.Submitted"\n                     ns-credit-info-valid="PayAdvancedCtrl.CreditInfoValid"\n                     ns-has-credit-card="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                     ns-edit-credit-card="PayAdvancedCtrl.$scope.Model.IsEditCreditCard"\n                     ns-reset-card="PayAdvancedCtrl.IsResetCard"\n                     ns-custom-card-no-validate="PayAdvancedCtrl.IsCardNoValidate"\n                     ns-support-cart-type="PayAdvancedCtrl.SupportCreditCartType"\n                     ns-designate-payment-promotion-hint="PayAdvancedCtrl.DesignatePaymentPromotionHint">\n                <\/div>\n            <\/div>\n            <!-- 記住信用卡 -->\n            <div class="payProcess-item checkbox-row rememberCreditCard"\n                 ng-if="PayAdvancedCtrl.IsEnabledRememberCreditCardNo">\n                <div class="checkbox-section"\n                     ng-click="PayAdvancedCtrl.SetRememberThisCard()">\n                    <span>\n                        <input type="checkbox" name="RememberCreditCardNo"\n                               style="display: none;"\n                               ng-model="PayAdvancedCtrl.PayProcessData.RememberCreditCardNo"\n                               ng-disabled="!!PayAdvancedCtrl.SelectedCreditcardIdentity"\n                               ng-click="PayAdvancedCtrl.PayProcessData.RememberCreditCardNo=!PayAdvancedCtrl.PayProcessData.RememberCreditCardNo;"/>\n                        <i class="remember__selection__check"\n                           ng-if="!PayAdvancedCtrl.SelectedCreditcardIdentity"\n                           data-ng-class="{\'icon-editor-icon_checkbox\': PayAdvancedCtrl.PayProcessData.RememberCreditCardNo,\n                                           \'icon-editor-icon_uncheckbox checkbox__icon--unselected\': !PayAdvancedCtrl.PayProcessData.RememberCreditCardNo}"><\/i>\n                        <i class="remember__selection__check__disable icon-editor-icon_checkbox"\n                           ng-if="!!PayAdvancedCtrl.SelectedCreditcardIdentity"><\/i>\n                    <\/span>\n                    <span class="remember-text" translate="frontend.typescripts.pay_process.pay_advanced.remember_this_credit_card"><\/span>\n                <\/div>\n                <a ng-if="!PayAdvancedCtrl.IsSelectedDesignatePaymentPromotion()"\n                   href="javascript:void(0)" class="link-text-blue"\n                   ng-click="PayAdvancedCtrl.OpenCreditCardListDialog()">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.select_other_credit_cards"><\/span>\n                <\/a>\n            <\/div>\n            <!--支援信用卡別提示-->\n            <div class="payProcess-item card-desc-row card-desc_text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.applicable_credit_card_desc"><\/span>\n                <i class="card-desc_img visa" ng-if="PayAdvancedCtrl.SupportCreditCartType.includes(PayAdvancedCtrl.CreditCardTypeEnum.Visa)"><\/i>\n                <i class="card-desc_img master" ng-if="PayAdvancedCtrl.SupportCreditCartType.includes(PayAdvancedCtrl.CreditCardTypeEnum.Master)"><\/i>\n                <i class="card-desc_img amex" ng-if="PayAdvancedCtrl.SupportCreditCartType.includes(PayAdvancedCtrl.CreditCardTypeEnum.Amex)"><\/i>\n                <i class="card-desc_img union" ng-if="PayAdvancedCtrl.SupportCreditCartType.includes(PayAdvancedCtrl.CreditCardTypeEnum.Union)"><\/i>\n            <\/div>\n            <!-- 信用卡使用說明 -->\n            <div class="payProcess-item card-desc-row card-desc_text">\n                <span class="info-text-dark multi-line"\n                      translate="frontend.typescripts.component.ns_credit_card.card_info_msg">\n                <\/span>\n            <\/div>\n        <\/div>\n    <\/form>\n\n    <!-- Email輸入-->\n    <div class="payProcess-block payProcess-block-lightgrey">\n        <div class="payProcess-item">\n            <h2 data-ng-class="{\'required-star\':PayAdvancedCtrl.PayProcessData.IsEmailRequired}"\n                class="payProcess-block-title" translate="frontend.typescripts.pay_process.pay_advanced.email"><\/h2>\n            <form name="EmailForm" novalidate>\n                <div class="payProcess-item-row payProcess-item-row-white round">\n                    <input type="email" class="text full-width"\n                           translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.email_placeholder\'}"\n                           id="receiverEmailForWeb"\n                           name="Email"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Email"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           data-ng-change="PayAdvancedCtrl.handleEmailChange()"\n                           data-ng-required="PayAdvancedCtrl.PayProcessData.IsEmailRequired"\n                           ns-only-email/>\n                    <p ng-show="EmailForm.Email.$error.required && PayAdvancedCtrl.Submitted" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_required"><\/span>\n                    <\/p>\n                    <p ng-show="EmailForm.Email.$error.onlyEmail && EmailForm.Email.$dirty" class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.email_warning_format_error"><\/span>\n                    <\/p>\n                <\/div>\n            <\/form>\n            <div class="payProcess-item-row info-text">\n                <span translate="frontend.typescripts.pay_process.pay_advanced.email_info"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- 備註 -->\n    <div class="payProcess-block payProcess-block-lightgrey"\n         ng-show="PayAdvancedCtrl.PayProcessData.IsTradesOrderMemo && !PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n        <div class="payProcess-item border">\n            <h2 class="payProcess-block-title" translate="frontend.typescripts.pay_process.pay_advanced.note"><\/h2>\n            <form name="UserMemoForm" novalidate>\n                <textarea class="memo" ng-model="PayAdvancedCtrl.PayProcessData.UserMemo"\n                          translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.note_placeholder\'}"\n                          rows="10" maxlength="500"><\/textarea>\n            <\/form>\n        <\/div>\n    <\/div>\n\n    <!--訂購備註-->\n    <div class="payProcess-block payProcess-block-lightgrey"\n         ng-show="PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n        <div class="payProcess-item border">\n            <h2 class="payProcess-block-title required-star"\n                translate="frontend.typescripts.pay_process.pay_advanced.note"><\/h2>\n            <form name="TradesOrderSlaveMemoForm" novalidate>\n                <textarea class="memo"\n                          name="TradesOrderSlaveMemo"\n                          required\n                          ng-model="PayAdvancedCtrl.PayProcessData.TradesOrderSlaveMemo"\n                          placeholder="{{PayAdvancedCtrl.PayProcessData.SalePageMemoPlaceholder}}"\n                          rows="10" maxlength="500"><\/textarea>\n                <p ng-show="TradesOrderSlaveMemoForm.TradesOrderSlaveMemo.$error.required && PayAdvancedCtrl.Submitted"\n                   class="interror">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.note_warning_required"><\/span><\/p>\n            <\/form>\n        <\/div>\n    <\/div>\n\n    <!-- 自訂購買須知 -->\n    <div\n        class="payProcess-block payProcess-block-lightgrey"\n        ng-if="PayAdvancedCtrl.PurchaseNotesEntity.EnablePurchaseNotes"\n    >\n        <div class="payProcess-item border">\n            <h2\n                class="payProcess-block-title"\n                ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Title"\n            ><\/h2>\n            <pre\n                class="payProcess-statement"\n                ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Content"\n            ><\/pre>\n        <\/div>\n    <\/div>\n    <!-- 海外配送權益聲明 -->\n    <div class="payProcess-block payProcess-block-lightgrey" data-ng-if="PayAdvancedCtrl.CanOverseaShipping">\n        <div class="payProcess-item border">\n            <h2 class="payProcess-block-title"\n                translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_title"><\/h2>\n            <pre class="payProcess-statement" data-ng-bind="PayAdvancedCtrl.OverseasStatement"><\/pre>\n        <\/div>\n        <div class="payProcess-item checkbox-row">\n            <div class="checkbox-text"\n                 ng-click="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree=!PayAdvancedCtrl.IsOverseasShippingPrivacyAgree">\n                <input type="checkbox" name="agreeOverseasShippingPrivacy"\n                       data-ng-model="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree"\n                       ng-click="PayAdvancedCtrl.IsOverseasShippingPrivacyAgree=!PayAdvancedCtrl.IsOverseasShippingPrivacyAgree"/>\n                <span translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_checkbox"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 優惠訊息 -->\n    <div class="payProcess-item checkbox-row">\n        <div class="checkbox-text"\n             ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM">\n            <input type="checkbox" name="IsEnableEDM" data-ng-model="PayAdvancedCtrl.PayProcessData.IsEnableEDM"\n                   ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM"/>\n            <span translate="frontend.typescripts.pay_process.pay_advanced.edm_enable"><\/span>\n        <\/div>\n    <\/div>\n    <!-- 會員權益條款與隱私權聲明 -->\n    <div class="payProcess-item checkbox-row">\n        <div class="checkbox-text" ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree">\n            <input type="checkbox" name="agreePrivacy" class="checkbox-area"\n                   data-ng-model="PayAdvancedCtrl.IsPrivacyAgree"\n                   ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree"/>\n            <span class="text-content">\n                <span\n                    translate="frontend.typescripts.pay_process.pay_advanced.agree_policy"\n                    translate-value-val0="\n                        <a \n                            data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                            ng-href=\'/V2/MyAccount/VipMemberBenefits?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                            class=\'link-text\'\n                            translate=\'frontend.typescripts.pay_process.pay_advanced.membership_terms\'\n                        ><\/a>"\n                    translate-value-val1="\n                        <a\n                            data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                            ng-href=\'/MyAccount/Privacy?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                            class=\'link-text\'\n                            translate=\'frontend.typescripts.pay_process.pay_advanced.privacy_policy\'\n                        ><\/a>"\n                    translate-compile \n                ><\/span>\n            <\/span>\n        <\/div>\n    <\/div>\n    <!-- 送出資料 -->\n    <div class="payProcess-block-lightgrey button-area">\n        <!-- 結帳按鈕 - 一般金流結帳-->\n        <a ng-if="!PayAdvancedCtrl.IsSendBtnDisabled && PayAdvancedCtrl.IsSendCreditCardDateValid"\n           ng-hide="PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.EWallet_PayMe"\n           class="btn-red btn-medium btn-submit clear-float cms-primaryBtnTextColor cms-primaryBtnBgColor"\n           ng-click="PayAdvancedCtrl.SubmitOrder()">\n            <span ng-show="PayAdvancedCtrl.DefaultCurrencyCode === PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n            <span ng-show="PayAdvancedCtrl.DefaultCurrencyCode !== PayAdvancedCtrl.CurrencyCode"\n                  translate="frontend.typescripts.pay_process.pay_advanced.submit_currency"\n                  translate-value-val0="{{PayAdvancedCtrl.DefaultCurrencyCode}}"><\/span>\n        <\/a>\n        <!-- 結帳按鈕 - PayMe結帳 -->\n        <a ng-if="!PayAdvancedCtrl.IsSendBtnDisabled"\n           ng-show="PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.EWallet_PayMe"\n           class="payme__btn btn-medium btn-submit clear-float"\n           ng-click="PayAdvancedCtrl.SubmitOrder()">\n            <img alt="PayMe" src="Content/Images/Pay/btn-pay-me.svg" class="payme__img"/>\n        <\/a>\n        <!-- disabled 按鈕 (送出中) -->\n        <a ng-if="PayAdvancedCtrl.IsSendBtnDisabled"\n           class="btn-medium btn-submit btn-disable clear-float"\n           translate="frontend.typescripts.pay_process.pay_advanced.btn_disable_text">\n        <\/a>\n        <!-- disabled 按鈕 (送出) -->\n        <a ng-if="!PayAdvancedCtrl.IsSendCreditCardDateValid"\n           class="btn-medium btn-submit btn-grey clear-float"\n           translate="frontend.typescripts.pay_process.pay_advanced.submit">\n        <\/a>\n        <!--金流文案-->\n        <div class="pay-type-info" ng-if="PayAdvancedCtrl.DeviceValue.IsMobile() === true">\n            {{PayAdvancedCtrl.GetPayTypeDescription(PayAdvancedCtrl.PayProcessData.PayProfileType)}}\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcessGlobal/payAdvancedMY.html",'<!-- 訂單明細 -->\n<div class="order-block"\n     ng-include="\'/V2/TypeScripts/Modules/PayProcess/orderDetail.html\'">\n<\/div>\n\n<!-- \n    表單中不應該有巢狀的 form (改用 ng-form 替代) \n    ref: https://stackoverflow.com/questions/379610/can-you-nest-html-forms\n-->\n<form name="PayAdvancedForm" class="payProcess-form" novalidate>\n    <!--門市自取-->\n    <ng-form name="MemberStoreForm" novalidate>\n        <div class="payProcess-block payProcess-block-lightgrey"\n             data-ng-if="PayAdvancedCtrl.ShowShopField">\n            <div class="payProcess-item">\n                <h2 class="payProcess-block-title required-star" translate="frontend.typescripts.pay_process.pay_advanced.picker_info"><\/h2>\n                <!--姓名-->\n                <div class="payProcess-item-row payProcess-item-row-white round-top">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.name"><\/label>\n                    <!-- 門市自取收件人 -->\n                     <input type="text"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.convenience_store_pickup_name_placeholder\' }"\n                           ns-focus="PayAdvancedCtrl.FocusOnFirstInput"\n                           id="memberStoreReceiverFullName"\n                           name="fullname"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                           ng-if="PayAdvancedCtrl.PayProcessData.ShippingProfileType === PayAdvancedCtrl.ShippingProfileTypeDefEnum.LocationPickup"\n                           ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.NoStarRegex"\n                           maxlength="50"\n                           required/>\n                    <p ng-show="MemberStoreForm.fullname.$error.required && PayAdvancedCtrl.Submitted" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required"><\/p>\n                    <p ng-show="MemberStoreForm.fullname.$error.onlyChinese && MemberStoreForm.fullname.$dirty" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_name_warning_min_length"><\/span><\/p>\n                    <p ng-show="MemberStoreForm.fullname.$error.maxlength" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_name_warning_max_length"><\/span><\/p>\n                    <p ng-show="(MemberStoreForm.fullname.$error.pattern || MemberStoreForm.fullname.$error.minlength || MemberStoreForm.fullname.$error.continuousChineseOrEnglish) && MemberStoreForm.fullname.$dirty"\n                       class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length"><\/span><\/p>\n                <\/div>\n                <!-- 手機號碼 - 無國碼 (Cart1 選擇本國時顯示)-->\n                <div class="payProcess-item-row payProcess-item-row-white" ng-if="!PayAdvancedCtrl.IsAbroadStorePickup">\n                    <label class="info-title" translate="frontend.typescripts.pay_process.pay_advanced.mobile_number"><\/label>\n                    <input type="tel"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                           name="cellphone"\n                           id="memberStoreReceiverCellPhone"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                           required\n                           ns-only-cellphone />\n                    <p ng-show="MemberStoreForm.cellphone.$error.required && PayAdvancedCtrl.Submitted" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_required"><\/span><\/p>\n                    <p ng-show="MemberStoreForm.cellphone.$error.onlyCellphone && MemberStoreForm.cellphone.$dirty" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.picker_mobile_number_warning_wrong_format"><\/span><\/p>\n                <\/div>\n                <!-- 手機號碼 - 有國碼 (Cart1 選擇國外時顯示) -->\n                <div class="address-block-global" ng-if="PayAdvancedCtrl.IsAbroadStorePickup">\n                    <div class="item-row">\n                        <div class="choose-place split"\n                            ng-class="{\'error\': MemberStoreForm.CellPhone.$invalid && MemberStoreForm.CellPhone.$dirty}">\n                            <select class="option"\n                                    id="option"\n                                    name="option"\n                                    ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                    ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                            <\/select>\n                        <\/div>\n                        <div class="choose-place">\n                            <input type="tel" class="text full-width"\n                                    id="receiverCellPhone"\n                                    name="CellPhone"\n                                    translate-attr="{\'placeholder\':\'frontend.typescripts.pay_process.pay_advanced.oversea_mobile_no_placeholder\'}"\n                                    maxlength="15"\n                                    ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                                    ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                                    ng-required="true"\n                                    ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                                    ns-only-number/>\n                            <p ng-show="MemberStoreForm.CellPhone.$error.required && MemberStoreForm.CellPhone.$dirty"\n                                class="interror">\n                                <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required"><\/span>\n                            <\/p>\n                            <p ng-show="MemberStoreForm.CellPhone.$error.pattern && MemberStoreForm.CellPhone.$dirty"\n                                class="interror">\n                                <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!--門市自取-->\n                <div class="payProcess-item-row payProcess-item-row-white choose-store round-bottom"\n                     ng-click="PayAdvancedCtrl.ChooseLocationPickup()">\n                    <span class="choose-store-text"\n                          id="storeNameForLocationPickup">\n                        <i class="icon icon-location"><\/i>\n                        <span translate="{{ PayAdvancedCtrl.PayProcessData.Receiver.StoreName || \'frontend.typescripts.pay_process.pay_advanced.select_pickup_store\' }}">\n                            <span translate="frontend.typescripts.pay_process.pay_advanced.store_name"><\/span>\n                        <\/span>\n                    <\/span>\n                    <i class="arrow-right"><\/i>\n                    <p ng-show="PayAdvancedCtrl.HasStore()" class="store-address"\n                       ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"><span\n                            translate="frontend.typescripts.pay_process.pay_advanced.store_address"><\/span><\/p>\n                    <p ng-show="PayAdvancedCtrl.Submitted && !PayAdvancedCtrl.HasStore()" class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.store_not_select"><\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/ng-form>\n\n    <!-- 收件人資訊 -->\n    <ng-form name="MemberLocationForm"\n             id="receiver"\n             novalidate>\n        <!--馬來西亞配送-->\n        <div class="payProcess-block payProcess-block-lightgrey"\n             ng-if="PayAdvancedCtrl.ShowReceiverField && PayAdvancedCtrl.IsShippingMy">\n            <div class="payProcess-item">\n                <h2 class="payProcess-block-title inline-block required-star"\n                    translate="frontend.typescripts.pay_process.pay_advanced.receiver_info">\n                <\/h2>\n                <!-- TODO: 啟用常用收件人功能 -->\n                <!--<a ui-sref="^.Location.List" class="link-text-blue block-right block-top"\n                   data-ns-ga-event-track\n                   data-track-category="資料填寫"\n                   data-track-action="click"\n                   data-track-label="常用收件人">\n                    常用收件人\n                <\/a>-->\n                <!-- 填寫收件人資訊 -->\n                <div class="payProcess-item-row payProcess-item-row-white round-top">\n                    <label class="info-title"\n                           translate="frontend.typescripts.pay_process.pay_advanced.name">\n                    <\/label>\n                    <input type="text"\n                           class="text"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\' }"\n                           id="receiverFullName"\n                           name="FullName"\n                           ns-focus="true"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                           ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.NoStarRegex"\n                           required\n                           maxlength="50" />\n                    <p ng-show="MemberLocationForm.FullName.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"\n                       translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required">\n                    <\/p>\n                    <p ng-show="MemberLocationForm.FullName.$error.maxlength"\n                       class="interror"\n                       translate="frontend.typescripts.pay_process.pay_advanced.name_warning_max_length">\n                    <\/p>\n                    <p ng-show="MemberLocationForm.FullName.$error.pattern && MemberLocationForm.FullName.$dirty"\n                        class="interror"\n                        translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length">\n                    <\/p>\n                <\/div>\n                <div class="payProcess-item-row payProcess-item-row-white">\n                    <label class="info-title"\n                           translate="frontend.typescripts.pay_process.pay_advanced.mobile_number">\n                    <\/label>\n                    <input type="tel"\n                           class="text"\n                           id="receiverCellPhone"\n                           name="CellPhone"\n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                           required\n                           ns-only-cellphone/>\n                    <p ng-show="MemberLocationForm.CellPhone.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"\n                       translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required">\n                    <\/p>\n                    <p ng-show="MemberLocationForm.CellPhone.$error.onlyCellphone && MemberLocationForm.CellPhone.$dirty"\n                       class="interror">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                    <\/p>\n                <\/div>\n                <!-- 地址 -->\n                <div ns-address-my\n                     ns-state="PayAdvancedCtrl.PayProcessData.Receiver.State"\n                     ns-city="PayAdvancedCtrl.PayProcessData.Receiver.City"\n                     ns-zipcode="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                     ns-address-detail="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                     ns-address-detail-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                     ns-is-address-detail-changed="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail"\n                     ns-filter-region="PayAdvancedCtrl.PayProcessData.ShoppingCartV2.SelectedCheckoutShippingTypeGroup.RegionName"\n                     ns-region="PayAdvancedCtrl.PayProcessData.Receiver.Region"\n                     ns-submitted="PayAdvancedCtrl.Submitted"\n                     ns-is-weight-billing="PayAdvancedCtrl.IsWeightBilling"\n                     ns-pre-selected-state="PayAdvancedCtrl.PayProcessData.ShoppingCartV2.SelectedShippingArea.Name">\n                <\/div>\n            <\/div>\n        <\/div>\n        <!--新加坡配送-->\n        <div class="payProcess-block payProcess-block-lightgrey"\n             ng-if="PayAdvancedCtrl.ShowReceiverField && !PayAdvancedCtrl.IsShippingMy">\n            <div class="payProcess-item">\n                <h2 class="payProcess-block-title inline-block required-star" translate="frontend.typescripts.pay_process.pay_advanced.receiver_info"><\/h2>\n                <div class="payProcess-item-row payProcess-item-row-white round-top">\n                    <input type="text" \n                           class="text" \n                           translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.name_placeholder_global\' }"\n                           id="receiverFullName"\n                           name="FullName"\n                           ns-focus="true"\n                           ng-model="PayAdvancedCtrl.PayProcessData.Receiver.FullName"\n                           ng-model-options="{updateOn: \'blur\'}"\n                           ng-change="PayAdvancedCtrl.handleFullnameChange()"\n                           ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.fullname && PayAdvancedCtrl.NoStarRegex"\n                           required\n                           maxlength="50" />\n                    <p ng-show="MemberLocationForm.FullName.$error.required && PayAdvancedCtrl.Submitted"\n                       class="interror"\n                       translate="frontend.typescripts.pay_process.pay_advanced.name_warning_required">\n                    <\/p>\n                    <p ng-show="MemberLocationForm.FullName.$error.maxlength"\n                       class="interror"\n                       translate="frontend.typescripts.pay_process.pay_advanced.name_warning_max_length">\n                    <\/p>\n                    <p ng-show="MemberLocationForm.FullName.$error.pattern && MemberLocationForm.FullName.$dirty"\n                        class="interror"\n                        translate="frontend.typescripts.pay_process.pay_advanced.receiver_name_warning_min_and_max_length">\n                    <\/p>\n                <\/div>\n                <div class="address-block-global">\n                    <div class="item-row">\n                        <div class="choose-place split">\n                            <select class="option"\n                                    id="option"\n                                    name="option"\n                                    ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CountryCode"\n                                    ng-options="area.CountryCode as (area.Country + \'+\'  + area.CountryCode) for area in PayAdvancedCtrl.CountryCodeList">\n                            <\/select>\n                        <\/div>\n                        <div class="choose-place">\n                            <input type="tel" class="text full-width pt-3px"\n                                   id="receiverCellPhone"\n                                   name="CellPhone"\n                                   translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.mobile_number_placeholder\' }"\n                                   ng-model="PayAdvancedCtrl.PayProcessData.Receiver.CellPhone"\n                                   ng-change="PayAdvancedCtrl.handleCellphoneChange()"\n                                   required\n                                   ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.cellphone && PayAdvancedCtrl.NumberPattern"\n                                   ns-only-number/>\n                            <p ng-show="MemberLocationForm.CellPhone.$error.required && PayAdvancedCtrl.Submitted"\n                               class="interror"\n                               translate="frontend.typescripts.pay_process.pay_advanced.mobile_number_warning_required">\n                            <\/p>\n                            <p ng-show="MemberLocationForm.CellPhone.$error.pattern && MemberLocationForm.CellPhone.$dirty"\n                               class="interror">\n                                <span translate="frontend.typescripts.pay_process.pay_advanced.mobile_warning_format_error"><\/span>\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- 地址 -->\n                <div class="address-block-global">\n                    <div class="item-row">\n                        <div class="choose-place split"\n                             data-ng-class="{\'error\': MemberLocationForm.ZipCode.$invalid && MemberLocationForm.ZipCode.$dirty}">\n                            <span class="address-text text-only" ng-bind="PayAdvancedCtrl.PayProcessData.Receiver.Country"><\/span>\n                        <\/div>\n                        <div class="choose-place">\n                            <input type="text"\n                                    class="address-text text-only full-width"\n                                    translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.oversea_zip_code_placeholder\' }"\n                                    id="receiverZipCode"\n                                    name="ZipCode"\n                                    maxlength="20"\n                                    ng-model="PayAdvancedCtrl.PayProcessData.Receiver.ZipCode"\n                                    ng-pattern="PayAdvancedCtrl.OverseasZipCode"/>\n                            <p ng-show="MemberLocationForm.ZipCode.$error.pattern && PayAdvancedCtrl.Submitted"\n                                class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.oversea_zip_code_warning_format_error"><\/span><\/p>\n                        <\/div>\n                    <\/div>\n                    <div class="item-row round-bottom">\n                        <div class="choose-place">\n                            <input type="text"\n                                    class="address-text text-only full-width"\n                                    translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.oversea_address_placeholder\' }"\n                                    id="receiverAddress"\n                                    name="Address"\n                                    maxlength="500"\n                                    ng-model="PayAdvancedCtrl.PayProcessData.Receiver.AddressDetail"\n                                    ng-change="PayAdvancedCtrl.handleAddressDetailChange()"\n                                    ng-required="true"\n                                    ng-pattern="PayAdvancedCtrl.maskedInfoChangedStatus.addressDetail && PayAdvancedCtrl.NoStarRegex"/>\n                            <p ng-show="MemberLocationForm.Address.$error.required && PayAdvancedCtrl.Submitted"\n                                class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_warning_required"><\/span><\/p>\n                            <p ng-show="MemberLocationForm.Address.$error.pattern && PayAdvancedCtrl.Submitted"\n                                class="interror"><span translate="frontend.typescripts.pay_process.pay_advanced.oversea_address_warning_format_error"><\/span><\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/ng-form>\n\n    <!-- 在門市自取，且資料為請選擇時，才需隱藏 -->\n    <div ng-hide="PayAdvancedCtrl.CheckSippingTypeHasStore() && !PayAdvancedCtrl.ShowPayTypeAndOtherInfoField &&\n        PayAdvancedCtrl.PayProcessData.PayProfileType !== PayAdvancedCtrl.PayProfileTypeDefEnum.FreeOfCharge">\n        <!-- MolPay -->\n        <ng-form name="MolPayInfoForm"\n                novalidate\n                class="appear-region payProcess-block payProcess-block-grey"\n                ng-if="PayAdvancedCtrl.PayProcessData.PayProfileType !== PayAdvancedCtrl.PayProfileTypeDefEnum.FreeOfCharge">\n            <div class="payProcess-block payProcess-block-lightgrey">\n                <div class="payProcess-item">\n                <h2 class="payProcess-block-title inline-block required-star"\n                    translate="frontend.typescripts.pay_process.pay_advanced.payment_option">\n                <\/h2>\n                <!-- GlobalPay 父層選單: 信用卡一次、網路銀行、電子錢包 -->\n                <div class="payment-option-block"\n                     ng-if="PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.GlobalPay">\n                    <div class="payment-option-item"\n                        ng-if="PayAdvancedCtrl.PaymentSetting.CreditCard && PayAdvancedCtrl.PaymentSetting.CreditCard.length > 0"\n                        ng-class="{\'action\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.Credit}"\n                        ng-click="PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType = PayAdvancedCtrl.GlobalPayTypeEnum.Credit">\n                        <div class="icon_creditcard"\n                            ng-class="{\'active\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.Credit}"><\/div>\n                        <div class="payment-option-text">\n                            <i class="icon payment-option__icon"\n                            ng-class="{true:\'icon-check-selected\',false:\'icon-circle\'}[PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.Credit]"><\/i>\n                            <span class="payment-option__wording"\n                                translate="frontend.typescripts.pay_process.pay_advanced.credit_or_debit_card"><\/span>\n                        <\/div>\n                    <\/div>\n                    <div class="payment-option-item"\n                        ng-if="PayAdvancedCtrl.PaymentSetting.OnlineBanks && PayAdvancedCtrl.PaymentSetting.OnlineBanks.length > 0"\n                        ng-class="{\'action\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.OnlineBank}"\n                        ng-click="PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType = PayAdvancedCtrl.GlobalPayTypeEnum.OnlineBank">\n                        <div class="icon_onlinebanking"\n                            ng-class="{\'active\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.OnlineBank}"><\/div>\n                        <div class="payment-option-text">\n                            <i class="icon payment-option__icon"\n                            ng-class="{true:\'icon-check-selected\',false:\'icon-circle\'}[PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.OnlineBank]"><\/i>\n                            <span class="payment-option__wording"\n                                translate="frontend.typescripts.pay_process.pay_advanced.online_banking"><\/span>\n                        <\/div>\n                    <\/div>\n                    <div class="payment-option-item"\n                        ng-if="PayAdvancedCtrl.PaymentSetting.EWallet && PayAdvancedCtrl.PaymentSetting.EWallet.length > 0"\n                        ng-class="{\'action\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.EWallet}"\n                        ng-click="PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType = PayAdvancedCtrl.GlobalPayTypeEnum.EWallet">\n                        <div class="icon_ewallet"\n                            ng-class="{\'active\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.EWallet}"><\/div>\n                        <div class="payment-option-text">\n                            <i class="icon payment-option__icon"\n                            ng-class="{true:\'icon-check-selected\',false:\'icon-circle\'}[PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.EWallet]"><\/i>\n                            <span class="payment-option__wording"\n                                translate="frontend.typescripts.pay_process.pay_advanced.e_wallet"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <\/div>\n                <!--Credit / Debit Card-->\n                <div data-ng-if="PayAdvancedCtrl.IsShowPayTypeUseCreditCardField">\n                    <div class="payProcess-item">\n                        <div \n                            ns-credit-card\n                            ns-credit-card-no="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardNo"\n                            ns-credit-card-date="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardDate"\n                            ns-credit-card-cvv="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardCVV"\n                            ns-credit-card-holder="PayAdvancedCtrl.PayProcessData.CreditCardInfo.CreditCardHolder"\n                            ns-has-credit-card="PayAdvancedCtrl.PayProcessData.HasCreditCard"\n                            ns-edit-credit-card="PayAdvancedCtrl.$scope.Model.IsEditCreditCard"\n                            ns-focus-default="PayAdvancedCtrl.OnFocusCreditCard"\n                            ns-reset-card="PayAdvancedCtrl.IsResetCard"\n                            ns-submitted="PayAdvancedCtrl.Submitted"\n                            ns-hide-notice="true"\n                            ns-support-cart-type="PayAdvancedCtrl.SupportCreditCartType"\n                            ns-designate-payment-promotion-hint="PayAdvancedCtrl.DesignatePaymentPromotionHint">\n                        <\/div>\n                    <\/div>\n                    <!-- 定期購服務條款 -->\n                    <div ng-include="\'/V2/TypeScripts/Modules/PayProcess/regularOrderPrivacy.template.html\'"><\/div>\n                    <!-- 支援信用卡別提示-->\n                    <div class="payProcess-item card-desc-row card-desc_text">\n                        <span translate="frontend.typescripts.pay_process.pay_advanced.applicable_credit_card_desc"><\/span>\n                        <i class="card-desc_img visa"><\/i>\n                        <i class="card-desc_img master"><\/i>\n                    <\/div>\n                    <!-- 信用卡使用說明 -->\n                    <div class="payProcess-item card-desc-row card-desc_text">\n                        <span class="info-text-dark multi-line"\n                              translate="frontend.typescripts.component.ns_credit_card.card_info_msg">\n                        <\/span>\n                    <\/div>\n                <\/div>\n                <!--Online Banks-->\n                <div data-ng-if="PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.GlobalPay &&\n                                 PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.OnlineBank"\n                        class="payProcess-item">\n                    <div class="img-block">\n                        <div class="img-selection online-banking-item"\n                                ng-repeat="item in PayAdvancedCtrl.PaymentSetting.OnlineBanks"\n                                ng-class="{\'active\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.OnlineBankCode === item}"\n                                ng-click="PayAdvancedCtrl.PayProcessData.GlobalPayInfo.OnlineBankCode = item">\n                            <div class="img-item icon-bank__{{item}}" data-qe-id="{{item}}"><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!--EWallet-->\n                <div data-ng-if="PayAdvancedCtrl.PayProcessData.PayProfileType === PayAdvancedCtrl.PayProfileTypeDefEnum.GlobalPay &&\n                                 PayAdvancedCtrl.PayProcessData.GlobalPayInfo.PayType === PayAdvancedCtrl.GlobalPayTypeEnum.EWallet"\n                        class="payProcess-item">\n                    <div class="img-block">\n                        <div class="img-selection ewallet-item"\n                                ng-repeat="item in PayAdvancedCtrl.PaymentSetting.EWallet"\n                                ng-class="{\'active\':PayAdvancedCtrl.PayProcessData.GlobalPayInfo.EWalletCode === item}"\n                                ng-click="PayAdvancedCtrl.PayProcessData.GlobalPayInfo.EWalletCode = item">\n                            <div class="img-item icon-ewallet__{{item}}"><\/div>\n                        <\/div>\n                    <\/div>\n                    <div class="payProcess-item-row info-text">\n                        <p translate="frontend.typescripts.pay_process.pay_advanced.ewallet_remind"><\/p>\n                        <br/>\n                        <p translate="frontend.typescripts.pay_process.pay_advanced.ewallet_remind2"><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/ng-form>\n\n        <!-- Email輸入-->\n        <div class="payProcess-block payProcess-block-lightgrey">\n            <div class="payProcess-item">\n                <h2 data-ng-class="{\'required-star\':PayAdvancedCtrl.PayProcessData.IsEmailRequired || PayAdvancedCtrl.CanOverseaShipping}"\n                    class="payProcess-block-title"\n                    translate="frontend.typescripts.pay_process.pay_advanced.email">\n                <\/h2>\n                <ng-form name="EmailForm" novalidate>\n                    <div class="payProcess-item-row payProcess-item-row-white round">\n                        <input type="email"\n                            class="text full-width"\n                            translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.email_placeholder\' }"\n                            id="receiverEmailForWeb"\n                            name="Email"\n                            ng-model="PayAdvancedCtrl.PayProcessData.Email"\n                            ng-model-options="{updateOn: \'blur\'}"\n                            ng-change="PayAdvancedCtrl.handleEmailChange()"\n                            data-ng-required="PayAdvancedCtrl.PayProcessData.IsEmailRequired || PayAdvancedCtrl.CanOverseaShipping"\n                            ns-only-email />\n                        <p ng-show="EmailForm.Email.$error.required && PayAdvancedCtrl.Submitted"\n                        class="interror"\n                        translate="frontend.typescripts.pay_process.pay_advanced.email_warning_required">\n                        <\/p>\n                        <p ng-show="EmailForm.Email.$error.onlyEmail && EmailForm.Email.$dirty"\n                        class="interror"\n                        translate="frontend.typescripts.pay_process.pay_advanced.email_warning_format_error">\n                        <\/p>\n                    <\/div>\n                <\/ng-form>\n                <div class="payProcess-item-row info-text">\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.email_info">\n                    <\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- 備註 -->\n        <div class="payProcess-block payProcess-block-lightgrey"\n            ng-if="PayAdvancedCtrl.PayProcessData.IsTradesOrderMemo && !PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n            <div class="payProcess-item border">\n                <h2 class="payProcess-block-title"\n                    translate="frontend.typescripts.pay_process.pay_advanced.note">\n                <\/h2>\n                <ng-form name="UserMemoForm"\n                        novalidate>\n                    <textarea class="memo"\n                            ng-model="PayAdvancedCtrl.PayProcessData.UserMemo"\n                            translate-attr="{ placeholder: \'frontend.typescripts.pay_process.pay_advanced.note_placeholder\' }"\n                            rows="10"\n                            maxlength="500"><\/textarea>\n                <\/ng-form>\n            <\/div>\n        <\/div>\n\n        <!--訂購備註-->\n        <div class="payProcess-block payProcess-block-lightgrey"\n            ng-if="PayAdvancedCtrl.PayProcessData.IsTradesOrderSlaveMemo">\n            <div class="payProcess-item border">\n                <h2 class="payProcess-block-title required-star"\n                    translate="frontend.typescripts.pay_process.pay_advanced.note">\n                <\/h2>\n                <ng-form name="TradesOrderSlaveMemoForm"\n                        novalidate>\n                    <textarea class="memo"\n                            name="TradesOrderSlaveMemo"\n                            required\n                            ng-model="PayAdvancedCtrl.PayProcessData.TradesOrderSlaveMemo"\n                            placeholder="{{PayAdvancedCtrl.PayProcessData.SalePageMemoPlaceholder}}"\n                            rows="10"\n                            maxlength="500"><\/textarea>\n                    <p ng-show="TradesOrderSlaveMemoForm.TradesOrderSlaveMemo.$error.required && PayAdvancedCtrl.Submitted"\n                    class="interror"\n                    translate="frontend.typescripts.pay_process.pay_advanced.note_warning_required">\n                    <\/p>\n                <\/ng-form>\n            <\/div>\n        <\/div>\n        <!-- 自訂購買須知 -->\n        <div\n            class="payProcess-block payProcess-block-lightgrey"\n            ng-if="PayAdvancedCtrl.PurchaseNotesEntity.EnablePurchaseNotes"\n        >\n            <div class="payProcess-item border">\n                <h2\n                    class="payProcess-block-title"\n                    ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Title"\n                ><\/h2>\n                <pre\n                    class="payProcess-statement"\n                    ng-bind="PayAdvancedCtrl.PurchaseNotesEntity.Content"\n                ><\/pre>\n            <\/div>\n        <\/div>\n        <!-- 國家地區配送權益聲明 -->\n        <div class="payProcess-block payProcess-block-lightgrey"\n            ng-if="!PayAdvancedCtrl.IsShippingMy">\n            <div class="payProcess-item border">\n                <h2 class="payProcess-block-title"\n                    translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_title"><\/h2>\n                <pre class="payProcess-statement" data-ng-bind="PayAdvancedCtrl.DistributionStatement"><\/pre>\n            <\/div>\n            <div class="payProcess-item checkbox-row">\n                <div class="checkbox-text" ng-click="PayAdvancedCtrl.IsCountryDistributionPrivacyAgree=!PayAdvancedCtrl.IsCountryDistributionPrivacyAgree">\n                    <input type="checkbox" name="agreeOverseasShippingPrivacy"\n                            data-ng-model="PayAdvancedCtrl.IsCountryDistributionPrivacyAgree"\n                            ng-click="PayAdvancedCtrl.IsCountryDistributionPrivacyAgree=!PayAdvancedCtrl.IsCountryDistributionPrivacyAgree" />\n                    <span translate="frontend.typescripts.pay_process.pay_advanced.cross_region_policy_checkbox"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n        <!-- 優惠訊息 -->\n        <div class="payProcess-item checkbox-row"\n            ng-if="!PayAdvancedCtrl.IsShippingMy">\n            <div class="checkbox-text"\n                    ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM">\n                <input type="checkbox" name="IsEnableEDM" data-ng-model="PayAdvancedCtrl.PayProcessData.IsEnableEDM"\n                        ng-click="PayAdvancedCtrl.PayProcessData.IsEnableEDM=!PayAdvancedCtrl.PayProcessData.IsEnableEDM" />\n                <span translate="frontend.typescripts.pay_process.pay_advanced.edm_enable"><\/span>\n            <\/div>\n        <\/div>\n        <!-- 會員權益條款與隱私權聲明 -->\n        <div class="payProcess-item checkbox-row"\n            ng-if="!PayAdvancedCtrl.IsShippingMy">\n            <div class="checkbox-text" ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree">\n                <input type="checkbox" name="agreePrivacy" class="checkbox-area"\n                    data-ng-model="PayAdvancedCtrl.IsPrivacyAgree"\n                    ng-click="PayAdvancedCtrl.IsPrivacyAgree=!PayAdvancedCtrl.IsPrivacyAgree" />\n                <span class="text-content">\n                    <span\n                        translate="frontend.typescripts.pay_process.pay_advanced.agree_policy"\n                        translate-value-val0="\n                            <a \n                                data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                                ng-href=\'/V2/MyAccount/VipMemberBenefits?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                                class=\'link-text\'\n                                translate=\'frontend.typescripts.pay_process.pay_advanced.membership_terms\'\n                            ><\/a>"\n                        translate-value-val1="\n                            <a\n                                data-ng-click=\'PayAdvancedCtrl.SaveMaskedInfoStatus()\'\n                                ng-href=\'/MyAccount/Privacy?shopId={{::PayAdvancedCtrl.PayProcessData.ShoppingCartV2.ShopId}}\'\n                                class=\'link-text\'\n                                translate=\'frontend.typescripts.pay_process.pay_advanced.privacy_policy\'\n                            ><\/a>"\n                        translate-compile \n                    ><\/span>\n                <\/span>\n            <\/div>\n        <\/div>\n        <!-- 送出資料 -->\n        <div class="payProcess-block-lightgrey button-area">\n            <a href="javascript:void(0)"\n               ng-if="!PayAdvancedCtrl.IsSendBtnDisabled"\n               class="btn-red btn-medium btn-submit clear-float cms-primaryBtnTextColor cms-primaryBtnBgColor"\n               ng-click="PayAdvancedCtrl.SubmitOrder(PayAdvancedForm)"\n            >\n                <span ng-show="PayAdvancedCtrl.DefaultCurrencyCode === PayAdvancedCtrl.CurrencyCode"\n                    translate="frontend.typescripts.pay_process.pay_advanced.submit"><\/span>\n                <span ng-show="PayAdvancedCtrl.DefaultCurrencyCode !== PayAdvancedCtrl.CurrencyCode"\n                    translate="frontend.typescripts.pay_process.pay_advanced.submit_currency"\n                    translate-value-val0="{{PayAdvancedCtrl.DefaultCurrencyCode}}"><\/span>\n            <\/a>\n            <!-- disabled 按鈕-->\n            <a ng-if="PayAdvancedCtrl.IsSendBtnDisabled"\n               class="btn-medium btn-submit btn-disable clear-float"\n               translate="frontend.typescripts.pay_process.pay_advanced.btn_disable_text"\n            ><\/a>\n            <div class="warning-message"\n                translate="frontend.typescripts.pay_process.pay_advanced.credit_card_warning_message">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n');n.put("/V2/TypeScripts/Modules/Promotion/categoryMenu.html",'<div ns-push-half-page\n     ns-is-open="PromotionDetailCtrl.openCategoryMenu"\n     ns-show-close="true"\n     ns-open-direction="\'left\'"\n     ns-page-caption="\'分類\'"\n     class="category-menu">\n    <ul class="menu-ul">\n\n        <li class="menu-li" data-ng-repeat="level1 in PromotionDetailCtrl.categoryChildList track by level1.CategoryId">\n            <a class="menu-link"\n               data-ng-init="level1.selected = false"\n               data-ng-click="level1.selected =!level1.selected ;PromotionDetailCtrl.ClickParentCategory(level1)"\n               data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0,\n               \'link-active\':level1.CategoryId === PromotionDetailCtrl.selectedCategory.CategoryId}">\n                <h4 class="menu-item-name" data-ng-bind="level1.Title"><\/h4>\n                (<span data-ng-bind="level1.SalePageCount"><\/span>)\n            <\/a>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0}">\n                <li class="child-menu-li" data-ng-repeat="level2 in level1.ChildList">\n                    <a class="child-menu-link" data-ng-click="PromotionDetailCtrl.ClickParentCategory(level2)"\n                    data-ng-class="{\'link-active\':level2.CategoryId === PromotionDetailCtrl.selectedCategory.CategoryId}">\n                        <h4 class="menu-item-name" data-ng-bind="level2.Title"><\/h4>\n                        (<span data-ng-bind="level2.SalePageCount"><\/span>)\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Promotion/detailDesc.html",'<div class="promotion-desc-modal promotion-detail-container">\n    <button type="button"\n            class="close"\n            ng-click="DetailDescCtrl.Cancel()"><span aria-hidden="true">×<\/span><\/button>\n    <h2 class="promotion-title">{{Model.model.Name}}<\/h2>\n    <div class="promotion-duration"\n         ng-if="!Model.model.IsRegular">\n        <i class="icon icon-clock-o"><\/i>\n        <span class="time-text">{{Model.model.StartDateTime|date:\'medium\'}}<\/span>\n        ~\n        <span class="time-text">{{Model.model.EndDateTime|date:\'medium\'}}<\/span>\n    <\/div>\n    <p class="promotion-desc-all">\n        {{Model.model.Description}}\n    <\/p>\n    <div class="promotion-rule">\n        <ul class="promotion-rule-title-ul">\n            <li class="promotion-rule-title"\n                translate="frontend.typescripts.promotion.event_rule">\n            <\/li>\n        <\/ul>\n        <ul>\n            <li class="promotion-rule-li"\n                ng-repeat="Item in Model.model.ConditionList">\n                <span class="promotion-rule-desc">\n                    <!--滿額打折-->\n                    <span ng-if="(Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPrice||Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPriceV2||\n                    Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.CrmMemberTierTotalPrice) &&\n                    Model.getDiscountTypeDef() === DetailDescCtrl.PromotionConditionDiscountTypeV2Enum.DiscountRate && \n                   (Item.TotalPrice !== DetailDescCtrl.MinmumCurrency)">\n                        <span class="promotion-rule-highlight"\n                              translate="frontend.typescripts.promotion.promote_total_price_discount_rate"\n                              translate-value-val0="{{Item.TotalPrice | preferredCurrency}}"\n                              translate-value-val1="{{DetailDescCtrl.FormatDiscountRate(Item.DiscountRate)}}">\n                        <\/span>\n                    <\/span>\n                    <!--滿額折現-->\n                    <span ng-if="(Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPrice||Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPriceV2||\n                    Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.CrmMemberTierTotalPrice) &&\n                    Model.getDiscountTypeDef() === DetailDescCtrl.PromotionConditionDiscountTypeV2Enum.DiscountPrice && \n                   (Item.TotalPrice !== DetailDescCtrl.MinmumCurrency)">\n                        <span class="promotion-rule-highlight"\n                              translate="frontend.typescripts.promotion.promote_total_price_discount_price"\n                              translate-value-val0="{{Item.TotalPrice | preferredCurrency}}"\n                              translate-value-val1="{{Item.DiscountPrice | preferredCurrency}}">\n                        <\/span>\n                    <\/span>\n                    <!--滿件打折-->\n                    <span ng-if="(Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalQty||Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalQtyV2) && \n                    Model.getDiscountTypeDef() === DetailDescCtrl.PromotionConditionDiscountTypeV2Enum.DiscountRate &&\n                   (Item.TotalPrice !== DetailDescCtrl.MinmumCurrency)">\n                        <span class="promotion-rule-highlight"\n                              translate="frontend.typescripts.promotion.promote_total_qty_discount_rate"\n                              translate-value-val0="{{Item.TotalQty}}"\n                              translate-value-val1="{{DetailDescCtrl.FormatDiscountRate(Item.DiscountRate)}}">\n                        <\/span>\n                    <\/span>\n                    <!--滿件折現-->\n                    <span ng-if="(Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalQty||Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalQtyV2) && \n                    Model.getDiscountTypeDef() === DetailDescCtrl.PromotionConditionDiscountTypeV2Enum.DiscountPrice &&\n                   (Item.TotalPrice !== DetailDescCtrl.MinmumCurrency)">\n                        <span class="promotion-rule-highlight"\n                              translate="frontend.typescripts.promotion.promote_total_qty_discount_price"\n                              translate-value-val0="{{Item.TotalQty}}"\n                              translate-value-val1="{{Item.DiscountPrice | preferredCurrency}}">\n                        <\/span>\n                    <\/span>\n                    <!--消費即享打折-->\n                    <span ng-if="(Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPrice||Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.TotalPriceV2||\n                    Model.getTypeDef() === DetailDescCtrl.PromotionConditionTypeV2Enum.CrmMemberTierTotalPrice &&\n                    Model.getDiscountTypeDef() === DetailDescCtrl.PromotionConditionDiscountTypeV2Enum.DiscountRate) && \n                   (Item.TotalPrice === DetailDescCtrl.MinmumCurrency)">\n                        <span class="promotion-rule-highlight"\n                              translate="frontend.typescripts.promotion.promote_one_dollar_discount_rate"\n                              translate-value-val0="{{DetailDescCtrl.FormatDiscountRate(Item.DiscountRate)}}">\n                        <\/span>\n                    <\/span>\n\n                    <span ng-if="!$last">/<\/span>\n                <\/span>\n            <\/li>\n            <li ng-if="Model.isCRMMemberTier()">\n                <span class="promotion-rule-desc"\n                      translate="frontend.typescripts.promotion.promotion_member_level_style"\n                      translate-value-val0=" {{::Model.getCRMMemberTierName()}}">\n                <\/span>\n            <\/li>\n            <li ng-if="Model.model.HasExcludedSalePage">\n                <span class="promotion-rule-desc"\n                      translate="frontend.typescripts.promotion.target_shop_exception"><\/span>\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/Promotion/promotionDetailNotificationTemplate.html",'<div class="modal-body">\n    <p>\n        <span class="notification-title" translate="frontend.typescripts.promotion.add_to_cart_notification_title"><\/span>\n        <span ng-bind-html="Model.message"><\/span>\n    <\/p>\n    <div class="function">\n        <button class="button full cms-primaryBtnBgColor cms-primaryBtnTextColor"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                translate="frontend.typescripts.promotion.confirm">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PromotionEngine/categoryMenu.html",'<div ns-push-half-page\n     ns-is-open="PromotionEngineDetailCtrl.openCategoryMenu"\n     ns-show-close="true"\n     ns-open-direction="\'left\'"\n     ns-page-caption="\'分類\'"\n     class="category-menu">\n    <ul class="menu-ul">\n\n        <li class="menu-li" data-ng-repeat="level1 in PromotionEngineDetailCtrl.categoryChildList track by level1.CategoryId">\n            <a class="menu-link"\n               data-ng-init="level1.selected = false"\n               data-ng-click="level1.selected =!level1.selected;PromotionEngineDetailCtrl.ClickParentCategory(level1)"\n               data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0,\n               \'link-active\':level1.CategoryId === PromotionEngineDetailCtrl.selectedCategory.CategoryId}">\n                <h4 class="menu-item-name" data-ng-bind="level1.Title"><\/h4>\n                (<span data-ng-bind="level1.SalePageCount"><\/span>)\n            <\/a>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0}">\n                <li class="child-menu-li" data-ng-repeat="level2 in level1.ChildList">\n                    <a class="child-menu-link" data-ng-click="PromotionEngineDetailCtrl.ClickParentCategory(level2)"\n                    data-ng-class="{\'link-active\':level2.CategoryId === PromotionEngineDetailCtrl.selectedCategory.CategoryId}">\n                        <h4 class="menu-item-name" data-ng-bind="level2.Title"><\/h4>\n                        (<span data-ng-bind="level2.SalePageCount"><\/span>)\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PromotionEngine/description.template.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            ng-click="PromotionEngineDialogCtrl.Cancel()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n    <div class="modal__content">\n        <div class="modal__title">\n            {{::Model.model.Name}}\n        <\/div>\n        <div class="modal__subtitle">\n            <span translate="frontend.typescripts.promotion.event_description"><\/span>\n        <\/div>\n        <div class="modal__description">\n            {{::Model.model.Description}}\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PromotionEngine/membershipDiscountNotification.template.html",'<div class="modal-body">\n    <div class="notification-title" ng-bind="::Title"><\/div>\n    <p class="notification-content" ng-bind="::Model.content"><\/p>\n    <div class="function">\n        <button class="button"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                ng-if="!!Model.leftButtonTitle">\n            {{ ::Model.leftButtonTitle }}\n        <\/button>\n        <button ng-class="{ \'full\' : !Model.leftButtonTitle,\n                            \'button\': !Model.leftButtonTitle,\n                            \'button-right cms-primaryBtnBgColor cms-primaryBtnTextColor\': !!Model.leftButtonTitle }"\n                ng-click="DialogCustomizeCtrl.Cancel()">\n            {{ ::Model.rightButtonTitle }}\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PromotionEngine/rule.template.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            ng-click="PromotionEngineDialogCtrl.Cancel()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n    <div class="modal__content">\n        <div class="modal__title">\n            <span ng-bind="Model.model.Name"><\/span>\n        <\/div>\n        <div class="modal__content-text promotion-information__period"\n             ng-hide="Model.isRegular() && !Model.model.ExtraDateTimeText">\n            <div class="period__date-time"\n                 ng-hide="Model.isRegular()">\n                <i class="icon icon-clock-o"><\/i>\n                <span class="period__text">{{Model.model.StartDateTime|date:\'medium\'}}<\/span>\n                <span class="period__separator">~<\/span>\n                <span class="period__text">{{Model.model.EndDateTime|date:\'medium\'}}<\/span>\n            <\/div>\n            <div ng-show="Model.model.ExtraDateTimeText">({{Model.model.ExtraDateTimeText}})<\/div>\n        <\/div>\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_description"><\/span>\n        <\/div>\n        <pre class="modal__description">{{Model.model.Description}}<\/pre>\n        <div class="modal__title" ng-if="Model.model.TargetRegionList.length > 0">\n            <span translate="frontend.typescripts.promotion.promotion_target_region"><\/span>\n        <\/div>\n        <ul class="modal__list" ng-if="Model.model.TargetRegionList.length > 0">\n            <li class="modal__list-item"\n                ng-repeat="item in Model.model.TargetRegionList">\n                {{item}}\n            <\/li>\n        <\/ul>\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_rule"><\/span>\n        <\/div>\n        <ul class="modal__list">\n            <li class="modal__list-item">\n                <span ng-bind="Model.getPromotionRule() | stringToPreferredCurrency"\n                      class="promotion-rule"><\/span>\n                <div class="modal__discount-description">\n                    <span translate="frontend.typescripts.promotion.calulation_description"><\/span>\n                    <pre>\n                        {{Model.model.DiscountDescription | stringToPreferredCurrency}}\n                    <\/pre>\n                <\/div>\n            <\/li>\n            <li class="modal__list-item"\n                ng-repeat="note in Model.model.NoteList">\n                {{note | stringToPreferredCurrency}}\n            <\/li>\n        <\/ul>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PromotionEngine/ruleRewardPoint.template.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            ng-click="PromotionEngineDialogCtrl.Cancel()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n    <div class="modal__content">\n        <!-- 活動名稱 -->\n        <div class="modal__title">\n            <span ng-bind="Model.model.Name"><\/span>\n        <\/div>\n        <!-- 活動時間 -->\n        <div class="modal__content-text">\n            <i class="icon-editor icon-editor-icon_schedule"><\/i>\n            <span class="period__text">{{Model.model.StartDateTime | date : \'medium\'}}<\/span>\n            <span class="period__separator">~<\/span>\n            <span class="period__text">{{Model.model.EndDateTime | date : \'medium\'}}<\/span>\n        <\/div>\n        <!-- 活動說明 -->\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_description"><\/span>\n        <\/div>\n        <pre class="modal__description">{{Model.model.Description}}<\/pre>\n        <!-- 活動規則 -->\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_rule"><\/span>\n        <\/div>\n        <ul class="modal__list">\n            <li class="modal__list-item"\n                ng-repeat="item in Model.model.DiscountDescriptionList">\n                {{item | stringToPreferredCurrency}}\n            <\/li>\n        <\/ul>\n        <!-- 活動資格 -->\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_qualification"><\/span>\n        <\/div>\n        <ul class="modal__list">\n            <li class="modal__list-item"\n                ng-repeat="note in Model.model.NoteList">\n                {{note | stringToPreferredCurrency}}\n            <\/li>\n        <\/ul>\n        <!-- 點數效期 -->\n        <div class="modal__title">\n            <span translate="frontend.typescripts.promotion.event_validity_period"><\/span>\n        <\/div>\n        <div class="modal__content-text">\n            <span ng-bind="Model.model.ExpireType"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/RegularOrder/cancelReason.html",'<form name="CancelReasonForm"\n      novalidate>\n    <div class="modal-body">\n        <div class="pop-up-with-input">\n            <div class="text-left-head">\n                <span translate="frontend.typescripts.cancel_reason.confirm_cancel_regular_order">\n                <\/span>\n            <\/div>\n            <div class="text-left-up">\n                <span translate="frontend.typescripts.cancel_reason.cancel_cause">\n                <\/span>\n            <\/div>\n            <textarea rows="4"\n                      ng-model="CancelReasonCtrl.cancelReason"\n                      name="CancelReasonMemo"\n                      data-role="none"\n                      class="middle-textarea-input"\n                      minlength="1"\n                      maxlength="50"\n                      placeholder="{{\'frontend.typescripts.cancel_reason.input_cancel_reason\'|translate}}"\n                      ng-required="true">\n            <\/textarea>\n\n            <div ng-show="CancelReasonForm.$submitted && CancelReasonForm.CancelReasonMemo.$invalid"\n                 data-ng-messages="CancelReasonForm.CancelReasonMemo.$error"\n                 class="textarea-input-error">\n                <div data-ng-message="required">\n                    <span translate="frontend.typescripts.cancel_reason.yet_to_fill_cancel_reason">\n                    <\/span>\n                <\/div>\n            <\/div>\n\n            <div class="text-left-bottom">\n                <span translate="frontend.typescripts.cancel_reason.note_for_cancel_to_order_page">\n                <\/span>\n            <\/div>\n        <\/div>\n        <div class="function">\n            <button class="button button-left"\n                    ng-click="CancelReasonCtrl.Cancel()">\n                <span translate="frontend.typescripts.cancel_reason.continue_to_order">\n                <\/span>\n            <\/button>\n\n            <button class="button button-right cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    ng-click="CancelReasonCtrl.Ok(CancelReasonForm)">\n                <span translate="frontend.typescripts.cancel_reason.cancel_order">\n                <\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n<\/form>');n.put("/V2/TypeScripts/Modules/ReturnGoodsRequest/returnGoodsNotificationTemplate.html",'<div class="modal-body">\n    <div class="important">\n        {{::Model.content}}\n        <div class="normal">{{::Model.importantContent}}<\/div>\n    <\/div>\n    <div class="function">\n        <button class="button full"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                translate="frontend.typescripts.return_goods_request.confirm">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ReturnGoodsRequest/returnInfoAddressGlobal.template.html",'<!--國際版 退貨資訊 收貨地址-->\n<div>\n    <ul class="insert-form fixAddressForm"\n        data-ng-class="{\'round-bottom\': !ReturnGoodsCtrl.ShowAddressInput()}">\n        <li>\n            <div class="title" translate="frontend.typescripts.return_info.template.contact_name"><\/div>\n            <div class="desc">\n                <input type="text" ng-model="ReturnGoodsCtrl.FullName" name="FullName"\n                       autocomplete="new-fullname"\n                       required\n                       maxlength="40"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.name_placeholder_global\'}"/>\n                <p class="text warning"\n                   ng-show="insertForm.$submitted && insertForm.FullName.$invalid"\n                   translate="frontend.typescripts.return_info.template.contact_name_warning_required">\n                <\/p>\n            <\/div>\n        <\/li>\n        <li>\n            <div class="title" translate="frontend.typescripts.return_info.template.cell_phone"><\/div>\n            <div class="desc">\n                <input type="tel" ng-model="ReturnGoodsCtrl.CellPhone"\n                       name="CellPhone"\n                       autocomplete="new-cellphone"\n                       required\n                       ng-minlength="8"\n                       ng-maxlength="8"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.mobile_placeholder\'}"\n                       ns-only-number />\n                <p class="text warning"\n                   ng-show="insertForm.$submitted && insertForm.CellPhone.$invalid"\n                   translate="frontend.typescripts.return_info.template.mobile_warning_format"><\/p>\n            <\/div>\n        <\/li>\n    <\/ul>\n    <div  class="address-block" ng-show="ReturnGoodsCtrl.ShowAddressInput()">\n        <div class="item-row ">\n        <input type="text" class="address-text"\n               ng-model="ReturnGoodsCtrl.AddressInfo.TradesOrderReceiverAddress"\n               name="AddressDetail"\n               autocomplete="new-address"\n               maxlength="500"\n               ns-remove-whitespace\n               ng-required="ReturnGoodsCtrl.IsNormalReturn()"\n               translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.address_placeholder\'}"/>\n        <p ng-show="insertForm.AddressDetail.$error.required && insertForm.$submitted"\n           class="interror" translate="frontend.typescripts.return_info.template.required"><\/p>\n        <p ng-show="insertForm.AddressDetail.$error.pattern && insertForm.$submitted"\n           class="interror" translate="frontend.typescripts.return_info.template.address_limited_format">\n        <\/p>\n    <\/div>\n        <div class="item-row round-bottom">\n        <div class="choose-place split">\n            <select class="option"\n                    ng-model="ReturnGoodsCtrl.CityData" \n                    name="City"\n                    ng-options="City.City for City in ReturnGoodsCtrl.CityList"\n                    ng-change="ReturnGoodsCtrl.SetSelectedDistrictNull()"\n                    ng-required="ReturnGoodsCtrl.IsNormalReturn()">\n                <option value="" translate="frontend.typescripts.return_info.template.area"><\/option>\n            <\/select>\n        <\/div>\n        <div class="choose-place">\n            <select class="option"\n                    ng-model="ReturnGoodsCtrl.DistrictData"\n                    name="District"\n                    ng-options="District as (District.District + \' \' + District.ZipCode) for District in ReturnGoodsCtrl.CityData.DistrictList"\n                    ng-required="ReturnGoodsCtrl.IsNormalReturn()">\n                <option value="" translate="frontend.typescripts.return_info.template.district"><\/option>\n            <\/select>\n        <\/div>\n        <p ng-show="insertForm.District.$error.required && insertForm.$submitted"\n           class="interror"\n            translate="frontend.typescripts.return_info.template.required">\n        <\/p>\n    <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ReturnGoodsRequest/returnInfoAddressTW.template.html",'<!--台灣 退貨資訊 收貨地址-->\n<div>\n    <ul class="insert-form fixAddressForm"\n        data-ng-class="{\'round-bottom\': !ReturnGoodsCtrl.ShowAddressInput()}">\n        <li>\n            <div class="title" translate="frontend.typescripts.return_info.template.contact_name"><\/div>\n            <div class="desc">\n                <input type="text" ng-model="ReturnGoodsCtrl.FullName" name="FullName"\n                       autocomplete="new-fullname"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.name_placeholder\'}"\n                       required\n                       maxlength="40"/>\n                <p class="text warning"\n                   ng-show="insertForm.$submitted && insertForm.FullName.$invalid"\n                   translate="frontend.typescripts.return_info.template.contact_name_warning_required">\n                <\/p>\n            <\/div>\n        <\/li>\n        <li>\n            <div class="title"  translate="frontend.typescripts.return_info.template.cell_phone"><\/div>\n            <div class="desc">\n                <input type="tel" ng-model="ReturnGoodsCtrl.CellPhone"\n                       name="CellPhone"\n                       autocomplete="new-cellphone"\n                       translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.mobile_placeholder\'}"\n                       required maxlength="10"\n                       ns-only-cellphone/>\n                <p class="text warning"\n                   ng-show="insertForm.$submitted && insertForm.CellPhone.$invalid"\n                   translate="frontend.typescripts.return_info.template.mobile_warning_format">\n                <\/p>\n            <\/div>\n        <\/li>\n    <\/ul>\n    <div class="address-block" ng-show="ReturnGoodsCtrl.ShowAddressInput()">\n        <div class="item-row ">\n            <div class="choose-place split">\n                <select class="option"\n                        ng-model="ReturnGoodsCtrl.CityData"\n                        name="City"\n                        ng-options="City.City for City in ReturnGoodsCtrl.CityList"\n                        ng-change="ReturnGoodsCtrl.SetSelectedDistrictNull()"\n                        ng-required="ReturnGoodsCtrl.IsNormalReturn()">\n                    <option value="" translate="frontend.typescripts.return_info.template.select_county"><\/option>\n                <\/select>\n            <\/div>\n            <div class="choose-place">\n                <select class="option"\n                        ng-model="ReturnGoodsCtrl.DistrictData"\n                        name="District"\n                        ng-options="District as (District.District + \' \' + District.ZipCode) for District in ReturnGoodsCtrl.CityData.DistrictList"\n                        ng-required="ReturnGoodsCtrl.IsNormalReturn()">\n                    <option value="" translate="frontend.typescripts.return_info.template.area_select"><\/option>\n                <\/select>\n            <\/div>\n            <p ng-show="insertForm.District.$error.required && insertForm.$submitted"\n               class="interror" translate="frontend.typescripts.return_info.template.area_warning_required">\n            <\/p>\n        <\/div>\n        <div class="item-row round-bottom">\n            <input type="text" class="address-text"\n                   ng-model="ReturnGoodsCtrl.AddressInfo.TradesOrderReceiverAddress"\n                   name="AddressDetail"\n                   autocomplete="new-address"\n                   maxlength="500"\n                   ns-remove-whitespace\n                   ng-pattern="/^((?!郵政信箱)[一-龥＀-￿0-9a-zA-Z-ㄧ():~/-]){5,}$/"\n                   ng-required="ReturnGoodsCtrl.IsNormalReturn()"\n                   translate-attr="{\'placeholder\':\'frontend.typescripts.return_info.template.address_limited\'}"/>\n            <p ng-show="insertForm.AddressDetail.$error.required && insertForm.$submitted"\n               class="interror" translate="frontend.typescripts.return_info.template.address_warning_required"><\/p>\n            <p ng-show="insertForm.AddressDetail.$error.pattern && insertForm.$submitted"\n               class="interror" translate="frontend.typescripts.return_info.template.address_limited_format">\n            <\/p>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/SalePage/addToCartPushHalf.template.html",'<div class="salepage-push-half modal-body add-to-cart-popup">\n    <div ns-add-to-cart\n         ns-sale-page-model="SalePageIndexCtrl.SalePageModel"\n         ns-sale-page-status="SalePageIndexCtrl.SalePageStatus"\n         ns-add-to-cart-type="SalePageIndexCtrl.AddToCartType"\n         ns-selected-sku="SalePageIndexCtrl.SelectedSKUPropertySet"\n         ns-hide-show-more="true"\n         ns-is-from-dialog="true"\n         ns-is-direct-checkout="SalePageIndexCtrl.IsDirectCheckout"\n         ns-on-success="SalePageIndexCtrl.OpenMobileAddToCart = false"\n         ns-is-show-two-level-image="SalePageIndexCtrl.IsShowTwoLevelImage"\n         ns-is-show-stock-qty="SalePageIndexCtrl.ShowStockQty"\n         ns-sku-qty-mode="SalePageIndexCtrl.SkuQtyMode">\n    <\/div>\n    <a class="close-btn popup-close" href="javascript:void(0)" data-ng-click="SalePageIndexCtrl.OpenMobileAddToCart = false">\n        <i class="icon icon-slim-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/SalePage/chooseNearbyStoreModalSheet.html",'<div class="choose-nearby-store">\n    <!-- Full Screen Backdrop -->\n    <div class="choose-nearby-store__sheet-backdrop"\n         ng-click="SalePageIndexCtrl.CloseChooseNearbyStoreModalSheet()"><\/div>\n    <!-- Content Container -->\n    <div class="choose-nearby-store__sheet-container"\n         ng-class="{\'choose-nearby-store__sheet-container--active\': SalePageIndexCtrl.IsShowChooseNearbyStoreModalSheet}">\n        <!-- 商品圖片及名稱 -->\n        <div class="choose-nearby-store__header"\n            ng-style="{\'background-image\': \'url(\' + SalePageIndexCtrl.SalePageModel.ImageList[0].PicUrl + \')\'}">\n            <p class="sale-page-title">\n                {{SalePageIndexCtrl.SalePageModel.Title}}\n            <\/p>\n            <div class="close-button"\n                 ng-click="SalePageIndexCtrl.CloseChooseNearbyStoreModalSheet()">\n                 <i class="icon icon-close"><\/i>\n            <\/div>\n        <\/div>\n        <!-- 目前商店資訊 -->\n        <div class="choose-nearby-store__current-store delivery-store"\n             ng-hide="SalePageIndexCtrl.HasStockLocationInfo.CurrentLocationId === null">\n            <div ng-if="SalePageIndexCtrl.IsCurrentStoreStopService"\n                 class="stop-service-info">\n                <i class="icon icon-exclamation"><\/i>\n                <span translate="frontend.typescripts.sale_page.current_store_stop_service"><\/span>\n            <\/div>\n            <!-- 若目前門市為小時達總店情境，不顯示目前門市文案 -->\n            <div ng-if="!!SalePageIndexCtrl.HasStockLocationInfo.CurrentLocationName">\n                <p class="delivery-store__type"\n                    translate="frontend.typescripts.sale_page.current_delivery_store">\n                <\/p>\n                <div class="delivery-store__content">\n                    <div class="store-info">\n                        <p class="store-info__name">\n                            {{SalePageIndexCtrl.HasStockLocationInfo.CurrentLocationName}}\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <!-- 其它鄰近門市 : 元件高度為 Modal Sheet 全長移除 商品圖片區域 及 目前門市區域 的總和 -->\n        <div class="choose-nearby-store__the-other-store delivery-store"\n             ng-hide="SalePageIndexCtrl.HasStockLocationInfo.CurrentLocationId === null">\n            <p class="delivery-store__type"\n                translate="frontend.typescripts.sale_page.the_other_nearby_store">\n            <\/p>\n            <!-- 其它鄰近門市列表 -->\n            <div ng-if="SalePageIndexCtrl.HasStockLocationInfo.LocationList.length > 0"\n                 class="store-list-container">\n                <div class="delivery-store__content"\n                    ng-repeat="retailStore in SalePageIndexCtrl.HasStockLocationInfo.LocationList">\n                    <div class="store-info">\n                        <p class="store-info__name">\n                            {{retailStore.LocationName}}\n                        <\/p>\n                        <p class="store-info__distance">\n                            <span>&#8226;<\/span>\n                            {{retailStore.Distance}}\n                            <span> m<\/span>\n                        <\/p>\n                        <p class="store-info__stock-status">\n                            <span class="store-info__stock-status--has-stock"\n                                ng-if="retailStore.SellingQty >= 1"\n                                translate="frontend.typescripts.sale_page.in_stock">\n                            <\/span>\n                            <span class="store-info__stock-status--sold-out"\n                                ng-if="retailStore.SellingQty === 0"\n                                translate="frontend.typescripts.sale_page.out_of_stock">\n                            <\/span>\n                        <\/p>\n                    <\/div>\n                    <button class="choose-the-other-store cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                        ng-class="{\'choose-the-other-store--disable\' : retailStore.SellingQty === 0}"\n                        ng-disabled="retailStore.SellingQty === 0"\n                        ng-click="SalePageIndexCtrl.HandleChooseThisRetailStore(retailStore.LocationId, retailStore.SalePageId)"\n                        type="button"\n                        translate="frontend.typescripts.sale_page.select_this_store">\n                    <\/button>\n                <\/div>\n            <\/div>\n            <!-- 無可配送門市-->\n            <div ng-if="SalePageIndexCtrl.HasStockLocationInfo.LocationList.length === 0"\n                 class="no-shippable-store">\n                <img class="no-shippable-store__image"\n                    src="/V2/Content/Images/RetailStore/delivery_empty.png">\n                <p class="no-shippable-store__text"\n                    translate="frontend.typescripts.sale_page.currently_no_shippable_store"><\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/SalePage/rapidCheckoutShoppingCartModalSheet.html",'<div class="modal-sheet-container">\n    <!-- Full Screen Backdrop -->\n    <div class="modal-sheet-container__sheet-backdrop" ng-click="SalePageIndexCtrl.CloseChooseNearbyStoreModalSheet()">\n    <\/div>\n    <!-- Content Container -->\n    <div class="modal-sheet-container__content-container"\n        ng-class="{\'modal-sheet-container__content-container--active\': SalePageIndexCtrl.IsShowRapidCheckoutShoppingCartModalSheet}">\n        <div class="modal-sheet-container__header">\n            <p translate="frontend.typescripts.rapid_checkout.order_info"><\/p>\n            <div class="close-button" ng-click="SalePageIndexCtrl.CloseRapidCheckoutShoppingCartModalSheet()">\n                <i class="icon icon-close"><\/i>\n            <\/div>\n        <\/div>\n        <div class="modal-sheet-container__main"\n            ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsShoppingCartDataReady">\n            <!-- 收件人區塊 -->\n            <div class="receiver-info-block" ng-if="SalePageIndexCtrl.SalePageModel.ServiceType === \'RetailStore\'">\n                <div class="modal-sheet-container__title"\n                    translate="frontend.typescripts.rapid_checkout.recipient_info"><\/div>\n                <div>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Receiver.FullName}}<\/div>\n                <div>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Receiver.CellPhone}}<\/div>\n                <div>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Receiver.Address}}<\/div>\n            <\/div>\n            <!-- 付款方式區塊 -->\n            <div class="receiver-info-block">\n                <div class="modal-sheet-container__title" translate="frontend.typescripts.rapid_checkout.payment_type">\n                <\/div>\n                <div>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.PayTypeName}}<\/div>\n            <\/div>\n            <!-- 商品區塊 -->\n            <div class="product-info-block">\n                <div class="product-info-block__title-container">\n                    <span class="modal-sheet-container__title"\n                        translate="frontend.typescripts.rapid_checkout.product_info"><\/span>\n                    <span class="total-items-count" translate="frontend.typescripts.rapid_checkout.total_items_count"\n                        translate-value-val0="{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.ShoppingCart.SalePageCount}}"><\/span><\/span>\n                <\/div>\n                <div class="product-info-block__item-list">\n                    <div class="product-info-block__item-container"\n                        ng-repeat="productItem in SalePageIndexCtrl.RapidCheckoutShoppingCartData.ShoppingCart.ShoppingCartItemList">\n                        <div class="item-infos">\n                            <div class="item-count">x{{productItem.Qty}}<\/div>\n                            <div class="item-name">{{productItem.Title}}<\/div>\n                            <div class="item-cost">{{productItem.TotalPrice | preferredCurrency}}<\/div>\n                        <\/div>\n                        <div class="item-infos" ng-repeat="giftItem in productItem.SalePageGiftList">\n                            <div class="item-count" translate="frontend.typescripts.rapid_checkout.gift"><\/div>\n                            <div class="item-name">{{giftItem.Title}}<\/div>\n                            <div ng-if="!!giftItem.SellingQty" class="item-cost">{{0 | preferredCurrency}}<\/div>\n                            <div ng-if="!giftItem.SellingQty" class="item-cost sold-out"\n                                translate="frontend.typescripts.rapid_checkout.sold_out"><\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class="product-info-block__item-container"\n                        ng-repeat="soldoutItem in SalePageIndexCtrl.RapidCheckoutShoppingCartData.ShoppingCart.SoldoutSalePageList">\n                        <div class="item-infos">\n                            <div class="item-count sold-out-count"><\/div>\n                            <div class="item-name">{{soldoutItem.Title}}<\/div>\n                            <div class="item-cost sold-out" translate="frontend.typescripts.rapid_checkout.sold_out">\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <div class="product-info-block__gift-container"\n                        ng-repeat="matchGiftItem in SalePageIndexCtrl.RapidCheckoutShoppingCartData.ShoppingCart.MatchGiftList">\n                        <div class="gift-status" translate="frontend.typescripts.rapid_checkout.compatible"><\/div>\n                        <div class="gift-name">{{matchGiftItem.PromotionConditionTitle}}<\/div>\n                        <div translate="frontend.typescripts.rapid_checkout.gift_received"><\/div>\n                    <\/div>\n\n                    <div class="product-info-block__gift-container"\n                        ng-repeat="nonMatchGiftItem in SalePageIndexCtrl.RapidCheckoutShoppingCartData.ShoppingCart.NonMatchGiftList">\n                        <div class="gift-status" translate="frontend.typescripts.rapid_checkout.incompatible"><\/div>\n                        <div class="gift-name">{{nonMatchGiftItem.PromotionConditionTitle}}<\/div>\n                        <div class="sold-out" translate="frontend.typescripts.rapid_checkout.out_of_gift"><\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n            <!-- 金額計算區塊 -->\n            <div class="total-count-block">\n                <div class="total-count-block__fee-container">\n                    <div translate="frontend.typescripts.rapid_checkout.subtotals"><\/div>\n                    <div>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.TotalPrice | preferredCurrency}}\n                    <\/div>\n                <\/div>\n                <div class="total-count-block__fee-container">\n                    <div translate="frontend.typescripts.rapid_checkout.freight"><\/div>\n                    <div class="totalfee">{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.TotalFee |\n                        preferredCurrency}}<\/div>\n                <\/div>\n                <div ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.FreeShippingECouponDiscount"\n                    class="total-count-block__fee-container">\n                    <div translate="frontend.typescripts.rapid_checkout.shipping_coupon_discount"><\/div>\n                    <div class="count-off">\n                        {{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.FreeShippingECouponDiscount |\n                        preferredCurrency}}<\/div>\n                <\/div>\n                <div ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.NormalPromotionDiscount"\n                    class="total-count-block__fee-container">\n                    <div translate="frontend.typescripts.rapid_checkout.discount">\n                        <span\n                            ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.PromoCodeInfo.DiscountPrice"\n                            translate="frontend.typescripts.rapid_checkout.including_coupon"\n                            translate-value-val0="{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.PromoCodeInfo.PromoCode}}">\n                        <\/span>\n                    <\/div>\n                    <div class="count-off">\n                        {{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.NormalPromotionDiscount |\n                        preferredCurrency}}<\/div>\n                <\/div>\n                <div ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.ECouponDiscount"\n                    class="total-count-block__fee-container">\n                    <div translate="frontend.typescripts.rapid_checkout.coupon"><\/div>\n                    <div class="count-off">{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.ECouponDiscount |\n                        preferredCurrency}}<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="modal-sheet-container__bottom"\n            ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsShoppingCartDataReady">\n            <div class="total-count" ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsHaveTrashBag">\n                <span translate="frontend.typescripts.rapid_checkout.total"\n                    translate-value-val0="<span class=\'total-count__number\'>{{SalePageIndexCtrl.RapidCheckoutShoppingCartData.Payment.TotalPayment | preferredCurrency}}<\/span>"\n                    translate-compile><\/span>\n            <\/div>\n            <!-- 垃圾袋已售罄 -->\n            <div ng-if="!SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsHaveTrashBag" class="trash-bag-error">\n                <i class="icon-editor-icon_info_outline trash-bag-error__alert-icon"><\/i>\n                <span translate="frontend.typescripts.rapid_checkout.trash_bag_sold_out_error"><\/span>\n            <\/div>\n            <div class="button-block">\n                <!-- 修改訂單(回到購物車P1) -->\n                <button class="core-btn cms-secondBtnTextColor cms-secondBtnBgColor cms-secondBtnBorderColor"\n                    ng-click="SalePageIndexCtrl.ReturnToShoppingCartP1()"\n                    ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsHaveTrashBag"\n                    translate="frontend.typescripts.rapid_checkout.order_modification">\n                <\/button>\n                <!-- 確認付款 -->\n                <div class="confirm-btn-container"\n                    ng-if="SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsHaveTrashBag">\n                    <button\n                        class="core-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor confirm-btn"\n                        ng-class="{\'disabled\' : !SalePageIndexCtrl.RapidCheckoutShoppingCartData.NextStepButtonInfo.IsEnable}"\n                        ng-click="SalePageIndexCtrl.HandleConfirmPayment()"\n                        translate="frontend.typescripts.rapid_checkout.confirm_payment"\n                        ng-disabled="!SalePageIndexCtrl.RapidCheckoutShoppingCartData.NextStepButtonInfo.IsEnable">\n                    <\/button>\n                    <div class="alert-container"\n                        ng-if="!SalePageIndexCtrl.RapidCheckoutShoppingCartData.NextStepButtonInfo.IsEnable">\n                        <div class="open-period-alert">\n                            {{SalePageIndexCtrl.RapidCheckoutShoppingCartData.NextStepButtonInfo.ButtonDisableMessage}}\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- 確認 -->\n                <button class="core-btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n                    ng-if="!SalePageIndexCtrl.RapidCheckoutShoppingCartData.IsHaveTrashBag"\n                    translate="frontend.typescripts.common.confirm"\n                    ng-click="SalePageIndexCtrl.CloseRapidCheckoutShoppingCartModalSheet()">\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/SalePage/relatedCategoryPushHalf.template.html",'<div class="modal-body">\n    <div class="related-category-list-modal related-category-list">\n        <div class="related-category-list-modal__title">\n            <span translate="frontend.typescripts.sale_page.product_related_categories"\n                  translate-value-val0="{{SalePageIndexCtrl.RelatedCategoryList.length}}"><\/span>\n        <\/div>\n        <div class="related-category-list-modal__item-container">\n            <div class="related-category-list__item"\n                 ng-repeat="category in SalePageIndexCtrl.RelatedCategoryList">\n                <a class="related-category-list__item-name"\n                   target="_blank"\n                   ng-click="SalePageIndexCtrl.OpenSalePageCategory(category, SalePageIndexCtrl.SalePageId)"\n                   ng-href="/v2/official/SalePageCategory/{{::category.Id}}">{{category.Name}}<\/a>\n                <i class="icon icon-slim-arrow-right"><\/i>\n            <\/div>\n        <\/div>\n    <\/div>\n    <a class="close-btn popup-close" href="javascript:void(0)" data-ng-click="SalePageIndexCtrl.IsOpenMobileRelatedCategoryModal = false">\n        <i class="icon icon-slim-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/SalePage/videoDialogTemplate.html",'<div class="modal-header">\n        <h4 class="modal-title" translate="frontend.typescripts.sale_page.product_videos"><\/h4>\n        <a href="javascript:void(0)" class="close" ng-click="DialogCustomizeCtrl.Cancel()"><span class="close-text" aria-hidden="true">×<\/span><\/a>\n<\/div>\n<div class="modal-body">\n        <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCustomizeCtrl.Close()" ng-if="ShowClose"><span aria-hidden="true">×<\/span><\/a>\n        <div ns-video data-height="360" class="ns-video" video-url="{{Model.VideoUrl}}"><\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Shared/switchLocaleModal.html",'<div class="switch-locale__container">\n    <span class="right"\n          ng-click="SwitchLocaleModalCtrl.Dismiss()">\n        <i class="icon icon-slim-close"\n           aria-hidden="true"><\/i>\n    <\/span>\n    <p class="switch-locale__title">\n        <span ng-bind="SwitchLocaleModalCtrl.Title"><\/span>\n    <\/p>\n    <div class="switch-locale__block">\n        <div class="switch-locale__radio"\n             ng-repeat="item in SwitchLocaleModalCtrl.Options"\n             ng-class="{ \'active\' : SwitchLocaleModalCtrl.SelectedOption.Value === item.Value }"\n             ng-click="SwitchLocaleModalCtrl.ChangeOption(item)">\n        <span class="switch-locale__radio-text"\n              ng-bind="item.Text">\n        <\/span>\n        <\/div>\n    <\/div>\n\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Shared/switchServiceTypeModal.html",'<div class="switch-service-type__container">\n    <span class="right"\n          ng-click="SwitchServiceTypeModalCtrl.Dismiss()">\n        <i class="icon icon-slim-close"\n           aria-hidden="true"><\/i>\n    <\/span>\n    <p class="switch-service-type__title">\n        <span ng-bind="SwitchServiceTypeModalCtrl.Title"><\/span>\n    <\/p>\n    <div class="switch-service-type__block">\n        <div class="switch-service-type__radio"\n             ng-repeat="item in SwitchServiceTypeModalCtrl.Options"\n             ng-class="{ \'active\' : SwitchServiceTypeModalCtrl.SelectedOption.Value === item.Value }"\n             ng-click="SwitchServiceTypeModalCtrl.ChangeOption(item)">\n        <span class="switch-service-type__radio-text"\n              ng-bind="item.Text">\n        <\/span>\n        <\/div>\n    <\/div>\n\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Search/categoryMenu.html",'<div class="category-menu">\n    <ul class="menu-ul">\n        <li class="menu-li" data-ng-if="SearchIndexCtrl.DeviceSize === \'mobile\'">\n            <a class="menu-link" href="javascript:void(0)"\n               data-ng-class="{\'link-active\':!SearchIndexCtrl.shopCategoryId}"\n               data-ng-click="SearchIndexCtrl.SearchByCategory();">\n                <h4 class="menu-item-name" data-ng-cloak>全部分類<\/h4>\n            <\/a>\n        <\/li>\n        <li class="menu-li"\n            data-ng-repeat="level1 in SearchIndexCtrl.ShopCategoryList | orderBy: level1.Sort track by level1.Id ">\n            <a class="menu-link"\n               data-ng-init="level1.selected = false"\n               data-ng-class="{\'open\': level1.selected, \'close\': !level1.selected && level1.SubShopCategories.length > 0\n               ,\'link-active\':level1.Id == SearchIndexCtrl.shopCategoryId}"\n               data-ng-click="SearchIndexCtrl.clickLevel1(level1)">\n                <h4 class="menu-item-name" data-ng-cloak data-ng-bind="level1.Name"><\/h4>\n                (<span data-ng-bind="level1.Count"><\/span>)\n            <\/a>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\': level1.selected, \'close\': !level1.selected && level1.SubShopCategories.length > 0}">\n                <li class="child-menu-li"\n                    data-ng-repeat="level2 in level1.SubShopCategories | orderBy: level2.Sort track by level2.Id ">\n                    <a class="child-menu-link"\n                       data-ng-class="{\'link-active\':level2.Id == SearchIndexCtrl.shopCategoryId}"\n                       data-ng-click="SearchIndexCtrl.SearchByCategory(level2)">\n                        <h4 class="menu-item-name" data-ng-cloak data-ng-bind="level2.Name"><\/h4>\n                        (<span data-ng-bind="level2.Count"><\/span>)\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Search/filterList.html",'<div class="advanced-filter">\n\n    <div class="filter-content-section">\n        <div ng-repeat="tagGroup in SearchIndexCtrl.TagList"\n             class="filter-section filter-tag"\n             ng-init="open = (($index <= 2) || tagGroup.IsCollapse)">\n            <h5 class="filter-title filter-title__can-click" ng-click="open=!open">\n                {{tagGroup.GroupName}}\n                <i class="filter-title__icon icon-editor-icon_common_down_tiny" ng-class="{\'top\':open}"><\/i>\n            <\/h5>\n            <div class="filter-block filter-collapse" ng-class="{ \'filter-collapse__in\':open }">\n                <ul class="filter-block-ul">\n                    <li class="filter-li"\n                        ng-repeat="tagKey in tagGroup.Key | limitTo:(tagGroup.IsCollapse?tagGroup.Key.length:10)">\n                        <label class="filter-checkbox checkbox-container" >\n                            <input type="checkbox"\n                                   class="input-checkbox"\n                                   data-ng-model="tagKey.Checked"\n                                   data-ng-change=" SearchIndexCtrl.HandleTagOnChange(tagGroup, tagKey)"/>\n                            <span class="check-mark " ng-class="{\'cms-moneyBgColor cms-moneyBorderColor\':tagKey.Checked}" ><\/span>\n                            <span class="filter-desc label-text" ng-class="{\'cms-moneyColor\':tagKey.Checked}">{{tagKey.Name}}<\/span>\n                        <\/label>\n                    <\/li>\n                <\/ul>\n                <a class="filter-tag-show-more-btn" ng-click="SearchIndexCtrl.GetShowMoreTagList(tagGroup)" ng-if="tagGroup.IsShowMore && !tagGroup.IsCollapse" translate="frontend.typescripts.search.show_more"><\/a>\n            <\/div>\n        <\/div>\n        <!--搜尋方式-->\n        <div class="filter-section">\n            <h5 class="filter-title" translate="frontend.typescripts.search.search_method"><\/h5>\n            <div class="filter-block">\n                <ul class="filter-block-ul ">\n                    <li class="filter-li">\n                        <label class="filter-checkbox checkbox-container ">\n                            <input type="checkbox"\n                                   class="input-checkbox"\n                                   data-ng-model="SearchIndexCtrl.isUseAccurateComparison"\n                                   data-ng-change="SearchIndexCtrl.toggleAccurateComparison()"/>\n                            <span class="check-mark "\n                                  ng-class="{\'cms-moneyBgColor cms-moneyBorderColor\':SearchIndexCtrl.isUseAccurateComparison}"><\/span>\n                            <span class="filter-desc label-text "\n                                  ng-class="{\'cms-moneyColor\':SearchIndexCtrl.isUseAccurateComparison}"\n                                  translate="frontend.typescripts.search.accurate_comparison"><\/span>\n                        <\/label>\n\n                        <a href="javascript:void(0)" class="filter-link"\n                           data-ng-class="{\'selected cms-primaryBtnBorderColor cms-primaryBtnTextColor cms-primaryBtnBgColor\': SearchIndexCtrl.isUseAccurateComparison}"\n                           translate="frontend.typescripts.search.accurate_comparison"\n                           data-ng-click="SearchIndexCtrl.isUseAccurateComparison = !SearchIndexCtrl.isUseAccurateComparison;SearchIndexCtrl.toggleAccurateComparison()"><\/a>\n                    <\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n        <!--價格區間-->\n        <div class="filter-section filter-price">\n            <div class="filter-title">\n                <span translate="frontend.typescripts.search.price_range"><\/span>\n                <span class="filter-price__desc" data-ng-if="SearchIndexCtrl.MinPriceRange">\n                    <!--原始區間-->\n                    (\n                    <span translate="frontend.typescripts.search.original_range"><\/span>：\n                    <span data-ng-bind="SearchIndexCtrl.MinPriceRange | preferredCurrency"><\/span> -\n                    <span data-ng-bind="SearchIndexCtrl.MaxPriceRange | preferredCurrency"><\/span>\n                    )\n                <\/span>\n            <\/div>\n            <div class="price-range">\n                <div>\n                    <p class="price-range__text" translate="frontend.typescripts.search.lowest"><\/p>\n                    <input class="filter-input" name="minPrice" type="number" min="0"\n                           data-ng-model="SearchIndexCtrl.tempMinPrice"\n                           placeholder=""/>\n                <\/div>\n                <div class="price-range__dash"><\/div>\n                <div>\n                    <p class="price-range__text" translate="frontend.typescripts.search.highest"><\/p>\n                    <input class="filter-input" name="maxPrice" type="number" min="0"\n                           data-ng-model="SearchIndexCtrl.tempMaxPrice"\n                           placeholder=""/>\n                <\/div>\n            <\/div>\n            <div class="price-range__btn">\n                <button class="price-btn-submit cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                        data-ng-click="SearchIndexCtrl.SearchByPriceRange(false);"\n                        translate="frontend.typescripts.common.confirm">\n                <\/button>\n            <\/div>\n\n        <\/div>\n        <!--付款方式-->\n        <div class="filter-section" data-ng-if="SearchIndexCtrl.PayTypeList.length !== 0"\n             ng-init="payOpen=true">\n            <h5 class="filter-title filter-title__can-click" ng-click="payOpen=!payOpen">\n                <span translate="frontend.typescripts.search.payment"><\/span>\n                <i class="filter-title__icon icon-editor-icon_common_top_tiny" ng-class="{\'top\':payOpen}"><\/i>\n            <\/h5>\n            <div class="filter-block filter-collapse" ng-class="{ \'filter-collapse__in\': payOpen }">\n                <ul class="filter-block-ul">\n                    <li class="filter-li" data-ng-repeat="payObj in SearchIndexCtrl.PayTypeList">\n\n                        <label class="filter-checkbox checkbox-container ">\n                            <input type="checkbox"\n                                   class="input-checkbox"\n                                   data-ng-model="payObj.checked"\n                                   data-ng-change="SearchIndexCtrl.SearchByPayType(payObj,payObj.checked)"/>\n                            <span class="check-mark "\n                                  ng-class="{\'cms-moneyBgColor cms-moneyBorderColor\':payObj.checked}"><\/span>\n                            <span class="filter-desc label-text"\n                                  ng-class="{\'cms-moneyColor\':payObj.checked}"  data-ng-bind="payObj.TypeDefDesc">{<\/span>\n                        <\/label>\n\n                        <a href="javascript:void(0)" class="filter-link"\n                           data-ng-class="{\'selected cms-primaryBtnBorderColor cms-primaryBtnTextColor cms-primaryBtnBgColor\':payObj.tempChecked}"\n                           data-ng-bind="payObj.TypeDefDesc"\n                           data-ng-click="payObj.tempChecked = !payObj.tempChecked"><\/a>\n                    <\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n        <!--運送方式-->\n        <div class="filter-section" data-ng-if="SearchIndexCtrl.ShippingTypeList.length !== 0"\n             ng-init="shippingOpen=true">\n            <h5 class="filter-title filter-title__can-click" ng-click="shippingOpen=!shippingOpen">\n                <span translate="frontend.typescripts.search.shipping"><\/span>\n                <i class="filter-title__icon icon-editor-icon_common_down_tiny" ng-class="{\'top\':shippingOpen}"><\/i>\n            <\/h5>\n            <div class="filter-block filter-collapse" ng-class="{ \'filter-collapse__in\': shippingOpen }">\n                <ul class="filter-block-ul">\n                    <li class="filter-li"\n                        data-ng-repeat="shippingObj in SearchIndexCtrl.ShippingTypeList"\n                        data-ng-if="shippingObj.TypeDef !== \'CashOnDelivery\'">\n                        <label class="filter-checkbox checkbox-container ">\n                            <input type="checkbox"\n                                   class="input-checkbox"\n                                   data-ng-model="shippingObj.checked"\n                                   data-ng-change="SearchIndexCtrl.SearchByShippingType(shippingObj,shippingObj.checked)"/>\n                            <span class="check-mark "\n                                  ng-class="{\'cms-moneyBgColor cms-moneyBorderColor\':shippingObj.checked}"><\/span>\n                            <span class="filter-desc label-text"\n                                  ng-class="{\'cms-moneyColor\':shippingObj.checked}"\n                                  data-ng-bind="shippingObj.TypeDefDesc">{<\/span>\n                        <\/label>\n\n                        <a href="javascript:void(0)" class="filter-link"\n                           data-ng-class="{\'selected cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\':shippingObj.tempChecked}"\n                           data-ng-bind="shippingObj.TypeDefDesc"\n                           data-ng-click="shippingObj.tempChecked = !shippingObj.tempChecked"><\/a>\n                    <\/li>\n                <\/ul>\n            <\/div>\n\n        <\/div>\n    <\/div>\n    <div class="filter-btn-area">\n        <a href="javascript:void(0)" class="btn-fix-bottom clear-all"\n           data-ng-click="SearchIndexCtrl.ClearFilterTag()" translate="frontend.typescripts.search.clear_all"><\/a>\n        <a href="javascript:void(0)" class="btn-fix-bottom submit cms-primaryBtnTextColor cms-primaryBtnBgColor"\n           data-ng-click="SearchIndexCtrl.SubmitFilterList();SearchIndexCtrl.CloseHalfPage()"\n           translate="frontend.typescripts.common.confirm"><\/a>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Search/halfPage.html",'<div ns-push-half-page\n     ns-is-open="SearchIndexCtrl.showHalfPage"\n     ns-show-close="true"\n     ns-page-caption="SearchIndexCtrl.halfPageTitle"\n     ns-close-function="SearchIndexCtrl.ResetSearchCondition()">\n    <div class="menu-content" data-ng-include="SearchIndexCtrl.halfPageUrl">\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/Search/mobileCategoryMenu.html",'<div class="two-layer-dropdown-menu">\n    <div class="selected-category menu-row">\n        <span>商品分類：<\/span>\n        <span class="cms-secondBtnTextColor"\n            ng-bind="SearchIndexCtrl.shopCategoryName"><\/span>\n    <\/div>\n    <ul class="category-menu">\n        <!-- All category -->\n        <li class="menu-row"\n            ng-click="SearchIndexCtrl.SelectCategoryForFilter(null)"\n            ng-class="{\'menu-row--selected\' : !SearchIndexCtrl.shopCategoryId}">\n            <div class="category-menu__item">\n                <h4 class="category-menu__item__name">\n                    全部分類\n                <\/h4>\n            <\/div>\n        <\/li>\n        <!-- main menu -->\n        <div ng-repeat="level1 in SearchIndexCtrl.ShopCategoryList | orderBy: level1.Sort track by level1.Id">\n            <li class="menu-row"\n                ng-init="level1.selected = false"\n                ng-class="{\'menu-row--selected\' : level1.Id.toString() === SearchIndexCtrl.shopCategoryId}"\n                ng-click="SearchIndexCtrl.SelectCategoryForFilter(level1)">\n                <div class="category-menu__item">\n                    <h4 class="category-menu__item__name" ng-bind="level1.Name"><\/h4>\n                    <i class="icon"\n                        ng-if="level1.SubShopCategories.length > 0"\n                        ng-class="{\n                            \'icon-slim-arrow-up\' : level1.selected,\n                            \'icon-slim-arrow-down\' : !level1.selected,\n                        }">\n                    <\/i>\n            <\/div>\n            <\/li>\n            <!-- child menu -->\n            <ul class="category-menu__child-menu"\n                ng-show="level1.SubShopCategories.length > 0 && level1.selected"\n                ng-class="{\n                    \'category-menu__child-menu--open\' : level1.selected,\n                }">\n                <li ng-repeat="level2 in level1.SubShopCategories | orderBy: level2.Sort track by level2.Id"\n                    class="menu-row"\n                    ng-class="{\'menu-row--selected\' : level2.Id.toString() === SearchIndexCtrl.shopCategoryId}"\n                    ng-click="SearchIndexCtrl.SelectCategoryForFilter(level2)">\n                    <div class="category-menu__item">\n                        <h4 class="category-menu__item__name" ng-bind="level2.Name"><\/h4>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/ul>\n<\/div>');n.put("/V2/TypeScripts/Modules/Search/mobileFilterList.html",'<div class="mobile-advanced-filter">\n    <!-- 商品標籤 -->\n    <div class="filter-group" ng-repeat="tagGroup in SearchIndexCtrl.TagList track by $index">\n        <div class="filter-group__title">\n            <h5 ng-bind="tagGroup.GroupName"><\/h5>\n        <\/div>\n        <div class="filter-group__main">\n            <ul class="tags-list">\n                <li class="tags-list__item"\n                    ng-repeat="tagKey in tagGroup.Key | limitTo:(tagGroup.IsCollapse?tagGroup.Key.length:10)"\n                    ng-class="{\n                        \'selected cms-primaryBtnBorderColor cms-primaryBtnTextColor cms-primaryBtnBgColor\': tagKey.tempChecked,\n                        \'tags-list__item--inactive\': !tagKey.tempChecked\n                    }"\n                    ng-click="SearchIndexCtrl.ClickByTag(tagGroup,tagKey);SearchIndexCtrl.TrackEvent(\'搜尋-進階篩選\',\'進階篩選-\'+tagGroup.GroupName,tagKey.Name)">\n                    <span ng-bind="tagKey.Name" ><\/span>\n                <\/li>\n            <\/ul>\n            <div class="show-more-button" ng-if="tagGroup.IsShowMore"\n                ng-click="SearchIndexCtrl.GetShowMoreTagList(tagGroup)">\n                <span class="show-more-button__desc">\n                    <span ng-hide="tagGroup.IsCollapse" translate="frontend.typescripts.search.show_more"><\/span>\n                    <span ng-show="tagGroup.IsCollapse" translate="frontend.typescripts.search.show_less"><\/span>\n                <\/span>\n                <i ng-class="{\'icon-editor-icon_common_down\':!tagGroup.IsCollapse,\n                              \'icon-editor-icon_common_top\':tagGroup.IsCollapse }"><\/i>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 搜尋方式 -->\n    <div class="filter-group">\n        <div class="filter-group__title">\n            <h5 translate="frontend.typescripts.search.search_method"><\/h5>\n        <\/div>\n        <div class="filter-group__main">\n            <ul class="tags-list">\n                <li class="tags-list__item"\n                    ng-class="{\'selected cms-primaryBtnBorderColor cms-primaryBtnTextColor cms-primaryBtnBgColor\': SearchIndexCtrl.isUseAccurateComparison}"\n                    ng-click="SearchIndexCtrl.isUseAccurateComparison = !SearchIndexCtrl.isUseAccurateComparison;SearchIndexCtrl.toggleAccurateComparison()">\n                    <span translate="frontend.typescripts.search.accurate_comparison"><\/span>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!-- 價格區間 -->\n    <div class="filter-group">\n        <div class="filter-group__title">\n            <h5 class="price-range__title" translate="frontend.typescripts.search.price_range"><\/h5>\n            <p class="price-range__desc" ng-if="SearchIndexCtrl.MinPriceRange">\n                <!--原始區間-->\n                (\n                <span translate="frontend.typescripts.search.original_range"><\/span>：\n                <span ng-bind="SearchIndexCtrl.MinPriceRange | preferredCurrency"><\/span> -\n                <span ng-bind="SearchIndexCtrl.MaxPriceRange | preferredCurrency"><\/span>\n                )\n            <\/p>\n        <\/div>\n        <div class="filter-group__main">\n            <div class="price-range">\n                <div class="price-block">\n                    <p class="price-block__title" translate="frontend.typescripts.search.lowest"><\/p>\n                    <input class="price-block__input" type="number" name="minPrice"\n                        placeholder="{{\'\' | preferredCurrency}}"\n                        min="0"\n                        ng-model="SearchIndexCtrl.tempMinPrice"/>\n                <\/div>\n                <span class="price-range__dash-line"><\/span>\n                <div class="price-block">\n                    <p class="price-block__title" translate="frontend.typescripts.search.highest"><\/p>\n                    <input class="price-block__input" type="number" name="minPrice"\n                        placeholder="{{\'\' | preferredCurrency}}"\n                        min="0"\n                        ng-model="SearchIndexCtrl.tempMaxPrice"/>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 付款方式 -->\n    <div class="filter-group"\n         ng-if="SearchIndexCtrl.PayTypeList.length > 0">\n        <div class="filter-group__title">\n            <h5 translate="frontend.typescripts.search.payment"><\/h5>\n        <\/div>\n        <div class="filter-group__main">\n            <ul class="tags-list">\n                <li class="tags-list__item"\n                    ng-repeat="payObj in SearchIndexCtrl.PayTypeList"\n                    ng-class="{\n                        \'cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\': payObj.tempChecked,\n                        \'tags-list__item--inactive\': !payObj.tempChecked \n                    }"\n                    ng-click="payObj.tempChecked = !payObj.tempChecked;SearchIndexCtrl.TrackEvent(\'搜尋-進階篩選\',\'進階篩選-付款方式\',payObj.TypeDefDesc)">\n                    <span ng-bind="payObj.TypeDefDesc"><\/span>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!-- 運送方式 -->\n    <div class="filter-group"\n         ng-if="SearchIndexCtrl.ShippingTypeList.length > 0">\n        <div class="filter-group__title">\n            <h5 translate="frontend.typescripts.search.shipping"><\/h5>\n        <\/div>\n        <div class="filter-group__main">\n            <ul class="tags-list">\n                <li class="tags-list__item"\n                    ng-repeat="shippingObj in SearchIndexCtrl.ShippingTypeList"\n                    ng-class="{\n                        \'cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\': shippingObj.tempChecked,\n                        \'tags-list__item--inactive\': !shippingObj.tempChecked\n                    }"\n                    ng-click="shippingObj.tempChecked = !shippingObj.tempChecked;;SearchIndexCtrl.TrackEvent(\'搜尋-進階篩選\',\'進階篩選-運送方式\',shippingObj.TypeDefDesc)">\n                    <span ng-bind="shippingObj.TypeDefDesc"><\/span>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Search/mobileHalfPage.html",'<div class="full-screen-background">\n    <div class="full-screen-background__mobile-halfpage search-filter"\n         ng-class="{\'full-screen-background__mobile-halfpage--active\': SearchIndexCtrl.showHalfPage}">\n        <!-- Header -->\n        <div class="search-filter__header">\n            <p class="header__title" translate="frontend.typescripts.search.filter"><\/p>\n            <i class="header__close-btn icon icon-close"\n               ng-click="SearchIndexCtrl.CloseHalfPage()"><\/i>\n        <\/div>\n        <!-- Tabs -->\n        <div class="search-filter__tabs">\n            <div class="tab"\n                 ng-class="{\'tab--active cms-moneyBorderColor cms-moneyColor\': SearchIndexCtrl.openHalfPageType === SearchIndexCtrl.FilterItemTypeDefEnum[SearchIndexCtrl.FilterItemTypeDefEnum.filter]}"\n                 ng-click="SearchIndexCtrl.OpenHalfPage(SearchIndexCtrl.FilterItemTypeDefEnum[SearchIndexCtrl.FilterItemTypeDefEnum.filter])"\n                 translate="frontend.typescripts.search.selection_criteria"><\/div>\n            <div class="tab"\n                 ng-class="{\'tab--active cms-moneyBorderColor cms-moneyColor\': SearchIndexCtrl.openHalfPageType === SearchIndexCtrl.FilterItemTypeDefEnum[SearchIndexCtrl.FilterItemTypeDefEnum.category]}"\n                 ng-click="SearchIndexCtrl.OpenHalfPage(SearchIndexCtrl.FilterItemTypeDefEnum[SearchIndexCtrl.FilterItemTypeDefEnum.category])"\n                 translate="frontend.typescripts.search.salepage_category">\n            <\/div>\n        <\/div>\n        <!-- Main Content -->\n        <div class="search-filter__main">\n            <div ng-include="SearchIndexCtrl.halfPageUrl"><\/div>\n        <\/div>\n        <!-- Footer -->\n        <div class="search-filter__footer">\n            <p class="footer__clear-filter"\n               ng-click="SearchIndexCtrl.ClearAllTagForMobile()"\n               translate="frontend.typescripts.search.clear_filter">\n            <\/p>\n            <button class="footer__filter-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                    ng-click="SearchIndexCtrl.SubmitFilterList();SearchIndexCtrl.CloseHalfPage()"\n                    translate="frontend.typescripts.search.filter">\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Search/mobileOrderList.html",'<div class="full-screen-background" ng-click="SearchIndexCtrl.CloseDialog()">\n    <div class="full-screen-background__dialog search-order-list">\n        <!-- Header -->\n        <div class="search-order-list__header">\n            <p class="header__title">\n                排序\n            <\/p>\n            <i class="header__close-btn icon icon-close"><\/i>\n        <\/div>\n        <!-- Main -->\n        <div class="search-order-list__main">\n            <ul class="order-list">\n                <li class="order-list__item"\n                    ng-repeat="item in SearchIndexCtrl.orderList"\n                    ng-click="SearchIndexCtrl.ChangeOrderWay(item.orderBy);SearchIndexCtrl.selectItem = item;">\n                    <i class="order-list__item__radio icon circle"\n                        ng-class="{\n                            \'icon-radio-selected\': SearchIndexCtrl.selectItem.name === item.name,\n                            \'icon-circle\': SearchIndexCtrl.selectItem.name !== item.name}">\n                    <\/i>\n                    <p class="order-list__item__text" ng-bind="::item.name"><\/p>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/Shop/cityDistFilterList.html",'<div class="category-menu">\n    <ul class="menu-ul">\n        <li class="menu-li">\n            <a class="menu-link"\n               data-ng-class="{\'link-active\':StoreListCtrl.$translate.instant(\'frontend.typescripts.store_list.nearby_stores\') == StoreListCtrl.selectedCity.name}"\n               data-ng-click="StoreListCtrl.ChangeCity(StoreListCtrl.defaultCityObj);\n                              StoreListCtrl.CloseHalfPage()">\n                <h4 class="menu-item-name"\n                    translate="frontend.typescripts.store_list.nearby_stores"><\/h4>\n            <\/a>\n        <\/li>\n        <li class="menu-li"\n            data-ng-repeat="cityItem in StoreListCtrl.cityDistList track by cityItem.Title">\n            <a class="menu-link"\n               data-ng-init="cityItem.selected = false"\n               data-ng-class="{\n                \'open\': cityItem.selected,\n                \'close\': !cityItem.selected,\n                \'link-active\':cityItem.Title == StoreListCtrl.selectedCity.name}"\n               data-ng-click="StoreListCtrl.ChangeCity({name: cityItem.Title, cityId: cityItem.Id});\n                              StoreListCtrl.CloseHalfPage()">\n                <h4 class="menu-item-name" data-ng-cloak data-ng-bind="cityItem.Title"><\/h4>\n            <\/a>\n            <i class="icon"\n               data-ng-class="{\'icon-slim-arrow-down\': !cityItem.selected, \'icon-slim-arrow-up\': cityItem.selected}"\n               data-ng-click="cityItem.selected = !cityItem.selected"><\/i>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\': cityItem.selected, \'close\': !cityItem.selected}">\n                <li class="child-menu-li"\n                    data-ng-repeat="distItem in cityItem.AreaList track by distItem.Title ">\n                    <a class="child-menu-link"\n                       data-ng-class="{\'link-active\':distItem.Title == StoreListCtrl.selectedDist.name}"\n                       data-ng-click="StoreListCtrl.ChangeDist({name: distItem.Title, distId: distItem.Id}, {name:cityItem.Title, cityId: cityItem.Id});\n                                      StoreListCtrl.CloseHalfPage();">\n                        <h4 class="menu-item-name" data-ng-cloak data-ng-bind="distItem.Title"><\/h4>\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n        <li class="menu-li"\n            data-ng-if="StoreListCtrl.isHasOverseaStore">\n            <a class="menu-link"\n               data-ng-class="{\'link-active\':StoreListCtrl.$translate.instant(\'frontend.typescripts.store_list.overseas_store\') == StoreListCtrl.selectedCity.name}"\n               data-ng-click="StoreListCtrl.ChangeCity(StoreListCtrl.defaultOverseaObj);\n                              StoreListCtrl.CloseHalfPage()">\n                <h4 class="menu-item-name"\n                    translate="frontend.typescripts.store_list.overseas_store"><\/h4>\n            <\/a>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/Shop/halfPage.html",'<div ns-push-half-page\n     ns-is-open="StoreListCtrl.showHalfPage"\n     ns-show-close="true"\n     ns-page-caption="StoreListCtrl.halfPageTitle"\n     ns-close-function="StoreListCtrl.Close()">\n    <div class="menu-content" data-ng-include="StoreListCtrl.halfPageUrl">\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/addToCartPushHalf.template.html",'<div class="salepage-push-half modal-body add-to-cart-popup">\n    <div ns-add-to-cart\n         ns-sale-page-model="CartCtrl.SalePageModel"\n         ns-selected-sku="CartCtrl.SelectedSKUPropertySet"\n         ns-hide-show-more="true"\n         ns-is-direct-checkout="false"\n         ns-page-name="\'購物車\'"\n         ns-list-name="CartCtrl.GaListName"\n         ns-on-success="CartCtrl.OnAddToCartSuccess()"\n         ns-sku-qty-mode="CartCtrl.SkuQtyMode">\n    <\/div>\n    <a class="close-btn popup-close" href="javascript:void(0)" data-ng-click="CartCtrl.OnCloseSku()">\n        <i class="icon icon-slim-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/bankList.html",'<div class="modal-header">\n    <button type="button" class="close" ng-click="BankListCtrl.Cancel()"><span aria-hidden="true">×<\/span><\/button>\n    <h4 class="modal-title">\n        <span data-ng-bind="Title"><\/span>\n    <\/h4>\n<\/div>\n<div class="modal-body accept-card-modal">\n    <div class="accept-card-modal-title">\n        <span class="accept-card-text" translate="frontend.typescripts.shopping_cart.accept_card"><\/span>\n        <span class="credit-card-icon-list">\n            <i class="card-desc_img" ng-class="BankListCtrl.GetIconClassName(cardIcon)"\n               ng-repeat="cardIcon in BankListCtrl.CreditCardIconList track by $index"><\/i>\n        <\/span>\n    <\/div>\n    <ul>\n        <li ng-repeat="item in Model">{{::item}}<\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/batchInsertNotification.template.html",'<div class="modal-body">\n    <p>\n        <span class="notification-title" translate="frontend.typescripts.promotion.add_to_cart_notification_title"><!--TODO 更換多語系key--><\/span>\n        <span class="notification-content" ng-bind-html="Model.Message"><\/span>\n    <\/p>\n    <div class="function">\n        <button class="button full"\n                ng-click="DialogCustomizeCtrl.Ok()">\n            <span ng-bind="Model.ConfirmTitle"><\/span>\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/cartBottomInfo.template.html",'<div class="cart-footer-container">\n    <div class="cart-footer composite-area loyalty-point-area"\n         ng-if="CartCtrl.shoppingCart.loyaltyPoint && !CartCtrl.IsOpenShippingList">\n        <div class="loyalty-point"\n             ng-class="{\n                 \'disabled\': !CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption,\n                 \'loyalty-point--used\': CartCtrl.shoppingCart.loyaltyPoint.IsUsing\n             }">\n            <div class="loyalty-point__content" ng-switch="CartCtrl.shoppingCart.loyaltyPoint.DisplayType">\n                <div class="rule-description">\n                    <label class="use-point-wrapper" for="UsePoint">\n                        <div class="checkbox__container use-point"\n                             data-ng-if="CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption">\n                            <i class="checkbox__icon icon-editor"\n                               data-ng-class="{\'icon-editor-icon_checkbox\': CartCtrl.shoppingCart.loyaltyPoint.IsUsing,\n                                               \'icon-editor-icon_uncheckbox checkbox__icon--unselected\': !CartCtrl.shoppingCart.loyaltyPoint.IsUsing}"><\/i>\n                            <input id="UsePoint"\n                                   type="checkbox"\n                                   class="checkbox__input"\n                                   data-qe-id="loyalty_point_is_using_chkbox"\n                                   data-ng-model="CartCtrl.shoppingCart.loyaltyPoint.IsUsing"\n                                   data-ng-click="CartCtrl.CalculateLoyaltyPoint()"\n                                   data-ng-if="CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption"/>\n                        <\/div>\n                        <i class="icon-editor icon-editor-icon_point"\n                            ng-class="{\'icon-editor-icon_point--lower\': CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'RedeemedPoints\'}"><\/i>\n                        <div ng-switch-when="RedeemAllPoints|RedeemPartialOrAllPoints" ng-switch-when-separator="|" translate="frontend.typescripts.shopping_cart.points_discount"><\/div>\n                        <div class="use-point-wrapper__description combo-rule-description">\n                            <div class="discount-price" ng-switch-when="RedeemAllPoints|RedeemPartialOrAllPoints" ng-switch-when-separator="|">\n                                <span data-qe-id="loyalty_point_discount_price_currency_symbol">\n                                    {{CartCtrl.CurrencyFormat.CurrencySymbol}}<\/span>\n                                <span data-qe-id="loyalty_point_discount_price">\n                                {{CartCtrl.shoppingCart.loyaltyPoint.CheckoutDiscountPrice | nsAbs | preferredCurrencyWithoutSymbol}}<\/span>\n                            <\/div>\n                            <span class="rule-description"\n                                    data-qe-id="loyalty_point_desc_txt"\n                                    ng-switch-when="Unavailable">{{CartCtrl.shoppingCart.loyaltyPoint.RuleDescription}}<\/span>\n                            <span>\n                            <div ng-switch-when="RedeemedPoints">\n                                <span class="combo-rule-description__desc-group"\n                                        data-qe-id="loyalty_point_redeemed_total_points_txt"\n                                        translate="frontend.typescripts.shopping_cart.loyalty_point_total_points"\n                                        translate-value-val0="{{CartCtrl.shoppingCart.loyaltyPoint.TotalPointsPay.TotalPoints | nsAbs}}"><\/span>\n                                <span class="combo-rule-description__desc-group total-points"\n                                        data-qe-id="loyalty_point_redeemed_total_balance_points_txt"\n                                        translate="frontend.typescripts.shopping_cart.loyalty_point_total_balance_points"\n                                        translate-value-val0="{{CartCtrl.shoppingCart.loyaltyPoint.MemberTotalBalancePoint}}"><\/span>\n                            <\/div>\n                        <\/div>\n\n                    <\/label>\n                    <div class="more-description"\n                        ng-if="CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'RedeemAllPoints\' ||\n                                CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'Unavailable\'">\n                        <i class="fa fa-question-circle-o"\n                            data-qe-id="loyalty_point_more_desc_btn"\n                            ng-click="CartCtrl.ShowLoyaltyPointDialog(CartCtrl.shoppingCart.loyaltyPoint.Prompt, CartCtrl.shoppingCart.loyaltyPoint.Description)"><\/i>\n                    <\/div>\n                    <div class="edit" ng-if="CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'RedeemPartialOrAllPoints\' && CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption"\n                        translate="frontend.typescripts.common.modify"\n                        ng-click="CartCtrl.ShowRedeemPartialPointsDialog()"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class="cart-footer composite-area">\n        <div class="composite-area__info">\n            <div class="composite-area__info__shipping"\n                 ng-class="{\'text-blue\': CartCtrl.IsShowSelectShippingAreaDialog()}"\n                 ng-click="(CartCtrl.IsShowSelectShippingAreaDialog()) && (CartCtrl.IsOpenShippingList = !CartCtrl.IsOpenShippingList)">\n                 <div ng-if="CartCtrl.shoppingCart.selectedDelivery.shippingProfileTypeDef !== CartCtrl.ShippingProfileTypeDefEnum.DigitalDelivery"\n                      class="composite-area__info__shipping__contentWrapper">\n                    <i class="icon icon-oversea-order"><\/i>\n                    <span class="composite-area__info__shipping__content"\n                        ng-if="CartCtrl.shoppingCart.getSelectedShippingArea()"\n                        translate="frontend.typescripts.shopping_cart.delivery_area"\n                        translate-value-val0="{{CartCtrl.shoppingCart.getOverseaDeliveryTypeName(CartCtrl.shoppingCart.getSelectedShippingArea().Name,\n                                                                                                    CartCtrl.shoppingCart.getSelectedShippingArea().DeliveryTypeName,\n                                                                                                    CartCtrl.shoppingCart.getSelectedShippingArea().IsDisplayDeliveryType)}}"\n                    ><\/span>\n                    <!-- 運送地區：請選擇 -->\n                    <span class="composite-area__info__shipping__content"\n                        ng-if="!CartCtrl.shoppingCart.getSelectedShippingArea()"\n                        translate="frontend.typescripts.shopping_cart.delivery_area_please_select"\n                    ><\/span>\n                    <i class="icon icon-slim-arrow-up"\n                    ng-if="CartCtrl.IsShowSelectShippingAreaDialog()"><\/i>\n                <\/div>\n            <\/div>\n            <div class="composite-area__info__fee">\n                <span translate="frontend.typescripts.shopping_cart.subtotal"><\/span>\n                <span class="fee red bold cms-moneyColor" ng-bind="CartCtrl.shoppingCart.getTotalPayment() | preferredCurrency"><\/span>\n            <\/div>\n        <\/div>\n        <div class="composite-area__action">\n            <label class="next-step-btn__hint"\n                   ng-show="CartCtrl.shoppingCart.model.NextStepButtonInfo.ButtonDisableMessage"\n                   ng-bind="CartCtrl.shoppingCart.model.NextStepButtonInfo.ButtonDisableMessage">\n            <\/label>\n            <button class="next-step-btn next-step-btn--fixed-bottom"\n                    ng-class="{\n                        \'disable\': CartCtrl.DisableGoToSetpTwoButton(),\n                        \'cms-primaryBtnTextColor cms-primaryBtnBgColor\': !CartCtrl.DisableGoToSetpTwoButton()\n                    }"\n                    data-ns-ga-event-track\n                    data-track-category="購物車"\n                    data-track-action="click"\n                    data-track-label="購物車頁點擊下一步"\n                    ng-click="CartCtrl.GoToStepTwo()">\n                <span translate="frontend.typescripts.shopping_cart.next_step"><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/cartBottomInfoDesktop.template.html",'<div class="sticky-area">\n    <!-- 運送區域-->\n    <div class="sticky-area__block sticky-area__shipping-area"\n        data-qe-id="shipping-area"\n        ng-class="{\'sticky-area__shipping-area--link\': CartCtrl.IsShowSelectShippingAreaDialog()}"\n        ng-click="CartCtrl.OpenSelectShippingAreaDialog()">\n        <div ng-if="CartCtrl.shoppingCart.selectedDelivery.shippingProfileTypeDef !== CartCtrl.ShippingProfileTypeDefEnum.DigitalDelivery"\n             class="composite-area__info__shipping__contentWrapper">\n            <i class="icon icon-oversea-order"><\/i>\n            <span class="sticky-area__shipping-area--text"\n                ng-if="CartCtrl.shoppingCart.getSelectedShippingArea()"\n                translate="frontend.typescripts.shopping_cart.delivery_area"\n                translate-value-val0="{{CartCtrl.shoppingCart.getOverseaDeliveryTypeName(CartCtrl.shoppingCart.getSelectedShippingArea().Name,\n                                                                                                    CartCtrl.shoppingCart.getSelectedShippingArea().DeliveryTypeName,\n                                                                                                    CartCtrl.shoppingCart.getSelectedShippingArea().IsDisplayDeliveryType)}}"><\/span>\n            <span class="sticky-area__shipping-area--text"\n                ng-if="!CartCtrl.shoppingCart.getSelectedShippingArea()"\n                translate="frontend.typescripts.shopping_cart.delivery_area_please_select"><\/span>\n            <i class="icon icon-slim-arrow-down" ng-if="CartCtrl.IsShowSelectShippingAreaDialog()"><\/i>\n        <\/div>\n    <\/div>\n\n    <!--小計-->\n    <div class="sticky-area__block sticky-area__payment">\n        <span translate="frontend.typescripts.shopping_cart.subtotal"><\/span>\n        <span class="sticky-area__payment--amount red cms-moneyColor"\n              ng-bind="CartCtrl.shoppingCart.getTotalPayment() | preferredCurrency"><\/span>\n    <\/div>\n\n    <!--下一步-->\n    <div class="sticky-area__block">\n        <!-- PX情境 -->\n        <label class="next-step-btn__hint"\n               ng-show="CartCtrl.shoppingCart.model.NextStepButtonInfo.ButtonDisableMessage && !CartCtrl.deviceValue.IsMobile()"\n               ng-bind="CartCtrl.shoppingCart.model.NextStepButtonInfo.ButtonDisableMessage">\n        <\/label>\n        <button class="next-step-btn"\n                ng-class="{\n                            \'disable\': CartCtrl.DisableGoToSetpTwoButton(),\n                            \'cms-primaryBtnTextColor cms-primaryBtnBgColor\': !CartCtrl.DisableGoToSetpTwoButton()\n                        }"\n                data-ns-ga-event-track\n                data-track-category="購物車"\n                data-track-action="click"\n                data-track-label="購物車頁點擊下一步"\n                ng-click="CartCtrl.GoToStepTwo()">\n            <span translate="frontend.typescripts.shopping_cart.next_step"><\/span>\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/customOfflinePaymentDesc.template.html",'<div class="paymentInfo-header">\n    <div class="paymentInfo-header__title">\n        <span ng-bind="CustomOfflinePaymentDescCtrl.Title"><\/span>\n    <\/div>\n    <i class="paymentInfo-header__close-btn icon icon-close" ng-click="CustomOfflinePaymentDescCtrl.Cancel()"><\/i>\n<\/div>\n<div class="paymentInfo-content">\n    <p class="paymentInfo-content__warn-text">\n        <span translate="frontend.typescripts.shopping_cart.custom_offline_payment_popup_warn_text"><\/span>\n    <\/p>\n    <div ng-if="!!CustomOfflinePaymentDescCtrl.CustomPayInfo" \n        ns-custom-offline-payment-Inform\n        ns-bank-account-info="CustomOfflinePaymentDescCtrl.CustomPayInfo.BankInfo"\n        ns-payment-mobile="CustomOfflinePaymentDescCtrl.CustomPayInfo.Phone"\n        ns-payment-email="CustomOfflinePaymentDescCtrl.CustomPayInfo.Email"\n        ns-q-r-code-img="CustomOfflinePaymentDescCtrl.CustomPayInfo.ImagePath"\n        ns-payment-note="CustomOfflinePaymentDescCtrl.CustomPayInfo.Note"\n        ns-has-copy="CustomOfflinePaymentDescCtrl.CustomPayInfo.HasCopy">\n    <\/div>\n<\/div>\n<\/div>\n<div class="paymentInfo-footer">\n    <button class="paymentInfo-footer__confirm-btn cms-primaryBtnBgColor cms-primaryBtnTextColor" ng-click="CustomOfflinePaymentDescCtrl.Ok()">\n        <span translate="frontend.typescripts.common.confirm"><\/span>\n    <\/button>\n<\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/deliveryList.html",'<div class="modal-header">\n    <h4 class="modal-title"\n        ng-bind="::Title"><\/h4>\n<\/div>\n<div class="modal-body cart-wrapper margin-bottom-init">\n    <div class="cart-content-container cart-wrapper-container">\n        <div class="flow delivery-list"\n             ng-class="::key"\n             ng-repeat="(key, temperature) in Model">\n            <div class="cart-full-content flow-title" ng-class="{\'has-top-border\': !$first}" ng-if="!DeliveryListCtrl.deliveryItem.isOnlyNormalTemperature">\n                <h2 class="row has-hozl-gutter title" ng-if="key === \'a-Normal\'" translate="frontend.typescripts.shopping_cart.normal_temperature"><\/h2>\n                <h2 class="row has-hozl-gutter title" ng-if="key === \'b-Refrigerator\'" translate="frontend.typescripts.shopping_cart.refrigeration"><\/h2>\n                <h2 class="row has-hozl-gutter title" ng-if="key === \'c-Freezer\'" translate="frontend.typescripts.shopping_cart.freezing"><\/h2>\n            <\/div>\n            <ul class="flow-ul has-flow-bottom-gutter">\n                <li class="flow-li"\n                    ng-init="DeliveryListCtrl.SetSelectedDeliveryItem($parent.$index, deliveryTypeItem)"\n                    ng-repeat="deliveryTypeItem in temperature"\n                    ng-class="{\'active\': deliveryTypeItem.isSelected()}">\n                    <div class="cart-content flow-li__content"\n                         ng-class="{\'last-item\': $last, \'cart-full-content\': deliveryTypeItem.isSelected()}"\n                         ng-click="DeliveryListCtrl.ChooseDeliveryTypeItem(deliveryTypeItem)">\n                        <div class="row has-hozl-gutter has-bottom-gutter">\n                            <div class="list-wrapper">\n                                <input type="radio"\n                                       style="display:none"\n                                       ng-attr-name="{{key}}-deliveryTypeItem"\n                                       ng-model="DeliveryListCtrl.selectedDeliveryTypeEveryGroup[$parent.$index]"\n                                       ng-value="::deliveryTypeItem.getTypeName()">\n                                <i class="icon circle"\n                                   data-ng-class="{\n                                   \'icon-radio-selected\':DeliveryListCtrl.selectedDeliveryTypeEveryGroup[$parent.$index] === deliveryTypeItem.getId(),\n                                   \'icon-circle\':DeliveryListCtrl.selectedDeliveryTypeEveryGroup[$parent.$index] !== deliveryTypeItem.getId()}">\n                                <\/i>\n                                <div class="flow-content">\n                                    <span class="flow-li-title" ng-bind="::deliveryTypeItem.getTypeName()"><\/span>\n                                <\/div>\n                                <div class="flow-fee"\n                                     ng-class="{\'cms-moneyColor\':DeliveryListCtrl.selectedDeliveryTypeEveryGroup[$parent.$index] === deliveryTypeItem.getId()}">\n                                    <div ng-if="deliveryTypeItem.hasFreeShippingECouponUsed"\n                                         class="flow-fee__discount-text"\n                                         translate="frontend.typescripts.shopping_cart.after_discount">\n                                    <\/div>\n                                    <div ng-bind="deliveryTypeItem.getTotalFee() > 0 ? (deliveryTypeItem.getTotalFee() | preferredCurrency) : (\'frontend.typescripts.shopping_cart.free_transport\' | translate)"><\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class="row has-hozl-gutter delivery-info"\n                             style="margin-left: 30px">\n                            <span ng-if="deliveryTypeItem.canBookingPickupDate"\n                                  class="delivery-info__label"\n                                  translate="frontend.typescripts.shopping_cart.can_booking_pickup_date">\n                            <\/span>\n                            <span ng-bind="deliveryTypeItem.getDeliveryFeeInfo().description"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n<\/div>\n<div class="function">\n    <button class="button"\n            ng-click="DeliveryListCtrl.Cancel()"><span translate="frontend.typescripts.shopping_cart.cancel"><\/span>\n    <\/button>\n    <button class="button button-right cms-primaryBtnTextColor cms-primaryBtnBgColor"\n            ng-click="DeliveryListCtrl.Ok()"><span translate="frontend.typescripts.shopping_cart.confirm_btn_value"><\/span>\n    <\/button>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/description.template.atome.html",'<div class="modal__body">\n    <div class="modal__header">\n        <span translate="frontend.typescripts.shopping_cart.aftee_declaration_clause"><\/span>\n        <button type="button"\n                class="modal__header-close"\n                ng-click="PayDescriptionCtrl.Cancel()">\n            <span aria-hidden="true">\n                <i class="icon icon-slim-close"><\/i>\n            <\/span>\n        <\/button>\n    <\/div>\n    <div class="modal__content"\n         ng-bind-html="PayDescriptionCtrl.GetDeclaration(PayDescriptionCtrl.Declaration)"><\/div>\n    <div class="modal__footer">\n        <button type="button"\n                ng-click="PayDescriptionCtrl.Cancel()"\n                class="modal__footer-btn core-btn cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                translate="frontend.typescripts.common.confirm">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/description.template.html",'<div class="modal__body">\n    <div class="modal__header">\n        <span translate="frontend.typescripts.shopping_cart.aftee_declaration_clause"><\/span>\n        <button type="button"\n                class="modal__header-close"\n                ng-click="DialogCtrl.Cancel()">\n            <span aria-hidden="true">\n                <i class="icon icon-slim-close"><\/i>\n            <\/span>\n        <\/button>\n    <\/div>\n    <div class="modal__content"\n         translate="frontend.typescripts.shopping_cart.aftee_declaration_clause_content"\n         translate-value-val0="{{20|preferredCurrency}}"\n         translate-value-val1="{{10000|preferredCurrency}}"\n         translate-compile><\/div>\n    <div class="modal__footer">\n        <button type="button"\n                ng-click="DialogCtrl.Cancel()"\n                class="modal__footer-btn core-btn cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                translate="frontend.typescripts.common.confirm">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/eCouponSelector.template.html",'<div class="ecoupon-selector__header">\n    <div class="ecoupon-title" ng-bind="::Title"><\/div>\n<\/div>\n<div class="ecoupon-selector__content">\n    <!-- 優惠券輸入 -->\n    <div class="ecoupon-selector__content__input-area">\n        <div class="ecoupon-selector__content__input-area__input">\n            <input \n                name="ecoupon-code"\n                type="text"\n                translate-attr="{placeholder: \'frontend.typescripts.shopping_cart.ecoupon_promo_code_input_hint\'}"\n                ng-model="ECouponSelectorCtrl.CodeInput"\n                ng-change="ECouponSelectorCtrl.ValidateCodeInput()"\n                maxlength="20"/>\n            <i class="fa fa-times-circle ecoupon-selector__content__input-area__delete"\n               ng-if="ECouponSelectorCtrl.CodeInput"\n               ng-click="ECouponSelectorCtrl.ClearCodeInput()">\n            <\/i>\n        <\/div>\n        <button class="ecoupon-selector__button--use cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                ng-click="ECouponSelectorCtrl.GetECoupon(ECouponSelectorCtrl.CodeInput)"\n                translate="frontend.typescripts.shopping_cart.use"><\/button>\n    <\/div>\n    <!-- 折價券說明文字 -->\n    <div class="ecoupon-selector__content__reminder">\n        <i class="icon-editor-icon_alert"><\/i>\n        <span translate="frontend.typescripts.shopping_cart.ecoupon_warning_desc"><\/span>\n    <\/div>\n    <!-- 優惠碼 -->\n    <div class="ecoupon-selector__content__section"\n         ng-if="!!ECouponSelectorCtrl.PromoCodeViewModel.PromoCode && ECouponSelectorCtrl.PromoCodeViewModel.IsMatched">\n        <div class="ticket-card">\n            <i class="icon-editor icon-editor-icon_discount_event icon-editor-lg"><\/i>\n            <span translate="frontend.typescripts.shopping_cart.promo_code"><\/span>：{{ECouponSelectorCtrl.PromoCodeViewModel.PromoCode}}\n            ( <span ng-bind="ECouponSelectorCtrl.GetPromoCodeDiscountText"><\/span> )\n            <i class="icon-editor icon-editor-icon_common_close icon-editor-lg right"\n               ng-click="ECouponSelectorCtrl.ClearPromoCode()"><\/i>\n        <\/div>\n    <\/div>\n    <!-- 運費券列表 -->\n    <div ng-if="ECouponSelectorCtrl.FreeShippingECouponList.length > 0" class="ecoupon-selector__content__section">\n        <div class="ecoupon-selector__content__section__title">\n            <span translate="frontend.typescripts.shopping_cart.use_free_shipping_ecoupon_only_one"><\/span>\n        <\/div>\n        <div class="ecoupon-card"\n             ng-repeat="item in ECouponSelectorCtrl.FreeShippingECouponList track by $index">\n            <div class="ecoupon-card__selection">\n                <!-- 運費券可使用 -->\n                <i class="ecoupon-card__selection__check"\n                   ng-if="ECouponSelectorCtrl.IsFreeShippingECouponUsable(item)"\n                   ng-class="{\'icon-editor-icon_checkbox\': item.Id === ECouponSelectorCtrl.SelectedFreeShippingECouponId, \'icon-editor-icon_uncheckbox\': item.Id !== ECouponSelectorCtrl.SelectedFreeShippingECouponId}"\n                   ng-click="ECouponSelectorCtrl.SelectFreeShippingECoupon(item)">\n                <\/i>\n                <!-- 運費券不可使用 -->\n                <i class="ecoupon-card__selection__check--disabled icon-editor-icon_uncheckbox"\n                   ng-if="!ECouponSelectorCtrl.IsFreeShippingECouponUsable(item)">\n                <\/i>\n            <\/div>\n            <div class="ecoupon-card__content">\n                <div class="ecoupon-card__content__header">\n                    <div class="ecoupon-card__content__header__title">\n                        <i class="ecoupon-card__content__header__title__icon icon-editor-icon_my_coupon"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon"><\/span>\n                    <\/div>\n                    <!-- 可使用通路標籤： App/官網/門市使用、App/官網使用 -->\n                    <div class="ecoupon-card__badge cms-generalTagTextColor cms-generalTagBgColor">\n                        <span ng-bind="ECouponSelectorCtrl.GetChannelText(item)"><\/span>\n                    <\/div>\n                <\/div>\n                <!-- 運費券折抵資訊 -->\n                <div class="ecoupon-card__item--main">\n                    <span class="ecoupon-card__text--primary"\n                          ng-bind="ECouponSelectorCtrl.GetFreeShippingECouponDiscountText(item)">\n                    <\/span>\n                <\/div>\n                <!-- 運費券面文字 -->\n                <div class="ecoupon-card__item--desc">\n                    <span class="ecoupon-card__text--secondary" ng-bind="item.TicketDisplayText"><\/span>\n                <\/div>\n                <!-- 運費券使用範圍與門檻 -->\n                <div class="ecoupon-card__item--info">\n                    <div class="ecoupon-card__text--info"\n                         ng-bind="ECouponSelectorCtrl.GetFreeShippingECouponUsingRangeAndThresholdText(item)">\n                    <\/div>\n                <\/div>\n                <div class="ecoupon-card__item--info">\n                    <!-- 有效期限 -->\n                    <span class="ecoupon-card__text--info"\n                          ng-if="!ECouponSelectorCtrl.IsEndTimeLessThan24Hours(item)"\n                          translate="frontend.typescripts.shopping_cart.expire_time"\n                          translate-value-val0="{{item.UsingEndDateTime | nsDotNetDateParser | date}}"><\/span>\n                    <!-- 使用倒數 -->\n                    <div class="ecoupon-card__text--highlight"\n                         ng-if="ECouponSelectorCtrl.IsEndTimeLessThan24Hours(item)">\n                        <span translate="frontend.typescripts.shopping_cart.expire_time_countdown"><\/span>\n                        <span ns-clock-time\n                              ns-clock-time-end-date="::item.UsingEndDateTime | nsDotNetDateParser"\n                              ns-clock-time-is-closed="ECouponSelectorCtrl.Reload()"><\/span>\n                    <\/div>\n                    <!-- 查看詳情 -->\n                    <a class="ecoupon-card__more-details"\n                       target="_blank"\n                       ng-href="{{ECouponSelectorCtrl.GetDetailUrl(item)}}"\n                       translate="frontend.typescripts.shopping_cart.go_to_detail">\n                    <\/a>\n                <\/div>\n                <!-- 警告訊息依序則一顯示 -->\n                <!-- 購物車內商品的運送方式不適用 -->\n                <!-- 不適用於購物車內商品 -->\n                <!-- 還差多少金額可以使用 -->\n                <!-- 還差多少件可以使用 -->\n                <div class="ecoupon-callout--warning"\n                     ng-if="!!ECouponSelectorCtrl.GetFreeShippingECouponCalloutWarningText(item)">\n                    <i class="ecoupon-callout--warning__icon icon-editor-icon_alert"><\/i>\n                    <span ng-bind="ECouponSelectorCtrl.GetFreeShippingECouponCalloutWarningText(item)"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 折價券列表 -->\n    <div ng-if="ECouponSelectorCtrl.ECouponList.length > 0" class="ecoupon-selector__content__section">\n        <div class="ecoupon-selector__content__section__title">\n            <span translate="frontend.typescripts.shopping_cart.use_ecoupon_only_one"><\/span>\n        <\/div>\n        <div class="ecoupon-card"\n             ng-repeat="item in ECouponSelectorCtrl.ECouponList track by $index">\n            <div class="ecoupon-card__selection">\n                <!-- 有適用商品，沒有金額門檻，或有金額門檻且有達到 -->\n                <i class="ecoupon-card__selection__check"\n                   ng-if="ECouponSelectorCtrl.IsShowEnabledECouponCheckbox(item)"\n                   ng-class="{\'icon-editor-icon_checkbox\': item.Id === ECouponSelectorCtrl.SelectedECouponId, \'icon-editor-icon_uncheckbox\': item.Id !== ECouponSelectorCtrl.SelectedECouponId}"\n                   ng-click="ECouponSelectorCtrl.SelectECoupon(item)">\n                <\/i>\n                <!-- 沒適用商品，或有金額門檻且沒有達到 -->\n                <i class="ecoupon-card__selection__check--disabled icon-editor-icon_uncheckbox"\n                   ng-if="!ECouponSelectorCtrl.IsShowEnabledECouponCheckbox(item)">\n                <\/i>\n            <\/div>\n            <div class="ecoupon-card__content">\n                <div class="ecoupon-card__content__header">\n                    <div class="ecoupon-card__content__header__title">\n                        <i class="ecoupon-card__content__header__title__icon icon-editor-icon_my_coupon"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.discount_coupon"><\/span>\n                    <\/div>\n                    <!-- 可使用通路標籤： App/官網/門市使用、App/官網使用 -->\n                    <div class="ecoupon-card__badge cms-generalTagTextColor cms-generalTagBgColor">\n                        <span ng-bind="ECouponSelectorCtrl.GetChannelText(item)"><\/span>\n                    <\/div>\n                <\/div>\n                <!-- 折價券折抵資訊 -->\n                <div class="ecoupon-card__item--main">\n                    <!-- 折抵有上限 -->\n                    <span class="ecoupon-card__text--primary"\n                          ng-if="item.ECouponMaxDiscountLimit"\n                          translate="frontend.typescripts.shopping_cart.ecoupon_discount_info"\n                          translate-value-val0="{{ECouponSelectorCtrl.DiscountRateUtility.ReturnECouponDiscountWording(item.DiscountTypeDef, item.DiscountPercent, item.DiscountPrice)}}"\n                          translate-value-val1="{{ECouponSelectorCtrl.DiscountRateUtility.ReturnMaxDiscountLimit(item.DiscountTypeDef, item.ECouponMaxDiscountLimit)}}"><\/span>\n                    <!-- 折抵無上限 -->\n                    <span class="ecoupon-card__text--primary"\n                          ng-if="!item.ECouponMaxDiscountLimit"\n                          ng-bind="ECouponSelectorCtrl.DiscountRateUtility.ReturnECouponDiscountWording(item.DiscountTypeDef, item.DiscountPercent, item.DiscountPrice)"><\/span>\n                <\/div>\n                <!-- 折價券面文字 -->\n                <div class="ecoupon-card__item--desc">\n                    <span class="ecoupon-card__text--secondary" ng-bind="item.TicketDisplayText"><\/span>\n                <\/div>\n                <!-- 折價券使用範圍與門檻 -->\n                <div class="ecoupon-card__item--info">\n                    <div class="ecoupon-card__text--info">\n                        <span ng-bind="ECouponSelectorCtrl.GetECouponUsingRangeAndThresholdText(item)"><\/span>\n                        <!-- 自選券顯示「只可與折扣活動擇一使用」 -->\n                        <span ng-if="item.CalculateTypeDef === \'ECoupon\'">\n                            （<span translate="frontend.typescripts.shopping_cart.self_choose"><\/span>）\n                        <\/span>\n                    <\/div>\n                <\/div>\n                <div class="ecoupon-card__item--info">\n                    <!-- 有效期限 -->\n                    <span class="ecoupon-card__text--info"\n                          ng-if="!ECouponSelectorCtrl.IsEndTimeLessThan24Hours(item)"\n                          translate="frontend.typescripts.shopping_cart.expire_time"\n                          translate-value-val0="{{item.UsingEndDateTime | nsDotNetDateParser | date}}"><\/span>\n                    <!-- 使用倒數 -->\n                    <div class="ecoupon-card__text--highlight"\n                         ng-if="ECouponSelectorCtrl.IsEndTimeLessThan24Hours(item)">\n                        <span translate="frontend.typescripts.shopping_cart.expire_time_countdown"><\/span>\n                        <span ns-clock-time\n                              ns-clock-time-end-date="::item.UsingEndDateTime | nsDotNetDateParser"\n                              ns-clock-time-is-closed="ECouponSelectorCtrl.Reload()"><\/span>\n                    <\/div>\n                    <!-- 查看詳情 -->\n                    <a class="ecoupon-card__more-details"\n                       target="_blank"\n                       ng-href="{{ECouponSelectorCtrl.GetDetailUrl(item)}}"\n                       translate="frontend.typescripts.shopping_cart.go_to_detail">\n                    <\/a>\n                <\/div>\n                <!-- 以下擇一顯示 -->\n                <!-- 已優先使用優惠碼，無法再使用此券 -->\n                <!-- 不適用於購物車內商品 -->\n                <!-- 有適用於購物車商品，有門檻，還差多少金額可以使用 -->\n                <div class="ecoupon-callout--warning"\n                     ng-if="!!ECouponSelectorCtrl.GetECouponCalloutWarningText(item)">\n                    <i class="ecoupon-callout--warning__icon icon-editor-icon_alert"><\/i>\n                    <span ng-bind="ECouponSelectorCtrl.GetECouponCalloutWarningText(item)"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 贈品券列表 -->\n    <div ng-if="ECouponSelectorCtrl.GiftECouponList.length > 0" class="ecoupon-selector__content__section">\n        <div class="ecoupon-selector__content__section__title">\n            <span translate="frontend.typescripts.shopping_cart.shopping_cart_gift_coupon_use"><\/span>\n        <\/div>\n        <div class="ecoupon-card" ng-repeat="item in ECouponSelectorCtrl.GiftECouponList track by $index">\n            <div class="ecoupon-card__selection">\n                <!-- 有庫存，沒有金額門檻，或有金額門檻且有達到 -->\n                <i class="ecoupon-card__selection__check"\n                   ng-if="item.HasStock && (!item.HasECouponUsingMinPrice || item.IsAchieveUsingMinPrice)"\n                   ng-class="{\'icon-editor-icon_checkbox\': item.IsSelected, \'icon-editor-icon_uncheckbox\': !item.IsSelected}"\n                   ng-click="ECouponSelectorCtrl.SelectGiftECoupon(item)">\n                <\/i>\n                <!-- 沒庫存，或有金額門檻且沒有達到 -->\n                <i class="ecoupon-card__selection__check--disabled icon-editor-icon_uncheckbox"\n                   ng-if="!item.HasStock || (item.HasECouponUsingMinPrice && !item.IsAchieveUsingMinPrice)">\n                <\/i>\n            <\/div>\n            <div class="ecoupon-card__content">\n                <div class="ecoupon-card__content__header">\n                    <div class="ecoupon-card__content__header__title">\n                        <i class="ecoupon-card__content__header__title__icon icon-editor-icon_my_coupon"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.gift_coupon"><\/span>\n                    <\/div>\n                    <!-- 可使用通路標籤： App/官網/門市使用、App/官網使用 -->\n                    <div class="ecoupon-card__badge cms-generalTagTextColor cms-generalTagBgColor">\n                        <span ng-bind="ECouponSelectorCtrl.GetChannelText(item)"><\/span>\n                    <\/div>\n                <\/div>\n                <div class="ecoupon-card__item--main">\n                    <span class="ecoupon-card__text--primary"\n                          translate="frontend.typescripts.shopping_cart.gift_ecoupon_card_title"><\/span>\n                <\/div>\n                <!-- 贈品券面文字 -->\n                <div class="ecoupon-card__item--desc">\n                    <span class="ecoupon-card__text--secondary" ng-bind="item.TicketDisplayText"><\/span>\n                <\/div>\n                <!-- 贈品券使用門檻 -->\n                <div class="ecoupon-card__item--info" >\n                    <span ng-if="item.HasECouponUsingMinPrice"\n                          class="ecoupon-card__text--info"\n                          translate="frontend.typescripts.shopping_cart.ecoupon_unassigned_has_threshold"\n                          translate-value-val0="{{item.ECouponUsingMinPrice | preferredCurrency}}"><\/span>\n                    <span ng-if="!item.HasECouponUsingMinPrice"\n                          class="ecoupon-card__text--info"\n                          translate="frontend.typescripts.shopping_cart.ecoupon_unassigned_no_threshold"><\/span>\n                <\/div>\n                <div class="ecoupon-card__item--info">\n                    <!-- 有效期限 -->\n                    <span class="ecoupon-card__text--info"\n                          translate="frontend.typescripts.shopping_cart.expire_time"\n                          translate-value-val0="{{item.UsingEndDateTime | nsDotNetDateParser | date}}"><\/span>\n                    <!-- 查看詳情 -->\n                    <a class="ecoupon-card__more-details"\n                       target="_blank"\n                       ng-href="{{ECouponSelectorCtrl.GetDetailUrl(item)}}"\n                       translate="frontend.typescripts.shopping_cart.go_to_detail">\n                    <\/a>\n                <\/div>\n                <!-- 贈品已無庫存 -->\n                <div class="ecoupon-callout--warning" ng-if="!item.HasStock">\n                    <i class="ecoupon-callout--warning__icon icon-editor-icon_alert"><\/i>\n                    <span translate="frontend.typescripts.shopping_cart.this_gift_no_inventory"><\/span>\n                <\/div>\n                <!-- 有庫存，沒達門檻，還差多少金額可使用 -->\n                <div class="ecoupon-callout--warning"\n                     ng-if="item.HasStock && !ECouponSelectorCtrl.IsECouponAchieveMinPrice(item)">\n                    <i class="ecoupon-callout--warning__icon icon-editor-icon_alert"><\/i>\n                    <span translate="frontend.typescripts.shopping_cart.pay_more_to_use"\n                          translate-value-val0="{{item.ECouponMinPriceBalance | preferredCurrency}}">\n                    <\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 無券使用 -->\n    <div ng-if="ECouponSelectorCtrl.IsNoECoupon()" class="ecoupon-selector__content--no-item">\n        <img\n            src="/V2/Content/Images/Icon/none-ecoupon.png"\n            width="144px"\n            height="71px"\n            alt="No ECoupon"\n        />\n        <div class="ecoupon-selector__content--no-item__text">\n            <span translate="frontend.typescripts.shopping_cart.coupon_promo_code_selector_empty_hint"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n<div class="ecoupon-selector__footer">\n    <button class="ecoupon-selector__button--cancel cms-secondBtnTextColor cms-secondBtnBgColor cms-secondBtnBorderColor"\n            ng-click="ECouponSelectorCtrl.Cancel()"\n            translate="frontend.typescripts.shopping_cart.cancel"><\/button>\n    <button class="ecoupon-selector__button--confirm cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n            ng-click="ECouponSelectorCtrl.Ok()"\n            translate="frontend.typescripts.shopping_cart.confirm_btn_value"><\/button>\n<\/div>\n<div><\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/flow.html",'<!--提示訊息-->\n<div class="cart-content-container cart-warning"\n     ng-if="FlowCtrl.shoppingCart.getDeliveryWarning() || FlowCtrl.PayProfileTypeDefEnum[FlowCtrl.shoppingCart.getSelectedPaymentType()] === FlowCtrl.PayProfileTypeDefEnum.FreeOfCharge">\n    <div class="cart-full-content padding-verl-init">\n        <div class="row has-hozl-gutter">\n            <div data-ng-if="FlowCtrl.PayProfileTypeDefEnum[FlowCtrl.shoppingCart.getSelectedPaymentType()] === FlowCtrl.PayProfileTypeDefEnum.FreeOfCharge"\n                  translate="frontend.typescripts.shopping_cart.free_of_charge_warning"\n                  translate-value-val0="{{ 0 | preferredCurrency }}"><\/div>\n            <div ng-bind="::FlowCtrl.shoppingCart.getDeliveryWarning()"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<!--內容-->\n<div class="cart-wrapper-container"\n     ng-init="FlowCtrl.InitCart()">\n    <!--金流清單-->\n    <div class="cart-content-container has-border has-bottom-gutter"\n         ng-if="FlowCtrl.shoppingCart.paymentList.length > 0">\n        <div class="flow payment-list">\n            <div class="cart-full-content flow-title">\n                <h2 class="row has-hozl-gutter title"\n                    translate="frontend.typescripts.shopping_cart.pay_method"><\/h2>\n            <\/div>\n            <ul class="flow-ul">\n                <li class="flow-li"\n                    ng-repeat="payItem in FlowCtrl.shoppingCart.paymentList track by $index"\n                    ng-class="{\'active\': payItem.getDisplayName() == FlowCtrl.shoppingCart.getSelectedPaymentDisplayName()}">\n                    <div class="cart-content flow-li__content"\n                         ng-class="{\'cart-full-content\': payItem.getDisplayName() == FlowCtrl.shoppingCart.getSelectedPaymentDisplayName(),\n                                    \'flow-li__content--with-promotion-card-list\': payItem.model.DesignatePaymentPromotionList.length > 0,\n                                    \'flow-li__content--with-subtitle\': FlowCtrl.IsHasSubitle(payItem.getType())}"\n                         ng-init="FlowCtrl.selectedPaymentDisplayName = FlowCtrl.shoppingCart.getSelectedPaymentDisplayName()"\n                         ng-click="FlowCtrl.ChoosePayItem(payItem); FlowCtrl.selectedPaymentDisplayName = FlowCtrl.shoppingCart.getSelectedPaymentDisplayName(); FlowCtrl.paymentClickTimes = FlowCtrl.paymentClickTimes+1">\n                         <div class="row has-hozl-gutter margin-right-20">\n                            <div class="credit-card-once">\n                                <div class="left-content">\n                                    <input type="radio"\n                                       name="payType"\n                                       style="display: none"\n                                       ng-model="FlowCtrl.selectedPaymentDisplayName"\n                                       ng-value="::payItem.getDisplayName()">\n                                    <i class="icon circle"\n                                       data-ng-class="{\n                                       \'icon-radio-selected\':payItem.getDisplayName() === FlowCtrl.shoppingCart.getSelectedPaymentDisplayName(),\n                                       \'icon-circle\':payItem.getDisplayName() !== FlowCtrl.shoppingCart.getSelectedPaymentDisplayName()\n                                       }">\n                                    <\/i>\n                                    <span class="flow-li-title pay-type-name"\n                                          data-qe-id="pay_method_name"\n                                          ng-bind="::payItem.getDisplayName()"><\/span>\n                                <\/div>\n                                <div class="right-content credit-card-list" ng-if="FlowCtrl.IsShowCreditCardIcon(payItem.type)">\n                                    <i class="card-desc_img"  ng-class="FlowCtrl.GetIconClassName(cardIcon)"\n                                       ng-repeat="cardIcon in FlowCtrl.GetCardIconList(payItem) track by $index"><\/i>\n                                <\/div>\n                                <div class="right-content"\n                                     data-ng-if="FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.Aftee || FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.Atome">\n                                    <!--Atome & AfteePay 需出現顯示聲明條款popup-->\n                                    <a class="right"\n                                       style="font-size: 12px"\n                                       data-ng-click=\'FlowCtrl.ShowPayDescDialog($event, payItem.getType())\'\n                                       data-ng-if="FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.Atome ||\n                                                   FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.Aftee"\n                                       translate=\'frontend.typescripts.shopping_cart.atome_declaration_clause\'>\n                                    <\/a>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <!--指定信用卡折扣活動選擇活動區塊-->\n                        <div class="row">\n                            <div class="promotion-card-list"\n                                 ng-if="::payItem.GetDesignatePaymentPromotionList(FlowCtrl.AppVersionUtility.IsFromApp()).length > 0">\n                                <div class="promotion-card-list__hint-container">\n                                    <label class="promotion-card-list__hint"\n                                           ng-show="FlowCtrl.ShowDesignatePaymentPromotionBubbleNotice"\n                                           ng-click="FlowCtrl.BubbleNoticeClicked($event)"\n                                           translate="frontend.typescripts.shopping_cart.click_to_join_the_event"><\/label>\n                                <\/div>\n                                <div class="promotion-card-list__title"\n                                    translate="frontend.typescripts.shopping_cart.select_the_following_designated_credit_card_activities"><\/div>\n                                <div class="promotion-card-list__list"\n                                     ng-init="showMore = false"\n                                     ng-class="{\'promotion-card-list__list--more\': showMore}">\n                                    <div class="promotion-card-list__card"\n                                         ng-repeat="designatePaymentPromotion in payItem.GetDesignatePaymentPromotionList(FlowCtrl.AppVersionUtility.IsFromApp())"\n                                         ng-class="{\'promotion-card-list__card--checked\': designatePaymentPromotion.Id === FlowCtrl.shoppingCart.getSelectedDesignatePaymentPromotionId()}"\n                                         ng-click="FlowCtrl.ChooseDesignatePaymentPromotion($event, designatePaymentPromotion, payItem)">\n                                        <div class="promotion-card-list__card-name"\n                                             ng-bind="designatePaymentPromotion.Title"><\/div>\n                                        <div class="promotion-card-list__card-desc"\n                                             ng-bind="designatePaymentPromotion.ConditionTitle | stringToPreferredCurrency"><\/div>\n                                        <div class="promotion-card-list__card-button">\n                                            <span ng-if="designatePaymentPromotion.Id !== FlowCtrl.shoppingCart.getSelectedDesignatePaymentPromotionId()"\n                                                translate="frontend.typescripts.shopping_cart.click_to_join"><\/span>\n                                            <span ng-if="designatePaymentPromotion.Id === FlowCtrl.shoppingCart.getSelectedDesignatePaymentPromotionId()"\n                                                translate="frontend.typescripts.shopping_cart.already_articipated"><\/span>\n                                        <\/div>\n                                <\/div>\n                                <div class="cart-campaign-see-more hide-at-mobile"\n                                     ng-show="::payItem.GetDesignatePaymentPromotionList(FlowCtrl.AppVersionUtility.IsFromApp()).length > 3"\n                                     ng-click="$event.stopPropagation();showMore = !showMore">\n                                    <div class="cart-campaign-see-more__text"\n                                         ng-if="!showMore">\n                                        <span translate="frontend.typescripts.shopping_cart.see_more_product_see_more"><\/span><i class="icon icon-slim-arrow-down"><\/i>\n                                    <\/div>\n                                    <div class="cart-campaign-see-more__text"\n                                         ng-if="showMore">\n                                        <span translate="frontend.typescripts.shopping_cart.collapse_product_see_more"><\/span><i class="icon icon-slim-arrow-up"><\/i>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class="row has-hozl-gutter">\n                            <ul class="payment-info">\n                                <li ng-if="::payItem.needShowBankList()"\n                                    class="clearfix">\n                                    <span class="payment-info__desc"\n                                          translate="frontend.typescripts.shopping_cart.pay_each_period"\n                                          translate-value-val0="{{payItem.getAccountsPayable() | preferredCurrency}}"\n                                          ng-if="payItem.getAccountsPayable()">\n                                    <\/span>\n                                    <a class="right"\n                                       ng-click="FlowCtrl.ShowBankList(payItem.getBankListTitle(), payItem.getBankList(), payItem.model); $event.stopPropagation();"\n                                       translate="frontend.typescripts.shopping_cart.bank_val_count"\n                                       translate-value-val0="{{::payItem.getBankListLength()}}"><\/a>\n                                <\/li>\n                                <li class="payment-info__desc"\n                                    ng-if="::payItem.getPayPromotionDisplayWording()"\n                                    ng-bind="::payItem.getPayPromotionDisplayWording()">\n                                <\/li>\n\n                                <li class="payment-info__desc"\n                                    ng-if="::payItem.isShowPayPromotionDateTime()">\n                                    <span ng-bind="::payItem.getPayPromotionStartDateTime() | nsDotNetDateParser | date: \'medium\'"><\/span>\n                                    -\n                                    <span ng-bind="::payItem.getPayPromotionEndDateTime() | nsDotNetDateParser | date: \'medium\'"><\/span>\n                                <\/li>\n                                <li class="payment-info__desc"\n                                    data-ng-if="FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.FreeOfCharge"\n                                    translate="frontend.typescripts.shopping_cart.free_of_charge_description"\n                                    translate-value-val0="{{ 0 | preferredCurrency}}"><\/li>\n                                <!--AfteePay, Atome 副標-->\n                                <li  class="clearfix"\n                                     data-ng-if="!!FlowCtrl.GetPaytypeSubtitle(payItem.getType())">\n                                    <span class="payment-info__desc" ng-bind="FlowCtrl.GetPaytypeSubtitle(payItem.getType())"><\/span>\n                                <\/li>\n                                <!-- 其他轉帳方式 顯示說明popup -->\n                                <li class="clearfix"\n                                    ng-if="FlowCtrl.PayProfileTypeDefEnum[payItem.getType()] === FlowCtrl.PayProfileTypeDefEnum.CustomOfflinePayment">\n                                    <span class="payment-info__desc" translate="frontend.typescripts.shopping_cart.custom_offline_payment_desc_msg"><\/span>\n                                    <a class="right" \n                                        ng-click=\'FlowCtrl.ShowCustomOfflinePaymentDesc(); $event.stopPropagation();\'\n                                        translate=\'frontend.typescripts.shopping_cart.payment_instruction\'>\n                                    <\/a>\n                                <\/li>\n                            <\/ul>\n                        <\/div>\n                        <div ng-if="payItem.needDisplayTag()"\n                             class="row has-hozl-gutter">\n                            <!--（金流）行銷廣告設定圖卡展示 -->\n                            <div class="row">\n                                <div class="payment-campaign-tag-img-list" ng-if="payItem.tagImages.length > 0">\n                                    <div class="payment-campaign-tag-img-list__title"\n                                         translate="frontend.typescripts.shopping_cart.more_activities"><\/div>\n                                    <div class="payment-campaign-tag-img-list__list"\n                                         ng-init="tagImagesShowMore = false"\n                                         ng-class="{\'payment-campaign-tag-img-list__list--more\': tagImagesShowMore}">\n                                        <div class="payment-campaign-tag-img-list__card"\n                                             ng-repeat="tagImage in payItem.tagImages track by $index">\n                                            <a ng-if="tagImage.LinkUrl"\n                                               ng-href="{{tagImage.LinkUrl}}"\n                                               target="_blank">\n                                                <img ng-src="{{tagImage.ImagePath}}"/>\n                                            <\/a>\n                                            <img ng-if="!tagImage.LinkUrl"\n                                                 ng-src="{{tagImage.ImagePath}}"/>\n                                        <\/div>\n                                    <\/div>\n                                    <div class="cart-campaign-see-more hide-at-mobile"\n                                         ng-show="payItem.tagImages.length > FlowCtrl.PaymentCampaignTagImgPerLineCountMax"\n                                         ng-click="$event.stopPropagation(); tagImagesShowMore = !tagImagesShowMore">\n                                        <div class="cart-campaign-see-more__text"\n                                             ng-if="!tagImagesShowMore">\n                                            <span translate="frontend.typescripts.shopping_cart.see_more_product_see_more"><\/span>\n                                            <i class="icon icon-slim-arrow-down"><\/i>\n                                        <\/div>\n                                        <div class="cart-campaign-see-more__text"\n                                             ng-if="tagImagesShowMore">\n                                            <span translate="frontend.typescripts.shopping_cart.collapse_product_see_more"><\/span>\n                                            <i class="icon icon-slim-arrow-up"><\/i>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                            <div class="payment-campaign-tag">\n                                <span ng-style="{\'background-color\': payItem.tagColorCode}" class="payment-campaign-tag__title"\n                                      ng-bind="payItem.tagText"><\/span>\n                                <span ng-style="{\'color\': payItem.tagColorCode}" class="payment-campaign-tag__desc"\n                                      ng-bind="payItem.tagDescribe"><\/span>\n                            <\/div>\n                        <\/div>\n                        <!-- 金物流滿額贈 Tag -->\n                        <div class="row has-hozl-gutter">\n                            <div class="gift-tag" ng-repeat="payShippingPromotion in payItem.model.PayShippingPromotionList track by $index">\n                                <span class="gift-tag__title" \n                                      ng-style="{ \'background-color\': payShippingPromotion.Tag.BackgroundColor, \'color\': payShippingPromotion.Tag.Color }" \n                                      ng-bind="payShippingPromotion.Tag.Text"><\/span>\n                                <span class="gift-tag__desc" ng-bind="payShippingPromotion.Title.Text"><\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!--物流清單-->\n    <div class="cart-content-container has-border"\n         ng-if="FlowCtrl.shoppingCart.deliveryList.length > 0 || FlowCtrl.shoppingCart.overseasDeliveryList.length > 0">\n        <div class="flow delivery-list">\n            <div class="cart-full-content flow-title">\n                <h2 class="row has-hozl-gutter title" translate="frontend.typescripts.shopping_cart.shipping_method"><\/h2>\n            <\/div>\n            <ul class="flow-ul">\n                <li class="flow-li"\n                    ng-repeat="deliveryItem in FlowCtrl.shoppingCart.deliveryList"\n                    ng-class="{\'active\': FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedShippingAreaId() === deliveryItem.getShippingAreaId()}">\n                    <div class="cart-content flow-li__content"\n                         ng-class="{\'cart-full-content\': FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedShippingAreaId() === deliveryItem.getShippingAreaId()}"\n                         ng-init="FlowCtrl.selectedDeliveryType = FlowCtrl.shoppingCart.getSelectedDeliveryType()"\n                         ng-click="FlowCtrl.ChooseShippingItem(deliveryItem); FlowCtrl.deliveryClickTimes = FlowCtrl.deliveryClickTimes+1">\n                        <ul class="row has-hozl-gutter has-bottom-gutter">\n                            <li class="left flow-recommend flow-recommend--min-ship-fee"\n                                ng-if="!deliveryItem.needDisplayTag() && deliveryItem.isRecommend()"\n                                translate="frontend.typescripts.shopping_cart.min_ship_fee"><\/li>\n                        <\/ul>\n                        <div class="row has-hozl-gutter has-bottom-gutter">\n                            <div class="list-wrapper">\n                                <!-- 配送方式 Radio Button -->\n                                <div class="left">\n                                    <input type="radio"\n                                           name="shippingType"\n                                           style="display: none;"\n                                           ng-model="FlowCtrl.selectedDeliveryType"\n                                           ng-value="::deliveryItem.getType()">\n                                    <i class="icon circle"\n                                       data-ng-class="{\n                                       \'icon-radio-selected\':FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedShippingAreaId() === deliveryItem.getShippingAreaId(),\n                                       \'icon-circle\':FlowCtrl.shoppingCart.getSelectedDeliveryType() !== deliveryItem.getType() || FlowCtrl.shoppingCart.getSelectedShippingAreaId() !== deliveryItem.getShippingAreaId()\n                                       }">\n                                    <\/i>\n                                <\/div>\n                                <!-- 配送方式 Icon -->\n                                <div class="left">\n                                    <img class="delivery-icon"\n                                         src="/V2/Content/Images/icon_deliverpage_hilife.svg"\n                                         ng-if="deliveryItem.isHiLifeShipping()"/>\n                                    <img class="delivery-icon"\n                                         src="/V2/Content/Images/icon_deliverpage_family.svg?t=170317"\n                                         ng-if="deliveryItem.isFamilyShipping()"/>\n                                    <img class="delivery-icon"\n                                         src="/V2/Content/Images/icon_deliverpage_711.svg?t=170317"\n                                         ng-if="deliveryItem.isSevenElevenShipping()"/>\n                                    <img class="delivery-alfredlocker-icon"\n                                         src="/V2/Content/Images/icon_deliverpage_Alfred.svg"\n                                         ng-if="deliveryItem.isAlfredShipping()"/>\n                                    <img class="delivery-icon"\n                                         src="/V2/Content/Images/icon_deliverpage_ok.svg"\n                                         ng-if="deliveryItem.isOKShipping()"/>\n                                <\/div>\n                                <!-- 配送方式名稱 -->\n                                <div class="flow-content">\n                                    <span class="flow-li-title"\n                                          data-qe-id="delivery_method_name"\n                                          translate="{{FlowCtrl.GetDeliveryName(deliveryItem)}}"><\/span>\n                                <\/div>\n                                <!-- 運費 -->\n                                <div class="flow-fee"\n                                     ng-class="{\'cms-moneyColor\':FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedShippingAreaId() === deliveryItem.getShippingAreaId()}">\n                                    <!-- 折扣後運費，有運費折扣皆要顯示，運費券、運費活動與指定信用卡折扣活動 -->\n                                    <div ng-if="deliveryItem.getTotalFee() !== deliveryItem.getFee() && !deliveryItem.IsEnabledCombineTradesOrderFee"\n                                         class="flow-fee__discount-text"\n                                         translate="frontend.typescripts.shopping_cart.after_discount">\n                                    <\/div>\n                                    <!-- 運費金額 -->\n                                    <div ng-bind="deliveryItem.getTotalFee() > 0 ? (deliveryItem.getTotalFee() | preferredCurrency) : (\'frontend.typescripts.shopping_cart.free_transport\'|translate)"><\/div>\n                                    <!-- 折扣前運費，有運費折扣皆要顯示，運費券、運費活動與指定信用卡折扣活動 -->\n                                    <div ng-if="deliveryItem.getTotalFee() !== deliveryItem.getFee() && !deliveryItem.IsEnabledCombineTradesOrderFee"\n                                         class="flow-fee__original-fee"\n                                         ng-bind="deliveryItem.getFee() | preferredCurrency">\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <ul class="row has-hozl-gutter delivery-info">\n                            <li ng-repeat="item in ::deliveryItem.deliveryInfoList">\n                                <span ng-if="item.canBookingPickupDate"\n                                      class="delivery-info__label"\n                                      translate="frontend.typescripts.shopping_cart.can_booking_pickup_date">\n                                <\/span>\n                                <span ng-hide="item.isRetailStore">\n                                    <span ng-bind="::item.getTypeName()"><\/span>\n                                    <span ng-if="item.getDeliveryFeeInfo().description">\n                                        (<span ng-bind="item.getDeliveryFeeInfo().description"><\/span>)\n                                    <\/span>\n                                <\/span>\n                                <span ng-show="item.isRetailStore">\n                                    <span ng-if="item.getDeliveryFeeInfo().description">\n                                        <span ng-bind="item.getDeliveryFeeInfo().description"><\/span>\n                                    <\/span>\n                                <\/span>\n                                <!-- 運費表icon-->\n                                <a class="flow-li-icon" ng-if="FlowCtrl.ShowShopShippingWeightProfile(item)"\n                                   ng-click="FlowCtrl.GetShopShippingWeightProfileUrl(item,$event)">\n                                    <i class="icon icon-editor-icon_common_alert"><\/i>\n                                <\/a>\n                            <\/li>\n                        <\/ul>\n                        <!-- 運費券 Tag -->\n                        <div ng-if="deliveryItem.hasFreeShippingECouponUsed"\n                             class="row free-shipping-ecoupon-tag has-hozl-gutter has-bottom-gutter">\n                            <span class="free-shipping-ecoupon-tag__title"\n                                  translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon"><\/span>\n                            <span class="free-shipping-ecoupon-tag__desc"\n                                  ng-bind="FlowCtrl.shoppingCart.selectedFreeShippingECoupon.TicketDisplayText"><\/span>\n                        <\/div>\n                        <ul class="row has-hozl-gutter has-bottom-gutter"\n                            ng-if="deliveryItem.needDisplayTag()">\n                            <li class="left flow-recommend"\n                                ng-bind="deliveryItem.tagText"\n                                ng-style="{\'background-color\':deliveryItem.tagColorCode}"><\/li>\n                            <li class="left flow-recommend-describe"\n                                ng-bind="deliveryItem.tagDescribe"\n                                ng-style="{\'color\':deliveryItem.tagColorCode}"><\/li>\n                        <\/ul>\n                        <!-- 金物流滿額贈 Tag -->\n                        <div class="row has-hozl-gutter">\n                            <div class="gift-tag" ng-repeat="payShippingPromotion in deliveryItem.model.PayShippingPromotionList track by $index">\n                                <span class="gift-tag__title" \n                                        ng-style="{ \'background-color\': payShippingPromotion.Tag.BackgroundColor, \'color\': payShippingPromotion.Tag.Color }" \n                                        ng-bind="payShippingPromotion.Tag.Text"><\/span>\n                                <span class="gift-tag__desc" ng-bind="payShippingPromotion.Title.Text"><\/span>\n                            <\/div>\n                        <\/div>\n                        <ul class="row has-hozl-gutter delivery-info">\n                            <li ng-if="::deliveryItem.canChangeDeliveryType()"\n                                ng-click="FlowCtrl.ShowDeliveryList(deliveryItem, $index); $event.stopPropagation();">\n                                <a class="right"\n                                   data-ns-ga-event-track\n                                   data-track-category="購物車"\n                                   data-track-action="click"\n                                   data-track-label="其他選項"\n                                   translate="frontend.typescripts.shopping_cart.other_option"\n                                ><\/a>\n                            <\/li>\n                            <li ng-if="::deliveryItem.hasLocationList()">\n                                <a ng-click="FlowCtrl.ShowLocationList(); $event.stopPropagation();"\n                                   translate="frontend.typescripts.shopping_cart.store_list"><\/a>\n                            <\/li>\n                        <\/ul>\n                    <\/div>\n                <\/li>\n                <!-- 海外配送 -->\n                <li class="flow-li"\n                    ng-repeat="deliveryItem in FlowCtrl.shoppingCart.overseasDeliveryList"\n                    ng-class="{\'active\': FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedDeliveryTypeId() === deliveryItem.deliveryInfoList[0].getId()}">\n                    <div class="cart-content flow-li__content"\n                         ng-class="{\'cart-full-content\': FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedDeliveryTypeId() === deliveryItem.deliveryInfoList[0].getId()}"\n                         ng-init="FlowCtrl.selectedDeliveryType = FlowCtrl.shoppingCart.getSelectedDeliveryType()"\n                         ng-click="FlowCtrl.ChooseOverseasShippingItem(deliveryItem); FlowCtrl.deliveryClickTimes = FlowCtrl.deliveryClickTimes+1">\n                        <div class="row has-hozl-gutter has-bottom-gutter"><\/div>\n                        <div class="row has-hozl-gutter has-bottom-gutter">\n                            <div class="list-wrapper">\n                                <div class="left">\n                                    <input type="radio"\n                                           name="shippingType"\n                                           style="display: none;"\n                                           ng-model="FlowCtrl.selectedDeliveryType"\n                                           ng-value="::deliveryItem.getType()">\n                                    <i class="icon circle"\n                                       data-ng-class="{\n                                       \'icon-radio-selected\':FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedDeliveryTypeId() === deliveryItem.deliveryInfoList[0].getId(),\n                                       \'icon-circle\':FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedDeliveryTypeId() !== deliveryItem.deliveryInfoList[0].getId()\n                                       }">\n                                    <\/i>\n                                <\/div>\n                                <div class="flow-content">\n                                    <span class="flow-li-title"\n                                          data-qe-id="delivery_method_name"\n                                          ng-bind="::deliveryItem.deliveryInfoList[0].getTypeName()"><\/span>\n                                <\/div>\n                                <div class="flow-fee"\n                                     ng-class="{\'cms-moneyColor\':FlowCtrl.shoppingCart.getSelectedDeliveryType() === deliveryItem.getType() && FlowCtrl.shoppingCart.getSelectedDeliveryTypeId() === deliveryItem.deliveryInfoList[0].getId()}">\n                                    <!-- 折扣後運費，有運費折扣皆要顯示，運費券、運費活動與指定信用卡折扣活動 -->\n                                    <div ng-if="deliveryItem.getTotalFee() !== deliveryItem.getFee() && !deliveryItem.IsEnabledCombineTradesOrderFee"\n                                         class="flow-fee__discount-text"\n                                         translate="frontend.typescripts.shopping_cart.after_discount">\n                                    <\/div>\n                                    <!-- 運費金額 -->\n                                    <div ng-bind="deliveryItem.getTotalFee() > 0 ? (deliveryItem.getTotalFee() | preferredCurrency) : (\'frontend.typescripts.shopping_cart.free_transport\'|translate)"><\/div>\n                                    <!-- 折扣前運費，有運費折扣皆要顯示，運費券、運費活動與指定信用卡折扣活動 -->\n                                    <div ng-if="deliveryItem.getTotalFee() !== deliveryItem.getFee() && !deliveryItem.IsEnabledCombineTradesOrderFee"\n                                         class="flow-fee__original-fee"\n                                         ng-bind="deliveryItem.getFee() | preferredCurrency">\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <ul class="row has-hozl-gutter delivery-info">\n                            <li>\n                                <span translate="{{deliveryItem.getDisplayName()}}"><\/span>\n                                <span ng-if="deliveryItem.deliveryInfoList[0].getDeliveryFeeInfo().description">\n                                    (<span ng-bind="deliveryItem.deliveryInfoList[0].getDeliveryFeeInfo().description | stringToPreferredCurrency"><\/span>)\n                                <\/span>\n                                <!-- 運費表icon-->\n                                <a class="flow-li-icon" ng-if="FlowCtrl.ShowShopShippingWeightProfile(deliveryItem.deliveryInfoList[0])"\n                                   ng-click="FlowCtrl.GetShopShippingWeightProfileUrl(deliveryItem.deliveryInfoList[0],$event)">\n                                    <i class="icon icon-editor-icon_common_alert"><\/i>\n                                <\/a>\n                            <\/li>\n                        <\/ul>\n                        <!-- 運費券 Tag -->\n                        <div ng-if="deliveryItem.hasFreeShippingECouponUsed"\n                             class="row free-shipping-ecoupon-tag has-hozl-gutter has-bottom-gutter">\n                            <span class="free-shipping-ecoupon-tag__title"\n                                  translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon"><\/span>\n                            <span class="free-shipping-ecoupon-tag__desc"\n                                  ng-bind="FlowCtrl.shoppingCart.selectedFreeShippingECoupon.TicketDisplayText"><\/span>\n                        <\/div>\n                        <!-- 金物流滿額贈 Tag -->\n                        <div class="row has-hozl-gutter">\n                            <div class="gift-tag" ng-repeat="payShippingPromotion in deliveryItem.model.PayShippingPromotionList track by $index">\n                                <span class="gift-tag__title" \n                                      ng-style="{ \'background-color\': payShippingPromotion.Tag.BackgroundColor, \'color\': payShippingPromotion.Tag.Color }" \n                                      ng-bind="payShippingPromotion.Tag.Text"><\/span>\n                                <span class="gift-tag__desc" ng-bind="payShippingPromotion.Title.Text"><\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <div class="cart-content-container"\n         ng-show="FlowCtrl.shoppingCart && FlowCtrl.shoppingCart.isValid() && FlowCtrl.IsShowShippingWeight()">\n        <div class="flow shipping-info">\n            <div class="info">\n                <div class="label" translate="frontend.typescripts.shopping_cart.ship_area">\n                <\/div>\n                <div class="content">\n                    {{FlowCtrl.shoppingCart.getSelectedShippingArea().Name}}\n                <\/div>\n            <\/div>\n            <div class="info">\n                <div class="label" translate="frontend.typescripts.shopping_cart.total_weight">\n                <\/div>\n                <div class="content">\n                    {{FlowCtrl.shoppingCart.getTotalWeight()}} <span\n                        translate="frontend.typescripts.shopping_cart.total_weight_kg"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--購物車各金額整理-->\n    <div class="cart-content-container"\n         ng-show="FlowCtrl.shoppingCart && FlowCtrl.shoppingCart.isValid()">\n        <div class="cart-full-content">\n            <!--各費用-->\n            <div class="row has-hozl-gutter">\n                <div class="cart-conclusion">\n                    <!--一般小計-->\n                    <div class="conclusion-row">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.subtotal_after_discount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="FlowCtrl.shoppingCart.getTotalPayment(FlowCtrl.shoppingCart.designatePaymentPromotionDiscountForDisplay === 0) | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--運費-->\n                    <div ng-repeat="feeItem in FlowCtrl.shoppingCart.selectedDelivery.deliveryInfoList">\n                        <div class="conclusion-row conclusion-row--thin">\n                            <div class="conclusion-li__left">\n                                <span class="delivery__title">\n                                    <span translate="{{feeItem.getDeliveryFeeInfo().temperature}}"\n                                          ng-hide="FlowCtrl.shoppingCart.isOnlyNormalTemperature() || feeItem.isRetailStore"><\/span>\n                                    <span translate="frontend.typescripts.shopping_cart.shipping_fee"><\/span>\n                                <\/span>\n                            <\/div>\n                            <div class="conclusion-li__right fee"\n                                 data-qe-id="{{feeItem.getTemperatureType().toLowerCase() + \'_delivery_fee\'}}"\n                                 ng-bind="feeItem.getDeliveryFeeInfo().fee > 0 ? (feeItem.getDeliveryFeeInfo().fee | preferredCurrency) : (\'frontend.typescripts.shopping_cart.free_transport\'|translate)"><\/div>\n                        <\/div>\n                        <div class="conclusion-row conclusion-row--thin delivery__fee-text"\n                             ng-if="feeItem.getDeliveryFeeInfo().hint"\n                             ng-bind="feeItem.getDeliveryFeeInfo().hint | stringToPreferredCurrency">\n                        <\/div>\n                    <\/div>\n                    <!--運費活動折扣-->\n                    <div class="conclusion-row"\n                         ng-if="FlowCtrl.shoppingCart.selectedDelivery.getTotalPromotionDiscount()">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.shipping_fee_promotion_discount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="FlowCtrl.shoppingCart.selectedDelivery.getTotalPromotionDiscount() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!-- 運費券折扣 -->\n                    <div class="conclusion-row"\n                         ng-if="FlowCtrl.shoppingCart.freeShippingECouponDiscount">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.free_shipping_ecoupon_discount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="FlowCtrl.shoppingCart.freeShippingECouponDiscount | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--指定信用卡折扣-->\n                    <div class="conclusion-row"\n                         ng-if="FlowCtrl.shoppingCart.designatePaymentPromotionDiscountForDisplay">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.designated_credit_card_discount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="FlowCtrl.shoppingCart.designatePaymentPromotionDiscountForDisplay | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--總計-->\n                    <div class="conclusion-row has-top-border has-top-gutter">\n                        <!-- 共 X 項商品 -->\n                        <div class="conclusion-li__left highlight"\n                             ng-if="FlowCtrl.shoppingCart.getMerchandiseCount() > 0"\n                             translate="frontend.typescripts.shopping_cart.total_span_items"\n                             translate-value-val0="{{FlowCtrl.shoppingCart.getMerchandiseCount()}}"\n                        >\n                        <\/div>\n                        <div class="conclusion-li__right fee red total bold cms-moneyColor"\n                             ng-bind="FlowCtrl.shoppingCart.getFinalPayment() | preferredCurrency"><\/div>\n                    <\/div>\n                    <div class="conclusion-row" ng-show="FlowCtrl.CurrencyCode !== FlowCtrl.SalesCurrency">\n                        <div class="conclusion-li__right"\n                             translate="frontend.typescripts.shopping_cart.preferred_currency_hint"><\/div>\n                    <\/div>\n                    <div class="conclusion-row padding-bottom-init">\n                        <div class="conclusion-li__right"\n                             translate="frontend.typescripts.shopping_cart.include_ship"><\/div>\n                    <\/div>\n                    <div class="conclusion-row padding-bottom-init has-top-gutter"\n                         data-ng-if="FlowCtrl.LocalizationConfig.ShoppingCart.ShowPayCurrency">\n                        <div class="conclusion-li__right">\n                            <span class="tooltip tooltip-bottom"\n                                  translate-attr="{\'data-tooltip-content\':\'frontend.typescripts.shopping_cart.prompt_content_20190718\'}"\n                                  translate-values="{val0:FlowCtrl.SalesCurrency}"\n                                  data-ng-if="!FlowCtrl.deviceValue.IsMobile()">\n                                <span translate="frontend.typescripts.shopping_cart.pay_currency_20190718"\n                                      translate-value-val0="{{FlowCtrl.SalesCurrency}}"><\/span>\n                                <i class="fa fa-question-circle-o"><\/i>\n                            <\/span>\n                            <span data-ng-if="FlowCtrl.deviceValue.IsMobile()"\n                                  data-ng-click="FlowCtrl.OpenCurrencyPrompt()">\n                                <span translate="frontend.typescripts.shopping_cart.pay_currency_20190718"\n                                      translate-value-val0="{{FlowCtrl.SalesCurrency}}"><\/span>\n                                <i class="fa fa-question-circle-o"><\/i>\n                            <\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--此交易為安全連線-->\n    <div class="cart-content-container" ng-if="FlowCtrl.deviceValue.IsMobile()">\n        <div class="cart-full-content cart-footer padding-top-init">\n            <div class="foot-message">\n                <i class="fa-fw fa fa-lock"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.this_is_secure_connect"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!--Moble置底：國家地區配送、小記、下一步-->\n    <div class="cart-footer-container" ng-if="FlowCtrl.deviceValue.IsMobile()">\n        <div class="cart-footer composite-area">\n            <div class="composite-area__info">\n                <div class="composite-area__info__shipping">\n                    <div ng-if="FlowCtrl.shoppingCart.selectedDelivery.shippingProfileTypeDef !== FlowCtrl.ShippingProfileTypeDefEnum.DigitalDelivery"\n                         class="composite-area__info__shipping__contentWrapper">\n                        <i class="icon icon-oversea-order"><\/i>\n                        <span class="composite-area__info__shipping__content"\n                            translate="frontend.typescripts.shopping_cart.delivery_area"\n                            translate-value-val0="{{FlowCtrl.shoppingCart.getOverseaDeliveryTypeName(FlowCtrl.shoppingCart.getSelectedShippingArea().Name,\n                                                                                                    FlowCtrl.shoppingCart.getChooseShippingItem().DeliveryTypeName,\n                                                                                                    FlowCtrl.shoppingCart.getChooseShippingItem().IsDisplayDeliveryType)}}"\n                        ><\/span>\n                    <\/div>\n                <\/div>\n                <div class="composite-area__info__fee">\n                    <span translate="frontend.typescripts.shopping_cart.subtotal"><\/span>\n                    <span class="fee red bold cms-moneyColor"\n                          ng-bind=" FlowCtrl.shoppingCart.getFinalPayment() | preferredCurrency"><\/span>\n                <\/div>\n            <\/div>\n            <div class="composite-area__action">\n                <button class="next-step-btn next-step-btn--fixed-bottom cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                        ng-click="FlowCtrl.NextStep(); FlowCtrl.TrackFlowClickTimes(FlowCtrl.paymentClickTimes, FlowCtrl.deliveryClickTimes)"\n                        translate="frontend.typescripts.shopping_cart.next_step"\n                ><\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Desktop置底：國家地區配送、小計、下一步 -->\n    <div class="cart-content-container cart-footer cart-footer-sticky "\n         ng-if="!FlowCtrl.deviceValue.IsMobile() && FlowCtrl.shoppingCart && FlowCtrl.shoppingCart.isValid()">\n        <div class="sticky-area">\n            <!-- 運送區域-->\n            <div class="sticky-area__block sticky-area__shipping-area" >\n                <div ng-if="FlowCtrl.shoppingCart.selectedDelivery.shippingProfileTypeDef !== FlowCtrl.ShippingProfileTypeDefEnum.DigitalDelivery">\n                    <i class="icon icon-oversea-order"><\/i>\n                    <span class="sticky-area__shipping-area--text"\n                        translate="frontend.typescripts.shopping_cart.delivery_area"\n                        translate-value-val0="{{FlowCtrl.shoppingCart.getOverseaDeliveryTypeName(FlowCtrl.shoppingCart.getSelectedShippingArea().Name,\n                                                                                                    FlowCtrl.shoppingCart.getChooseShippingItem().DeliveryTypeName,\n                                                                                                    FlowCtrl.shoppingCart.getChooseShippingItem().IsDisplayDeliveryType)}}"\n                    ><\/span>\n                <\/div>\n            <\/div>\n\n            <!--小計-->\n            <div class="sticky-area__block sticky-area__payment">\n                <span translate="frontend.typescripts.shopping_cart.subtotal"><\/span>\n                <span class="sticky-area__payment--amount red cms-moneyColor"\n                      ng-bind=" FlowCtrl.shoppingCart.getFinalPayment() | preferredCurrency"><\/span>\n            <\/div>\n\n            <!--下一步-->\n            <div class="sticky-area__block">\n                <button class="next-step-btn cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                        ng-click="FlowCtrl.NextStep(); FlowCtrl.TrackFlowClickTimes(FlowCtrl.paymentClickTimes, FlowCtrl.deliveryClickTimes)">\n                    <span translate="frontend.typescripts.shopping_cart.next_step"><\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/index.html",'<!--空購物車-->\n<div class="cart-empty"\n     ng-if="CartCtrl.isEmpty">\n    <img ng-src="{{CartCtrl.CssCDNDomain}}/V2/Content/Images/Icon/emptycart.png">\n    <div class="cart-empty__message">\n        <p translate="frontend.typescripts.shopping_cart.no_items_shop_cart"><\/p>\n        <a ng-href="{{::CartCtrl.OfficialOriginDomain}}"\n           translate="frontend.typescripts.shopping_cart.continue_shopping"><\/a>\n    <\/div>\n<\/div>\n\n<!-- PX 實體門市外送、門市取貨資訊 -->\n<div class="cart-wrapper-container"\n     ng-if="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid() && !!CartCtrl.shoppingCart.getRetailStoreShippingInfo">\n    <div class="cart-content-container">\n        <div class="retailstore">\n            <div class="retailstore__content">\n                <div class="retailstore__content title">\n                    <span translate="frontend.typescripts.shopping_cart.retail_store_delivery_to"\n                          translate-value-val0="{{CartCtrl.shoppingCart.getRetailStoreShippingInfo.DeliveryFullAddress}}"\n                          ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.LatestChosenService === CartCtrl.RetailStoreLatestChosenServiceEnum[CartCtrl.RetailStoreLatestChosenServiceEnum.Delivery]"\n                    ><\/span>\n                <\/div>\n                <div class="retailstore__content desc"\n                     ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.NearestAvailableTimeMessage ||\n                            CartCtrl.shoppingCart.getRetailStoreShippingInfo.LatestChosenService === CartCtrl.RetailStoreLatestChosenServiceEnum[CartCtrl.RetailStoreLatestChosenServiceEnum.Delivery]">\n                    <div class="retailstore__content__item"\n                         ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.NearestAvailableTimeMessage">\n                        <i class="icon-editor icon-editor-icon_schedule"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.retail_store_fastest_delivery_time"\n                              translate-value-val0="{{CartCtrl.shoppingCart.getRetailStoreShippingInfo.NearestAvailableTimeMessage}}"\n                              ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.LatestChosenService === CartCtrl.RetailStoreLatestChosenServiceEnum[CartCtrl.RetailStoreLatestChosenServiceEnum.Delivery]"\n                        ><\/span>\n                    <\/div>\n                    <div class="retailstore__content__item"\n                         ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.LatestChosenService === CartCtrl.RetailStoreLatestChosenServiceEnum[CartCtrl.RetailStoreLatestChosenServiceEnum.Delivery]">\n                        <i class="icon-editor icon-editor-icon_store_frame"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.retail_store_assign_store_delivery"\n                              translate-value-val0="{{CartCtrl.shoppingCart.getRetailStoreLocationName}}"><\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class="retailstore__function"\n                 ng-if="CartCtrl.shoppingCart.getRetailStoreShippingInfo.IsRetailStoreEditable">\n                <i class="icon-editor icon-editor-icon_common_edit"\n                   ng-click="CartCtrl.HandleClickRetailStoreEdit()"><\/i>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!--提示訊息 由上而下的顯示順序-->\n<div class="cart-content-container cart-warning"\n     ng-if="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isExceedPayTypePriceUpperLimit() ||\n            CartCtrl.shoppingCart && CartCtrl.shoppingCart.isExceedTheUpperLimit()">\n    <div class="cart-full-content padding-verl-init">\n        <div class="row has-hozl-gutter">\n            <span translate="frontend.typescripts.shopping_cart.shop_cart_exceed"\n                  translate-value-val0="{{::(CartCtrl.shoppingCart.isExceedPayTypePriceUpperLimit() ? CartCtrl.shoppingCart.getMaxOverLimitPayTypePrice() : CartCtrl.shoppingCart.getMaxAmount()) | preferredCurrency}}">\n            <\/span>\n        <\/div>\n    <\/div>\n<\/div>\n<div class="cart-content-container cart-warning"\n     ng-if="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isFallShortOfPayTypePriceLowerLimit()">\n    <div class="cart-full-content padding-verl-init">\n        <div class="row has-hozl-gutter">\n            <span translate="frontend.typescripts.shopping_cart.shop_cart_fall_short_of"\n                translate-value-val0="{{::CartCtrl.shoppingCart.getMinLowerLimitPayTypePrice() | preferredCurrency}}">\n            <\/span>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- 無交集預選運送方式提示文字 -->\n<div class="cart-content-container cart-warning"\n     ng-if="CartCtrl.shoppingCart.isShowNoPayShippingIntersectionMsg()">\n    <div class="cart-full-content padding-verl-init">\n        <div class="row has-hozl-gutter">\n            <span translate="frontend.typescripts.shopping_cart.same_pay_ship_set_order"><\/span><br/>\n            <span translate="frontend.typescripts.shopping_cart.preselect_for_easy_checkout"\n                  translate-value-val0="{{CartCtrl.shoppingCart.selectedDelivery.getName()}}"><\/span><br/>\n            <span translate="frontend.typescripts.shopping_cart.rest_items_next_time"\n                  translate-value-val0="{{CartCtrl.shoppingCart.unMappingMerchandiseList.length}}"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- 超取沒空間取貨msg -->\n<div class="cart-content-container cart-warning red"\n     ng-if="CartCtrl.shoppingCart && CartCtrl.showNoSpaceErr">\n    <div class="cart-full-content padding-verl-init">\n        <div class="row has-hozl-gutter"\n             translate="frontend.typescripts.shopping_cart.shop_cart_contain_low_temp"><\/div>\n    <\/div>\n<\/div>\n<!--桌機版需提示商品數量-->\n<div class="cart-wrapper-row hide-at-mobile"\n     ng-show="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid() && CartCtrl.shoppingCart.getMerchandiseCount() > 0"\n     translate="frontend.typescripts.shopping_cart.total_items"\n     translate-value-val0="{{CartCtrl.shoppingCart.getMerchandiseCount()}}">\n<\/div>\n<!--非空購物車-->\n<div class="cart-wrapper-container"\n     ng-init="CartCtrl.InitPage()"\n     ng-show="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid()">\n    <!--一般商品清單-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-repeat="(key, temperature) in CartCtrl.shoppingCart.temperatureDictionary">\n        <!--溫層別-->\n        <h3 class="cart-full-content list-title-name"\n            ng-if="key === \'b-Refrigerator\'">\n            <div class="row has-hozl-gutter"\n                 translate="frontend.typescripts.shopping_cart.refrigeration"><\/div>\n        <\/h3>\n        <h3 class="cart-full-content list-title-name"\n            ng-if="key === \'c-Freezer\'">\n            <div class="row has-hozl-gutter"\n                 translate="frontend.typescripts.shopping_cart.freezing"><\/div>\n        <\/h3>\n        <div class="merchandise "\n             data-ng-class="{\'merchandise--gift\': merchandise.isGiftSalePage()}"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in temperature.childList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n            <!-- 一般商品列表 -->\n             <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}" \n                 ng-if="!merchandise.isGiftSalePage()">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   data-ns-ga-ec-product-clicks\n                   data-product-id="{{::merchandise.getId()}}"\n                   data-product-name="{{::merchandise.getTitle()}}"\n                   data-product-price="{{::merchandise.getTotalPayment()}}"\n                   data-product-position="{{::($index+1)}}"\n                   data-list-name="確認購物車頁"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure>\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                        <h3 class="merchandise-type"\n                            ng-if="merchandise.getAdditionalTypeInfo()"\n                            ng-bind="(merchandise.getAdditionalTypeInfo() | translate)"><\/h3>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <div class="merchandise-sku"\n                         ng-if="merchandise.getSKUPropertyDisplay()"\n                         ng-bind="::merchandise.getSKUPropertyDisplay()"><\/div>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveItem(merchandise, temperature, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="CartCtrl.shoppingCartStaticDataModel && CartCtrl.IsRewardPointPromotionSalePage(merchandise.getId())">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.promotion_points_tag"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量和價格-->\n                <div class="row has-hozl-gutter">\n                    <div class="qty-and-price-area">\n                        <div class="counter qty-and-price-area__qty-counter">\n                            <span class="decrease-btn"\n                                  ng-click="merchandise.decreaseQty(\'Qty\', CartCtrl, CartCtrl.ModifyMerchandiseQtyCallback, {temperature: temperature, index: $index})"><i\n                                    class="icon icon-slim-minus"><\/i><\/span>\n                            <span class="qty"\n                                  data-qe-id="cart_merchandise_qty"\n                                  ng-bind="merchandise.getQty()"><\/span>\n                            <span class="increase-btn"\n                                  ng-class="{\'active\': merchandise.getQty() == merchandise.model.QtyLimit}"\n                                  ng-click="merchandise.increaseQty(\'Qty\', CartCtrl, CartCtrl.ModifyMerchandiseQtyCallback)"><i\n                                    class="icon icon-slim-plus"><\/i><\/span>\n                        <\/div>\n                        <div class="fee-container qty-and-price-area__price">\n                            <div class="fee-prefix-text cms-moneyColor"\n                                 ng-class="{\'invisible\':!merchandise.hasMatchedAnyPromotion() || merchandise.getTotalDiscount() === 0}"\n                                 translate="frontend.typescripts.shopping_cart.after_discount"><\/div>\n                            <div class="fee cms-moneyColor"\n                                 ng-if="merchandise.isPointsPayPair">\n                                <div ng-if="merchandise.getPointPayPairPrice() === 0"\n                                     translate="frontend.typescripts.shopping_cart.point_pay_pair_only_point"\n                                     translate-value-val0="{{merchandise.getPointPayPairPoint() | number}}"><\/div>\n                                <div ng-if="merchandise.getPointPayPairPrice() > 0 && merchandise.getPointPayPairPoint() > 0"\n                                     translate="frontend.typescripts.shopping_cart.point_pay_pay_totalpayment"\n                                     translate-value-val0="{{merchandise.getPointPayPairPoint() | number}}"\n                                     translate-value-val1="{{merchandise.getPointPayPairPrice() | preferredCurrency}}"><\/div>\n                            <\/div>\n                            <div class="fee cms-moneyColor"\n                                 ng-if="!merchandise.isPointsPayPair"\n                                 data-qe-id="cart_merchandise_total_payment"\n                                 ng-bind="merchandise.getTotalPayment() | preferredCurrency"><\/div>\n                            <div ng-if="merchandise.getTotalDiscount() !== 0 && !merchandise.isPointsPayPair"\n                                 translate="frontend.typescripts.shopping_cart.save_money"\n                                 translate-value-val0="{{merchandise.getTotalDiscount()*-1 | preferredCurrency}}"><\/div>\n                            <div ng-if="merchandise.isPointsPayPair && merchandise.getLoyaltyPointDiscount()"\n                                 translate="frontend.typescripts.shopping_cart.save_money"\n                                 translate-value-val0="{{merchandise.getLoyaltyPointDiscount() | preferredCurrency}}"><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!--定期購訂購週期選單 (正常交集)-->\n                <div class="row has-hozl-gutter regular-purchase regular-order"\n                     data-ng-if="merchandise.getSaleProductShippingTypeDef() === \'RegularOrder\'">\n                    <div ng-switch="merchandise.getRegularOrderSettingProvider()">\n                        <div ng-switch-when="Nine1">\n                            <div class="order-option-block__title"\n                                 translate="frontend.typescripts.shopping_cart.regular_order_frequency">\n                            <\/div>\n                            <div class="order-option-block__cart__fn">\n                                <select \n                                    class="selector"\n                                    data-ng-model="merchandise.selectedDeliveryPeriod"\n                                    data-ng-change="CartCtrl.SetSelectedRegularOrderPeriod()"\n                                    data-ng-options="Period as Period.PeriodName for Period in merchandise.getDeliveryPeriodList()"\n                                    data-ng-required="true">\n                                    <option \n                                        value=""\n                                        translate="frontend.typescripts.shopping_cart.regular_order_select_frequency"\n                                    ><\/option>\n                                <\/select>\n                                <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                            <\/div>\n                        <\/div>\n                        <div\n                            ng-if="merchandise.getSelectedRegularOrderSettingOption() === CartCtrl.RegularOrderOptionEnum.Regular"\n                            ng-switch-when="GameBall"\n                        >\n                            <div>\n                                <!-- 配送週期 -->\n                                <div\n                                    class="order-option-block__title"\n                                    translate="frontend.typescripts.shopping_cart.regular_order_period">\n                                <\/div>\n                                <div class="order-option-block__cart__fn">\n                                    <select\n                                        class="selector"\n                                        ng-model="merchandise.selectedDeliveryPeriod"\n                                        ng-change="CartCtrl.SetSelectedRegularOrderPeriod()"\n                                        ng-options="Period as Period.PeriodName for Period in merchandise.getDeliveryPeriodList()"\n                                        ng-init="merchandise.initRegularOrderPeriodSelected()"\n                                    ><\/select>\n                                    <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                                <\/div>\n                                \n                            <\/div>\n                            <div ng-if="merchandise.getMaxDeliveryCountSetting() > 0">\n                                <!-- 配送次數 -->\n                                <div\n                                    class="order-option-block__title"\n                                    translate="frontend.typescripts.shopping_cart.regular_order_delivery_count">\n                                <\/div>\n                                <div class="order-option-block__cart__fn">\n                                    <select\n                                        class="selector"\n                                        ng-model="merchandise.selectedMaxDeliveryCount"\n                                        ng-change="CartCtrl.SetSelectedRegularOrderMaxDeliveryCount()"\n                                        ng-options="orderCount.Value as orderCount.Key for orderCount in merchandise.maxDeliveryCountDataSource"\n                                        ng-init="merchandise.initRegularOrderMaxDeliveryCountSelected()"\n                                    ><\/select>\n                                    <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!--商品折扣活動-->\n                <ul class="row has-top-gutter has-hozl-gutter"\n                    data-ns-ga-event-track\n                    data-track-category="購物車"\n                    data-track-action="click"\n                    data-track-label="商品對應活動文字提示">\n                    <!-- 適不適用折價券、折扣活動、優惠碼文案 -->\n                    <li class="merchandise-exclude"\n                        ng-if="!!merchandise.getInvalidText(CartCtrl.shoppingCart.checkHasECoupon(),\n                                                            CartCtrl.shoppingCart.getSelectedECouponId(),\n                                                            CartCtrl.shoppingCart.isPromoCodeSelected)">\n                        <span class="badge badge-fixed">\n                            <i class="icon icon-exclamation"\n                               aria-hidden="true"><\/i>\n                            <span translate="{{merchandise.getInvalidText(CartCtrl.shoppingCart.checkHasECoupon(),\n                                                                          CartCtrl.shoppingCart.getSelectedECouponId(),\n                                                                          CartCtrl.shoppingCart.isPromoCodeSelected)}}"><\/span>\n                        <\/span>\n                    <\/li>\n                    <!-- 已符合／未符合活動 -->\n                    <li class="merchandise-promotion"\n                        ng-if="merchandise.promotionList.length > 0"\n                        ng-repeat="promotion in merchandise.promotionList">\n                        <div ng-click="CartCtrl.GoToPromotionDetail(promotion)"\n                             class="merchandise-promotion-information">\n                            <span class="badge badge__left"\n                                  ng-if="promotion.isConditionMatched()"\n                                  translate="frontend.typescripts.shopping_cart.okay"><\/span>\n                            <span class="badge badge__left highlight"\n                                  ng-if="!promotion.isConditionMatched()"\n                                  translate="frontend.typescripts.shopping_cart.okay_no"><\/span>\n                            <span class="badge__text merchandise-promotion-information__promotion-name"\n                                  ng-class="{\'highlight\':!promotion.isConditionMatched()}">\n                                <div class="merchandise-promotion-information__promotion-name-collection">\n                                    <span ng-if="promotion.isAppOnlyPromotion()"\n                                          translate="frontend.typescripts.shopping_cart.app_only_promotion_with_brackets"><\/span>\n                                    <span ng-bind="promotion.getTitle()"><\/span>\n                                <\/div>\n                            <\/span>\n                            <i ng-if="CartCtrl.DisplayUnmatchedPromotionTooltip(merchandise, promotion)"\n                               ng-click="CartCtrl.ShowUnmatchedPromotionDialog($event)"\n                               class="merchandise-promotion-information__tooltip fa fa-question-circle-o"><\/i>\n                        <\/div>\n                    <\/li>\n                <\/ul>\n                <!--App獨享活動導下載-->\n                <ns-app-only-promotion ns-shop-id="{{CartCtrl.ShopId}}"\n                                       ns-desc="{{\'frontend.typescripts.shopping_cart.app_only_promotion_desc\'|translate}}"\n                                       ns-download-link-html="{{CartCtrl.AppOnlyPromotionDownloadHtml}}"\n                                       ng-if="merchandise.isAppOnlyPromotion() ||\n                                              (CartCtrl.shoppingCartStaticDataModel && CartCtrl.IsAppOnlyPromotionSalePage(merchandise.getId()))"\n                ><\/ns-app-only-promotion>\n                <!--商品贈品-->\n                <ul class="row has-hozl-gutter freebies-list"\n                    ng-if="merchandise.freebieList.length > 0">\n                    <li ng-repeat="freebie in merchandise.freebieList"\n                        class="freebies"\n                        ng-class="{\'freebies--is-out-of\': freebie.isSoldOut()}">\n\n                        <div class="freebies__left"\n                             translate="frontend.typescripts.shopping_cart.gift"><\/div>\n                        <div class="freebies__right">\n                            <span ng-if="!freebie.isSoldOut() && freebie.getStock()<10"\n                                  translate="frontend.typescripts.shopping_cart.remain_gift"\n                                  translate-value-val0="{{freebie.getStock()}}"><\/span>\n                            <span class="freebies--warning"\n                                  ng-if="freebie.isSoldOut()"\n                                  translate="frontend.typescripts.shopping_cart.gift_all_out"><\/span>\n                            <span ng-bind="freebie.getTitle()"><\/span>\n                        <\/div>\n                    <\/li>\n                <\/ul>\n            <\/div>\n            <!-- 贈品券商品列表 -->\n            <div class="cart-content" \n                 data-ng-click="CartCtrl.GotoPromotionGiftDetail(merchandise.model.SalePageId)"\n                 data-ng-if="merchandise.isGiftSalePage()">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <div class="row has-hozl-gutter">\n                    <figure>\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                <\/div>\n                <i class="icon icon-close close-btn"\n                   ng-click="$event.stopPropagation(); CartCtrl.RemoveGiftECouponItem($event, merchandise)"><\/i>\n                <!--商品數量和價格-->\n                <div class="row has-hozl-gutter">\n                    <div class="counter">\n                        <span translate="frontend.typescripts.shopping_cart.shopping_cart_exchange_gift_coupon"\n                              translate-value-val0="{{merchandise.getQty()}}"><\/span>\n                    <\/div>\n                    <div class="fee-container">\n                        <div class="fee cms-moneyColor"\n                             data-qe-id="cart_merchandise_total_payment"\n                             ng-bind="merchandise.getTotalPayment() | currency"><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--未達加購門檻商品清單-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.unReachAmountThresholdList.length > 0">\n        <div class="merchandise un-reach"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.unReachAmountThresholdList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n            <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure\n                            translate-attr="{\'data-ineligible-content\':\'frontend.typescripts.shopping_cart.ineligible\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <div class="merchandise-sku"\n                         ng-if="merchandise.getSKUPropertyDisplay()"\n                         ng-bind="::merchandise.getSKUPropertyDisplay()"><\/div>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveUnReachAmountThresholdMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量和價格-->\n                <div class="row has-hozl-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n                <!--定期購訂購週期選單 (未達加購門檻商品清單)-->\n                <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/unMappingRegularOrder.template.html\'"><\/div>\n                <!--未達門檻提示-->\n                <ul class="row has-hozl-gutter merchandise-caution">\n                    <li>\n                        <span class="info"\n                              translate="frontend.typescripts.shopping_cart.add_purchase_threshold_shop_cart"\n                              translate-value-val0="{{::merchandise.getAmountThreshold() | preferredCurrency}}">\n                        <\/span>\n                    <\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--點加金點數不足商品-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.insufficientPointsList.length > 0">\n        <div class="merchandise point-insufficient"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.insufficientPointsList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n            <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure translate-attr="{\'data-point-insufficient-content\':\'frontend.typescripts.shopping_cart.points_insufficient\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <div class="merchandise-sku"\n                         ng-if="merchandise.getSKUPropertyDisplay()"\n                         ng-bind="::merchandise.getSKUPropertyDisplay()"><\/div>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemovePointInsufficientMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量和價格-->\n                <div class="row has-hozl-gutter">\n                    <div class="qty-and-price-area">\n                        <div class="counter qty-and-price-area__qty-counter">\n                            <span class="decrease-btn"\n                                  ng-click="merchandise.decreaseQty(\'Qty\', CartCtrl, CartCtrl.ModifyPointInsufficientMerchandiseQtyCallback, {temperature: null, index: $index})">－<\/span>\n                            <span class="qty dumb"\n                                  data-qe-id="cart_merchandise_qty"\n                                  ng-bind="merchandise.getQty()"><\/span>\n                            <span class="increase-btn dumb">＋<\/span>\n                        <\/div>\n                        <div class="fee-container qty-and-price-area__price">\n                            <div class="fee cms-moneyColor"\n                                 data-qe-id="cart_merchandise_total_payment"\n                                 ng-if="merchandise.getPointPayPairPrice() === 0"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_only_point"\n                                 translate-value-val0="merchandise.getPointPayPairPoint() | number"><\/div>\n                            <div class="fee cms-moneyColor"\n                                 data-qe-id="cart_merchandise_total_payment"\n                                 ng-if="merchandise.getPointPayPairPrice() > 0 && merchandise.getPointPayPairPoint() > 0"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pay_totalpayment"\n                                 translate-value-val0="{{merchandise.getPointPayPairPoint() | number}}"\n                                 translate-value-val1="{{merchandise.getPointPayPairPrice() | preferredCurrency}}"><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class="row has-hozl-gutter">\n                    <span class="badge badge-fixed">\n                        <i class="icon icon-exclamation" aria-hidden="true"><\/i>\n                        <span translate="frontend.typescripts.shopping_cart.not_fit_coupons"><\/span>\n                    <\/span>\n                <\/div>\n                <!--未達門檻提示-->\n                <div class="row has-hozl-gutter has-top-gutter">\n                    <div class="cart-content-container cart-point-insufficient-warning">\n                        <span translate="frontend.typescripts.shopping_cart.points_insufficient_desc"><\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--無可結帳時段-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.noAvailableCheckoutPeriodSalePageList.length > 0">\n        <div class="merchandise un-mapping"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.noAvailableCheckoutPeriodSalePageList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n             <!-- 一般商品列表 -->\n            <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure translate-attr="{ \'data-check-next-content\': \'frontend.typescripts.shopping_cart.no_available_periods\' }">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <p class="merchandise-warning"\n                       ng-if="!CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.no_available_periods_warning">\n                    <\/p>\n                    <p class="merchandise-warning"\n                       ng-if="CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.no_delivery_way2"><\/p>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveNoAvailableCheckoutPeriodSalePage(merchandise); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul un-mapping">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n       <\/div>\n    <\/div>\n    <!--完售商品清單-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.soldOutList.length > 0">\n        <div class="merchandise sold-out"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.soldOutList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n            <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure translate-attr="{\'data-sold-out-content\': (CartCtrl.SoldOutType === CartCtrl.SoldOutTypeEnum[CartCtrl.SoldOutTypeEnum.OutOfStock]? \'frontend.typescripts.common.sold_out\' : \'frontend.typescripts.common.restocking\')}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <p class="merchandise-warning"\n                       translate="frontend.typescripts.shopping_cart.sold_out_wait_replenish"><\/p>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveSoldOutMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul sold-out">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n                <!--定期購訂購週期選單 (完售商品清單)-->\n                <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/unMappingRegularOrder.template.html\'"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--不在配送範圍-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.outOfRangeSalePageList.length > 0">\n        <div class="merchandise un-mapping"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.outOfRangeSalePageList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n             <!-- 一般商品列表 -->\n            <div class="cart-content"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure translate-attr="{\'data-check-next-content\':\'frontend.typescripts.shopping_cart.check_out_next_time\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <!-- 此商品{0}不提供，或不在配送範圍內 -->\n                    <p class="merchandise-warning"\n                       ng-if="!CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.out_of_range_of_store"\n                       translate-value-val0="{{CartCtrl.shoppingCart.getRetailStoreLocationName}}">\n                    <\/p>\n                    <!-- 與其他商品無共同的運送方式 -->\n                    <p class="merchandise-warning"\n                       ng-if="CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.no_delivery_way2"><\/p>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveOutOfRangeMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul un-mapping">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n       <\/div>\n    <\/div>\n    <!--無交集商品-->\n    <div class="cart-content-container has-border has-bottom-gutter merchandise-list"\n         ng-if="CartCtrl.shoppingCart.unMappingMerchandiseList.length > 0">\n        <div class="merchandise un-mapping"\n             ng-class="{\'merchandise--gift\': merchandise.model.IsGift}"\n             data-ns-lazy-load="sleeping-img"\n             ng-repeat="merchandise in CartCtrl.shoppingCart.unMappingMerchandiseList track by ($index + \'_\' + merchandise.model.SaleProductSKUId)">\n             <!-- 一般商品列表 -->\n            <div class="cart-content"\n                 ng-if="!merchandise.model.IsGift && !merchandise.isOverseaNoIntersection"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="看購物車內商品"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure\n                            translate-attr="{\'data-check-next-content\':\'frontend.typescripts.shopping_cart.check_out_next_time\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n\n                    <div  ng-if="!CartCtrl.shoppingCart.isExceedTheUpperLimit()">\n                        <p class="merchandise-warning">\n                            <span ng-if="!CartCtrl.shoppingCart.isExceedOverweight()"\n                                  translate="frontend.typescripts.shopping_cart.no_delivery_way"\n                                  translate-value-val0="{{CartCtrl.shoppingCart.selectedDelivery.getTypeName(merchandise.getTemperatureTypeDef())}}"><\/span>\n                        <\/p>\n                        <p class="merchandise-warning"\n                           ng-if="CartCtrl.shoppingCart.isExceedOverweight()"\n                           translate="frontend.typescripts.shopping_cart.no_delivery_way2"><\/p>\n                    <\/div>\n                    <p class="merchandise-warning"\n                       ng-if="CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.no_delivery_way2"><\/p>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveUnMappingMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul un-mapping">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.showPickupDatesLabel">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n                <!--定期購訂購週期選單 (無交集商品)-->\n                <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/unMappingRegularOrder.template.html\'"><\/div>\n            <\/div>\n            <!-- 無交集的贈品券商品列表 -->\n            <div class="cart-content"\n                 ng-if="merchandise.model.IsGift && !merchandise.isOverseaNoIntersection"\n                 ng-click="CartCtrl.GotoPromotionGiftDetail(merchandise.model.SalePageId)"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <div class="row has-hozl-gutter">\n                    <figure translate-attr="{\'data-check-next-content\':\'frontend.typescripts.shopping_cart.check_out_next_time\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <p class="merchandise-warning"\n                       ng-if="!CartCtrl.shoppingCart.isExceedTheUpperLimit()">\n                        <span translate="frontend.typescripts.shopping_cart.no_delivery_way"\n                              translate-value-val0="{{CartCtrl.shoppingCart.selectedDelivery.getTypeName(merchandise.getTemperatureTypeDef())}}">\n                    <\/p>\n                    <p class="merchandise-warning"\n                       ng-if="CartCtrl.shoppingCart.isExceedTheUpperLimit()"\n                       translate="frontend.typescripts.shopping_cart.no_delivery_way2"><\/p>\n                    <ul class="merchandise-tag-ul un-mapping">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <i class="icon icon-close close-btn"\n                   ng-click="CartCtrl.RemoveGiftECouponItem($event, merchandise)"><\/i>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter">\n                    <div class="counter">\n                        <span translate="frontend.typescripts.shopping_cart.shopping_cart_exchange_gift_coupon"\n                              translate-value-val0="{{merchandise.getQty()}}"><\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 國外配送無交集-->\n            <div class="cart-content"\n                 ng-if="merchandise.isOverseaNoIntersection"\n                 ng-class="{\'has-bottom-gutter\': !$last}">\n                <!--商品圖片和名稱和刪除按鈕-->\n                <a class="row has-hozl-gutter"\n                   ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (merchandise.isHiddenSale() ? merchandise.getHiddenSaleCode() : merchandise.getId())}}"\n                   target="_blank">\n                    <figure\n                            translate-attr="{\'data-check-next-content\':\'frontend.typescripts.shopping_cart.unable_to_ship\'}">\n                        <img class="sleeping-img"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::merchandise.getPicUrl()}}"\n                             alt="{{::merchandise.getTitle()}}"/>\n                    <\/figure>\n                    <div class="merchandise-title"\n                         ng-bind="::merchandise.getTitle()"><\/div>\n                    <p class="merchandise-warning"\n                       translate="frontend.typescripts.shopping_cart.product_cannot_shipped_to_country"\n                       translate-value-val0="{{CartCtrl.shoppingCart.getOverseaDeliveryTypeName(CartCtrl.shoppingCart.getSelectedShippingArea().Name,\n                                                                                                CartCtrl.shoppingCart.getSelectedShippingArea().DeliveryTypeName,\n                                                                                                CartCtrl.shoppingCart.getSelectedShippingArea().IsDisplayDeliveryType)}}"><\/p>\n                <\/a>\n                <i class="icon icon-close close-btn"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="click"\n                   data-track-label="移除商品_右上X"\n                   ng-click="CartCtrl.RemoveUnMappingMerchandise(merchandise, $index); $event.stopPropagation();"><\/i>\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <ul class="merchandise-tag-ul un-mapping">\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.getProductType === CartCtrl.ProductTypeEnum.Virtual">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.EVoucher"\n                                 translate="frontend.typescripts.common.e_voucher"><\/div>\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 ng-if="merchandise.getVirtualProductDisplayType === CartCtrl.VirtualProductDisplayTypeEnum.NFT"\n                                 translate="frontend.typescripts.common.nft"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="merchandise.isPointsPayPair">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.point_pay_pair_merchandise"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isHiddenSale()">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.exclusive_only"><\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.isPurchaseExtra">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.purchase_extra_discount">\n                            <\/div>\n                        <\/li>\n                        <li class="merchandise-tag-li"\n                            ng-if="::merchandise.hasPickupDates">\n                            <div class="primary-tag--red cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                 translate="frontend.typescripts.shopping_cart.has_pickup_dates"><\/div>\n                        <\/li>\n                    <\/ul>\n                <\/div>\n                <!--商品數量-->\n                <div class="row has-hozl-gutter has-bottom-gutter">\n                    <div class="counter">\n                        <span class="decrease-btn dumb">－<\/span>\n                        <span class="qty dumb"\n                              data-qe-id="cart_merchandise_qty"\n                              ng-bind="merchandise.getQty()"><\/span>\n                        <span class="increase-btn dumb">＋<\/span>\n                    <\/div>\n                <\/div>\n                <!--定期購訂購週期選單 (國外配送無交集)-->\n                <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/unMappingRegularOrder.template.html\'"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--已符合折扣活動-->\n    <div class="cart-content-container promotion-list matched-promotion"\n         ng-if="CartCtrl.shoppingCart.matchedPromotionList.length > 0">\n        <div class="row has-hozl-gutter">\n            <h2 class="cart-full-content promotion-list-title"\n                translate="frontend.typescripts.shopping_cart.okay_to_discount_activity"><\/h2>\n            <div class="cart-full-content promotion-list-conclusion match"\n                 ng-class="{\'has-separate-line\': CartCtrl.showMatchedPromotionList}"\n                 ng-if="CartCtrl.shoppingCart.matchedPromotionList.length>=3"\n                 ng-click="CartCtrl.showMatchedPromotionList = !CartCtrl.showMatchedPromotionList">\n                <span translate="frontend.typescripts.shopping_cart.okay_with_event"\n                      translate-value-val0="{{CartCtrl.shoppingCart.matchedPromotionList.length}}"><\/span>\n                <span class="open-promotion-list-btn">\n                    <span class="open-promotion-list-btn__text"\n                          translate="frontend.typescripts.shopping_cart.expand_details"><\/span>\n                    <i ng-class="{\'fa fa-angle-down\':!CartCtrl.showMatchedPromotionList,\'fa fa-angle-up\':CartCtrl.showMatchedPromotionList}"\n                       aria-hidden="true"><\/i>\n                <\/span>\n            <\/div>\n            <ul class="promotion-ul"\n                data-ns-ga-event-track\n                data-track-category="購物車"\n                data-track-action="click"\n                data-track-label="已符合折扣活動點擊">\n                <li class="cart-content promotion-li"\n                    ng-show="CartCtrl.shoppingCart.matchedPromotionList.length<3 || CartCtrl.showMatchedPromotionList"\n                    ng-repeat="promotion in CartCtrl.shoppingCart.matchedPromotionList"\n                    ng-class="{\'has-separate-line\': !$last && !promotion.isCrmMemberTierPromotion()}">\n                    <div class="promotion-li-content"\n                         ng-click="CartCtrl.GoToPromotionDetail(promotion)">\n                        <div class="promotion-row">\n                            <div class="promotion-rule-row">\n                                <span class="primary-tag--gray">\n                                    <span ng-bind="::promotion.getType() || CartCtrl.$translate.instant(\'frontend.typescripts.shopping_cart.discount_event_tag\')"><\/span>\n                                <\/span>\n                                <span class="promotion-rule"\n                                      ng-bind="promotion.getRule() | stringToPreferredCurrency"><\/span>\n                            <\/div>\n                            <a class="go-to-promotion-btn">\n                                <span class="go-to-promotion-btn__text"\n                                      ng-class="{\'go-to-promotion-btn__text--notice\': promotion.isPayShippingTarget()}"\n                                      ng-bind="promotion.getStatus() | stringToPreferredCurrency"><\/span>\n                                <i class="fa fa-angle-right"\n                                   aria-hidden="true"><\/i>\n                            <\/a>\n                        <\/div>\n                        <h3 class="promotion-title"\n                            ng-bind="::promotion.getTitle()"><\/h3>\n                        <div class="show-at-mobile promotion-title"\n                             ng-class="{\'promotion-title--notice\': promotion.isPayShippingTarget()}"\n                             ng-bind="promotion.getStatus() | stringToPreferredCurrency"><\/div>\n                        <div ng-if="::promotion.cannotUseECoupon()" class="not-applicable-label">\n                            <i class="icon icon-exclamation"><\/i>\n                            <label translate="frontend.typescripts.shopping_cart.activity_cant_use_coupon"><\/label>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!--未符合折扣活動-->\n    <div class="cart-content-container has-border has-bottom-gutter promotion-list  unmatched-promotion"\n         ng-if="CartCtrl.shoppingCart.unmatchedPromotionList.length > 0">\n        <div class="row has-hozl-gutter">\n            <h2 class="cart-full-content promotion-list-title"\n                translate="frontend.typescripts.shopping_cart.okay_no_to_discount_activity"><\/h2>\n            <div class="cart-full-content promotion-list-conclusion"\n                 ng-class="{\'has-separate-line\': CartCtrl.showUnmatchedPromotionList}"\n                 ng-if="CartCtrl.shoppingCart.unmatchedPromotionList.length>=3"\n                 ng-click="CartCtrl.showUnmatchedPromotionList = !CartCtrl.showUnmatchedPromotionList">\n                <span class="unmatched--highlight"\n                      translate="frontend.typescripts.shopping_cart.okay_no_with_event"\n                      translate-value-val0="{{CartCtrl.shoppingCart.unmatchedPromotionList.length}}"><\/span>\n                <span class="open-promotion-list-btn">\n                    <span class="open-promotion-list-btn__text"\n                          translate="frontend.typescripts.shopping_cart.expand_details"><\/span>\n                    <i ng-class="{\'fa fa-angle-down\':!CartCtrl.showUnmatchedPromotionList,\'fa fa-angle-up\':CartCtrl.showUnmatchedPromotionList}"\n                       aria-hidden="true"><\/i>\n                <\/span>\n            <\/div>\n            <ul class="promotion-ul"\n                data-ns-ga-event-track\n                data-track-category="購物車"\n                data-track-action="click"\n                data-track-label="未符合折扣活動點擊">\n                <li class="cart-content promotion-li"\n                    ng-show="CartCtrl.shoppingCart.unmatchedPromotionList.length<3 || CartCtrl.showUnmatchedPromotionList"\n                    ng-repeat="promotion in CartCtrl.shoppingCart.unmatchedPromotionList"\n                    ng-class="{\'has-separate-line\': !$last && !promotion.isCrmMemberTierPromotion()}">\n                    <div class="promotion-li-content"\n                         ng-click="CartCtrl.GoToPromotionDetail(promotion, true)">\n                        <div class="promotion-row">\n                            <a ng-if="promotion.getCalculateMethod() === CartCtrl.CalculateMethodEnum[CartCtrl.CalculateMethodEnum[\'Compatible\']]"\n                               class="go-to-promotion-btn">\n                                <div class="go-to-promotion-btn__hint">\n                                    {{promotion.getStatus() | stringToPreferredCurrency}}\n                                <\/div>\n                                <i class="fa fa-angle-right"\n                                   aria-hidden="true"><\/i>\n                                <span class="go-to-promotion-btn__text"\n                                      translate="frontend.typescripts.shopping_cart.go_to_detail"><\/span>\n                            <\/a>\n                            <a ng-if="promotion.getCalculateMethod() === CartCtrl.CalculateMethodEnum[CartCtrl.CalculateMethodEnum[\'Incompatible\']]"\n                               ng-click="CartCtrl.ShowUnmatchedPromotionDialog($event)"\n                               class="activity-mutually-exclusive-btn">\n                                <div class="activity-mutually-exclusive-btn__hint"\n                                     translate="frontend.typescripts.shopping_cart.go_to_reason"><\/div>\n                                <i class="fa fa-angle-right"\n                                   aria-hidden="true"><\/i>\n                                <span class="activity-mutually-exclusive-btn__text"\n                                      translate="frontend.typescripts.shopping_cart.go_to_reason"><\/span>\n                            <\/a>\n                            <div class="promotion-rule-row">\n                                <span class="primary-tag--gray">\n                                    <span ng-bind="::promotion.getType() || CartCtrl.$translate.instant(\'frontend.typescripts.shopping_cart.discount_event_tag\')""><\/span>\n                                <\/span>\n                                <span class="promotion-rule"\n                                      ng-bind="promotion.getRule() | stringToPreferredCurrency"><\/span>\n                            <\/div>\n                        <\/div>\n                        <h3 class="promotion-title"\n                            ng-bind="::promotion.getTitle()"><\/h3>\n                    <\/div>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!--指定信用卡活動-->\n    <div class="cart-content-container has-border has-bottom-gutter promotion-list designate-payment-promotion"\n         ng-if="CartCtrl.shoppingCart.designatePaymentPromotionList.length > 0">\n        <div class="row has-hozl-gutter">\n            <h2 class="cart-full-content promotion-list-title"\n                translate="frontend.typescripts.shopping_cart.designated_credit_card_activities"><\/h2>\n            <div class="cart-full-content promotion-list-conclusion"\n                 ng-class="{\'has-separate-line\': CartCtrl.showDesignatePaymentPromotionList}"\n                 ng-if="CartCtrl.shoppingCart.designatePaymentPromotionList.length >= 2"\n                 ng-click="CartCtrl.showDesignatePaymentPromotionList = !CartCtrl.showDesignatePaymentPromotionList">\n                <span translate="frontend.typescripts.shopping_cart.currently_activities"\n                      translate-value-val0="{{CartCtrl.shoppingCart.designatePaymentPromotionList.length}}"><\/span>\n                <span class="open-promotion-list-btn">\n                    <span class="open-promotion-list-btn__text"\n                          translate="frontend.typescripts.shopping_cart.expand_details"><\/span>\n                    <i ng-class="{\'fa fa-angle-down\': !CartCtrl.showDesignatePaymentPromotionList, \'fa fa-angle-up\': CartCtrl.showDesignatePaymentPromotionList}"\n                       aria-hidden="true"><\/i>\n                <\/span>\n            <\/div>\n            <ul class="promotion-ul"\n                ng-class="{\'promotion-ul--opened\': CartCtrl.shoppingCart.designatePaymentPromotionList.length < 2 || CartCtrl.showDesignatePaymentPromotionList}"\n                ng-show="CartCtrl.shoppingCart.designatePaymentPromotionList.length < 2 || CartCtrl.showDesignatePaymentPromotionList">\n                <li class="cart-content promotion-li has-separate-line"\n                    ng-repeat="promotion in CartCtrl.shoppingCart.designatePaymentPromotionList">\n                    <div class="promotion-li-content"\n                         ng-click="CartCtrl.GoToPromotionDetail(promotion, true)">\n                        <div class="promotion-row">\n                            <a class="go-to-promotion-btn">\n                                <i class="fa fa-angle-right"\n                                   aria-hidden="true"><\/i>\n                                <span class="go-to-promotion-btn__text"\n                                      translate="frontend.typescripts.shopping_cart.go_to_detail"><\/span>\n                            <\/a>\n                            <span class="promotion-title"\n                                  ng-bind="::promotion.getTitle()"><\/span>\n                        <\/div>\n                        <div class="promotion-desc"\n                              ng-if="::promotion.isAppOnlyPromotion()">\n                            <span translate="frontend.typescripts.shopping_cart.checkout_on_app_to_participate_in_the_promotion"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/li>\n            <\/ul>\n            <div class="promotion-desc promotion-desc--bottom">\n                <span translate="frontend.typescripts.shopping_cart.designated_credit_card_activities_warning"><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- 優惠券 & 優惠碼專區 -->\n    <div class="ecoupon-block">\n        <div class="ecoupon-block__header">\n            <div class="ecoupon-title">\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_coupon_promo_code_block_title"><\/span>\n            <\/div>\n        <\/div>\n        <!-- 優惠券選擇器入口 -->\n        <div class="ecoupon-block__action" ng-click="CartCtrl.OpenECouponSelector()">\n            <div class="ecoupon-block__action__desc">\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_coupon_promo_code_input_placeholder"><\/span>\n            <\/div>\n            <span class="ecoupon-block__action__trigger">\n                <i class="fa fa-angle-right" aria-hidden="true"><\/i>\n            <\/span>\n        <\/div>\n        <!-- 優惠券使用資訊 -->\n        <div class="ecoupon-block__content">\n            <!-- 尚有優惠券可以使用" -->\n            <div ng-if="CartCtrl.shoppingCart.isECouponUsableButNotSelected"\n                 class="ecoupon-callout--reminder">\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_coupon_available_hint"><\/span>\n            <\/div>\n            <!-- 已使用推薦碼 -->\n            <div class="ecoupon-block__item"\n                 ng-if="CartCtrl.shoppingCart.isPromoCodeSelected">\n                <i class="icon-editor icon-editor-icon_discount_event icon-editor-lg"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.promo_code_used"><\/span>\n                <span ng-bind="CartCtrl.shoppingCart.getPromoCode"><\/span>：<span class="ecoupon-block__highlight"\n                      ng-bind="\'-\' + CartCtrl.shoppingCart.getPromoCodeDiscount | preferredCurrency"><\/span>\n            <\/div>\n            <!-- 已使用運費券 -->\n            <div class="ecoupon-block__item" ng-if="CartCtrl.shoppingCart.selectedFreeShippingECoupon">\n                <i class="ecoupon-block__item__icon icon-editor-icon_my_coupon"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_used_free_shipping_ecoupon"><\/span>：\n                <!-- 免運費 -->\n                <span class="ecoupon-block__highlight"\n                      ng-if="CartCtrl.shoppingCart.selectedFreeShippingECoupon.DiscountTypeDef === CartCtrl.ECouponDiscountTypeEnum[CartCtrl.ECouponDiscountTypeEnum.FreeShipping]"\n                      translate="frontend.typescripts.shopping_cart.free_shipping">\n                <\/span>\n                <!-- 運費折現 -->\n                <span class="ecoupon-block__highlight"\n                      ng-if="CartCtrl.shoppingCart.selectedFreeShippingECoupon.DiscountTypeDef === CartCtrl.ECouponDiscountTypeEnum[CartCtrl.ECouponDiscountTypeEnum.FreeShippingByPrice]">\n                    -<span ng-bind="CartCtrl.ReturnDiscountWording(CartCtrl.shoppingCart.selectedFreeShippingECoupon)"><\/span>\n                <\/span>\n                <!-- 運費打折 -->\n                <span class="ecoupon-block__highlight"\n                      ng-if="CartCtrl.shoppingCart.selectedFreeShippingECoupon.DiscountTypeDef === CartCtrl.ECouponDiscountTypeEnum[CartCtrl.ECouponDiscountTypeEnum.FreeShippingByPercent]"\n                      ng-bind="CartCtrl.ReturnDiscountWording(CartCtrl.shoppingCart.selectedFreeShippingECoupon)">\n                <\/span>\n            <\/div>\n            <!-- 已使用折價券 -->\n            <div class="ecoupon-block__item" ng-if="CartCtrl.shoppingCart.selectedECoupon">\n                <i class="ecoupon-block__item__icon icon-editor-icon_my_coupon"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_used_ecoupon"><\/span>：\n                <span class="ecoupon-block__highlight"\n                      ng-bind="CartCtrl.shoppingCart.getECouponDiscount() | preferredCurrency">\n                <\/span>\n            <\/div>\n            <!-- 已領取贈品 -->\n            <div class="ecoupon-block__item" ng-if="CartCtrl.shoppingCart.isGiftECouponSelected()">\n                <i class="ecoupon-block__item__icon icon-editor-icon_my_coupon"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.shoppingcart_used_gift_coupon"><\/span>：\n                <span class="ecoupon-block__highlight"\n                      translate="frontend.typescripts.shopping_cart.shoppingcart_used_gift_coupon_unit"\n                      translate-value-val0="{{CartCtrl.shoppingCart.getGiftECouponSelectedCount()}}">\n                <\/span>\n            <\/div>\n        <\/div>\n        <!-- 折價券一鍵全領 -->\n        <div class="ecoupon-block__collar-coupons"\n            ng-if="CartCtrl.shoppingCart.isAllowClaimAllEcoupon">\n            <img\n                class="ecoupon-block__collar-coupons__icon"\n                src="/V2/Content/Images/ECoupon/icon_coupon_circle.svg"\n            >\n            <div class="ecoupon-block__collar-coupons__reminder">\n                <span\n                    translate="frontend.typescripts.shopping_cart.coupons_not_claimed"\n                    translate-value-val0="{{CartCtrl.shoppingCart.numOfEcouponCanTake}}">\n                <\/span>\n            <\/div>\n            <button class="ecoupon-block__collar-coupons__button cms-primaryBtnTextColor cms-primaryBtnBgColor"\n                ng-click="CartCtrl.CollarAllCoupons($event)">\n                <span translate="frontend.typescripts.shopping_cart.one_click_all_collar"><\/span>\n            <\/button>\n        <\/div>\n    <\/div>\n    <!--已符合促購給點活動-->\n    <div class="cart-content-container promotion-list matched-promotion reward-point-promotion"\n         ng-if="CartCtrl.shoppingCartStaticDataModel.PromotionList.length > 0">\n        <div class="row has-hozl-gutter">\n            <div class="cart-full-content promotion-list-title">\n                <i class="icon-editor icon-editor-icon_point"><\/i>\n                <span translate="frontend.typescripts.shopping_cart.point_reward"><\/span>\n            <\/div>\n            <ul class="promotion-ul"\n                data-ns-ga-event-track\n                data-track-category="購物車"\n                data-track-action="click"\n                data-track-label="已符合促購給點活動點擊">\n                <li class="cart-content promotion-li"\n                    ng-repeat="promotion in CartCtrl.shoppingCartStaticDataModel.PromotionList"\n                    ng-class="{\'has-separate-line\': !$last}"\n                    ng-click="CartCtrl.GoToPromotionDetailFromStaticDataModel(promotion)">\n                    <div class="promotion-li-content">\n                        <div class="promotion-row">\n                            <div class="promotion-rule-row">\n                                <!-- 類型Tag -->\n                                <span class="primary-tag--gray">\n                                    <span ng-bind="::promotion.TagTitle"><\/span>\n                                <\/span>\n                                <!-- 給點規則 -->\n                                <span class="promotion-rule"\n                                      ng-bind-html="promotion.PromotionConditionTitle | stringToPreferredCurrency"><\/span>\n                            <\/div>\n                        <\/div>\n                        <!--給點上限-->\n                        <div class="sub-title"\n                             ng-if="promotion.PromotionSubtitle"\n                             ng-bind="::promotion.PromotionSubtitle"><\/div>\n                        <!-- 限額 -->\n                        <div class="highlight-title"\n                              ng-if="promotion.PromotionQuotaTitle"\n                              ng-bind="::promotion.PromotionQuotaTitle"><\/div>\n                    <\/div>\n                    <i class="fa fa-angle-right" aria-hidden="true"><\/i>\n                <\/li>\n            <\/ul>\n        <\/div>\n    <\/div>\n    <!-- 積點 -->\n    <div class="hide-at-mobile cart-content-container has-border loyalty-point"\n         ng-class="{\n             \'disabled\': !CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption\n         }"\n         data-ng-if="CartCtrl.shoppingCart.loyaltyPoint">\n        <div class="cart-content">\n            <div class="row loyalty-point__content" ng-switch="CartCtrl.shoppingCart.loyaltyPoint.DisplayType">\n                <label class="use-point-wrapper" for="UsePoint">\n                    <div class="checkbox__container use-point"\n                            data-ng-if="CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption">\n                        <i class="checkbox__icon icon-editor"\n                            data-ng-class="{\'icon-editor-icon_checkbox\': CartCtrl.shoppingCart.loyaltyPoint.IsUsing,\n                                            \'icon-editor-icon_uncheckbox checkbox__icon--unselected\': !CartCtrl.shoppingCart.loyaltyPoint.IsUsing}"><\/i>\n                        <input id="UsePoint"\n                                type="checkbox"\n                                class="checkbox__input"\n                                data-qe-id="loyalty_point_is_using_chkbox"\n                                data-ng-model="CartCtrl.shoppingCart.loyaltyPoint.IsUsing"\n                                data-ng-click="CartCtrl.CalculateLoyaltyPoint()"/>\n                    <\/div>\n                    <i class="icon-editor icon-editor-icon_point"><\/i>\n                    <div translate="frontend.typescripts.shopping_cart.points_discount"><\/div>\n                    <div class="use-point-wrapper__description combo-rule-description">\n                        <div class="discount-price" ng-switch-when="RedeemAllPoints|RedeemPartialOrAllPoints" ng-switch-when-separator="|">\n                            <span data-qe-id="loyalty_point_discount_price_currency_symbol">\n                                {{CartCtrl.CurrencyFormat.CurrencySymbol}}<\/span>\n                            <span data-qe-id="loyalty_point_discount_price">\n                            {{CartCtrl.shoppingCart.loyaltyPoint.CheckoutDiscountPrice | nsAbs | preferredCurrencyWithoutSymbol}}<\/span>\n                        <\/div>\n                        <span class="rule-description"\n                                data-qe-id="loyalty_point_desc_txt"\n                                ng-switch-when="Unavailable">{{CartCtrl.shoppingCart.loyaltyPoint.RuleDescription}}<\/span>\n                        <span>\n                        <div ng-switch-when="RedeemedPoints">\n                            <span class="combo-rule-description__desc-group"\n                                    data-qe-id="loyalty_point_redeemed_total_points_txt"\n                                    translate="frontend.typescripts.shopping_cart.loyalty_point_total_points"\n                                    translate-value-val0="{{CartCtrl.shoppingCart.loyaltyPoint.TotalPointsPay.TotalPoints | nsAbs}}"><\/span>\n                            <span class="combo-rule-description__desc-group total-points"\n                                    data-qe-id="loyalty_point_redeemed_total_balance_points_txt"\n                                    translate="frontend.typescripts.shopping_cart.loyalty_point_total_balance_points"\n                                    translate-value-val0="{{CartCtrl.shoppingCart.loyaltyPoint.MemberTotalBalancePoint}}"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/label>\n                <div class="more-description"\n                    ng-if="CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'RedeemAllPoints\' ||\n                        CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'Unavailable\'">\n                    <i class="fa fa-question-circle-o"\n                        data-qe-id="loyalty_point_more_desc_btn"\n                        ng-click="CartCtrl.ShowLoyaltyPointDialog(CartCtrl.shoppingCart.loyaltyPoint.Prompt, CartCtrl.shoppingCart.loyaltyPoint.Description)"><\/i>\n                <\/div>\n                <div class="edit" ng-if="CartCtrl.shoppingCart.loyaltyPoint.DisplayType === \'RedeemPartialOrAllPoints\' && CartCtrl.shoppingCart.loyaltyPoint.IsEnableOption"\n                    translate="frontend.typescripts.common.modify"\n                    ng-click="CartCtrl.ShowRedeemPartialPointsDialog()"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- Mobile加購-->\n    <div class="show-at-mobile"\n         data-ng-if="CartCtrl.deviceValue.IsMobile()"\n         data-ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/purchaseExtraMobile.html\'">\n    <\/div>\n    <!--購物車各金額整理-->\n    <div class="cart-content-container"\n         ng-show="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid()">\n        <div class="cart-full-content">\n            <!--再湊多少享優惠-->\n            <div class="free-delivery-container"\n                 ng-if="CartCtrl.shoppingCart.shopShippingTypeHints.length > 0"\n                 data-ns-ga-event-track\n                 data-track-category="購物車"\n                 data-track-action="click"\n                 data-track-label="湊免運提示文字">\n                <div class="row has-hozl-gutter free-delivery"\n                     ng-repeat="hint in CartCtrl.shoppingCart.shopShippingTypeHints">\n                    <span class="discount" ng-bind="hint | stringToPreferredCurrency"><\/span>\n                <\/div>\n            <\/div>\n            <!--各費用-->\n            <div class="row has-hozl-gutter">\n                <div class="cart-conclusion">\n                    <!--會員-->\n                    <div class="conclusion-row">\n                        <div class="tier-member highlight conclusion-li__left"\n                             ng-if="CartCtrl.shoppingCart.isHasCrmShopContract()"\n                             ng-bind="::CartCtrl.shoppingCart.getCrmMemberTierName()"><\/div>\n                    <\/div>\n                    <!--一般小計-->\n                    <div class="conclusion-row">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.subtotal_items_amount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="CartCtrl.shoppingCart.getTotalPrice() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--會員分級折扣-->\n                    <div class="conclusion-row"\n                         ng-if="CartCtrl.shoppingCart.isCrmPromotionMatchedCondition()">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.member_exclusive"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="CartCtrl.shoppingCart.getMemberTierPromotionDiscount() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--活動折扣-->\n                    <div class="conclusion-row"\n                         ng-if="CartCtrl.shoppingCart.getNormalPromotionDiscount()">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.promotion_discount_amount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="CartCtrl.shoppingCart.getNormalPromotionDiscount() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--折價券-->\n                    <div class="conclusion-row"\n                         ng-if="CartCtrl.shoppingCart.checkHasECoupon() && CartCtrl.shoppingCart.selectedECoupon">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.discount_coupon"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="CartCtrl.shoppingCart.getECouponDiscount() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--紅利積點折扣-->\n                    <div class="conclusion-row"\n                         ng-if="CartCtrl.shoppingCart.loyaltyPoint && (CartCtrl.shoppingCart.loyaltyPoint.IsUsing || CartCtrl.shoppingCart.loyaltyPoint.TotalPointsPay.TotalDiscount)">\n                        <div class="conclusion-li__left"\n                             translate="frontend.typescripts.shopping_cart.point_discount_amount"><\/div>\n                        <div class="conclusion-li__right fee"\n                             ng-bind="CartCtrl.shoppingCart.getLoyaltyPointDiscountPrice() | preferredCurrency"><\/div>\n                    <\/div>\n                    <!--總計-->\n                    <div class="conclusion-row has-top-border has-top-gutter">\n                        <div class="conclusion-li__left">\n                            <div class="highlight"\n                                 ng-if="CartCtrl.shoppingCart.getMerchandiseCount() > 0"\n                                 translate="frontend.typescripts.shopping_cart.total_items"\n                                 translate-value-val0="{{CartCtrl.shoppingCart.getMerchandiseCount()}}">\n                            <\/div>\n                        <\/div>\n                        <div class="conclusion-li__right fee red total bold cms-moneyColor"\n                             ng-bind="CartCtrl.shoppingCart.getTotalPayment() | preferredCurrency"><\/div>\n                    <\/div>\n                    <div class="conclusion-row" ng-show="CartCtrl.CurrencyCode !== CartCtrl.SalesCurrency">\n                        <div class="conclusion-li__right"\n                             translate="frontend.typescripts.shopping_cart.preferred_currency_hint"><\/div>\n                    <\/div>\n                    <div class="conclusion-row padding-bottom-init">\n                        <div class="conclusion-li__right"\n                             translate="frontend.typescripts.shopping_cart.excluding_shipping_fee"><\/div>\n                    <\/div>\n                    <div class="conclusion-row padding-bottom-init has-top-gutter"\n                         data-ng-if="CartCtrl.LocalizationConfig.ShoppingCart.ShowPayCurrency">\n                        <div class="conclusion-li__right currency-prompt">\n                            <span class="tooltip tooltip-bottom"\n                                  translate-attr="{\'data-tooltip-content\':\'frontend.typescripts.shopping_cart.prompt_content_20190718\'}"\n                                  translate-values="{val0:CartCtrl.SalesCurrency}"\n                                  data-ng-if="!CartCtrl.deviceValue.IsMobile()">\n                                <span translate="frontend.typescripts.shopping_cart.pay_currency_20190718"\n                                      translate-value-val0="{{CartCtrl.SalesCurrency}}"><\/span>\n                                <i class="fa fa-question-circle-o"><\/i>\n                            <\/span>\n                            <span data-ng-if="CartCtrl.deviceValue.IsMobile()"\n                                  data-ng-click="CartCtrl.OpenCurrencyPrompt()">\n                                <span translate="frontend.typescripts.shopping_cart.pay_currency_20190718"\n                                      translate-value-val0="{{CartCtrl.SalesCurrency}}"><\/span>\n                                <i class="fa fa-question-circle-o"><\/i>\n                            <\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!--購物車商品國內/國外超重顯示文案 後端計算 -->\n        <div class="cart-content-container" ng-if="CartCtrl.shoppingCart.getOverweight().IsOverweightAndHasOtherAreaDeliveryType">\n            <div class="cart-full-content cart-footer">\n                <span class="shipping-warning">\n                    <span class="caution"\n                          ng-bind="CartCtrl.shoppingCart.getOverweight().OverweightMessage"><\/span>\n                <\/span>\n            <\/div>\n        <\/div>\n\n        <!--此交易為安全連線-->\n        <div class="cart-content-container"\n             data-ng-if="CartCtrl.deviceValue.IsMobile() && CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid()">\n            <div class="cart-full-content cart-footer padding-top-init row has-hozl-gutter">\n                <div class="foot-message"\n                     data-ng-class="{\'foot-message--with-loyalty-point\': CartCtrl.shoppingCart.loyaltyPoint}">\n                    <i class="fa-fw fa fa-lock"><\/i>\n                    <span translate="frontend.typescripts.shopping_cart.this_is_secure_connect"><\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Moble置底：國家地區配送、小計、下一步 -->\n        <div ng-if="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid() && CartCtrl.deviceValue.IsMobile()">\n            <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/cartBottomInfo.template.html\'"><\/div>\n            <div ns-push-half-page\n                 ns-is-open="CartCtrl.IsOpenShippingList"\n                 ns-open-direction="\'bottom\'"\n                 ns-close-function="">\n                <div class="shipping-list-container">\n                    <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/cartBottomInfo.template.html\'"><\/div>\n                    <ns-select-shipping-area ns-shipping-area-list="CartCtrl.shoppingCart.shippingAreaList"\n                                             ns-sub-shipping-area-list="CartCtrl.shoppingCart.subShippingAreaList"\n                                             ns-selected-shipping-area="CartCtrl.shoppingCart.selectedShippingAreaEntity"\n                                             ns-can-oversea="CartCtrl.shoppingCart.canOversea"\n                                             ns-can-abroad-store-pickup="CartCtrl.shoppingCart.canAbroadStorePickup"\n                                             ns-is-all-sub-shipping-areas="CartCtrl.shoppingCart.isAllSubShippingAreas"\n                                             ns-change-shipping-area="CartCtrl.ChangeShippingArea(selectedArea)" />\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Desktop置底：國家地區配送、小計、下一步 -->\n<div class="cart-content-container cart-footer cart-footer-sticky "\n     ng-if="!CartCtrl.deviceValue.IsMobile() && CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid()">\n    <div ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/cartBottomInfoDesktop.template.html\'"><\/div>\n<\/div>\n\n\n<!-- Desktop加購-->\n<div class="hide-at-mobile"\n     data-ng-if="CartCtrl.ThresholdPurchaseExtraData.SalePageList.length > 0 || CartCtrl.PurchaseExtraData.SalePageList.length > 0"\n     data-ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/purchaseExtraDesktop.html\'">\n<\/div>\n\n<div class="cart-wrapper-row hide-at-mobile"\n     ng-show="CartCtrl.shoppingCart && CartCtrl.shoppingCart.isValid()">\n    <a ng-href="{{CartCtrl.OfficialOriginDomain}}"\n       translate="frontend.typescripts.shopping_cart.continue_shopping"><\/a>\n    <a ng-href="{{CartCtrl.OfficialOriginDomain}}/TraceSalePageList/TraceSalePageList"\n       style="margin-left: 20px"\n       translate="frontend.typescripts.shopping_cart.check_out_my_collection"><\/a>\n<\/div>\n\n<!-- 購物車內加入購物車開半頁-->\n<div ns-push-half-page\n     ns-is-open="CartCtrl.OpenMobileAddToCart"\n     ns-open-direction="\'bottom\'"\n     ns-close-function="CartCtrl.ResetAddToCartProcess()">\n    <div ng-if="CartCtrl.HasMultiLevelSku || CartCtrl.SalePageModel.IsAPPOnly"\n         data-ng-include="\'/V2/TypeScripts/Modules/ShoppingCart/addToCartPushHalf.template.html\'">\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/locationList.html",'<div class="modal-header">\n    <button type="button" class="close" ng-click="LocationListCtrl.Cancel()"><span aria-hidden="true">×<\/span><\/button>\n    <h4 class="modal-title" translate="frontend.typescripts.shopping_cart.pick_up_store"><\/h4>\n<\/div>\n<div class="modal-body" ng-init="LocationListCtrl.GetLocationList(30)">\n    <ul data-ns-end-less-list\n        data-end-less-model="LocationListCtrl.locationList"\n        data-start-index="LocationListCtrl.endlessIndex"\n        data-is-lock="LocationListCtrl.endlessIsLock"\n        data-get-model-method="LocationListCtrl.GetLocationList(10)"\n        data-scroll-element-id="LocationListCtrl.endlessContainer">\n        <li ng-repeat="item in LocationListCtrl.locationList track by item.Id">\n            <h2 class="location-name" ng-bind="::(item.CityName + \'/\' + item.Name)"><\/h2>\n            <h3 class="address" ng-bind="::item.Address"><\/h3>\n            <h3 class="time" ng-bind=":: (\'frontend.typescripts.shopping_cart.normal_open_hours\' | translate) + item.NormalTime"><\/h3>\n            <h3 class="time" ng-bind=":: (\'frontend.typescripts.shopping_cart.holiday_open_hours\' | translate) + item.WeekendTime"><\/h3>\n        <\/li>\n    <\/ul>\n    <div class="is-loading" ng-if="LocationListCtrl.endlessIsLock">\n        <img src="https://cdnjs.cloudflare.com/ajax/libs/file-uploader/3.7.0/loading.gif">\n    <\/div>\n<\/div>\n\n\n\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/loyaltyPointDialog.template.html",'<div class="modal-body">\n    <p class="modal-body__content">\n        <span class="modal-body__content-message" ng-bind="Model.outerMessage" ng-if="Model.outerMessage"><\/span>\n        <span class="modal-body__content-message"  ng-bind="Model.message"><\/span>\n    <\/p>\n    <div class="function">\n        <button class="button"\n                ng-click="DialogCustomizeCtrl.Cancel()">\n            {{ Model.cancelButtonName }}\n        <\/button>\n        <button ng-click="DialogCustomizeCtrl.Ok()"\n                class="button button-right cms-primaryBtnTextColor cms-primaryBtnBgColor">\n            {{ Model.confirmButtonName }}\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/purchaseExtraDesktop.html",'<!-- Desktop滿額加價購-->\n<div class="purchase-extra-list">\n    <div class="purchase-extra-container"\n         data-ng-if="!CartCtrl.deviceValue.IsMobile() && CartCtrl.ThresholdPurchaseExtraData.SalePageList && CartCtrl.ThresholdPurchaseExtraData.SalePageList.length > 0 && CartCtrl.shoppingCart.getTotalSalePageCount() < 50">\n        <div class="purchase-extra-slider__header">\n            <div class="title">\n                {{::CartCtrl.ThresholdPurchaseExtraData.Title}}\n            <\/div>\n            <div class="title-desc"\n                 data-ng-if="!CartCtrl.shoppingCart.isUnReachThreshold()">\n                 <span translate="frontend.typescripts.shopping_cart.add_purchase_val_count"\n                    translate-value-val0="{{::CartCtrl.ThresholdPurchaseExtraData.AmountThreshold | preferredCurrency}}"\n                 >\n                <\/span>\n            <\/div>\n            <div data-ng-if="CartCtrl.shoppingCart.isUnReachThreshold()">\n                <span class="title-desc" \n                    translate="frontend.typescripts.shopping_cart.more_to_add_purchase"\n                    translate-value-val0="{{CartCtrl.shoppingCart.getUnReachPurchaseExtraAmount() | preferredCurrency}}"\n                    >\n                <\/span>    \n                <a ng-href="{{::CartCtrl.OfficialOriginDomain}}"\n                   class="back-home-link"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="點擊回賣場"\n                   data-track-label="">\n                    <span translate="frontend.typescripts.shopping_cart.back_shop"><\/span><i class="icon icon-slim-arrow-right"><\/i>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class="product-list"\n             data-ng-class="{\'more\': CartCtrl.ShowMoreThreshold,\'not-reach-threshold\':CartCtrl.shoppingCart.isUnReachThreshold()}">\n            <div class="vertical-product product-card"\n                 data-ns-lazy-load="sleeping-img"\n                 data-ng-repeat="product in CartCtrl.ThresholdPurchaseExtraData.SalePageList">\n                <a href="javascript:void(0)"\n                   target="_blank"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="點擊購物車滿額加價購區商品"\n                   data-track-label="{{\'(\' + product.Id + \')\' + product.Title}}"\n                   data-ns-ga-ec-product-clicks\n                   data-product-id="{{product.Id}}"\n                   data-product-name="{{product.Title}}"\n                   data-product-price="{{product.Price}}"\n                   data-product-position="{{($index + 1)}}"\n                   data-list-name="購物車滿額加價購區"\n                   data-ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (CartCtrl.CheckIsHiddenSale(product.SalePageKindDef) ? product.Code : product.Id) + \'?garefersrc=ThresholdPurchaseExtra\'}}">\n                    <div class="vertical-product__image-frame">\n                        <img class="sleeping-img vertical-product__image"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::product.PicUrl}}"\n                             alt="{{::product.Title}}">\n                    <\/div>\n                    <div class="vertical-product__information">\n                        <div class="vertical-product__title">\n                            {{::product.Title}}\n                        <\/div>\n                        <div class="vertical-product__price-wrapper">\n                            <div class="vertical-product__suggest-price"\n                                 data-ng-class="{\'invisible\':!CartCtrl.IsShowSuggestPrice(product.SuggestPrice, product.Price)}">\n                                {{::product.SuggestPrice | preferredCurrency}}\n                            <\/div>\n                            <div class="vertical-product__price cms-moneyColor">\n                                {{::product.Price | preferredCurrency}}\n                            <\/div>\n                        <\/div>\n                        <div class="vertical-product__action-wrapper">\n                            <div class="vertical-product__action"\n                                 data-ng-click="CartCtrl.PurchaseExtraAddToCart($event, CartCtrl.shoppingCart.getShopId(), product.Id, product.Code)"\n                                 data-ng-if="!CartCtrl.shoppingCart.isUnReachThreshold()">\n                                 <i class="icon icon-editor-icon_cart"><\/i>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/a>\n                <ns-watch-scroll-visiable ng-if="$index % 5 === 0 && ($index + 1 <=10 || ($index +1 > 10 && CartCtrl.ShowMoreThreshold))"\n                                          on-visiable="CartCtrl.ImpressionEvent(5, CartCtrl.ThresholdPurchaseExtraData, CartCtrl.ThresholdPurchaseExtraImpressions)">\n                <\/ns-watch-scroll-visiable>\n            <\/div>\n        <\/div>\n        <div class="product-see-more has-separate-line"\n             data-ng-click="CartCtrl.ShowMoreThresholdProducts()"\n             data-ng-if="::CartCtrl.ThresholdPurchaseExtraData.SalePageList.length > 10">\n            <span data-ng-if="!CartCtrl.ShowMoreThreshold">\n                <span translate="frontend.typescripts.shopping_cart.see_more_product_see_more"><\/span><i class="icon icon-slim-arrow-down"><\/i>\n            <\/span>\n            <span data-ng-if="CartCtrl.ShowMoreThreshold">\n                <span translate="frontend.typescripts.shopping_cart.collapse_product_see_more"><\/span><i class="icon icon-slim-arrow-up"><\/i>\n            <\/span>\n        <\/div>\n    <\/div>\n    <!-- Desktop推薦商品-->\n    <div class="purchase-extra-container"\n         data-ng-if="!CartCtrl.deviceValue.IsMobile() && CartCtrl.PurchaseExtraData.SalePageList && CartCtrl.PurchaseExtraData.SalePageList.length > 0 && CartCtrl.shoppingCart.getTotalSalePageCount() < 50">\n        <div class="purchase-extra-slider__header">\n            <div class="title">\n                {{::CartCtrl.PurchaseExtraData.Title}}\n            <\/div>\n        <\/div>\n        <div class="product-list"\n             data-ng-class="{\'more\': CartCtrl.ShowMoreRecommend}">\n            <div class="vertical-product product-card"\n                 data-ns-lazy-load="sleeping-img"\n                 data-ng-repeat="product in CartCtrl.PurchaseExtraData.SalePageList">\n                <a href="javascript:void(0)"\n                   target="_blank"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="點擊購物車推薦商品區商品"\n                   data-track-label="{{\'(\' + product.Id + \')\' + product.Title}}"\n                   data-ns-ga-ec-product-clicks\n                   data-product-id="{{product.Id}}"\n                   data-product-name="{{product.Title}}"\n                   data-product-price="{{product.Price}}"\n                   data-product-position="{{($index + 1)}}"\n                   data-list-name="購物車推薦商品區"\n                   data-ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (CartCtrl.CheckIsHiddenSale(product.SalePageKindDef) ? product.Code : product.Id) + \'?garefersrc=PurchaseExtra\'}}">\n                    <div class="vertical-product__image-frame">\n                        <img class="sleeping-img vertical-product__image"\n                             ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                             data-temp-src="{{::product.PicUrl}}"\n                             alt="{{::product.Title}}">\n                    <\/div>\n                    <div class="vertical-product__information">\n                        <div class="vertical-product__title">\n                            {{::product.Title}}\n                        <\/div>\n                        <div class="vertical-product__price-wrapper">\n                            <div class="vertical-product__suggest-price"\n                                 data-ng-class="{\'invisible\':!CartCtrl.IsShowSuggestPrice(product.SuggestPrice, product.Price)}">\n                                {{::product.SuggestPrice | preferredCurrency}}\n                            <\/div>\n                            <div class="vertical-product__price cms-moneyColor">\n                                {{::product.Price | preferredCurrency}}\n                            <\/div>\n                        <\/div>\n                        <div class="vertical-product__action-wrapper">\n                            <div class="vertical-product__action"\n                                 data-ng-click="CartCtrl.PurchaseExtraAddToCart($event, CartCtrl.shoppingCart.getShopId(), product.Id, product.Code)">\n                                 <i class="icon icon-editor-icon_cart"><\/i>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/a>\n                <ns-watch-scroll-visiable ng-if="$index % 5 === 0 && ($index + 1 <=10 || ($index +1 > 10 && CartCtrl.ShowMoreRecommend))"\n                                          on-visiable="CartCtrl.ImpressionEvent(5, CartCtrl.PurchaseExtraData, CartCtrl.PurchaseExtraImpressions)">\n                <\/ns-watch-scroll-visiable>\n            <\/div>\n        <\/div>\n        <div class="product-see-more"\n             data-ng-click="CartCtrl.ShowMoreRecommendProducts()"\n             data-ng-if="::CartCtrl.PurchaseExtraData.SalePageList.length > 10">\n            <span data-ng-if="!CartCtrl.ShowMoreRecommend">\n                <span translate="frontend.typescripts.shopping_cart.see_more_product_see_more"><\/span>\n                <i class="icon icon-slim-arrow-down"><\/i>\n            <\/span>\n            <span data-ng-if="CartCtrl.ShowMoreRecommend">\n                <span translate="frontend.typescripts.shopping_cart.collapse_product_see_more"><\/span><i class="icon icon-slim-arrow-up"><\/i>\n            <\/span>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/purchaseExtraMobile.html",'<div class="purchase-extra-list">\n    <!-- Mobile滿額加價購-->\n    <div class="purchase-extra-slider"\n         data-ng-if="CartCtrl.ThresholdPurchaseExtraData.SalePageList && CartCtrl.ThresholdPurchaseExtraData.SalePageList.length > 0 && CartCtrl.shoppingCart.getTotalSalePageCount() < 50">\n        <div class="purchase-extra-slider__header">\n            <div class="title">{{::CartCtrl.ThresholdPurchaseExtraData.Title}}<\/div>\n            <div class="title-desc"\n                 data-ng-if="!CartCtrl.shoppingCart.isUnReachThreshold()">\n                <span translate="frontend.typescripts.shopping_cart.add_purchase_val_count"\n                 translate-value-val0="{{::CartCtrl.ThresholdPurchaseExtraData.AmountThreshold | preferredCurrency}}"\n              >\n                <\/span>\n            <\/div>\n            <div data-ng-if="CartCtrl.shoppingCart.isUnReachThreshold()">\n                <span class="title-desc" \n                    translate="frontend.typescripts.shopping_cart.more_to_add_purchase"\n                    translate-value-val0="{{CartCtrl.shoppingCart.getUnReachPurchaseExtraAmount() | preferredCurrency}}"\n                    >\n                <\/span>    \n                <a ng-href="{{::CartCtrl.OfficialOriginDomain}}"\n                   class="back-home-link"\n                   data-ns-ga-event-track\n                   data-track-category="購物車"\n                   data-track-action="點擊回賣場"\n                   data-track-label="">\n                    <span translate="frontend.typescripts.shopping_cart.back_shop"><\/span><i class="icon icon-slim-arrow-right"><\/i>\n                <\/a>\n            <\/div>\n        <\/div>\n        <div class="slider-frame">\n            <div class="product-list"\n                 ns-watch-in-view\n                 watch-action="touchend"\n                 on-visiable="CartCtrl.ImpressionEvent(1, CartCtrl.ThresholdPurchaseExtraData, CartCtrl.ThresholdPurchaseExtraImpressions)"\n                 list="CartCtrl.PurchaseExtraData.SalePageList"\n                 target-class="impression-item">\n                <div class="vertical-product product-card"\n                     data-ns-lazy-load="sleeping-img"\n                     data-ng-repeat="product in CartCtrl.ThresholdPurchaseExtraData.SalePageList">\n                    <a href="javascript:void(0)"\n                       target="_blank"\n                       data-ns-ga-event-track\n                       data-track-category="購物車"\n                       data-track-action="點擊購物車滿額加價購區商品"\n                       data-track-label="{{\'(\' + product.Id + \')\' + product.Title}}"\n                       data-ns-ga-ec-product-clicks\n                       data-product-id="{{product.Id}}"\n                       data-product-name="{{product.Title}}"\n                       data-product-price="{{product.Price}}"\n                       data-product-position="{{($index + 1)}}"\n                       data-list-name="購物車滿額加價購區"\n                       data-ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (CartCtrl.CheckIsHiddenSale(product.SalePageKindDef) ? product.Code : product.Id) + \'?garefersrc=ThresholdPurchaseExtra\'}}">\n                        <div class="vertical-product__image-frame">\n                            <img class="sleeping-img impression-item vertical-product__image"\n                                 ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                                 data-temp-src="{{::product.PicUrl}}"\n                                 alt="{{::product.Title}}">\n                        <\/div>\n                        <div class="vertical-product__information">\n                            <div class="vertical-product__title">\n                                {{::product.Title}}\n                            <\/div>\n                            <div class="vertical-product__price-wrapper">\n                                <div class="vertical-product__suggest-price"\n                                     data-ng-class="{\'invisible\':!CartCtrl.IsShowSuggestPrice(product.SuggestPrice, product.Price)}">\n                                    {{::product.SuggestPrice | preferredCurrency}}\n                                <\/div>\n                                <div class="vertical-product__price cms-moneyColor">\n                                    {{::product.Price | preferredCurrency}}\n                                <\/div>\n                            <\/div>\n                            <div class="vertical-product__action-wrapper"\n                                 data-ng-if="!CartCtrl.shoppingCart.isUnReachThreshold()">\n                                <div class="vertical-product__action"\n                                     data-ng-click="CartCtrl.PurchaseExtraAddToCart($event, CartCtrl.shoppingCart.getShopId(), product.Id, product.Code)">\n                                     <i class="icon icon-editor-icon_cart"><\/i>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!-- Mobile推薦商品-->\n    <div class="purchase-extra-slider"\n         data-ng-if="CartCtrl.PurchaseExtraData.SalePageList && CartCtrl.PurchaseExtraData.SalePageList.length > 0 && CartCtrl.shoppingCart.getTotalSalePageCount() < 50">\n        <div class="purchase-extra-slider__header">\n            <div class="title">\n                {{::CartCtrl.PurchaseExtraData.Title}}\n            <\/div>\n        <\/div>\n        <div class="slider-frame">\n            <div class="product-list"\n                 ns-watch-in-view\n                 watch-action="touchend"\n                 on-visiable="CartCtrl.ImpressionEvent(1, CartCtrl.PurchaseExtraData, CartCtrl.PurchaseExtraImpressions)"\n                 list="CartCtrl.PurchaseExtraData.SalePageList"\n                 target-class="impression-item">\n                <div class="vertical-product product-card"\n                     data-ns-lazy-load="sleeping-img"\n                     data-ng-repeat="product in CartCtrl.PurchaseExtraData.SalePageList">\n                    <a href="javascript:void(0)"\n                       target="_blank"\n                       data-ns-ga-event-track\n                       data-track-category="購物車"\n                       data-track-action="點擊購物車推薦商品區商品"\n                       data-track-label="{{\'(\' + product.Id + \')\' + product.Title}}"\n                       data-ns-ga-ec-product-clicks\n                       data-product-id="{{product.Id}}"\n                       data-product-name="{{product.Title}}"\n                       data-product-price="{{product.Price}}"\n                       data-product-position="{{($index + 1)}}"\n                       data-list-name="購物車推薦商品區"\n                       data-ng-href="{{::CartCtrl.OfficialOriginDomain + \'/SalePage/Index/\' + (CartCtrl.CheckIsHiddenSale(product.SalePageKindDef) ? product.Code : product.Id) + \'?garefersrc=PurchaseExtra\'}}">\n                        <div class="vertical-product__image-frame">\n                            <img class="sleeping-img impression-item vertical-product__image"\n                                 ng-src="{{CartCtrl.CssCDNDomain}}/v2/Content/Images/defaultSquareImage.gif"\n                                 data-temp-src="{{::product.PicUrl}}"\n                                 alt="{{::product.Title}}">\n                        <\/div>\n                        <div class="vertical-product__information">\n                            <div class="vertical-product__title">\n                                {{::product.Title}}\n                            <\/div>\n                            <div class="vertical-product__price-wrapper">\n                                <div class="vertical-product__suggest-price"\n                                     data-ng-class="{\'invisible\':!CartCtrl.IsShowSuggestPrice(product.SuggestPrice, product.Price)}">\n                                    {{::product.SuggestPrice | preferredCurrency}}\n                                <\/div>\n                                <div class="vertical-product__price cms-moneyColor">\n                                    {{::product.Price | preferredCurrency}}\n                                <\/div>\n                            <\/div>\n                            <div class="vertical-product__action-wrapper">\n                                <div class="vertical-product__action"\n                                     data-ng-click="CartCtrl.PurchaseExtraAddToCart($event, CartCtrl.shoppingCart.getShopId(), product.Id, product.Code)">\n                                     <i class="icon icon-editor-icon_cart"><\/i>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/reachQty.html",'<div class="cart reach-qty" ng-init="ReachQtyCtrl.InitCart(); ReachQtyCtrl.GetMerchandiseList(14)">\n    <!--<pre>{{ReachQtyCtrl.shoppingCart.reachQtyMerchandiseList | json}}<\/pre>-->\n    <a class="back-to-btn hide-at-mobile" ng-click="ReachQtyCtrl.GoToCart()">\n        <i class="fa fa-angle-left"><\/i>\n        <span translate="frontend.typescripts.shopping_cart.return_shopping_cart"><\/span>\n    <\/a>\n    <div class="container">\n        <div class="merchandise-container" ng-if="ReachQtyCtrl.shoppingCart.unMappingMerchandiseList.length == 0">\n            <h2 class="merchandise-title" translate="frontend.typescripts.shopping_cart.chosen_products"><\/h2>\n            <div>\n                <ns-slider ns-list="ReachQtyCtrl.shoppingCart.reachQtyMerchandiseList"\n                        ns-max-count="5"\n                        ns-display-count="5"\n                        ns-official-origin-domain="ReachQtyCtrl.OfficialOriginDomain"\n                        ns-list-name="購物車內任選優惠">\n                <\/ns-slider>\n                <div class="reach-qty-sum"\n                     ng-class="{\'has-matched\': ReachQtyCtrl.shoppingCart.reachQty.getMatchedTotalQty()>0}">\n                    <span class="total-qty"  translate="frontend.typescripts.shopping_cart.pieces_in_total" translate-value-val0="{{ReachQtyCtrl.shoppingCart.reachQty.getTotalQty()}}"><\/span>\n                    <ul class="match-info-ul">\n                        <li ng-if="ReachQtyCtrl.shoppingCart.reachQty.getMatchedTotalQty()>0">\n                             <span class="matched-info">\n                                  <i class="fa fa-check-circle" aria-hidden="true"><\/i>\n                                  <span translate="frontend.typescripts.shopping_cart.shopping_cart_pieces"\n                                        translate-value-val0="{{ReachQtyCtrl.shoppingCart.reachQty.getMatchedTotalQty()}}"\n                                        translate-value-val1="{{ReachQtyCtrl.shoppingCart.reachQty.getMatchedTotalPayment() | preferredCurrency}}">\n                                  <\/span>\n                            <\/span>\n                        <\/li>\n                        <li ng-if="ReachQtyCtrl.shoppingCart.reachQty.getUnMatchedTotalQty()>0">\n                            <span class="unmatched-info">\n                                <i class="fa fa-times-circle" aria-hidden="true"><\/i>\n                                <span translate="frontend.typescripts.shopping_cart.items_not_eligible" translate-value-val0="{{::ReachQtyCtrl.shoppingCart.reachQty.getUnMatchedTotalQty()}}"><\/span>\n                            <\/span>\n                        <\/li>\n                    <\/ul>\n                    <span class="right" translate="frontend.typescripts.shopping_cart.pieces_total" translate-value-val0="{{ReachQtyCtrl.shoppingCart.reachQty.getTotalPayment() | preferredCurrency}}">\n                    <\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="promotion-container">\n            <div class="promotion-info" ng-show="ReachQtyCtrl.merchandiseList.length > 0">\n                <i class="fa fa-question-circle-o message" aria-hidden="true"\n                   ng-click="ReachQtyCtrl.ShowPromotionMessage = !ReachQtyCtrl.ShowPromotionMessage"><\/i>\n                <h3 class="title">{{::ReachQtyCtrl.promotion.getTitle()}}<\/h3>\n                <h4 class="rule">{{::ReachQtyCtrl.promotion.getRule() | stringToPreferredCurrency}}<\/h4>\n                <h4 class="period" class="cursor-pointer">\n                    <i class="fa fa-clock-o" aria-hidden="true"><\/i>\n                    {{::ReachQtyCtrl.promotion.getStartTime()}}~{{::ReachQtyCtrl.promotion.getEndTime()}}\n                <\/h4>\n            <\/div>\n            <div class="promotion-message" ng-show="ReachQtyCtrl.ShowPromotionMessage">\n                <span translate="frontend.typescripts.shopping_cart.choose_discount_msg"><\/span>\n                <br/>\n                <br/>\n                <span translate="frontend.typescripts.shopping_cart.shopping_cart_take_note"><\/span><br/>\n                <span translate="frontend.typescripts.shopping_cart.shopping_cart_take_note_fist_msg"><\/span><br/>\n                <br/>\n                <span translate="frontend.typescripts.shopping_cart.shopping_cart_take_note_second_msg"><\/span><br/>\n                <br/>\n                <span translate="frontend.typescripts.shopping_cart.shopping_cart_take_note_third_msg"><\/span><br/>\n            <\/div>\n            <h2 class="promotion-title" translate="frontend.typescripts.shopping_cart.promotional_items"><\/h2>\n            <div data-ns-end-less-list\n                 data-end-less-model="ReachQtyCtrl.merchandiseList"\n                 data-start-index="ReachQtyCtrl.endlessIndex"\n                 data-is-lock="ReachQtyCtrl.endlessIsLock"\n                 data-get-model-method="ReachQtyCtrl.GetMerchandiseList(20)"\n                 data-scroll-listener="ReachQtyCtrl.endlessScrollListener">\n                <ul class="merchandise-ul">\n                    <li class="merchandise-li"\n                        data-ns-lazy-load="sleeping-background"\n                        data-lazy-load-alarm-clock="{{ReachQtyCtrl.endlessIndex}}"\n                        ng-repeat="merchandise in ReachQtyCtrl.merchandiseList">\n                        <ns-watch-scroll-visiable\n                                data-ng-if="$index == 0 || $index % 10 == 0 ||($index % 10 != 0 && $index==ReachQtyCtrl.merchandiseList.length)"\n                                on-visiable="ReachQtyCtrl.TrackProductImpression($index,10,\'銷售排行\')">\n                        <\/ns-watch-scroll-visiable>\n                        <div>\n                            <div class="info">\n                                <a data-ns-ga-ec-product-clicks\n                                   data-product-id="{{::merchandise.getId()}}"\n                                   data-product-name="{{::merchandise.getTitle()}}"\n                                   data-product-price="{{::merchandise.getTotalPayment()}}"\n                                   data-product-position="{{::($index+1)}}"\n                                   data-list-name="{{::ListName}}"\n                                   data-ng-href="{{::ReachQtyCtrl.OfficialOriginDomain}}/SalePage/Index/{{merchandise.getId()}}">\n                                    <div class="merchandise-img sleeping-background" data-temp-src="{{::merchandise.getPicUrl()}}"><\/div>\n                                <\/a>\n                                <h2 class="merchandise-title">{{::merchandise.getTitle()}}<\/h2>\n                                <div class="clear-float">\n                                    <span class="merchandise-price">{{::merchandise.getTotalPayment() | preferredCurrency}}<\/span>\n                                    <i class="fa favorite" aria-hidden="true"\n                                       ng-class="{\'fa-heart active\':merchandise.isFavorite, \'fa-heart-o\':!merchandise.isFavorite}"\n                                       ng-click="ReachQtyCtrl.ToggleFavorite(merchandise)"><\/i>\n                                <\/div>\n                            <\/div>\n                            <div class="add-to-cart-btn  cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                                 data-ns-ga-event-track\n                                 data-track-category="購物車"\n                                 data-track-action="click"\n                                 data-track-label="購物車內任選活動頁的點擊加入購物車"\n                                 ng-click="ReachQtyCtrl.AddToCart(merchandise)"\n                                 translate="frontend.typescripts.shopping_cart.add_to_cart">\n                            <\/div>\n                        <\/div>\n                    <\/li>\n                <\/ul>\n            <\/div>\n            <div class="is-loading" ng-if="ReachQtyCtrl.endlessIsLock">\n                <img src="https://cdnjs.cloudflare.com/ajax/libs/file-uploader/3.7.0/loading.gif">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<footer class="back-footer">\n    <a class="back-btn reach-qty-back-btn" ng-click="ReachQtyCtrl.GoToCart()">\n        <i class="fa fa-angle-left hide-at-mobile"><\/i>\n        <span translate="frontend.typescripts.shopping_cart.return_shopping_cart"><\/span>\n    <\/a>\n<\/footer>\n\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/redeemPartialPointsDialog.template.html",'<div class="modal-body" ng-form="RedeemPartialPointsForm">\n    <a href="javascript:void(0)" type="button" class="close" ng-click="RedeemPartialPointsDialogCtrl.Close()">\n        <i class="icon-editor icon-editor-icon_common_close"><\/i><\/a>\n    <div class="modal-title">\n        <span data-qe-id="loyalty_point_redeem_partial_points_dialog_title_txt"\n              translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_title"><\/span>\n    <\/div>\n    <div class="modal-body__content">\n        <div class="modal-body__content-row">\n            <span data-qe-id="loyalty_point_redeem_partial_points_dialog_points_remaining_txt"\n                  translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_my_points"\n                  translate-value-val0="{{(Model.memberTotalBalancePoint + Model.pointsPayTotalPoints) | number}}"><\/span>\n        <\/div>\n        <div class="modal-body__content-row max-discount">\n            <span data-qe-id="loyalty_point_redeem_partial_points_dialog_max_discount_price_txt"\n                  translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_max_discount_price_description"\n                  translate-value-val0="{{RedeemPartialPointsDialogCtrl.SalesCurrencySymbol + (Model.discountPrice | nsAbs | number)}}"><\/span>\n        <\/div>\n        <div class="modal-body__content-row form-input" ng-class="{\'warning\': RedeemPartialPointsForm.RedeemPartialPointsPrice.$invalid}">\n            <span class="input-prefix">{{RedeemPartialPointsDialogCtrl.SalesCurrencySymbol}}<\/span>\n            <input type="tel"\n                   id="RedeemPartialPointsPrice"\n                   name="RedeemPartialPointsPrice"\n                   placeholder="{{\'frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_please_enter_amount\' | translate}}"\n                   required\n                   data-qe-id="loyalty_point_redeem_partial_points_dialog_price_input"\n                   ns-only-number\n                   ng-model="RedeemPartialPointsDialogCtrl.RedeemPartialPointsPrice"\n                   ng-change="RedeemPartialPointsDialogCtrl.ConvertDollarsToPoints(RedeemPartialPointsDialogCtrl.RedeemPartialPointsPrice, RedeemPartialPointsForm)"\n                   ng-blur="RedeemPartialPointsDialogCtrl.ClearNoneNumber(RedeemPartialPointsDialogCtrl.RedeemPartialPointsPrice)"/>\n            <div class="clear-input"\n                 ng-click="RedeemPartialPointsDialogCtrl.ClearInput(RedeemPartialPointsForm)">\n                <i class="icon-editor icon-editor-icon_notyet"><\/i>\n            <\/div>\n        <\/div>\n        <div class="modal-body__content-row">\n            <div ng-hide="RedeemPartialPointsForm.$invalid">\n                <span class="calc-points"\n                      data-qe-id="loyalty_point_redeem_partial_points_dialog_dollars_to_points_txt"\n                      translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_use_points"\n                      translate-value-val0="{{RedeemPartialPointsDialogCtrl.DollarsConvertToPoints | number}}"><\/span>\n                <span class="preferred-currency"\n                      data-qe-id="loyalty_point_redeem_partial_points_dialog_preferred_currency_txt"\n                      data-ng-if="RedeemPartialPointsDialogCtrl.SalesCurrency !== RedeemPartialPointsDialogCtrl.CurrencyFormat.CurrencyCode"\n                      translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_preferred_currency"\n                      translate-value-val0="{{RedeemPartialPointsDialogCtrl.RedeemPartialPointsPrice | preferredCurrency}}"><\/span>\n            <\/div>\n            <div ng-if="RedeemPartialPointsForm.RedeemPartialPointsPrice.$error.numberNoDot" class="form-input-error">\n                <span data-qe-id="loyalty_point_redeem_partial_points_dialog_price_input_error_txt"\n                      translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_price_input_error_number_no_dot"><\/span>\n            <\/div>\n            <div ng-if="RedeemPartialPointsForm.RedeemPartialPointsPrice.$error.startWithNoZero" class="form-input-error">\n                <span data-qe-id="loyalty_point_redeem_partial_points_dialog_price_input_error_txt"\n                      translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_price_input_error_start_with_no_zero"><\/span>\n            <\/div>\n            <div ng-if="RedeemPartialPointsForm.RedeemPartialPointsPrice.$error.lowerThanMaxPrice" class="form-input-error">\n                <span data-qe-id="loyalty_point_redeem_partial_points_dialog_price_input_error_txt"\n                      translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_price_input_error_lower_than_max_price"\n                      translate-value-val0="{{RedeemPartialPointsDialogCtrl.SalesCurrencySymbol + (RedeemPartialPointsDialogCtrl.MaxRedeemPartialPointsPrice | number)}}"><\/span>\n            <\/div>\n        <\/div>\n        <div class="more-details">\n            <div class="more-details__title"\n                 data-qe-id="loyalty_point_redeem_partial_points_dialog_description_btn"\n                 ng-click="RedeemPartialPointsDialogCtrl.IsOpenMoreDetails = !RedeemPartialPointsDialogCtrl.IsOpenMoreDetails">\n                <span translate="frontend.typescripts.shopping_cart.loyalty_point_redeem_partial_points_dialog_description"><\/span>\n                <i class="icon-editor icon-editor-icon_common_down_tiny"\n                   ng-class="RedeemPartialPointsDialogCtrl.IsOpenMoreDetails ? \'rotate-to-top\' : \'rotate-to-bottom\'"><\/i>\n            <\/div>\n            <div class="collapse-panel"\n                 ng-class="{\'collapse-show\': RedeemPartialPointsDialogCtrl.IsOpenMoreDetails}">\n                <div class="more-details__content"\n                     data-qe-id="loyalty_point_redeem_partial_points_dialog_description_txt"\n                     ng-bind="Model.readMoreMessage"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class="function">\n        <button class="button full cms-primaryBtnBgColor cms-primaryBtnTextColor"\n                data-qe-id="loyalty_point_redeem_partial_points_dialog_confirm_btn"\n                ng-class="{\'disable\': RedeemPartialPointsForm.$invalid}"\n                ng-click="RedeemPartialPointsDialogCtrl.Ok()">\n            {{ Model.confirmButtonName }}\n        <\/button>\n    <\/div>\n<\/div>\n\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/shippingArea.template.html",'<div class="modal-header">\n    <h4 class="modal-title" ng-bind="Title"><\/h4>\n    <i class="icon icon-close close-btn" ng-click="ShippingAreaDialogCtrl.Close()"><\/i>\n<\/div>\n<div class="modal-body">\n    <ns-select-shipping-area\n        ns-shipping-area-list="Model.shippingAreaList"\n        ns-sub-shipping-area-list="Model.subShippingAreaList"\n        ns-selected-shipping-area="Model.selectedShippingArea"\n        ns-can-oversea="Model.canOversea"\n        ns-can-abroad-store-pickup="Model.canAbroadStorePickup"\n        ns-is-all-sub-shipping-areas="Model.isAllSubShippingAreasPopulated"\n        ns-change-shipping-area="ShippingAreaDialogCtrl.Change(selectedArea)"/>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/unMappingRegularOrder.template.html",'<div\n    class="row has-hozl-gutter regular-purchase regular-order"\n    ng-if="merchandise.getSaleProductShippingTypeDef() === \'RegularOrder\'"\n>\n    <div ng-switch="merchandise.getRegularOrderSettingProvider()">\n        <div ng-switch-when="Nine1">\n            <div\n                class="order-option-block__title"\n                translate="frontend.typescripts.shopping_cart.regular_order_period"\n            >\n            <\/div>\n            <div class="order-option-block__cart__fn fn-disabled">\n                <select \n                    class="selector"\n                    disabled\n                >\n                    <option \n                        value=""\n                        translate="frontend.typescripts.shopping_cart.regular_order_select_frequency"\n                    ><\/option>\n                <\/select>\n            <\/div>\n        <\/div>\n        <div \n            ng-if="merchandise.getSelectedRegularOrderSettingOption() === CartCtrl.RegularOrderOptionEnum.Regular"\n            ng-switch-when="GameBall"\n        >\n            <div>\n                <!-- 配送週期 -->\n                <div\n                    class="order-option-block__title"\n                    translate="frontend.typescripts.shopping_cart.regular_order_period">\n                <\/div>\n                <div class="order-option-block__cart__fn fn-disabled">\n                    <select\n                        disabled\n                        class="selector"\n                        ng-model="merchandise.selectedDeliveryPeriod"\n                        ng-options="Period as Period.PeriodName for Period in merchandise.getDeliveryPeriodList()"\n                        ng-init="merchandise.initRegularOrderPeriodSelected()"\n                    ><\/select>\n                    <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                <\/div>\n            <\/div>\n            <div ng-if="merchandise.getMaxDeliveryCountSetting() > 0">\n                <!-- 配送次數 -->\n                <div\n                    class="order-option-block__title"\n                    translate="frontend.typescripts.shopping_cart.regular_order_delivery_count">\n                <\/div>\n                <div class="order-option-block__cart__fn fn-disabled">\n                    <select\n                        disabled\n                        class="selector"\n                        ng-model="merchandise.selectedMaxDeliveryCount"\n                        ng-options="orderCount.Value as orderCount.Key for orderCount in merchandise.maxDeliveryCountDataSource"\n                        ng-init="merchandise.initRegularOrderMaxDeliveryCountSelected()"\n                    ><\/select>\n                    <i class="icon-editor icon-editor-icon_common_down"><\/i>\n                <\/div>\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n    \n<\/div>');n.put("/V2/TypeScripts/Modules/ShoppingCart/unmatchedPromotionDialog.template.html",'<div class="modal-body">\n    <div class="unmatched-promotion-dialog">\n        <h1 class="unmatched-promotion-dialog__title"\n            translate="frontend.typescripts.unmatched_promotion_dialog.activity_unmatched_reason"><\/h1>\n            <ol class="unmatched-promotion-dialog__reason-list">\n                <li class="unmatched-promotion-dialog__reason-list-item"\n                    translate="frontend.typescripts.unmatched_promotion_dialog.unmatched_reason_desc1"><\/li>\n                <li class="unmatched-promotion-dialog__reason-list-item"\n                    translate="frontend.typescripts.unmatched_promotion_dialog.unmatched_reason_desc2"><\/li>\n            <\/ol>\n    <\/div>\n    <div class="function">\n        <button ng-click="DialogCtrl.Ok()"\n                class="full button"\n                translate="frontend.typescripts.unmatched_promotion_dialog.confirm"><\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/TradesOrder/atmPayInfo.html",'<div class="modal-body">\n    <div class="atm-payinfo-title-container">\n        <!--ATM付款資訊-->\n        <div class="atm-payinfo-title" translate="frontend.typescripts.trades_order.list.atn_payment_info"><\/div>\n        <!--可用手機拍照方便匯款-->\n        <div class="atm-payinfo-sub-title" ng-if="AtmPayinfoCtrl.IsMobile === false" translate="frontend.typescripts.trades_order.list.screenshot_desktop_msg"><\/div>\n        <!--可螢幕截圖方便匯款-->\n        <div class="atm-payinfo-sub-title" ng-if="AtmPayinfoCtrl.IsMobile === true" translate="frontend.typescripts.trades_order.list.screenshot_mobile_msg"><\/div>\n    <\/div>\n    <div class="atm-payinfo-content">\n        <div class="atm-payinfo-row">\n            <!--轉帳銀行-->\n            <div class="atm-payinfo-row-title" translate="frontend.typescripts.trades_order.list.transfer_bank"><\/div>\n            <div class="atm-payinfo-row-desc">\n                <span>{{::Model.AtmPayInfo.BankName}}<\/span>&nbsp;\n                <span class="highlight-text">{{::Model.AtmPayInfo.BankCode}}<\/span>\n            <\/div>\n        <\/div>\n        <div class="atm-payinfo-row">\n            <!--轉帳帳號-->\n            <div class="atm-payinfo-row-title" translate="frontend.typescripts.trades_order.list.transfer_account"><\/div>\n            <div class="atm-payinfo-row-desc highlight-text">\n                {{::AtmPayinfoCtrl.formatAtmPayinfoVirtualAccount(Model.AtmPayInfo.VirtualAccount)}}\n            <\/div>\n        <\/div>\n        <div class="atm-payinfo-row">\n            <!--繳款金額-->\n            <div class="atm-payinfo-row-title"  translate="frontend.typescripts.trades_order.list.amount_pay"><\/div>\n            <div class="atm-payinfo-row-desc total-price price-red cms-moneyColor">{{::Model.TotalPayment | preferredCurrency}}<\/div>\n        <\/div>\n        <div class="atm-payinfo-row">\n            <!--繳款期限-->\n            <div class="atm-payinfo-row-title" translate="frontend.typescripts.trades_order.list.payment_deadline"><\/div>\n            <div class="atm-payinfo-row-desc">{{::Model.AtmPayInfo.ExpiredDateTime|nsDotNetDateParser|date: \'medium\'}}<\/div>\n        <\/div>\n        <div class="atm-payinfo-desc">\n            <!--此轉帳帳號僅供本次交易使用-->\n            <div class="atm-payinfo-desc-item price-red" translate="frontend.typescripts.trades_order.list.atm_accounts_msg"><\/div>\n            <!--此繳款帳號若已過繳款期限為無效帳號，如需購買請重新訂購-->\n            <div class="atm-payinfo-desc-item highlight-text" translate="frontend.typescripts.trades_order.list.atm_payinfo_desc2"><\/div>\n            <!--請於繳款期限前，透過網路銀行、任何一部銀行或郵局的[網路ATM]或[ATM自動提款機]轉帳，輸入轉帳帳號及金額就能輕鬆完成付款-->\n            <div class="atm-payinfo-desc-item" translate="frontend.typescripts.trades_order.list.atm_payinfo_desc1"><\/div>\n            <!--訂單金額若超過三萬元，請改選「轉帳繳費」功能，繳費上限依各金融機構規定-->\n            <div class="atm-payinfo-desc-item" translate="frontend.typescripts.trades_order.list.atm_orders_amount_msg"><\/div>\n        <\/div>\n    <\/div>\n    <div class="function">\n        <button ng-click="AtmPayinfoCtrl.Ok()" class="full button" translate="frontend.typescripts.trades_order.list.confirm"><\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/TradesOrder/customOfflinePayInfo.html",'<div class="paymentInfo-header">\n    <div class="paymentInfo-header__title">\n        <span ng-bind="CustomOfflinePayInfoCtrl.Title"><\/span>\n    <\/div>\n    <i class="paymentInfo-header__close-btn icon icon-close" ng-click="CustomOfflinePayInfoCtrl.Ok()"><\/i>\n<\/div>\n<div class="paymentInfo-content">\n    <div ns-custom-offline-payment-Inform ns-bank-account-info="CustomOfflinePayInfoCtrl.CustomPayInfo.BankAccountInfo"\n        ns-payment-mobile="CustomOfflinePayInfoCtrl.CustomPayInfo.PaymentMobile"\n        ns-payment-email="CustomOfflinePayInfoCtrl.CustomPayInfo.PaymentEmail"\n        ns-q-r-code-img="CustomOfflinePayInfoCtrl.CustomPayInfo.QRCodeImg"\n        ns-payment-note="CustomOfflinePayInfoCtrl.CustomPayInfo.PaymentNote"\n        ns-has-copy="CustomOfflinePayInfoCtrl.CustomPayInfo.HasCopy">\n    <\/div>\n<\/div>\n<\/div>\n<div class="paymentInfo-footer">\n    <button class="paymentInfo-footer__confirm-btn cms-primaryBtnBgColor cms-primaryBtnTextColor" ng-click="CustomOfflinePayInfoCtrl.Ok()">\n        <span translate="frontend.typescripts.common.confirm"><\/span>\n    <\/button>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/InverseOrder.html",'<!--商品資訊 TM-->\n<div ng-controller="InverseOrderProcessController as InverseOrderProcessCtrl">\n    <div class="TM-block fixTMBlock"\n         ng-repeat="TMItem in InverseOrderProcessCtrl.DetailData.TradesOrderList"\n         ng-if="TMItem.TradesOrderSlaveList.length !== 0"\n         ng-class="{\'temperature-block\':TMItem.TemperatureTypeDef !== \'Normal\'}">\n\n        <!-- 有溫層時顯示tag -->\n        <div class="text small temperature-tag"\n             ng-if="TMItem.TemperatureTypeDef !== \'Normal\' && TMItem.TradesOrderSlaveList.length !== 0">\n            <div class="label" translate="{{InverseOrderProcessCtrl.getTemperatureDisplayName(TMItem.TemperatureTypeDef)}}"><\/div>\n        <\/div>\n        <div class="TM-content temperature-border">\n            <!--TS-->\n            <div class="TS-block" ng-repeat="TSItem in TMItem.TradesOrderSlaveList">\n                <div class="TS-header temperature-header">\n                    {{(TSItem.IsGift && !TSItem.ECouponSlaveId) ? (\'frontend.typescripts.trades_order.inverse_order.gift_purchase\'|translate) : TSItem.Code}}\n                <\/div>\n                <div class="row" ng-class="{\'line\':!$last}">\n                    <!--TS商品-->\n                    <div class="checkbox-label selectArea"\n                         ng-class="{\'disable-area\': !TSItem.DefaultEnabled }">\n                        <input type="checkbox"\n                               class="input"\n                               id="ts-checkbox{{TSItem.Code}}"\n                               ng-model="TSItem.DefaultSelected"\n                               ng-disabled="!TSItem.DefaultEnabled"\n                               ng-change="InverseOrderProcessCtrl.CheckTrigger(TSItem);InverseOrderProcessCtrl.CheckRefundType()" />\n                        <label class="label"\n                               ng-class="{\'checked\':TSItem.DefaultSelected,\'disabled\':!TSItem.DefaultEnabled}"\n                               for="ts-checkbox{{TSItem.Code}}">\n                            <i ng-show="TSItem.DefaultSelected" class="fa fa-check"><\/i>\n                        <\/label>\n                    <\/div>\n                    <div class="item"\n                         ng-class="{\'disable-area\': !TSItem.DefaultEnabled }">\n                        <div class="inverse-summary">\n                            <img class="img" ng-src="{{TSItem.PicUrl}}" alt=""/>\n                            <div class="content">\n                                <div class="name text depp-title hover small">\n                                    <div class="title">{{::TSItem.SaleProductTitle}}<\/div>\n                                    <div class="sku text light-title min hide-at-mobile">\n                                        {{::TSItem.SaleProductSKUForDisplay}}\n                                    <\/div>\n                                    <div class="label-container">\n                                        <span class="label"\n                                              ng-if="TSItem.ShippingType === InverseOrderProcessCtrl.SaleProductShippingTypeEnum.RegularOrder"\n                                              translate="{{InverseOrderProcessCtrl.getDeliveryTypeDisplayName(TSItem.ShippingType)}}">\n                                        <\/span>\n                                    <\/div>\n                                    <!-- 商品不接受退貨文案 -->\n                                    <div class="text light-text"\n                                         ng-if="::!TSItem.IsReturnable && !TSItem.DefaultEnabled">\n                                        <span translate="frontend.typescripts.trades_order.inverse_order.non_returnable"><\/span>\n                                        <a ng-href="{{ InverseOrderProcessCtrl.OfficialOriginDomain + \'/Shop/Introduce/\'+ InverseOrderProcessCtrl.ShopId + \'?t=2&shopId=\' + InverseOrderProcessCtrl.ShopId}}"\n                                           target="_blank"\n                                           translate="frontend.typescripts.trades_order.inverse_order.return_description"><\/a>\n                                    <\/div>\n                                <\/div>\n                                <div class="spec">\n                                    <div ng-if="TSItem.SaleProductSKUForDisplay"\n                                         class="sku text light-title min show-at-mobile">\n                                        {{::TSItem.SaleProductSKUForDisplay}}\n                                    <\/div>\n                                    <div class="qty text light-title min "\n                                         translate="frontend.typescripts.trades_order.inverse_order.qty"\n                                         translate-value-val0="{{TSItem.Qty}}"><\/div>\n                                <\/div>\n\n                                <!--滿額贈不顯示金額-->\n                                <div class="money text middle clear cms-moneyColor" ng-if="!TSItem.IsGift">\n                                    {{TSItem.TotalPayment|currency}}\n                                <\/div>\n                                <!-- 贈品券 TAG -->\n                                <div class="money text middle clear cms-moneyColor" ng-if="TSItem.IsGift && TSItem.ECouponSlaveId"\n                                     translate="frontend.typescripts.trades_order.inverse_order.gift_coupon_redemption">\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <ul ng-if="TSItem.SalePageGiftList.length !== 0"\n                            class="order-salePageGift fixSalePageGift clear">\n                            <li class="gift" ng-repeat="salePageItem in TSItem.SalePageGiftList">\n                                <span class="giftText inline-block">\n                                    <span translate="frontend.typescripts.trades_order.inverse_order.gifts"><\/span> x {{::salePageItem.Qty}}\n                                <\/span>\n                                <span class="saleTitle inline-block">{{::salePageItem.SaleProductTitle}}<\/span>\n                            <\/li>\n                        <\/ul>\n                    <\/div>\n                    <!--買就送-->\n\n                <\/div>\n                <!--原因 -->\n                <div class="inverse-reason clear"\n                     ng-if="!TSItem.IsGift || (TSItem.IsGift && TSItem.ECouponSlaveId)"\n                     ng-class="{\'show\':TSItem.DefaultSelected,\'warning\':insertForm.$submitted&&insertForm[\'select\' + TSItem.Code].$invalid}">\n                    <span translate="frontend.typescripts.trades_order.inverse_order.reason"\n                          translate-value-val0="{{InverseOrderProcessCtrl.TypeDesc | translate }}"><\/span>\n                    <span class="cancel-reason-block">\n                        <div class="cancel-reason-block__mask">{{ InverseOrderProcessCtrl.selectReason(TSItem.CauseDef) || InverseOrderProcessCtrl.defaultReason }}<\/div>\n                        <select class="reason cancel-reason-block__dropdown"\n                                name="select{{TSItem.Code}}"\n                                ng-model="TSItem.CauseDef"\n                                ng-options="Cause.Value as Cause.Text for Cause in InverseOrderProcessCtrl.ReasonList"\n                                ng-required="TSItem.DefaultSelected">\n                            <option value="" translate="frontend.typescripts.trades_order.inverse_order.reason_select"><\/option>\n                        <\/select>\n                    <\/span>    \n                    <p class="text warning"\n                       ng-if="insertForm.$submitted&&insertForm[\'select\' + TSItem.Code].$invalid"\n                       translate="frontend.typescripts.trades_order.inverse_order.reason_required">\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <p class="TM-block text warning"\n       ng-if="insertForm.$submitted && !InverseOrderProcessCtrl.CheckSelected()"\n       translate="frontend.typescripts.trades_order.inverse_order.enter_product"\n       translate-value-val0="{{InverseOrderProcessCtrl.TypeDesc | translate}}">\n    <\/p>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/TradesOrder/progress.template.html",'<div class="modal__body">\n    <div class="modal__header">\n        <div class="modal__header__title" translate="frontend.typescripts.trades_order.list.shipping_detail">\n        <\/div>\n        <button type="button"\n                class="modal__header__close"\n                ng-click="DialogCustomizeCtrl.Cancel()">\n            <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n        <\/button>\n    <\/div>\n    <div class="modal__content">\n        <div class="modal__progress">\n            <ns-vertical-progress-bar\n                ns-progress-list="Model.list"\n                ns-date-format="mediumDate"\n                ns-date-text-align="right"><\/ns-vertical-progress-bar>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/TradesOrder/registerPromotionDialog.template.html",'<div class="modal__body registerModal__body">\n    <div class="registerModal-head">\n        <!-- Close -->\n        <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCustomizeCtrl.Cancel()">\n            <i class="icon icon-slim-close"><\/i>\n        <\/a>\n    <\/div>\n    <div class="main_content">\n        {{Title}}\n    <\/div>\n    <div class="modal-footer">\n        <button class="button"\n                ng-click="DialogCustomizeCtrl.Cancel()"\n                ng-if="Model.cancelBtn"\n                translate="frontend.typescripts.common.Cancel">\n        <\/button>\n        <button class="button button-right full"\n                ng-if="Model.cancelBtn"\n                ng-click="DialogCustomizeCtrl.submitData(Model.registerInfos)"\n                translate="frontend.typescripts.common.send">\n        <\/button>\n        <button class="button button-right full"\n                ng-if="!Model.cancelBtn"\n                ng-click="DialogCustomizeCtrl.Cancel()"\n                translate="frontend.typescripts.common.confirm">\n        <\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/retailDelivery.template.html",'<div class="modal__body">\n    <div class="modal__header">\n        <div class="modal__header__title" translate="frontend.typescripts.trades_order.detail.delivery_progress">\n        <\/div>\n        <div class="modal__header__subtitle">\n            <span translate="frontend.typescripts.trades_order.detail.order_no"><\/span> {{Model.tgCode}}\n        <\/div>\n        <button type="button"\n            class="modal__header__close"\n            ng-click="RetailDeliveryDialogCtrl.Cancel()">\n            <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n        <\/button>\n    <\/div>\n    <div class="modal__content">\n        <div class="modal__progress">\n            <div class="progress-content" ng-repeat="item in Model.list track by $index">\n                <div class="progress-content__dateTime" ng-class="{\'progress-content__dateTime--active\': item.IsLatestStatus}">\n                    <div class="progress-content__date" ng-if="item.NodeTime">{{item.NodeTime|nsDotNetDateParser|date:\'MM/dd\'}}<\/div>\n                    <div class="progress-content__time" ng-if="item.NodeTime">{{item.NodeTime|nsDotNetDateParser|date:\'HH:mm\'}}<\/div>\n                <\/div>\n                <div class="time-line">\n                    <div class="time-line__top" ng-class="{\'time-line__top--hidden\': $index === 0}"><\/div>\n                    <div class="time-line__bottom" ng-if="$index < Model.list.length - 1"><\/div>\n                <\/div>\n                <div class="progress-content__info">\n                    <div>\n                        <span class="progress-content__info__title" ng-class="{\'progress-content__info__title--active\': item.IsLatestStatus}">\n                            {{item.NodeMainMessage}}\n                        <\/span>\n                        <i class="icon-editor icon-editor-icon_question" \n                           ng-if="item.WarningPopupMessage" \n                           ng-click="RetailDeliveryDialogCtrl.ShowWarningDialog(item.WarningPopupMessage)"><\/i>\n                    <\/div>\n                    <div class="progress-content__info__desc" ng-if="item.NodeSubMessage">\n                        <div>{{item.NodeSubMessage}}<\/div>\n                        <a class="progress-content__info__phone-link"\n                           ng-href="tel://{{item.ConsumerHotline}}"\n                           ng-if="item.ConsumerHotline">\n                            <i class="icon-editor icon-editor-icon_phone"><\/i>\n                        <\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div \n            class="contact-information" \n            ng-if="RetailDeliveryDialogCtrl.FlowStatusEnum[RetailDeliveryDialogCtrl.LastProgressItem.FlowStatus] === RetailDeliveryDialogCtrl.FlowStatusEnum.CourierFail"\n            translate-compile translate="frontend.typescripts.trades_order.detail.delivery_courier_fail_message"\n            translate-value-val0="<a href=\'javascript:void(0)\' class=\'contact-information__link\' ng-click=\'RetailDeliveryDialogCtrl.RedirectToQuestionInsert(Model)\' translate=\'frontend.typescripts.trades_order.detail.customer_service_contact\'><\/a>"><\/div>\n        <div \n            class="contact-information"\n            ng-if="RetailDeliveryDialogCtrl.FlowStatusEnum[RetailDeliveryDialogCtrl.LastProgressItem.FlowStatus] === RetailDeliveryDialogCtrl.FlowStatusEnum.Cancel ||\n                   RetailDeliveryDialogCtrl.FlowStatusEnum[RetailDeliveryDialogCtrl.LastProgressItem.FlowStatus] === RetailDeliveryDialogCtrl.FlowStatusEnum.CourierOverdue"\n            translate-compile translate="frontend.typescripts.trades_order.detail.delivery_cancel_message"\n            translate-value-val0="<a href=\'javascript:void(0)\' class=\'contact-information__link\' ng-click=\'RetailDeliveryDialogCtrl.RedirectToQuestionInsert(Model)\' translate=\'frontend.typescripts.trades_order.detail.contact_customer_service\'><\/a>"><\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/retailStoreReturnGoodsQRCode.html",'<h3 class="modal-title">\n    <span translate="frontend.typescripts.trades_order.list.retail_store_return_goods_title"><\/span>\n    <a ng-click="DialogCustomizeCtrl.Close()">\n        <i class="icon-editor icon-editor-icon_common_close icon-editor-lg right"><\/i>\n    <\/a>\n<\/h3>\n<div class="modal-body">\n    <div ng-class="{ \'qr-code-image__disabled\': !Model.Code }"\n         translate-attr="{ \'data-content\': \'frontend.typescripts.trades_order.list.retail_store_return_goods_hint\' }">\n        <img class="qr-code-image"\n             ng-src="/webapi/BarCode/GenerateBarCodeImage?width=220&height=220&barcodeType={{Model.CodeType}}&barCodeValue={{Model.Code || \'example\'}}&ts=0"\n             alt="retail store return goods qrcode"\n        />\n    <\/div>\n    <p class="modal-body__desc"\n       translate="frontend.typescripts.trades_order.list.retail_store_return_goods_desc">\n    <\/p>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/storeInfo.template.html",'<div class="modal__body">\n    <div class="modal__content">\n        <div>\n            <span>{{Title}}<\/span>：\n        <\/div>\n        <div>{{Model.StoreId}}<\/div>\n        <div>{{Model.StoreName}}<\/div>\n    <\/div>\n    <div class="modal-footer">\n        <button class="button"\n                ng-click="DialogCustomizeCtrl.Cancel()"\n                translate="frontend.typescripts.common.Cancel">\n        <\/button>\n        <button class="button button-right full"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                translate="frontend.typescripts.common.confirm">\n        <\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/termAndDescription.template.html",'<div class="registerModal__body">\n    <div class="registerModal-head">\n        <!-- Close -->\n        <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCustomizeCtrl.Cancel()">\n            <i class="icon icon-slim-close"><\/i>\n        <\/a>\n    <\/div>\n    <div class="registerModal__contentContainer">\n        <div class="registerModal__content">\n            <div class="infoColumn">\n                <div class="infoTitle title" ng-bind-html="Title">{{ Title }}<\/div>\n            <\/div>\n            <div class="infoColumn">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.event_period"><\/div>\n                <span class="infoContent">{{ Model.ActivityPeriod }}<\/span>\n            <\/div>\n            <div class="infoColumn" ng-if="Model.RegisterPeriod">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.registration_period"><\/div>\n                <span class="infoContent">{{ Model.RegisterPeriod }}<\/span>\n            <\/div>\n            <div class="infoColumn">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.event_description"><\/div>\n                <span class="infoContent">{{ Model.Description }}<\/span>\n            <\/div>\n            <div class="infoColumn" ng-if="Model.TargetRegionList">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.target_region"><\/div>\n                <ul>\n                    <li class="infoContent" ng-repeat="targetRegion in Model.TargetRegionList">{{ targetRegion }}<\/li>\n                <\/ul>\n            <\/div>\n            <div class="infoColumn">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.event_rule"><\/div>\n                <ul>\n                    <li class="infoContent">{{ Model.Rule }}<\/li>\n                    <li class="infoContent" ng-repeat="note in Model.NoteList">{{ note }}<\/li>\n                <\/ul>\n            <\/div>\n            <div class="infoColumn" ng-if="Model.Terms">\n                <div class="infoTitle" translate="frontend.typescripts.trades_order.detail.event_term"><\/div>\n                <span class="infoContent">{{ Model.Terms }}<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/VipMember/barCode.html",'<div class="modal-body bar-code-dialog">\n    <h3 class="bar-code-title">會員條碼<\/h3>\n    <div class="bar-code-img-container">\n        <img data-ng-src="{{Model.VipMemberBarcodeImageUrl}}" />\n    <\/div>\n    <button class="confirm-btn" ng-click="CardInfoDescCtrl.Ok()">\n        關閉\n    <\/button>\n<\/div>');n.put("/V2/TypeScripts/Modules/VipMember/cardInfoDesc.html",'<div class="modal-body">\n    <div class="info-dialog-title">\n        <strong class="text max line-height-max title-name">\n            <ns-svg-crown><\/ns-svg-crown>\n            {{Model.MemberName}}\n        <\/strong>\n        <div class="title-cardname">\n            <div class="text small line-height-middle">{{Model.CardName}}<\/div>\n            <div class="text small gray line-height-middle">\n                {{Model.CardIsIndefinite?\'永久有效\':(Model.CardEndDateTime|date:\'yyyy/MM/dd\')+\'到期\'}}\n            <\/div>\n        <\/div>\n    <\/div>\n    <div class="info-dialog-content" ng-bind-html="Model.CardDescription" style="line-height: 22px"><\/div>\n    <div class="info-dialog-button">\n        <button class="confirm-btn" ng-click="CardInfoDescCtrl.Ok()">\n            確定\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/AppDownloadUtility/AppDownload.html",'<div class="modal-body">\n    <a class="top-right-close-btn close" data-ng-click="Cancel()">\n        <i class="fa fa-times"><\/i>\n    <\/a>\n    <div class="title">\n        <div data-ng-if="ReturnCode === \'API0001\'"> APP載點已傳送至您的手機!<br>您也可以掃描QR code下載 <\/div>\n        <div data-ng-if="ReturnCode === \'API0003\'"> 已傳送至{{PhoneNumber}}<br>您也可以掃描QR code下載 <\/div>\n        <div data-ng-if="ReturnCode === \'API0004\'"> 建議您使用QR code掃瞄下載 <\/div>\n    <\/div>\n    <div class="content-img">\n        <img class="QRCodeImg" data-ng-src="{{QRCodeImageUrl}}" />\n        <div class="link">\n            <a data-ng-href="{{DownloadAppUrl.ios}}" target="_blank" data-ng-if="!DownloadAppUrl.isDownloadAndroidAPK">\n                <i class="app-store-svg apple"><\/i>\n            <\/a>\n            <a data-ng-href="{{DownloadAppUrl.android}}" target="_blank" data-ng-if="!DownloadAppUrl.isDownloadAndroidAPK">\n                <i class="app-store-svg google"><\/i>\n            <\/a>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n\n');n.put("/V2/TypeScripts/Utilities/BackInStockUtility/backInStockEmailDialog.template.html",'<!-- 貨到通知 - 更新會員資料之電子郵件彈窗 -->\n<div class="modal-header">\n    <h4 class="modal-title" translate="frontend.typescripts.components.back_in_stock_alert"><\/h4>\n    <a href="javascript:void(0)" class="close" ng-click="BackInStockEmailDialogCtrl.Cancel()"><span class="close-text" aria-hidden="true">×<\/span><\/a>\n<\/div>\n<div class="modal-body">\n    <div class="input-holder">\n        <div class="desc">\n            <span translate="frontend.typescripts.components.back_in_stock_email_desc"><\/span><br>\n            <span translate="frontend.typescripts.components.back_in_stock_email_hint"><\/span>\n        <\/div>\n        <div class="desc-highlight" translate="frontend.typescripts.components.back_in_stock_email_desc_highlight"><\/div>\n\n        <div class="input-title">\n            <span class="required-field">*<\/span>\n            <span translate="frontend.typescripts.vip_member.email_notification.email"><\/span>\n        <\/div>\n        <input\n            type="text"\n            class="input text full-width"\n            ng-class="{\'input-error\': BackInStockEmailDialogCtrl.IsShowInputErrorMessage}"\n            ng-model="BackInStockEmailDialogCtrl.EmailInputValue"\n            name="Email"\n            translate-attr="{\'placeholder\':\'frontend.typescripts.vip_member.email_notification.input_email\'}"\n        />\n\n        <div class="error-message"\n             ng-show="BackInStockEmailDialogCtrl.IsShowInputErrorMessage && BackInStockEmailDialogCtrl.IsEmailEmpty()"\n             translate="frontend.typescripts.common.required"\n        ><\/div>\n\n        <div class="error-message"\n             ng-show="BackInStockEmailDialogCtrl.IsShowInputErrorMessage && !BackInStockEmailDialogCtrl.IsEmailEmpty() && BackInStockEmailDialogCtrl.IsEmailInvalid()"\n             translate="frontend.typescripts.vip_member.email_notification.email_format_error"\n        ><\/div>\n    <\/div>\n\n    <div class="button-holder">\n        <button\n            class="confirm-button full cms-primaryBtnTextColor cms-primaryBtnBgColor"\n            ng-click="BackInStockEmailDialogCtrl.Ok()"\n            translate="frontend.typescripts.common.confirm"\n        ><\/button>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Utilities/DialogUtility/confirm.html",'<div class="modal-body">\n    <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCtrl.Close()" ng-if="ShowClose"><span aria-hidden="true">×<\/span><\/a>\n    <p data-qe-id="popup_msg" ng-class="{\'newline\': UseNewLine, \'long-message\': IsLongMessage}" ng-bind-html="Message"><\/p>\n    <div class="function">\n        <button class="button"\n                ng-if="ShowCancel"\n                ng-click="DialogCtrl.Cancel()">\n            {{ CancelTitle }}\n        <\/button>\n        <button ng-click="DialogCtrl.Ok()"\n                class="cms-primaryBtnBgColor cms-primaryBtnTextColor"\n                ng-if="ShowOk"\n                ng-class="{ \'full\' : !ShowCancel,\n                            \'button\': !ShowCancel,\n                            \'button-right\': ShowCancel }">\n            {{ ConfirmTitle }}\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/DialogUtility/confirm2.html",'<div class="modal-body">\n    \n    <div class="modal-new-header">\n        <div class="modal-title" ng-bind-html="Title"><\/div>\n        <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCtrl.Close()" ng-if="ShowClose">\n            <i class="icon icon-slim-close"><\/i>\n        <\/a>\n    <\/div>\n    <div class="modal-text">\n        \n        <div data-qe-id="popup_msg" \n             ng-class="{\'newline\': UseNewLine, \'long-message\': IsLongMessage}" \n             ng-bind-html="Message"><\/div>\n    <\/div>\n    <div class="modal-footer">\n        <button class="button"\n                ng-if="CancelTitle"\n                ng-click="DialogCtrl.Cancel()">\n            {{ CancelTitle }}\n        <\/button>\n        <button ng-click="DialogCtrl.Ok()"\n                class="button button-right full">\n            {{ ConfirmTitle }}\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/DialogUtility/dialog.html",'<div class="modal-body">\n    <div class="modal-head" ng-class="{\'no-title\': !ShowTitle, \'no-close\': !ShowClose}">\n        <!-- Close -->\n        <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCtrl.Close()" ng-if="ShowClose">\n            <i class="icon icon-slim-close"><\/i>\n        <\/a>\n        <!-- Title -->\n        <div class="modal-title" ng-class="{\'with-close-button\': ShowClose}" ng-bind-html="Title">{{ShowTitle}}<\/div>\n    <\/div>\n    <div class="modal-detail">\n        <!-- Message -->\n        <div data-qe-id="popup_msg" class="modal-text" ng-class="{\'newline\': UseNewLine, \'long-message\': IsLongMessage}" ng-bind-html="Message"><\/div>\n    <\/div>\n    <!-- Actions -->\n    <div class="modal-actions" ng-class="{\'no-actions\': !ShowOk && !ShowCancel}">\n        <button\n            ng-if="ShowCancel"\n            class="cancelBtn button cms-secondBtnBorderColor cms-secondBtnBgColor cms-secondBtnTextColor"\n            ng-click="DialogCtrl.Cancel()"\n        >\n            {{ CancelTitle }}\n        <\/button>\n        <button ng-if="ShowOk" class="confirmBtn button cms-primaryBtnBgColor cms-primaryBtnTextColor" ng-click="DialogCtrl.Ok()">\n            {{ ConfirmTitle }}\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/DialogUtility/loading.html",'<div ng-show="state.blockCount> 0" class="block-ui-overlay" ng-class="{ \'block-ui-visible\': state.blocking }"><\/div>\n<div ng-show="state.blocking" class="block-ui-message-container" aria-live="assertive" aria-atomic="true">\n    <div class="block-ui-message">\n        <img src="/Content/images/ajax-loader.gif" class="loading-image"/>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Utilities/DialogUtility/toast.html",'<div class="toast-content">\n    <i class="icon-editor\n              icon-editor-lg"\n       data-ng-class="{\n            \'success\': \'toast-content__icon toast-content__icon--success icon-editor-icon_common_select\',\n            \'warning\': \'toast-content__icon toast-content__icon--warning icon-editor-icon_common_alert_solid\'\n        }[ToastMode]"><\/i>\n    <span data-qe-id="popup_msg" data-ng-bind="Message"><\/span>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/NotificationUtility/LineshopNotification.html",'<div class="modal-body">\n    <img src="/V2/Content/Images/Lineshop/lineshop-note.jpg" class="line-msg" alt="">\n    <img src="/V2/Content/Images/Lineshop/lineshop-x-btn.png" class="close-btn" ng-click="LineshopNotificationCtrl.Close()">\n    <img src="/V2/Content/Images/Lineshop/lineshop-note-close-bar.png" class="close-btn-bar" ng-click="LineshopNotificationCtrl.Close()">\n<\/div>');n.put("/V2/TypeScripts/Utilities/MemberProfileNotificationUtility/memberProfileNotificationTemplate.html",'<div class="modal-body">\n    <a href="javascript:void(0)" type="button" class="close" ng-click="DialogCustomizeCtrl.Close()"><span aria-hidden="true">×<\/span><\/a>\n    <div class="title">{{::Title}}<\/div>\n    <div class="content">{{::Model.content}}<\/div>\n    <div class="function">\n        <button class="button" ng-click="DialogCustomizeCtrl.Cancel()" translate="frontend.typescripts.utilities.next_time"><\/button>\n        <button class="button-right" ng-click="DialogCustomizeCtrl.Ok()" translate="frontend.typescripts.utilities.confirm"><\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/PhoneVerifyUtility/phoneVerify.html",'<div class="modal-body">\n    <h3 class="title" translate="frontend.typescripts.utilities.phone_number_verification"><\/h3>\n    <span class="verify-desc" ng-bind-html="\'frontend.typescripts.utilities.voice_verification_msg1\'|translate"><\/span>\n    <div class="phone-container">\n        <div>請撥打下方電話<\/div>\n        <a class="phone-number" data-ng-href="tel:{{PhoneNumber}}">{{PhoneNumber}}<\/a>\n        <p class="warn-message" translate="frontend.typescripts.utilities.voice_verification_msg"><\/p>\n    <\/div>\n    <div ng-if="PhoneVerifyCtrl.ShopRegistrationSetting.EnableOptIn && !PhoneVerifyCtrl.ShopRegistrationSetting.EnableRequiredProfile && (VerifyType == \'FbRegister\' || VerifyType == \'ThirdPartyRegister\')">\n        <div class="checkbox-text">\n            <input type="checkbox" id="IsEnableEDM"\n                   ng-model="PhoneVerifyCtrl.ShopRegistrationSetting.OptIn.Default"/>\n            <label for="IsEnableEDM" translate="frontend.typescripts.pay_process.pay_advanced.request_edm"><\/label>\n        <\/div>\n    <\/div>\n    <button type="button" class="phone-verify-btn"\n        data-ng-click="PhoneVerifyCtrl.ConfirmPhoneDialVerify(); PhoneVerifyCtrl.TrackEvent(\'header_我的帳戶\', \'click\', \'驗證完成\')">\n        <span translate="frontend.typescripts.utilities.voice_verification_complete"><\/span>\n        <span data-ng-if="PhoneVerifyCtrl.WaitingVerify" translate="frontend.typescripts.utilities.hold_on"><\/span>\n    <\/button>\n    <a class="top-right-close-btn" data-ng-click="PhoneVerifyCtrl.Cancel()"><i class="fa fa-times"><\/i><\/a>\n<\/div>');n.put("/V2/TypeScripts/Utilities/RegularOrderUtility/regularOrderDescDialog.template.html",'<div class="modal-body">\n    <div class="modal-title">{{Title}}<\/div>\n    <div class="content-wrapper">\n        <div class="content-wrapper__title"\n             translate="frontend.typescripts.components.regular_order_notification"><\/div>\n        <div class="content-wrapper__content"\n             translate="frontend.typescripts.components.regular_order_notification_desc"><\/div>\n        <div class="content-wrapper__title"\n             translate="frontend.typescripts.components.regular_order_paymethod"><\/div>\n        <div class="content-wrapper__content"\n             translate="frontend.typescripts.components.regular_order_paymethod_desc"><\/div>\n        <div class="content-wrapper__title"\n             translate="frontend.typescripts.components.regular_order_period"><\/div>\n        <div class="content-wrapper__content"\n             translate="frontend.typescripts.components.regular_order_period_desc"><\/div>\n        <div class="content-wrapper__title"\n             translate="frontend.typescripts.components.regular_order_discount"><\/div>\n        <div class="content-wrapper__content"\n             translate="frontend.typescripts.components.regular_order_discount_desc"><\/div>\n    <\/div>\n    <div class="fn-wrapper">\n        <button\n            class="fn-wrapper__btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n            translate="frontend.typescripts.components.ok_btn"\n            ng-click="DialogCustomizeCtrl.Ok()"\n        ><\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/RegularOrderUtility/regularOrderPrivacyDialog.template.html",'<div class="modal-body">\n    <div class="modal-title">{{Title}}<\/div>\n    <div class="content-wrapper">\n        <div class="content-wrapper__content text-indent"\n             translate="frontend.typescripts.components.regular_order_privacy_paragragph_title">\n        <\/div>\n        <div class="content-wrapper__content"\n             translate="frontend.typescripts.components.regular_order_privacy_paragraph">\n        <\/div>\n    <\/div>\n    <div class="fn-wrapper">\n        <button\n            class="fn-wrapper__btn cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor"\n            translate="frontend.typescripts.components.ok_btn"\n            ng-click="DialogCustomizeCtrl.Ok()"\n        ><\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/RistrictionUtility/ristrictionNote.html",'<div class="modal-body">\n    <img class="ristriction-img" ng-src="{{RistrictionNoteCtrl.CssCDNDomain}}/V2/Content/Images/under18.svg"/>\n    <div class="ristriction-title">限制級商品<\/div>\n    <div class="ristriction-content">\n        <div class="limit-label">本商品為限制級商品<\/div>\n        <div>限<span class="limit-text">18歲以上<\/span>會員才可瀏覽與購買<\/div>\n    <\/div>\n    <div class="ristriction-container-btn">\n        <button class="btn menu-btn" ng-click="RistrictionNoteCtrl.Cancel()">\n            我未滿18歲，<span class="btn-title">離開<\/span>\n        <\/button>\n        <button class="btn menu-btn" ng-click="RistrictionNoteCtrl.Enter()">\n            我已滿18歲，<span class="btn-title">進入<\/span>\n        <\/button>\n    <\/div>\n    <div class="ristriction-warn">*選擇離開將自動關閉分頁<\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/ShoppingCartUtility/addToBasket.html",'<div class="modal-body" data-ng-class="{ \'loading-background\' : !AddToBasketCtrl.IsInitialed }">\n    <div data-ng-if="AddToBasketCtrl.IsInitialed">\n        <div class="scroll-area">\n            <!-- 商品圖片和說明 -->\n            <div class="product-area">\n                <div class="product-left">\n                    <img data-ng-src="{{ AddToBasketCtrl.SalePage.ImageList[0].PicUrl }}">\n                <\/div>\n                <div class="product-right">\n                    <h3 class="product-title"\n                        data-ng-bind="AddToBasketCtrl.SalePage.Title">\n                    <\/h3>\n                    <div class="price-area">\n                        <div class="product-suggestprice"\n                             data-ng-if="AddToBasketCtrl.SelectedSKUPropertySet.Price < AddToBasketCtrl.SelectedSKUPropertySet.SuggestPrice">\n                            <del>\n                                <span data-ng-bind="(AddToBasketCtrl.SelectedSKUPropertySet.SuggestPrice | preferredCurrency)"><\/span>\n                            <\/del>\n                        <\/div>\n                        <span class="product-price cms-moneyColor"\n                              data-ng-if="AddToBasketCtrl.SelectedSKUPropertySet.Price"\n                              data-ng-bind="(AddToBasketCtrl.SelectedSKUPropertySet.Price | preferredCurrency)">\n                        <\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 商品選項 -->\n            <div ng-if="AddToBasketCtrl.SKULevel > 0" class="option-area">\n                <div class="sku-area">\n                    <div class="sku-bar" data-ng-repeat="SKU in AddToBasketCtrl.SalePage.MajorList[0].SKUList">\n                        <h2 class="sub-title"\n                            data-ng-bind="SKU.Title">\n                        <\/h2>\n                        <ul class="sku-ul">\n                            <li class="sku-container sku-default"\n                                data-ng-repeat="Property in SKU.PropertyList"\n                                data-ng-click="AddToBasketCtrl.SelectSKUProperty($parent.$index, Property, SKU.Title)"\n                                data-ng-bind="Property.Name"\n                                data-ng-class="{\n                                \'current cms-primaryBtnBgColor cms-primaryBtnTextColor cms-primaryBtnBorderColor\': AddToBasketCtrl.IsSKUSelected($parent.$index, Property),\n                                soldout: AddToBasketCtrl.IsSKUSoldout($parent.$index, Property),\n                                skuHidden: AddToBasketCtrl.IsSKUHidden($parent.$index, Property)\n                            }"><\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="fix-bottom">\n            <!-- 商品購買數量 -->\n            <div class="qty-area" data-ng-if="!(AddToBasketCtrl.SalePage.StatusDef === \'SoldOut\' ||\n                                                AddToBasketCtrl.SalePage.StatusDef === \'NoStart\')">\n                <span class="sub-title"\n                      translate="frontend.typescripts.utilities.qty">\n                <\/span>\n                <div class="qty-wrapper">\n                    <a class="count-button decrease-btn" href="javascript:void(0)"\n                       data-ng-click="AddToBasketCtrl.MinusQty()"\n                       data-ng-class="{\'count-disable\': AddToBasketCtrl.Qty <= 1}">\n                        <i class="icon icon-slim-minus"><\/i>\n                    <\/a>\n                    <input class="input-qty" data-ng-model="AddToBasketCtrl.Qty" disabled/>\n                    <a class="count-button increase-btn" href="javascript:void(0)"\n                       data-ng-click="AddToBasketCtrl.AddQty()"\n                       data-ng-class="{\'count-disable\': !AddToBasketCtrl.SelectedSKUPropertySet || AddToBasketCtrl.Qty === AddToBasketCtrl.SelectedSKUPropertySet.SellingQty}">\n                        <i class="icon icon-slim-plus"><\/i>\n                    <\/a>\n                <\/div>\n            <\/div>\n            <div class="btn-area" data-ng-class="{right:AddToBasketCtrl.SalePage.StatusDef === \'Normal\'}">\n                <!-- 已售完 -->\n                <button class=" btn btn-gray widthfull"\n                        data-ng-if="AddToBasketCtrl.SalePage.StatusDef === \'SoldOut\'"\n                        translate="frontend.typescripts.utilities.sold_out">\n                <\/button>\n                <!-- 尚未開賣 -->\n                <button class="btn btn-gray widthfull"\n                        data-ng-if="AddToBasketCtrl.SalePage.StatusDef === \'NoStart\'"\n                        translate="frontend.typescripts.utilities.not_on_sale">\n                <\/button>\n                <!-- 加入購物車 -->\n                <button class="btn btn-add-cart widthfull cms-primaryBtnBgColor cms-primaryBtnTextColor"\n                        data-ng-if="AddToBasketCtrl.SalePage.StatusDef === \'Normal\'"\n                        ng-disabled="AddToBasketCtrl.IsWaiting"\n                        data-ng-click="AddToBasketCtrl.Confirm()"\n                        translate="frontend.typescripts.utilities.confirm">\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n    <a class="close-btn popup-close" href="#" data-ng-click="AddToBasketCtrl.Cancel()">\n        <i class="icon icon-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/ShoppingCartUtility/addToCart.html",'<div class="modal-body"\n     data-ng-class="{ \'loading-background\' : !AddToShoppingCartCtrl.IsInitialed }">\n    <div data-ng-if="AddToShoppingCartCtrl.IsInitialed">\n        <div class="scroll-area">\n            <!-- 商品圖片和說明 -->\n            <div class="product-area">\n                <div class="product-left">\n                    <img data-ng-src="{{ AddToShoppingCartCtrl.CurrentImgSrc }}">\n                <\/div>\n                <div class="product-right">\n                    <h3 class="product-title"\n                        data-ng-bind="AddToShoppingCartCtrl.SalePage.Title">\n                    <\/h3>\n                    <div class="price-area">\n                        <div class="product-suggestprice"\n                             data-ng-if="AddToShoppingCartCtrl.SelectedSKUPropertySet.Price < AddToShoppingCartCtrl.SelectedSKUPropertySet.SuggestPrice">\n                            <del>\n                                <span data-ng-bind="(AddToShoppingCartCtrl.SelectedSKUPropertySet.SuggestPrice | preferredCurrency)"><\/span>\n                            <\/del>\n                        <\/div>\n                        <span ng-if="!AddToShoppingCartCtrl.IsPointPayOption && AddToShoppingCartCtrl.SelectedSKUPropertySet.Price"\n                              ng-bind="(AddToShoppingCartCtrl.SelectedSKUPropertySet.Price | preferredCurrency)"\n                              class="product-price cms-moneyColor">\n                        <\/span>\n                        <div ng-if="AddToShoppingCartCtrl.EnablePurchaseMethod && AddToShoppingCartCtrl.IsPointPayOption" class="product-price">\n                            <div>\n                                <div ng-if="AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPoints === 0"\n                                     ng-bind="AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPrice | preferredCurrency"><\/div>\n                                <div ng-if="AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPrice === 0"\n                                     translate="frontend.typescripts.components.pointpay_point"\n                                     translate-value-val0="{{ AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPoints }}"><\/div>\n                                <div ng-if="AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPoints > 0 && AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPrice > 0">\n                                    <span translate="frontend.typescripts.components.pointpay_point"\n                                          translate-value-val0="{{ AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPoints }}"><\/span><span>＋<\/span><span ng-bind="AddToShoppingCartCtrl.SelectedPointPayOptionItem.PairsPrice | preferredCurrency"><\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div ng-if="AddToShoppingCartCtrl.SKULevel > 0 || AddToShoppingCartCtrl.IsPointPayOption" class="option-area">\n                <!-- 商品選項 -->\n                <div class="sku-area" ng-if="AddToShoppingCartCtrl.SKULevel > 0">\n                    <div class="sku-bar" data-ng-repeat="SKU in AddToShoppingCartCtrl.SalePage.MajorList[0].SKUList">\n                        <h2 class="sub-title"\n                            data-ng-bind="SKU.Title">\n                        <\/h2>\n                        <ul class="sku-ul">\n                            <li class="sku-container sku-default"\n                                data-ng-repeat="Property in SKU.PropertyList"\n                                data-ng-click="AddToShoppingCartCtrl.SelectSKUProperty($parent.$index, Property, SKU.Title)"\n                                data-ng-bind="Property.Name"\n                                data-ng-class="{\n                                \'current cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\': AddToShoppingCartCtrl.IsSKUSelected($parent.$index, Property) && (!AddToShoppingCartCtrl.IsSKUSoldout($parent.$index, Property) || AddToShoppingCartCtrl.IsEnableBackInStockAlert),\n                                soldout: AddToShoppingCartCtrl.IsSKUSoldout($parent.$index, Property),\n                                disabled: AddToShoppingCartCtrl.IsSKUSoldout($parent.$index, Property) && !AddToShoppingCartCtrl.IsEnableBackInStockAlert,\n                                skuHidden: AddToShoppingCartCtrl.IsSKUHidden($parent.$index, Property)\n                            }"><\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n                <!-- 購買方式 -->\n                <div ng-if="AddToShoppingCartCtrl.EnablePurchaseMethod && AddToShoppingCartCtrl.IsPointPayOption" class="purchase-method">\n                    <h6 translate="frontend.typescripts.components.please_choose_purchase_method"\n                        class="purchase-method__title"><\/h6>\n                    <div class="purchase-method__pointpay-option-list">\n                        <button ng-repeat="item in AddToShoppingCartCtrl.PointPayOptionList track by $index"\n                                ng-click="AddToShoppingCartCtrl.SelectPointPayOption($index)"\n                                ng-class="{ \'purchase-method__pointpay-option-item--selected cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor\': $index === AddToShoppingCartCtrl.SelectedPointPayOptionIndex }"\n                                class="purchase-method__pointpay-option-item">\n                                <div ng-if="item.PairsPoints === 0" ng-bind="item.PairsPrice | preferredCurrency"><\/div>\n                                <div ng-if="item.PairsPrice === 0"\n                                     translate="frontend.typescripts.components.pointpay_point"\n                                     translate-value-val0="{{ item.PairsPoints }}"><\/div>\n                                <div ng-if="item.PairsPoints > 0 && item.PairsPrice > 0">\n                                    <span translate="frontend.typescripts.components.pointpay_point"\n                                          translate-value-val0="{{ item.PairsPoints }}"><\/span><span>＋<\/span><span ng-bind="item.PairsPrice | preferredCurrency"><\/span>\n                                <\/div>\n                        <\/button>\n                    <\/div>\n                <\/div>\n                <!-- 購買方式 -->\n            <\/div>\n        <\/div>\n        <div class="fix-bottom">\n            <!-- 商品購買數量 -->\n            <div data-ng-if="!AddToShoppingCartCtrl.HideBuyButton">\n                <!-- 若賣完或尚未開賣，不顯示數量 -->\n                <div class="qty-area"\n                     data-ng-if="!(AddToShoppingCartCtrl.IsSelectedSKUSoldOut() || AddToShoppingCartCtrl.SalePageStatusIsNoStart())">\n                    <span class="sub-title"\n                          translate="frontend.typescripts.utilities.qty">\n                    <\/span>\n                    <div class="qty-wrapper">\n                        <a class="count-button decrease-btn" href="javascript:void(0)" data-ng-click="AddToShoppingCartCtrl.MinusQty()"\n                            data-ng-class="{\'count-disable\': AddToShoppingCartCtrl.Qty <= 1}" >\n                            <i class="icon icon-slim-minus"><\/i>\n                        <\/a>\n                        <input class="input-qty" data-ng-model="AddToShoppingCartCtrl.Qty" disabled/>\n                        <a class="count-button increase-btn" href="javascript:void(0)"  data-ng-click="AddToShoppingCartCtrl.AddQty()"\n                            data-ng-class="{\'count-disable\': !AddToShoppingCartCtrl.SelectedSKUPropertySet || AddToShoppingCartCtrl.Qty === AddToShoppingCartCtrl.SelectedSKUPropertySet.SellingQty}">\n                            <i class="icon icon-slim-plus"><\/i>\n                        <\/a>\n                    <\/div>\n                <\/div>\n                <!-- 若有開啟貨到通知功能，且商品已售完，須顯示已售完 -->\n                <div class="qty-area qty-soldout"\n                     data-ng-if="AddToShoppingCartCtrl.IsEnableBackInStockAlert && AddToShoppingCartCtrl.IsSelectedSKUSoldOut()">\n                    <span class="sub-title"\n                          translate="frontend.typescripts.utilities.sold_out">\n                    <\/span>\n                <\/div>\n            <\/div>\n            <div class="sku-btn-block" data-ng-if="AddToShoppingCartCtrl.SalePage.IsAPPOnly">\n                <!--QRCode-->\n            <\/div>\n            <div class="btn-area"\n                 data-ng-class="{\n                     \'show-two-button\': AddToShoppingCartCtrl.SalePageStatusIsNormal() && !AddToShoppingCartCtrl.HideBuyButton && AddToShoppingCartCtrl.SelectedSKUPropertySet.SellingQty > 0,\n                     \'right-aligned\': AddToShoppingCartCtrl.IsEnableBackInStockAlert && AddToShoppingCartCtrl.IsSelectedSKUSoldOut()\n                }">\n                <!-- App Only -->\n                <button class="btn btn-app-only widthfull cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                        data-ng-if="AddToShoppingCartCtrl.SalePage.IsAPPOnly"\n                        ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                        data-ng-click="AddToShoppingCartCtrl.AppOnly(AddToShoppingCartCtrl.SalePage.Id,AddToShoppingCartCtrl.SalePage.ShopId)">\n                    {{AddToShoppingCartCtrl.IsMobile?(\'frontend.typescripts.utilities.use_app_buy\'|translate):(\'frontend.typescripts.utilities.only_on_app\'|translate)}}\n                <\/button>\n                <!-- ShareToBuy -->\n                <button class="btn btn-fb-share widthfull cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                        data-ng-if="AddToShoppingCartCtrl.SalePage.IsShareToBuy"\n                        ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                        data-ng-click="AddToShoppingCartCtrl.FacebookShare(AddToShoppingCartCtrl.SalePage.Id)"\n                        translate="frontend.typescripts.utilities.share_and_buy">\n                <\/button>\n                <div data-ng-if="!AddToShoppingCartCtrl.HideBuyButton">\n                    <!-- 已售完 -->\n                    <button class="btn btn-gray widthfull"\n                            data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsSoldOut() && AddToShoppingCartCtrl.SalePage.SoldOutActionType === AddToShoppingCartCtrl.SoldOutTypeEnum[AddToShoppingCartCtrl.SoldOutTypeEnum.OutOfStock]"\n                            translate="frontend.typescripts.utilities.sold_out">\n                    <\/button>\n                    <!-- 售完補貨中 -->\n                    <button class="btn btn-gray widthfull"\n                        data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsSoldOut() && AddToShoppingCartCtrl.SalePage.SoldOutActionType === AddToShoppingCartCtrl.SoldOutTypeEnum[AddToShoppingCartCtrl.SoldOutTypeEnum.Restock]"\n                        translate="frontend.typescripts.components.restock">\n                    <\/button>\n                    <!-- 售完不補貨 -->\n                    <button class="btn btn-gray widthfull"\n                            data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsSoldOut() && AddToShoppingCartCtrl.SalePage.SoldOutActionType === AddToShoppingCartCtrl.SoldOutTypeEnum[AddToShoppingCartCtrl.SoldOutTypeEnum.NoRestock]"\n                            translate="frontend.typescripts.components.no_restock">\n                    <\/button>\n                    <!-- 訂閱貨到通知 -->\n                    <button class="btn btn-directly-buy widthfull cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                            data-ng-if="AddToShoppingCartCtrl.IsEnableBackInStockAlert && AddToShoppingCartCtrl.IsSelectedSKUSoldOut() && !AddToShoppingCartCtrl.IsSkuSubscribedBackInStock()"\n                            ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                            data-ng-click="AddToShoppingCartCtrl.SubscribeBackInStock()"\n                            translate="frontend.typescripts.components.back_in_stock_subscribe">\n                    <\/button>\n                    <!-- 取消訂閱貨到通知 -->\n                    <button class="btn btn-add-cart widthfull cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                            data-ng-if="AddToShoppingCartCtrl.IsEnableBackInStockAlert && AddToShoppingCartCtrl.IsSelectedSKUSoldOut() && AddToShoppingCartCtrl.IsSkuSubscribedBackInStock()"\n                            ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                            data-ng-click="AddToShoppingCartCtrl.UnsubscribeBackInStock()"\n                            translate="frontend.typescripts.components.back_in_stock_unsubscribe">\n                    <\/button>\n                    <!-- 尚未開賣 -->\n                    <button class="btn btn-gray widthfull"\n                            data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsNoStart()"\n                            translate="frontend.typescripts.utilities.not_on_sale">\n                    <\/button>\n                    <!-- 加入購物車 -->\n                    <button class="btn btn-add-cart cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                            data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsNormal() && (!AddToShoppingCartCtrl.SelectedSKUPropertySet || AddToShoppingCartCtrl.SelectedSKUPropertySet.SellingQty > 0)"\n                            ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                            data-ng-click="AddToShoppingCartCtrl.Confirm()"\n                            translate="frontend.typescripts.utilities.add_to_cart">\n                    <\/button>\n                    <!-- 立即結帳 -->\n                    <button class="btn btn-directly-buy cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                    data-ng-if="AddToShoppingCartCtrl.SalePageStatusIsNormal() && (!AddToShoppingCartCtrl.SelectedSKUPropertySet || AddToShoppingCartCtrl.SelectedSKUPropertySet.SellingQty > 0)"\n                    ng-disabled="AddToShoppingCartCtrl.IsWaiting"\n                            data-ng-click="AddToShoppingCartCtrl.Confirm(true)"\n                            translate="frontend.typescripts.utilities.checkout">\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <a class="close-btn popup-close" href="javascript:void(0)" data-ng-click="AddToShoppingCartCtrl.Cancel()">\n        <i class="icon icon-close"><\/i>\n    <\/a>\n<\/div>\n');n.put("/V2/TypeScripts/Utilities/ShoppingCartUtility/addToCartResult.html",'\n<div class="modal-result">\n    <img  ng-if="AddToShoppingCartCtrl.addToCartResult" src="/V2/Content/Images/Icon/icon-cart-ok.svg" alt="">\n    <div>{{AddToShoppingCartCtrl.addToCartResultMessage}}<\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/Desktop/transactionList.html",'<div class="record-container" data-ng-if="LoyaltyPointCtrl.HasTransactions()">\n    <div class="fake-header"><\/div>\n    <table class="record-list transaction-list">\n        <thead>\n            <tr class="header-row">\n                <th class="header-cell align-left" translate="frontend.typescripts.loyalty_point.transaction_list_date"><\/th>\n                <th class="header-cell align-left" translate="frontend.typescripts.loyalty_point.transaction_list_type"><\/th>\n                <th class="header-cell medium align-left" translate="frontend.typescripts.loyalty_point.transaction_list_order_id"><\/th>\n                <th class="header-cell large align-left" translate="frontend.typescripts.loyalty_point.transaction_list_description"><\/th>\n                <th class="header-cell" translate="frontend.typescripts.loyalty_point.transaction_list_points"><\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <tr class="detail-row"\n                data-ng-repeat="transaction in LoyaltyPointCtrl.Transactions"\n                data-ng-class="{\'with-link\': LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum[transaction.OccurType] === LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum.Transaction}"\n                data-ng-click="LoyaltyPointCtrl.GoToTradesOrderDetail(transaction.OccurType, transaction.OrderId)">\n                <td class="detail-cell">\n                    <div class="detail-content align-left">\n                        {{transaction.Date|nsDotNetDateParser|date:\'yyyy/MM/dd HH:mm\'}}\n                    <\/div>\n                <\/td>\n                <td class="detail-cell">\n                    <div class="detail-content align-left">\n                        {{transaction.DisplayForOccurType}}\n                    <\/div>\n                <\/td>\n                <td class="detail-cell medium">\n                    <div class="detail-content align-left">\n                        {{transaction.DisplayForOrderId || \'-\'}}\n                    <\/div>\n                <\/td>\n                <td class="detail-cell large">\n                    <div class="detail-content description align-left"\n                         data-ng-bind="transaction.Description || \'-\'">\n                    <\/div>\n                <\/td>\n                <td class="detail-cell align-middle">\n                    <div class="detail-content number"\n                         data-ng-class="{\'no-link\': LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum[transaction.OccurType] !== LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum.Transaction}">\n                        <span ng-class="{\'highlight cms-moneyColor\': transaction.Points < 0}">\n                            {{transaction.Points > 0 ? \'+\' + (transaction.Points|nsNumber) : (transaction.Points|nsNumber)}}\n                        <\/span>\n                        <i class="icon icon-slim-arrow-right"\n                           data-ng-hide="LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum[transaction.OccurType] !== LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum.Transaction"><\/i>\n                    <\/div>\n                <\/td>\n            <\/tr>\n        <\/tbody>\n        <tfoot data-ng-hide="LoyaltyPointCtrl.TransactionStartIndex === -1">\n            <tr class="footer-row">\n                <td colspan="5">\n                    <ns-load-more data-on-click="LoyaltyPointCtrl.GetRecords(true, false)"\n                                  data-is-ended="LoyaltyPointCtrl.TransactionStartIndex === -1"\n                                  data-is-loading="LoyaltyPointCtrl.TransactionEndlessIsLock">\n                    <\/ns-load-more>\n                <\/td>\n            <\/tr>\n        <\/tfoot>\n    <\/table>\n    <div class="ending-message"\n         data-ng-show="LoyaltyPointCtrl.TransactionStartIndex === -1"\n         translate="frontend.typescripts.loyalty_point.up_to_show_one_year_of_data">\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/Desktop/usableList.html",'<div class="record-container" data-ng-if="LoyaltyPointCtrl.HasUsablePoints()">\n    <div class="fake-header"><\/div>\n    <table class="record-list usable-list">\n        <thead>\n            <tr class="header-row">\n                <th class="header-cell" translate="frontend.typescripts.loyalty_point.usable_list_expire_date"><\/th>\n                <th class="header-cell" translate="frontend.typescripts.loyalty_point.usable_list_balance_points"><\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <tr class="detail-row" data-ng-repeat="usablePoint in LoyaltyPointCtrl.LoyaltyPoint.PointList">\n                <td class="detail-cell">\n                    <div class="detail-content">\n                        {{LoyaltyPointCtrl.GetExpireDateTimeString(usablePoint.ExpireDateTime, \'medium\') || (\'frontend.typescripts.loyalty_point.never_expires\' | translate)}}\n                    <\/div>\n                <\/td>\n                <td class="detail-cell">\n                    <div class="detail-content number">\n                        {{usablePoint.BalancePoint|nsNumber}}\n                    <\/div>\n                <\/td>\n            <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/Mobile/categoryMenuTemplate.html",'<div ns-push-half-page\n     ns-is-open="LoyaltyPointECouponDetailCtrl.openCategoryMenu"\n     ns-show-close="true"\n     ns-open-direction="\'left\'"\n     ns-page-caption="\'frontend.typescripts.ecoupon.common.activity.category_bar_category\'"\n     class="category-menu">\n    <ul class="menu-ul">\n\n        <li class="menu-li" data-ng-repeat="level1 in LoyaltyPointECouponDetailCtrl.categoryChildList track by level1.CategoryId">\n            <a class="menu-link"\n               data-ng-init="level1.selected = false"\n               data-ng-click="level1.selected =!level1.selected;LoyaltyPointECouponDetailCtrl.ClickParentCategory(level1)"\n               data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0,\n               \'link-active\':level1.CategoryId === LoyaltyPointECouponDetailCtrl.selectedCategory.CategoryId}">\n                <h4 class="menu-item-name" data-ng-bind="level1.Title"><\/h4>\n                (<span data-ng-bind="level1.SalePageCount"><\/span>)\n            <\/a>\n            <ul class="child-menu-ul"\n                data-ng-class="{\'open\':level1.selected && level1.ChildList.length > 0,\'close\':!level1.selected && level1.ChildList.length > 0}">\n                <li class="child-menu-li" data-ng-repeat="level2 in level1.ChildList">\n                    <a class="child-menu-link" data-ng-click="LoyaltyPointECouponDetailCtrl.ClickParentCategory(level2)"\n                    data-ng-class="{\'link-active\':level2.CategoryId === LoyaltyPointECouponDetailCtrl.selectedCategory.CategoryId}">\n                        <h4 class="menu-item-name" data-ng-bind="level2.Title"><\/h4>\n                        (<span data-ng-bind="level2.SalePageCount"><\/span>)\n                    <\/a>\n                <\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/Mobile/transactionList.html",'<div class="record-container" data-ng-if="LoyaltyPointCtrl.HasTransactions()">\n    <div class="record-list">\n        <div class="transaction-list">\n            <div class="detail-row"\n                 data-ng-repeat="transaction in LoyaltyPointCtrl.Transactions"\n                 data-ng-click="LoyaltyPointCtrl.GoToTradesOrderDetail(transaction.OccurType, transaction.OrderId)">\n                <div class="detail-cell">\n                    <div class="detail-content">\n                        {{transaction.DisplayForOccurType}}\n                    <\/div>\n                    <div class="detail-content description"\n                         data-ng-class="{\'no-gap\': transaction.Description && transaction.DisplayForOrderId}"\n                         data-ng-show="transaction.Description"\n                         data-ng-bind="transaction.Description">\n                    <\/div>\n                    <div class="detail-content code"\n                         data-ng-show="transaction.DisplayForOrderId"\n                         translate="frontend.typescripts.loyalty_point.order_id"\n                         translate-value-val0="{{transaction.DisplayForOrderId}}">\n                    <\/div>\n                    <div class="detail-content date">\n                        {{transaction.Date|nsDotNetDateParser|date:\'yyyy/MM/dd HH:mm\'}}\n                    <\/div>\n                <\/div>\n                <div class="detail-cell">\n                    <div class="detail-content number"\n                         data-ng-class="{\'no-link\': LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum[transaction.OccurType] !== LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum.Transaction}">\n                        <span ng-class="{\'highlight cms-moneyColor\': transaction.Points < 0}">\n                            {{transaction.Points > 0 ? \'+\' + (transaction.Points|nsNumber) : (transaction.Points|nsNumber)}}\n                        <\/span>\n                        <i class="icon icon-slim-arrow-right"\n                           data-ng-hide="LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum[transaction.OccurType] !== LoyaltyPointCtrl.LoyaltyPointOccurTypeEnum.Transaction"><\/i>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class="footer-row" data-ng-hide="LoyaltyPointCtrl.TransactionStartIndex === -1">\n            <ns-load-more data-on-click="LoyaltyPointCtrl.GetRecords(true, false)"\n                          data-is-ended="LoyaltyPointCtrl.TransactionStartIndex === -1"\n                          data-is-loading="LoyaltyPointCtrl.TransactionEndlessIsLock">\n            <\/ns-load-more>\n        <\/div>\n    <\/div>\n    <div class="ending-message"\n         data-ng-show="LoyaltyPointCtrl.TransactionStartIndex === -1"\n         translate="frontend.typescripts.loyalty_point.up_to_show_one_year_of_data">\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/LoyaltyPoint/Mobile/usableList.html",'<div class="record-container" data-ng-if="LoyaltyPointCtrl.HasUsablePoints()">\n    <div class="record-list usable-list">\n        <div class="detail-row"\n            data-ng-repeat="usablePoint in LoyaltyPointCtrl.LoyaltyPoint.PointList">\n            <div class="detail-cell">\n                <div class="detail-content date" data-ng-init="expireDateTimeString = LoyaltyPointCtrl.GetExpireDateTimeString(usablePoint.ExpireDateTime, \'medium\')">\n                    {{expireDateTimeString ?\n                        (\'frontend.typescripts.loyalty_point.usable_list_expired\' | translate:\'{val0: "\' + expireDateTimeString + \'"}\') :\n                        (\'frontend.typescripts.loyalty_point.never_expires\' | translate)}}\n                <\/div>\n            <\/div>\n            <div class="detail-cell">\n                <div class="detail-content number no-link">\n                    {{usablePoint.BalancePoint|nsNumber}}\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/CarrierTypeTemplate/Mobile.html",'<div class="option-row">\n    <i class="radio" ng-class="{ \'check\': ChangeMemberInvoiceCtrl.CarrierType === \'3J0002\' }"><\/i>\n    <span class="label" translate="frontend.typescripts.choose_invoice.stored_in_the_phone"><\/span>\n<\/div>\n<form name="ChangeMemberInvoiceCtrl.Forms.PhoneCarrierCodeForm" novalidate>\n    <!-- 手機條碼將同步更新至會員專區內 -->\n    <div class="helper-text" translate="frontend.typescripts.choose_invoice.carrier_code_sync_to_vip_member_page"><\/div>\n    <input type="text" class="text border-text" placeholder="{{\'frontend.typescripts.choose_invoice.enter_phone_barcode\' | translate}}"\n           name="PhoneCarrierCode"\n           ng-model="ChangeMemberInvoiceCtrl.PhoneCarrierCode"\n           required\n           ng-pattern="/^/[A-Z0-9+-.]{7}$/"\n           ns-capitalize maxlength="8"/>\n    <p ng-show="ChangeMemberInvoiceCtrl.Forms.PhoneCarrierCodeForm.PhoneCarrierCode.$error.required && ChangeMemberInvoiceCtrl.Submitted && ChangeMemberInvoiceCtrl.CarrierType === \'3J0002\'"\n       class="interror"><span translate="frontend.typescripts.choose_invoice.phone_barcode_required"><\/span><\/p>\n    <p ng-show="(ChangeMemberInvoiceCtrl.Forms.PhoneCarrierCodeForm.PhoneCarrierCode.$error.pattern || ChangeMemberInvoiceCtrl.IsPhoneCodePatternError)\n        && ChangeMemberInvoiceCtrl.Submitted && ChangeMemberInvoiceCtrl.CarrierType === \'3J0002\'"\n       class="interror"><span translate="frontend.typescripts.choose_invoice.phone_barcode_format"><\/span><\/p>\n<\/form>\n');n.put("/V2/TypeScripts/Modules/PayProcess/CarrierTypeTemplate/Nature.html",'<div class="option-row">\n    <i class="radio" ng-class="{ \'check\': ChangeMemberInvoiceCtrl.CarrierType === \'CQ0001\' }"><\/i>\n    <span class="label" translate="frontend.typescripts.choose_invoice.stored_in_natural_person_certificate"><\/span>\n<\/div>\n<form name="ChangeMemberInvoiceCtrl.Forms.NatureCarrierCodeForm" novalidate>\n    <div class="helper-text info-text-dark">\n        <span translate="frontend.typescripts.choose_invoice.natural_person_voucher_card_help_text"><\/span>\n    <\/div>\n    <input type="text" class="text border-text" placeholder="{{\'frontend.typescripts.choose_invoice.enter_16_code_card_number\' | translate}}"\n           name="NatureCarrierCode"\n           maxlength="16"\n           ng-model="ChangeMemberInvoiceCtrl.NatureCarrierCode"\n           ns-capitalize\n           required\n           ng-pattern="/^[A-Z]{2}\\d{14}$/"/>\n    <p ng-show="ChangeMemberInvoiceCtrl.Forms.NatureCarrierCodeForm.NatureCarrierCode.$error.required && ChangeMemberInvoiceCtrl.Submitted && ChangeMemberInvoiceCtrl.CarrierType === \'CQ0001\'"\n       class="interror"><span translate="frontend.typescripts.choose_invoice.natural_person_voucher_number_required"><\/span><\/p>\n    <p ng-show="ChangeMemberInvoiceCtrl.Forms.NatureCarrierCodeForm.NatureCarrierCode.$error.pattern && ChangeMemberInvoiceCtrl.Submitted && ChangeMemberInvoiceCtrl.CarrierType === \'CQ0001\'"\n       class="interror"><span translate="frontend.typescripts.choose_invoice.natural_person_voucher_number_format"><\/span><\/p>\n<\/form>\n');n.put("/V2/TypeScripts/Modules/PayProcess/CarrierTypeTemplate/NineYi.html",'<div class="option-row">\n    <i class="radio" ng-class="{ \'check\': ChangeMemberInvoiceCtrl.CarrierType === \'ER0027\' }"><\/i>\n    <span class="label" translate="frontend.typescripts.choose_invoice.save_to_member"><\/span>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/CarrierTypeTemplate/PXMartCard.html",'<div class="option-row">\n    <i class="radio" ng-class="{ \'check\': ChangeMemberInvoiceCtrl.CarrierType === \'BG0001\' }"><\/i>\n    <span class="label" translate="frontend.typescripts.choose_invoice.save_to_member_pxmart_card"><\/span>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/AddLineOfficialTemplate/addLineOfficialDialog.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            data-ng-click="DialogCustomizeCtrl.Close()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n\n    <main class="modal__body">\n        <img class="modal__img"\n             data-ng-src="{{ Model.imgUrl }}" />\n        <section class="modal__info-block">\n            <h3 class="modal__info-block__title">\n                <span ng-bind="Model.title"><\/span>\n                <span class="add-line-official--highlight"  \n                      ng-bind="Model.titleHighlight"><\/span>\n            <\/h3>\n            <p class="modal__info-block__desc"\n               ng-bind="Model.description"><\/p>\n            <div class="modal__info-block__remark"\n                 ng-bind="Model.remarkText"><\/div>\n        <\/section>\n    <\/main>\n\n    <footer class="modal__action-block">\n        <button type="button"               \n                class="modal__action-block__outline-btn\n                       cms-secondBtnTextColor \n                       cms-secondBtnBgColor \n                       cms-secondBtnBorderColor"\n                ng-bind="Model.buttonText"\n                ng-click="DialogCustomizeCtrl.Ok()"><\/button>\n    <\/footer>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/AddLineOfficialTemplate/lineBusinessConnectDialog.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            data-ng-click="DialogCustomizeCtrl.Close()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n\n    <h1 class="modal__title">\n        <span>LINE帳號綁定官網<\/span>\n    <\/h1>\n\n    <main class="modal__body">\n        <article class="modal__content">\n            <div class="modal__content__title"><span>{{Model.shopName}}<\/span> Line Business Connect 服務使用條款<\/div>\n            <div class="modal__content__title">會員身分驗證及服務條款<\/div>\n            <div class="modal__content__article">\n                <div class="paragraph">\n                    一、身分驗證與服務條款<br/>\n                    在臺端接受且同意以下服務條款並首次使用<span>{{Model.shopName}}<\/span>\n                    LINE Business Connect服務時，根據臺端提供的相關內容與LINE帳號進行連結驗證，以確保臺端的使用安全。\n                    於臺端通過身分驗證後，即可接收個人化服務通知服務。如於使用<span>{{Model.shopName}}<\/span>LINE Business Connect 服務查詢內容如有爭議時，將以本公司認定資訊為主。<br/>\n                    1-1.個人化服務通知：<br/>\n                    在臺端首次使用並成功完成身分驗證後，即可於LINE中接收臺端專屬的資訊通知，包含臺端與本公司往來之個人化通知訊息以及本公司提供之行銷訊息。<br/>\n                    <div class="warn-message">(請注意：本項通知服務為自動發送制，若欲取消本項服務，須於LINE通路執行設定。)<\/div>\n                <\/div>\n                <div class="paragraph">\n                    二、消費者資訊之利用<br/>\n                    2-1.本公司僅得於履行<span>{{Model.shopName}}<\/span>LINE Business Connect 服務及個人行動電話服務之目的範圍內，蒐集、處理及利用臺端之個人資料。但相關法令另有規定者，不在此限。<br/>\n                    2-2.本公司茲依據個人資料保護法及相關法令之規定等，說明蒐集、處理、利用及國際傳輸臺端個人資料之管理方針，以及臺端所享有之權利或服務如下：「個人資料運用告知同意聲明」。<br/>\n                <\/div>\n                <div class="paragraph">\n                    三、服務之停止與更改<br/>\n                    倘因法令變更、主管機關命令或有其他不可歸責於本公司之事由，本公司得於網站首頁公告後，停止變更或終止各項服務內容。<br/>\n                <\/div>\n                <div class="paragraph">\n                    四、其它未盡事宜悉依本公司相關規定。\n                <\/div>\n                <hr>\n                <div class="title">個人資料運用告知聲明<\/div>\n                <div class="paragraph">\n                    <span>{{Model.supplierName}}<\/span>（以下稱本公司）向臺端蒐集個人資料時，依據個人資料保護法（以下稱個資法）第八條第一項規定，應明確告知臺端下列事項：<br/>\n                    一、非公務機關名稱：<span>{{Model.supplierName}}<\/span>。\n                <\/div>\n                <div class="paragraph">\n                    二、蒐集之目的：因銷售及行銷等相關活動需要，所為之蒐集處理及利用、契約、類似契約或其他法律關係管理之事務、消費者、客戶管理與服務、消費者保護、商業與技術資訊、資（通）訊與資料庫管理、資通安全與管理、調查、統計與研究分析、其他諮詢與顧問服務、其他經營合於營業登記項目或組織章程所定之業務。\n                <\/div>\n                <div class="paragraph">\n                    三、個人資料之類別：姓名、身分證統一編號、性別、出生年月日、通訊方式及其他詳如相關業務申請書或契約書之內容，並以本公司與客戶往來之相關業務、帳戶或服務及自客戶或第三人處理所實際蒐集之個人資料為準。\n                <\/div>\n                <div class="paragraph">\n                    四、個人資料利用之期間、地區、對象及方式：<br/>\n                    4-1.期間：特定目的存續期間、依相關法令所定或因執行業務所必須之保存期間或依個別契約就資料之保存所定之保存年限（以期限最長者為準）。<br/>\n                    4-2.地區：「個人資料利用之對象」其國內及國外所在地。<br/>\n                    4-3.對象：本公司（含受本公司委託處理事務之委外機構）、其他業務相關之機構、依法有權機構或金融監理機構、客戶所同意之對象（本公司共同合作、行銷或交互運用客戶資料之公司及本公司合作推廣業務之公司）與本公司合作對象如：LINE Plus Corporation。<br/>\n                    4-4.方式：符合個人資料保護相關法令以自動化機器或其他非自動化之利用方式。<br/>\n                <\/div>\n                <div class="paragraph">\n                    五、依據個資法第三條規定，臺端就本公司保有臺端之個人資料得行使下列權利：<br/>\n                    5-1.除有個資法第十條所規定之例外情形外，得向本公司查詢、請求閱覽或請求製給複製本，惟本公司依個資法第十四條規定得酌收必要成本費用。<br/>\n                    5-2.得向本公司請求補充或更正，惟依個資法施行細則第十九條規定，臺端應適當釋明其原因及事實。<br/>\n                    5-3.本公司如有違反個資法規定蒐集、處理或利用臺端之個人資料，依個資法第十一條第四項規定，臺端得向本公司請求停止蒐集。<br/>\n                    5-4.依個資法第十一條第二項規定，個人資料正確性有爭議者，得向本公司請求停止處理或利用臺端之個人資料。惟依該項但書規定，本公司因執行業務所必須並註明其爭議或經臺端書面同意者，不在此限。<br/>\n                    5-5.依個資法第十一條第三項規定，個人資料蒐集之特定目的消失或期限屆滿時，得向本公司請求刪除、停止處理或利用臺端之個人資料。惟依該項但書規定，本公司因執行業務所必須或經臺端書面同意者，不在此限。<br/>\n                <\/div>\n                <div class="paragraph">\n                    六、臺端如欲行使上述個資法第三條規定之各項權利，有關如何行使之方式，得向<br/>\n                    <a class="link" ng-href={{Model.contactUsUrl}} target="_blank">(1)本公司客服詢問。<\/a><br/>\n                    <a class="link" ng-href={{Model.officialOriginDomain}} target="_blank">(2)本公司網站查詢。<\/a><br/>\n                <\/div>\n                <div class="paragraph">\n                    七、臺端得自由選擇是否提供相關個人資料及類別，惟臺端所拒絕提供之個人資料及類別，如果是與銷售或行銷業務有關或與前述作業所需之資料，本公司可能無法進行必要之銷售或行銷業務或與前述有關之作業而無法提供臺端相關服務或無法提供較佳之服務。\n                <\/div>\n            <\/div>\n        <\/article>\n\n        <section class="modal__check-block" ng-click="Model.checked = !Model.checked">\n            <i class="icon-editor icon-editor-lg modal__check-block__icon"\n               ng-class="{\'icon-editor-icon_uncheckbox\': !Model.checked, \n                          \'icon-editor-icon_checkbox\': Model.checked }"><\/i>\n            <span class="modal__check-block__text">我已詳閱並同意相關使用須知<\/span>\n        <\/section>\n    <\/main>\n\n    <footer class="modal__action-block">\n        <!-- 下一步 -->\n        <button type="button"\n                ng-if="!Model.checked"              \n                class="modal__action-block__btn-disable"\n                translate="frontend.typescripts.finish.btn_text_next"><\/button>\n        <button type="button"\n                ng-if="Model.checked"              \n                class="modal__action-block__btn\n                       cms-primaryBtnTextColor \n                       cms-primaryBtnBgColor"\n                ng-click="DialogCustomizeCtrl.Ok()"\n                translate="frontend.typescripts.finish.btn_text_next"><\/button>\n    <\/footer>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcess/AddLineOfficialTemplate/successfulDialog.html",'<div class="modal__body">\n    <button type="button"\n            class="modal__close"\n            data-ng-click="DialogCustomizeCtrl.Close()">\n        <span aria-hidden="true"><i class="icon icon-slim-close"><\/i><\/span>\n    <\/button>\n\n    <main class="modal__body">\n        <img class="modal__img"\n             data-ng-src="{{ Model.imgUrl }}" />\n        <section class="modal__info" ng-bind="Model.message"><\/section>\n        <section class="modal__info" ng-bind="Model.description"><\/section>\n    <\/main>\n\n    <footer class="modal__action-block">\n        <button type="button"              \n                class="modal__action-block__btn\n                       cms-primaryBtnTextColor \n                       cms-primaryBtnBgColor"\n                translate="frontend.typescripts.common.confirm" \n                ng-click="DialogCustomizeCtrl.Ok()"><\/button>\n    <\/footer>\n<\/div>');n.put("/V2/TypeScripts/Modules/PayProcessGlobal/CreditCardList/creditCardList.template.html",'<div class="creditCard-list">\n    <div class="creditCard-list__header">\n        <div class="header-text" ng-bind="::Title"><\/div>\n    <\/div>\n\n    <div class="creditCard-list__content">\n        <!-- 尚未設定常用信用卡 -->\n        <div class="noData-container" ng-if="CreditCardListCtrl.$scope.Model.CreditCardDataList.length === 0">\n            <img class="noData-container__img" src="/V2/Content/Images/Pay/no_credit_card_data.svg">\n            <p class="noData-container__text"\n                translate="frontend.typescripts.pay_process.pay_advanced.not_set_credit_card_yet">\n            <\/p>\n        <\/div>\n        <!-- 已設定常用信用卡 -->\n        <div class="hasData-container" ng-if="CreditCardListCtrl.$scope.Model.CreditCardDataList.length > 0">\n            <!-- 可使用卡列表 -->\n            <div class="creditCard-card valid" ng-click="CreditCardListCtrl.ChooseSelectedCreditCard(creditCard)"\n                 ng-repeat="creditCard in CreditCardListCtrl.creditCardList track by $index"\n                 ng-class="{\'creditCard-selected\': CreditCardListCtrl.SelectedCreditCard === creditCard.Id}">\n                <div>\n                    <input type="radio"\n                           name="credit_card"\n                           style="display: none;"\n                           ng-model="CreditCardListCtrl.SelectedCreditCard"\n                           ng-value="creditCard.Id">\n                    <i class="creditCard-card__radio icon circle" \n                       ng-class="{\'icon-circle\': !(CreditCardListCtrl.SelectedCreditCard === creditCard.Id),\n                                  \'icon-radio-selected\': CreditCardListCtrl.SelectedCreditCard === creditCard.Id}"><\/i>\n                <\/div>\n                <div class="creditCard-card__inform cardInform-container">\n                    <i class="cardInform-container__cardImg card-desc_img_large" ng-class="CreditCardListCtrl.GetIconClassName(creditCard.Association)"><\/i>\n                    <div class="cardInform-container__cardDetail">\n                        <p class="cardInform-container__cardNum" \n                           ng-bind="CreditCardListCtrl.ShowCreditCardNum(creditCard.No)"><\/p>\n                    <\/div>\n                    <p class="cardInform-container__validDate"\n                       ng-bind="CreditCardListCtrl.ShowCreditCardDate(creditCard)">\n                    <\/p>\n                <\/div>\n            <\/div>\n            <!-- 過期信用卡列表 -->\n            <div class="creditCard-card invalid"\n                 ng-repeat="creditCard in CreditCardListCtrl.ExpiredCreditCardList track by $index">\n                <div>\n                    <input type="radio"\n                           name="credit_card"\n                           style="display: none;"\n                           ng-model="CreditCardListCtrl.SelectedCreditCard"\n                           ng-value="creditCard.Id">\n                    <i class="creditCard-card__radio icon circle icon-circle invalid"><\/i>\n                <\/div>\n                <div class="creditCard-card__inform cardInform-container">\n                    <i class="cardInform-container__cardImg card-desc_img_large" ng-class="CreditCardListCtrl.GetIconClassName(creditCard.Association)"><\/i>\n                    <div class="cardInform-container__cardDetail">\n                        <p class="cardInform-container__invalidCardNum" \n                           ng-bind="CreditCardListCtrl.ShowCreditCardNum(creditCard.No)"><\/p>\n                    <\/div>\n                    <p class="cardInform-container__invalidDate"\n                       ng-bind="CreditCardListCtrl.ShowCreditCardDate(creditCard)">\n                    <\/p>\n                <\/div>\n            <\/div>\n            <!-- 新增其他信用卡 -->\n            <div class="creditCard-add"\n                 ng-click="CreditCardListCtrl.UseOtherCard()"\n                 ng-class="{\'creditCard-selected\': CreditCardListCtrl.SelectedCreditCard === \'useOtherCard\'}">\n                <div>\n                    <input type="radio"\n                           name="credit_card"\n                           style="display: none;"\n                           ng-model="CreditCardListCtrl.SelectedCreditCard"\n                           ng-value="\'useOtherCard\'">\n                    <i class="creditCard-card__radio icon circle" \n                       ng-class="{\'icon-circle\': !(CreditCardListCtrl.SelectedCreditCard === \'useOtherCard\'),\n                                  \'icon-radio-selected\': CreditCardListCtrl.SelectedCreditCard === \'useOtherCard\'}"><\/i>\n                <\/div>\n                <div>\n                    <p class="cardInform-container__addNewCard" translate="frontend.typescripts.pay_process.pay_advanced.use_other_credit_cards"><\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n    <div class="creditCard-list__footer">\n        <button class="footer-buttton cms-secondBtnTextColor cms-secondBtnBgColor cms-secondBtnBorderColor"\n            ng-click="CreditCardListCtrl.Cancel()" translate="frontend.typescripts.shopping_cart.cancel">\n        <\/button>\n        <button class="footer-buttton cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n            ng-click="CreditCardListCtrl.Ok()" translate="frontend.typescripts.shopping_cart.confirm_btn_value">\n        <\/button>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PayProcessGlobal/StorePickupMap/storePickupMapHK.html",'<div id="storePickupMap" class="store-pickup-map__wrapper">\n    <div class="store-pickup-map--default">\n        <div class="store-pickup-map__header">\n            <a ng-if="StorePickupMapHkCtrl.Phase === 1"\n               class="store-pickup-map__header-back"\n               ng-click="StorePickupMapHkCtrl.Back()">\n                <i class="fa fa-angle-left"><\/i>\n                <span translate="frontend.typescripts.pay_process.pay_advanced.back"><\/span>\n            <\/a>\n            <a class="store-pickup-map__header-close" ng-click="StorePickupMapHkCtrl.Cancel()">\n                <i class="icon icon-slim-close" />\n            <\/a>\n            <h2 class="store-pickup-map__title"\n                translate="frontend.typescripts.pay_process.pay_advanced.select_store">\n            <\/h2>\n        <\/div>\n        <div class="store-pickup-map__body">\n            <!-- 選擇行政區 -->\n            <div class="level1"\n                 ng-if="StorePickupMapHkCtrl.Phase === 0"\n                 ng-repeat="level1 in Model.HKCityList track by $index">\n                <div class="level1__title"\n                     ng-class="{ \'show\': StorePickupMapHkCtrl.CollapseOpendIndex === $index }"     \n                     ng-click="StorePickupMapHkCtrl.SelectLevel1($index)">\n                    {{level1.City}} \n                    <i ng-class="{\n                            \'arrow-down\': StorePickupMapHkCtrl.CollapseOpendIndex !== $index,\n                            \'arrow-up\': StorePickupMapHkCtrl.CollapseOpendIndex === $index\n                        }">\n                    <\/i>\n                <\/div>\n                <div class="level2"\n                     ng-class="{ \'show\': StorePickupMapHkCtrl.CollapseOpendIndex === $parent.$index }"\n                     ng-repeat="level2 in level1.DistrictList track by $index">\n                    <div class="level2__title" ng-click="StorePickupMapHkCtrl.SelectLocation(level1.City, level2.District)">\n                        {{level2.District}}\n                    <\/div>\n                <\/div>\n            <\/div>\n            <!-- 選擇門市 -->\n            <div ng-if="StorePickupMapHkCtrl.Phase === 1"\n                 class="store-list">\n                <div class="store-list__selected-location">\n                    <div class="icon" ng-class="{ \'AlfredPickup\':\'alfredPickup-icon icon-wider\',\'SevenElevenPickup\':\'sevenEleven-icon\',\'CircleKPickup\':\'circleKPickup-icon\' }[Model.DeliveryType]"><\/div>\n                    <div>{{StorePickupMapHkCtrl.Level1}} {{StorePickupMapHkCtrl.Level2}}<\/div>\n                <\/div>\n                <div class="store-list__list" \n                     ng-repeat="store in StorePickupMapHkCtrl.StoreList track by $index"\n                     ng-click="StorePickupMapHkCtrl.selectStore(store)">\n                    <div class="icon" ng-class="{ \'AlfredPickup\':\'alfredPickup-icon icon-wider\',\'SevenElevenPickup\':\'sevenEleven-icon\',\'CircleKPickup\':\'circleKPickup-icon\' }[Model.DeliveryType]"><\/div>\n                    <div class="address">\n                        {{ StorePickupMapHkCtrl.StoreInfo(Model.DeliveryType, store) }}\n                    <\/div>\n                <\/div>\n                <!-- 無門市 -->\n                <div ng-if="StorePickupMapHkCtrl.NoStore"\n                     class="store-list__no-store">\n                    <img class="icon" src="/V2/Content/Images/Icon/no_store.png">\n                    <p class="content" translate="frontend.typescripts.pay_process.pay_advanced.no_store"><\/p>\n                <\/div>\n            <\/div>\n            <!-- 確認門市 -->\n            <div ng-if="StorePickupMapHkCtrl.Phase === 2"\n                 class="store-map">\n                <div class="store-map__store-info">\n                    <div class="store-map__store-title">\n                        <div class="icon" ng-class="{ \'AlfredPickup\':\'alfredPickup-icon icon-wider\',\'SevenElevenPickup\':\'sevenEleven-icon\',\'CircleKPickup\':\'circleKPickup-icon\' }[Model.DeliveryType]"><\/div>\n                        <div class="store-id">{{ StorePickupMapHkCtrl.StoreDisplayName(Model.DeliveryType) }}({{ StorePickupMapHkCtrl.SelectedStore.StoreId }})<\/div>\n                    <\/div>\n                    <div class="store-map__store-address">\n                        {{ StorePickupMapHkCtrl.SelectedStore.Address }}\n                    <\/div>\n                <\/div>\n                <iframe class="store-map__iframe"\n                        frameborder="0" style="border:0; margin-top: 15px;"\n                        ng-src="{{ StorePickupMapHkCtrl.MapUrl }}"\n                        allowfullscreen>\n                <\/iframe>\n            <\/div>\n        <\/div>\n        <div ng-if="StorePickupMapHkCtrl.Phase === 2" class="store-pickup-map__footer">\n            <button type="button"\n                    class="cancel-btn btn-red-o cms-secondBtnBgColor cms-secondBtnTextColor cms-secondBtnBorderColor"\n                    ng-click="StorePickupMapHkCtrl.ReSelect()"\n                    translate="frontend.typescripts.pay_process.pay_advanced.reselect_store">\n            <\/button>\n            <button type="button"\n                    class="confirm-btn cms-primaryBtnTextColor cms-primaryBtnBgColor cms-primaryBtnBorderColor"\n                    ng-click="StorePickupMapHkCtrl.Ok()"\n                    translate="frontend.typescripts.pay_process.pay_advanced.confirm_store">\n            <\/button>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/PromotionEngine/Desktop/Information.html",'<div class="promotion-top-block" ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.model.TopBlockText">\n    <i class="icon-editor icon-editor-icon_delivery"><\/i>\n    <span class="promotion-top-block__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.TopBlockText}}<\/span>\n<\/div>\n<div class="promotion-information__main-info">\n    <div class="promotion-information__member-title"\n         ng-if="PromotionEngineDetailCtrl.PromotionTopLabel">\n        <i class="fa fa-star"><\/i>{{PromotionEngineDetailCtrl.PromotionTopLabel}}\n    <\/div>\n    <div class="promotion-information__title">\n        {{::PromotionEngineDetailCtrl.PromotionEngineDetail.model.Name}}\n    <\/div>\n    <div class="promotion-information__clock"\n         ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.isComingToEnd() && !PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular()">\n        <span translate="frontend.typescripts.promotion.activities_countdown"><\/span>\n        <div ns-clock\n             ns-clock-end-date="PromotionEngineDetailCtrl.PromotionEngineDetail.model.EndDateTime"\n             ns-clock-condition="PromotionEngineDetailCtrl.clockCondition"\n             ns-clock-is-closed="PromotionEngineDetailCtrl.CheckPromotionDateTime()"\n             ns-is-two-digit="true"><\/div>\n    <\/div>\n    <div class="promotion-information__period"\n         ng-hide="PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular() && !PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText">\n        <div class="period__date-time"\n             ng-hide="PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular()">\n            <i class="icon icon-clock-o"><\/i>\n            <span class="period__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.StartDateTime|date:\'medium\'}}<\/span>\n            <span class="period__separator">~<\/span>\n            <span class="period__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.EndDateTime|date:\'medium\'}}<\/span>\n        <\/div>\n        <div ng-show="PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText">({{PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText}})<\/div>\n    <\/div>\n<\/div>\n<div class="promotion-information__sub-info">\n    <div class="sub-info__left">\n        <div class="promotion-information__rule">\n            <div class="promotion-information__subtitle">\n                <span translate="frontend.typescripts.promotion.event_rule"><\/span>\n            <\/div>\n\n            <div class="promotion-information__rule-description">\n              <div ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.isShowRuleTitle()"\n                   ng-bind="PromotionEngineDetailCtrl.PromotionEngineDetail.getPromotionRule() | stringToPreferredCurrency"\n                   class="promotion-information__rule-list"><\/div>\n              <ul class="promotion-information__discount-description-list">\n                  <li ng-repeat="item in PromotionEngineDetailCtrl.PromotionEngineDetail.getDiscountDescriptionList()"\n                      class="promotion-information__discount-description-list-item">{{item | stringToPreferredCurrency}}<\/li>\n              <\/ul>\n            <\/div>\n\n            <a href="javascript:void(0)" class="core-link promotion-information__link"\n               ng-click="PromotionEngineDetailCtrl.OpenRuleDialog()">\n                <span translate="frontend.typescripts.promotion.see_more"><\/span>\n            <\/a>\n        <\/div>\n    <\/div>\n    <div class="sub-info__right">\n        <img class="promotion-information__image"\n             ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.model.PromotionImageUrl"\n             ng-src="{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.PromotionImageUrl}}" />\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/PromotionEngine/Mobile/Information.html",'<img class="promotion-information__image"\n     ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.model.PromotionImageUrl"\n     ng-src="{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.PromotionImageUrl}}" />\n<div class="promotion-information__top-block" ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.model.TopBlockText">\n    <i class="icon-editor icon-editor-icon_delivery"><\/i>\n    <span class="promotion-information__top-block__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.TopBlockText}}<\/span>\n<\/div>\n<div class="promotion-information__main-info">\n    <div class="promotion-information__member-title"\n         ng-if="PromotionEngineDetailCtrl.PromotionTopLabel">\n        <i class="fa fa-star"><\/i>{{PromotionEngineDetailCtrl.PromotionTopLabel}}\n    <\/div>\n    <div class="promotion-information__title">\n        {{::PromotionEngineDetailCtrl.PromotionEngineDetail.model.Name}}\n    <\/div>\n    <div class="promotion-information__clock"\n         ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.isComingToEnd() && !PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular()">\n        <span translate="frontend.typescripts.promotion.activities_countdown"><\/span>\n        <div ns-clock\n             ns-clock-end-date="PromotionEngineDetailCtrl.PromotionEngineDetail.model.EndDateTime"\n             ns-clock-condition="PromotionEngineDetailCtrl.clockCondition"\n             ns-clock-is-closed="PromotionEngineDetailCtrl.CheckPromotionDateTime()"\n             ns-is-two-digit="true"><\/div>\n    <\/div>\n    <div class="promotion-information__period"\n         ng-hide="PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular() && !PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText">\n        <div class="period__date-time"\n             ng-hide="PromotionEngineDetailCtrl.PromotionEngineDetail.isRegular()">\n            <i class="icon icon-clock-o"><\/i>\n            <span class="period__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.StartDateTime|date:\'medium\'}}<\/span>\n            <span class="period__separator">~<\/span>\n            <span class="period__text">{{PromotionEngineDetailCtrl.PromotionEngineDetail.model.EndDateTime|date:\'medium\'}}<\/span>\n        <\/div>\n        <div ng-show="PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText">({{PromotionEngineDetailCtrl.PromotionEngineDetail.model.ExtraDateTimeText}})<\/div>\n    <\/div>\n<\/div>\n<div class="promotion-information__sub-info">\n    <div class="promotion-information__rule">\n        <div class="promotion-information__subtitle">\n            <span translate="frontend.typescripts.promotion.event_rule"><\/span>\n        <\/div>\n        <div ng-if="PromotionEngineDetailCtrl.PromotionEngineDetail.isShowRuleTitle()"\n             ng-bind="PromotionEngineDetailCtrl.PromotionEngineDetail.getPromotionRule() | stringToPreferredCurrency"\n             class="promotion-information__rule-list"><\/div>\n        <div ng-hide="PromotionEngineDetailCtrl.PromotionEngineDetail.isShowRuleTitle()"\n             class="promotion-information__rule-list">\n            <pre class="pre-format"\n                 ng-bind="PromotionEngineDetailCtrl.PromotionEngineDetail.getDiscountDescription() | stringToPreferredCurrency"><\/pre>\n        <\/div>\n        <div class=" promotion-information__link">\n            <a href="javascript:void(0)" class="core-link"\n               ng-click="PromotionEngineDetailCtrl.OpenRuleDialog()">\n                <span translate="frontend.typescripts.promotion.see_more"><\/span>\n            <\/a>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/TradesOrder/List/description.html",'<div class="modal-body">\n    <p class="newline">{{Model.desc}}<\/p>\n    <div class="function">\n        <button ng-click="DialogCustomizeCtrl.Close()"\n                class="full button">\n            {{\'frontend.typescripts.components.ok_btn\' | translate}}\n        <\/button>\n    <\/div>\n<\/div>\n    ');n.put("/V2/TypeScripts/Modules/TradesOrder/List/offlineList.html",'<!-- 有開啟 POS 下單店家 -->\n<div>\n    <div ng-if="TradesOrderListCtrl.IsOfflineOrderEnabled === \'True\' && TradesOrderListCtrl.IsLocationOrderPlacingEnabled === \'True\'">\n        <div class="order-list-tab-container offline-order">\n            <div class="order-list-tab"\n                translate="frontend.typescripts.trades_order.list.order_record"\n                data-ng-click="TradesOrderListCtrl.ChangeOfflineOrderTab(TradesOrderListCtrl.offlineOrderTypeEnum.record)"\n                data-ng-class="{\'font-actived bottom-line-actived cms-moneyColor cms-moneyBorderColor\':TradesOrderListCtrl.offlineOrderType === TradesOrderListCtrl.offlineOrderTypeEnum.record}">\n            <\/div>\n            <div class="order-list-tab"\n                translate="frontend.typescripts.trades_order.list.order_state"\n                data-ng-click="TradesOrderListCtrl.ChangeOfflineOrderTab(TradesOrderListCtrl.offlineOrderTypeEnum.state)"\n                data-ng-class="{\'font-actived bottom-line-actived cms-moneyColor cms-moneyBorderColor\':TradesOrderListCtrl.offlineOrderType === TradesOrderListCtrl.offlineOrderTypeEnum.state}">\n            <\/div>\n        <\/div>\n\n        <div data-ng-if="TradesOrderListCtrl.offlineOrderType === TradesOrderListCtrl.offlineOrderTypeEnum.record"\n            data-ng-include="\'/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderRecord.html?v=20201125\'">\n        <\/div>\n        <div data-ng-if="TradesOrderListCtrl.offlineOrderType === TradesOrderListCtrl.offlineOrderTypeEnum.state"\n            data-ng-include="\'/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderState.html?v=20201113\'">\n        <\/div>\n    <\/div>\n\n    <!-- 無開啟 POS 下單店家 -->\n    <div ng-if="TradesOrderListCtrl.IsOfflineOrderEnabled === \'True\' && TradesOrderListCtrl.IsLocationOrderPlacingEnabled === \'False\'">\n        <div data-ng-include="\'/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderRecord.html??v=20201125\'"><\/div>\n    <\/div>\n\n    <!-- SONICE 情境 有開啟 POS 下單店家-->\n    <div ng-if="TradesOrderListCtrl.IsOfflineOrderEnabled === \'False\' && TradesOrderListCtrl.IsLocationOrderPlacingEnabled === \'True\'">\n        <div data-ng-include="\'/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderState.html??v=20201113\'"><\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderRecord.html",'<div class="offline-order-record-container">\n    <div style="clear: both;" data-ns-end-less-order-list\n        data-end-less-model="TradesOrderListCtrl.MemberRetailStoreOrderList"\n        data-start-index="TradesOrderListCtrl.MemberRetailStoreOrderPageIndex"\n        data-is-lock="TradesOrderListCtrl.MemberRetailStoreOrderEndlessIsLock"\n        data-get-model-method="TradesOrderListCtrl.GetMemberRetailStoreOrderList()">\n\n        <!-- 門市交易提醒文案 -->\n        <!-- 無開啟 SFTP類型資料交換 則顯示：門市交易紀錄為非即時顯示 -->\n        <!-- 有開啟 SFTP類型資料交換 則顯示：門市交易紀錄為非即時顯示（交易後 48 小時內） -->\n        <div class="record-warning" ng-if="TradesOrderListCtrl.HasSFTPContract"\n            translate="frontend.typescripts.trades_order.list.not_real_time_record_in_48_hours"><\/div>\n        <div class="record-warning" ng-if="!TradesOrderListCtrl.HasSFTPContract"\n            translate="frontend.typescripts.trades_order.list.not_real_time_record"><\/div>\n\n        <!--廣告版位-->\n        <div class="trades-ad">\n            <a ng-if="TradesOrderListCtrl.IsShowAD" ng-href="{{::TradesOrderListCtrl.ADData.Link}}">\n                <img class="ad-img" ng-src="{{::TradesOrderListCtrl.ADData.ImgSrc}}"\n                    alt="{{::TradesOrderListCtrl.ADData.ImgAlt}}" />\n            <\/a>\n        <\/div>\n\n        <!-- 訂單列表 -->\n        <div>\n            <!--無訂單資料-->\n            <div class="no-data text depp-desc" ng-if="TradesOrderListCtrl.MemberRetailStoreOrderList.length === 0">\n                <i class="icon icon-order"><\/i>\n                <span translate="frontend.typescripts.trades_order.list.no_data"><\/span>\n            <\/div>\n\n            <div class="record-container" ng-if="TradesOrderListCtrl.MemberRetailStoreOrderList.length !== 0">\n                <div class="record-TG-container" ng-repeat="TGItem in TradesOrderListCtrl.MemberRetailStoreOrderList"\n                    ng-attr-id="{{\'offlineTGBlock_\' + ($index + 1)}}">\n                    <!-- 標題資訊（交易日期、消費來源、交易序號、金額）-->\n                    <div>\n                        <div class="TG-info">\n                            <span class="title"\n                                translate="frontend.typescripts.trades_order.list.retail_order_date"><\/span>\n                            <span>{{TGItem.FinishDateTime|nsDotNetDateParser|date:\'yyyy/MM/dd\'}}<\/span>\n                        <\/div>\n                        <div class="TG-info">\n                            <span class="title"\n                                translate="frontend.typescripts.trades_order.list.retail_order_source"><\/span>\n                            <span>\n                                {{TGItem.LocationName || \'--\'}}\n                                <span class="outlet-text cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor" ng-if="TGItem.IsOutlet">Outlet<\/span>\n                            <\/span>\n\n                        <\/div>\n                        <div class="TG-info">\n                            <span class="title"\n                                translate="frontend.typescripts.trades_order.list.retail_order_code"><\/span>\n                            <span>{{TGItem.Code}}<\/span>\n                        <\/div>\n                        <div class="TG-info">\n                            <span class="payment-text cms-moneyColor">{{TGItem.TotalPayment|currency}}<\/span>\n                        <\/div>\n                    <\/div>\n                    <!-- 商品資訊 -->\n                    <div class="slave-container" ng-if="TGItem.RetailStoreOrderSlaveCount > 0">\n                        <div class="slave-info"\n                            translate="{{ TGItem.RetailStoreOrderSlave.ProductName || \'frontend.typescripts.trades_order.list.retail_order_sales\'}}">\n                        <\/div>\n                        <!-- 應付金額 -->\n                        <div class="slave-payment-text cms-moneyColor">\n                            {{TGItem.RetailStoreOrderSlave.TotalPayment|currency}}\n                        <\/div>\n                        <div class="slave-info"\n                            ng-if="(TGItem.RetailStoreOrderSlave.TypeMemo !== TradesOrderListCtrl.TypeMemoEnum[TradesOrderListCtrl.TypeMemoEnum.Coupon]) \n                                    && (TGItem.RetailStoreOrderSlave.TypeMemo !== TradesOrderListCtrl.TypeMemoEnum[TradesOrderListCtrl.TypeMemoEnum.Point])">\n                            {{TradesOrderListCtrl.ReturnPurchasetype(TGItem.RetailStoreOrderSlave.TypeMemo, TGItem.RetailStoreOrderSlave.PurchaseType)}}\n                        <\/div>\n                        <a class="slave-more-detail"\n                            ng-href="{{\'/V2/TradesOrder/RetailTradesOrderDetail/\' + TGItem.Id + \'?shopId=\' + TGItem.ShopId}}">\n                            <div translate="frontend.typescripts.trades_order.list.review_sales_detail"\n                                translate-value-val0="{{TGItem.RetailStoreOrderSlaveCount}}"><\/div>\n                        <\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/List/offlineOrderState.html",'<div class="order-layout order-list">\n\n    <!-- 門市交易提醒文案 -->\n    <!-- 無開啟 SFTP類型資料交換 則顯示：門市交易紀錄為非即時顯示 -->\n    <!-- 有開啟 SFTP類型資料交換 則顯示：門市交易紀錄為非即時顯示（交易後 48 小時內） -->\n    <div class="record-warning" ng-if="TradesOrderListCtrl.HasSFTPContract"\n        translate="frontend.typescripts.trades_order.list.not_real_time_record_in_48_hours"><\/div>\n    <div class="record-warning" ng-if="!TradesOrderListCtrl.HasSFTPContract"\n        translate="frontend.typescripts.trades_order.list.not_real_time_record"><\/div>\n\n    <!--廣告版位-->\n    <div class="trades-ad">\n        <a ng-if="TradesOrderListCtrl.IsShowAD" ng-href="{{::TradesOrderListCtrl.ADData.Link}}">\n            <img class="ad-img" ng-src="{{::TradesOrderListCtrl.ADData.ImgSrc}}"\n                alt="{{::TradesOrderListCtrl.ADData.ImgAlt}}" />\n        <\/a>\n    <\/div>\n    <!-- POS 訂單列表-->\n    <div>\n        <!--無訂單資料-->\n        <div class="no-data text depp-desc" ng-if="TradesOrderListCtrl.POSOrderList.length === 0">\n            <i class="icon icon-order"><\/i>\n            <div translate="frontend.typescripts.trades_order.list.no_data"><\/div>\n            <span class="text mini status-title"\n                translate="frontend.typescripts.trades_order.list.order_history_keep_90_days"><\/span>\n        <\/div>\n        <!--TG-->\n        <div class="order-block" ng-if="TradesOrderListCtrl.POSOrderList.length !== 0">\n            <div class="TG-block" ng-repeat="TGItem in TradesOrderListCtrl.POSOrderList" ng-class="{\'TG-gap\':!$last}"\n                ng-init="IsOpen = $first || TradesOrderListCtrl.ScreenSize !== \'mobile\' "\n                ng-attr-id="{{\'newVersionPOSTGBlock_\' + ($index + 1)}}">\n\n                <div class="TG-header pos-header header-padding">\n                    <div class="header-content flex-content">\n                        <div class="desc content-item">\n                            <div translate="frontend.typescripts.trades_order.list.order_date">\n                            <\/div>\n                            <div class="text depp-title value tg-header-second-row"\n                                ng-attr-id="{{\'newVersionTGDateTime_\' + ($index + 1)}}">\n                                {{::TGItem.CreatedDateTime|nsDotNetDateParser|date:\'yyyy/MM/dd\'}}\n                            <\/div>\n                        <\/div>\n                        <div class="desc content-item">\n                            <div class="text small">\n                                {{\'frontend.typescripts.trades_order.list.order_store\' | translate}}\n                            <\/div>\n                            <div class="text depp-title value tg-header-second-row"\n                                ng-attr-id="{{\'newVersionTGCode_\' + ($index + 1)}}">\n                                {{::TGItem.LocationName}}\n                            <\/div>\n                        <\/div>\n                        <!--只有一筆TS隱藏收合按鈕-->\n                        <div ng-click="IsOpen = !IsOpen"\n                            class="show-at-mobile link-arrow content-item text text-align-right">\n                            <span ng-show="IsOpen" class="text small">\n                                {{\'frontend.typescripts.trades_order.list.hide_order_item\' | translate}}\n                            <\/span>\n                            <span ng-show="!IsOpen" class="text small">\n                                {{\'frontend.typescripts.trades_order.list.show_order_item\' | translate}}\n                            <\/span>\n                            <i class="fa fa-caret-down" ng-class="{true:\'open\',false:\'close\'}[IsOpen]"><\/i>\n                        <\/div>\n                    <\/div>\n                    <div class="header-content flex-content">\n                        <div class="desc second-desc content-item">\n                            <div>\n                                {{\'frontend.typescripts.trades_order.list.sale_slip_code\' | translate}}\n                            <\/div>\n                            <div class="text middle depp-title value">\n                                {{::TGItem.SalesSlipCode}}\n                            <\/div>\n                        <\/div>\n                        <div class="total content-item">\n                            <div class="text max amount text-align-right cms-moneyColor">\n                                <span\n                                    ng-attr-id="{{\'newVersionTGTotalPayment_\' + ($index + 1)}}">{{::TGItem.TotalPayment|currency}}<\/span>\n                                <\/span>\n                            <\/div>\n                            <div class="text depp-title text-align-right">\n                                <a class="text min" ng-click="TradesOrderListCtrl.OpenReturnDesc()" ng-href="#">\n                                    {{\'frontend.typescripts.trades_order.list.store_return_detail\' | translate}}\n                                <\/a>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class="TM-block">\n                    <div class="TM-content pos-order-border">\n                        <!--TS-->\n                        <div class="TS-block">\n                            <!--TS 進度物流 區塊 -->\n                            <div class="content order-summary">\n                                <!--TS 進度條  -->\n                                <div class="progress-bar pos-progress-bar clear"\n                                    ng-if="TGItem.ShippingStatusInfo.length > 0"\n                                    ng-init="CurrentOrder = TradesOrderListCtrl.CheckProgressCurrentOrder(TGItem.ShippingStatusInfo)">\n                                    <!--包含點＆線-->\n                                    <div class="block" ng-repeat="BarItem in TGItem.ShippingStatusInfo"\n                                        ng-class="{\'focus\': BarItem.IsCurrentStatus,\'active\': BarItem.Order <= CurrentOrder, \'return\': TGItem.IsReturned || TradesOrderListCtrl.HasRetrunSales(TGItem) }">\n                                        <!--線-->\n                                        <div class="line" ng-show="!$first"><\/div>\n                                        <!--點＆日期＆狀態-->\n                                        <div class="node">\n                                            <div class="date">\n                                                {{::BarItem.Order <= CurrentOrder ?\n                                                (BarItem.DateTime|nsDotNetDateParser|date:\'MM/dd\')\n                                                : \'\'}}\n                                            <\/div>\n                                            <div class="dot"><\/div>\n                                            <div class="text small status" ng-class="{\'first\':$first}">\n                                                {{::BarItem.Name}}\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                <!-- Mobile-物流或門市資訊 當進度條隱藏時隱藏貨態-->\n                                <span class="delivery-at-pc">\n                                    <a class="text small delivery pc-btn short-btn blueBorder clear" target="_blank"\n                                        ng-if="TGItem.LogisticInfo.Url && !TGItem.IsReturned && !TradesOrderListCtrl.HasRetrunSales(TGItem)"\n                                        ng-if="TGItem.LogisticInfo.Url && !TGItem.IsReturned && !TradesOrderListCtrl.HasRetrunSales(TGItem)"\n                                        ng-href="{{TGItem.LogisticInfo.Url}}">\n                                        {{TGItem.LogisticInfo.Name}}\n                                        {{TGItem.LogisticInfo.Code}}\n                                        <i class="icon icon-slim-arrow-right right icon-arrow"><\/i>\n                                    <\/a>\n                                    <span class="text small disabled-title delivery pc-btn short-btn disabledBorder"\n                                        ng-if="!TGItem.LogisticInfo.Url && !TGItem.IsReturned && !TradesOrderListCtrl.HasRetrunSales(TGItem)">\n                                        {{\'frontend.typescripts.trades_order.list.code_after_finished\' | translate}}\n                                    <\/span>\n                                    <!-- 整張退貨 -->\n                                    <span class="text small return-title delivery pc-btn short-btn returnBorder"\n                                        ng-if="TGItem.IsReturned">\n                                        {{\'frontend.typescripts.trades_order.list.local_return_complete\' | translate}}\n                                    <\/span>\n                                    <!-- 部分退貨 -->\n                                    <span class="text small return-title delivery pc-btn short-btn returnBorder"\n                                        ng-if="!TGItem.IsReturned && TradesOrderListCtrl.HasRetrunSales(TGItem)">\n                                        {{\'frontend.typescripts.trades_order.list.some_sales_return\' | translate}}\n                                    <\/span>\n                                <\/span>\n                            <\/div>\n\n                            <!--TS 商品資訊、貨態 區塊 repeat-->\n                            <div class="content pos-summary order-summary line"\n                                ng-class="{\'return-sales\': TSItem.Status == \'Returned\'}" ng-show="IsOpen"\n                                ng-repeat="TSItem in TGItem.SalesSlipDetails">\n                                <!--TS 資訊-->\n                                <div class="content pos-sale-content">\n                                    <div class="sale-title name text small bold left"> {{TSItem.Name}}<\/div>\n                                    <!--金額-->\n                                    <div class="right">\n                                        <div class="text mini sale-title-text sale-amount-title">\n                                            {{\'frontend.typescripts.trades_order.list.sale_total_amount\' | translate}}\n                                        <\/div>\n                                        <div class="text max sale-amount right cms-moneyColor">\n                                            <span\n                                                ng-attr-id="{{\'newVersionTSTotalPayment_\' + ($index + 1)}}">{{::TSItem.TotalPayment|currency}}<\/span>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                <div class="content pos-sale-content sku-content">\n                                    <div class="sku-item text min w300 sale-sku-title left">\n                                        <div class="left sku-title">\n                                            {{\'frontend.typescripts.trades_order.list.count\' | translate}}:<\/div>\n                                        <div class="left">{{::TSItem.TotalCount}}<\/div>\n                                    <\/div>\n                                    <div class="sku-item text min w300 sale-sku-title left"\n                                        ng-repeat="Prop in TSItem.CustomProperties">\n                                        <div class="left sku-title">{{::Prop.Name}}:<\/div>\n                                        <div class="left">{{::Prop.Value}}<\/div>\n                                    <\/div>\n                                <\/div>\n                                <div class="right return-order text min return-title"\n                                    ng-if="TSItem.Status == \'Returned\'">\n                                    <span>{{ TSItem.DateTime | date:\'MM/dd\' }}<\/span>\n                                    <span>{{\'frontend.typescripts.trades_order.list.local_return\' | translate}}<\/span>\n                                <\/div>\n                            <\/div>\n\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- 配送資訊 -->\n                <div ng-init="IsShippingOpen = false" class="shipping-block">\n                    <div ng-click="IsShippingOpen = !IsShippingOpen" class="link-arrow" ng-show="TGItem.ShippingInfo">\n                        <span class="text small cursor-point">\n                            {{\'frontend.typescripts.trades_order.list.shipping_detail\' | translate}}\n                        <\/span>\n                        <i class="fa fa-caret-down" ng-class="{true:\'open\',false:\'close\'}[IsShippingOpen]"><\/i>\n                    <\/div>\n                    <div ng-show="IsShippingOpen" class="shipping-detail">\n                        <div class="shipping-item">\n                            <div class="shipping-title shipping-dispaly text shipping-title-text">\n                                {{\'frontend.typescripts.trades_order.list.shipping_title\' | translate}}<\/div>\n                            <div class="shipping-content shipping-dispaly">{{::TGItem.ShippingInfo.Title}}<\/div>\n                        <\/div>\n                        <div class="shipping-item">\n                            <div class="shipping-title shipping-dispaly text shipping-title-text">\n                                {{\'frontend.typescripts.trades_order.list.shipping_receiver\' | translate}}<\/div>\n                            <div class="shipping-content shipping-dispaly">{{::TGItem.ShippingInfo.Receiver}}<\/div>\n                        <\/div>\n                        <div class="shipping-item">\n                            <div class="shipping-title shipping-dispaly text shipping-title-text">\n                                {{\'frontend.typescripts.trades_order.list.shipping_address\' | translate}}<\/div>\n                            <div class="shipping-content shipping-dispaly">{{::TGItem.ShippingInfo.Address}}<\/div>\n                        <\/div>\n                        <div class="shipping-item">\n                            <div class="shipping-title last shipping-dispaly text shipping-title-text">\n                                {{\'frontend.typescripts.trades_order.list.shipping_phone_no\' | translate}}<\/div>\n                            <div class="shipping-content last shipping-dispaly">{{::TGItem.ShippingInfo.PhoneNo}}<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>');n.put("/V2/TypeScripts/Modules/TradesOrder/List/onlineList.html",'<div class="order-layout order-list online-order-list-margin"\n     style="clear: both;"\n     data-ns-end-less-order-list \n     data-end-less-model="TradesOrderListCtrl.OrderList"\n     data-start-index="TradesOrderListCtrl.PageIndex"\n     data-is-lock="TradesOrderListCtrl.EndlessIsLock"\n     data-get-model-method="TradesOrderListCtrl.GetList()">\n    <!--廣告版位-->\n    <div class="trades-ad">\n        <a ng-if="TradesOrderListCtrl.IsShowAD"\n           ng-init="TradesOrderListCtrl.GetADUrl()"\n           ng-href="{{::TradesOrderListCtrl.ADData.Link}}">\n            <img class="ad-img"\n                 ng-src="{{::TradesOrderListCtrl.ADData.ImgSrc}}"\n                 alt="{{::TradesOrderListCtrl.ADData.ImgAlt}}"/>\n        <\/a>\n    <\/div>\n\n    <!--會員提示-->\n    <div class="member-prompt-block" ng-init="TradesOrderListCtrl.GetMemberPromptList()"\n         ng-class="{\'top-gutter\': TradesOrderListCtrl.IsShowAD}">\n        <div class="member-prompt"\n             ng-repeat="PromptItem in TradesOrderListCtrl.MemberPromptList"\n             ng-class="{true:\'refund\',false:\'fee\'}[PromptItem.SourceReceiptDef !== \'\']">\n            <!--退款 or 退款失敗-->\n            <!-- TODO: 待確認 RefundRequestId 節點名稱-->\n            <a ng-if="PromptItem.SourceReceiptDef === \'Refund\'||PromptItem.SourceReceiptDef === \'RefundFail\'"\n               ng-href="{{::TradesOrderListCtrl.GetRefundUrl(PromptItem.SourceDef, PromptItem.TradesOrderCode, PromptItem.TradesOrderSlaveCode, PromptItem.TradesOrderGroupId, PromptItem.RefundRequestId)}}"\n               class="prompt text depp-text">\n                <i class="icon icon-refund"><\/i>\n                <span class="desc">\n                      {{::PromptItem.TradesOrderGroupCode}}\n                    <span ng-if="PromptItem.SourceDef === \'SalesOrderFee\' && PromptItem.SourceReceiptDef === \'Refund\'"\n                          translate="frontend.typescripts.trades_order.list.sales_order_fee_refund_msg">\n                        <!--您的運費待退款，請協助提供您的退款帳號資料-->\n                    <\/span>\n                    <span ng-if="PromptItem.SourceDef === \'SalesOrderFee\' && PromptItem.SourceReceiptDef !== \'Refund\'"\n                          translate="frontend.typescripts.trades_order.list.sales_order_fee_refund_fail_msg">\n                         <!--您的運費退款失敗，請重新確認您的退款帳號資料-->\n                    <\/span>\n                    <span ng-if="PromptItem.SourceDef !== \'SalesOrderFee\' && PromptItem.SourceReceiptDef === \'Refund\'"\n                          translate="frontend.typescripts.trades_order.list.sales_order_refund_msg">\n                         <!--您的訂單待退款，請協助提供您的退款帳號資料-->\n                    <\/span>\n                    <span ng-if="PromptItem.SourceDef !== \'SalesOrderFee\' && PromptItem.SourceReceiptDef !== \'Refund\'"\n                          translate="frontend.typescripts.trades_order.list.sales_order_refund_fail_msg">\n                         <!--您的訂單退款失敗，請重新確認您的退款帳號資料-->\n                    <\/span>\n                  <\/span>\n                <i class="fa fa-angle-right angle right"><\/i>\n            <\/a>\n            <!--中獎發票-->\n            <a ng-if="PromptItem.WinningReceivingTypeDef == \'Mail\' && (PromptItem.SourceReceiptDef === \'Fee\'||PromptItem.SourceReceiptDef === \'Slave\' || PromptItem.SourceReceiptDef ===\'RechargeReceipt\' )"\n               ng-href="{{::TradesOrderListCtrl.GetInvoiceUrl(PromptItem.SourceReceiptDef,PromptItem.TradesOrderCode,PromptItem.TradesOrderSlaveCode,PromptItem.TradesOrderGroupId)}}"\n               class="prompt text depp-text">\n                <i class="icon icon-invoice"><\/i>\n                <!--運費發票中獎顯示TG,訂單發票中獎顯示TS-->\n                <span class="desc">\n                    {{PromptItem.SourceReceiptDef === \'Fee\'?PromptItem.TradesOrderGroupCode:PromptItem.TradesOrderSlaveCode}}\n                <\/span>\n                <span translate="frontend.typescripts.trades_order.list.winning_invoice">\n                <\/span>\n                <i class="fa fa-angle-right angle right"><\/i>\n            <\/a>\n            <a ng-if="PromptItem.WinningReceivingTypeDef == \'FamiPort\' && (PromptItem.SourceReceiptDef === \'Fee\'||PromptItem.SourceReceiptDef === \'Slave\' || PromptItem.SourceReceiptDef ===\'RechargeReceipt\' )"\n               ng-href="{{::TradesOrderListCtrl.GetInvoiceUrl(PromptItem.SourceReceiptDef,PromptItem.TradesOrderCode,PromptItem.TradesOrderSlaveCode,PromptItem.TradesOrderGroupId)}}"\n               class="prompt text depp-text">\n                <i class="icon icon-invoice"><\/i>\n                <!--運費發票中獎顯示TG,訂單發票中獎顯示TS-->\n                <span class="desc">\n                    {{PromptItem.SourceReceiptDef === \'Fee\'?PromptItem.TradesOrderGroupCode:PromptItem.TradesOrderSlaveCode}}\n                <\/span>\n                <span translate="frontend.typescripts.trades_order.list.winning_invoice_fami_port">\n                <\/span>\n                <i class="fa fa-angle-right angle right"><\/i>\n            <\/a>\n            <a ng-if="PromptItem.WinningReceivingTypeDef == \'Ibon\' && (PromptItem.SourceReceiptDef === \'Fee\'||PromptItem.SourceReceiptDef === \'Slave\' || PromptItem.SourceReceiptDef ===\'RechargeReceipt\' )"\n               ng-href="{{::TradesOrderListCtrl.GetInvoiceUrl(PromptItem.SourceReceiptDef,PromptItem.TradesOrderCode,PromptItem.TradesOrderSlaveCode,PromptItem.TradesOrderGroupId)}}"\n               class="prompt text depp-text">\n                <i class="icon icon-invoice"><\/i>\n                <!--運費發票中獎顯示TG,訂單發票中獎顯示TS-->\n                <span class="desc">\n                    {{PromptItem.SourceReceiptDef === \'Fee\'?PromptItem.TradesOrderGroupCode:PromptItem.TradesOrderSlaveCode}}\n                <\/span>\n                <span translate="frontend.typescripts.trades_order.list.winning_invoice_ibon">\n                <\/span>\n                <i class="fa fa-angle-right angle right"><\/i>\n            <\/a>\n        <\/div>\n    <\/div>\n\n    <!--訂單列表-->\n    <div translate-cloak>\n        <!--無訂單資料-->\n        <div class="no-data text depp-desc" ng-if="TradesOrderListCtrl.OrderList.length === 0">\n            <i class="icon icon-order"><\/i>\n            <span translate="frontend.typescripts.trades_order.list.no_data"><\/span>\n        <\/div>\n        <!--TG-->\n        <div class="order-block" ng-if="TradesOrderListCtrl.OrderList.length !== 0">\n            <!-- mobile版除第一筆TG外 其餘預設只顯示第一筆TS -->\n            <div class="TG-block"\n                 ng-repeat="TGItem in TradesOrderListCtrl.OrderList"\n                 ng-class="{\'TG-gap\':!$last}"\n                 ng-init="IsOpen = $first || TradesOrderListCtrl.ScreenSize !== \'mobile\' "\n                 ng-attr-id="{{\'newVersionTGBlock_\' + ($index + 1)}}">\n                <div class="TG-header">\n                    <!--只有一筆TS隱藏收合按鈕-->\n                    <div class="right show-at-mobile more-arrow"\n                         ng-hide="TGItem.TradesOrderList.length === 1 && TGItem.TradesOrderList[0].TradesOrderSlaveList.length === 1 "\n                         ng-click="IsOpen = !IsOpen"\n                         data-ns-ga-event-track\n                         data-track-category="展開/收合訂單"\n                         data-track-action="click"\n                         data-track-label="點擊收合展開">\n                        <i class="fa fa-caret-down"\n                           ng-class="{true:\'open\',false:\'close\'}[IsOpen]"><\/i>\n                    <\/div>\n                    <div class="order-payment-info">\n                        <div>\n                            <div class="desc desc-block">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.order_no">\n                                <\/div>\n                                <div class="text depp-title value"\n                                    ng-attr-id="{{\'newVersionTGCode_\' + ($index + 1)}}">{{::TGItem.Code}}\n                                <\/div>\n                            <\/div>\n                            <div class="desc desc-block">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.order_date">\n                                <\/div>\n                                <div class="text depp-title value"\n                                    ng-attr-id="{{\'newVersionTGDateTime_\' + ($index + 1)}}">\n                                    {{::TGItem.DateTime|nsDotNetDateParser|date:\'yyyy/MM/dd\'}}\n                                <\/div>\n                            <\/div>\n                            <div class="desc desc-block"\n                                ng-if="TGItem.ShippingProfileTypeDef === \'RetailStoreDelivery\'">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.delivery_time"><\/div>\n                                <div class="text depp-title value">\n                                    {{TGItem.TradesOrderList[0].TradesOrderSlaveList[0].BookingPickupDate | date}} \n                                    {{TGItem.TradesOrderList[0].TradesOrderSlaveList[0].BookingPickupPeriod}}\n                                <\/div>\n                            <\/div>\n                            <div class="desc desc-block"\n                                ng-if="TGItem.ShippingProfileTypeDef === \'RetailStorePickup\'">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.pickup_store"><\/div>\n                                <div class="text depp-title value">\n                                    {{TGItem.TradesOrderList[0].TradesOrderReceiverStoreName}}\n                                    <!-- TODO: 導向門市查詢頁 -->\n                                    <a>\n                                        <i class="icon-editor icon-editor-icon_location_o"><\/i>\n                                    <\/a>\n                                <\/div>\n                            <\/div>\n                            <div class="desc desc-block"\n                                ng-if="TGItem.ShippingProfileTypeDef === \'RetailStorePickup\'">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.pickup_time"><\/div>\n                                <div class="text depp-title value">\n                                    {{TGItem.TradesOrderList[0].TradesOrderSlaveList[0].BookingPickupDate | date}} \n                                    {{TGItem.TradesOrderList[0].TradesOrderSlaveList[0].BookingPickupPeriod}}\n                                <\/div>\n                            <\/div>\n                            <!-- 訂購總額 -->\n                            <div class="total desc desc-block">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.total_amount">\n                                <\/div>\n                                <div class="text max amount">\n                                    <!--TODO 幣別-->\n                                    <span class="cms-moneyColor" ng-attr-id="{{\'newVersionTGTotalPayment_\' + ($index + 1)}}">{{::TGItem.TotalPayment|currency}}<\/span>\n                                    <span class="text light-title feeText">({{\'frontend.typescripts.trades_order.list.shipping_included\' | translate}})<\/span>\n                                    <span class="text light-title amount-tooltip tooltip"\n                                        data-toolTipData="{{TradesOrderListCtrl.GetCancelProductMsg(TGItem.PayProfileTypeDef)}}"\n                                        ng-click="TradesOrderListCtrl.toggleToolTip($index)"\n                                        ng-class="{showToolTip: TradesOrderListCtrl.toolTipCheck && TradesOrderListCtrl.isMobile && (TradesOrderListCtrl.clickedRow === $index),\n                                                        hideToolTip: !TradesOrderListCtrl.toolTipCheck && TradesOrderListCtrl.isMobile && (TradesOrderListCtrl.clickedRow === $index)}">\n                                            <i class="fa fa-info-circle light-icon"><\/i>\n                                        <\/span>\n                                <\/div>\n                            <\/div>\n                            <!-- 實際付款總額 -->\n                            <div ng-if="TGItem.ShowPaidAmount" class="total desc desc-block">\n                                <div class="desc-block__label" translate="frontend.typescripts.trades_order.list.paid_amount"><\/div>\n                                <div class="text max amount">\n                                    <span class="cms-moneyColor">{{ ::TGItem.PaidAmount | currency }}<\/span>\n                                <\/div>\n                            <\/div>\n                            <!--門市閉店待重選門市 -->\n                            <div class="choose-store-btn"\n                                 translate="frontend.typescripts.trades_order.list.modify_store"\n                                 ng-if="TGItem.IsShowModifyStoreButton"\n                                 ng-click="TradesOrderListCtrl.ChooseStore(TGItem)">\n                            <\/div>\n                        <\/div>\n                        <div class="payment-shipping-container">\n                            <div class="payment-shipping-container__info-text">\n                                <!--付款方式 付款方式是“超取付款”or"貨到付款"時隱藏付款方式(避免與配送方式顯示相同資訊)-->\n                                <div class="payment-shipping-row"\n                                    ng-switch="::TGItem.PayProfileTypeDef"\n                                    ng-hide="TGItem.PayProfileTypeDef === \'Family\' || TGItem.PayProfileTypeDef === \'SevenEleven\' || TGItem.PayProfileTypeDef === \'HiLife\'|| TGItem.PayProfileTypeDef === \'CashOnDelivery\'">\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardOnce"><\/i> <!--信用卡一次-->\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardInstallment"><\/i> <!--信用卡分期-->\n                                    <i class="icon icon-credit" ng-switch-when="GlobalPay"><\/i> <!--Online Payment-->\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardOnce_Stripe"><\/i> <!--Stripe 信用卡-->\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardOnce_Razer"><\/i> <!-- Razer 信用卡 -->\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardInstallment_Razer"><\/i> <!-- Razer 信用卡分期 -->\n                                    <i class="icon icon-shop" ng-switch-when="Family"><\/i> <!--全家-->\n                                    <i class="icon icon-shop" ng-switch-when="SevenEleven"><\/i> <!--7-11-->\n                                    <i class="icon icon-shop" ng-switch-when="HiLife"><\/i> <!--萊爾富-->\n                                    <i class="icon icon-atm icon-atm-resize" ng-switch-when="ATM" ng-if="TradesOrderListCtrl.Market !== \'PX\'"><\/i> <!--ATM-->\n                                    <i class="icon icon-cash-on-delivery" ng-switch-when="CashOnDelivery"><\/i>\n                                    <i class="icon-img icon-linepay" ng-switch-when="LinePay"><\/i> <!--LINE Pay-->\n                                    <i class="icon icon-credit" ng-switch-when="CathayPay"><\/i> <!--信用卡付款-->\n                                    <i class="icon-img icon-jkopay" ng-switch-when="JKOPay"><\/i> <!--街口支付-->\n                                    <i class="icon-img icon-pxpay" ng-switch-when="PXPay"><\/i> <!--PX Pay-->\n                                    <i class="icon-img icon-apple-pay" ng-switch-when="ApplePay"><\/i> <!--Apple Pay-->\n                                    <i class="icon-img icon-payme" ng-switch-when="EWallet_PayMe"><\/i> <!--PayMe(HK)-->\n                                    <i class="icon-img icon-aftee" ng-switch-when="Aftee"><\/i> <!--Aftee-->\n                                    <i class="icon-img icon-google-pay" ng-switch-when="GooglePay"><\/i> <!--Google Pay-->\n                                    <i class="icon icon-credit" ng-switch-when="CreditCardOnce_CheckoutDotCom"><\/i> <!--Checkoout.com 信用卡-->\n                                    <i class="icon-img icon-editor-icon_moneytransfer" ng-switch-when="CustomOfflinePayment"><\/i><!--其他轉帳方式-->\n                                    <i class="icon-img icon-icash-pay" ng-switch-when="icashPay"><\/i> <!--icash Pay-->\n                                    <i class="icon-img icon-alipay" ng-switch-when="AliPayHK_EftPay"><\/i> <!--AliPay(HK)-->\n                                    <i class="icon-img icon-easy-wallet" ng-switch-when="EasyWallet"><\/i> <!--EasyWallet-->\n                                    <i class="icon-img icon-wechatpay" ng-switch-when="WechatPayHK_EftPay"><\/i> <!--AliPay(HK)-->\n                                    <i class="icon-img icon-poyapay" ng-switch-when="PoyaPay"><\/i> <!--PoyaPay-->\n                                    <i class="icon-img icon-bocpay" ng-switch-when="BoCPay_SwiftPass"><\/i> <!--BocPay-->\n                                    <i class="icon-img icon-atome" ng-switch-when="Atome"><\/i> <!--Atome-->\n                                    <span class="payment-shipping-row__text">{{::TGItem.PayProfileTypeDisplayName}}<\/span>\n                                <\/div>\n                                <!--配送方式-->\n                                <div class="payment-shipping-row"\n                                    ng-switch="::TGItem.ShippingProfileTypeDef">\n                                    <i class="icon icon-deliver" ng-switch-when="Home"><\/i>\n                                    <i class="icon-img icon-seveneleven" ng-switch-when="SevenEleven"><\/i>\n                                    <i class="icon-img icon-seveneleven" ng-switch-when="SevenElevenPickup"><\/i>\n                                    <i class="icon-img icon-seveneleven" ng-switch-when="SevenElevenTCatPickup"><\/i>\n                                    <i class="icon-img icon-famile" ng-switch-when="Family"><\/i>\n                                    <i class="icon-img icon-famile" ng-switch-when="FamilyPickup"><\/i>\n                                    <i class="icon-img icon-hilife" ng-switch-when="HiLife"><\/i>\n                                    <i class="icon-img icon-hilife" ng-switch-when="HiLifePickup"><\/i>\n                                    <i class="icon icon-location"\n                                        ng-switch-when="LocationPickup|RetailStorePickup|RetailStoreDelivery"\n                                        ng-switch-when-separator="|"><\/i>\n                                    <i class="icon icon-cash-on-delivery" ng-switch-when="CashOnDelivery"><\/i>\n                                    <i class="icon icon-oversea-order" ng-switch-when="Oversea"><\/i>\n                                    <i class="icon icon-partial-pickup" ng-switch-when="PartialPickup"><\/i>\n                                    <i class="icon-img icon-circlek" ng-switch-when="CircleKPickup"><\/i>\n                                    <i class="icon-img icon-alfredlocker" ng-switch-when="AlfredPickup"><\/i>\n                                    <span class="payment-shipping-row__text" translate="{{TradesOrderListCtrl.getShippingTypeDisplayName(TGItem.ShippingProfileTypeDef)}}"><\/span>\n                                <\/div>\n                            <\/div>\n                            <!--ATM付款資訊-->\n                            <div class="payment-shipping-container__info-btn tg-header-second-row"\n                                ng-if="TGItem.PayProfileTypeDef === \'ATM\' &&\n                                    TGItem.TradesOrderList[0].TradesOrderSlaveList[0].OrderSlaveFlowStatusForUserDef === \'WaitingToPay\' &&\n                                    TradesOrderListCtrl.Market !== \'PX\'"\n                                ng-click="TradesOrderListCtrl.ShowAtmPayInfo(TGItem)"\n                                translate="frontend.typescripts.trades_order.list.atm">\n                            <\/div>\n                            <!-- 其他轉帳資訊 -->\n                            <div class="payment-shipping-container__info-btn tg-header-second-row"\n                                ng-if="TGItem.PayProfileTypeDef === \'CustomOfflinePayment\' &&\n                                    TGItem.TradesOrderList[0].TradesOrderSlaveList[0].OrderSlaveFlowStatusForUserDef === \'WaitingToPay\'"\n                                ng-click="TradesOrderListCtrl.ShowCustomOfflinePayInfo(TGItem)"\n                                translate="frontend.typescripts.trades_order.list.transfer_inform">\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    <div class="tool clear">\n                        <div class="toolText right">\n                            <a ng-href="{{\'/V2/CancelGoodsRequest/list/\' + TGItem.Id + \'?shopId=\' + TGItem.ShopId}}"\n                               ng-show="::TGItem.CanCancel && TradesOrderListCtrl.CheckPartialPickupCanCancel(TGItem) && TradesOrderListCtrl.IsCancelGoodsBtnEnabled"\n                               data-ns-ga-event-track\n                               data-track-category="取消訂單"\n                               data-track-action="list_click"\n                               data-track-label="點擊取消訂單"\n                               class="text small"\n                               translate="frontend.typescripts.trades_order.list.cancel_order"><\/a>\n                        <\/div>\n                        \n                        <div class="right retail-delivery-tooltip" ng-if="TGItem.NeedShowCourierProgress && TGItem.ShippingProfileTypeDef === \'RetailStoreDelivery\'">\n                            <a class="text small toolText" \n                                ng-click="TradesOrderListCtrl.ShowRetailDeliveryDialog($event, TGItem)"\n                                translate="frontend.typescripts.trades_order.list.check_delivery_progress">\n                            <\/a>\n                            <div class="retail-delivery-tooltip__content"\n                                ng-if="TradesOrderListCtrl.LatestRetailOrderId === TGItem.Id && !TradesOrderListCtrl.IsHideRetailOrderTooltip"\n                                ng-click="TradesOrderListCtrl.CloseRetailOrderTooltip()"\n                                translate="frontend.typescripts.trades_order.list.click_to_view_delivery_progress"><\/div>\n                        <\/div>\n\n                        <a ng-href="{{\'/V2/ReturnGoodsRequest/list/\' + TGItem.Id + \'?shopId=\' + TGItem.ShopId}}"\n                           ng-show="::TGItem.CanReturn"\n                           data-ns-ga-event-track\n                           data-track-category="申請退貨"\n                           data-track-action="list_click"\n                           data-track-label="點擊申請退貨"\n                           class="text small toolText right"\n                           translate="frontend.typescripts.trades_order.list.return_order"><\/a>\n\n                        <a ng-href="{{\'/V2/ChangeGoodsRequest/List/\' + TGItem.Id + \'?shopId=\' + TGItem.ShopId}}"\n                           ng-show="::TGItem.CanChange&&TGItem.IsShopChangeGoodsEnabled"\n                           data-ns-ga-event-track\n                           data-track-category="申請換貨"\n                           data-track-action="list_click"\n                           data-track-label="點擊申請換貨"\n                           class="text small toolText right"\n                           translate="frontend.typescripts.trades_order.list.replacement"><\/a>\n                        \n                        <!--重新付款-->\n                        <a ng-href="{{\'/V2/ShoppingCart/Index?shopId=\' + TGItem.ShopId}}"\n                           ng-show="::TGItem.CanReorder&&TradesOrderListCtrl.LocalizationConfig.TradesOrders.ShowReorderBtn"\n                           data-ns-ga-event-track\n                           data-track-category="訂單查詢頁"\n                           data-track-action="click"\n                           data-track-label="buy it again">\n                            <span class="reorder-btn right">\n                                <span translate="frontend.typescripts.trades_order.list.reorder"><\/span>\n                            <\/span>\n                        <\/a>\n\n                        <!--門市退貨條碼-->\n                        <a class="text toolText right retail-store-return-goods-btn"\n                           ng-show="TGItem.ReturnGoodsCodeInfo.IsShowReturnCode"\n                           ng-click="TradesOrderListCtrl.ShowRetailStoreReturnGoodsQRCode(\n                             TGItem.ReturnGoodsCodeInfo.Code,\n                             TGItem.ReturnGoodsCodeInfo.CodeType\n                           )">\n                            <i class="icon icon-editor icon-editor-icon_qrcode"><\/i>\n                            <span translate="frontend.typescripts.trades_order.list.retail_store_return_goods_btn"><\/span>\n                        <\/a>\n\n                        <a class="text small"\n                           ng-href="{{\'/V2/TradesOrder/TradesOrderDetail/\' + TGItem.Id + \'?shopId=\' + TGItem.ShopId}}"\n                           data-ns-ga-event-track\n                           data-track-category="訂單明細"\n                           data-track-action="點擊訂單明細"\n                           data-track-label="{{::TGItem.Id}}"\n                           translate="frontend.typescripts.trades_order.list.order_details"><\/a>\n                        <a class="text small score-text"\n                            ng-if="TradesOrderListCtrl.EnableSalePageComment(TGItem)"\n                            ng-click="TradesOrderListCtrl.HandleClickSalePageScore(TGItem)"\n                            translate="frontend.typescripts.trades_order.list.score">\n                            評價\n                        <\/a>\n                    <\/div>\n                    <div class="caution" ng-if="TradesOrderListCtrl.DisplayCancelOrderMessage(TGItem)">\n                        <span class="icon-asterisk"\n                              ng-bind="TradesOrderListCtrl.ThirdPartyPaymentWaitingToPayMessage(TGItem).tooltipTitle">\n                        <\/span>\n                        <span class="tooltip cancel-order"\n                              data-toolTipData="{{TradesOrderListCtrl.ThirdPartyPaymentWaitingToPayMessage(TGItem).toolTipData}}">\n                            <i class="fa fa-question-circle-o text light-text"><\/i>\n                        <\/span>\n                    <\/div>\n                    <div ng-if="TGItem.CanRePay" class="repay">\n                        <span translate="frontend.typescripts.trades_order.list.repayment_reminder_message"\n                              translate-value-val0="{{TGItem.RePayExpiredDateTime | nsDotNetDateParser | date: \'yyyy/MM/dd HH:mm\'}}"\n                              class="repay__tip"><\/span>\n                        <button ng-click="TradesOrderListCtrl.Repay(TGItem.UniqueKey)" class="repay__button">\n                            <i class="icon icon-reload repay__button-icon show-at-mobile"><\/i>\n                            {{\'frontend.typescripts.trades_order.list.repay\' | translate}}\n                        <\/button>\n                    <\/div>\n                <\/div>\n                <!--TM-->\n                <div class="TM-block"\n                     ng-repeat="TMItem in TGItem.TradesOrderList|limitTo:(IsOpen ? TGItem.TradesOrderList.length : 1)"\n                     ng-init="$TMLast=$last"\n                     ng-class="{\'temperature-block\':TMItem.TemperatureTypeDef !== \'Normal\'}">\n                    <!--常溫(Normal)時隱藏 -->\n                    <div class="text small" ng-show="TMItem.TemperatureTypeDef !== \'Normal\'">\n                        <div class="temperature-tag show-at-mobile">\n                            <div class="label"\n                                 translate="{{TradesOrderListCtrl.getTemperatureDisplayName(TMItem.TemperatureTypeDef)}}"><\/div>\n                        <\/div>\n                        <div class="temperature-bar hide-at-mobile"\n                             translate="{{TradesOrderListCtrl.getTemperatureDisplayName(TMItem.TemperatureTypeDef)}}"><\/div>\n                    <\/div>\n                    <div class="TM-content temperature-border fix-temperature-border">\n                        <!--TS-->\n                        <div class="TS-block"\n                             ng-repeat="TSItem in TMItem.TradesOrderSlaveList|limitTo:(IsOpen ? TMItem.TradesOrderSlaveList.length : 1)"\n                             ng-class="{\'line\': !$last && TMItem.TradesOrderSlaveList.length > 1 }">\n                            <div class="content order-summary">\n                                <!--商品圖 -->\n                                <img ng-if="TSItem.IsGift" class="img" ng-src="{{TSItem.PicUrl}}" alt=""/>\n                                <a ng-if="!TSItem.IsGift"\n                                   ng-href="{{ TradesOrderListCtrl.OfficialOriginDomain +\'/SalePage/Index/\' + TSItem.SalePageId}}"\n                                   data-ns-ga-event-track\n                                   data-track-category="商品頁連結"\n                                   data-track-action="list_click"\n                                   data-track-label="點擊商品頁連結"\n                                   target="_blank">\n                                    <img class="img" ng-src="{{TSItem.PicUrl}}" alt=""/>\n                                <\/a>\n                                <!--TS 資訊-->\n                                <div class="content">\n                                    <span ng-if="TSItem.IsGift"\n                                          class="name text small"> {{TSItem.SaleProductTitle}}<\/span>\n                                    <a ng-if="!TSItem.IsGift"\n                                       ng-href="{{TradesOrderListCtrl.OfficialOriginDomain + (TSItem.IsGift?\'/V2/Promotion/Gift?id=\':\'/SalePage/Index/\') + TSItem.SalePageId}}"\n                                       data-ns-ga-event-track\n                                       data-track-category="商品頁連結"\n                                       data-track-action="list_click"\n                                       data-track-label="點擊商品頁連結"\n                                       target="_blank" class="name hasLink text small"\n                                       ng-attr-id="{{\'newVersionTSSaleProductTitle_\' + ($index + 1)}}">\n                                        {{TSItem.SaleProductTitle}}\n                                    <\/a>\n                                    <!--金額-->\n                                    <div ng-if="!TSItem.IsGift" class="payment">\n                                        <!--隱藏金額-->\n                                        <span class="text max amount cms-moneyColor"\n                                              ng-attr-id="{{\'newVersionTSTotalPayment_\' + ($index + 1)}}"> {{::TSItem.TotalPayment|currency}}<\/span>\n                                        <!--一般商品＆活動贈品隱藏-->\n                                        <span class="label cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"\n                                              ng-if="TSItem.ShippingTypeDef !== TradesOrderListCtrl.SaleProductShippingTypeEnum.Normal &&\n                                                     !TSItem.IsGift &&\n                                                     TradesOrderListCtrl.getDeliveryTypeDisplayName(TSItem.ShippingTypeDef)"\n                                              translate="{{TradesOrderListCtrl.getDeliveryTypeDisplayName(TSItem.ShippingTypeDef)}}">\n                                        <\/span>\n                                        <span ng-if="TSItem.IsPointsPay"\n                                              translate="frontend.typescripts.common.product_tag_pointpay"\n                                              class="label cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor"><\/span>\n                                        <span class="label cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor" ng-if="TSItem.IsExtra" translate="frontend.typescripts.trades_order.list.extra_product">\n                                        <\/span>\n                                    <\/div>\n                                    <!--定期購管理-->\n                                    <div class="content__item" ng-if="TSItem.ShippingTypeDef === TradesOrderListCtrl.SaleProductShippingTypeEnum.RegularOrder">\n                                        <a class="text small"\n                                           ng-href="/V2/RegularOrder/Index?shopId={{TGItem.ShopId}}"\n                                           translate="frontend.typescripts.trades_order.list.regular_order_management"><\/a>\n                                    <\/div>\n                                    <!-- 贈品 -->\n                                    <div ng-if="TSItem.IsGift && !TSItem.ECouponSlaveId" \n                                         class="text small light-title payment" \n                                         translate="frontend.typescripts.trades_order.list.free_gift">\n                                    <\/div>\n                                    <!-- 贈品券贈品 -->\n                                    <div class="payment" \n                                         ng-if="TSItem.IsGift && TSItem.ECouponSlaveId">\n                                        <span class="text max amount cms-moneyColor"\n                                              ng-attr-id="{{\'newVersionTSTotalPayment_\' + ($index + 1)}}"> {{::TSItem.TotalPayment|currency}}<\/span>\n                                        <span class="label cms-generalTagTextColor cms-generalTagBgColor cms-tagBorderColor" \n                                              translate="frontend.typescripts.trades_order.list.gift_coupon_redemption">\n                                        <\/span>\n                                    <\/div>\n                                    <!--貨態,交期-->\n                                    <div class="flowStatus">\n                                        <!--貨態-->\n                                        <span class="mainMessage"\n                                              ng-class="{\n                                                  \'refundFailMessage\':TSItem.OrderSlaveFlowStatusForUserDef === \'RefundFail\',\n                                                  \'refundMessage\':TSItem.FlowType !== \'Normal\',\n                                                  \'finishMessage\':(TSItem.OrderSlaveFlowStatusForUserDef ===\'LocationShippingPickup\'||TSItem.OrderSlaveFlowStatusForUserDef ===\'ShippingFinish\'||TSItem.OrderSlaveFlowStatusForUserDef ===\'StoreShippingPickup\')\n                                                }"\n                                              ng-hide="TradesOrderListCtrl.IsShowPartialPickupStatus(TSItem)"\n                                              ng-if="TSItem.FlowStatusMessageInfo.MainMessage">\n                                            {{TSItem.FlowStatusMessageInfo.MainMessage}}\n                                        <\/span>\n\n                                        <!-- 逆流程會出現的貨態附說明-->\n                                        <span class="subMessage"\n                                              ng-class="{\'refundMessage\':TSItem.FlowType !== \'Normal\'}"\n                                              ng-hide="TSItem.FlowStatusMessageInfo.SubMessage&&\n                                                  (TSItem.OrderSlaveFlowStatusForUserDef === \'RefundFail\'||!TSItem.HasRefundInfo)&&\n                                                  TSItem.RefundTypeDef === TradesOrderListCtrl.refundRequestTypeDefEnum.Remittance">\n                                                {{TSItem.FlowStatusMessageInfo.SubMessage}}\n                                        <\/span>\n                                        <!--退款失敗但無帳號資料時顯示連結 -->\n                                        <a class="subMessage"\n                                           target="_blank"\n                                           ng-href="{{TradesOrderListCtrl.GetRefundUrl(TSItem.RefundSourceDef,TMItem.Code,TSItem.Code,TGItem.Id)}}"\n                                           ng-show="\n                                               TSItem.FlowStatusMessageInfo.SubMessage &&\n                                               TSItem.OrderSlaveFlowStatusForUserDef === \'RefundFail\'\n                                               && TSItem.RefundTypeDef === TradesOrderListCtrl.refundRequestTypeDefEnum.Remittance">\n                                            {{TSItem.FlowStatusMessageInfo.SubMessage}}\n                                        <\/a>\n\n                                        <!-- PC-物流或門市資訊（PX 環境門市自取隱藏，另外換行顯示）-->\n                                        <span ng-if="TSItem.TradesOrderSlaveProgressBarInfo.IsCurrentStatusMessageVisibled && (!TSItem.IsGift || TSItem.IsGift && TSItem.ECouponSlaveId)"\n                                              ng-hide="TradesOrderListCtrl.Market === \'PX\' && TSItem.ShippingProfileTypeDef === TradesOrderListCtrl.ShippingProfileTypeDefEnum[TradesOrderListCtrl.ShippingProfileTypeDefEnum.LocationPickup]">\n                                                <!-- （有目前狀態資訊），有目前狀態查詢網址，目前狀態查詢網址不是內部配送資訊查詢網址 -->\n                                                <a class="text small hide-at-mobile"\n                                                   target="_blank"\n                                                   ng-if="TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl && !TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl"\n                                                   ng-href="{{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl}}"\n                                                   data-ns-ga-event-track\n                                                   data-track-category="貨態查詢"\n                                                   data-track-action="click"\n                                                   data-track-label="點擊貨態配編條">\n                                                    [ {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}} ]\n                                                <\/a>\n                                                <!-- 有目前狀態資訊，沒有目前狀態查詢網址，目前狀態查詢網址不是內部配送資訊查詢網址 -->\n                                                <span class="text small light-title hide-at-mobile"\n                                                      ng-if="!TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl && TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage && !TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl">\n                                                    [ {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}} ]\n                                                <\/span>\n                                                <!-- （有目前狀態資訊），目前狀態查詢網址是內部配送資訊查詢網址 -->\n                                                <a class="text small hide-at-mobile"\n                                                   target="_blank"\n                                                   ng-if="TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl"\n                                                   ng-click="TradesOrderListCtrl.ShowProgressModal($event, TSItem)">\n                                                    [ {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}} ]\n                                                <\/a>\n                                        <\/span>\n\n                                        <!--取貨單 貨到門市或取貨完成-->\n                                        <a ng-if="TradesOrderListCtrl.IsShowPickUpButton(TSItem)"\n                                           ng-href="{{\'/V2/LocationPickup/LocationPickupDetail/\'+TGItem.Id+\'?shopId=\'+TGItem.ShopId+\'&storeId=\'+TMItem.TradesOrderReceiverStoreId+\'&shippingCode=\'+TSItem.OrderSlaveFlowShippingOrderSlaveOuterCode+\'&tgCode=\'+TGItem.Code}}"\n                                           ng-class="{\'pickup\':TSItem.OrderSlaveFlowStatusForUserDef === \'LocationShippingPickup\'}"\n                                           class="pickup-btn text min"\n                                           translate="frontend.typescripts.trades_order.list.pick_up">\n                                        <\/a>\n                                        <!--退貨詳情 全家退貨通-->\n                                        <a class="family-return-btn hide-at-mobile" target="_blank"\n                                           ng-href="/V2/ReturnGoodsRequest/PrintCode?tsId={{TSItem.Id}}&shopId={{TGItem.ShopId}}"\n                                           ng-if="TSItem.ReturnShippingType === TradesOrderListCtrl.ReturnShippingTypeEnum.CVSReturn &&\n                                                      (TSItem.OrderSlaveFlowStatusForUserDef === \'ReturnGoodsRequesting\' ||\n                                                      (TSItem.OrderSlaveFlowStatusForUserDef === \'ReturnGoodsProcessing\' && TSItem.ReturnGoodsOrderSlaveStatusDef === \'WaitingToSend\'))"\n                                                      translate="frontend.typescripts.trades_order.list.return_detail">\n                                        <\/a>\n\n                                        <!-- PX 環境門市自取目前狀態資訊換行顯示 (有目前狀態資訊，沒有目前狀態查詢網址，目前狀態查詢網址不是內部配送資訊查詢網址) -->\n                                        <div class="text small"\n                                             ng-if="TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage && !TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl && !TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl"\n                                             ng-show="TradesOrderListCtrl.Market === \'PX\' && TSItem.ShippingProfileTypeDef === TradesOrderListCtrl.ShippingProfileTypeDefEnum[TradesOrderListCtrl.ShippingProfileTypeDefEnum.LocationPickup]">\n                                            {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}}\n                                        <\/div>\n\n                                        <!-- 分批取貨 -->\n                                        <div>\n                                            <span ng-if="TradesOrderListCtrl.IsShowPartialPickupStatus(TSItem)">\n                                                <span class="date"\n                                                      ng-if="TradesOrderListCtrl.GetPartialPickupStatus(TSItem) === TradesOrderListCtrl.partialPickupStatusEnum.prepare || TradesOrderListCtrl.GetPartialPickupStatus(TSItem) === TradesOrderListCtrl.partialPickupStatusEnum.available">\n                                                    {{TSItem.OrderSlaveFlowUpdatedDateTime|nsDotNetDateParser|date}}\n                                                <\/span>\n                                                <span class="status"\n                                                      translate="{{TradesOrderListCtrl.getPartialPickupStatusDisplayName(TradesOrderListCtrl.GetPartialPickupStatus(TSItem))}}">\n                                                <\/span>\n                                            <\/span>\n                                            <span class="link"\n                                                  ng-if="TradesOrderListCtrl.IsShowPartialPickupLink(TSItem)">\n                                                <a ng-href="{{TradesOrderListCtrl.partialPickupLink}}"\n                                                   target="_blank"\n                                                   translate="frontend.typescripts.trades_order.list.partial_pickup_center"><\/a>\n                                            <\/span>\n                                            <div ng-if="TradesOrderListCtrl.IsShowPartialPickupStatus(TSItem) && TradesOrderListCtrl.GetPartialPickupStatus(TSItem) !== TradesOrderListCtrl.partialPickupStatusEnum.prepare && TSItem.PickupPeriodDateTime != null">\n                                                <span class="date"\n                                                      translate="frontend.typescripts.trades_order.list.partial_pickup_date_title"><\/span>\n                                                <span class="date">{{TSItem.PickupPeriodDateTime|nsDotNetDateParser|date}}<\/span>\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n\n                                <!-- 客服 -->\n                                <a ng-href="{{\'/Question/QuestionInsert/0?sId=\'+ TGItem.ShopId +\'&shopId=\'+ TGItem.ShopId +\'&oData=\' + TSItem.Code }}"\n                                   ng-if="TradesOrderListCtrl.IsShowQuestionInsert"\n                                   data-ns-ga-event-track\n                                   data-track-category="詢問客服"\n                                   data-track-action="list_click"\n                                   data-track-label="{{TSItem.IsGift ? \'滿額贈品-點擊詢問客服\' : \'訂單列表-點擊詢問客服\'}}">\n                                    <i class="icon icon-service question right"><\/i>\n                                <\/a>\n\n                                <!--TS 進度條  -->\n                                <div class="progress-bar clear"\n                                     ng-if="TSItem.TradesOrderSlaveProgressBarInfo.IsVisibled && \n                                            (!TSItem.IsGift || TSItem.IsGift && TSItem.ECouponSlaveId)"\n                                     ng-hide="!TSItem.TradesOrderSlaveProgressBarInfo.DisplayProgressBarList || TSItem.TradesOrderSlaveProgressBarInfo.DisplayProgressBarList.length === 0"\n                                     ng-init="CurrentStatusIndex = TradesOrderListCtrl.CheckProgressNodeStatus(TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusDef,TSItem.TradesOrderSlaveProgressBarInfo.DisplayProgressBarList)">\n\n                                    <!--包含點＆線-->\n                                    <div class="block"\n                                         ng-repeat="BarItem in TSItem.TradesOrderSlaveProgressBarInfo.DisplayProgressBarList"\n                                         ng-class="{\'focus\': BarItem.StatusDef === TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusDef,\'active\': BarItem.DisplaySort < CurrentStatusIndex}">\n                                        <!--點＆日期＆狀態-->\n                                        <div class="node">\n                                            <div class="date">\n                                                <span ng-if="TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusDef === BarItem.StatusDef">\n                                                    {{TradesOrderListCtrl.Market === \'PX\'\n                                                      ? (TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusDateTime|nsDotNetDateParser|date:\'MM/dd HH:mm\')\n                                                      : (TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusDateTime|nsDotNetDateParser|date:\'MM/dd\')}}\n                                                <\/span>\n                                            <\/div>\n                                            <div class="bar">\n                                                <!--線-->\n                                                <div class="line" ng-show="!$first"><\/div>\n                                                <!--點-->\n                                                <div class="dot"><\/div>\n                                            <\/div>\n                                            <div class="text small status" ng-class="{\'first\':$first}">\n                                                {{::BarItem.StatusDefDesc}}\n                                            <\/div>\n                                        <\/div>\n\n                                    <\/div>\n                                <\/div>\n\n                                <!-- Mobile-物流或門市資訊（PX 環境門市自取隱藏，另外顯示）-->\n                                <span ng-if="TSItem.TradesOrderSlaveProgressBarInfo.IsCurrentStatusMessageVisibled && (!TSItem.IsGift || TSItem.IsGift && TSItem.ECouponSlaveId)"\n                                      ng-hide="TradesOrderListCtrl.Market === \'PX\' && TSItem.ShippingProfileTypeDef === TradesOrderListCtrl.ShippingProfileTypeDefEnum[TradesOrderListCtrl.ShippingProfileTypeDefEnum.LocationPickup]">\n                                        <a class="text small delivery blueBorder clear show-at-mobile"\n                                           target="_blank"\n                                           ng-if="TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl && !TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl"\n                                           ng-href="{{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl}}"\n                                           data-ns-ga-event-track\n                                           data-track-category="貨態查詢"\n                                           data-track-action="click"\n                                           data-track-label="點擊貨態配編條">\n                                            {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}}\n                                        <\/a>\n                                        <span class="text small light-title show-at-mobile delivery textAlign"\n                                              ng-if="!TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusQueryUrl && TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage && !TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl">\n                                            [ {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}} ]\n                                        <\/span>\n                                        <a class="text small delivery blueBorder clear show-at-mobile"\n                                           target="_blank"\n                                           ng-if="TSItem.TradesOrderSlaveProgressBarInfo.IsInternalStatusQueryUrl"\n                                           ng-click="TradesOrderListCtrl.ShowProgressModal($event, TSItem)">\n                                            {{TSItem.TradesOrderSlaveProgressBarInfo.CurrentStatusMessage}}\n                                         <\/a>\n                                    <\/span>\n                                <!-- Mobile 退貨詳情 全家退貨通-->\n                                <a class="text small delivery blueBorder clear show-at-mobile" target="_blank"\n                                   ng-href="/V2/ReturnGoodsRequest/PrintCode?tsId={{TSItem.Id}}&shopId={{TGItem.ShopId}}"\n                                   ng-if="TSItem.ReturnShippingType === TradesOrderListCtrl.ReturnShippingTypeEnum.CVSReturn &&\n                                                  (TSItem.OrderSlaveFlowStatusForUserDef === \'ReturnGoodsRequesting\' ||\n                                                  (TSItem.OrderSlaveFlowStatusForUserDef === \'ReturnGoodsProcessing\' && TSItem.ReturnGoodsOrderSlaveStatusDef === \'WaitingToSend\'))"\n                                                  translate="frontend.typescripts.trades_order.list.return_detail">\n                                <\/a>\n                            <\/div>\n                            <!-- 部分金額退款提示 -->\n                            <div\n                                class="partial-cancel-memo"\n                                ng-if="TSItem.PartialRefundAmount"\n                                ng-click="TradesOrderListCtrl.RedirectToTradesOrderDetail(TGItem.Id, TGItem.ShopId)"\n                            >\n                                <i class="icon-editor icon-editor-icon_common_alert"><\/i>\n                                <span translate="frontend.typescripts.trades_order.list.partial_cancel_message"><\/span>\n                                <i class="icon-editor icon-editor-icon_common_to"><\/i>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n');n.put("/V2/TypeScripts/Modules/ShoppingCart/ns-select-shipping-area/selectShippingAreaDirective.html",'<div class="shipping-area-container">\n    <div class="shipping-header">\n        <div class="shipping-header__area-name"\n            ng-bind="SelectShippingAreaCtrl.DropDownMenuTemplate.headerSubtitle">\n        <\/div>\n        <div class="shipping-header__area-switch"\n            ng-if="SelectShippingAreaCtrl.DropDownMenuTemplate.showSelectCountrySwitch"\n            ng-click="SelectShippingAreaCtrl.SetOverseaTemplate()"\n            translate="frontend.typescripts.components.select_country">\n        <\/div>\n    <\/div>\n    <div id="shipping_area_list"\n         class="shipping-area-list">\n        <!--黃色提示文案-->\n        <div class="hint-message"\n            ng-if="SelectShippingAreaCtrl.hintMessage">\n            <i class="fa fa-info-circle icon-info"><\/i>\n            <span class="message" ng-bind-html="SelectShippingAreaCtrl.hintMessage"><\/span>\n        <\/div>\n        <!-- 重量計價配送區域 -->\n        <div class="shipping-list"\n             id="{{\'area_\' + area.Id}}"\n             ng-repeat="area in SubShippingAreaList"\n             ng-if="area.Id !== 0 && SelectShippingAreaCtrl.DropDownMenuTemplate.showWeightBillingShippingArea"\n             ng-click="SelectShippingAreaCtrl.ChangeSelectedShippingArea(area)">\n            <i class="icon circle"\n                data-ng-class="{\'icon-radio-selected\': area.Id === SelectedShippingArea.Id && area.DeliveryTypeId === SelectedShippingArea.DeliveryTypeId,\n                                \'icon-circle\': !(area.Id === SelectedShippingArea.Id && area.DeliveryTypeId === SelectedShippingArea.DeliveryTypeId) }">\n            <\/i>\n            <span class="shipping-list__area-name" ng-bind="area.Name"><\/span>\n        <\/div>\n        <!-- 國家地區配送配送區域 -->\n        <div class="shipping-list"\n             id="{{\'area_\' + area.Id}}"\n             ng-repeat="area in ShippingAreaList"\n             ng-if="area.Id !== 0 && SelectShippingAreaCtrl.DropDownMenuTemplate.showOverseaShippingArea"\n             ng-click="SelectShippingAreaCtrl.ChangeSelectedShippingArea(area)">\n\n            <i class="icon circle"\n                data-ng-class="{\'icon-radio-selected\': area.Id === SelectedShippingArea.Id && area.DeliveryTypeId === SelectedShippingArea.DeliveryTypeId,\n                                \'icon-circle\': !(area.Id === SelectedShippingArea.Id && area.DeliveryTypeId === SelectedShippingArea.DeliveryTypeId) }">\n            <\/i>\n            <span class="shipping-list__area-name" ng-bind="area.Name"><\/span>\n            <!--相同國家但不同配送方式名稱-->\n            <span class="shipping-list__area-name"\n                ng-if="area.IsDisplayDeliveryType"\n                ng-bind="\'(\' + area.DeliveryTypeName + \')\'"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n')}])}(),function(n,t){typeof module=="object"&&module.exports?module.exports={allCurrencies:t()}:(n.nineyi=n.nineyi||{},n.nineyi.i18n=n.nineyi.i18n||{},n.nineyi.i18n.allCurrencies=t())}(this,function(){return[{code:"TWD",symbol:"NT$",decimalDigits:0,decimalSeparator:".",groupSeparator:",",display:"新台幣"},{code:"USD",symbol:"US$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"US dollar"},{code:"HKD",symbol:"HK$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"港幣"},{code:"MOP",symbol:"P",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Pataca"},{code:"CNY",symbol:"¥",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"人民币"},{code:"MYR",symbol:"RM",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Ringgit Malaysia"},{code:"SGD",symbol:"S$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Singapore dollar"},{code:"THB",symbol:"฿",decimalDigits:0,decimalSeparator:".",groupSeparator:",",display:"บาท"},{code:"VND",symbol:"₫",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Đồng"},{code:"PHP",symbol:"₱",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Philippine peso"},{code:"KRW",symbol:"₩",decimalDigits:0,decimalSeparator:".",groupSeparator:",",display:"대한민국 원"},{code:"JPY",symbol:"¥",decimalDigits:0,decimalSeparator:".",groupSeparator:",",display:"日本円"},{code:"AUD",symbol:"$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Australian dollar"},{code:"EUR",symbol:"€",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Euro"},{code:"GBP",symbol:"£",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Pound sterling"},{code:"CAD",symbol:"$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Canadian dollar"},{code:"IDR",symbol:"Rp",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Rupiah"},{code:"NZD",symbol:"$",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"New Zealand dollar"},{code:"SEK",symbol:"kr",decimalDigits:2,decimalSeparator:".",groupSeparator:",",display:"Svensk krona"}]})