{"version":3,"file":"merchant.js","mappings":"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","sources":["webpack://merchant/./app/webpacker/packs/merchant.ts","webpack://merchant/./app/webpacker/scripts/merchant/config/index.ts","webpack://merchant/./app/webpacker/scripts/merchant/stores/initial.ts","webpack://merchant/./app/webpacker/scripts/swisscard/helpers/env.ts"],"sourcesContent":["/* global process __webpack_public_path__ */\nimport 'core-js/es'\nimport { setEnv } from 'swisscard/helpers/env'\nimport DataHandler from '@atpoint/atpjs/data_handler'\nimport initial from '@merchant/stores/initial'\n\nconst urlToOrigin = (href: string): string => {\n const a = document.createElement('a')\n a.href = href\n return a.origin || `${a.protocol}//${a.host}`\n}\n\n// select element from data-id on script tag or given selector\nlet currentScript = document.currentScript\nif (!currentScript) {\n // workaround for IE\n const scripts = document.getElementsByTagName('script')\n currentScript = scripts[scripts.length - 1]\n}\n\nconst selectorApi = currentScript.dataset\n ? currentScript.dataset.api || ''\n : currentScript.getAttribute('data-api') || ''\n\nsetEnv('API_HOST', selectorApi)\n\nsetEnv(\n 'APP_ENVIRONMENT',\n (currentScript.dataset\n ? currentScript.dataset.appEnvironment\n : currentScript.getAttribute('data-app-environment')) as string\n)\n\n// @ts-ignore\n// eslint-disable-next-line\n__webpack_public_path__ = urlToOrigin(currentScript.src) + __webpack_public_path__\n\n// another fallback\nconst selector = currentScript.dataset ? currentScript.dataset.selector : currentScript.getAttribute('data-selector')\nlet rootElement = document.querySelector(selector || '.atp-widget-merchant')\n\n// create new element if nones exists\nif (!rootElement) {\n rootElement = document.createElement('div')\n if (currentScript.parentNode) {\n currentScript.parentNode.insertBefore(rootElement, currentScript.nextSibling)\n } else {\n console.error('cannot insert rootElement because parentNode is null')\n }\n}\n\nconst element = document.documentElement\n\n// @ts-ignore\nimport('@merchant').then((module) => {\n const { initializeApp } = module\n const locale = ((element && element.lang) || 'de-CH').substring(0, 2)\n const data = initial.set('locale', locale)\n\n if (rootElement) {\n // @ts-ignore\n initializeApp(rootElement, DataHandler.instance(data), 'amex')\n } else {\n console.log('root element not found, aborting init')\n }\n})\n\ndeclare global {\n interface Window {\n atpWidgetMERCHANT: any\n dataLayer: any // For google tag manager\n }\n}\nwindow.atpWidgetMERCHANT = window.atpWidgetMERCHANT || []\nwindow.atpWidgetMERCHANT.push({\n name: 'merchant',\n version: '0.0.1',\n})\nwindow.dataLayer = window.dataLayer || []\n","export const CORRESPONDENCE_LANGUAGES = ['de', 'en', 'fr', 'it']\nexport const SUPPORTED_CORRESPONDENCE_LANGUAGES = ['de', 'fr']\nexport const GENDER = ['male', 'female']\n\nexport const TERMINAL_PROVIDER = [\n 'six_wordline',\n 'ccv',\n 'concardis_ch',\n 'concardis_de',\n 'innocard',\n 'bs_payone',\n 'wallee',\n 'adyen',\n 'elavon',\n 'other',\n]\n\nexport const PAYMENT_SERVICE_PROVIDER = [\n 'saferpay',\n 'datatrans',\n 'postfinance',\n 'wallee',\n 'concardis_payengine',\n 'payone',\n 'syspay',\n 'computop',\n 'braintree',\n 'unzer',\n 'sagepay',\n 'cybersource',\n 'checkout',\n 'payzen',\n 'elavon',\n 'bnp_paribas',\n 'other',\n]\n\n// NOTE: temporary location to centralize product data.\n// Currently there is only a single product, but in the future we could have\n// more.\nexport const PRODUCT = {\n name: 'American Express',\n}\n\nexport default {\n AUTOCOMPLETE: {\n DEBOUNCE_TIME: 250, // in ms\n MIN_SEARCH_LENGTH: 2,\n MAX_SUGGESTIONS: 10,\n },\n COMMISSION_PAYOUT_FREQUENCY: 7, // in days.\n CONTACT_EMAIL: 'partner.service@swisscard.ch',\n CONTACT_PHONE: {\n TEXT: '+41 44 659 64 44',\n LINK: 'tel:+41446596444',\n },\n CONTACT_ADDRESS: {\n addressee: 'Swisscard AECS GmbH',\n department: 'American Express Merchant Service (JSOB5)',\n street: 'Neugasse 18',\n zip: '8810',\n city: 'Horgen',\n },\n DEFAULT_COUNTRY_CODE: 'CH',\n IDENTIFICATION_TERMS_CONDITIONS_URL: {\n de: 'https://www.swisscard.ch/de/technical-redirect/web/nutzungsbedingungen-fes-online-signatur/pdf',\n en: 'https://www.swisscard.ch/en/technical-redirect/web/nutzungsbedingungen-fes-online-signatur/pdf',\n fr: 'https://www.swisscard.ch/fr/technical-redirect/web/nutzungsbedingungen-fes-online-signatur/pdf',\n it: 'https://www.swisscard.ch/it/technical-redirect/web/nutzungsbedingungen-fes-online-signatur/pdf',\n },\n IBAN_SEPARATOR: ' ',\n MAX_LOCATIONS: 4,\n MAX_SIGNING_PERSONS: 2,\n MAX_SIGNING_PERSONS_LIST_LENGTH: 10,\n MAX_TERMINALS_PER_LOCATION: 5,\n MAX_WEB_SHOPS: 3,\n OTP_TIMEOUT: 60 * 2, // in seconds\n PAYMENT_NOTICE_ACCOUNT_URL: 'http://www.partneronline.ch/',\n PHONE_NUMBER_INDICATIF: '+41',\n PHONE_NUMBER_INDICATIF_REGEX: /^\\+41/,\n POLL_DELAY: 1500, // in ms, used for polling the contract document from the documents list, until the server generates it.\n DIS_REQUEST_POLL_DELAY: 6000, // in ms, used for polling the DIS (external) url.\n UPLOAD: {\n FILE_TYPES: ['image/gif', 'image/png', 'image/jpeg', 'image/jpg', 'application/pdf'],\n MAX_FILE_SIZE: 10 * 1024 * 1024,\n MAX_NUM_FILES: 3,\n },\n VALIDATION: {\n ACCOUNT_HOLDER_LENGTH: 50,\n CONTRACT_NUMBER_LENGTH: 10,\n EMAIL_LENGTH: 50,\n FIRSTNAME_LENGTH: 30,\n LASTNAME_LENGTH: 30,\n STREET_LENGTH: 30,\n ZIP_LENGTH: 7,\n CITY_LENGTH: 30,\n MAX_AGE: 100, // in years\n MIN_AGE: 18, // in years\n NAME_LENGTH: 50,\n COMPANY_NAME_LENGTH: 50,\n LOCATION_NAME_LENGTH: 50,\n MAIL_PHONE_NAME_LENGTH: 50,\n OWNERSHIP_CHANGE_DATE_THRESHOLD: 5, // in years\n BANK_NAME_LENGTH: 50,\n BANK_CLEARING_NUMBER_MIN_LENGTH: 3, // https://en.wikipedia.org/wiki/Bank_clearing_number\n BANK_CLEARING_NUMBER_MAX_LENGTH: 5,\n TERMINAL_ID_LENGTH: 20,\n WEB_SHOP_URL_LENGTH: 60, // limited to 60 chars, so that it displays properly without being clipped in the merchant PDF contract placeholder\n },\n} as const\n","import { List, Map } from 'immutable'\nimport { TerminalType } from '@merchant/data/types'\nimport config from '@merchant/config'\n\nexport const initialAuthorizedSignatory = {\n birthdate: null,\n email: null,\n firstName: null,\n gender: null,\n lastName: null,\n nationality: config.DEFAULT_COUNTRY_CODE,\n phoneNumber: null,\n}\n\ntype PaymentDetailsType = {\n accountHolder: string | null\n bankName: string | null\n bankClearingNumber: string | null\n iban: string | null\n}\n\nconst newTerminal: TerminalType = {\n provider: null,\n id: null,\n unknownId: false,\n}\n\nconst newPaymentDetails: PaymentDetailsType = {\n accountHolder: null,\n bankName: null,\n bankClearingNumber: null,\n iban: null,\n}\n\nconst defaultData = {\n bankDetails: Map({}), // Quick IBAN: CH9709000000300097000 www.redcross.ch\n company: Map({}),\n\n contactPersonGender: undefined,\n contactPersonEmail: undefined,\n contactPersonFirstName: undefined,\n contactPersonLastName: undefined,\n contactPersonPhoneNumber: undefined,\n contactPersonNationality: undefined,\n contactPersonAddress: Map({}),\n contactPersonIsOwner: true,\n\n differentOwnerPersonGender: undefined,\n differentOwnerPersonEmail: undefined,\n differentOwnerPersonFirstName: undefined,\n differentOwnerPersonLastName: undefined,\n differentOwnerPersonPhoneNumber: undefined,\n differentOwnerPersonNationality: undefined,\n differentOwnerPersonAddress: Map({}),\n\n contractNumber: undefined,\n correspondenceLanguage: null,\n correspondenceRecipientPerson: Map({}),\n hasContract: false,\n hasDifferentCorrespondenceRecipient: false,\n locations: List(),\n mailPhone: Map({\n name: null,\n paymentDetails: Map(newPaymentDetails),\n requiresPhysicalTerminal: false,\n physicalTerminal: Map(newTerminal),\n requiresVirtualTerminal: false,\n virtualTerminal: Map(newTerminal),\n requiresPayByLink: false,\n payByLinkPaymentServiceProvider: null,\n }),\n ownershipChange: false,\n ownershipChangeDate: undefined,\n remote: Map({\n paymentDetails: Map(newPaymentDetails),\n paymentServiceProvider: undefined,\n webShops: List(),\n }),\n requiresLocal: undefined,\n requiresMailPhone: false,\n requiresPaymentNotice: false,\n requiresRemote: false,\n persons: Map(),\n pciAccepted: undefined,\n\n dataStorageConditionsAccepted: undefined,\n unknownContractNumber: false,\n documents: [],\n commissionPayoutFrequency: config.COMMISSION_PAYOUT_FREQUENCY,\n\n signingMode: 'individual', // NOTE: value preset to 'individual' signing mode\n authorizedSignatories: List(),\n step: 'contactPerson',\n}\n\nconst initial: Map = Map(defaultData)\n\nexport default initial\n","/* global process */\n\nlet env = Object.freeze({ ...process.env })\n\nexport const setEnv = (key: string, value: string) => {\n env = Object.freeze({ ...env, [key]: value })\n}\n\nexport const getEnv = (key: string): string | undefined => {\n return env[key]\n}\n"],"names":["currentScript","document","scripts","selectorApi","setEnv","__webpack_public_path__","href","a","protocol","host","urlToOrigin","selector","rootElement","console","element","module","initializeApp","locale","data","initial","DataHandler","window","name","version","CORRESPONDENCE_LANGUAGES","SUPPORTED_CORRESPONDENCE_LANGUAGES","GENDER","TERMINAL_PROVIDER","PAYMENT_SERVICE_PROVIDER","PRODUCT","AUTOCOMPLETE","DEBOUNCE_TIME","MIN_SEARCH_LENGTH","MAX_SUGGESTIONS","COMMISSION_PAYOUT_FREQUENCY","CONTACT_EMAIL","CONTACT_PHONE","TEXT","LINK","CONTACT_ADDRESS","addressee","department","street","zip","city","DEFAULT_COUNTRY_CODE","IDENTIFICATION_TERMS_CONDITIONS_URL","de","en","fr","it","IBAN_SEPARATOR","MAX_LOCATIONS","MAX_SIGNING_PERSONS","MAX_SIGNING_PERSONS_LIST_LENGTH","MAX_TERMINALS_PER_LOCATION","MAX_WEB_SHOPS","OTP_TIMEOUT","PAYMENT_NOTICE_ACCOUNT_URL","PHONE_NUMBER_INDICATIF","PHONE_NUMBER_INDICATIF_REGEX","POLL_DELAY","DIS_REQUEST_POLL_DELAY","UPLOAD","FILE_TYPES","MAX_FILE_SIZE","MAX_NUM_FILES","VALIDATION","ACCOUNT_HOLDER_LENGTH","CONTRACT_NUMBER_LENGTH","EMAIL_LENGTH","FIRSTNAME_LENGTH","LASTNAME_LENGTH","STREET_LENGTH","ZIP_LENGTH","CITY_LENGTH","MAX_AGE","MIN_AGE","NAME_LENGTH","COMPANY_NAME_LENGTH","LOCATION_NAME_LENGTH","MAIL_PHONE_NAME_LENGTH","OWNERSHIP_CHANGE_DATE_THRESHOLD","BANK_NAME_LENGTH","BANK_CLEARING_NUMBER_MIN_LENGTH","BANK_CLEARING_NUMBER_MAX_LENGTH","TERMINAL_ID_LENGTH","WEB_SHOP_URL_LENGTH","initialAuthorizedSignatory","birthdate","email","firstName","gender","lastName","nationality","config","phoneNumber","newTerminal","provider","id","unknownId","newPaymentDetails","accountHolder","bankName","bankClearingNumber","iban","defaultData","bankDetails","Map","company","contactPersonGender","contactPersonEmail","contactPersonFirstName","contactPersonLastName","contactPersonPhoneNumber","contactPersonNationality","contactPersonAddress","contactPersonIsOwner","differentOwnerPersonGender","differentOwnerPersonEmail","differentOwnerPersonFirstName","differentOwnerPersonLastName","differentOwnerPersonPhoneNumber","differentOwnerPersonNationality","differentOwnerPersonAddress","contractNumber","correspondenceLanguage","correspondenceRecipientPerson","hasContract","hasDifferentCorrespondenceRecipient","locations","List","mailPhone","paymentDetails","requiresPhysicalTerminal","physicalTerminal","requiresVirtualTerminal","virtualTerminal","requiresPayByLink","payByLinkPaymentServiceProvider","ownershipChange","ownershipChangeDate","remote","paymentServiceProvider","webShops","requiresLocal","requiresMailPhone","requiresPaymentNotice","requiresRemote","persons","pciAccepted","dataStorageConditionsAccepted","unknownContractNumber","documents","commissionPayoutFrequency","signingMode","authorizedSignatories","step","env","Object","process","key","value","getEnv"],"sourceRoot":""}