{"version":3,"sources":["webpack:///./src/services/supplier-voucher-service.ts","webpack:///./src/services/grant-directory-service.ts","webpack:///./src/shared/utils/scroll-into-view.ts","webpack:///./src/services/supplier-service.ts","webpack:///./src/grants/suppliers/supplier-details.ts","webpack:///./src/grants/suppliers/supplier-details.html","webpack:///./src/grants/suppliers/supplier-portal.ts","webpack:///./src/grants/suppliers/supplier-portal.html","webpack:///./src/shared/controls/grants-directory/search-filter-panel.ts","webpack:///./src/shared/controls/grants-directory/search-filter-panel.html","webpack:///./src/shared/controls/grants-directory/supplier-list.ts","webpack:///./src/shared/controls/grants-directory/supplier-list.html","webpack:///./src/shared/controls/grants-directory/supplier-profile.ts","webpack:///./src/shared/controls/grants-directory/supplier-profile.html"],"names":["requestHandler","downloadFileService","searchRounds","filter","qs","$","param","this","get","supplierId","getRedemptionById","redemptionId","getRedemptionByRoundIdId","grantRoundId","getRedemptionStatus","submitRedemptionRequest","request","post","searchVouchers","getVoucher","voucherNumber","acceptVoucher","redeemedBySupplierId","removeVoucher","updateVoucher","put","checkVouchers","voucherNumberList","bulkAcceptVouchers","requests","exportInvalidVouchers","getAvailableSupplier","voucherWorkCompleted","workComplete","exportRedeemedVouchers","searchRequest","then","response","downloadFromBlob","catch","error","console","log","SupplierVoucherService","profileService","authManager","router","getApplyCheck","contentId","roundId","getActiveProfile","profile","query","profileType","profileIdentifier","getGrantById","grantId","getGrantByIdOrSlug","identifier","getApplyCheckByIdOrSlug","contentIdentifier","roundIdentifier","hasOldUrl","slug","type","latestSlug","Constants","SlugType","PublicContent","navigateToRoute","ExternalPageRoutes","GrantsDetail","GrantRound","getMostRecentGrants","searchGrants","grantEnquiry","enquiry","GrantDirectoryService","scrollIntoViewExternal","element","offset","document","body","clientWidth","align","top","topOffset","search","getById","getAwardedSupplierById","getSupplierLocalityOptions","getServices","getByOrganisationId","organisationId","searchRedemptionRequests","redemptionSettingsId","getRedemptionRequestById","requestId","SupplierService","supplierService","activate","params","data","supplier","back","SupplierDetails","module","exports","grantDirectoryService","supplierVoucherService","deepObserver","page","grantDetailId","pageSize","sortColumn","sortDirection","keyword","localityIds","categoryIds","subscriptions","selectSupplier","promises","locations","map","x","value","localityId","label","name","categories","mapServicesToCheckboxItem","id","text","children","getData","Number","isNaN","push","grantName","redemptionTitle","Promise","all","attached","observeWithDebounce","detached","length","pop","dispose","searching","results","finally","SupplierPortal","namePrefix","collapsed","disabled","toggleCollapse","collapsedChanged","newValue","oldValue","find","slideToggle","Array","SearchFilterPanel","Element","childrenVisible","bindingEngine","menu","MmenuLight","offCanvasElement","drawer","offcanvas","position","propertyObserver","subscribe","resultContainer","collectionObserver","changed","addedCount","categoryId","index","category","child","findIndex","splice","openFilter","open","clear","SupplierList","knownPlatforms","domain","icon","socialMediaLinks","result","link","platform","indexOf","y","mondayTradingHours","tuesdayTradingHours","wednesdayTradingHours","thursdayTradingHours","fridayTradingHours","saturdayTradingHours","sundayTradingHours"],"mappings":"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","file":"assets/js/supplier-portal.912346776b203aa3cee6.chunk.js","sourcesContent":["import { autoinject } from \"aurelia-framework\";\nimport { Dto } from \"project/project\";\nimport { SharedDto } from \"project/project-shared\";\nimport { DownloadFileService } from \"shared/utils/download-file-service\";\nimport { RequestHandler } from \"./request-handler\";\n\n@autoinject\nexport class SupplierVoucherService {\n\n constructor(private readonly requestHandler: RequestHandler, private readonly downloadFileService: DownloadFileService) {\n\n }\n\n searchRounds(filter: Dto.IExternalSupplierRoundSearchRequestDto): Promise> {\n var qs = $.param(filter);\n return this.requestHandler.get(`suppliers/${filter.supplierId}/rounds?${qs}`);\n }\n\n getRedemptionById(supplierId: number, redemptionId: number): Promise {\n return this.requestHandler.get(`suppliers/${supplierId}/rounds/${redemptionId}`);\n }\n \n getRedemptionByRoundIdId(grantRoundId: number): Promise {\n return this.requestHandler.get(`suppliers/get-redemption/${grantRoundId}`);\n }\n\n getRedemptionStatus(supplierId: number): Promise {\n return this.requestHandler.get(`suppliers/${supplierId}/redemption-status`)\n }\n\n submitRedemptionRequest(supplierId: number, request: Dto.IVoucherRedemptionRequestDto): Promise {\n return this.requestHandler.post(`suppliers/${supplierId}/redemption-request`, request);\n }\n\n searchVouchers(filter: Dto.ISupplierVoucherSearchRequestDto): Promise> {\n var qs = $.param(filter);\n return this.requestHandler.get(`suppliers/vouchers?${qs}`);\n }\n\n getVoucher(voucherNumber: string): Promise {\n return this.requestHandler.get(`suppliers/vouchers/${voucherNumber}`);\n }\n\n acceptVoucher(voucherNumber: string, redeemedBySupplierId: number, redemptionId: number, request: Dto.IAcceptVoucherRequestDto): Promise {\n return this.requestHandler.post(`suppliers/vouchers/${voucherNumber}/accept-voucher?supplierId=${redeemedBySupplierId}&redemptionId=${redemptionId}`, request);\n }\n\n removeVoucher(voucherNumber: string): Promise {\n return this.requestHandler.post(`suppliers/vouchers/${voucherNumber}/remove-voucher`);\n }\n\n updateVoucher(voucherNumber: string, request: Dto.ISupplierUpdateVoucherRequestDto): Promise {\n return this.requestHandler.put(`suppliers/vouchers/${voucherNumber}`, request);\n }\n\n checkVouchers(voucherNumberList: string[], supplierId: number, redemptionId: number): Promise {\n return this.requestHandler.post(`suppliers/${supplierId}/redemption/${redemptionId}/check-vouchers`, voucherNumberList);\n }\n\n bulkAcceptVouchers(requests: Dto.IAcceptVoucherRequestDto[], redeemedBySupplierId: number, redemptionId: number): Promise {\n return this.requestHandler.post(`suppliers/vouchers/bulk-accept-voucher?supplierId=${redeemedBySupplierId}&redemptionId=${redemptionId}`, requests);\n }\n\n exportInvalidVouchers(voucherNumberList: string[], supplierId: Number, redemptionId: Number): Promise {\n return this.requestHandler.post(`suppliers/vouchers/export/invalid/${supplierId}/redemption/${redemptionId}`, voucherNumberList);\n }\n\n getAvailableSupplier(grantRoundId:number): Promise {\n return this.requestHandler.get(`suppliers/available-supplier/${grantRoundId}`);\n }\n\n voucherWorkCompleted(workComplete:Dto.IWorkCompleteRequestDto): Promise {\n return this.requestHandler.post(`vouchers/work-complete`, workComplete);\n }\n\n exportRedeemedVouchers(searchRequest: Dto.ISupplierVoucherSearchRequestDto): Promise {\n var qs = $.param(searchRequest);\n return this.requestHandler.get(`suppliers/export/vouchers?${qs}`)\n .then(response => {\n this.downloadFileService.downloadFromBlob(response);\n }).catch(error => {\n console.log(error);\n });\n }\n}\n","import { RequestHandler } from \"./request-handler\"\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\nimport { ProfileService } from \"services/profile-service\";\r\nimport { AuthManager } from \"auth/auth-manager\";\r\nimport { Dto } from \"project/project\";\r\nimport { SharedDto } from \"project/project-shared\";\r\nimport { Router } from \"aurelia-router\";\r\n\r\n@autoinject\r\nexport class GrantDirectoryService {\r\n constructor(private requestHandler: RequestHandler, private readonly profileService: ProfileService, private authManager: AuthManager, private readonly router: Router) { }\r\n\r\n getApplyCheck(contentId: number, roundId: number): Promise {\r\n return this.profileService.getActiveProfile().then((profile) => {\r\n let query = `?roundId=${roundId}`;\r\n if (profile != null && profile.profileType == \"Organisation\") {\r\n query = `${query}&organisationId=${profile.profileIdentifier}`\r\n }\r\n return this.requestHandler.get(`grants/${contentId}/apply-check${query}`);\r\n });\r\n }\r\n\r\n getGrantById(grantId: number): Promise {\r\n return this.profileService.getActiveProfile().then(profile => {\r\n let query = '';\r\n if (profile != null && profile.profileType == \"Organisation\") {\r\n query = `?organisationId=${profile.profileIdentifier}`\r\n }\r\n return this.requestHandler.get(`grants/${grantId}${query}`);\r\n });\r\n }\r\n\r\n getGrantByIdOrSlug(identifier: string | number): Promise {\r\n return this.profileService.getActiveProfile().then(profile => {\r\n let query = '';\r\n if (profile != null && profile.profileType == \"Organisation\") {\r\n query = `?organisationId=${profile.profileIdentifier}`\r\n }\r\n return this.requestHandler.get(`grants/${identifier}${query}`);\r\n });\r\n }\r\n\r\n getApplyCheckByIdOrSlug(contentIdentifier: number | string, roundIdentifier: number | string): Promise {\r\n return this.profileService.getActiveProfile().then((profile) => {\r\n let query = `?roundId=${roundIdentifier}`;\r\n if (profile != null && profile.profileType == \"Organisation\") {\r\n query = `${query}&organisationId=${profile.profileIdentifier}`\r\n }\r\n return this.requestHandler.get(`grants/${contentIdentifier}/apply-check${query}`);\r\n });\r\n }\r\n\r\n hasOldUrl(slug: string, type: string): void {\r\n this.requestHandler.get(`application/latest-slug/${slug}/${type}`).then(latestSlug => {\r\n //redirect to the latest slug?\r\n if (type == Dto.Constants.SlugType[Dto.Constants.SlugType.PublicContent]) {\r\n this.router.navigateToRoute(Dto.Constants.ExternalPageRoutes[Dto.Constants.ExternalPageRoutes.GrantsDetail], {\r\n contentIdentifier: latestSlug\r\n });\r\n } else if (type == Dto.Constants.SlugType[Dto.Constants.SlugType.GrantRound]) {\r\n //??\r\n }\r\n });\r\n }\r\n\r\n getMostRecentGrants(): Promise { \r\n return this.requestHandler.post(`grants/search`); \r\n }\r\n\r\n searchGrants(searchRequest: Dto.IPublicContentSearchFilterRequestDto): Promise {\r\n return this.requestHandler.post(\r\n `grants/search`, searchRequest);\r\n }\r\n\r\n grantEnquiry(contentId: number, enquiry: Dto.IPublicContentEnquiryDto): Promise {\r\n return this.requestHandler.post(`grants/${contentId}/enquire`, enquiry);\r\n }\r\n}\r\n","\nimport scrollIntoView from \"scroll-into-view\";\n\nexport function scrollIntoViewExternal(element: Element) {\n\n let offset = 10;\n \n //note 768 is the SM breakpoint where the nav gets larger, so we're offsetting the nav.\n if (document.body.clientWidth >= 768) {\n offset = 130;\n }\n\n scrollIntoView(element, { align: { top: 0, topOffset: offset } });\n}\n","import { autoinject } from 'aurelia-framework';\nimport { Dto } from 'project/project';\nimport { SharedDto } from 'project/project-shared';\nimport { RequestHandler } from './request-handler';\n\n@autoinject\nexport class SupplierService {\n\n constructor(private readonly requestHandler: RequestHandler) { }\n\n search(contentIdentifier: number | string, request: SharedDto.SupplierPortal.ISupplierPortalSearchRequestDto): Promise> {\n return this.requestHandler.post(`grants/${contentIdentifier}/suppliers/search`, request);\n }\n\n getById(contentIdentifier: number | string, supplierId: number): Promise {\n return this.requestHandler.get(`grants/${contentIdentifier}/suppliers/${supplierId}`);\n }\n\n // TODO: current profile must have access to the associated awarded grant.\n getAwardedSupplierById(contentIdentifier: number | string, supplierId: number): Promise {\n return this.requestHandler.get(`grants/${contentIdentifier}/suppliers/${supplierId}`);\n }\n \n getSupplierLocalityOptions(contentIdentifier: number | string): Promise {\n return this.requestHandler.get(`grants/${contentIdentifier}/suppliers/localities`);\n }\n\n getServices(contentIdentifier: number | string): Promise {\n return this.requestHandler.get(`grants/${contentIdentifier}/suppliers/services`);\n }\n\n getByOrganisationId(organisationId: number): Promise {\n // TP-515 require this function to run twice at the same time, so we added a 5 second cache to eliminate the need to run it twice \n return this.requestHandler.get(`suppliers?organisationId=${organisationId}`, 5);\n }\n\n searchRedemptionRequests(filter: Dto.IExternalVoucherRedemptionRequestFilterDto): Promise> {\n return this.requestHandler.post(`suppliers/${filter.supplierId}/rounds/${filter.redemptionSettingsId}/redemption-requests/search`, filter);\n }\n\n getRedemptionRequestById(supplierId: number, redemptionSettingsId: number, requestId: number): Promise {\n return this.requestHandler.get(`suppliers/${supplierId}/rounds/${redemptionSettingsId}/redemption-requests/${requestId}`);\n }\n}\n","import { autoinject } from \"aurelia-framework\";\nimport { Router } from \"aurelia-router\";\nimport { SharedDto } from \"project/project-shared\";\nimport { SupplierService } from \"services/supplier-service\";\n\n@autoinject\nexport class SupplierDetails {\n contentIdentifier: string | number;\n supplierId: number;\n supplier: SharedDto.SupplierPortal.ISupplierPortalDetailDto;\n\n constructor(private readonly supplierService: SupplierService,\n private readonly router: Router) {\n\n }\n\n activate(params: { contentIdentifier: string | number, supplierId: number }) {\n this.supplierId = params.supplierId;\n this.contentIdentifier = params.contentIdentifier;\n return this.supplierService.getById(this.contentIdentifier, this.supplierId).then(data => this.supplier = data);\n }\n\n back() {\n this.router.navigateToRoute('supplier-list', { contentIdentifier: this.contentIdentifier })\n }\n}\n","module.exports = \" \";","import { autoinject, Disposable, singleton } from \"aurelia-framework\";\nimport { Router } from \"aurelia-router\";\nimport { SharedDto } from \"project/project-shared\";\nimport { GrantDirectoryService } from \"services/grant-directory-service\";\nimport { SupplierService } from \"services/supplier-service\";\nimport { SearchPanelCheckboxItem } from \"shared/controls/grants-directory/search-filter-panel\";\nimport { DeepObserver } from \"shared/utils/deep-observer\";\nimport { toTitleCase } from \"shared/utils/to-title-case\";\nimport debounce from 'debounce-promise';\nimport { SupplierVoucherService } from \"services/supplier-voucher-service\";\nimport { promise } from \"selenium-webdriver\";\nimport { isNumber } from \"util\";\n\n@autoinject\n@singleton()\nexport class SupplierPortal {\n searching: boolean;\n filter: SharedDto.SupplierPortal.ISupplierPortalSearchRequestDto = {\n page: 1,\n grantDetailId: null,\n pageSize: 6,\n sortColumn: null,\n sortDirection: null,\n keyword: '',\n localityIds: [],\n categoryIds: []\n };\n results: SharedDto.IPagedResult;\n locations: SearchPanelCheckboxItem[];\n categories: SearchPanelCheckboxItem[];\n contentIdentifier: any;\n subscriptions: Disposable[] = [];\n grantName: string;\n searchPromise: Promise;\n\n constructor(private readonly supplierService: SupplierService,\n private readonly router: Router,\n private readonly grantDirectoryService: GrantDirectoryService,\n private readonly supplierVoucherService: SupplierVoucherService,\n private readonly deepObserver: DeepObserver) { }\n\n activate(params: { contentIdentifier: any}) {\n this.contentIdentifier = params.contentIdentifier;\n\n let promises = [\n this.supplierService.getSupplierLocalityOptions(params.contentIdentifier).then(data => this.locations = mapLocalityToCheckboxItem(data)),\n this.supplierService.getServices(params.contentIdentifier).then(data => this.categories = mapServicesToCheckboxItem(data)),\n this.getData()\n ];\n\n var roundId = Number(this.contentIdentifier);\n\n if(!isNaN(roundId)) {\n \n promises.push(this.supplierVoucherService.getRedemptionByRoundIdId(roundId).then(data => this.grantName = data ? data.redemptionTitle : \"\"))\n } else {\n promises.push(this.grantDirectoryService.getGrantByIdOrSlug(this.contentIdentifier).then(data => this.grantName = data ? data.grantName : \"\"))\n }\n\n return Promise.all(promises);\n }\n\n attached() {\n this.subscriptions.push(\n this.deepObserver.observeWithDebounce(this, 'filter', () => {\n this.getData();\n })\n );\n }\n\n detached() {\n while (this.subscriptions.length > 0) {\n this.subscriptions.pop().dispose();\n }\n }\n\n getData(): Promise {\n this.searching = true;\n return this.supplierService\n .search(this.contentIdentifier, this.filter)\n .then(data => this.results = data)\n .finally(() => this.searching = false);\n }\n\n selectSupplier = (supplierId: number) => {\n this.router.navigateToRoute('supplier-profile', { supplierId: supplierId, contentIdentifier: this.contentIdentifier })\n }\n\n}\n\n\nfunction mapLocalityToCheckboxItem(locations: SharedDto.ILocalityOptionDto[]): SearchPanelCheckboxItem[] {\n return locations.map(x => {\n return {\n value: x.localityId,\n label: toTitleCase(x.name)\n }\n });\n}\nfunction mapServicesToCheckboxItem(categories: SharedDto.ICodeTreeStructureDto[]): SearchPanelCheckboxItem[] {\n return categories.map(x => {\n return {\n value: x.id,\n label: x.text,\n children: mapServicesToCheckboxItem(x.children)\n }\n });\n}\n","module.exports = \" \";","import { bindable, customElement, bindingMode, autoinject, computedFrom } from \"aurelia-framework\";\nimport { SharedDto } from \"project/project-shared\";\n\n\n@autoinject\n@customElement(\"search-filter-panel\")\n\nexport class SearchFilterPanel {\n @bindable() title: string;\n @bindable() options: Array;\n @bindable() selectedValues: Array;\n @bindable() namePrefix: string = \"changeme\";\n @bindable() collapsed: boolean = true;\n @bindable() disabled: boolean = false;\n\n constructor(private element: Element) {\n }\n\n\n toggleCollapse() {\n this.collapsed = !this.collapsed;\n }\n\n collapsedChanged(newValue, oldValue) {\n var panel = $(this.element).find('.filter-body');\n panel.slideToggle(200);\n }\n\n @computedFrom(\"collapsed\")\n get iconClass() {\n return this.collapsed ? \"fa fa-fw fa-chevron-down\" : \"fa fa-fw fa-chevron-up\";\n }\n\n}\n\nexport class SearchPanelCheckboxItem {\n value: number;\n label: string;\n childrenVisible: boolean = false;\n children: SearchPanelCheckboxItem[];\n\n constructor(value: number, label: string) {\n this.value = value;\n this.label = label\n }\n}\n","module.exports = \" \";","import { autoinject, bindable, computedFrom } from \"aurelia-framework\";\nimport { SharedDto } from \"project/project-shared\";\nimport { SearchPanelCheckboxItem } from \"./search-filter-panel\";\nimport \"./supplier-list.less\";\nimport { BindingEngine, Disposable } from \"aurelia-binding\";\nimport { scrollIntoViewExternal } from \"shared/utils/scroll-into-view\";\n\n@autoinject\nexport class SupplierList {\n\n //state\n @bindable() searching: boolean = false;\n @bindable() grantName: string;\n\n //filter options\n @bindable() categories: SearchPanelCheckboxItem[];\n @bindable() locations: SearchPanelCheckboxItem[];\n\n @bindable() results: SharedDto.IPagedResult;\n @bindable() filter: SharedDto.SupplierPortal.ISupplierPortalSearchRequestDto;\n\n //callbacks\n @bindable() selectSupplier: (supplierId: number) => void;\n keyword: string;\n offCanvasElement: HTMLElement;\n drawer: any;\n resultContainer: HTMLElement;\n subscriptions: Disposable[] = [];\n\n constructor(private readonly bindingEngine: BindingEngine) {\n\n }\n\n attached() {\n var menu = new MmenuLight(this.offCanvasElement);\n this.drawer = menu.offcanvas({ position: 'left' });\n this.subscriptions.push(\n this.bindingEngine.propertyObserver(this.filter, \"page\").subscribe(() => {\n scrollIntoViewExternal(this.resultContainer);\n }),\n this.bindingEngine.collectionObserver(this.filter.categoryIds).subscribe((changed) => {\n //this logic simply deselects the parent node if a child is selected\n //and deselects child nodes if a parent node is selected\n if (changed.length > 0 && changed[0].addedCount > 0) {\n let categoryId = this.filter.categoryIds[changed[0].index];\n let category = null;\n let parentCategory = null;\n for (let parent of this.categories) {\n if (parent.value == categoryId) {\n category = parent;\n break;\n }\n for (let child of parent.children) {\n if (child.value == categoryId) {\n parentCategory = parent;\n category = child;\n break;\n }\n }\n if (category) {\n break;\n }\n }\n\n if (parentCategory) {\n //remove parent\n if (this.filter.categoryIds.findIndex(x => +x == +parentCategory.value) > -1) {\n this.filter.categoryIds.splice(this.filter.categoryIds.findIndex(x => +x == +parentCategory.value), 1);\n }\n } else {\n //remove children\n for (let child of category.children) {\n if (this.filter.categoryIds.findIndex(x => +x == +child.value) > -1) {\n this.filter.categoryIds.splice(this.filter.categoryIds.findIndex(x => +x == +child.value), 1);\n }\n }\n }\n }\n })\n );\n }\n\n detached() {\n while (this.subscriptions.length > 0) {\n this.subscriptions.pop().dispose();\n }\n }\n\n search() {\n this.filter.keyword = this.keyword;\n //prevent submit to server\n return false;\n }\n\n openFilter() {\n this.drawer.open();\n }\n\n clear() {\n this.keyword = \"\";\n this.filter.keyword = \"\";\n if (this.filter.localityIds.length > 0) {\n this.filter.localityIds.splice(0, this.filter.localityIds.length);\n }\n if (this.filter.categoryIds.length > 0) {\n this.filter.categoryIds.splice(0, this.filter.categoryIds.length);\n }\n }\n\n @computedFrom(\"filter.categoryIds.length\", \"filter.localityIds.length\", \"filter.keyword\")\n get clearDisabled(): boolean {\n return this.filter.categoryIds.length === 0 &&\n this.filter.localityIds.length === 0 &&\n !this.filter.keyword;\n }\n\n}\n","module.exports = \" \";","import { bindable, computedFrom } from \"aurelia-framework\";\nimport { SharedDto } from \"project/project-shared\";\nimport \"./supplier-profile.less\";\n\ninterface KnownPlatform {\n domain: string;\n icon: string;\n}\n\nexport class SupplierProfile {\n\n @bindable() supplier: SharedDto.SupplierPortal.ISupplierPortalDetailDto;\n\n knownPlatforms: KnownPlatform[] = [\n { domain: \"youtube.com\", icon: \"fa-youtube-play\" },\n { domain: \"instagram.com\", icon: \"fa-instagram\" },\n { domain: \"facebook.com\", icon: \"fa-facebook-square\" },\n { domain: \"twitter.com\", icon: \"fa-twitter\" }\n ]\n\n @computedFrom(\"supplier.socialMediaLinks\")\n get knownLinks(): { link: string, icon: string }[] {\n if (!this.supplier.socialMediaLinks || this.supplier.socialMediaLinks.length === 0) {\n return [];\n }\n let result = [];\n for (let link of this.supplier.socialMediaLinks) {\n for (let platform of this.knownPlatforms) {\n if (link.indexOf(platform.domain) > -1) {\n result.push({\n link: link,\n icon: platform.icon\n });\n }\n }\n }\n return result;\n }\n\n @computedFrom(\"supplier.socialMediaLinks\")\n get otherLinks(): string[] {\n if (!this.supplier.socialMediaLinks || this.supplier.socialMediaLinks.length === 0) {\n return [];\n }\n return this.supplier.socialMediaLinks.filter(x =>\n this.knownPlatforms.findIndex(y => x.indexOf(y.domain) > -1) === -1\n );\n }\n\n get showTradingHours(): boolean {\n if (this.supplier.mondayTradingHours ||\n this.supplier.tuesdayTradingHours ||\n this.supplier.wednesdayTradingHours ||\n this.supplier.thursdayTradingHours ||\n this.supplier.fridayTradingHours ||\n this.supplier.saturdayTradingHours ||\n this.supplier.sundayTradingHours) {\n return true;\n }\n return false;\n }\n}\n","module.exports = \" \";"],"sourceRoot":""}