{ "version": 3, "sources": ["libs/businesses/src/lib/address/address/interface.ts", "libs/businesses/src/lib/address/address/address.service.ts", "libs/businesses/src/lib/assets/i18n/en_devel.json", "libs/businesses/src/lib/address/inputs/country-input.component.ts", "libs/businesses/src/lib/address/inputs/country-input.component.html", "libs/businesses/src/lib/address/address-form.module.ts", "libs/businesses/src/lib/address/v2/place-autocomplete/place-autocomplete.component.ts", "libs/businesses/src/lib/address/v2/place-autocomplete/place-autocomplete.component.html", "libs/businesses/src/lib/custom-validators.ts", "libs/businesses/src/lib/address/v2/address-form-v2.component.ts", "libs/businesses/src/lib/address/v2/address-form-v2.component.html", "libs/businesses/src/lib/address/v2/address-form-v2.module.ts"], "sourcesContent": ["import { Geo } from '@vendasta/listing-products';\n\nexport enum FieldName {\n FirstName = 'firstName',\n LastName = 'lastName',\n Country = 'country',\n City = 'city',\n PostalCode = 'zip',\n Province = 'province',\n Address1 = 'address1',\n Address2 = 'address2',\n Phone = 'phone',\n Company = 'company',\n}\n\nexport interface Address {\n company?: string;\n firstName?: string;\n lastName?: string;\n address1: string;\n address2: string;\n city: string;\n province?: string;\n zip: string;\n // Country code ISO 3166-1 alpha-2\n country: string;\n phone?: string;\n location?: Geo;\n}\n\nexport interface Province {\n code: string;\n name: string;\n}\nexport interface LoadCountriesResponse {\n data: { countries: Country[] };\n}\n\nexport interface LoadCountryResponse {\n data: { country: Country };\n}\nexport interface Country {\n name: string;\n code: string;\n continent: string;\n phoneNumberPrefix: number;\n autocompletionField: string;\n labels: {\n address1: string;\n address2: string;\n city: string;\n company: string;\n country: string;\n firstName: string;\n lastName: string;\n phone: string;\n postalCode: string;\n zone: string;\n };\n formatting: {\n edit: string;\n show: string;\n };\n zones: Province[];\n}\n\nexport interface ResponseError {\n errors: {\n locations: {\n column: number;\n line: number;\n }[];\n message: string;\n problems: {\n explanation: string;\n }[];\n value: any;\n }[];\n}\n", "import { Injectable } from '@angular/core';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { AddressAPIService, CountryConfiguration, CountryOption } from '@vendasta/address';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators';\nimport { Address, FieldName, Province } from './interface';\n\nconst FIELD_REGEXP = /({\\w+})/g;\nconst FIELDS_MAPPING: {\n [key: string]: FieldName;\n} = {\n '{firstName}': FieldName.FirstName,\n '{lastName}': FieldName.LastName,\n '{country}': FieldName.Country,\n '{city}': FieldName.City,\n '{zip}': FieldName.PostalCode,\n '{province}': FieldName.Province,\n '{address1}': FieldName.Address1,\n '{address2}': FieldName.Address2,\n '{phone}': FieldName.Phone,\n '{company}': FieldName.Company,\n};\nconst LINE_DELIMITER = '_';\nconst DEFAULT_FORM_LAYOUT =\n '{firstName}{lastName}_{company}_{address1}_{address2}_{city}_{country}{province}{zip}_{phone}';\nconst DEFAULT_SHOW_LAYOUT =\n '{lastName} {firstName}_{company}_{address1} {address2}_{city} {province} {zip}_{country}_{phone}';\n\n@Injectable()\nexport class AddressService {\n private countryConfigCache: Map = new Map([]);\n private countryOptionCache: Map = new Map([]);\n private countryConfig$: Observable;\n private countryOptions$: Observable;\n\n constructor(\n private addressApiService: AddressAPIService,\n private translateService: TranslateService,\n ) {}\n\n public mailingAddress$(address: Address): Observable {\n return this.getCountry(address.country).pipe(\n map((country: CountryConfiguration) => this.format(country, address)),\n map((addressLines: string[]) => {\n return addressLines.filter((line) => !!line).join('\\n');\n }),\n );\n }\n\n public shortAddress$(address: Address): Observable {\n return this.getCountry(address.country).pipe(\n map((country: CountryConfiguration) =>\n this.format(country, {\n address1: address.address1,\n address2: address.address2,\n city: address.city,\n province: address.province,\n zip: '',\n country: '',\n } as Address),\n ),\n map((addressLines: string[]) => {\n return addressLines.filter((line) => !!line).join(', ');\n }),\n );\n }\n\n // Fetch information for rendering a country's input or output\n public getCountry(countryCode: string): Observable {\n if (!countryCode) {\n return of(null);\n }\n return this.translateService.onLangChange.pipe(\n map((langChangeEvent: LangChangeEvent) => langChangeEvent.lang),\n startWith(this.translateService.currentLang || this.translateService.defaultLang),\n switchMap((locale: string) => {\n const cacheKey = `${locale}:${countryCode}`;\n if (this.countryConfigCache.has(cacheKey)) {\n return of(this.countryConfigCache.get(cacheKey));\n }\n if (this.countryConfig$) {\n return this.countryConfig$;\n }\n this.countryConfig$ = this.addressApiService.getCountryConfiguration(countryCode, locale).pipe(\n tap((countryConfig: CountryConfiguration) => {\n this.countryConfigCache.set(cacheKey, countryConfig);\n this.countryConfig$ = null;\n }),\n catchError(() => {\n this.countryConfig$ = null;\n return EMPTY;\n }),\n shareReplay(),\n );\n return this.countryConfig$;\n }),\n );\n }\n\n // Fetch information for rendering country options for a form\n public listAllCountryOptions(): Observable {\n return this.translateService.onLangChange.pipe(\n map((langChangeEvent: LangChangeEvent) => langChangeEvent.lang),\n startWith(this.translateService.currentLang),\n switchMap((locale: string) => {\n const cacheKey = locale;\n if (this.countryOptionCache.has(locale)) {\n return of(this.countryOptionCache.get(locale));\n }\n if (this.countryOptions$) {\n return this.countryOptions$;\n }\n this.countryOptions$ = this.addressApiService.listAllCountryOptions(locale).pipe(\n tap((countryOptions: CountryOption[]) => {\n this.countryOptionCache.set(cacheKey, countryOptions);\n this.countryOptions$ = null;\n }),\n shareReplay(),\n );\n return this.countryOptions$;\n }),\n );\n }\n\n // Fetch an ordered list of fields to use for building address form data\n public getOrderedFields(countryCode: string): Observable {\n return this.getCountry(countryCode).pipe(\n map((country: CountryConfiguration) => {\n const format = country ? country.formatting.edit : DEFAULT_FORM_LAYOUT;\n return format.split(LINE_DELIMITER).map((fields) => {\n const result = fields.match(FIELD_REGEXP);\n if (!result) {\n return [];\n }\n return result.map((field) => {\n return FIELDS_MAPPING[field].toString();\n });\n });\n }),\n );\n }\n\n public getProvince(provinces: Province[], provinceCode: string): Province {\n return (\n provinces?.find((province) => province.code === provinceCode) || {\n name: '',\n code: '',\n }\n );\n }\n\n /* PRIVATE UTILITY FUNCTIONS */\n private format(country: CountryConfiguration, address: Address): string[] {\n const layout = country ? country.formatting.show || DEFAULT_SHOW_LAYOUT : DEFAULT_SHOW_LAYOUT;\n return layout.split(LINE_DELIMITER).map((fields) => this.renderLineTemplate(country, fields, address).trim());\n }\n\n private renderLineTemplate(country: CountryConfiguration, template: string, address: Address): string {\n const result = template.match(FIELD_REGEXP);\n if (!result) {\n return '';\n }\n\n let line = template;\n let lineIsEmpty = true;\n result.forEach((key) => {\n const addressKey: string = key.replace('{', '').replace('}', '');\n if (address[addressKey]) {\n lineIsEmpty = false;\n }\n\n switch (addressKey) {\n case FieldName.Country.toString():\n line = line.replace(`{${FieldName.Country}}`, address.country ? country.name : '');\n break;\n case FieldName.Province.toString(): {\n let province = address.province || '';\n if (province && country) {\n province = this.getProvince(country.zones, province).name;\n }\n line = line.replace(`{${FieldName.Province}}`, province);\n break;\n }\n default:\n line = line.replace(key, address[addressKey] || '');\n break;\n }\n });\n if (lineIsEmpty) {\n return '';\n } else {\n return line.trim().replace(' ', ' ');\n }\n }\n}\n", "{\n \"LOGO\": \"Logo\",\n \"PRIMARY\": \"Primary\",\n \"FRONTEND\": {\n \"BUSINESSES\": {\n \"ADDRESS_FORM\": {\n \"PREVIEW\": \"Preview\",\n \"ADDRESS_2\": \"Additional address line\",\n \"COUNTRY_REGION\": \"Country/Region\",\n \"INVALID_COUNTRY_NAME\": \"Please select a valid country name\",\n \"REQUIRED_FIELD\": \"This field is required\",\n \"INVALID_SELECTION\": \"Invalid selection\",\n \"INVALID\": \"Invalid\"\n },\n \"YES\": \"Yes\",\n \"NO\": \"No\",\n \"CANCEL\": \"Cancel\",\n \"SAVE\": \"Save\",\n \"DELETE\": \"Delete\",\n \"PRIMARY_INFO\": \"Primary info\",\n \"LOCATION\": \"Location\",\n \"BASIC_INFORMATION\": \"Basic information\",\n \"BASICS\": \"Basics\",\n \"BUSINESS_NAME\": \"Business name\",\n \"COMPETITORS\": \"Competitors\",\n \"COMPETITOR_NAME\": \"Competitor name\",\n \"COMPETITOR_URL\": \"Competitor URL\",\n \"COMPETITOR_DELETE_MESSAGE\": \"This competitor will be removed from business competitors.\",\n \"COMPETITOR_SAVE_SUCCESS\": \"Competitor saved successfully\",\n \"COMPETITOR_SAVE_ERROR\": \"Error saving Competitor\",\n \"COMPETITOR_DELETE_SUCCESS\": \"Competitor deleted successfully\",\n \"COMPETITOR_DELETE_ERROR\": \"Error deleting Competitor\",\n \"COMPETITOR_NAME_REQUIRED\": \"Name is required\",\n \"COMPETITOR_DELETE\": \"Delete {{name}}?\",\n \"CONTACT\": \"Contact\",\n \"ADD_COMMON_BUSINESS_NAME\": \"+ Add common business name\",\n \"COMMON_BUSINESS_NAME\": \"Common business name\",\n \"SERVICE_AREA_BUSINESS\": \"Service area business\",\n \"SERVICE_AREA_BUSINESS_HINT\": \"A business that visits or delivers to customers directly\",\n \"CUSTOMER_LOCATION_ONLY\": \"Hide my address and only show service areas\",\n \"CUSTOMER_AND_BUSINESS_LOCATION\": \"Show my address in addition to service areas\",\n \"SERVICE_AREAS\": \"Service areas\",\n \"SERVICE_AREAS_ERROR\": \"At least 1 service area is required\",\n \"WEBSITE\": \"Website\",\n \"BUSINESS_EMAIL\": \"Business email\",\n \"PRIMARY_CATEGORY\": \"Primary category\",\n \"ADDITIONAL_CATEGORIES\": \"Additional categories\",\n \"BUSINESS_CATEGORIES_WHATS_THIS\": \"What's this?\",\n \"BUSINESS_CATEGORIES_HINT\": \"Start typing to search business categories\",\n \"BUSINESS_CATEGORIES_ERROR\": \"At least 1 category is required\",\n \"BUSINESS_CATEGORIES_INVALID\": \"Some of your categories are no longer supported. Please consider choosing new categories.\",\n \"OPERATIONAL_INFORMATION\": \"Operational information\",\n \"REOPENING_DATE\": \"Reopening date\",\n \"COVID_INFORMATION\": \"COVID information\",\n \"COMMERCE_ONLY\": \"Commerce only\",\n \"BUSINESS_OPEN_CLOSE\": \"Business open/closed\",\n \"SELLING_METHODS\": \"Selling methods\",\n \"ADD_SERVICE\": \"+ Add service\",\n \"SERVICES_OFFERED\": \"Services offered\",\n \"ADD_BRAND\": \"+ Add brand\",\n \"BRANDS_CARRIED\": \"Brands carried\",\n \"LANDMARK\": \"Landmark\",\n \"BOOKING_URL\": \"Booking Link\",\n \"CONDITIONAL_FIELDS\": {\n \"ICO\": \"ICO\"\n },\n \"MAP_GEOLOCATION\": \"Map (GeoLocation)\",\n \"GEOCONTROL_TOOLTIP_NO_VALUE\": \"Click the map to place your marker\",\n \"GEOCONTROL_TOOLTIP_HAS_VALUE\": \"Drag the marker to edit your location\",\n \"PHONE\": \"Phone\",\n \"PHONE_NUMBERS\": \"Phone numbers\",\n \"ADD_PHONE_NUMBER\": \"+ Add phone number\",\n \"PHONE_NUMBERS_ALLOWED_FORMATS\": \"Phone numbers must be formatted as +246123456789\",\n \"FAX_NUMBER\": \"Fax number\",\n \"CELL_NUMBER\": \"Cell number\",\n \"ADD_CALL_TRACKING_NUMBER\": \"+ Add call tracking number\",\n \"CALL_TRACKING_NUMBERS\": \"Call tracking numbers\",\n \"TOLL_FREE_NUMBER\": \"Toll-free number\",\n \"HOURS\": \"Hours\",\n \"MORE_HOURS\": \"More hours\",\n \"MORE_HOURS_EMPTY\": \"More hours aren't applicable to your business category\",\n \"ACTIVE\": \"Active\",\n \"ADD\": \"Add\",\n \"SOCIAL\": \"Social\",\n \"BUSINESS_PAGES\": \"Business pages\",\n \"FACEBOOK_URL\": \"Facebook URL\",\n \"FOURSQUARE_URL\": \"Foursquare URL\",\n \"LINKEDIN_URL\": \"LinkedIn URL\",\n \"TWITTER_URL\": \"Twitter URL\",\n \"PINTEREST_URL\": \"Pinterest URL\",\n \"INSTAGRAM_URL\": \"Instagram URL\",\n \"YOUTUBE_URL\": \"YouTube URL\",\n \"BLOG\": \"Blog\",\n \"BLOG_URL\": \"Blog / RSS Feed URL\",\n \"PROFESSIONAL_RECORDS\": \"Professional records\",\n \"PERSONAL_INFORMATION\": \"Personal information\",\n \"FIRST_NAME\": \"First name\",\n \"MIDDLE_INITIAL\": \"Middle initial(s)\",\n \"LAST_NAME\": \"Last name\",\n \"PROFESSIONAL_CREDENTIALS\": \"Professional credentials\",\n \"GENDER\": \"Gender\",\n \"GENDERS\": {\n \"SELECT_OPTION\": \"Select option\",\n \"MALE\": \"Male\",\n \"FEMALE\": \"Female\",\n \"OTHER\": \"Other\"\n },\n \"IS_PROVIDER\": \"Provider Type\",\n \"IS_PROVIDER_ENUM\": {\n \"NOT_SPECIFIED\": \"Select Option\",\n \"PRACTITIONER\": \"Practitioner\",\n \"CLINIC\": \"Clinic\"\n },\n \"PRACTICE_NAME\": \"Practice Name\",\n \"EMAIL_ADDRESS\": \"Email address\",\n \"ACCEPTING_PATIENTS\": \"Accepting patients\",\n \"INSURANCES_ACCEPTED\": \"Insurances accepted\",\n \"ADD_INSURANCE\": \"'+ Add insurance\",\n \"HOSPITAL_AFFILIATIONS\": \"Hospital affiliations\",\n \"ADD_AFFILIATIONS\": \"+ Add affiliations\",\n \"QUALIFICATIONS_EXPERIENCE\": {\n \"DOCTORDOTCOM_CATEGORIES\": \"Doctor.com Categories\",\n \"QUALIFICATIONS_EXPERIENCE\": \"Qualifications & experience\",\n \"EDUCATION\": \"Education\",\n \"SPECIALTIES\": \"Specialties\",\n \"RESIDENCIES\": \"Residencies\",\n \"FELLOWSHIPS\": \"Fellowships\",\n \"ADD_EDUCATION\": \"+ Add education\",\n \"ADD_SPECIALTY\": \"+ Add specialty\",\n \"ADD_RESIDENCY\": \"+ Add residency\",\n \"ADD_FELLOWSHIP\": \"+ Add fellowship\",\n \"NPI\": \"NPI (National Provider Identifier)\",\n \"MEDICAL_LICENSE_NUMBER\": \"Medical license number\",\n \"STATE_LICENSE\": \"State license\"\n },\n \"PRACTICE_INFORMATION\": \"Practice information\",\n \"OFFICE_NAME\": \"Firm/Clinic/Office name\",\n \"MARKETING\": \"Marketing\",\n \"SEARCH_ENGINE_INFORMATION\": \"Search engine information\",\n \"SEO_KEYWORDS\": \"SEO keywords\",\n \"ADD_SEO_KEYWORD\": \"+ Add SEO keyword\",\n \"SHARE_OF_VOICE_KEYWORDS\": \"Share of voice keywords\",\n \"ADD_SHARE_OF_VOICE_KEYWORD\": \"+ Add share of voice keyword\",\n \"COMPETITOR_NAMES\": \"Competitor names\",\n \"ADD_COMPETITOR\": \"+ Add competitor\",\n \"BUSINESS_DESCRIPTIONS\": \"Business descriptions\",\n \"TAGLINE\": \"Tagline\",\n \"SHORT_DESCRIPTION\": \"Short description\",\n \"DESCRIPTION\": \"Description\",\n \"LONG_DESCRIPTION\": \"Long description\",\n \"MEDIA\": \"Media\",\n \"ATTRIBUTES\": \"Custom fields\",\n \"IMAGES\": \"Images\",\n \"DESCRIPTIONS\": \"Descriptions\",\n \"ATTRIBUTES_TAB\": \"Attributes\",\n \"CUSTOM_FIELDS\": \"Custom fields\",\n \"ADMINISTRATION\": \"Administration\",\n \"SALES\": \"Sales\",\n \"MARKET\": \"Market\",\n \"PRIMARY_SALESPERSON\": \"Primary salesperson\",\n \"ADD_ADDITIONAL_SALESPEOPLE\": \"+ Add additional salespeople\",\n \"PRIMARY_SALESPERSON_MUST_BE_SELECTED\": \"Primary salesperson must be selected\",\n \"ADDITIONAL_SALESPEOPLE\": \"Additional salespeople\",\n \"CUSTOMER_IDENTIFIER\": \"Customer identifier\",\n \"TAGS\": \"Tags\",\n \"NOTES\": \"Notes\",\n \"PHOTO\": \"Photo\",\n \"MEDIA_TAB\": {\n \"PHOTO_IMAGE_NOUN\": \"Photo\",\n \"PHOTOS\": \"Photos\",\n \"ADD_PHOTOS\": \"Add photos\",\n \"UPLOAD_PHOTO\": \"Upload photo\",\n \"UNABLE_TO_LOAD_IMAGES\": \"Unable to load images.\",\n \"LOAD_MORE\": \"Load more\",\n \"SHOWING_X_OF_Y\": \"Showing {{count}} of {{total}}\",\n \"ADDING_IMAGES_BOLSTERS\": \"Adding images bolsters your profile.\",\n \"IMAGE_MENU\": {\n \"SET_LOGO_QUESTION\": \"Set logo?\",\n \"SET_LOGO\": \"Set logo\",\n \"SET_LOGO_BODY\": \"Would you like to set this photo as your logo? The photo will automatically be cropped to a square format and replace any existing logo.\",\n \"SET_PRIMARY\": \"Set primary\",\n \"SET_PRIMARY_PHOTO\": \"Set primary photo?\",\n \"SET_PRIMARY_BODY\": \"Would you like to set this photo as your primary photo? This will replace any existing primary photo.\",\n \"DELETE_PHOTO_QUESTION\": \"Delete photo?\",\n \"DELETE_PHOTO\": \"Delete photo\",\n \"DELETE_PHOTO_BODY\": \"Would you like to remove this photo from your business profile?\"\n },\n \"LOGO\": \"Logo\",\n \"PRIMARY\": \"Primary\",\n \"PHOTO_UPLOADED_SUCCESSFULLY\": \"Photo uploaded successfully!\",\n \"LOGO_SET_SUCCESSFULLY\": \"Logo set successfully\",\n \"ERROR_SETTING_PHOTO_AS_LOGO\": \"Error setting photo as logo\",\n \"PRIMARY_PHOTO_SET_SUCCESSFULLY\": \"Primary photo set successfully\",\n \"ERROR_SETTING_PHOTO_AS_PRIMARY\": \"Error setting photo as primary\",\n \"PHOTO_DELETED\": \"Photo deleted\",\n \"ERROR_DELETING_PHOTO\": \"Error deleting photo\"\n },\n \"TOOLTIPS\": {\n \"SELLING_METHOD_TOOLTIP\": \"The primary method that your business selling stuff.\",\n \"LANDMARK_TOOLTIP\": \"The general area in which your business is physically located. Typical landmark addresses include mall and office names (for example, Oakview Mall or Clocktower Plaza). Only enter a landmark if your street address does not accurately pinpoint your business's location.\",\n \"SERVICES_OFFERED_TOOLTIP\": \"The primary services that your business offers (for example, personal tax filing or root canals).\",\n \"BRANDS_CARRIED_TOOLTIP\": \"The primary brands that your business carries (for example, Ford, Apple, Firestone, or Allstate).\",\n \"SHARE_OF_VOICE_TOOLTIP\": \"Enter products, services or other keywords to compare the business' search engine share of voice to their competition.\",\n \"COMPETITORS_TOOLTIP\": \"Enter competitor names to benchmark the search engine prominence of those competitors against the business.\",\n \"ADDITIONAL_SALESPERSON_TOOLTIP\": \"The primary salesperson's information will be displayed in the store and in campaign emails for this account. However, you can assign up to 5 additional salespeople to this account.\",\n \"CUSTOMER_ID_TOOLTIP\": \"Changing this ID may result in unintended consequences, particularly if your company uses an SSO integration. If you are unsure if you use SSO, please reach out to your administrator before proceeding.\",\n \"VTAX_TOOLTIP\": \"Business categories help to ensure that relevant listing sources are turned on within {{rmProductName}} (Ex. Selecting 'Restaurants' will turn Urbanspoon to ON and turn Cars.com to OFF). Business categories will also help retrieve the appropriate RSS Feeds in {{smProductName}} and industry averages throughout the product suite.\",\n \"CALL_TRACKING_TOOLTIP\": \"A call tracking number is a phone number that gathers analytics for inbound calls. Call tracking is commonly used as a method of performance assessment for marketing campaigns. This number will be used to find business listings and assess their accuracy in the Listings tab of {{rmProductName}}.\",\n \"TAGLINE_TOOLTIP\": \"Your company slogan or a brief description of the business. The tagline will appear directly below the company name at the top of the {{msProductName}} My Listing.\",\n \"COMMON_BUSINESS_NAME_TOOLTIP\": \"Other names that your business is commonly called (Ex. Patty's Irish Pub referred to as Patty's or Patty's Pub). Common business names will become mention searches within {{rmProductName}}.\",\n \"SEO_CATEGORY_TOOLTIP\": \"SEO (Search Engine Optimization) keywords are key words or phrases that help customers find your business via search engines. These keywords will be displayed on the {{msProductName}} My Listing to enhance SEO.\"\n },\n \"LENGTH_OF_REPEATED_FIELD_ERROR\": \"Must be less than {{maxLength}} characters across all {{fieldName}}, when joined with commas.\",\n \"PAYMENT_METHODS\": {\n \"PAYMENT_METHODS\": \"Payment methods\",\n \"AMERICAN_EXPRESS\": \"American Express\",\n \"ANDROID_PAY\": \"Google Pay\",\n \"APPLE_PAY\": \"Apple Pay\",\n \"CASH\": \"Cash\",\n \"CHECK\": \"Check\",\n \"DEBIT\": \"Debit\",\n \"DINERS_CLUB\": \"Diners Club\",\n \"DISCOVER\": \"Discover\",\n \"MASTERCARD\": \"MasterCard\",\n \"PAYPAL\": \"PayPal\",\n \"SAMSUNG_PAY\": \"Samsung Pay\",\n \"STORE_CARD\": \"Store card\",\n \"TRAVELERS_CHECK\": \"Travelers check\",\n \"VISA\": \"Visa\",\n \"CCS\": \"CCS\",\n \"SODEXO\": \"Sodexo\",\n \"GOPAY\": \"GoPay\",\n \"V_PAY\": \"V PAY\",\n \"FINANCING\": \"Financing\",\n \"INVOICE\": \"Invoice\",\n \"PAYSEC\": \"PaySec\",\n \"BITCOIN\": \"Bitcoin\",\n \"INVALID_PAYMENT_METHODS\": \"Selected payment methods are not valid for the selected country: {{paymentMethods}}\"\n },\n \"STANDARDIZED_TITLES\": {\n \"ACCOUNTING\": \"ACCOUNTING\",\n \"ADMINISTRATOR\": \"ADMINISTRATOR\",\n \"BOARD_MEMBER\": \"BOARD MEMBER\",\n \"CHAIRMAN\": \"CHAIRMAN\",\n \"CEO\": \"CEO\",\n \"CIO_CTO\": \"CIO / CTO\",\n \"CONTROLLER\": \"CONTROLLER\",\n \"CORPORATE_TAX\": \"CORPORATE TAX\",\n \"DIRECTOR\": \"DIRECTOR\",\n \"DIVISION_HEAD\": \"DIVISION HEAD\",\n \"E_COMMERCE\": \"E COMMERCE\",\n \"EDUCATOR\": \"EDUCATOR\",\n \"ENGINEERING\": \"ENGINEERING\",\n \"ENVIRONMENT\": \"ENVIRONMENT\",\n \"EVP\": \"EVP\",\n \"EXECUTIVE\": \"EXECUTIVE\",\n \"FACILITIES\": \"FACILITIES\",\n \"FINANCE\": \"FINANCE\",\n \"INSURANCE\": \"INSURANCE\",\n \"INTERNAL_AUDIT\": \"INTERNAL AUDIT\",\n \"INTERNATIONAL\": \"INTERNATIONAL\",\n \"IT_EXECUTIVE\": \"IT EXECUTIVE\",\n \"LEGAL\": \"LEGAL\",\n \"LEGAL_COUNSEL\": \"LEGAL COUNSEL\",\n \"MANAGER\": \"MANAGER\",\n \"MANUFACTURING\": \"MANUFACTURING\",\n \"MARKETING\": \"MARKETING\",\n \"MINISTER\": \"MINISTER\",\n \"OFFICE_MANAGER\": \"OFFICE MANAGER\",\n \"OPERATIONS\": \"OPERATIONS\",\n \"OWNER\": \"OWNER\",\n \"PARTNER\": \"PARTNER\",\n \"PRESIDENT\": \"PRESIDENT\",\n \"PRINCIPAL\": \"PRINCIPAL\",\n \"PUBLISHER\": \"PUBLISHER\",\n \"PURCHASING\": \"PURCHASING\",\n \"QUALITY\": \"QUALITY\",\n \"REAL_ESTATE\": \"REAL ESTATE\",\n \"REGION_MANAGER\": \"REGION MANAGER\",\n \"SALES\": \"SALES\",\n \"SITE_MANAGER\": \"SITE MANAGER\",\n \"SVP\": \"SVP\",\n \"TRAINING\": \"TRAINING\",\n \"TREASURER\": \"TREASURER\",\n \"VICE_CHAIRMAN\": \"VICE CHAIRMAN\",\n \"VICE_PRESIDENT\": \"VICE PRESIDENT\",\n \"VP\": \"VP\",\n \"WEBMASTER\": \"WEBMASTER\"\n },\n \"NO_CHANGES_TO_SAVE\": \"No changes to save\",\n \"INVALID_SUBMISSION\": \"Invalid submission\",\n \"INVALID_SESSION\": \"Invalid Session. Please try again.\",\n \"FAILED_TO_UPDATE\": \"Failed to update\",\n \"HOURS_OF_OPERATION_SAVED\": \"Hours of operation saved\",\n \"CUSTOM_FIELDS_SAVED\": \"New custom field values have been saved\",\n \"ACCOUNT_WAS_SAVED\": \"Account was saved\",\n \"BUSINESS_HOURS_SAVED\": \"Business hours saved\",\n \"ACCOUNT_ATTRIBUTES_SAVED\": \"Custom fields saved\",\n \"ACCOUNT_ATTRIBUTES_ERROR\": \"Error saving custom fields\",\n \"ACCOUNT_ATTRIBUTES_DISMISS\": \"Dismiss\",\n \"ALREADY_THE_PRIMARY_SALESPERSON\": \"{{name}} is already the primary salesperson.\",\n \"BUSINESS_OPERATION_METHODS\": {\n \"SELECT_OPTION\": \"Select option\",\n \"UNSPECIFIED\": \"Unspecified\",\n \"OPEN\": \"Open\",\n \"LIMITED\": \"Limited\",\n \"TEMPORARY\": \"Temporarily closed\",\n \"PERMANENT\": \"Permanent closed\"\n },\n \"SELLING_METHODS_AVAILABILITY\": {\n \"UNSET\": \"-\",\n \"YES\": \"Yes\",\n \"NO\": \"No\"\n },\n \"SERVICE_AVAILABILITY\": {\n \"ECOMMERCE_ONLY\": \"Online store only\"\n },\n \"PRODUCT_ACTIVATION_FORM\": {\n \"FULL_BUSINESS_PROFILE\": \"Business profile\",\n \"FULL_BUSINESS_PROFILE_OPTIONAL\": \"Optional\",\n \"FULL_BUSINESS_PROFILE_REQUIRED\": \"Required\",\n \"FULL_BUSINESS_PROFILE_DESCRIPTION\": \"Review your business profile to submit this order\",\n \"FULL_BUSINESS_PROFILE_READ_ONLY_DESCRIPTION\": \"Account information was previously updated\",\n \"SUCCESS_MESSAGE\": \"The business profile was updated\",\n \"ERROR_MESSAGE\": \"Something went wrong. Refresh the page and try again.\",\n \"ACCOUNT_INFORMATION\": \"Account information\",\n \"ACCOUNT_INFORMATION_SUBTITLE\": \"This order requires certain fields to be saved to the account\",\n \"ACCOUNT_INFORMATION_PANEL\": \"Update the account before continuing, products require accurate business information\",\n \"HOURS_OF_OPERATION_REQUIRED\": \"Hours of operation are required\",\n \"INVALID_SUBMISSION_MESSAGE\": \"Some required fields haven\u2019t been filled out or are incorrect\",\n \"INVALID_SERVICES_OFFERED_FIELD\": \"Services offered can only be 256 characters in length total\",\n \"INVALID_BRANDS_CARRIED_FIELD\": \"Brands carried can only be 256 characters in length total\"\n },\n \"WRONG_MARKET\": \"Wrong market\",\n \"UNSAVED_CHANGES\": \"There are unsaved changes\",\n \"TIMEZONE\": \"Timezone\",\n \"SELECTOR_DIALOG\": {\n \"ACCOUNT\": \"Account\",\n \"CHOOSE_ACCOUNT\": \"Choose account\",\n \"CREATE_ACCOUNT\": \"Create account\",\n \"NOT_FOUND\": \"No accounts found\",\n \"SEARCH_ACCOUNT\": \"Search account\"\n },\n \"ADD_ACCOUNTS_TO_LISTS\": {\n \"TITLE\": \"Add to list\",\n \"SELECT_ACCOUNTS\": {\n \"LABEL\": \"Which accounts would you like to add to a list?\",\n \"OPTIONS\": {\n \"VISIBLE_ACCOUNTS\": \"Visible\",\n \"SELECTED_ACCOUNTS\": \"Selected\",\n \"ALL_ACCOUNTS\": \"All\"\n },\n \"ACCOUNTS\": \"accounts\",\n \"SUCCESS\": \"Added {{accounts}} accounts to list {{list}}\"\n },\n \"SELECT_LIST\": \"Add to list\",\n \"NAME_NEW_LIST\": \"Name of new list\",\n \"CREATE_AND_ADD\": \"Create and add to list\",\n \"SUCCESS\": \"Added {{accounts}} accounts to list {{list}}\",\n \"DESCRIPTION\": \"Export results to an Account List\"\n },\n \"MORE_TAB_LABEL\": \"More\"\n }\n }\n}\n", "import { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Output,\n Provider,\n inject,\n} from '@angular/core';\nimport {\n AsyncValidatorFn,\n FormControl,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CountryOption } from '@vendasta/address';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Observable, firstValueFrom, map, shareReplay, switchMap } from 'rxjs';\n\nexport const COUNTRY_OPTIONS_TOKEN = new InjectionToken>('COUNTRY_OPTIONS');\nexport const COUNTRY_CONTROL_TOKEN = new InjectionToken>('COUNTRY_CONTROL_TOKEN');\nexport const defaultCountryControlProvider: Provider = {\n provide: COUNTRY_CONTROL_TOKEN,\n useFactory: () => new FormControl('', [Validators.required], [countryValidator()]),\n};\n\nexport function countryValidator(): AsyncValidatorFn {\n const countryOptions = firstValueFrom(inject(COUNTRY_OPTIONS_TOKEN));\n\n return async (countryControl: FormControl): Promise => {\n const country = countryControl.value;\n const countries = await countryOptions;\n if (!country) return null;\n if (typeof country === 'string') return { invalidCountry: true };\n if (countries.find((c) => c.code.toLowerCase() === country.code.toLowerCase())) return null;\n\n return { invalidCountry: true };\n };\n}\n\n@Component({\n selector: 'business-address-country-input',\n standalone: true,\n templateUrl: './country-input.component.html',\n styleUrls: ['./country-input.component.scss'],\n imports: [\n AsyncPipe,\n FormsModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n NgForOf,\n NgIf,\n ReactiveFormsModule,\n TranslateModule,\n ],\n})\nexport class CountryInputComponent {\n @Output() readonly countrySelected = new EventEmitter();\n private readonly countries$ = inject(COUNTRY_OPTIONS_TOKEN);\n readonly filteredCountries$ = this.countries$.pipe(\n switchMap((countries) =>\n this.control.valueChanges.pipe(\n map((country) => this._filter(countries, country)),\n shareReplay({ bufferSize: 1, refCount: true }),\n ),\n ),\n );\n private _preferredCountry: CountryOption = null;\n\n readonly control = inject(COUNTRY_CONTROL_TOKEN) as FormControl;\n\n private readonly _elementRef = inject(ElementRef);\n @HostListener('focusout', ['$event.relatedTarget']) async onFocusOut(target: HTMLElement): Promise {\n // if target part of the component, do nothing\n if (this._elementRef.nativeElement.contains(target)) return;\n\n const countries = await firstValueFrom(this.filteredCountries$);\n const { value } = this.control;\n if (\n typeof value === 'string' &&\n countries.length > 0 &&\n countries?.[0].name.toLowerCase() === value.toLowerCase()\n ) {\n return this.selectCountryOption(countries[0]);\n }\n }\n\n countryName = (option: CountryOption): string => {\n return option?.name || '';\n };\n\n private _filter(countries: CountryOption[], country: string | CountryOption): CountryOption[] {\n return countries.filter((option) => {\n if (typeof country === 'string') {\n return option.name.toLowerCase().includes(country.toLowerCase());\n }\n return country;\n });\n }\n\n selectCountryOption(option: CountryOption): void {\n this.control.setValue(option);\n this.countrySelected.emit(option);\n }\n\n activatedOption(option: CountryOption): void {\n this._preferredCountry = option;\n }\n\n tabHandler(): void {\n if (this._preferredCountry) {\n this.selectCountryOption(this._preferredCountry);\n }\n }\n}\n", "\n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.COUNTRY_REGION' | translate }}\n \n \n \n \n {{ option.name }}\n \n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.REQUIRED_FIELD' | translate }}\n \n\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\n\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { AddressService } from './address/address.service';\nimport baseTranslation from '../assets/i18n/en_devel.json';\nimport { COUNTRY_OPTIONS_TOKEN, CountryInputComponent } from './inputs/country-input.component';\n\nconst MaterialModules = [\n MatAutocompleteModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatProgressSpinnerModule,\n GalaxyInputModule,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/address',\n baseTranslation: baseTranslation,\n }),\n ...MaterialModules,\n GalaxyFormFieldModule,\n CountryInputComponent,\n MatCheckboxModule,\n MatChipsModule,\n ],\n providers: [\n AddressService,\n {\n provide: COUNTRY_OPTIONS_TOKEN,\n useFactory: (a: AddressService) => a.listAllCountryOptions(),\n deps: [AddressService],\n },\n ],\n})\nexport class AddressFormModule {}\n", "import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Geo, GooglePlace } from '@vendasta/account-group';\n\n@Component({\n selector: 'business-place-autocomplete',\n templateUrl: './place-autocomplete.component.html',\n styleUrls: ['./place-autocomplete.component.scss'],\n})\nexport class PlaceAutocompleteComponent {\n maxBounds: google.maps.LatLngBounds;\n autocompleteInput: string;\n @ViewChild('addresstext') addresstext: any;\n @Input() set geoLocation(b: Geo) {\n if (!!b && b?.latitude !== undefined && b?.longitude !== undefined) {\n const center = new google.maps.LatLng(b.latitude, b.longitude);\n // Set location bias for Google place search to a radius of 300 km from the business location because Google says\n // service areas should not extend farther than about a 2-hour drive away from the business location\n // https://support.google.com/business/answer/3038177#zippy=%2Caddress\n this.maxBounds = new google.maps.Circle({ radius: 300000, center: center }).getBounds();\n }\n }\n @Input() editDisabled = false;\n @Output() selected: EventEmitter = new EventEmitter();\n ngAfterViewInit() {\n this.getPlaceAutocomplete();\n }\n\n private getPlaceAutocomplete(): void {\n const options: google.maps.places.AutocompleteOptions = {\n types: ['(regions)'],\n };\n options.bounds = this.maxBounds ? this.maxBounds : undefined;\n options.strictBounds = false;\n options.fields = ['place_id', 'address_components', 'name', 'types'];\n const autocomplete = new google.maps.places.Autocomplete(this.addresstext?.nativeElement, options);\n\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\n const place = autocomplete.getPlace();\n this.invokeEvent(place);\n this.autocompleteInput = '';\n this.addresstext?.nativeElement.blur();\n this.addresstext?.nativeElement.focus();\n });\n }\n\n invokeEvent(place: google.maps.places.PlaceResult): void {\n this.selected.emit(\n new GooglePlace({\n placeId: place.place_id,\n placeName: this.formatName(place),\n city: place.address_components.find((component) => component.types.indexOf('locality') !== -1)?.long_name || '',\n }),\n );\n }\n\n formatName(place: google.maps.places.PlaceResult): string {\n const city =\n place.address_components.find((component) => component.types.indexOf('locality') !== -1)?.long_name || '';\n const province =\n place.address_components.find((component) => component.types.indexOf('administrative_area_level_1') !== -1)\n ?.short_name || '';\n const country =\n place.address_components.find((component) => component.types.indexOf('country') !== -1)?.short_name || '';\n switch (place.types[0]) {\n case 'administrative_area_level_2':\n case 'locality': {\n return joinFirstItems([place.name, province, country], ', ', 2);\n }\n case 'sublocality':\n case 'postal_code': {\n return joinFirstItems([place.name, city, province, country], ', ', 3);\n }\n case 'country': {\n return place.name;\n }\n case 'administrative_area_level_1': {\n return joinFirstItems([place.name, country], ', ', 2);\n }\n }\n return place.name;\n }\n}\n\nfunction joinFirstItems(items: string[], delimiter: string, max: number): string {\n return items.filter(Boolean).slice(0, max).join(delimiter);\n}\n", "\n \n\n", "import { AbstractControl, FormControl, UntypedFormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function NotOnlyWhitespaceValidator(control: FormControl) {\n const inputVal = typeof control?.value === 'string' ? control.value : 'notstring';\n return inputVal.trim().length ? null : { whitespace: true };\n}\nexport function totalLengthOfRepeatedFieldValidator(maxLength: number, friendlyName: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!control.value) {\n return null;\n }\n if (control.value.length === 0) {\n return null;\n }\n\n const value = control.value.filter((val: string) => !!val).join(',');\n return value.length > maxLength\n ? {\n lengthOfRepeatedField: {\n maxLength: maxLength,\n friendlyName: friendlyName,\n },\n }\n : null;\n };\n}\n\nexport function primaryIsNotInAdditionalSalespeople(salespersonNameFromValue: (value: string) => string): ValidatorFn {\n return (fg: UntypedFormGroup): ValidationErrors => {\n const primaryId = fg.controls['salespersonId'];\n const additionalIds = fg.controls['additionalSalespersonIds'];\n if (!additionalIds.value || additionalIds.value.indexOf(primaryId.value) === -1) {\n additionalIds.setErrors(null);\n return null;\n }\n\n const error: ValidationErrors = { primaryName: salespersonNameFromValue(primaryId.value) };\n additionalIds.markAsTouched();\n additionalIds.setErrors(error);\n return error;\n };\n}\n\nexport function primaryIsSelectedWhenHavingAdditionalSalespeople(): ValidatorFn {\n return (fg: UntypedFormGroup): ValidationErrors => {\n const primaryId = fg.controls['salespersonId'];\n const additionalIds = fg.controls['additionalSalespersonIds'];\n if (additionalIds.value && additionalIds.value.length > 0 && !primaryId.value) {\n const error: ValidationErrors = {\n primaryNotSelected: true,\n };\n primaryId.markAsTouched();\n primaryId.setErrors(error);\n return error;\n }\n\n primaryId.setErrors(null);\n return null;\n };\n}\n", "import { Component, Input, Pipe, PipeTransform, inject } from '@angular/core';\nimport {\n AbstractControl,\n FormGroup,\n FormControl,\n ValidationErrors,\n ValidatorFn,\n Validators,\n UntypedFormGroup,\n UntypedFormBuilder,\n UntypedFormControl,\n} from '@angular/forms';\nimport { CountryConfiguration } from '@vendasta/address';\nimport { Country, State } from '@vendasta/country-state';\nimport { Observable, catchError, firstValueFrom, of } from 'rxjs';\nimport { AddressService } from '../address/address.service';\nimport { Address } from '../address/interface';\nimport { COUNTRY_CONTROL_TOKEN, COUNTRY_OPTIONS_TOKEN } from '../inputs/country-input.component';\nimport { Validator as SharedValidators } from '@vendasta/shared';\nimport { NotOnlyWhitespaceValidator } from '../../custom-validators';\nimport { Geo, GooglePlace } from '@vendasta/listing-products';\n\ninterface FormField {\n country: Country | string;\n province: State | string;\n address1: string;\n address2: string;\n city: string;\n zip: string;\n location?: Geo;\n serviceAreaBusiness?: boolean;\n}\n\nconst labelOverrides: Record = {\n zip: 'postalCode',\n province: 'zone',\n};\ntype TemplateFormField = { key: string; label: string; required: boolean };\n\n@Component({\n selector: 'business-address-form-v2',\n templateUrl: './address-form-v2.component.html',\n styleUrls: ['./address-form-v2.component.scss'],\n})\nexport class AddressFormV2Component {\n @Input() showAddressPreview = false;\n @Input() set addressData(a: Address) {\n if (a) {\n this.__addressData = a;\n this.setInitialValues(a);\n }\n }\n @Input({ required: true }) set parentForm(form: FormGroup) {\n this.disabled = form.disabled;\n if (this.disabled) {\n this.editDisabled = true;\n this.formGroup.disable();\n }\n form.addControl('addressForm', this.formGroup);\n }\n\n @Input() requiredFields = true;\n @Input() serviceAreaForm: UntypedFormGroup;\n @Input() serviceAreaToggle: UntypedFormControl;\n\n protected autoCompleteControls = ['country', 'province'];\n protected dynamicControls = ['address1', 'address2', 'city', 'zip'];\n protected __addressData: Address;\n protected editDisabled: boolean;\n\n // COUNTRY\n private readonly countryOptions$ = inject(COUNTRY_OPTIONS_TOKEN);\n private readonly addressService = inject(AddressService);\n private currentConfig: CountryConfiguration;\n\n // PROVINCE\n protected selectFirstProvince = false;\n protected provinces = [];\n\n protected readonly formGroup: FormGroup = new FormGroup({\n country: inject(COUNTRY_CONTROL_TOKEN),\n });\n\n protected formFields: TemplateFormField[] = [];\n private disabled: boolean;\n\n constructor(private fb: UntypedFormBuilder) {}\n\n private async updateForm(a: FormField, config = this.currentConfig) {\n await this.updateFormFields(config);\n removeOrphanedControls(this.formGroup, this.formFields);\n this.formGroup.patchValue(a);\n }\n\n private async setInitialValues(a: Address | null) {\n const countryOption = (await firstValueFrom(this.countryOptions$)).find((o) => o.code === a.country);\n if (!countryOption) {\n this.formGroup.controls.country.setValue(null, { emitEvent: false });\n }\n const config = await this.getUpdatedCountryConfig(countryOption);\n if (config) {\n const prov = this.addressService.getProvince(config.zones, a.province);\n const province: State | null = prov.code ? { code: prov.code, name: prov.name } : null;\n const formValues = { ...a, province, country: countryOption };\n return this.updateForm(formValues);\n }\n }\n\n protected async countryChanged(country: Country): Promise {\n const config = await this.getUpdatedCountryConfig(country);\n\n const value = { ...this.formGroup.value, province: null };\n return this.updateForm(value, config);\n }\n\n protected async getUpdatedCountryConfig(country: Country): Promise {\n if (this.currentConfig?.code === country.code) return this.currentConfig;\n this.currentConfig = await firstValueFrom(\n this.addressService.getCountry(country.code).pipe(catchError(() => of(null))),\n );\n\n this.provinces = this.currentConfig?.zones || [];\n return this.currentConfig;\n }\n\n private async updateFormFields(c: CountryConfiguration): Promise {\n if (!c) return;\n\n const templates = await firstValueFrom(this.addressService.getOrderedFields(c.code));\n\n const requiredFields = c.formatting.required || [];\n this.formFields = templates.flat().reduce(\n (acc, field) => [\n ...acc,\n {\n key: field,\n label: c.labels[labelOverrides[field]] || c.labels[field],\n required: !!requiredFields.find((f) => f === field),\n },\n ],\n [],\n );\n\n this.formFields.forEach((field) => {\n const validators = this.getFieldValidators(field);\n const control = this.formGroup.get(field.key);\n if (control) {\n control.setValidators(validators);\n control.updateValueAndValidity();\n } else {\n this.formGroup.setControl(field.key, new FormControl('', validators));\n }\n });\n if (this.disabled) {\n this.formGroup.disable();\n }\n }\n\n private getFieldValidators(field: TemplateFormField): ValidatorFn[] {\n const validators = [];\n if (field.required) {\n validators.push(Validators.required);\n validators.push(NotOnlyWhitespaceValidator);\n }\n if (field.key === 'zip') {\n validators.push(SharedValidators.isValidPostalCode(this.currentConfig.code));\n }\n if (this.autoCompleteControls.indexOf(field.key) >= 0) validators.push(autoCompleteValidator);\n return validators;\n }\n\n provinceName(province: State): string {\n return province ? province.name : '';\n }\n\n removePlace(placeId: string): void {\n const places: GooglePlace[] = this.serviceAreaForm.get('places')?.value || [];\n this.serviceAreaForm.get('places').setValue(places.filter((p) => p.placeId !== placeId));\n this.markServiceAreaDirty();\n }\n\n addPlace(place: GooglePlace): void {\n const places: GooglePlace[] = this.serviceAreaForm.get('places').value || [];\n\n console.log(places);\n if (places.filter((p) => p.placeId === place.placeId)?.length > 0) {\n return;\n }\n places.push(place);\n this.serviceAreaForm.get('places').setValue(places);\n this.markServiceAreaDirty();\n }\n\n markServiceAreaDirty(): void {\n this.serviceAreaForm.markAsDirty();\n this.serviceAreaForm.get('places').markAsDirty();\n this.serviceAreaForm.get('businessType').markAsDirty();\n }\n\n updateServiceArea(checked: boolean): void {\n if (checked) {\n this.serviceAreaForm.enable();\n this.serviceAreaForm.setValue({ businessType: 1, places: [] });\n this.markServiceAreaDirty();\n } else {\n this.serviceAreaForm.disable();\n }\n }\n}\n\nfunction formatAddress(formValues: FormField): Address {\n const { country } = formValues;\n\n const address: Address = {\n country: (country as Country)?.code || null,\n province: (formValues.province as State)?.code || null,\n address1: formValues.address1 || null,\n address2: formValues.address2 || null,\n city: formValues.city || null,\n zip: formValues.zip || null,\n };\n\n return address;\n}\n\nfunction autoCompleteValidator(control: AbstractControl): ValidationErrors | null {\n return !control.value || control.value?.code ? null : { invalidSelection: true };\n}\n\nfunction removeOrphanedControls(formGroup: FormGroup, fields: TemplateFormField[]) {\n const formFields = fields.map((field) => field.key);\n Object.keys(formGroup.controls).forEach((key) => {\n if (formFields.indexOf(key) < 0) {\n formGroup.removeControl(key);\n }\n });\n}\n\n@Pipe({\n name: 'businessAddressPipe',\n standalone: true,\n})\nexport class businessAddressPipe implements PipeTransform {\n private readonly addressService = inject(AddressService);\n\n transform(formValues: FormField): Observable {\n const { country } = formValues;\n if (!country) return of('');\n\n const address = formatAddress(formValues);\n return this.addressService.mailingAddress$(address);\n }\n}\n\n@Pipe({\n name: 'filterProvinces',\n standalone: true,\n})\nexport class FilterProvincesPipe implements PipeTransform {\n transform(provinces: State[], searchTerm: string): State[] {\n if (!searchTerm) return provinces;\n return provinces.filter((province) => {\n const { name = '' } = province;\n return name.toLocaleLowerCase().indexOf(searchTerm.toLocaleLowerCase()) >= 0;\n });\n }\n}\n", "
\n \n \n \n {{ 'FRONTEND.BUSINESSES.SERVICE_AREA_BUSINESS' | translate }}\n \n \n \n \n \n \n \n {{ 'FRONTEND.BUSINESSES.CUSTOMER_LOCATION_ONLY' | translate }}\n \n \n {{ 'FRONTEND.BUSINESSES.CUSTOMER_AND_BUSINESS_LOCATION' | translate }}\n \n \n \n\n \n {{ 'FRONTEND.BUSINESSES.SERVICE_AREAS' | translate }}\n \n 0 ? 'rgba(0, 0, 0, 0.6)' : '#c62828'\"\n >\n {{ serviceAreaForm.get('places')?.value?.length }}/20\n \n \n {{ 'FRONTEND.BUSINESSES.SERVICE_AREAS_ERROR' | translate }}\n \n \n \n \n {{ place.placeName }}\n cancel\n \n \n \n \n
\n
\n \n -1\"\n bottomSpacing=\"small\"\n class=\"address-form-field-{{ field.key }}\"\n >\n \n {{ (field.key === 'address2' ? 'FRONTEND.BUSINESSES.ADDRESS_FORM.ADDRESS_2' : field.label) | translate }}\n \n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.REQUIRED_FIELD' | translate }}\n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.INVALID' | translate }} {{ field.label }}\n \n \n\n \n \n {{ field.label }}\n \n \n \n {{ option.name }}\n \n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.REQUIRED_FIELD' | translate }}\n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.INVALID' | translate }} {{ field.label }}\n \n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.INVALID_SELECTION' | translate }}\n \n \n
\n
\n
\n\n
\n \n {{ 'FRONTEND.BUSINESSES.ADDRESS_FORM.PREVIEW' | translate }}\n \n {{ address }}\n
\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyCheckboxModule } from '@vendasta/galaxy/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatChipsModule } from '@angular/material/chips';\n\nimport { PlaceAutocompleteComponent } from './place-autocomplete/place-autocomplete.component';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { AddressService } from '../address/address.service';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport {\n COUNTRY_OPTIONS_TOKEN,\n CountryInputComponent,\n defaultCountryControlProvider,\n} from '../inputs/country-input.component';\nimport { AddressFormV2Component, FilterProvincesPipe, businessAddressPipe } from './address-form-v2.component';\n\nconst MaterialModules = [\n MatAutocompleteModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatRadioModule,\n MatExpansionModule,\n MatChipsModule,\n];\n\n@NgModule({\n declarations: [AddressFormV2Component, PlaceAutocompleteComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/address',\n baseTranslation: baseTranslation,\n }),\n ...MaterialModules,\n CountryInputComponent,\n GalaxyFormFieldModule,\n businessAddressPipe,\n FilterProvincesPipe,\n GalaxyCheckboxModule,\n ],\n exports: [AddressFormV2Component],\n providers: [\n AddressService,\n {\n provide: COUNTRY_OPTIONS_TOKEN,\n useFactory: (a: AddressService) => a.listAllCountryOptions(),\n deps: [AddressService],\n },\n defaultCountryControlProvider,\n ],\n})\nexport class AddressFormV2Module {}\n"], "mappings": "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", "names": ["FieldName", "FIELD_REGEXP", "FIELDS_MAPPING", "FieldName", "FirstName", "LastName", "Country", "City", "PostalCode", "Province", "Address1", "Address2", "Phone", "Company", "LINE_DELIMITER", "DEFAULT_FORM_LAYOUT", "DEFAULT_SHOW_LAYOUT", "AddressService", "constructor", "addressApiService", "translateService", "countryConfigCache", "Map", "countryOptionCache", "mailingAddress$", "address", "getCountry", "country", "pipe", "map", "format", "addressLines", "filter", "line", "join", "shortAddress$", "address1", "address2", "city", "province", "zip", "countryCode", "onLangChange", "langChangeEvent", "lang", "startWith", "currentLang", "defaultLang", "switchMap", "locale", "cacheKey", "has", "of", "get", "countryConfig$", "getCountryConfiguration", "tap", "countryConfig", "set", "catchError", "EMPTY", "shareReplay", "listAllCountryOptions", "countryOptions$", "countryOptions", "getOrderedFields", "formatting", "edit", "split", "fields", "result", "match", "field", "toString", "getProvince", "provinces", "provinceCode", "find", "code", "name", "show", "renderLineTemplate", "trim", "template", "lineIsEmpty", "forEach", "key", "addressKey", "replace", "zones", "\u0275\u0275inject", "AddressAPIService", "TranslateService", "factory", "\u0275fac", "_AddressService", "en_devel_default", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "option_r2", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "name", "\u0275\u0275pipeBind1", "COUNTRY_OPTIONS_TOKEN", "InjectionToken", "COUNTRY_CONTROL_TOKEN", "defaultCountryControlProvider", "provide", "useFactory", "FormControl", "Validators", "required", "countryValidator", "countryOptions", "firstValueFrom", "inject", "countryControl", "__async", "country", "value", "countries", "invalidCountry", "find", "c", "code", "toLowerCase", "CountryInputComponent", "constructor", "countrySelected", "EventEmitter", "countries$", "filteredCountries$", "pipe", "switchMap", "control", "valueChanges", "map", "_filter", "shareReplay", "bufferSize", "refCount", "_preferredCountry", "_elementRef", "ElementRef", "countryName", "option", "onFocusOut", "target", "nativeElement", "contains", "length", "selectCountryOption", "filter", "includes", "setValue", "emit", "activatedOption", "tabHandler", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275listener", "$event", "relatedTarget", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275resetView", "\u0275\u0275template", "CountryInputComponent_mat_option_7_Template", "CountryInputComponent_glxy_error_9_Template", "auto_r3", "errors", "AsyncPipe", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "GalaxyFormFieldModule", "FormFieldComponent", "LabelDirective", "ErrorDirective", "MatAutocompleteModule", "MatAutocomplete", "MatOption", "MatAutocompleteTrigger", "MatFormFieldModule", "MatIconModule", "MatInputModule", "MatInput", "NgForOf", "NgIf", "ReactiveFormsModule", "FormControlDirective", "TranslateModule", "TranslatePipe", "styles", "_CountryInputComponent", "MaterialModules", "MatAutocompleteModule", "MatFormFieldModule", "MatInputModule", "MatIconModule", "MatProgressSpinnerModule", "GalaxyInputModule", "AddressFormModule", "AddressService", "provide", "COUNTRY_OPTIONS_TOKEN", "useFactory", "a", "listAllCountryOptions", "deps", "imports", "CommonModule", "FormsModule", "ReactiveFormsModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "baseTranslation", "GalaxyFormFieldModule", "CountryInputComponent", "MatCheckboxModule", "MatChipsModule", "_AddressFormModule", "PlaceAutocompleteComponent", "constructor", "editDisabled", "selected", "EventEmitter", "geoLocation", "b", "latitude", "undefined", "longitude", "center", "google", "maps", "LatLng", "maxBounds", "Circle", "radius", "getBounds", "ngAfterViewInit", "getPlaceAutocomplete", "options", "types", "bounds", "strictBounds", "fields", "autocomplete", "places", "Autocomplete", "addresstext", "nativeElement", "event", "addListener", "place", "getPlace", "invokeEvent", "autocompleteInput", "blur", "focus", "emit", "GooglePlace", "placeId", "place_id", "placeName", "formatName", "city", "address_components", "find", "component", "indexOf", "long_name", "province", "short_name", "country", "joinFirstItems", "name", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275twoWayListener", "$event", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275twoWayBindingSet", "\u0275\u0275resetView", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275twoWayProperty", "_PlaceAutocompleteComponent", "items", "delimiter", "max", "filter", "Boolean", "slice", "join", "NotOnlyWhitespaceValidator", "control", "value", "trim", "length", "whitespace", "totalLengthOfRepeatedFieldValidator", "maxLength", "friendlyName", "filter", "val", "join", "lengthOfRepeatedField", "primaryIsNotInAdditionalSalespeople", "salespersonNameFromValue", "fg", "primaryId", "controls", "additionalIds", "indexOf", "setErrors", "error", "primaryName", "markAsTouched", "primaryIsSelectedWhenHavingAdditionalSalespeople", "primaryNotSelected", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r3", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "addPlace", "\u0275\u0275elementEnd", "\u0275\u0275property", "editDisabled", "__addressData", "location", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "place_r5", "_r4", "$implicit", "removePlace", "placeId", "placeName", "\u0275\u0275elementContainerStart", "_r1", "updateServiceArea", "target", "checked", "i0", "markServiceAreaDirty", "\u0275\u0275template", "AddressFormV2Component_ng_container_2_business_place_autocomplete_24_Template", "AddressFormV2Component_ng_container_2_glxy_error_27_Template", "AddressFormV2Component_ng_container_2_mat_chip_option_29_Template", "serviceAreaToggle", "serviceAreaForm", "enabled", "get", "value", "\u0275\u0275textInterpolate", "\u0275\u0275styleProp", "tmp_16_0", "length", "tmp_17_0", "tmp_18_0", "tmp_19_0", "\u0275\u0275textInterpolate2", "field_r6", "label", "\u0275\u0275element", "AddressFormV2Component_form_3_div_2_glxy_form_field_1_glxy_error_5_Template", "AddressFormV2Component_form_3_div_2_glxy_form_field_1_glxy_error_6_Template", "\u0275\u0275classMapInterpolate1", "key", "required", "formGroup", "controls", "hasError", "option_r7", "name", "AddressFormV2Component_form_3_div_2_glxy_form_field_2_mat_option_7_Template", "AddressFormV2Component_form_3_div_2_glxy_form_field_2_glxy_error_9_Template", "AddressFormV2Component_form_3_div_2_glxy_form_field_2_glxy_error_10_Template", "AddressFormV2Component_form_3_div_2_glxy_form_field_2_glxy_error_11_Template", "provinceAutocomplete_r9", "provinceInput_r8", "provinceName", "\u0275\u0275pipeBind2", "provinces", "AddressFormV2Component_form_3_div_2_glxy_form_field_1_Template", "AddressFormV2Component_form_3_div_2_glxy_form_field_2_Template", "dynamicControls", "indexOf", "AddressFormV2Component_form_3_div_2_Template", "formFields", "address_r10", "labelOverrides", "zip", "province", "AddressFormV2Component", "addressData", "a", "setInitialValues", "parentForm", "form", "disabled", "disable", "addControl", "constructor", "fb", "showAddressPreview", "requiredFields", "autoCompleteControls", "countryOptions$", "inject", "COUNTRY_OPTIONS_TOKEN", "addressService", "AddressService", "selectFirstProvince", "FormGroup", "country", "COUNTRY_CONTROL_TOKEN", "updateForm", "__async", "config", "currentConfig", "updateFormFields", "removeOrphanedControls", "patchValue", "countryOption", "firstValueFrom", "find", "o", "code", "setValue", "emitEvent", "getUpdatedCountryConfig", "prov", "getProvince", "zones", "formValues", "__spreadProps", "__spreadValues", "countryChanged", "getCountry", "pipe", "catchError", "of", "c", "templates", "getOrderedFields", "formatting", "flat", "reduce", "acc", "field", "labels", "f", "forEach", "validators", "getFieldValidators", "control", "setValidators", "updateValueAndValidity", "setControl", "FormControl", "push", "Validators", "NotOnlyWhitespaceValidator", "SharedValidators", "isValidPostalCode", "autoCompleteValidator", "places", "filter", "p", "place", "console", "log", "markAsDirty", "enable", "businessType", "\u0275\u0275directiveInject", "UntypedFormBuilder", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "AddressFormV2Component_ng_container_2_Template", "AddressFormV2Component_form_3_Template", "AddressFormV2Component_div_4_Template", "businessAddressPipe", "FilterProvincesPipe", "styles", "_AddressFormV2Component", "formatAddress", "address1", "address2", "city", "invalidSelection", "fields", "map", "Object", "keys", "removeControl", "transform", "address", "mailingAddress$", "pure", "standalone", "_businessAddressPipe", "searchTerm", "toLocaleLowerCase", "_FilterProvincesPipe", "MaterialModules", "MatAutocompleteModule", "MatFormFieldModule", "MatInputModule", "MatIconModule", "MatProgressSpinnerModule", "MatTooltipModule", "MatRadioModule", "MatExpansionModule", "MatChipsModule", "AddressFormV2Module", "AddressService", "provide", "COUNTRY_OPTIONS_TOKEN", "useFactory", "a", "listAllCountryOptions", "deps", "defaultCountryControlProvider", "imports", "CommonModule", "FormsModule", "ReactiveFormsModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "baseTranslation", "CountryInputComponent", "GalaxyFormFieldModule", "GalaxyCheckboxModule", "_AddressFormV2Module"] }