1(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[1879,31,169,232,248,314,359,410,416,481,487,537,650,694,798,867,886,930,1008,1021,1064,1107,1211,1254,1380,1451,1494,1538,1624,1669,1783,1836,1934,2011,2022],{307:function(e,t,r){"use strict";const i=e=>{if(!e){return null}const t=[{brand:"JCB",regex:/^(?:2131|1800|35)[0-9]{0,}$/},{brand:"AMEX",regex:/^3[47][0-9]{0,}$/},{brand:"DINERS_CLUB",regex:/^3(?:0[0-59]{1}|[689])[0-9]{0,}$/},{brand:"VISA",regex:/^4[0-9]{0,}$/},{brand:"MASTERCARD",regex:/^(5[1-5]|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{0,}$/},{brand:"DISCOVER",regex:/^(6011|65|64[4-9]|62212[6-9]|6221[3-9]|622[2-8]|6229[01]|62292[0-5])[0-9]{0,}$/},{brand:"MAESTRO",regex:/^(5[06789]|6)[0-9]{0,}$/}];e=e.replace(/\D/g,"");let r;for(const i of t){if(e.match(i.regex)){if(i.brand==="MAESTRO"&&`${e[0]}`==="5"){r="MASTERCARD"}else{({brand:r}=i)}break}}return r};function n(e,t=""){if(e==null){return e}const r=e.toUpperCase();if(r.startsWith("EFTPOS")||t.toUpperCase().startsWith("EFTPOS")){return"EFTPOS"}switch(r){case"AMERICAN EXPRESS":case"AMERICAN_EXPRESS":case"AM":case"AMEX":return"AMEX";case"DISCOVER":case"DC":return"DISCOVER";case"MASTERCARD":case"MC":return"MASTERCARD";case"MAESTRO":return"MAESTRO";case"INTERAC":case"INTERAC_CARD":return"INTERAC";case"VISA":case"VI":case"VD":case"VE":return"VISA"}return r}const a=e=>e!=null&&`${e}`.length>0&&`${e}`.split("").reverse().map(e=>parseInt(e,10)).map((e,t)=>t%2?e*2:e).map(e=>e>9?e%10+1:e).reduce((e,t)=>e+t)%10===0;const o=e=>e!=null&&/^1020[0-9]{16}$/gm.test(e)&&a(e);const s=e=>e!=null&&/^\d{4}$/g.test(e);const l=(e,t)=>{if(!e||!t){return null}return`gift/${e}/${t}`};const c=e=>{if(!e){return null}return`!gift_${e}`};const d=e=>{var t;if(!e){return null}const r=new RegExp([/\/!gift_(1020[0-9]{16})/,/\/gift\/(.*)\/(1020[0-9]{16}|[A-Za-z0-9]+)/,/gift\/(.*)\/(1020[0-9]{16}|[A-Za-z0-9]+)/,/gift(1020[0-9]{16}|[A-Za-z0-9]+)/].map(e=>e.source).join("|"));const i=(t=e.match(r))===null||t===void 0?void 0:t.filter(Boolean);return(i===null||i===void 0?void 0:i.length)>0?i:null};const u=e=>{if(!e){return null}const t=d(e);if(t==null){return null}let r;let i=null;if((t===null||t===void 0?void 0:t.length)>2){[,i,r]=t}else if((t===null||t===void 0?void 0:t.length)===2){[,r]=t}return{gift_card_number:r,location_url_name:i}};const _=e=>{const t=e&&`${e}`.match(/(?:^|\?);([^;?]*)\?/);return t?t[1]:null};const p=8;const f=19;const g=e=>e.length>=p&&e.length<=f;const m=e=>{const t=e.split("=");if(t.length===1){return t[0]}if(g(t[0])){return t[0]}if(g(t[1])){return t[1]}return e};const y=e=>{if(!e){return e}const t=_(e);return t==null?e:m(t)};const h=e=>{const t={valid:false,gift_card_number:null,location_url_name:null};if(!e){return t}const r=`${e}`.trim();const i=y(r);const n=i.match(/(?:^|\/)gift\/([^/?#]+)\/(1020[0-9]{16})(?:[/?#]|$)/);if(n){const[,e,r]=n;if(o(r)){return{valid:true,gift_card_number:r,location_url_name:e}}return t}const a=i.match(/(?:^|\/)!gift_(1020[0-9]{16})(?:[/?#]|$)/);if(a){const[,e]=a;if(o(e)){return{valid:true,gift_card_number:e,location_url_name:null}}return t}if(o(i)){return{valid:true,gift_card_number:i,location_url_name:null}}if(/[0-9]/.test(i)&&i!==r&&g(i)){return{valid:true,gift_card_number:i,location_url_name:null}}return t};const b=e=>!!e&&(o(e)||/^[\w]+$/.test(e));const v=e=>{if(!e){return""}return e.replace(/(.{4})/g,"$1 ").trim()};e.exports={ccBrandFromNum:i,getCardTypeFromCode:n,luhnCheck:a,validateGiftCardNumber:b,validateGoTabGiftCardNumber:o,validateGoTabGiftCardPin:s,validateGiftCardIncomingRoute:d,parseGiftCardIncomingRoute:u,parseGoTabGiftCardScan:h,stripMagstripeTrack2:y,createGiftCardIncomingRoute:l,createOldGiftCardIncomingRoute:c,formatGiftCardNumber:v}},311:function(e,t,r){"use strict";(function(t){var i=r(0);var n=i(r(23));var a=i(r(8));const o=["payment_type_overrides"],s=["payment_type_overrides","schedule","over_capture_configuration"],l=["payment_type_overrides"];function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};
1t%2?c(Object(r),!0).forEach(function(t){(0,a.default)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}const u=r(1);const _=r(421);const p=r(422);const f=r(565);const{getCardTypeFromCode:g}=r(307);const m=new _({allErrors:true,jsonPointers:true,nullable:true});p(m);const y="^.+$";const h=60*1e3;const b=h*60;const v=2*h;function A(){if(typeof t==="undefined"||!t.env){return v}const e=t.env.ADYEN_RESTRICTED_DEBIT_CAPTURE_DELAY_MS;if(e==null||`${e}`.trim()===""){return v}const r=Number(e);if(!Number.isFinite(r)||r<0){return v}return r}const E=A();const x="^(AMEX|DISCOVER|MASTERCARD|MAESTRO|VISA|EFTPOS|INTERAC|INTERAC_CARD)$";const T={card_fields:{type:"object",description:"Required fields to add a card through the gateway.",properties:{dynamic:{type:"boolean"},first_name:{type:"boolean"},last_name:{type:"boolean"},card_number:{type:"boolean"},month:{type:"boolean"},year:{type:"boolean"},cvc:{type:"boolean"},zip:{type:"boolean"},email:{type:"boolean"},gift_card_number:{type:"object",required:["min_length","max_length","character_set"],properties:{min_length:{type:"number",minimum:5},max_length:{type:"number",minimum:12},character_set:{type:"string",enum:["alphanumeric","numeric"]},nfc_enabled:{type:"boolean"},qr_enabled:{type:"boolean"},composite_pin_character:{type:"string"},nfc_read_length:{type:"number"}
1,nfc_read_slice:{oneOf:[{type:"number"},{type:"array",items:{type:"number"},minItems:2,maxItems:2}]},sanitize_regex:{type:"string"},nfc_button_text:{type:"string"},nfc_read_options:{type:"object",properties:{action_type:{type:"string"},card_type:{type:"string"},hide_input:{type:"boolean"}}}},additionalProperties:false},gift_card_pin:{type:"object",required:["required","min_length","max_length","character_set"],properties:{required:{type:"boolean"},min_length:{type:"number",minimum:4},max_length:{type:"number",minimum:6},character_set:{type:"string",enum:["alphanumeric","numeric"]}},additionalProperties:false},room_number:{type:"boolean"},account_number:{type:"boolean"},customer_pin:{type:"boolean"},nfc:{type:"boolean"}},additionalProperties:false}};const w={backoff:{type:"number"},tipped_auth_delay_ms:{description:"The delay in ms after authorization with a tip.",type:"number"},untipped_auth_delay_ms:{description:"The delay in ms after authorization without a tip.",type:"number"},credit_delay_ms:{description:"The delay in ms after credit.",type:"number"},fiscal_day_delay_ms:{descrption:"The delay in ms after the fiscal day.",type:"number"}};const S={type:"object",properties:{percent:{description:"The percent over authorization payments on this gateway can be captured for. Number between 0.0000 and 1.0000.",type:"number"}}};const I={type:"string",description:"The type of capture call for the gateway.",enum:["NONE","SYNC","ASYNC"]};const C={type:"string",description:"Whether card-present auths are captured automatically or later.",enum:["AUTOMATIC","MANUAL"]};const k="http://json-schema.org/draft-07/schema#";const O={$schema:k,$id:"#/",type:"object",definitions:T,patternProperties:{"^[A-Z]+$":{$id:"#/GATEWAY",type:"object",required:["description","setup_type","card_type","card_vaulted","validation_requirements","capture_configuration","payout_configuration"],properties:{description:{$id:"#/GATEWAY/description",type:"string",description:"A description of the gateway for human consumption."},setup_type:{$id:"#/GATEWAY/setup_type",type:"string",description:"The type of setup required to create a processor for the gateway.",enum:["assignable","configurable","creatable","singleton","assignable-preconfigured","deprecated"]},card_type:{$id:"#/GATEWAY/card_type",type:"string",description:"The type of card that the gateway can process.",enum:["CREDIT","GIFT","API","HYBRID","NONE"]},bypass_vgs:{$id:"#/GATEWAY/bypass_vgs",type:"boolean",description:"Whether or not the gateway should bypass VGS."},card_vaulted:{$id:"#/GATEWAY/card_vaulted",type:"boolean",description:"Whether or not the gateway stores cards in a vault. This will likely be depricated when the abstract gateway gets implemented."},disable_payment:{$id:"#/GATEWAY/disable_payment",type:"boolean",default:false,description:"Whether or not the gateway should be disabled for payment processing, works as a trick to gateways that we temporarily disable payment processing for."},card_field_groups:{$id:"#/GATEWAY/card_field_groups",type:"array",description:"Card field groups for card entry.",items:{$id:"#/GATEWAY/card_field_groups/group",type:"object",required:["fields"],properties:{title:{$id:"#/GATEWAY/card_field_groups/group/title",type:"string"},acl:{$id:"#/GATEWAY/card_field_groups/group/acl",type:"string"},fields:{$id:"#/GATEWAY/card_field_groups/group/fields",$ref:"#/definitions/card_fields"}}}},card_search_configuration:{$id:"#/GATEWAY/card_search_configuration",type:"object",description:"Card search configuration.",required:["fields"],properties:{acl:{$id:"#/GATEWAY/card_search_configuration/acl",type:"string"},fields:{$id:"#/GATEWAY/card_search_configuration/fields",type:"array",description:"Searchable card fields.",items:{$id:"#/GATEWAY/card_search_configuration/fields/search_field",type:"object",required:["property","display"],properties:{property:{$id:"#/GATEWAY/card_search_configuration/fields/search_field/property",type:"string"},display:{$id:"#/GATEWAY/card_search_configuration/fields/search_field/display",type:"string"}}}}}},card_description:{$id:"#/GATEWAY/card_description",type:"object",properties:{dynamic:{$id:"#/GATEWAY/card_description/dynamic",type:"boolean"},title:{$id:"#/GATEWAY/card_description/title",type:"string"},description:{$id:"#/GATEWAY/card_description/description",type:"string"}}}
1,validation_requirements:{$id:"#/GATEWAY/validation_requirements",type:"object",description:"Fields on a stored payment method that are required in order to consider the payment method viable for payment.",required:["processor_token","vgs_tokens"],properties:{processor_token:{$id:"#/GATEWAY/validation_requirements/processor_token",type:"boolean",description:"A token returned from the gateway processor when the card was added/vaulted."},vgs_tokens:{$id:"#/GATEWAY/validation_requirements/vgs_tokens",type:"boolean",description:"Tokens returned from VGS when card data was vaulted."}}},configuration_fields:{$id:"#/GATEWAY/configuration_fields",type:"array",description:"Form fields required to set up a processor for this gateway.",minItems:0,items:{$id:"#/GATEWAY/configuration_fields/field",type:"object",required:["field","title"],properties:{field:{type:"string"},title:{type:"string"},description:{type:"string"},options:{type:"array"},select_minimum:{type:"number"},select_maximum:{type:"number"},validation_regex:{type:"string"},special_field:{type:"boolean"}}}},minimum_payment_amount:{$id:"#/GATEWAY/minimum_payment_amount",type:"number",description:"Minimum payment amount."},auth_configuration:{$id:"#/GATEWAY/auth_configuration",type:"object",description:"Authorization configuration for the gateway.",required:["allow_increment"],properties:{allow_increment:{$id:"#/GATEWAY/auth_configuration/allow_increment",type:"boolean",description:"Whether or not authorizations on this gateway can be incremented."},allow_refund:{$id:"#/GATEWAY/auth_configuration/allow_refund",type:"boolean",description:"Whether or not the gateway supports referenced refunds against an original authorization."},digital_wallet_processing:{$id:"#/GATEWAY/auth_configuration/digital_wallet_processing",type:"string",description:"The processing location of digital wallet payments.",enum:["CLIENT","SERVER"]},requires_payment_customer:{$id:"#/GATEWAY/auth_configuration/requires_payment_customer",type:"boolean",description:"Whether customer-initiated authorizations require payment customer context."},payment_type_overrides:{$id:"#/GATEWAY/auth_configuration/payment_type_overrides",type:"object",description:"Overrides for auth configuration based on payment type.",patternProperties:{[x]:{type:"object",properties:{allow_increment:{type:"boolean"},allow_refund:{type:"boolean"}},additionalProperties:false}}}}},capture_configuration:{$id:"#/GATEWAY/capture_configuration",type:"object",description:"Capture configuration for the gateway.",required:["method","schedule","over_capture_configuration"],properties:{method:d({$id:"#/GATEWAY/capture_configuration/method"},I),card_present_capture:d({$id:"#/GATEWAY/capture_configuration/card_present_capture"},C),schedule:{$id:"#/GATEWAY/capture_configuration/schedule",type:"object",required:["tipped_auth_delay_ms","untipped_auth_delay_ms","credit_delay_ms","fiscal_day_delay_ms","backoff"],properties:d(d({},w),{},{payment_type_overrides:{$id:"#/GATEWAY/capture_configuration/schedule/payment_type_overrides",type:"object",description:"Overrides for capture configuration schedules based on payment type.",patternProperties:{[x]:w}}})},over_capture_configuration:{$id:"#/GATEWAY/capture_configuration/over_capture_configuration",type:"object",properties:d(d({},S.properties),{},{payment_type_overrides:{$id:"#/GATEWAY/capture_configuration/over_capture_configuration/payment_type_overrides",type:"object",description:"Overrides for over capture configuration based on payment type.",patternProperties:{[x]:S}}})},payment_type_overrides:{$id:"#/GATEWAY/capture_configuration/payment_type_overrides",type:"object",description:"Overrides for capture configuration based on payment type.",patternProperties:{[x]:{type:"object",properties:{method:I,card_present_capture:C,schedule:{type:"object",properties:w},over_capture_configuration:S},additionalProperties:false}}}}},credit_configuration:{$id:"#/GATEWAY/credit_configuration",type:"object",description:"Credit (open refund) configuration for the gateway.",required:["card_present","card_not_present"],properties:{card_present:{$id:"#/GATEWAY/credit_configuration/card_present",type:"boolean",description:"Whether or not credits can be given via card present interaction."},card_not_present:{$id:"#/GATEWAY/credit_configuration/card_not_present",type:"boolean",description:"Whether or not credits can be given via card not present interaction."}}},payout_configuration:{$id:"#/GATEWAY/payout_configuration",type:"object",description:"Payout configuration for the gateway.",required:["generic","method","schedule"],properties:{generic:{$id:"#/GATEWAY/payout_configuration/generic",type:"boolean",description:"Whether or not payments through a processor on this gateway require a custom payout function."},method:{$id:"#/GATEWAY/payout_configuration/method",type:"string",description:"The type of payout call for the gateway.",enum:["SYNC","ASYNC"]},schedule:{$id:"#/GATEWAY/payout_configuration/schedule",type:"object",required:["backoff"],oneOf:[{required:["delay_ms"]},{required:["delay_time"]}],properties:{backoff:{type:"number"},delay_ms:{description:"The delay in ms after the end of the fiscal day.",type:"number"},delay_time:{type:"object",required:["format","tz","stamp"],properties:{format:{type:"string"},tz:{type:"string"},stamp:{type:"string"}}}}}}},payment_terminal_configuration:{$id:"#/GATEWAY/payment_terminal_configuration",type:"object",description:"Payment terminal configuration for the gateway.",required:["allow_generic_devices","allow_external_paired_devices"],properties:{allow_generic_devices:{description:"Whether or no the gateway allows generic devices to become payment terminal devices.",type:"boolean"},allow_external_paired_devices:{description:"Whether or not the gateway has externally paired payment terminal devices (like a bluetooth card reader).",type:"boolean"}}},allow_webhook_notifications:{$id:"#/GATEWAY/allow_webhook_notifications",type:"boolean",description:"Whether or not a configured processor allows webhook notifications."},has_config_sheet:{$id:"#/GATEWAY/has_config_sheet",type:"boolean",description:"Whether or not a configured processor will have a downloadable config sheet."},presets:{$id:"#/GATEWAY/presets",type:"array",description:"Presets for creatable processors.",minItems:1,items:{$id:"#/GATEWAY/presets/preset",type:"object",required:["name","accrue_balance","processor_type"],properties:{name:{type:"string"},accrue_balance:{type:"boolean"},processor_type:{type:"string",enum:["DEFAULT","NSR"]}}}}},anyOf:[{properties:{setup_type:{enum:["assignable"]},card_type:{enum:["CREDIT"]},payout_configuration:{generic:{enum:[false]}}}},{properties:{setup_type:{enum:["deprecated"]}}},{properties:{setup_type:{enum:["assignable-preconfigured"]},card_type:{enum:["CREDIT"]}}},{properties:{setup_type:{enum:["creatable","configurable"]},card_type:{enum:["GIFT"]},card_field_groups:{items:{fields:{required:["gift_card_number"]}}}},required:["configuration_fields","card_field_groups"]},{properties:{setup_type:{enum:["configurable"]},card_type:{enum:["API"]},card_description:{required:["title","description"]}},required:["configuration_fields","card_field_groups"]},{properties:{setup_type:{enum:["configurable"]},card_type:{enum:["API"]},card_field_groups:{items:{fields:{required:["dynamic"]}}},card_description:{required:["dynamic"]}},required:["configuration_fields","card_field_groups"]},{properties:{setup_type:{enum:["creatable","configurable"]},card_type:{enum:["NONE"]},card_vaulted:{enum:[false]}},required:["configuration_fields"]},{properties:{setup_type:{enum:["creatable"]},card_type:{enum:["HYBRID"]},card_field_groups:{items:{fields:{required:["gift_card_number"]}}},card_vaulted:{enum:[false]}},required:["configuration_fields"]}],additionalProperties:false}}};const R=m.compile(O);const G={first_name:true,last_name:true,card_number:true,month:true,year:true,cvc:true,zip:true,email:true};const N={allow_increment:false};const P={method:"NONE",schedule:{tipped_auth_delay_ms:5e3,untipped_auth_delay_ms:5e3,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5},over_capture_configuration:{percent:0}};const $={card_present:false,card_not_present:false};const D={generic:true,method:"SYNC",schedule:{delay_ms:b/2,backoff:b/4}};const q=Object.keys(T.card_fields.properties).filter(e=>e!=="dynamic");const Y={description:"Enable payments through the Paysafe gateway.",setup_type:"deprecated",card_type:"CREDIT",card_vaulted:true,card_field_groups:[{fields:G}
1],validation_requirements:{processor_token:true,vgs_tokens:false},minimum_payment_amount:50,auth_configuration:{allow_increment:false,digital_wallet_processing:"SERVER"},capture_configuration:{method:"SYNC",card_present_capture:"AUTOMATIC",schedule:{tipped_auth_delay_ms:b*5,untipped_auth_delay_ms:b*5,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5},over_capture_configuration:{percent:0}},credit_configuration:{card_present:false,card_not_present:true},payout_configuration:{generic:false,method:"SYNC",schedule:{delay_time:{format:"hh:mm A Z",tz:"America/New_York",stamp:"4:05 PM"},backoff:b/12}},payment_terminal_configuration:{allow_generic_devices:false,allow_external_paired_devices:false}};const W={description:"Enable payments through the Stripe gateway.",setup_type:"assignable",card_type:"CREDIT",card_vaulted:true,card_field_groups:[{fields:G}],validation_requirements:{processor_token:true,vgs_tokens:false},minimum_payment_amount:50,auth_configuration:{allow_increment:false,digital_wallet_processing:"SERVER"},capture_configuration:{method:"SYNC",schedule:{tipped_auth_delay_ms:b*5,untipped_auth_delay_ms:b*5,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5},over_capture_configuration:{percent:0}},credit_configuration:{card_present:false,card_not_present:false},payout_configuration:{generic:false,method:"SYNC",schedule:{delay_ms:b/2,backoff:b/4}}};const j={description:"Enable payments through the Adyen gateway.",setup_type:"assignable",card_type:"CREDIT",card_vaulted:true,card_field_groups:[{fields:G}],validation_requirements:{processor_token:true,vgs_tokens:false},minimum_payment_amount:50,auth_configuration:{allow_increment:true,allow_refund:true,digital_wallet_processing:"CLIENT",requires_payment_customer:true,payment_type_overrides:{EFTPOS:{allow_increment:false},INTERAC:{allow_increment:false,allow_refund:false},MAESTRO:{allow_increment:false}}},capture_configuration:{method:"ASYNC",card_present_capture:"MANUAL",schedule:{tipped_auth_delay_ms:b*5,untipped_auth_delay_ms:b*24,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5,payment_type_overrides:{MAESTRO:{tipped_auth_delay_ms:b*24,untipped_auth_delay_ms:b*24}}},over_capture_configuration:{percent:1,payment_type_overrides:{AMEX:{percent:.3},VISA:{percent:.2},MASTERCARD:{percent:.3},DISCOVER:{percent:.2},MAESTRO:{percent:0}}},payment_type_overrides:{EFTPOS:{method:"ASYNC",schedule:{tipped_auth_delay_ms:E,untipped_auth_delay_ms:E,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5},over_capture_configuration:{percent:0}},INTERAC:{method:"ASYNC",schedule:{tipped_auth_delay_ms:E,untipped_auth_delay_ms:E,credit_delay_ms:0,fiscal_day_delay_ms:0,backoff:h*5},over_capture_configuration:{percent:0}}}},credit_configuration:{card_present:true,card_not_present:false},payout_configuration:{generic:false,method:"ASYNC",schedule:{delay_time:{format:"hh:mm A Z",tz:"local",stamp:"6:30 AM"},backoff:b/4}},payment_terminal_configuration:{allow_generic_devices:true,allow_external_paired_devices:true,standalone_device_types:["S1F2","S1F4PRO","AMS1","P630","SFO1"]},allow_webhook_notifications:true};const M={description:"Enable payments through Omnivore as a gateway.",setup_type:"assignable-preconfigured",card_type:"CREDIT",card_vaulted:false,card_field_groups:[{fields:G}],validation_requirements:{processor_token:false,vgs_tokens:true},minimum_payment_amount:50,auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const z={description:"Gift card programs/Non-sales revenue.",setup_type:"creatable",card_type:"HYBRID",card_vaulted:false,validation_requirements:{processor_token:false,vgs_tokens:false},card_field_groups:[{fields:{gift_card_number:{min_length:5,max_length:22,character_set:"alphanumeric",nfc_enabled:true,qr_enabled:true},gift_card_pin:{required:false,min_length:4,max_length:8,character_set:"numeric"}}}],configuration_fields:[{special_field:true,field:"processor_type",title:"Processor Type",type:"text"},{special_field:true,field:"product_uuid",title:"Product",type:"text"},{special_field:true,field:"pin_threshold_amount",title:"PIN threshold amount"},{special_field:true,field:"sequence_accounts",title:"Enable Sequenced Account Generation"},{special_field:true,field:"scheduled_gift_cards",title:"Enable Scheduled Gift Cards"},{special_field:true,field:"use_for_ecommerce_gc",title:"Use for eCommerce Gift Cards"},{special_field:true,field:"show_individual_method",title:"Show as payment method on POS"},{special_field:true,field:"hide_tip_prompt",title:"Hide tip prompt"}],auth_configuration:N,capture_configuration:P,credit_configuration:{card_present:true,card_not_present:true},payout_configuration:D,presets:[{key:"gift_card",name:"Gift Card",accrue_balance:false,processor_type:"DEFAULT"},{key:"nsr",name:"Non-sales Revenue (Deposit)",accrue_balance:false,processor_type:"NSR"}]};const L={description:"House accounts/cash",setup_type:"creatable",card_type:"NONE",card_vaulted:false,validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{special_field:true,field:"accrue_balance",title:"Accrue Balance"},{special_field:true,field:"require_reconciliation",title:"Require Reconciliation"},{special_field:true,field:"processor_fund_holder",title:"Fund Holder"}],auth_configuration:N,capture_configuration:P,credit_configuration:{card_present:true,card_not_present:true},payout_configuration:D,presets:[{key:"cash",name:"Cash",accrue_balance:true,processor_type:"DEFAULT",require_reconciliation:false,processor_fund_holder:"USER"},{key:"house_account",name:"House Account",accrue_balance:true,processor_type:"DEFAULT",processor_fund_holder:"LOCATION"}]};const F={description:"Enable payments using Valutec gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,validation_requirements:{processor_token:true,vgs_tokens:false},card_field_groups:[{fields:{gift_card_number:{min_length:14,max_length:19,character_set:"numeric",composite_pin_character:"="},gift_card_pin:{required:false,min_length:6,max_length:8,character_set:"numeric"}}}],configuration_fields:[{field:"client_key",title:"Client Key",type:"text",validation_regex:y},{field:"vendor_terminal_id",title:"Vendor Terminal ID",type:"text",validation_regex:y},{field:"location_terminal_id",title:"Location Terminal ID",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const U={description:"Enable payments using Givex gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:6,max_length:22,character_set:"numeric"},gift_card_pin:{required:false,min_length:4,max_length:6,character_set:"numeric"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"user_id",title:"User ID",type:"text",validation_regex:y},{field:"password",title:"Password",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const V={description:"Enable payments using STS gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:6,max_length:22,character_set:"numeric",qr_enabled:true}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"merchant_id",title:"Merchant Number",type:"text",validation_regex:y},{field:"terminal_id",title:"Terminal ID",type:"text",validation_regex:y},{field:"api_key",title:"API Key",type:"text",validation_regex:y},{field:"debug_mode",title:"Debug Mode",description:"Enable debug mode to generate extra logs from requests to STS.",type:"boolean"}
1,{special_field:true,field:"product_uuid",title:"Product",type:"text"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const H={description:"Enable payments using Factor4 gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:1,max_length:25,character_set:"numeric"},gift_card_pin:{required:false,min_length:4,max_length:8,character_set:"numeric"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"username",title:"Username",type:"text",validation_regex:y},{field:"password",title:"Password",type:"text",validation_regex:y},{field:"client_id",title:"Client ID",type:"text",validation_regex:y},{field:"location_id",title:"Location ID",type:"text",validation_regex:y},{field:"terminal_id",title:"Terminal ID",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const B={description:"Enable balance lookup and reload using InterCard.",setup_type:"configurable",card_type:"GIFT",bypass_vgs:true,card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:16,max_length:16,character_set:"numeric",nfc_enabled:true,nfc_button_text:"Swipe Card",nfc_read_options:{action_type:"swipe",card_type:"magstripe",hide_input:true}
1,nfc_read_length:20,nfc_read_slice:-16,sanitize_regex:"\\D"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"api_url",title:"API URL",type:"text",validation_regex:y},{field:"client_token",title:"Client Token",type:"text",validation_regex:y},{field:"product_code",title:"Product Code",type:"text",validation_regex:y},{field:"mac_address",title:"MAC Address",type:"text",validation_regex:y},{field:"loc_id",title:"Location ID",type:"text",validation_regex:y},{special_field:true,field:"product_uuid",title:"Product",type:"text"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const X={description:"Enable payments using Stadis gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:13,max_length:15,character_set:"numeric"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"user_id",title:"User ID",type:"text",validation_regex:y},{field:"password",title:"Password",type:"text",validation_regex:y},{field:"vendor_id",title:"Vendor ID",type:"text",validation_regex:y},{field:"site_id",title:"Site ID",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const J={description:"Enable payments using GiftLocal gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:12,max_length:12,character_set:"numeric"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"auth_token",title:"Authorization Token",type:"text",validation_regex:y},{field:"organization_id",title:"Organization ID",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const K={description:"Enable payments using inKind gift cards.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[],validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const Q={description:"Enable payments from an API integration.",setup_type:"singleton",card_type:"NONE",card_vaulted:false,validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{special_field:true,field:"processor_type",title:"Processor Type",type:"text"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const Z={description:"Enable payments using StayNTouch PMS.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{title:"Guest Room",fields:{last_name:true,room_number:true}},{title:"Posting Account",acl:"server",fields:{account_number:true}}
1],card_description:{title:"Reservation Lookup",description:"Enter your last name and room number to confirm your reservation."},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"client_id",title:"Client ID",type:"text",validation_regex:y},{field:"client_secret",title:"Client Secret",type:"text",validation_regex:y},{field:"hotel_id",title:"Hotel ID",type:"text",validation_regex:"^\\d+$"},{field:"payment_charge_code_id",title:"Payment Charge Code ID",type:"text",validation_regex:"^\\d+$"},{field:"tip_charge_code_id",title:"Tip Charge Code ID",type:"text",validation_regex:"^\\d+$"},{field:"region",title:"Region",type:"text",options:["NOVA","US","EU"],select_minimum:1,select_maximum:1}],auth_configuration:N,capture_configuration:P,payout_configuration:D};const ee={description:"Enable payments using Infor PMS.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{title:"Guest Room",fields:{last_name:true,room_number:true}},{title:"Folio ID",acl:"server",fields:{account_number:true}}
1],card_search_configuration:{acl:"server",fields:[{property:"last_name",display:"Last Name"},{property:"room_number",display:"Room Number"},{property:"account_number",display:"Folio ID"}]},card_description:{title:"Reservation Lookup",description:"Enter your last name and room number to confirm your reservation."},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"user_id",title:"User ID",type:"text",validation_regex:y},{field:"password",title:"Password",type:"text",validation_regex:y},{field:"tenant_identifier",title:"Tenant Identifier",type:"text",validation_regex:y},{field:"property_identifier",title:"Property Identifier",type:"text",validation_regex:"^.{1,6}$"},{field:"service_period",title:"Service Period",type:"text",validation_regex:"^\\d+$"},{field:"revenue_center",title:"Revenue Center",type:"text",validation_regex:"^\\d+$"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D,has_config_sheet:true};const te={description:"Enable payments using Agent tender types.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{fields:{dynamic:true}}],card_description:{dynamic:true},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"agent",title:"Agent",type:"text",options:["OMNIVORE"],select_minimum:1,select_maximum:1},{field:"tender_id",title:"Tender Identifier",type:"text"},{field:"export_payment",title:"Export Payment",type:"boolean"},{field:"card_fields",title:"Card Fields",type:"text",options:q,select_minimum:1},{field:"card_description_title",title:"Card Description Title",type:"text"},{field:"card_description",title:"Card Description",type:"text"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const re={description:"Enable payments using Mews PMS.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{fields:{last_name:true,room_number:true}}
1],card_search_configuration:{acl:"server",fields:[{property:"last_name",display:"First or Last Name"},{property:"room_number",display:"Room Number"}]},card_description:{title:"Reservation Lookup",description:"Enter your full name to confirm your reservation."},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"access_token",title:"AccessToken",type:"text",validation_regex:y},{field:"tip_accounting_category_id",title:"AccountingCategoryId for Tips",type:"text"}],auth_configuration:N,capture_configuration:P,payout_configuration:D,has_config_sheet:false};const ie={description:"Enable payments using Oracle Hospitality PMS.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{fields:{room_number:true,last_name:true}}],card_search_configuration:{acl:"server",fields:[{property:"last_name",display:""},{property:"room_number",display:""}]},card_description:{title:"Reservation Lookup",description:"Enter your reservation number / ID to confirm your reservation."},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"application_key",title:"Application Key",type:"text",validation_regex:y},{field:"site_id",title:"Hotel ID",type:"text",validation_regex:y},{field:"client_id",title:"Client ID",type:"text",validation_regex:y},{field:"username",title:"Account Username",type:"text",validation_regex:y},{field:"client_secret",title:"Client Secret",type:"password",validation_regex:y},{field:"password",title:"Account Password",type:"password",validation_regex:y},{field:"payment_charge_code_id",title:"Charge Transaction Code",type:"text",validation_regex:"^\\d+$"},{field:"adjustment_charge_code_id",title:"Adjustment Transaction Code",type:"text",validation_regex:"^\\d+$"},{field:"gateway_url",title:"Gateway URL",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,payout_configuration:D};const ne={description:"Enable payments using Court Reserve.",setup_type:"configurable",card_type:"API",card_vaulted:false,card_field_groups:[{fields:{last_name:true,customer_pin:true}}],card_search_configuration:{acl:"server",fields:[{property:"last_name",display:"Last Name"},{property:"customer_pin",display:"Member #"}]},card_description:{title:"Member PIN Entry",description:"Enter your member PIN to pay with Court Reserve."},validation_requirements:{processor_token:false,vgs_tokens:false},configuration_fields:[{field:"username",title:"Client Username",type:"text",validation_regex:y},{field:"password",title:"Client Password",type:"text",validation_regex:y}],auth_configuration:N,capture_configuration:P,payout_configuration:D,has_config_sheet:false};const ae={description:"Enable payments using CLUTCH gift cards.",setup_type:"configurable",card_type:"GIFT",card_vaulted:false,card_field_groups:[{fields:{gift_card_number:{min_length:8,max_length:25,character_set:"alphanumeric",qr_enabled:true},gift_card_pin:{required:false,min_length:4,max_length:6,character_set:"alphanumeric"}}}],validation_requirements:{processor_token:true,vgs_tokens:false},configuration_fields:[{field:"api_key",title:"API Key",type:"text",validation_regex:y},{field:"api_secret",title:"API Secret",type:"text",validation_regex:y},{field:"location_id",title:"Location ID",type:"text",validation_regex:y},{field:"terminal_id",title:"Terminal ID",type:"text",validation_regex:y},{field:"brand_id",title:"Brand ID",type:"text",validation_regex:y},{field:"card_set_id",title:"Card Set ID",description:"The Card Set ID to use when selling or redeeming digital gift cards.",type:"text",validation_regex:y},{field:"promo_card_set_id",title:"Promo Card Set ID",description:"The Card Set ID to use when issuing promotional gift cards.",type:"text",validation_regex:y},{field:"debug_mode",title:"Debug Mode",description:"Enable debug mode to test transactions in the Clutch staging environment.",type:"boolean"},{special_field:true,field:"product_uuid",title:"Product",type:"text"},{special_field:true,field:"scheduled_gift_cards",title:"Enable Scheduled Gift Cards"}],auth_configuration:N,capture_configuration:P,credit_configuration:$,payout_configuration:D};const oe={PAYSAFE:Y,STRIPE:W,ADYEN:j,OMNIVORE:M,INTERNAL:z,EXTERNAL:L,VALUTEC:F,GIVEX:U,STS:V,FACTOR4:H,INTERCARD:B,STADIS:X,GIFTLOCAL:J,INKIND:K,STAYNTOUCH:Z,INFOR:ee,REAGENT:te,API_INTEGRATION:Q,MEWS:re,COURTRESERVE:ne,OHIP:ie,CLUTCH:ae};const se=R(oe);if(!se||R.errors){throw new Error(`Invalid gateway schema configurations.\nErrors: ${JSON.stringify(R.errors)}`)}const{assignable:le,configurable:ce,creatable:de,credit:ue,gift:_e,api:pe,hybrid:fe,generic_payout:ge,card_field_groups:me,card_search_fields:ye,card_descriptions:he,presets:be}=Object.entries(oe).reduce((e,[t,r])=>{var i;const{setup_type:n,card_type:a,card_field_groups:o,card_description:s,card_search_configuration:l,payout_configuration:c,presets:d}=r;if(e[n]){e[n].push(t)}if(c.generic){e.generic_payout.push(t)}
1if(a==="CREDIT"){e.credit.push(t);if(e.card_field_groups[a]==null){e.card_field_groups[a]={card_type:a,card_field_groups:o}}}else if(a==="GIFT"){e.card_field_groups[t]={card_type:a,card_field_groups:o};e.gift.push(t)}else if(a==="API"){e.card_field_groups[t]={card_type:a,card_field_groups:o};e.api.push(t)}else if(a==="HYBRID"){e.card_field_groups[t]={card_type:a,card_field_groups:o};e.hybrid.push(t)}e.card_descriptions[t]=s;if(l!==null&&l!==void 0&&(i=l.fields)!==null&&i!==void 0&&i.length){e.card_search_fields[t]=l.fields}e.presets[t]=d;return e},{assignable:[],configurable:[],creatable:[],credit:[],gift:[],api:[],hybrid:[],generic_payout:[],card_field_groups:{},card_descriptions:{},card_search_fields:{},presets:{}});const ve=(e,t,r)=>{if(r==="EQ"){return e===t}else if(r==="IN"){return t.includes(e)}return false};function Ae(e,t,r){if(e==="INTERNAL"){const e=[{restriction_property:"payment_method_uuid",parameter_property:"payment_method_uuids",operator:"IN"},{restriction_property:"tab_uuid",parameter_property:"tab_uuid",operator:"EQ"}];return e.every(e=>{const i=t===null||t===void 0?void 0:t[e.restriction_property];const n=r===null||r===void 0?void 0:r[e.parameter_property];return i==null||ve(i,n,e.operator)})}return true}function Ee(e,t,r){if(!Number.isFinite(r)||r<=0||t<=0){return 0}const i=Math.min(Math.floor(r),t);if(i<=0){return 0}return f(e).result()%i}function xe({gateway:e,payment_type:t}){const r=oe[e],{capture_configuration:{payment_type_overrides:i,schedule:{payment_type_overrides:a},over_capture_configuration:{payment_type_overrides:c}}}=r,u=(0,n.default)(r.capture_configuration.schedule,l),_=(0,n.default)(r.capture_configuration.over_capture_configuration,o),p=(0,n.default)(r.capture_configuration,s);const f=g(t);const m=f?i===null||i===void 0?void 0:i[f]:undefined;const y=f?a===null||a===void 0?void 0:a[f]:undefined;const h=f?c===null||c===void 0?void 0:c[f]:undefined;return d(d(d({},p),m),{},{schedule:d(d(d({},u),y),m===null||m===void 0?void 0:m.schedule),over_capture_configuration:d(d(d({},_),h),m===null||m===void 0?void 0:m.over_capture_configuration)})}function Te({gateway:e,transfer_mode:t,payment_type:r,payment_has_tip:i=false,payment_has_required_metadata:n=false,fiscal_day_end:a,payment_id:o,capture_cap_backspread_ms:s}){const{schedule:{tipped_auth_delay_ms:l,untipped_auth_delay_ms:c,credit_delay_ms:d,fiscal_day_delay_ms:_}}=xe({gateway:e,payment_type:r});const p=i&&n?l:c;const f=u();const g=f.clone().add(t==="CREDIT"?d:p,"ms");const m=u(a).add(_,"ms");const y=u.min(g,m).valueOf()-f.valueOf();const h=m.valueOf()<=g.valueOf();if(h&&o){return y-Ee(o,y,s)}return y}function we({gateway:e,payment_type:t}){var r,i,n;const a=oe[e].auth_configuration;const o=g(t);return(r=(i=a.payment_type_overrides)===null||i===void 0?void 0:(n=i[o])===null||n===void 0?void 0:n.allow_increment)!==null&&r!==void 0?r:a.allow_increment}function Se({gateway:e,payment_type:t}){var r,i,n,a;const o=oe[e].auth_configuration;const s=g(t);return(r=(i=(n=o.payment_type_overrides)===null||n===void 0?void 0:(a=n[s])===null||a===void 0?void 0:a.allow_refund)!==null&&i!==void 0?i:o.allow_refund)!==null&&r!==void 0?r:true}e.exports={GATEWAY_REQUIREMENTS:oe,GATEWAY_PRESETS:be,ASSIGNABLE_GATEWAYS:le,CONFIGURABLE_GATEWAYS:ce,CREATABLE_GATEWAYS:de,CREDIT_GATEWAYS:ue,GIFT_GATEWAYS:_e,API_GATEWAYS:pe,HYBRID_GATEWAYS:fe,GENERIC_PAYOUT_GATEWAYS:ge,CARD_FIELD_GROUPS:me,CARD_FIELD_OPTIONS:q,CARD_DESCRIPTIONS:he,CARD_SEARCH_FIELDS:ye,validateRestrictions:Ae,getCaptureConfiguration:xe,calculateCaptureDelay:Te,isAuthIncrementAllowed:we,isRefundAllowed:Se}}).call(this,r(65))},798:function(e,t,r){"use strict";var i=r(0);Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=r(5);var a=i(r(799));var o=i(r(85));r(822);var s=i(r(393));var l=i(r(10));var c=i(r(15));var d=i(r(381));var u=i(r(66));var _=i(r(770));var p=i(r(400));var f=i(r(56));var g=i(r(136));var m=i(r(105));var y=i(r(12));var h=i(r(306));var b=i(r(83));var v=i(r(717));var A=i(r(74));var E=i(r(748));var x=i(r(762));var T=i(r(776));var w=i(r(823));var S=i(r(6));var I=r(3);var C=i(r(4));const k="uKYJ09VN",O=(0,n.t)(k);var R=t.default=O;(0,I.r)(k,()=>O);const G=w.default;O._=(0,S.default)(function(e,t,i,n,w){var S,I;const C=o.default.get(t.global);const k=e.server_context&&e.server_context.pos_display_id;const O=e.parent_location&&e.parent_location.url_name!==e.location.url_name&&e.parent_location.name;let R;if(O){R=n.constructOrderURL({location_url_name:e.parent_location.url_name,spot_url_name:e.spot_url||undefined})}(0,l.default)(s.default,{},t,i,"0");function G(t,{}){var r,a;const[o,s]=w.is_hamburger_menu_active?["text-primary","border border-primary"]:["text-white","bg-primary"];t.be("span",{id:"long-press-id","data-long-press-delay":"2000",class:(0,c.default)([e.hideProfile?"d-none":"d-flex","cursor-pointer align-items-center justify-content-center",(r=w.open_tabs)!==null&&r!==void 0&&r.length?"py-2 px-3 rounded-pill":"square-2 roun
1ded-circle",s])},"2",n,null,0,{onclick:i.d("click","toggleHamburgerMenu",false)});t.e("i",{class:(0,c.default)(["fas fa-user",o])},"3",n,0,1);if((a=w.open_tabs)!==null&&a!==void 0&&a.length){t.e("i",{class:(0,c.default)(["ml-2 fas fa-qrcode",o])},"4",n,0,1)}t.ee()}(0,l.default)(u.default,{id:"quick-spot-selection-modal",class:"fade",no_footer:true,size:"modal-sm",modal_body_class:"p-0",header:{renderBody:e=>{e.be("h5",{class:"mb-0 font-weight-bold"},"5",n,null,1);e.t("Quick Spot Selection",n);e.ee()}},body:{renderBody:e=>{e.be("div",{class:"card-body p-1"},"6",n,null,1);(0,l.default)(d.default,{},e,i,"7",[["keyup","filterSpot",false]]);if(w.filtered_spots&&w.filtered_spots.length){e.be("ul",{class:"list-group list-group-flush"},"8",n,null,1);{let t=0;for(const r of w.filtered_spots){const a=`[${t++}]`;const o=w.server_config&&w.server_config.quickSpot&&w.server_config.quickSpot.name===r.name;e.be("li",{class:(0,c.default)(["cursor-pointer list-group-item border-0 d-flex align-items-center rounded",{"bg-primary-light":o}])}
1,"9"+a,n,null,1,{onclick:i.d("click","setQuickServeSpot",false,[r])});e.be("span",{class:"text-primary mr-2"},"10"+a,n,null,1);e.e("i",{class:(0,c.default)([o?"far fa-dot-circle":"far fa-circle"])},"11"+a,n,0,1);e.ee();e.be("span",{class:(0,c.default)([{"font-weight-bold":o}])},"12"+a,n,null,1);e.t(r.name,n);e.ee();e.ee()}}e.ee()}e.ee()}}},t,i,"@quick-spot-selection-modal");(0,l.default)(_.default,{},t,i,"13");(0,l.default)(p.default,{},t,i,"14");if(k&&!e.is_pin_template){var N,P;(0,l.default)(a.default,{pin_timeout_ms:(N=e.server_context)===null||N===void 0?void 0:(P=N.pos_configs)===null||P===void 0?void 0:P.pin_timeout_ms},t,i,"@pos-pin-input")}if(!e.hide_header){if(w.mounted){t.be("div",{id:"wrapper-header",class:(0,c.default)([t.global.isLiteMode?"d-none":"d-flex","header align-items-center row px-3 py-2",e.floatHeader?"bg-transparent position-absolute w-100":"position-relative",e.body&&e.body.class||{"bg-light transition-colors duration-300 shadow-sm":!e.floatHeader,"bg-body":w.is_hamburger_menu_active}])},"15",n,null,1);{let a;let o;if(e.location){a=e.location.name;o=e.location_url_name||e.location.url_name}else if(e.tab){a=e.tab.location_name;o=e.tab.url_name}const s=a!=null&&o!=null;if(s){const r=e=>`${(e||"").length>10?"h5":"h4"} mb-0`;const s="lg";t.be("div",{class:"col mx-0 px-0"},"16",n,null,1);t.be("div",{class:"d-flex align-items-center justify-content-between"},"17",n,null,1);t.be("div",{class:"d-flex align-items-center maxw-90"},"18",n,null,1);t.be("div",null,"19",n,null,0);{const s=e.zone&&e.zone.asap_ordering_enabled||e.tab&&e.tab.scheduled&&e.tab.scheduled_str;const d=e.tab&&e.tab.spot_name;const u=!e.hide_selection_header&&(d||s);if(u||e.read_only){t.be("div",{class:"d-flex align-items-center"},"20",n,null,1);t.be("div",{class:"text-secondary"},"21",n,null,1);(0,l.default)(f.default,{as:"span",size:"lg",weight:"bold",class:"text-primary",renderBody:e=>{e.t(a,n)}},t,i,"22");if(d&&e.tab.zone_minimum_order_subtotal&&Number(e.tab.zone_minimum_order_subtotal)>0){t.be("span",{class:"mx-1"},"23",n,null,1);t.t("-",n);t.ee();t.be("span",{class:"text-nowrap"},"24",n,null,1);t.t("Order Minimum: ",n);(0,l.default)(g.default,{value:e.tab.zone_minimum_order_subtotal},t,i,"25");t.ee()}t.ee();(0,l.default)(m.default,{renderBody:e=>{var t,r;if(C!==null&&C!==void 0&&(t=C.notices)!==null&&t!==void 0&&(r=t.notices)!==null&&r!==void 0&&r.length){e.be("div",{class:"text-primary ml-2 cursor-pointer px-2"},"27",n,null,1,{onclick:i.d("click","toggleShowNoticesTrue",false)});e.e("i",{class:"fa fa-info-circle fa-sm","aria-hidden":"true"},"28",n,0,0);e.ee()}}},t,i,"26");t.ee()}else{t.be("div",{class:"d-flex align-items-center"},"29",n,null,1);{if(O){t.be("a",{class:(0,c.default)(`font-weight-bold ${r(a)}`),href:`${R}${e.query_string||""}`},"30",n,null,0);t.t(e.parent_location.name,n);t.ee();t.be("span",{class:"mx-2 text-secondary"},"31",n,null,1);t.e("i",{class:"fal fa-long-arrow-right"},"32",n,0,1);t.ee()}const s=n.constructOrderURL({location_url_name:o,spot_url_name:e.spot_url||undefined,tab_uuid:e.tab&&e.tab.status!=="CLOSED"?e.tab.tab_uuid:undefined});t.be("a",{id:"location-header",class:(0,c.default)(`font-weight-bold ${r(a)}`),href:`${s}${e.query_string||""}`},"33",n,null,0);t.t(a,n);t.ee();(0,l.default)(m.default,{renderBody:e=>{var t,r;if(C!==null&&C!==void 0&&(t=C.notices)!==null&&t!==void 0&&(r=t.notices)!==null&&r!==void 0&&r.length){e.be("div",{class:"text-primary ml-2 cursor-pointer px-2"},"35",n,null,1,{onclick:i.d("click","toggleShowNoticesTrue",false)});e.e("i",{class:"fa fa-info-circle fa-sm","aria-hidden":"true"},"36",n,0,0);e.ee()}}},t,i,"34")}t.ee();if(e.zone_select){t.be("div",{class:"text-dark font-weight-bold"},"37",n,null,1);t.t("Spot Selection",n);t.ee()}if(e.menu_select){t.be("div",{class:"text-dark font-weight-bold"},"38",n,null,1);t.t("Menu Selection",n);t.ee()}}}t.ee();t.ee();t.be("div",{class:"d-flex d-lg-none align-items-center"},"39",n,null,1);(0,y.default)(t,G,null,null,null,null,i,"40");t.ee();t.ee();t.ee();t.be("div",{class:"d-none d-lg-flex ml-lg-auto align-items-center"},"41",n,null,1);(0,y.default)(t,G,null,null,null,null,i,"42");t.ee()}else{t.e("div",{class:"col-3"},"43",n,0,1);t.t(" ",n);t.be("div",{class:"col-6 d-flex align-items-center justify-content-center"},"44",n,null,1);(0,l.default)(b.default,{n:true,renderBody:t=>{t.be("a",{href:"/",title:"GoTab (Home)"},"45",n,null,0);(0,l.default)(h.default,{src:r(775),class:["svg",e.floatHeader?"svg-white":"svg-primary"],height:"39",alt:"GoTab"},t,i,"46");
1t.ee()}},t,i,"45");t.ee();t.be("div",{class:"col-3 d-flex align-items-center justify-content-end pr-0"},"47",n,null,1);(0,y.default)(t,G,null,null,null,null,i,"48");t.ee()}t.be("div",{id:"hamburger-menu-overlay",class:(0,c.default)(["hamburger-menu-overlay position-absolute overflow-hidden left-0 right-0 top-full d-flex flex-column bg z-index-2000",w.is_hamburger_menu_active?"h-screen":"h-0"]),style:(0,A.default)({height:w.is_hamburger_menu_active?`calc(100vh - ${document.querySelector("#wrapper-header").offsetHeight}px)`:0})},"49",n,null,1);t.be("div",{class:"overflow-y-auto h-100"},"50",n,null,1);if(w.is_hamburger_menu_active){(0,l.default)(v.default,e,t,i,"51")}t.ee();t.ee()}t.ee()}}else{}if(e.brandingVendor){t.be("div",{class:"container"},"52",n,null,1);(0,y.default)(t,e.brandingVendor,null,null,null,null,i,"53");t.ee()}(0,l.default)(E.default,{urlName:(S=e.location)===null||S===void 0?void 0:S.url_name},t,i,"54");(0,y.default)(t,e.buttonGetStarted,null,null,null,null,i,"55");(0,y.default)(t,e.body,null,null,null,null,i,"56");(0,l.default)(x.default,{gdpr_agreed:e.gdpr_agreed,location:e.location,cust_verified:e.cust_verified},t,i,"57");const $=e.payment_terminal_device_name&&!e.authenticating&&!e.is_pin_template&&(!e.cust_verified||((I=w.customer_profile)===null||I===void 0?void 0:I.payment_terminal)==null);if($){t.be("div",{class:"fixed-bottom bg-transparent-black text-light z-index-1075 h-100"},"58",n,null,1);t.be("div",{class:"container d-flex flex-column align-items-center justify-content-center h-100"},"59",n,null,1);t.be("h3",{class:"mb-4"},"60",n,null,1);t.t("GoTab Payment Terminal",n);t.ee();t.be("div",{class:"mb-4"},"61",n,null,1);t.t("Please press the button below and sign in with your GoTab Manager's phone number.",n);t.ee();t.be("a",{class:"btn btn-lg btn-primary w-100",href:"/manager/payment-terminals"},"62",n,null,0);t.t("Setup Payment Terminal",n);t.ee();t.ee();t.ee()}if(!e.hide_footer){(0,l.default)(T.default,{class:"footer",hidden:w.is_hamburger_menu_active},t,i,"63")}},{t:k},G);O.Component=(0,C.default)(G,O._)},822:function(e,t,r){},823:function(e,t,r){"use strict";(function(t){var i=r(0);var n=i(r(7));var a=i(r(8));function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(t){(0,a.default)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}const l=r(52);const c=r(313);if(typeof window!=="undefined"){Object.values=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})};Object.entries=Object.entries||function(e){return Object.keys(e).map(function(t){return[t,e[t]]})};r(793)}const{ServiceManager:d}=r(104);const u=r(986);const _=r(410);const p=r(31);const{PHONE_AGENT_REGEX:f,IOS_AGENT_REGEX:g}=r(39);const{constructOrderURL:m}=r(25);const y=r(85);const h=(e,t)=>(e||[]).reduce((e,r)=>{if(r.zones){e.push(...r.zones.reduce((e,r)=>{e.push(...t?r.spots.filter(e=>e.name.toLowerCase().includes(t)):r.spots);return e},[]))}return e},[]);e.exports=class{onCreate(e,t){d.init(e,t);this.stores=y.get(t.global);this.constructOrderURL=m;this.NODE_ENV=t.global.NODE_ENV;this.global=t.global;const{zone:r,zone_groups:i=[],zone_group_id:n}=e;const a=n&&i.find(e=>e.zone_group_id===n)||i[0];this.stores.zoneStore.init(r,i);this.state={zone_group:a,share_link_href:null,is_hamburger_menu_active:false,share_info:null,customer_profile:null,recent_locations:null,customer_initials:null,open_tabs:[],server_config:null,filtered_spots:h(e.zone_groups),device_characteristics:"",show_notice:false,mounted:false}}onMount(){u.initWrapper();_.initWrapper();if(this.input.legacyRun){Object.entries(this.input.legacyRun).forEach(([e,t])=>{_[e](...t)})}this.pos_pin_input=this.getComponent("pos-pin-input");l.remove("first_session");const e=this.loadCustomerProfile();this.global.customer_profile=e;this.loadShareInfo();this.getOpenTabs();this.state.mounted=true}prepareInputs(){const e=this.getComponent("order-updater");if(e){e.prepareInputs([this.getComponent("spot-select")])}}changeOrderType(e){var t,r;const i=(t=this.stores.zoneStore)!==null&&t!==void 0&&(r=t.zoneGroups)!==null&&r!==void 0&&r.length?this.stores.zoneStore.zoneGroups.map(e=>s(s({},e),{},{zones:e.zones.map(e=>s({},e))})):this.input.zone_groups||[];if(e.is_active){const t=i.find(t=>t.zone_group_id===e.value);this.setState({zone_group:t});this.forceUpdate();this.update()}}loadCustomerProfile(){var e=this;return(0,n.default)(function*(){if(e.state.customer_profile==null){try{const t=yield p.get("/api/customers");const r=yield t.json();e.state.customer_profile=r;const{name:i}=r;if(i){const t=i.split(" ");let r=t[0][0];if(t.length>1){r+=t[t.length-1][0]}e.state.customer_initials=r.toUpperCase()}}catch(e){console.error(`Error retrieving customer profile: ${e.toString()}`,e)}}return e.state.customer_profile})()}loadShareInfo(){var e=this;return(0,n.default)(function*(){if(e.input.share_info&&e.input.share_info.link&&e.input.share_info.body&&e.input.share_info.status==null){try{const t=yield p.get(`/.${e.input.share_info.tab_uuid}/status`);const r=yield t.json();if(r==="OPEN"){e.state.share_info=s(s({},e.input.share_info),{},{status:r});
1e.update();c.toCanvas(document.getElementById("share-qr-canvas"),e.input.share_info.link,{color:{dark:"#000",light:"#0000"},scale:3},e=>{if(e){console.log(e)}});const{userAgent:t}=window.navigator;if(t.match(f)){e.state.share_link_href=`sms:${t.match(g)?"&":"?"}body=${encodeURIComponent(e.input.share_info.body)}`}}}catch(e){console.error("Error retrieving tab status:",e)}}})()}loadRecentLocations(){var e=this;return(0,n.default)(function*(){if(e.state.recent_locations==null){try{const t=yield p.get("/recent-locations");let r=yield t.json();if(e.input.location&&e.input.location.name){const t={url_name:e.input.location.url_name,name:e.input.location.name,current:true};const i=r.findIndex(e=>e.url_name===t.url_name);if(i>-1){r.splice(i,1);r.unshift(t)}else{r.unshift(t);r=r.slice(0,5)}}e.state.recent_locations=r}catch(e){console.error("Error retrieving recent locations:",e)}}})()}toggleHamburgerMenu(){this.state.is_hamburger_menu_active=!this.state.is_hamburger_menu_active;if(this.state.is_hamburger_menu_active){this.loadRecentLocations()}t("body").css(this.state.is_hamburger_menu_active?{overflow:"hidden"}:{overflow:""})}onSpotOrScheduledSelect(e,{spot:t}){var r,i;window.location.href=this.input.add_payment_context.redirect_url?`/.${e}`:m({location_url_name:this.input.location_url_name,menu_url_name:(r=this.stores.menuStore.menu)===null||r===void 0?void 0:r.url_name,spot_url_name:t===null||t===void 0?void 0:t.url_name,category_id:(i=this.input.category)===null||i===void 0?void 0:i.category_id,tab_uuid:e,order:true})}switchPOSUser(){if(this.pos_pin_input){this.pos_pin_input.endSession()}}quickOrder(e){var t=this;return(0,n.default)(function*(){try{const r=Math.floor(Math.random()*8999+1e3);const i=`Customer - ${r}`;const n=yield p.post(`/loc/${t.input.location_url_name}/new-tab`,{type:"JSON",body:{spot_id:e.spot_id,tab_name:i,order_name:i}});if(n.ok){const{tab_uuid:r}=n.json;const i=m({location_url_name:t.input.location_url_name,spot_url_name:e?e.url_name:undefined,tab_uuid:r,order:true});window.location.href=i}else{throw new Error("Error creating a new tab with quick order")}}catch(e){console.error(e)}})()}getOpenTabs(){var e=this;return(0,n.default)(function*(){try{const t=yield p.get("/cust/tabs?retrieve=true");if(t.ok){const{open_tabs:r=[]}=yield t.json();e.setState({open_tabs:r})}else{throw new Error("Failed to retrieve open tabs.")}}catch(e){console.error("An error occurred in getOpenTabs() function:",e)}})()}filterSpot(e){this.state.filtered_spots=h(this.input.zone_groups,e.target.value.toLowerCase());this.setStateDirty("filtered_spots")}setQuickServeSpot(e,t){t.preventDefault();const r=JSON.parse(window.localStorage.getItem("server_config")||"{}");const i=s(s({},r),{},{quickSpot:e});window.localStorage.setItem("server_config",JSON.stringify(i));this.state.server_config=i;this.forceUpdate();this.update();this.getComponent("quick-spot-selection-modal").toggle("hide")}toggleShowNoticesTrue(){this.stores.notices.toggleShowNoticesAgain(true)}}}).call(this,r(18))}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.