{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/dropdown-filter.component.ts","./src/app/components/loading-spinner/loading-spinner.component.ts","./src/app/components/loading-spinner/loading-spinner.component.html","./src/app/directives/content-management-switch.directive.ts","./src/app/directives/page-slug-validator.directive.ts","./src/app/directives/press-item-form-validator.directive.ts","./src/app/directives/service-area-form-validator.directive.ts","./src/app/directives/slide-draft-switch.directive.ts","./src/app/directives/slide-preview-switch.directive.ts","./src/app/directives/validate-geocoordinate.directive.ts","./src/app/guards/can-deactivate.guard.ts","./src/app/home/home.component.ts","./src/app/injection-tokens.ts","./src/app/main-section-header/main-section-header.component.ts","./src/app/main-section-header/main-section-header.component.html","./src/app/models/website-management/file-select-restrictions.ts","./src/app/models/website-management/image-link-type.ts","./src/app/models/website-management/price-color.ts","./src/app/nav/nav.component.ts","./src/app/nav/nav.component.html","./src/app/pipes/humanize.pipe.ts","./src/app/services/application-insights.service.ts","./src/app/services/google-maps.service.ts","./src/app/services/header.service.ts","./src/app/services/website-management/charity-management.service.ts","./src/app/services/website-management/content-management.service.ts","./src/app/services/website-management/dropoff-location-management.service.ts","./src/app/services/website-management/press-item-management.service.ts","./src/app/services/website-management/promotion-management.service.ts","./src/app/services/website-management/service-area-management.service.ts","./src/app/services/website-management/store-management.service.ts","./src/app/sign-in/sign-in.component.ts","./src/app/sign-out/sign-out.component.ts","./src/app/website-management/charity-management/charity-management.component.ts","./src/app/website-management/charity-management/charity-management.component.html","./src/app/website-management/components/carousel-draft/carousel-draft.component.ts","./src/app/website-management/components/carousel-draft/carousel-draft.component.html","./src/app/website-management/components/carousel-preview/carousel-preview.component.ts","./src/app/website-management/components/carousel-preview/carousel-preview.component.html","./src/app/website-management/components/content-draft/content-draft.component.ts","./src/app/website-management/components/content-draft/content-draft.component.html","./src/app/website-management/components/html-content-slide-draft/html-content-slide-draft.component.ts","./src/app/website-management/components/html-content-slide-draft/html-content-slide-draft.component.html","./src/app/website-management/components/html-content-slide-preview/html-content-slide-preview.component.ts","./src/app/website-management/components/html-content-slide-preview/html-content-slide-preview.component.html","./src/app/website-management/components/html-editor/html-editor.component.ts","./src/app/website-management/components/html-editor/html-editor.component.html","./src/app/website-management/components/location-hours/location-hours.component.ts","./src/app/website-management/components/location-hours/location-hours.component.html","./src/app/website-management/components/news-ribbon-draft/news-ribbon-draft.component.ts","./src/app/website-management/components/news-ribbon-draft/news-ribbon-draft.component.html","./src/app/website-management/components/news-ribbon-preview/news-ribbon-preview.component.ts","./src/app/website-management/components/news-ribbon-preview/news-ribbon-preview.component.html","./src/app/website-management/components/service-alert-draft/service-alert-draft.component.ts","./src/app/website-management/components/service-alert-draft/service-alert-draft.component.html","./src/app/website-management/components/service-alert-preview/service-alert-preview.component.ts","./src/app/website-management/components/service-alert-preview/service-alert-preview.component.html","./src/app/website-management/components/single-image-slide-draft/single-image-slide-draft.component.ts","./src/app/website-management/components/single-image-slide-draft/single-image-slide-draft.component.html","./src/app/website-management/components/single-image-slide-preview/single-image-slide-preview.component.ts","./src/app/website-management/components/single-image-slide-preview/single-image-slide-preview.component.html","./src/app/website-management/components/split-image-slide-draft/split-image-slide-draft.component.ts","./src/app/website-management/components/split-image-slide-draft/split-image-slide-draft.component.html","./src/app/website-management/components/split-image-slide-preview/split-image-slide-preview.component.ts","./src/app/website-management/components/split-image-slide-preview/split-image-slide-preview.component.html","./src/app/website-management/content-management/content-management.component.ts","./src/app/website-management/content-management/content-management.component.html","./src/app/website-management/dropoff-location-management/dropoff-location-management.component.ts","./src/app/website-management/dropoff-location-management/dropoff-location-management.component.html","./src/app/website-management/press-item-management/press-item-management.component.ts","./src/app/website-management/press-item-management/press-item-management.component.html","./src/app/website-management/promotion-management/promotion-management.component.ts","./src/app/website-management/promotion-management/promotion-management.component.html","./src/app/website-management/service-area-management/service-area-management.component.ts","./src/app/website-management/service-area-management/service-area-management.component.html","./src/app/website-management/slide-draft/slide-draft.component.ts","./src/app/website-management/slide-draft/slide-draft.component.html","./src/app/website-management/slide-preview/slide-preview.component.ts","./src/app/website-management/slide-preview/slide-preview.component.html","./src/app/website-management/store-management/store-management.component.ts","./src/app/website-management/store-management/store-management.component.html","./src/app/website-management/website-management/components/charities/charities.component.ts","./src/app/website-management/website-management/components/charities/charities.component.html","./src/app/website-management/website-management/components/components/components.component.ts","./src/app/website-management/website-management/components/components/components.component.html","./src/app/website-management/website-management/components/dropoff-locations/dropoff-locations.component.ts","./src/app/website-management/website-management/components/dropoff-locations/dropoff-locations.component.html","./src/app/website-management/website-management/components/press-items/press-items.component.ts","./src/app/website-management/website-management/components/press-items/press-items.component.html","./src/app/website-management/website-management/components/promotion-calendar/promotion-calendar.component.ts","./src/app/website-management/website-management/components/promotion-calendar/promotion-calendar.component.html","./src/app/website-management/website-management/components/service-areas/service-areas.component.ts","./src/app/website-management/website-management/components/service-areas/service-areas.component.html","./src/app/website-management/website-management/components/stores/stores.component.ts","./src/app/website-management/website-management/components/stores/stores.component.html","./src/app/website-management/website-management/website-management.component.ts","./src/app/website-management/website-management/website-management.component.html","./src/console-logger.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { MsalGuard } from '@azure/msal-angular';\nimport { CanDeactivateGuard } from './guards/can-deactivate.guard';\nimport { HomeComponent } from './home/home.component';\nimport { SignInComponent } from './sign-in/sign-in.component';\nimport { SignOutComponent } from './sign-out/sign-out.component';\nimport { CharityManagementComponent } from './website-management/charity-management/charity-management.component';\nimport { ContentManagementComponent } from './website-management/content-management/content-management.component';\nimport {\n DropoffLocationManagementComponent\n} from './website-management/dropoff-location-management/dropoff-location-management.component';\nimport {\n PressItemManagementComponent\n} from './website-management/press-item-management/press-item-management.component';\nimport { PromotionManagementComponent } from './website-management/promotion-management/promotion-management.component';\nimport {\n ServiceAreaManagementComponent\n} from './website-management/service-area-management/service-area-management.component';\nimport { StoreManagementComponent } from './website-management/store-management/store-management.component';\nimport { WebsiteManagementComponent } from './website-management/website-management/website-management.component';\n\nconst routes: Routes = [\n { path: '', component: HomeComponent },\n { path: 'signin', canActivate: [MsalGuard], component: SignInComponent },\n { path: 'signout', component: SignOutComponent },\n { path: 'website-management', canActivate: [MsalGuard], children: [\n {\n path: ':websiteId/content-management/:componentId',\n component: ContentManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/promotion-management',\n component: PromotionManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/promotion-management/:promotionId',\n component: PromotionManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/store-management/:storeId',\n component: StoreManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/dropoff-location-management',\n component: DropoffLocationManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/dropoff-location-management/:dropoffLocationId',\n component: DropoffLocationManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/service-area-management',\n component: ServiceAreaManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/service-area-management/:serviceAreaId',\n component: ServiceAreaManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/press-item-management',\n component: PressItemManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/press-item-management/:pressItemId',\n component: PressItemManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId/charity-management/:charityCode',\n component: CharityManagementComponent,\n canDeactivate: [CanDeactivateGuard]\n },\n {\n path: ':websiteId',\n redirectTo: '/website-management/:websiteId/components',\n pathMatch: 'full'\n },\n {\n path: ':websiteId/:section',\n component: WebsiteManagementComponent\n }\n ]}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Subscription } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\nimport { ApplicationInsightsService } from './services/application-insights.service';\nimport { EventMessage, EventType } from '@azure/msal-browser';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit, OnDestroy {\n private msalSubscription: Subscription;\n private routerSubscription: Subscription;\n\n constructor(\n private broadcastService: MsalBroadcastService,\n private msal: MsalService,\n private router: Router,\n private appInsights: ApplicationInsightsService) { }\n\n ngOnInit(): void {\n this.msalSubscription = this.broadcastService.msalSubject$.subscribe((eventMessage: EventMessage) => {\n if (eventMessage.eventType === EventType.LOGIN_SUCCESS || eventMessage.eventType === EventType.LOGIN_FAILURE) {\n this.registerUser();\n }\n });\n this.routerSubscription = this.router.events.subscribe(this.onRouterEvent.bind(this));\n\n this.registerUser();\n }\n\n ngOnDestroy(): void {\n if (this.msalSubscription) {\n this.msalSubscription.unsubscribe();\n }\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n }\n\n private registerUser() {\n const account = this.msal.instance.getActiveAccount();\n if (account) {\n this.appInsights.setUserId(account.username);\n } else {\n this.appInsights.clearUserId();\n }\n }\n\n private onRouterEvent(event: Event) {\n if (event instanceof NavigationEnd) {\n this.appInsights.logPageView((event as NavigationEnd).url);\n }\n }\n}\n","\n
\n \n \n
\n","import { HTTP_INTERCEPTORS, HttpClientJsonpModule, HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { MsalBroadcastService, MsalGuard, MsalInterceptor, MsalModule, MsalService } from '@azure/msal-angular';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { ChartsModule } from '@progress/kendo-angular-charts';\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { EditorModule } from '@progress/kendo-angular-editor';\nimport { GaugesModule } from '@progress/kendo-angular-gauges';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { LabelModule } from '@progress/kendo-angular-label';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { MenuModule } from '@progress/kendo-angular-menu';\nimport { NotificationModule } from '@progress/kendo-angular-notification';\nimport { PopupModule } from '@progress/kendo-angular-popup';\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\nimport { TooltipModule, TooltipsModule } from '@progress/kendo-angular-tooltip';\nimport { FileSelectModule, UploadModule, UploadsModule } from '@progress/kendo-angular-upload';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { DropDownListFilterComponent } from './components/dropdown-filter.component';\nimport { LoadingSpinnerComponent } from './components/loading-spinner/loading-spinner.component';\nimport { PageSlugValidatorDirective } from './directives/page-slug-validator.directive';\nimport { PressItemFormValidatorDirective } from './directives/press-item-form-validator.directive';\nimport { ServiceAreaFormValidatorDirective } from './directives/service-area-form-validator.directive';\nimport { SlideDraftSwitchDirective } from './directives/slide-draft-switch.directive';\nimport { ValidateGeocoordinateDirective } from './directives/validate-geocoordinate.directive';\nimport { HomeComponent } from './home/home.component';\nimport { MainSectionHeaderComponent } from './main-section-header/main-section-header.component';\nimport { NavComponent } from './nav/nav.component';\nimport { HumanizePipe } from './pipes/humanize.pipe';\nimport { SignInComponent } from './sign-in/sign-in.component';\nimport { SignOutComponent } from './sign-out/sign-out.component';\nimport { CarouselDraftComponent } from './website-management/components/carousel-draft/carousel-draft.component';\nimport { CarouselPreviewComponent } from './website-management/components/carousel-preview/carousel-preview.component';\nimport {\n HtmlContentSlideDraftComponent\n} from './website-management/components/html-content-slide-draft/html-content-slide-draft.component';\nimport {\n HtmlContentSlidePreviewComponent\n} from './website-management/components/html-content-slide-preview/html-content-slide-preview.component';\nimport { HtmlEditorComponent } from './website-management/components/html-editor/html-editor.component';\nimport { LocationHoursComponent } from './website-management/components/location-hours/location-hours.component';\nimport {\n NewsRibbonDraftComponent\n} from './website-management/components/news-ribbon-draft/news-ribbon-draft.component';\nimport {\n NewsRibbonPreviewComponent\n} from './website-management/components/news-ribbon-preview/news-ribbon-preview.component';\nimport {\n ServiceAlertDraftComponent\n} from './website-management/components/service-alert-draft/service-alert-draft.component';\nimport {\n ServiceAlertPreviewComponent\n} from './website-management/components/service-alert-preview/service-alert-preview.component';\nimport {\n SingleImageSlideDraftComponent\n} from './website-management/components/single-image-slide-draft/single-image-slide-draft.component';\nimport {\n SingleImageSlidePreviewComponent\n} from './website-management/components/single-image-slide-preview/single-image-slide-preview.component';\nimport {\n SplitImageSlideDraftComponent\n} from './website-management/components/split-image-slide-draft/split-image-slide-draft.component';\nimport {\n SplitImageSlidePreviewComponent\n} from './website-management/components/split-image-slide-preview/split-image-slide-preview.component';\nimport { ContentManagementComponent } from './website-management/content-management/content-management.component';\nimport {\n DropoffLocationManagementComponent\n} from './website-management/dropoff-location-management/dropoff-location-management.component';\nimport {\n PressItemManagementComponent\n} from './website-management/press-item-management/press-item-management.component';\nimport { PromotionManagementComponent } from './website-management/promotion-management/promotion-management.component';\nimport {\n ServiceAreaManagementComponent\n} from './website-management/service-area-management/service-area-management.component';\nimport { SlideDraftComponent } from './website-management/slide-draft/slide-draft.component';\nimport { StoreManagementComponent } from './website-management/store-management/store-management.component';\nimport {\n ComponentsComponent\n} from './website-management/website-management/components/components/components.component';\nimport {\n DropoffLocationsComponent\n} from './website-management/website-management/components/dropoff-locations/dropoff-locations.component';\nimport {\n PressItemsComponent\n} from './website-management/website-management/components/press-items/press-items.component';\nimport {\n PromotionCalendarComponent\n} from './website-management/website-management/components/promotion-calendar/promotion-calendar.component';\nimport {\n ServiceAreasComponent\n} from './website-management/website-management/components/service-areas/service-areas.component';\nimport { StoresComponent } from './website-management/website-management/components/stores/stores.component';\nimport { WebsiteManagementComponent } from './website-management/website-management/website-management.component';\nimport { ContentManagementSwitchDirective } from './directives/content-management-switch.directive';\nimport { ContentDraftComponent } from './website-management/components/content-draft/content-draft.component';\nimport { SlidePreviewSwitchDirective } from './directives/slide-preview-switch.directive';\nimport { SlidePreviewComponent } from './website-management/slide-preview/slide-preview.component';\nimport 'hammerjs';\nimport { ExcelExportModule } from '@progress/kendo-angular-excel-export';\nimport { CharitiesComponent } from './website-management/website-management/components/charities/charities.component';\nimport { CharityManagementComponent } from './website-management/charity-management/charity-management.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n SignInComponent,\n NavComponent,\n SignOutComponent,\n MainSectionHeaderComponent,\n HomeComponent,\n LoadingSpinnerComponent,\n DropDownListFilterComponent,\n ContentManagementComponent,\n WebsiteManagementComponent,\n NewsRibbonPreviewComponent,\n NewsRibbonDraftComponent,\n CarouselPreviewComponent,\n CarouselDraftComponent,\n SingleImageSlidePreviewComponent,\n HtmlContentSlidePreviewComponent,\n SplitImageSlidePreviewComponent,\n SingleImageSlideDraftComponent,\n SplitImageSlideDraftComponent,\n HtmlContentSlideDraftComponent,\n PromotionManagementComponent,\n PromotionCalendarComponent,\n DropoffLocationsComponent,\n DropoffLocationManagementComponent,\n ServiceAreasComponent,\n ServiceAreaManagementComponent,\n PageSlugValidatorDirective,\n ServiceAreaFormValidatorDirective,\n HtmlEditorComponent,\n LocationHoursComponent,\n StoresComponent,\n StoreManagementComponent,\n ComponentsComponent,\n PressItemsComponent,\n PressItemManagementComponent,\n HumanizePipe,\n PressItemFormValidatorDirective,\n ServiceAlertDraftComponent,\n ServiceAlertPreviewComponent,\n ValidateGeocoordinateDirective,\n SlideDraftSwitchDirective,\n SlideDraftComponent,\n ContentManagementSwitchDirective,\n ContentDraftComponent,\n SlidePreviewSwitchDirective,\n SlidePreviewComponent,\n CharitiesComponent,\n CharityManagementComponent,\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n BrowserModule,\n RouterModule,\n AppRoutingModule,\n HttpClientModule,\n HttpClientJsonpModule,\n MsalModule,\n BrowserAnimationsModule,\n ButtonsModule,\n InputsModule,\n DateInputsModule,\n LabelModule,\n DropDownsModule,\n GridModule,\n DialogsModule,\n GaugesModule,\n ChartsModule,\n TooltipModule,\n MenuModule,\n LayoutModule,\n SchedulerModule,\n EditorModule,\n PopupModule,\n UploadModule,\n FileSelectModule,\n NotificationModule,\n GoogleMapsModule,\n ExcelExportModule,\n UploadsModule,\n TooltipsModule\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MsalInterceptor,\n multi: true\n },\n MsalBroadcastService,\n MsalGuard,\n MsalService\n ],\n bootstrap: [ AppComponent ]\n})\nexport class AppModule { }\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { BaseFilterCellComponent, FilterService } from '@progress/kendo-angular-grid';\nimport { State, FilterDescriptor } from '@progress/kendo-data-query';\n\n@Component({\n selector: 'dropdown-filter',\n template: `\n \n \n `\n})\nexport class DropDownListFilterComponent extends BaseFilterCellComponent {\n\n public get selectedValue(): any {\n const filter = this.filterByField(this.valueField);\n return filter ? filter.value : null;\n }\n\n @Input() public filterName: string;\n @Input() public gridState: State;\n @Input() public data: any[];\n @Input() public textField: string;\n @Input() public valueField: string;\n\n @Output() public changed = new EventEmitter();\n\n public get defaultItem(): any {\n return {\n [this.textField]: 'All',\n [this.valueField]: 'All'\n };\n }\n\n constructor(filterService: FilterService) {\n super(filterService);\n }\n\n public onChange(value: any): void {\n\n let filters = this.gridState.filter.filters;\n\n for (var i = filters.length - 1; i >= 0; --i) {\n if (filters[i][\"field\"] == this.filterName) {\n filters.splice(i, 1);\n }\n }\n\n if (value.name != 'All') {\n let newFilter: FilterDescriptor = {\n field: this.filterName,\n operator: \"contains\",\n value: value.name\n }\n\n filters.push(newFilter);\n }\n\n this.gridState.filter.filters = filters;\n\n this.changed.emit(this.gridState);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss']\n})\nexport class LoadingSpinnerComponent {\n\n}\n","
\n
\n Loading...\n
\n
\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appContentManagementSwitch]'\n})\nexport class ContentManagementSwitchDirective {\n constructor(public viewContainerRef: ViewContainerRef) { }\n}\n","import { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Directive, forwardRef, Input } from '@angular/core';\nimport { AbstractControl, NG_ASYNC_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: '[appPageSlugValidator]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => PageSlugValidatorDirective),\n multi: true\n }\n ]\n})\nexport class PageSlugValidatorDirective implements Validator {\n // input[0]: the base URL of validation requests\n // input[1]: existing page slug value\n @Input('appPageSlugValidator') input: [string, string];\n\n private readonly regex = new RegExp('^[a-z0-9]+[a-z0-9-]*$');\n\n constructor(\n private http: HttpClient\n) { }\n\n validate(control: AbstractControl): Observable {\n if (!control || !control.value || !control.value.length || this.existingValue === control.value) {\n return of(null);\n }\n\n if (!this.regex.test(control.value)) {\n return of({ invalidSyntax: true });\n }\n\n const url = `${this.baseUrl}/${control.value}`;\n return this.http.get(url, { responseType: 'text', observe: 'response' })\n .pipe(\n catchError(err => of(err)),\n map(response => response.error instanceof ErrorEvent ? { uniqueFailure: true } :\n response.status !== 404 ? { notUnique: true } :\n null)\n );\n }\n\n private get baseUrl(): string {\n return this.input[0];\n }\n\n private get existingValue(): string {\n return this.input[1];\n }\n}\n","import { Directive } from '@angular/core';\nimport { UntypedFormGroup, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: '[appPressItemFormValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: PressItemFormValidatorDirective,\n multi: true\n }\n ]\n})\nexport class PressItemFormValidatorDirective implements Validator {\n validate(formGroup: UntypedFormGroup): ValidationErrors {\n if ('resource' in formGroup.controls && 'resourceType' in formGroup.controls &&\n formGroup.controls.resourceType.value === 'Url') {\n const resourceUrl: string = formGroup.controls.resource.value ?? '';\n if (!resourceUrl.length) {\n return { urlRequired: true };\n }\n }\n return null;\n }\n}\n","import { Directive } from '@angular/core';\nimport { UntypedFormGroup, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: '[appServiceAreaFormValidator]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: ServiceAreaFormValidatorDirective,\n multi: true\n }\n ]\n})\nexport class ServiceAreaFormValidatorDirective implements Validator {\n validate(formGroup: UntypedFormGroup): ValidationErrors {\n if ('serviceAreaType' in formGroup.controls) {\n const serviceAreaType = formGroup.controls.serviceAreaType.value;\n\n if (serviceAreaType === 'major' && 'city' in formGroup.controls && 'state' in formGroup.controls) {\n const city = formGroup.controls.city.value ?? '';\n const state = formGroup.controls.state.value ?? '';\n\n if (city.trim().length < 1 || state.trim().length !== 2) {\n return { cityStateRequired: true };\n }\n } else if (serviceAreaType === 'minor' && 'address' in formGroup.controls) {\n const address = formGroup.controls.address.value ?? '';\n\n if (address.trim().length < 1) {\n return { serviceAreaRequired: true };\n }\n }\n }\n return null;\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appSlideDraftSwitch]'\n})\nexport class SlideDraftSwitchDirective {\n constructor(public viewContainerRef: ViewContainerRef) { }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[appSlidePreviewSwitch]'\n})\nexport class SlidePreviewSwitchDirective {\n\n constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import { Directive } from '@angular/core';\nimport { UntypedFormGroup, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: '[appValidateGeocoordinate]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: ValidateGeocoordinateDirective,\n multi: true\n }\n ]\n})\nexport class ValidateGeocoordinateDirective implements Validator {\n\n readonly allowedGeoCoordBounds: google.maps.LatLngBounds[] = [\n // Continental U.S.\n new google.maps.LatLngBounds(\n { lat: 24.7433195, lng: -124.7844079 },\n { lat: 49.3457868, lng: -66.9513812 }),\n // Hawaii\n new google.maps.LatLngBounds(\n { lat: 18.805884, lng: -154.496905 },\n { lat: 22.415061, lng: -154.523443 }),\n // Alaska\n new google.maps.LatLngBounds(\n { lat: 53.030173, lng: -169.574714 },\n { lat: 71.407324, lng: -141.098151 })\n ];\n\n validate(form: UntypedFormGroup): ValidationErrors | null {\n if ('latitude' in form.controls && 'longitude' in form.controls) {\n const latitude = form.controls.latitude.value;\n const longitude = form.controls.longitude.value;\n const latLng = new google.maps.LatLng(latitude, longitude);\n\n if (!this.allowedGeoCoordBounds.some(x => x.contains(latLng))) {\n return { invalidLatLng: true }\n }\n }\n\n return null;\n }\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => Observable | Promise | boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanDeactivateGuard implements CanDeactivate {\n canDeactivate(component: CanComponentDeactivate): Observable | Promise | boolean {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { HeaderService } from '../services/header.service';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent implements OnInit {\n\n constructor(private header: HeaderService) { }\n\n ngOnInit(): void {\n this.header.title = 'Welcome';\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\nimport { WebsiteConfig } from './models/website-management/website-config';\nimport { DOCUMENT } from '@angular/common';\n\nexport const CONSUMERSITE_CONFIG = new InjectionToken('ConsumerSites Configuration');\nexport const GOOGLE_API_KEY = new InjectionToken('Google API Key');\n\nexport const WINDOW = new InjectionToken(\n 'An abstraction of the global window object',\n {\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n return defaultView;\n }\n }\n);\n","import { Subscription } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\nimport { HeaderService } from '../services/header.service';\nimport { AccountInfo, EventMessage, EventType } from '@azure/msal-browser';\n\n@Component({\n selector: 'app-main-section-header',\n templateUrl: './main-section-header.component.html',\n styleUrls: ['./main-section-header.component.scss']\n})\nexport class MainSectionHeaderComponent implements OnInit, OnDestroy {\n private headerSubscription: Subscription;\n private msalSubscription: Subscription;\n\n salutation: string;\n title: string;\n account: AccountInfo;\n\n constructor(\n private headerService: HeaderService,\n private msal: MsalService,\n private broadcastService: MsalBroadcastService) {\n this.headerSubscription = this.headerService.subscribe(title => this.refresh(title));\n\n this.msalSubscription = this.broadcastService.msalSubject$.subscribe((eventMessage: EventMessage) => {\n if (eventMessage.eventType === EventType.LOGIN_SUCCESS || eventMessage.eventType === EventType.LOGIN_FAILURE) {\n this.refresh();\n }\n });\n }\n\n ngOnInit(): void {\n this.refresh();\n }\n\n ngOnDestroy(): void {\n if (this.headerSubscription) {\n this.headerSubscription.unsubscribe();\n }\n if (this.msalSubscription) {\n this.msalSubscription.unsubscribe();\n }\n }\n\n private refresh(title: string = null) {\n if (title !== null) {\n this.title = title;\n }\n\n this.account = this.msal.instance.getActiveAccount();\n\n const hour = new Date().getHours();\n this.salutation = hour < 12 ? 'morning' :\n hour < 17 ? 'afternoon' :\n 'evening';\n }\n}\n","
\n
\n
\n

{{ title }}

\n
\n
Good {{ salutation }}, {{ account.name }}
\n
\n
\n","import { FileRestrictions } from '@progress/kendo-angular-upload';\n\nexport const fileSelectRestrictions: FileRestrictions = {\n allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'png'],\n maxFileSize: 4194304\n};\n","export type ImageLinkTypeValue = 'None' | 'Internal' | 'External';\n\nexport const imageLinkTypes: { text: string, value: ImageLinkTypeValue }[] = [\n { text: 'Image is not a link', value: 'None' },\n { text: 'Link to page on this site', value: 'Internal' },\n { text: 'Link to page on external site', value: 'External' }\n];\n","export enum PriceColor {\n Blue = 0,\n Pink,\n Orange,\n Green,\n Yellow,\n Violet\n}\n","import { forkJoin, fromEvent, Subscription } from 'rxjs';\nimport { ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\nimport { AuthenticationResult, EventMessage, EventType } from '@azure/msal-browser';\nimport { CONSUMERSITE_CONFIG, WINDOW } from '../injection-tokens';\nimport { WebsiteConfig } from '../models/website-management/website-config';\n\n@Component({\n selector: 'app-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.scss']\n})\nexport class NavComponent implements OnInit, OnDestroy {\n private resizeSubscription: Subscription;\n private msalSubscription: Subscription;\n private navigationSubscription: Subscription;\n\n private readonly breakpoint = 768;\n private readonly navbarHeight = 56;\n private resizeHandler: (Event) => void;\n\n navOpen = false;\n websitesToManage: WebsiteConfig[];\n\n constructor(\n private msal: MsalService,\n private broadcastService: MsalBroadcastService,\n private router: Router,\n private ref: ChangeDetectorRef,\n @Inject(CONSUMERSITE_CONFIG) public websiteConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window) {\n this.resizeHandler = this.onResize.bind(this);\n }\n\n ngOnInit(): void {\n this.resizeSubscription = fromEvent(this.window, 'resize').subscribe(this.resizeHandler);\n\n this.broadcastService.msalSubject$.subscribe((eventMessage: EventMessage) => {\n if (eventMessage.eventType === EventType.LOGIN_SUCCESS) {\n const authResult = eventMessage.payload as AuthenticationResult;\n this.msal.instance.setActiveAccount(authResult.account);\n\n this.updateWebsiteManager();\n this.ref.detectChanges();\n }\n });\n\n this.navigationSubscription = this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n this.navOpen = false;\n }\n });\n\n this.updateWebsiteManager();\n }\n\n ngOnDestroy(): void {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n\n if (this.msalSubscription) {\n this.msalSubscription.unsubscribe();\n }\n\n if (this.navigationSubscription) {\n this.navigationSubscription.unsubscribe();\n }\n }\n\n onToggleNavClicked(): void {\n this.navOpen = !this.navOpen;\n }\n\n isNavActive(category: string): boolean {\n const segments = this.router.url.toLowerCase().split('/');\n if (segments.length > 0 && segments[0] === '') {\n segments.splice(0, 1);\n }\n return segments.length >= 1 && segments[0] === category;\n }\n\n userHasRole(role: string): boolean {\n const account = this.msal.instance.getActiveAccount();\n if (account && 'idTokenClaims' in account && 'roles' in account.idTokenClaims) {\n return account.idTokenClaims.roles.includes(role);\n }\n\n return false;\n }\n\n private updateWebsiteManager() {\n if (!this.signedIn) {\n this.websitesToManage = [];\n return;\n }\n\n const authResults$ = this.websiteConfig.map(x => this.msal.acquireTokenSilent({ scopes: x.consentScopes }));\n forkJoin(authResults$).subscribe(results => {\n this.websitesToManage = results.reduce((acc, val) => {\n if (val && val.accessToken) {\n const parts = val.accessToken.split('.');\n if (parts.length === 3) {\n const payload = JSON.parse(atob(parts[1]));\n if (payload && 'roles' in payload && payload.roles.includes('WebsiteManager')) {\n acc.push(\n this.websiteConfig.find(config => config.consentScopes.every(x => val.scopes.includes(x))));\n }\n }\n }\n return acc;\n }, []);\n });\n }\n\n get navHeight(): number {\n return Math.max(this.window.innerHeight - this.navbarHeight, 0);\n }\n\n get isNavSlideOut(): boolean {\n return this.window.innerWidth < this.breakpoint;\n }\n\n get signedIn(): boolean {\n return !!this.msal.instance.getActiveAccount();\n }\n\n private onResize() {\n this.ref.detectChanges();\n }\n\n get copyright(): string {\n const now = new Date();\n return `Copyright © ${now.getFullYear()}, 2nd Ave, LLC`;\n }\n}\n","\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'humanize'\n})\nexport class HumanizePipe implements PipeTransform {\n\n transform(value: string): string {\n return value.split(/(?=[A-Z])/).join(' ');\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\n\nexport const APPLICATION_INSIGHTS = new InjectionToken('APPLICATION_INSIGHTS');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApplicationInsightsService {\n constructor(@Inject(APPLICATION_INSIGHTS) private appInsights: ApplicationInsights) { }\n\n setUserId(userId: string): void {\n if (this.appInsights) {\n this.appInsights.setAuthenticatedUserContext(userId);\n }\n }\n\n clearUserId(): void {\n if (this.appInsights) {\n this.appInsights.clearAuthenticatedUserContext();\n }\n }\n\n logPageView(uri: string): void {\n if (this.appInsights) {\n this.appInsights.trackPageView({ uri });\n }\n }\n}\n","import { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { GOOGLE_API_KEY } from '../injection-tokens';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GoogleMapsService {\n private _requested = false;\n private loaded$ = new BehaviorSubject(false);\n\n constructor(\n private http: HttpClient,\n @Inject(GOOGLE_API_KEY) private googleApiKey: string\n ) { }\n\n get loaded(): Observable {\n if (!this._requested) {\n this._requested = true;\n const subscription = this.http.jsonp(this.url, 'callback')\n .pipe(\n map(() => true),\n catchError(() => of(false))\n )\n .subscribe(result => {\n this.loaded$.next(result);\n subscription.unsubscribe();\n });\n }\n\n return this.loaded$;\n }\n\n private get url(): string {\n return `https://maps.googleapis.com/maps/api/js?key=${this.googleApiKey}`;\n }\n}\n","import { Observable, Subscriber, Subscription } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HeaderService {\n private title$: Observable;\n private pageTitle = '';\n\n private observers: Subscriber[] = [];\n\n constructor(private titleService: Title) {\n this.title$ = new Observable(observer => {\n const observers = this.observers;\n observers.push(observer);\n observer.next(this.title);\n\n return {\n unsubscribe() {\n observers.splice(observers.indexOf(observer), 1);\n }\n };\n });\n }\n\n subscribe(next?: (value: string) => void, error?: (err: Error) => void): Subscription {\n return this.title$.subscribe(next, error);\n }\n\n get title(): string {\n return this.pageTitle;\n }\n\n set title(value: string) {\n if (this.pageTitle !== value) {\n this.pageTitle = value;\n this.setHtmlTitle(value);\n this.observers.forEach(o => o.next(value));\n }\n }\n\n private setHtmlTitle(value: string) {\n const title = value ? `${value} | Admin` : 'Admin';\n this.titleService.setTitle(title);\n }\n}\n","import { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { Charity } from 'src/app/models/website-management/charity';\nimport { DmsCharity } from 'src/app/models/website-management/dms-charity';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CharityManagementService {\n\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getCharity(code: string, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/charity/${code}`;\n const charity$ = this.http.get(url).pipe(\n catchError(e => {\n if (e instanceof HttpErrorResponse && (e as HttpErrorResponse).status === 404) {\n return of(null);\n }\n throw new Error('A problem occurred fetching charity from API');\n })\n );\n const dmsCharities$ = this.getDmsCharities();\n\n return forkJoin([charity$, dmsCharities$]).pipe(\n map(val => {\n const dmsCharity = val[1].find(x => x.charityCode === code);\n if (!dmsCharity) {\n return null;\n }\n\n const charity: Charity = val[0] ? val[0] : {\n code,\n link: '',\n logoImg: '',\n logoSquareImg: '',\n thankYouImage: null,\n thankYouLabel: null\n };\n\n charity.dmsCharity = dmsCharity;\n return charity;\n })\n );\n }\n\n getCharities(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/charities`;\n const charities$ = this.http.get(url);\n const dmsCharities$ = this.getDmsCharities();\n\n return forkJoin([charities$, dmsCharities$]).pipe(\n map(val => val[0].map(charity => {\n charity.dmsCharity = val[1].find(x => x.charityCode === charity.code);\n return charity;\n }))\n );\n }\n\n saveCharity(charity: Charity, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/charity`;\n return this.http.post(url, charity).pipe(\n map(() => true),\n catchError(() => of(false)));\n }\n\n getDmsCharities(): Observable {\n const url = '/api/charities'\n return this.http.get(url);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/charity-management`;\n }}\n","import { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { ComponentHistoryItem } from 'src/app/models/website-management/component-history-item';\nimport { State } from 'src/app/models/website-management/state';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { CONSUMERSITE_CONFIG } from '../../injection-tokens';\nimport { WebsiteComponent } from '../../models/website-management/website-component';\n\nexport interface ImageResult {\n imageFilename: string;\n imageUrl: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContentManagementService {\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getComponent(websiteId: string, componentId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}`;\n\n return this.http.get(url)\n .pipe(\n catchError(err => {\n throw err;\n })\n );\n }\n\n getComponents(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component`;\n\n return this.http.get(url)\n .pipe(\n catchError(err => {\n throw err;\n })\n );\n }\n\n getComponentHistory(websiteId: string, componentId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/history`;\n\n return this.http.get(url)\n .pipe(\n map(results => results.sort((a, b) => new Date(b.dateCreated).getTime() - new Date(a.dateCreated).getTime())),\n catchError(err => {\n throw err;\n })\n );\n }\n\n createDraftComponent(websiteId: string, componentId: string, id: number): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/draft`;\n const body = { id };\n\n return this.http.post(url, body)\n .pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n deleteDraftComponent(websiteId: string, componentId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/draft`;\n\n return this.http.delete(url)\n .pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n saveDraftComponent(websiteId: string, componentId: string, content: ComponentHistoryItem): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/draft`;\n\n const body = {\n publishStart: content.publishStart,\n publishEnd: content.publishEnd,\n active: content.active,\n contents: JSON.stringify(content.contents)\n };\n\n return this.http.put(url, body)\n .pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n publishDraft(websiteId: string, componentId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/publish`;\n\n return this.http.post(url, null)\n .pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n deactivate(websiteId: string, componentId: string, contentId: number): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/deactivate/${contentId}`;\n\n return this.http.post(url, null)\n .pipe(\n map(() => true),\n catchError(() => of(false))\n );\n }\n\n getAsset(websiteId: string, componentId: string, filename: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/asset/${filename}`;\n\n return this.http.get(url, { responseType: 'text' });\n }\n\n resizeAndSaveAsset(websiteId: string, componentId: string, file: File, width: number, height: number): Observable {\n const url = `${this.getBaseUrl(websiteId)}/component/${componentId}/asset`;\n\n const formData = new FormData();\n formData.append('file', file, file.name);\n formData.append('width', width.toString());\n formData.append('height', height.toString());\n\n return this.http.post(url, formData);\n }\n\n getStates(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/states`;\n\n return this.http.get(url);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/content-management`;\n }\n}\n","import { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { DropoffLocation } from 'src/app/models/website-management/dropoff-location';\nimport { DropoffLocationImage } from 'src/app/models/website-management/dropoff-location-image';\nimport { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { LocationHoursApiModel } from 'src/app/models/website-management/location-hours-api-model';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\nexport interface DropoffImageResult {\n image: string;\n imageUrls: DropoffLocationImage;\n}\n\ninterface DropoffLocationApiModel extends Omit {\n hours: LocationHoursApiModel[]\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DropoffLocationManagementService {\n\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getDropoffLocation(dropoffLocationId: number, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/dropoff-location/${dropoffLocationId}`;\n\n return this.http.get(url)\n .pipe(\n map(result => this.fromApiModel(result))\n );\n }\n\n getDropoffLocations(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/dropoff-locations`;\n return this.http.get(url)\n .pipe(\n map(locations => locations.map(x => this.fromApiModel(x)))\n );\n }\n\n createDropoffLocation(location: DropoffLocation, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/dropoff-location`;\n const request = this.toApiModel(location);\n\n return this.http.post(url, request)\n .pipe(\n catchError(() => {\n throw new Error('Failure creating new drop-off location');\n }),\n map(result => this.fromApiModel(result))\n );\n }\n\n updateDropoffLocation(location: DropoffLocation, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/dropoff-location/${location.id}`;\n const request = this.toApiModel(location);\n\n return this.http.put(url, request)\n .pipe(\n map(result => this.fromApiModel(result))\n );\n }\n\n updateDropoffLocationHours(websiteId: string, hours: LocationHours[]): Observable {\n const url = `${this.getBaseUrl(websiteId)}/dropoff-locations/hours`;\n\n const request: LocationHoursApiModel[] = hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.toTimeSpan(x.openTime),\n closeTime: this.toTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n });\n\n return this.http.put(url, request)\n .pipe(\n map(() => true),\n catchError(() => {\n throw new Error('Failure saving drop-off location hours');\n })\n );\n }\n\n saveImage(websiteId: string, file: File): Observable {\n const url = `${this.getBaseUrl(websiteId)}/image`;\n\n const formData = new FormData();\n formData.append('file', file, file.name);\n\n return this.http.post(url, formData);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/dropoff-location-management`;\n }\n\n private fromApiModel(model: DropoffLocationApiModel): DropoffLocation {\n return {\n id: model.id,\n name: model.name,\n address: model.address,\n address2: model.address2,\n city: model.city,\n state: model.state,\n zip: model.zip,\n active: model.active,\n latitude: model.latitude,\n longitude: model.longitude,\n image: model.image,\n pageSlug: model.pageSlug,\n pageContent: model.pageContent,\n hours: model.hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.fromTimeSpan(x.openTime),\n closeTime: this.fromTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n }),\n imageUrls: model.imageUrls,\n locatedNear: model.locatedNear,\n charities: model.charities\n };\n }\n\n private toApiModel(location: DropoffLocation): DropoffLocationApiModel {\n return {\n id: location.id,\n name: location.name,\n address: location.address,\n address2: location.address2,\n city: location.city,\n state: location.state,\n zip: location.zip,\n active: location.active,\n latitude: location.latitude,\n longitude: location.longitude,\n image: location.image,\n pageSlug: location.pageSlug,\n pageContent: location.pageContent,\n hours: location.hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.toTimeSpan(x.openTime),\n closeTime: this.toTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n }),\n imageUrls: location.imageUrls,\n locatedNear: location.locatedNear,\n charities: location.charities\n };\n }\n\n private fromTimeSpan(value: string): Date {\n const timeParts = value.split(':');\n\n const date = new Date(0);\n date.setHours(parseInt(timeParts[0], 10));\n date.setMinutes(parseInt(timeParts[1], 10));\n date.setSeconds(parseInt(timeParts[2], 10));\n date.setMilliseconds(0);\n\n return date;\n }\n\n private toTimeSpan(value: Date): string {\n return new Intl.DateTimeFormat('en-us', {\n hour12: false,\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n }).format(value);\n }\n}\n","import { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { PressItem } from 'src/app/models/website-management/press-item';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\nexport interface PressItemsResult {\n items: PressItem[];\n itemCount: number;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PressItemManagementService {\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getPressItem(id: number, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/press-item/${id}`;\n return this.http.get(url).pipe(\n map(this.correctDates)\n );\n }\n\n getPressItems(start: number, take: number, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/press-items?start=${start}&take=${take}`;\n return this.http.get(url).pipe(\n map(result => {\n result.items.forEach(x => this.correctDates(x));\n return result;\n })\n );\n }\n\n savePressItem(pressItem: PressItem, websiteId: string): Observable {\n if (!pressItem) {\n throw new Error('Parameter \"pressItem\" not provided');\n }\n\n let $: Observable;\n\n if (pressItem.id > 0) {\n const url = `${this.getBaseUrl(websiteId)}/press-item/${pressItem.id}`;\n $ = this.http.put(url, pressItem);\n } else {\n const url = `${this.getBaseUrl(websiteId)}/press-item`;\n $ = this.http.post(url, pressItem);\n }\n\n return $.pipe(\n map(result => this.correctDates(result)),\n catchError(() => {\n const errMsg = pressItem.id > 0 ? 'Failure updating press item' : 'Failure creating press item';\n throw new Error(errMsg);\n })\n );\n }\n\n createDocument(file: File, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/asset`;\n\n const formData = new FormData();\n formData.append('file', file, file.name);\n\n return this.http.post(url, formData);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/press-item-management`;\n }\n\n private correctDates(item: PressItem): PressItem {\n item.publishDate = new Date(item.publishDate);\n if (item.expirationDate) {\n item.expirationDate = new Date(item.expirationDate);\n }\n\n return item;\n }\n}\n","import { Observable } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { Promo } from 'src/app/models/website-management/promo';\nimport { Schedule } from 'src/app/models/website-management/schedule';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\nexport interface ImageResult {\n smallImageFilename: string;\n largeImageFilename: string;\n smallImageUrl: string;\n largeImageUrl: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PromotionManagementService {\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getSchedule(websiteId: string, start: Date, end: Date): Observable {\n const url = `${this.getBaseUrl(websiteId)}/schedule?start=${start.toISOString()}&end=${end.toISOString()}`;\n return this.http.get(url);\n }\n\n getPromotion(websiteId: string, promotionId: number): Observable {\n const url = `${this.getBaseUrl(websiteId)}/promotion/${promotionId}`;\n\n return this.http.get(url);\n }\n\n getAsset(websiteId: string, filename: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/asset/${filename}`;\n\n return this.http.get(url, { responseType: 'text' });\n }\n\n savePromotion(websiteId: string, promotion: Promo): Observable {\n if (!promotion) {\n throw new Error('Parameter \"promotion\" not provided');\n }\n\n if (promotion.id > 0) {\n const url = `${this.getBaseUrl(websiteId)}/promotion/${promotion.id}`;\n return this.http.put(url, promotion);\n } else {\n const url = `${this.getBaseUrl(websiteId)}/promotion`;\n return this.http.post(url, promotion);\n }\n }\n\n saveAsset(websiteId: string, file: File): Observable {\n const url = `${this.getBaseUrl(websiteId)}/asset`;\n\n const formData = new FormData();\n formData.append('file', file, file.name);\n\n return this.http.post(url, formData);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/promotion-management`;\n }\n}\n","import { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { ServiceArea } from 'src/app/models/website-management/service-area';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServiceAreaManagementService {\n\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getServiceArea(id: number, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/service-area/${id}`;\n return this.http.get(url);\n }\n\n getServiceAreas(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/service-areas`;\n return this.http.get(url);\n }\n\n createServiceArea(serviceArea: ServiceArea, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/service-area`;\n return this.http.post(url, serviceArea)\n .pipe(\n catchError(() => {\n throw new Error('Failure creating new service area');\n })\n );\n }\n\n updateServiceArea(serviceArea: ServiceArea, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/service-area/${serviceArea.id}`;\n\n return this.http.put(url, serviceArea)\n .pipe(\n map(() => true),\n catchError(() => {\n throw new Error('Failure updating service area');\n })\n );\n }\n\n updateServiceAreaSortOrder(ids: number[], websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/service-areas/sort-order`;\n\n return this.http.post(url, ids)\n .pipe(\n map(() => true),\n catchError(() => {\n throw new Error('Failure updating service area sort orders');\n })\n );\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/service-area-management`;\n }\n}\n","import { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { Store } from 'src/app/models/website-management/store';\nimport { StoreImage } from 'src/app/models/website-management/store-image';\nimport { StoreSubType } from 'src/app/models/website-management/store-sub-type';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { LocationHoursApiModel } from 'src/app/models/website-management/location-hours-api-model';\n\ninterface StoreApiModel extends Omit {\n hours: LocationHoursApiModel[]\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StoreManagementService {\n\n constructor(\n private http: HttpClient,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n getStore(storeId: number, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/store/${storeId}`;\n\n return this.http.get(url)\n .pipe(\n map(store => this.fromApiModel(store))\n );\n }\n\n getStores(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/stores`;\n\n return this.http.get(url)\n .pipe(\n map(stores => stores.map(store => this.fromApiModel(store)))\n );\n }\n\n saveStore(store: Store, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/store/${store.id}`;\n\n const request = this.toApiModel(store);\n\n return this.http.put(url, request)\n .pipe(\n map(store => this.fromApiModel(store))\n );\n }\n\n updateAllStoreHours(hours: LocationHours[], websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/stores/hours`;\n\n const request: LocationHoursApiModel[] = hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.toTimeSpan(x.openTime),\n closeTime: this.toTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n })\n\n return this.http.put(url, request)\n .pipe(\n map(() => true),\n catchError(() => {\n throw new Error('Failure saving store location hours');\n })\n );\n }\n\n saveImage(file: File, websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/image`;\n\n const formData = new FormData();\n formData.append('file', file, file.name);\n\n return this.http.post(url, formData);\n }\n\n getStoreSubTypes(websiteId: string): Observable {\n const url = `${this.getBaseUrl(websiteId)}/store-sub-types`;\n\n return this.http.get(url);\n }\n\n private getBaseUrl(websiteId: string): string {\n const config = this.consumersiteConfig.find(x => x.id === websiteId);\n return `${config.baseUrl}/store-management`;\n }\n\n private fromApiModel(model: StoreApiModel): Store {\n return {\n id: model.id,\n name: model.name,\n address: model.address,\n address2: model.address2,\n city: model.city,\n state: model.state,\n zip: model.zip,\n active: model.active,\n latitude: model.latitude,\n longitude: model.longitude,\n image: model.image,\n pageSlug: model.pageSlug,\n pageContent: model.pageContent,\n hours: model.hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.fromTimeSpan(x.openTime),\n closeTime: this.fromTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n }),\n subType: model.subType,\n phone: model.phone,\n imageUrl: model.imageUrl,\n pageTitle: model.pageTitle,\n pageDescription: model.pageDescription,\n alertMessage: model.alertMessage\n };\n }\n\n private toApiModel(store: Store): StoreApiModel {\n return {\n id: store.id,\n name: store.name,\n address: store.address,\n address2: store.address2,\n city: store.city,\n state: store.state,\n zip: store.zip,\n active: store.active,\n latitude: store.latitude,\n longitude: store.longitude,\n image: store.image,\n pageSlug: store.pageSlug,\n pageContent: store.pageContent,\n hours: store.hours.map(x => {\n return {\n dayofWeek: x.dayofWeek,\n openTime: this.toTimeSpan(x.openTime),\n closeTime: this.toTimeSpan(x.closeTime),\n closed: x.closed,\n temporary: x.temporary\n };\n }),\n subType: store.subType,\n phone: store.phone,\n imageUrl: store.imageUrl,\n pageTitle: store.pageTitle,\n pageDescription: store.pageDescription,\n alertMessage: store.alertMessage\n };\n }\n\n private fromTimeSpan(value: string): Date {\n const timeParts = value.split(':');\n\n const date = new Date(0);\n date.setHours(parseInt(timeParts[0], 10));\n date.setMinutes(parseInt(timeParts[1], 10));\n date.setSeconds(parseInt(timeParts[2], 10));\n date.setMilliseconds(0);\n\n return date;\n }\n\n private toTimeSpan(value: Date): string {\n return new Intl.DateTimeFormat('en-us', {\n hour12: false,\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n }).format(value);\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MsalService } from '@azure/msal-angular';\nimport { CONSUMERSITE_CONFIG } from '../injection-tokens';\nimport { WebsiteConfig } from '../models/website-management/website-config';\n\n@Component({\n selector: 'app-signin',\n template: ''\n})\nexport class SignInComponent implements OnInit {\n\n constructor(\n private router: Router,\n private msal: MsalService,\n @Inject(CONSUMERSITE_CONFIG) public websiteConfig: WebsiteConfig[]) { }\n\n async ngOnInit(): Promise {\n for (const config of this.websiteConfig) {\n const response = await this.msal.acquireTokenSilent({ scopes: config.consentScopes }).toPromise();\n if (response && response.accessToken) {\n const tokens = response.accessToken.split('.');\n for (const rawToken of tokens) {\n try {\n const token = JSON.parse(atob(rawToken));\n if (token && 'roles' in token && token.roles.includes('WebsiteManager')) {\n this.router.navigate(['/website-management', config.id]);\n return;\n }\n } catch {\n continue;\n }\n }\n }\n }\n\n this.router.navigate(['/']);\n }\n}\n\n","import { Component, OnInit } from '@angular/core';\nimport { MsalService } from '@azure/msal-angular';\n\n@Component({\n selector: 'app-sign-out',\n template: ''\n})\nexport class SignOutComponent implements OnInit {\n\n constructor(private msal: MsalService) { }\n\n ngOnInit() {\n this.msal.logout();\n }\n}\n","import { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\nimport { Observable, Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { Charity } from 'src/app/models/website-management/charity';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { CharityManagementService } from 'src/app/services/website-management/charity-management.service';\n\n@Component({\n selector: 'app-charity-management',\n templateUrl: './charity-management.component.html',\n styleUrls: ['./charity-management.component.scss']\n})\nexport class CharityManagementComponent implements OnInit, OnDestroy {\n charity: Charity;\n savedCharity: string;\n loading: boolean;\n abandonDialogOpened = false;\n websiteConfig: WebsiteConfig;\n\n displayOnWebsite: boolean;\n\n private routeSubscription: Subscription;\n private charitySubscription: Subscription;\n\n constructor(\n private charityManagement: CharityManagementService,\n private route: ActivatedRoute,\n private router: Router,\n private header: HeaderService,\n private notification: NotificationService,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === websiteId);\n this.header.title = `Charity Management for ${this.websiteConfig.name}`;\n\n const charityCode = params.get('charityCode');\n this.loadCharity(charityCode);\n })\n }\n\n ngOnDestroy(): void {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.charitySubscription) {\n this.charitySubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.preventDefault();\n }\n }\n\n saveCharity(): void {\n this.loading = true;\n\n if (!this.displayOnWebsite) {\n this.charity.link = '';\n }\n\n this.charitySubscription = this.charityManagement.saveCharity(this.charity, this.websiteConfig.id)\n .subscribe(() => {\n this.savedCharity = JSON.stringify(this.charity);\n this.loading = false;\n this.showNotification('The charity has been saved.');\n });\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.charity = JSON.parse(this.savedCharity);\n }\n\n this.abandonDialogOpened = false;\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.charity) !== this.savedCharity;\n }\n\n private loadCharity(charityCode: string): void {\n this.loading = true;\n\n this.charitySubscription = this.charityManagement.getCharity(charityCode, this.websiteConfig.id)\n .subscribe(charity => {\n if (!charity) {\n this.router.navigate(['website-management', this.websiteConfig.id, 'charities']);\n return;\n }\n\n this.charity = charity;\n this.savedCharity = JSON.stringify(charity);\n\n this.loading = false;\n\n this.displayOnWebsite = !!this.charity.link.length;\n });\n }\n\n private showNotification(msg: string): void {\n this.notification.show({\n content: msg,\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n}\n","\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n Charity Link is required.\n
\n
\n
\n
\n\n
\n \n \n
\n Charity logo image is required.\n
\n
\n\n
\n \n \n
\n Charity logo square image is required.\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this charity?

\n \n \n \n \n
\n","import { timer } from 'rxjs';\nimport { WINDOW } from 'src/app/injection-tokens';\nimport { Carousel } from 'src/app/models/website-management/carousel';\nimport { CarouselSlide } from 'src/app/models/website-management/carousel-slide';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { Component, ElementRef, Inject, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-carousel-draft',\n templateUrl: './carousel-draft.component.html',\n styleUrls: ['./carousel-draft.component.scss']\n})\nexport class CarouselDraftComponent {\n @Input() carousel: Carousel;\n @Input() component: Component;\n @Input() websiteConfig: WebsiteConfig;\n @Input() disabled: boolean;\n\n @ViewChild('slidesContainer') slidesContainer: ElementRef;\n\n chooseSlideDialogOpened = false;\n slideTypes: { text: string, value: string }[] = [\n { text: 'Single Image Slide', value: 'ConsumerSites.Common.Models.SingleImageSlide' },\n { text: 'HTML Content Slide', value: 'ConsumerSites.Common.Models.HtmlContentSlide' },\n { text: 'Split Image Slide', value: 'ConsumerSites.Common.Models.SplitImageSlide' }\n ];\n\n newSlideType: string;\n\n constructor(\n @Inject(WINDOW) private window: Window\n ) { }\n\n chooseSlide(): void {\n this.newSlideType = this.slideTypes[0].value;\n this.chooseSlideDialogOpened = true;\n }\n\n chooseSlideOk(): void {\n this.chooseSlideDialogOpened = false;\n\n this.carousel.slides.push({\n type: this.newSlideType\n });\n\n timer().subscribe(() => {\n const container: Element = this.slidesContainer.nativeElement;\n const newSlide = container.lastChild as HTMLElement;\n const top = Math.max(0, newSlide.offsetTop - 40);\n\n this.window.scrollTo({ left: 0, top, behavior: 'smooth' });\n });\n }\n\n chooseSlideCancel(): void {\n this.chooseSlideDialogOpened = false;\n }\n\n moveUp(index: number): void {\n const slide = this.deleteSlide(index);\n timer().subscribe(() => this.carousel.slides.splice(index - 1, 0, slide));\n }\n\n moveDown(index: number): void {\n const slide = this.deleteSlide(index);\n timer().subscribe(() => this.carousel.slides.splice(index + 1, 0, slide));\n }\n\n deleteSlide(index: number): CarouselSlide {\n return this.carousel.slides.splice(index, 1)[0];\n }\n\n get slideIntervalSeconds(): number {\n return this.carousel.slideInterval / 1000;\n }\n\n set slideIntervalSeconds(value: number) {\n this.carousel.slideInterval = value * 1000;\n }\n\n slideTypeText(slide: CarouselSlide): string {\n if (!slide) {\n return '';\n }\n\n const slideType = this.slideTypes.find(x => x.value === slide.type);\n return slideType ? slideType.text : '';\n }\n}\n","
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n\n

\n Edit Slides\n {{ carousel.slides.length | number }}\n

\n
\n
\n
\n \n \n \n \n Delete Slide\n \n
\n\n

Slide {{ i + 1 | number }} — {{ slideTypeText(slide) }}

\n\n \n \n
\n
\n\n\n \n \n \n \n \n \n \n\n","import { Carousel } from 'src/app/models/website-management/carousel';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-carousel-preview',\n templateUrl: './carousel-preview.component.html',\n styleUrls: ['./carousel-preview.component.scss']\n})\nexport class CarouselPreviewComponent {\n @Input() websiteId: string;\n @Input() componentId: string;\n @Input() content: Carousel;\n\n get slideIntervalSeconds(): number {\n if (typeof this.content.slideInterval !== 'number') {\n return undefined;\n }\n\n return this.content.slideInterval / 1000;\n }\n}\n","
    \n
  • \n \n {{ slideIntervalSeconds }} sec\n
  • \n
  • \n \n \n Yes\n \n \n No\n \n
  • \n
  • \n \n \n Yes\n \n \n No\n \n
  • \n
  • \n \n
      \n
    1. \n \n \n
    2. \n
    \n
  • \n
\n","import { ContentManagementSwitchDirective } from 'src/app/directives/content-management-switch.directive';\nimport { Carousel } from 'src/app/models/website-management/carousel';\nimport { ComponentHistoryItem } from 'src/app/models/website-management/component-history-item';\nimport { NewsRibbon } from 'src/app/models/website-management/news-ribbon';\nimport { ServiceAlert } from 'src/app/models/website-management/service-alert';\nimport { WebsiteComponent } from 'src/app/models/website-management/website-component';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { CarouselDraftComponent } from '../carousel-draft/carousel-draft.component';\nimport { NewsRibbonDraftComponent } from '../news-ribbon-draft/news-ribbon-draft.component';\nimport { ServiceAlertDraftComponent } from '../service-alert-draft/service-alert-draft.component';\n\n@Component({\n selector: 'app-content-draft',\n templateUrl: './content-draft.component.html',\n styleUrls: ['./content-draft.component.scss']\n})\nexport class ContentDraftComponent implements OnInit {\n @Input() draft: ComponentHistoryItem;\n @Input() component: WebsiteComponent;\n @Input() websiteConfig: WebsiteConfig;\n @Input() disabled: boolean;\n\n @ViewChild(ContentManagementSwitchDirective, { static: true }) appContentManagementSwitch!: ContentManagementSwitchDirective;\n\n ngOnInit(): void {\n const viewContainerRef = this.appContentManagementSwitch.viewContainerRef;\n viewContainerRef.clear();\n\n if (this.component.componentType === 'NewsRibbon') {\n const componentRef = viewContainerRef.createComponent(NewsRibbonDraftComponent);\n componentRef.instance.content = this.draft.contents as NewsRibbon;\n componentRef.instance.disabled = this.disabled;\n } else if (this.component.componentType === 'Carousel') {\n const componentRef = viewContainerRef.createComponent(CarouselDraftComponent);\n componentRef.instance.carousel = this.draft.contents as Carousel;\n componentRef.instance.component = this.component as unknown;\n componentRef.instance.websiteConfig = this.websiteConfig;\n componentRef.instance.disabled = this.disabled;\n } else if (this.component.componentType === 'ServiceAlert') {\n const componentRef = viewContainerRef.createComponent(ServiceAlertDraftComponent);\n componentRef.instance.content = this.draft.contents as ServiceAlert;\n componentRef.instance.disabled = this.disabled;\n } else {\n throw new TypeError('Unknown component type');\n }\n }\n}\n","\n","import { HtmlContentSlide } from 'src/app/models/website-management/html-content-slide';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'app-html-content-slide-draft',\n templateUrl: './html-content-slide-draft.component.html',\n styleUrls: ['./html-content-slide-draft.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class HtmlContentSlideDraftComponent {\n @Input() slide: HtmlContentSlide;\n @Input() disabled: boolean;\n}\n","
\n Height\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { HtmlContentSlide } from 'src/app/models/website-management/html-content-slide';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-html-content-slide-preview',\n templateUrl: './html-content-slide-preview.component.html',\n styleUrls: ['./html-content-slide-preview.component.scss']\n})\nexport class HtmlContentSlidePreviewComponent {\n @Input() slide: HtmlContentSlide;\n}\n","
    \n
  • \n \n {{ slide.dynamicHeight ? 'Dynamic' : 'Fixed' }}\n
  • \n
  • \n \n
    \n \n
    \n
  • \n
\n","import { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { EditorComponent } from '@progress/kendo-angular-editor';\n\n@Component({\n selector: 'app-html-editor',\n templateUrl: './html-editor.component.html',\n styleUrls: ['./html-editor.component.scss']\n})\nexport class HtmlEditorComponent implements OnInit, AfterViewInit {\n @Input() name: string;\n @Input() disabled: boolean;\n @Input() private websiteConfig: WebsiteConfig;\n @Input() content: string;\n @Output() contentChange = new EventEmitter();\n\n @ViewChild('contentEditor', { static: true }) private contentEditor: EditorComponent;\n\n editorContent: string;\n\n ngOnInit(): void {\n this.editorContent = this.content;\n }\n\n ngAfterViewInit(): void {\n if (this.websiteConfig) {\n const iframe = this.contentEditor.container.element.nativeElement as HTMLIFrameElement;\n const doc = iframe.contentDocument;\n\n const link = doc.createElement('link') as HTMLLinkElement;\n link.rel = 'stylesheet';\n\n if (this.websiteConfig.id === 'SecondAve') {\n link.href = `${this.websiteConfig.baseUrl}/css/SecondAve.min.css`;\n doc.head.appendChild(link);\n } else if (this.websiteConfig.id === 'GoGreenDrop') {\n link.href = `${this.websiteConfig.baseUrl}/css/GreenDrop.min.css`;\n doc.head.appendChild(link);\n }\n }\n }\n\n valueChanged(value: string): void {\n this.content = value;\n this.contentChange.emit(this.content);\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { Component, Input } from '@angular/core';\nimport {\n AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator\n} from '@angular/forms';\n\n@Component({\n selector: 'app-location-hours',\n templateUrl: './location-hours.component.html',\n styleUrls: ['./location-hours.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: LocationHoursComponent,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: LocationHoursComponent,\n multi: true\n }\n ]\n})\nexport class LocationHoursComponent implements ControlValueAccessor, Validator {\n @Input() disabled: boolean;\n @Input() locationHours: LocationHours[];\n @Input() readonly: boolean;\n\n onChange: (hours: LocationHours[]) => void;\n onTouched: () => void;\n\n touched = false;\n\n writeValue(locationHours: LocationHours[]): void {\n this.locationHours = locationHours;\n }\n\n registerOnChange(fn: (hours: LocationHours[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && control.value.filter(x => !x.closed && x.openTime >= x.closeTime).length > 0) {\n return { invalidHours: true };\n }\n\n return null;\n }\n\n markAsTouched(): void {\n if (!this.touched) {\n if (this.onTouched) {\n this.onTouched();\n }\n this.touched = true;\n }\n }\n\n openTimeChanged(dayOfWeek: number, openTime: Date): void {\n const hours = this.locationHours.find(x => x.dayofWeek === dayOfWeek);\n hours.openTime = openTime;\n this.onChange(this.locationHours);\n }\n\n closeTimeChanged(dayOfWeek: number, closeTime: Date): void {\n const hours = this.locationHours.find(x => x.dayofWeek === dayOfWeek);\n hours.closeTime = closeTime;\n this.onChange(this.locationHours);\n }\n\n closedChanged(dayOfWeek: number, event: Event): void {\n const checkbox = event.target as HTMLInputElement;\n const hours = this.locationHours.find(x => x.dayofWeek === dayOfWeek);\n hours.closed = checkbox.checked;\n this.onChange(this.locationHours);\n }\n\n temporaryChanged(dayOfWeek: number, event: Event): void {\n const checkbox = event.target as HTMLInputElement;\n const hours = this.locationHours.find(x => x.dayofWeek === dayOfWeek);\n hours.temporary = checkbox.checked;\n this.onChange(this.locationHours);\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Week DayOpenClose
\n Monday\n Tuesday\n Wednesday\n Thursday\n Friday\n Saturday\n Sunday\n ClosedClosed{{ hours.openTime | date:'shortTime' }}{{ hours.closeTime | date:'shortTime' }}\n \n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NewsRibbon } from '../../../models/website-management/news-ribbon';\n\n@Component({\n selector: 'app-news-ribbon-draft',\n templateUrl: './news-ribbon-draft.component.html',\n styleUrls: ['./news-ribbon-draft.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NewsRibbonDraftComponent implements OnInit {\n @Input() content: NewsRibbon;\n @Input() disabled: boolean;\n\n justifyContentItems: { text: string, value: string }[] = [\n { text: 'Start', value: 'justify-content-start' },\n { text: 'End', value: 'justify-content-end' },\n { text: 'Center', value: 'justify-content-center' },\n { text: 'Between', value: 'justify-content-between' },\n { text: 'Around', value: 'justify-content-around' }\n ];\n\n ngOnInit(): void {\n if (!this.content.columns || !this.content.columns.length) {\n this.content.columns = [''];\n }\n }\n\n addColumn(): void {\n this.content.columns.push('');\n }\n\n deleteColumn(index: number): void {\n this.content.columns.splice(index, 1);\n }\n\n moveLeft(index: number): void {\n const column = this.content.columns.splice(index, 1)[0];\n this.content.columns.splice(index - 1, 0, column);\n }\n\n moveRight(index: number): void {\n const column = this.content.columns.splice(index, 1)[0];\n this.content.columns.splice(index + 1, 0, column);\n }\n\n dontTrack: () => string = () => '';\n}\n","
\n \n \n \n\n \n
\n\n

\n Edit Columns\n {{ content.columns.length | number }}\n

\n
\n
\n \n \n \n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n
\n","import { Component, Input } from '@angular/core';\nimport { NewsRibbon } from '../../../models/website-management/news-ribbon';\n\n@Component({\n selector: 'app-news-ribbon-preview',\n templateUrl: './news-ribbon-preview.component.html',\n styleUrls: ['./news-ribbon-preview.component.scss']\n})\nexport class NewsRibbonPreviewComponent {\n @Input() content: NewsRibbon;\n}\n","
    \n
  • \n \n {{ content.justifyContent }}\n
  • \n
  • \n \n
      \n
    1. \n
    \n
  • \n
\n","import { ServiceAlert } from 'src/app/models/website-management/service-alert';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-service-alert-draft',\n templateUrl: './service-alert-draft.component.html',\n styleUrls: ['./service-alert-draft.component.scss']\n})\nexport class ServiceAlertDraftComponent {\n @Input() content: ServiceAlert;\n @Input() disabled: boolean;\n}\n","
\n \n \n
\n
\n \n \n \n
\n","import { ServiceAlert } from 'src/app/models/website-management/service-alert';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-service-alert-preview',\n templateUrl: './service-alert-preview.component.html',\n styleUrls: ['./service-alert-preview.component.scss']\n})\nexport class ServiceAlertPreviewComponent {\n @Input() content: ServiceAlert;\n}\n","
\n {{ content.summary }}\n
\n
\n \n
\n \n
\n
\n","import { fromEvent, Subscription } from 'rxjs';\nimport { fileSelectRestrictions as restrictions } from 'src/app/models/website-management/file-select-restrictions';\nimport { imageLinkTypes as linkTypes, ImageLinkTypeValue } from 'src/app/models/website-management/image-link-type';\nimport { SingleImageSlide } from 'src/app/models/website-management/single-image-slide';\nimport { WebsiteComponent } from 'src/app/models/website-management/website-component';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-single-image-slide-draft',\n templateUrl: './single-image-slide-draft.component.html',\n styleUrls: ['./single-image-slide-draft.component.scss']\n})\nexport class SingleImageSlideDraftComponent implements OnInit, OnDestroy {\n @Input() slide: SingleImageSlide;\n @Input() component: WebsiteComponent;\n @Input() websiteConfig: WebsiteConfig;\n @Input() largeImageWidth = 1140;\n @Input() largeImageHeight = 445;\n @Input() smallImageWidth = 540;\n @Input() smallImageHeight = 211;\n @Input() disabled: boolean;\n\n readonly fileSelectRestrictions = restrictions;\n readonly imageLinkTypes = linkTypes;\n\n previewDialogOpened = false;\n previewDialogTitle: string;\n previewDialogWidth: number;\n previewDialogImage: HTMLImageElement;\n\n imageLinkType: ImageLinkTypeValue;\n\n smallImage: HTMLImageElement;\n largeImage: HTMLImageElement;\n\n private smallImageSubscription: Subscription;\n private largeImageSubscription: Subscription;\n\n constructor(private contentManagement: ContentManagementService) { }\n\n ngOnInit(): void {\n this.imageLinkType = !this.slide.navigateUrl ? 'None' :\n this.slide.navigateTarget === '_blank' ? 'External' :\n 'Internal';\n\n if (this.slide.imageSrcSmall) {\n this.smallImageSubscription = this.contentManagement\n .getAsset(this.websiteConfig.id, this.component.componentId, this.slide.imageSrcSmall)\n .subscribe(src => {\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.smallImage = image);\n image.src = src;\n });\n }\n\n if (this.slide.imageSrcLarge) {\n this.largeImageSubscription = this.contentManagement\n .getAsset(this.websiteConfig.id, this.component.componentId, this.slide.imageSrcLarge)\n .subscribe(src => {\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.largeImage = image);\n image.src = src;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.smallImageSubscription) {\n this.smallImageSubscription.unsubscribe();\n }\n if (this.largeImageSubscription) {\n this.largeImageSubscription.unsubscribe();\n }\n }\n\n imageChanged(files: File[]): void {\n if (!files || !files.length) {\n this.smallImage = undefined;\n this.largeImage = undefined;\n return;\n }\n\n this.largeImageSubscription = this.contentManagement\n .resizeAndSaveAsset(this.websiteConfig.id, this.component.componentId, files[0], this.largeImageWidth,\n this.largeImageHeight)\n .subscribe(result => {\n this.slide.imageSrcLarge = result.imageFilename;\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.largeImage = image);\n image.src = result.imageUrl;\n });\n\n this.smallImageSubscription = this.contentManagement\n .resizeAndSaveAsset(this.websiteConfig.id, this.component.componentId, files[0], this.smallImageWidth,\n this.smallImageHeight)\n .subscribe(result => {\n this.slide.imageSrcSmall = result.imageFilename;\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.smallImage = image);\n image.src = result.imageUrl;\n });\n }\n\n imageLinkTypeChanged(value: ImageLinkTypeValue): void {\n this.slide.navigateUrl = '';\n this.slide.navigateTarget = value === 'External' ? '_blank' : '';\n }\n\n previewSmallImage(): void {\n this.previewDialogOpened = true;\n this.previewDialogTitle = 'Preview Small Image';\n this.previewDialogImage = this.smallImage;\n this.previewDialogWidth = 575;\n }\n\n previewLargeImage(): void {\n this.previewDialogOpened = true;\n this.previewDialogTitle = 'Preview Large Image';\n this.previewDialogImage = this.largeImage;\n this.previewDialogWidth = 1140;\n }\n}\n","
\n \n
\n \"Preview\n
\n \n \n
\n
\n
(Recommended Size: {{ largeImageWidth }}× {{ largeImageHeight }})
\n \n \n
\n
\n \n \n
\n
\n \n \n \n\n
\n \n
\n
\n {{ websiteConfig.baseUrl }}\n
\n \n
\n
\n
\n\n\n
\n \n
\n \n {{ previewDialogImage.width }}×{{ previewDialogImage.height }}\n
\n
\n
\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { SingleImageSlide } from 'src/app/models/website-management/single-image-slide';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-single-image-slide-preview',\n templateUrl: './single-image-slide-preview.component.html',\n styleUrls: ['./single-image-slide-preview.component.scss']\n})\nexport class SingleImageSlidePreviewComponent implements OnInit, OnDestroy {\n @Input() websiteId: string;\n @Input() componentId: string;\n @Input() slide: SingleImageSlide;\n\n imageSmall: string;\n imageLarge: string;\n\n private imageSmallSubscription: Subscription;\n private imageLargeSubscription: Subscription;\n private siteConfig: WebsiteConfig;\n\n constructor(\n private contentManagement: ContentManagementService,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.siteConfig = this.consumersiteConfig.find(x => x.id === this.websiteId);\n }\n\n ngOnDestroy(): void {\n if (this.imageSmallSubscription) {\n this.imageSmallSubscription.unsubscribe();\n }\n if (this.imageLargeSubscription) {\n this.imageLargeSubscription.unsubscribe();\n }\n }\n\n get navigateUrl(): string {\n return `${this.siteConfig.baseUrl}${this.slide.navigateUrl}`;\n }\n\n openImageSmallModal(): void {\n this.imageSmall = undefined;\n this.imageSmallSubscription = this.contentManagement\n .getAsset(this.websiteId, this.componentId, this.slide.imageSrcSmall)\n .subscribe(src => this.imageSmall = src);\n }\n\n openImageLargeModal(): void {\n this.imageLarge = undefined;\n this.imageLargeSubscription = this.contentManagement\n .getAsset(this.websiteId, this.componentId, this.slide.imageSrcLarge)\n .subscribe(src => this.imageLarge = src);\n }\n}\n","
    \n
  • \n \n \n \n \n \n
  • \n
  • \n \n \n \n \n \n
  • \n
  • \n \n {{ slide.imageAlt }}\n
  • \n
  • \n \n {{ slide.navigateUrl }}\n
  • \n
  • \n \n \n Yes\n \n \n No\n \n
  • \n
\n","import { SingleImageSlide } from 'src/app/models/website-management/single-image-slide';\nimport { SplitImageSlide } from 'src/app/models/website-management/split-image-slide';\nimport { WebsiteComponent } from 'src/app/models/website-management/website-component';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-split-image-slide-draft',\n templateUrl: './split-image-slide-draft.component.html',\n styleUrls: ['./split-image-slide-draft.component.scss']\n})\nexport class SplitImageSlideDraftComponent implements OnInit {\n @Input() slide: SplitImageSlide;\n @Input() component: WebsiteComponent;\n @Input() websiteConfig: WebsiteConfig;\n @Input() disabled: boolean;\n\n readonly largeImageWidth = 570;\n readonly largeImageHeight = 445;\n readonly smallImageWidth = 270;\n readonly smallImageHeight = 211;\n\n ngOnInit(): void {\n if (!this.slide.left) {\n this.slide.left = {} as SingleImageSlide;\n }\n\n if (!this.slide.right) {\n this.slide.right = {} as SingleImageSlide;\n }\n }\n}\n","
\n
\n
Left Image
\n \n \n
\n
\n
Right Image
\n \n \n
\n
\n","import { SplitImageSlide } from 'src/app/models/website-management/split-image-slide';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-split-image-slide-preview',\n templateUrl: './split-image-slide-preview.component.html',\n styleUrls: ['./split-image-slide-preview.component.scss']\n})\nexport class SplitImageSlidePreviewComponent {\n @Input() slide: SplitImageSlide;\n @Input() componentId: string;\n @Input() websiteId: string;\n}\n","
    \n
  • \n \n
    \n \n \n
    \n
  • \n
  • \n \n
    \n \n \n
    \n
  • \n
\n","import { Observable, Subscription } from 'rxjs';\nimport { CanComponentDeactivate } from 'src/app/guards/can-deactivate.guard';\nimport { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CONSUMERSITE_CONFIG, WINDOW } from '../../injection-tokens';\nimport { ComponentHistoryItem } from '../../models/website-management/component-history-item';\nimport { WebsiteComponent } from '../../models/website-management/website-component';\nimport { WebsiteConfig } from '../../models/website-management/website-config';\nimport { HeaderService } from '../../services/header.service';\nimport { ContentManagementService } from '../../services/website-management/content-management.service';\n\n@Component({\n selector: 'app-content-management',\n templateUrl: './content-management.component.html',\n styleUrls: ['./content-management.component.scss']\n})\nexport class ContentManagementComponent implements OnInit, OnDestroy, CanComponentDeactivate {\n\n private websiteId: string;\n private componentId: string;\n private savedDraft: string;\n\n private componentSubscription: Subscription;\n private componentHistorySubscription: Subscription;\n\n readonly dateTimeFormat = 'M/d/yyyy h:mm a';\n\n websiteConfig: WebsiteConfig;\n component: WebsiteComponent;\n activeContent: ComponentHistoryItem[];\n componentHistory: ComponentHistoryItem[];\n draft: ComponentHistoryItem;\n\n deleteDialogOpened = false;\n publishDialogOpened = false;\n abandonDialogOpened = false;\n deactivateDialogOpened = false;\n loading = true;\n\n constructor(\n private route: ActivatedRoute,\n private contentManagement: ContentManagementService,\n private header: HeaderService,\n @Inject(WINDOW) private window: Window,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n\n this.route.paramMap.subscribe(params => {\n this.websiteId = params.get('websiteId');\n this.componentId = params.get('componentId');\n\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === this.websiteId);\n this.updateHistory();\n });\n }\n\n ngOnDestroy(): void {\n if (this.componentSubscription) {\n this.componentSubscription.unsubscribe();\n }\n if (this.componentHistorySubscription) {\n this.componentHistorySubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will be lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.returnValue = true;\n }\n }\n\n createDraft(id: number): void {\n this.loading = true;\n this.contentManagement.createDraftComponent(this.websiteId, this.componentId, id).subscribe(status => {\n this.loading = false;\n if (status) {\n this.updateHistory();\n } else {\n console.error('Unable to create component draft');\n }\n });\n }\n\n saveAndPreviewDraft(): void {\n this.saveDraft(() => this.previewComponent());\n }\n\n saveDraft(fn: () => void): void {\n this.loading = true;\n this.contentManagement.saveDraftComponent(this.websiteId, this.componentId, this.draft).subscribe(status => {\n this.loading = false;\n if (status) {\n this.savedDraft = JSON.stringify(this.draft);\n if (fn) {\n fn.call(this);\n }\n } else {\n console.error('Unable to save draft component');\n }\n });\n }\n\n abandonDraft(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(confirmed: boolean): void {\n if (confirmed) {\n this.draft = JSON.parse(this.savedDraft);\n }\n\n this.abandonDialogOpened = false;\n }\n\n deleteDraft(): void {\n this.deleteDialogOpened = true;\n }\n\n deleteDialogClick(confirmed: boolean): void {\n if (!confirmed) {\n this.deleteDialogOpened = false;\n return;\n }\n\n this.loading = true;\n this.contentManagement.deleteDraftComponent(this.websiteId, this.componentId).subscribe(() => {\n this.updateHistory();\n this.deleteDialogOpened = false;\n });\n }\n\n publishDraft(): void {\n this.publishDialogOpened = true;\n }\n\n publishDialogClick(confirmed: boolean): void {\n if (!confirmed) {\n this.publishDialogOpened = false;\n return;\n }\n\n this.loading = true;\n this.contentManagement.publishDraft(this.websiteId, this.componentId).subscribe(() => {\n this.updateHistory();\n this.publishDialogOpened = false;\n });\n }\n\n deactivateContent(): void {\n this.deactivateDialogOpened = true;\n }\n\n deactivateContentClick(confirmed: boolean): void {\n if (!confirmed || !this.activeContent || !this.activeContent.length) {\n this.deactivateDialogOpened = false;\n return;\n }\n\n this.loading = true;\n const contentId = this.activeContent[0].id;\n\n this.contentManagement.deactivate(this.websiteId, this.componentId, contentId).subscribe(() => {\n this.updateHistory();\n this.deactivateDialogOpened = false;\n });\n }\n\n previewComponent(): void {\n const url = `${this.websiteConfig.baseUrl}${this.component.previewUrl}?preview=${this.component.componentId}`;\n this.window.open(url, 'preview');\n }\n\n publishStartClick(value: boolean): void {\n if (!value) {\n this.draft.publishStart = null;\n } else if (!this.draft.publishStart) {\n this.draft.publishStart = this.today;\n }\n }\n\n publishStartChange(value: Date): void {\n this.draft.publishStart = value;\n }\n\n publishEndClick(value: boolean): void {\n if (!value) {\n this.draft.publishEnd = null;\n } else if (!this.draft.publishEnd) {\n this.draft.publishEnd = this.today;\n }\n }\n\n publishEndChange(value: Date): void {\n this.draft.publishEnd = value;\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.draft) !== this.savedDraft;\n }\n\n private get today(): Date {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n }\n\n private updateHistory() {\n this.loading = true;\n this.componentSubscription = this.contentManagement.getComponent(this.websiteId, this.componentId)\n .subscribe(component => {\n this.componentSubscription = undefined;\n this.component = component;\n this.header.title = `Content Management ${component.name}`;\n\n this.componentHistorySubscription = this.contentManagement.getComponentHistory(this.websiteId, this.componentId)\n .subscribe(history => {\n this.loading = false;\n\n const draftIndex = history.findIndex(x => x.draft);\n if (draftIndex >= 0 ) {\n const draft = history.splice(draftIndex, 1)[0];\n if (draft.publishStart) {\n draft.publishStart = new Date(draft.publishStart);\n }\n if (draft.publishEnd) {\n draft.publishEnd = new Date(draft.publishEnd);\n }\n this.draft = draft;\n } else {\n this.draft = undefined;\n }\n\n this.activeContent = undefined;\n if (!this.component.cascades && history.length) {\n const activeId = history\n .map(x => x.id)\n .reduce((acc, val) => val > acc ? val : acc);\n const activeIndex = history.findIndex(x => x.id === activeId);\n if (activeIndex >= 0) {\n const activeContent = history[activeIndex];\n if (activeContent.active) {\n this.activeContent = history.splice(activeIndex, 1);\n }\n }\n }\n\n this.savedDraft = JSON.stringify(this.draft);\n this.componentHistory = history;\n });\n });\n }\n}\n","
\n \n

{{ component?.name }}

\n

{{ component?.description }}

\n\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n \n
\n \n
\n
\n\n \n \n
\n\n
\n
\n

Publish Start Date

\n
\n \n \n
\n
\n \n \n \n \n
\n
\n\n
\n

Publish End Date

\n
\n \n \n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n The publish end date must come after the start date.\n
\n
\n
\n\n \n \n\n
\n\n \n

Active Content

\n \n \n \n
{{ dataItem.createdBy }}
\n
{{ dataItem.dateCreated | date:dateTimeFormat }}
\n
\n \n
\n \n
\n
\n \n \n {{ dataItem?.publishStart | date:dateTimeFormat }}\n \n \n \n \n {{ dataItem?.publishEnd | date:dateTimeFormat }}\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n\n

Content History

\n \n \n \n
{{ dataItem.createdBy }}
\n
{{ dataItem.dateCreated | date:dateTimeFormat }}
\n
\n \n
\n
\n
\n \n \n {{ dataItem?.publishStart | date:dateTimeFormat }}\n \n \n \n \n {{ dataItem?.publishEnd | date:dateTimeFormat }}\n \n \n \n \n {{ dataItem.active ? 'Yes' : 'No' }}\n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n\n\n

Are you sure you want to delete this draft?

\n \n \n \n \n
\n\n\n

Are you sure you want to publish the current draft?

\n \n \n \n \n
\n\n\n

Are you sure you want to abandon the current draft?

\n \n \n \n \n
\n\n\n

Are you sure you want to de-activate this content?

\n \n \n \n \n
\n","import { fromEvent, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { Charity } from 'src/app/models/website-management/charity';\nimport { DropoffLocation } from 'src/app/models/website-management/dropoff-location';\nimport { fileSelectRestrictions as restrictions } from 'src/app/models/website-management/file-select-restrictions';\nimport { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { State } from 'src/app/models/website-management/state';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { GoogleMapsService } from 'src/app/services/google-maps.service';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { CharityManagementService } from 'src/app/services/website-management/charity-management.service';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport {\n DropoffLocationManagementService\n} from 'src/app/services/website-management/dropoff-location-management.service';\nimport { Component, HostListener, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MapGeocoder } from '@angular/google-maps';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Component({\n selector: 'app-dropoff-location-management',\n templateUrl: './dropoff-location-management.component.html',\n styleUrls: ['./dropoff-location-management.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DropoffLocationManagementComponent implements OnInit, OnDestroy {\n dropoffLocation: DropoffLocation;\n dropoffLocationImage: HTMLImageElement;\n fileSelectRestrictions = restrictions;\n loading = false;\n abandonDialogOpened = false;\n geolocateDialogOpened = false;\n viewCoordinatesDialogOpened = false;\n viewImageRequiredAlert = false;\n\n readonly defaultLatitude = 40.1043;\n readonly defaultLongitude = -74.9272;\n readonly minLatitude = -90;\n readonly maxLatitude = 90;\n readonly minLongitude = -180;\n readonly maxLongitude = 180;\n readonly recommendedImageSize = '740x500';\n\n states$: Observable;\n googleApiLoaded$: Observable;\n charities$: Observable;\n\n geolocatedLatLng: google.maps.LatLngLiteral;\n websiteConfig: WebsiteConfig;\n\n private _savedDropoffLocation: string;\n private routeParamSubscription: Subscription;\n private fragmentSubscription: Subscription;\n private dropoffLocationSubscription: Subscription;\n private geocodingSubscription: Subscription;\n private imageSubscription: Subscription;\n\n constructor(\n private dropoffLocationManagement: DropoffLocationManagementService,\n private charityManagement: CharityManagementService,\n private contentManagement: ContentManagementService,\n private geocoder: MapGeocoder,\n private route: ActivatedRoute,\n private router: Router,\n private header: HeaderService,\n private notification: NotificationService,\n googleMaps: GoogleMapsService,\n @Inject(WINDOW) private window: Window,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[],\n ) {\n this.googleApiLoaded$ = googleMaps.loaded;\n }\n\n ngOnInit(): void {\n\n this.routeParamSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === websiteId);\n this.header.title = `Drop-off Location Management for ${this.websiteConfig.name}`;\n\n this.states$ = this.contentManagement.getStates(websiteId).pipe(\n map(x => x.sort((a, b) => a.abbreviation.localeCompare(b.abbreviation, 'en', { sensitivity: 'base' })))\n );\n\n this.charities$ = this.charityManagement.getCharities(websiteId);\n\n const dropoffLocationIdText = params.get('dropoffLocationId');\n if (!dropoffLocationIdText) {\n this.createNewDropoffLocation();\n } else {\n this.fragmentSubscription = this.route.fragment.subscribe(fragment => {\n const dropoffLocationId = parseInt(dropoffLocationIdText, 10);\n this.loadDropoffLocation(dropoffLocationId, fragment === 'new');\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeParamSubscription) {\n this.routeParamSubscription.unsubscribe();\n }\n if (this.fragmentSubscription) {\n this.fragmentSubscription.unsubscribe();\n }\n if (this.dropoffLocationSubscription) {\n this.dropoffLocationSubscription.unsubscribe();\n }\n if (this.geocodingSubscription) {\n this.geocodingSubscription.unsubscribe();\n }\n if (this.imageSubscription) {\n this.imageSubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.preventDefault();\n }\n }\n\n saveDropoffLocation(): void {\n if (!this.dropoffLocation.image || !this.dropoffLocation.image.trim().length) {\n this.viewImageRequiredAlert = true;\n return;\n }\n\n this.viewImageRequiredAlert = false;\n this.loading = true;\n\n if (this.dropoffLocation.id > 0) {\n this.dropoffLocationManagement.updateDropoffLocation(this.dropoffLocation, this.websiteConfig.id)\n .subscribe(location => {\n this.dropoffLocation = location;\n this.savedDropoffLocation = location;\n\n this.loading = false;\n this.notification.show({\n content: 'This drop-off location has been saved.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n });\n } else {\n this.dropoffLocationManagement.createDropoffLocation(this.dropoffLocation, this.websiteConfig.id)\n .subscribe(result => {\n this.dropoffLocation = result;\n this.savedDropoffLocation = result;\n this.router.navigate(\n [ 'website-management', this.websiteConfig.id, 'dropoff-location-management', result.id ],\n { fragment: 'new' }\n );\n });\n }\n }\n\n geolocate(): void {\n this.loading = true;\n const address = `${this.dropoffLocation.address}, ${this.dropoffLocation.city}, ${this.dropoffLocation.state}`;\n this.geocodingSubscription = this.geocoder.geocode({ address }).subscribe(response => {\n this.geolocatedLatLng = {\n lat: response.results[0].geometry.location.lat(),\n lng: response.results[0].geometry.location.lng()\n };\n\n this.geolocateDialogOpened = true;\n\n setTimeout(() => this.loading = false);\n });\n }\n\n useGeolocatedCoordinates(): void {\n this.dropoffLocation.latitude = this.geolocatedLatLng.lat;\n this.dropoffLocation.longitude = this.geolocatedLatLng.lng;\n\n this.geolocateDialogOpened = false;\n }\n\n viewCoordinates(): void {\n this.viewCoordinatesDialogOpened = true;\n }\n\n imageChanged(files: File[]): void {\n if (!files || !files.length) {\n this.dropoffLocation.image = '';\n this.dropoffLocationImage = undefined;\n return;\n }\n\n this.loading = true;\n\n this.dropoffLocationManagement.saveImage(this.websiteConfig.id, files[0]).subscribe(result => {\n this.dropoffLocation.image = result.image;\n this.dropoffLocation.imageUrls = result.imageUrls;\n this.loading = false;\n this.loadImage();\n });\n }\n\n get existingPageSlug(): string {\n return this.savedDropoffLocation.pageSlug;\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.dropoffLocation = this.savedDropoffLocation;\n this.loadImage();\n }\n\n this.abandonDialogOpened = false;\n }\n\n previewDropoffLocation(event: Event): void {\n event.preventDefault();\n const url = (event.target as HTMLAnchorElement).href;\n this.window.open(url, 'preview');\n }\n\n private createNewDropoffLocation() {\n const hours: LocationHours[] = [];\n const now = new Date();\n for (let i = 1; i <= 7; i++) {\n hours.push({\n dayofWeek: i,\n openTime: new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0),\n closeTime: new Date(now.getFullYear(), now.getMonth(), now.getDate(), 17, 0),\n closed: false,\n temporary: false\n });\n }\n const dropoffLocation: DropoffLocation = {\n id: 0,\n name: '',\n address: '',\n address2: '',\n city: '',\n state: undefined,\n zip: '',\n active: true,\n latitude: this.defaultLatitude,\n longitude: this.defaultLongitude,\n image: undefined,\n pageSlug: '',\n pageContent: '',\n hours: hours,\n imageUrls: undefined,\n locatedNear: '',\n charities: []\n };\n\n this.dropoffLocation = dropoffLocation;\n this.savedDropoffLocation = dropoffLocation;\n }\n\n private loadDropoffLocation(dropoffLocationId: number, newDropoffLocation: boolean) {\n this.loading = true;\n\n this.dropoffLocationSubscription = this.dropoffLocationManagement\n .getDropoffLocation(dropoffLocationId, this.websiteConfig.id)\n .subscribe(location => {\n this.dropoffLocation = location;\n this.savedDropoffLocation = location;\n this.loadImage();\n this.loading = false;\n\n if (newDropoffLocation) {\n this.notification.show({\n content: 'This drop-off location has been created.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n });\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.dropoffLocation) !== this._savedDropoffLocation;\n }\n\n get dropoffLocationLatLng(): google.maps.LatLng {\n return new google.maps.LatLng(this.dropoffLocation.latitude, this.dropoffLocation.longitude);\n }\n\n private loadImage() {\n if (!this.dropoffLocation.image) {\n this.dropoffLocationImage = undefined;\n return;\n }\n\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.dropoffLocationImage = image);\n image.src = this.dropoffLocation.imageUrls.thumb\n }\n\n private get savedDropoffLocation(): DropoffLocation {\n const location = JSON.parse(this._savedDropoffLocation) as DropoffLocation;\n\n location.hours.forEach(hours => {\n hours.openTime = new Date(hours.openTime);\n hours.closeTime = new Date(hours.closeTime);\n });\n\n return location;\n }\n\n private set savedDropoffLocation(location: DropoffLocation) {\n this._savedDropoffLocation = JSON.stringify(location);\n }\n}\n","\n\n\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n\n
\n \n \n
\n A name is required\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n A street address is required.\n
\n
\n A city is required.\n
\n
\n A zip code must contain 5 numeric digits.\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n
\n \n \n \n\n \n \n \n\n \n
\n
\n
\n Latitude is a required value between {{ minLatitude }} and {{ maxLatitude }}.\n
\n
\n Longitude is a required value between {{ minLongitude }} and {{ maxLongitude }}.\n
\n
\n The latitude and longitude provided does not exist in the United States.\n
\n
\n
\n\n
\n \n
\n
\n {{ websiteConfig.baseUrl }}/find-a-location/\n
\n \n
\n
\n Page Slug is required.\n
\n
\n A page slug can only contain lower-case letters, numbers and the \"-\" character.\n
\n
\n The page slug entered already exists. Page slugs must be unique.\n
\n
\n Unable to determine if the page slug is unqiue. Please try again later.\n
\n
\n\n
\n \n
\n \n
\n \n \n
\n An image is required.\n
\n
\n\n
\n \n \n \n
\n\n
\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n The opening time must occur before the closing time.\n
\n
\n\n
\n \n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this service area?

\n \n \n \n \n
\n\n\n \n \n \n\n
\n \n \n\n \n \n
\n\n \n \n \n \n
\n\n\n \n \n \n\n","import { Observable, Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { PressItem } from 'src/app/models/website-management/press-item';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { PressItemManagementService } from 'src/app/services/website-management/press-item-management.service';\nimport { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Component({\n selector: 'app-press-item-management',\n templateUrl: './press-item-management.component.html',\n styleUrls: ['./press-item-management.component.scss']\n})\nexport class PressItemManagementComponent implements OnInit, OnDestroy {\n pressItem: PressItem;\n savedPressItem: string;\n loading: boolean;\n expires: boolean;\n abandonDialogOpened = false;\n resourceUrl: string;\n documentFiles: File[];\n documentFileName: string;\n documentFileUrl: string;\n websiteConfig: WebsiteConfig;\n\n private routeParamSubscription: Subscription;\n private fragmentSubscription: Subscription;\n private pressItemSubscription: Subscription;\n\n constructor(\n private pressItemManagement: PressItemManagementService,\n private route: ActivatedRoute,\n private router: Router,\n private header: HeaderService,\n private notification: NotificationService,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.routeParamSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === websiteId);\n this.header.title = `Press Item Management for ${this.websiteConfig.name}`;\n\n const pressItemIdText = params.get('pressItemId');\n if (!pressItemIdText) {\n this.createNewPressItem();\n } else {\n this.fragmentSubscription = this.route.fragment.subscribe(fragment => {\n const pressItemId = parseInt(pressItemIdText, 10);\n this.loadPressItem(pressItemId, fragment === 'new');\n })\n }\n })\n }\n\n ngOnDestroy(): void {\n if (this.routeParamSubscription) {\n this.routeParamSubscription.unsubscribe();\n }\n if (this.fragmentSubscription) {\n this.fragmentSubscription.unsubscribe();\n }\n if (this.pressItemSubscription) {\n this.pressItemSubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.returnValue = true;\n }\n }\n\n savePressItem(): void {\n this.loading = true;\n\n this.pressItem.resource = this.pressItem.resourceType === 'Url' ? this.resourceUrl : this.documentFileName;\n\n this.pressItemSubscription = this.pressItemManagement.savePressItem(this.pressItem, this.websiteConfig.id)\n .subscribe(pressItem => {\n const created = this.pressItem.id === 0;\n\n this.pressItem = pressItem;\n this.savedPressItem = JSON.stringify(this.pressItem);\n\n if (created) {\n this.router.navigate(\n [ 'website-management', this.websiteConfig.id, 'press-item-management', pressItem.id ],\n { fragment: 'new' });\n } else {\n this.loading = false;\n this.showNotification('This press item has been saved.');\n }\n });\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.pressItem = JSON.parse(this.savedPressItem);\n this.pressItem.publishDate = new Date(this.pressItem.publishDate);\n if (this.pressItem.expirationDate) {\n this.pressItem.expirationDate = new Date(this.pressItem.expirationDate);\n }\n\n this.renderPressItem();\n }\n\n this.abandonDialogOpened = false;\n }\n\n documentChanged(files: File[]): void {\n if (!files || !files.length) {\n return;\n }\n\n this.loading = true;\n this.pressItemSubscription = this.pressItemManagement.createDocument(files[0], this.websiteConfig.id)\n .subscribe(url => {\n this.loading = false;\n this.pressItem.resource = url;\n this.renderPressItem();\n });\n }\n\n expiresChanged(): void {\n if (this.expires) {\n const dt = this.pressItem.publishDate;\n this.pressItem.expirationDate = new Date(dt.getFullYear() + 1, dt.getMonth(), dt.getDate());\n } else {\n this.pressItem.expirationDate = null;\n }\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.pressItem) !== this.savedPressItem;\n }\n\n private createNewPressItem(): void {\n const now = new Date();\n\n this.pressItem = {\n id: 0,\n category: 'PressRelease',\n title: '',\n resourceType: 'Url',\n resource: '',\n source: '',\n publishDate: new Date(now.getFullYear(), now.getMonth(), now.getDate()),\n expirationDate: null\n };\n\n this.savedPressItem = JSON.stringify(this.pressItem);\n this.renderPressItem();\n }\n\n private loadPressItem(pressItemId: number, newPressItem: boolean) {\n this.loading = true;\n\n this.pressItemSubscription = this.pressItemManagement.getPressItem(pressItemId, this.websiteConfig.id)\n .subscribe(pressItem => {\n this.pressItem = pressItem;\n this.savedPressItem = JSON.stringify(pressItem);\n\n this.renderPressItem();\n this.expires = !!pressItem.expirationDate;\n\n this.loading = false;\n\n if (newPressItem) {\n this.showNotification('This press item has been created');\n }\n });\n }\n\n private showNotification(msg: string): void {\n this.notification.show({\n content: msg,\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n\n private renderPressItem() {\n this.expires = !!this.pressItem.expirationDate;\n\n this.resourceUrl = '';\n this.documentFileUrl = '';\n this.documentFileName = '';\n\n if (this.pressItem.resourceType === 'Url') {\n this.resourceUrl = this.pressItem.resource;\n } else {\n this.documentFileUrl = this.pressItem.resource;\n\n const url = new URL(this.pressItem.resource);\n const segments = url.pathname.split('/');\n this.documentFileName = segments[segments.length - 1];\n }\n }\n}\n","\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n \n
\n Title is required.\n
\n
\n\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n A value is required when URL is selected.\n
\n
\n
\n
\n \n \n
\n \n
\n\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n\n
\n \n \n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this service area?

\n \n \n \n \n
\n","import { fromEvent, Observable, Subscription } from 'rxjs';\nimport { CanComponentDeactivate } from 'src/app/guards/can-deactivate.guard';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { fileSelectRestrictions as restrictions } from 'src/app/models/website-management/file-select-restrictions';\nimport { Promo } from 'src/app/models/website-management/promo';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { PromotionManagementService } from 'src/app/services/website-management/promotion-management.service';\nimport { Component, HostListener, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Component({\n selector: 'app-promotion-management',\n templateUrl: './promotion-management.component.html',\n styleUrls: ['./promotion-management.component.scss']\n})\nexport class PromotionManagementComponent implements OnInit, OnDestroy, CanComponentDeactivate {\n promotion: Promo;\n savedPromo: string;\n smallImage: HTMLImageElement;\n largeImage: HTMLImageElement;\n fileSelectRestrictions = restrictions;\n loading = false;\n abandonDialogOpened = false;\n\n previewDialogOpened = false;\n previewDialogWidth: number;\n previewDialogTitle: string;\n previewDialogImage: HTMLImageElement;\n websiteConfig: WebsiteConfig;\n\n private routeParamSubscription: Subscription;\n private fragmentSubscription: Subscription;\n private promotionSubscription: Subscription;\n private smallImageSubscription: Subscription;\n private largeImageSubscription: Subscription;\n\n readonly recommendedImageSize = '1140x641';\n readonly promotionTypes = ['Sale', 'Promotion'];\n\n constructor(\n private promotionManagement: PromotionManagementService,\n private route: ActivatedRoute,\n private router: Router,\n private header: HeaderService,\n private notification: NotificationService,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.routeParamSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === websiteId);\n this.header.title = `Promotion Management for ${this.websiteConfig.name}`;\n\n const promotionIdText = params.get('promotionId');\n if (!promotionIdText) {\n this.createNewPromo();\n } else {\n this.fragmentSubscription = this.route.fragment.subscribe(fragment => {\n const promotionId = parseInt(promotionIdText, 10);\n this.loadPromo(promotionId, fragment === 'new');\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeParamSubscription) {\n this.routeParamSubscription.unsubscribe();\n }\n if (this.fragmentSubscription) {\n this.fragmentSubscription.unsubscribe();\n }\n if (this.promotionSubscription) {\n this.promotionSubscription.unsubscribe();\n }\n if (this.smallImageSubscription) {\n this.smallImageSubscription.unsubscribe();\n }\n if (this.largeImageSubscription) {\n this.largeImageSubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.returnValue = true;\n }\n }\n\n get promotionStart(): Date {\n return new Date(this.promotion.start);\n }\n set promotionStart(value: Date) {\n this.promotion.start = value.toISOString();\n }\n\n get promotionEnd(): Date {\n return new Date(this.promotion.end);\n }\n set promotionEnd(value: Date) {\n this.promotion.end = value.toISOString();\n }\n\n savePromotion(): void {\n this.loading = true;\n this.promotionManagement.savePromotion(this.websiteConfig.id, this.promotion).subscribe(promo => {\n const created = this.promotion.id === 0;\n\n this.promotion = promo;\n this.savedPromo = JSON.stringify(promo);\n\n if (created) {\n this.router.navigate(\n [ 'website-management', this.websiteConfig.id, 'promotion-management', promo.id ],\n { fragment: 'new' });\n } else {\n this.loading = false;\n this.notification.show({\n content: 'This promotion has been saved.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n });\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.promotion = JSON.parse(this.savedPromo);\n this.loadSmallImage();\n this.loadLargeImage();\n }\n\n this.abandonDialogOpened = false;\n }\n\n selectPromoTypeChanged(promoType: string): void {\n if (promoType === 'Promotion') {\n this.promotion.overrideSaleColors = false;\n }\n }\n\n imageChanged(files: File[]): void {\n if (!files || !files.length) {\n this.promotion.imageSrcSmall = '';\n this.promotion.imageSrcLarge = '';\n return;\n }\n\n this.loading = true;\n this.promotionSubscription = this.promotionManagement.saveAsset(this.websiteConfig.id, files[0])\n .subscribe(result => {\n this.promotion.imageSrcSmall = result.smallImageFilename;\n this.promotion.imageSrcLarge = result.largeImageFilename;\n\n const smallImage = new Image();\n fromEvent(smallImage, 'load').subscribe(() => this.smallImage = smallImage);\n smallImage.src = result.smallImageUrl;\n\n const largeImage = new Image();\n fromEvent(largeImage, 'load').subscribe(() => this.largeImage = largeImage);\n largeImage.src = result.largeImageUrl;\n\n this.loading = false;\n });\n }\n\n previewSmallImage(): void {\n this.previewDialogOpened = true;\n this.previewDialogWidth = 575;\n this.previewDialogTitle = 'Preview Small Image';\n this.previewDialogImage = this.smallImage;\n }\n\n previewLargeImage(): void {\n this.previewDialogOpened = true;\n this.previewDialogWidth = 1140;\n this.previewDialogTitle = 'Preview Large Image';\n this.previewDialogImage = this.largeImage;\n }\n\n private createNewPromo() {\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n const promo: Promo = {\n id: 0,\n promotionType: 'Sale',\n description: '',\n start: today.toISOString(),\n end: today.toISOString(),\n active: true,\n imageSrcSmall: undefined,\n imageSrcLarge: undefined,\n dateCreated: undefined,\n createdBy: undefined,\n navigateUrl: '/sales-and-specials',\n overrideSaleColors: false\n };\n\n this.promotion = promo;\n this.savedPromo = JSON.stringify(promo);\n }\n\n private loadPromo(promotionId: number, newPromo: boolean) {\n this.loading = true;\n\n this.promotionSubscription = this.promotionManagement\n .getPromotion(this.websiteConfig.id, promotionId)\n .subscribe(promo => {\n this.promotion = promo;\n this.savedPromo = JSON.stringify(promo);\n this.loadSmallImage();\n this.loadLargeImage();\n\n this.loading = false;\n\n if (newPromo) {\n this.notification.show({\n content: 'This promotion has been created.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n });\n }\n\n private loadSmallImage() {\n if (!this.promotion.imageSrcSmall) {\n this.smallImage = undefined;\n return;\n }\n\n this.smallImageSubscription = this.promotionManagement\n .getAsset(this.websiteConfig.id, this.promotion.imageSrcSmall)\n .subscribe(src => {\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.smallImage = image);\n image.src = src;\n });\n }\n\n private loadLargeImage() {\n if (!this.promotion.imageSrcLarge) {\n this.largeImage = undefined;\n return;\n }\n\n this.largeImageSubscription = this.promotionManagement\n .getAsset(this.websiteConfig.id, this.promotion.imageSrcLarge)\n .subscribe(src => {\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.largeImage = image);\n image.src = src;\n });\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.promotion) !== this.savedPromo;\n }\n}\n","\n\n
\n
\n
\n \n
\n
\n \n
\n \n
\n\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n \n \n Entire store sale information\n
\n
\n
\n
\n
\n \n \n \n
\n \n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this promotion?

\n \n \n \n \n
\n\n\n
\n \n
\n \n {{ previewDialogImage.width }}×{{ previewDialogImage.height }}\n
\n
\n
\n","import { Observable, Subscription } from 'rxjs';\nimport { CanComponentDeactivate } from 'src/app/guards/can-deactivate.guard';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { ServiceArea } from 'src/app/models/website-management/service-area';\nimport { State } from 'src/app/models/website-management/state';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport { ServiceAreaManagementService } from 'src/app/services/website-management/service-area-management.service';\nimport { Component, HostListener, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Component({\n selector: 'app-service-area-management',\n templateUrl: './service-area-management.component.html',\n styleUrls: ['./service-area-management.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ServiceAreaManagementComponent implements OnInit, OnDestroy, CanComponentDeactivate {\n serviceArea: ServiceArea;\n savedServiceArea: string;\n loading = false;\n abandonDialogOpened = false;\n\n states$: Observable;\n serviceAreaType: 'major' | 'minor';\n websiteConfig: WebsiteConfig;\n\n private routeParamSubscription: Subscription;\n private fragmentSubscription: Subscription;\n private serviceAreaSubscription: Subscription;\n\n constructor(\n private serviceAreaManagement: ServiceAreaManagementService,\n private contentManagement: ContentManagementService,\n private route: ActivatedRoute,\n private router: Router,\n private header: HeaderService,\n private notification: NotificationService,\n @Inject(WINDOW) private window: Window,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.routeParamSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === websiteId);\n this.header.title = `Service Area Management for ${this.websiteConfig.name}`;\n\n this.states$ = this.contentManagement.getStates(websiteId);\n\n const serviceAreaIdText = params.get('serviceAreaId');\n if (!serviceAreaIdText) {\n this.createNewServiceArea();\n } else {\n this.fragmentSubscription = this.route.fragment.subscribe(fragment => {\n const serviceAreaId = parseInt(serviceAreaIdText, 10);\n this.loadServiceArea(serviceAreaId, fragment === 'new');\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeParamSubscription) {\n this.routeParamSubscription.unsubscribe();\n }\n if (this.fragmentSubscription) {\n this.fragmentSubscription.unsubscribe();\n }\n if (this.serviceAreaSubscription) {\n this.serviceAreaSubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.returnValue = true;\n }\n }\n\n saveServiceArea(): void {\n if (this.serviceAreaType === 'major' &&\n (this.serviceArea.city.trim().length < 1 || this.serviceArea.state.trim().length !== 2)) {\n return;\n } else if (this.serviceAreaType === 'minor' && this.serviceArea.address.trim().length < 1) {\n return;\n }\n\n if (this.serviceAreaType === 'major') {\n this.serviceArea.address = '';\n } else {\n this.serviceArea.city = '';\n this.serviceArea.state = '';\n }\n\n this.loading = true;\n\n if (this.serviceArea.id > 0) {\n this.serviceAreaManagement.updateServiceArea(this.serviceArea, this.websiteConfig.id).subscribe(() => {\n this.loading = false;\n this.savedServiceArea = JSON.stringify(this.serviceArea);\n this.notification.show({\n content: 'This service area has been saved.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n });\n } else {\n this.serviceAreaManagement.createServiceArea(this.serviceArea, this.websiteConfig.id).subscribe(result => {\n this.router.navigate(\n [ 'website-management', this.websiteConfig.id, 'service-area-management', result.id ], {\n fragment: 'new'\n });\n });\n }\n }\n\n get existingPageSlug(): string {\n return !this.savedServiceArea ? null :\n (JSON.parse(this.savedServiceArea) as ServiceArea).pageSlug;\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.serviceArea = JSON.parse(this.savedServiceArea);\n }\n\n this.abandonDialogOpened = false;\n }\n\n serviceAreaTypeChange(serviceAreaType: 'major' | 'minor'): void {\n this.serviceAreaType = serviceAreaType;\n }\n\n previewServiceArea(event: Event): void {\n event.preventDefault();\n const url = (event.target as HTMLAnchorElement).href;\n this.window.open(url, 'preview');\n }\n\n private createNewServiceArea() {\n const serviceArea: ServiceArea = {\n id: 0,\n name: '',\n address: '',\n city: '',\n state: '',\n active: true,\n pageTitle: '',\n pageContent: '',\n pageSlug: '',\n pageDescription: '',\n sortOrder: 0\n };\n\n this.serviceAreaType = 'minor';\n\n this.serviceArea = serviceArea;\n this.savedServiceArea = JSON.stringify(serviceArea);\n }\n\n private loadServiceArea(serviceAreaId: number, newServiceArea: boolean) {\n this.loading = true;\n\n this.serviceAreaSubscription = this.serviceAreaManagement.getServiceArea(serviceAreaId, this.websiteConfig.id)\n .subscribe(serviceArea => {\n this.serviceArea = serviceArea;\n this.savedServiceArea = JSON.stringify(serviceArea);\n\n this.serviceAreaType = serviceArea.address && serviceArea.address.length > 0 ? 'minor' : 'major';\n\n this.loading = false;\n\n if (newServiceArea) {\n this.notification.show({\n content: 'This service area has been created.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n }\n });\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.serviceArea) !== this.savedServiceArea;\n }\n}\n","\n\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n City & State are required when “Major” is selected.\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n Service Area is required when “Minor” is selected.\n
\n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n Page Title is required.\n
\n
\n\n
\n \n
\n
\n {{ websiteConfig.baseUrl }}/\n
\n \n
\n
\n Page Slug is required.\n
\n
\n A page slug can only contain lower-case letters, numbers and the \"-\" character.\n
\n
\n The page slug entered already exists. Page slugs must be unique.\n
\n
\n Unable to determine if the page slug is unqiue. Please try again later.\n
\n
\n\n
\n \n \n
\n Page Heading is required.\n
\n
\n\n
\n \n \n
\n\n
\n \n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this service area?

\n \n \n \n \n
\n","import { SlideDraftSwitchDirective } from 'src/app/directives/slide-draft-switch.directive';\nimport { CarouselSlide } from 'src/app/models/website-management/carousel-slide';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { SingleImageSlideDraftComponent } from '../components/single-image-slide-draft/single-image-slide-draft.component';\nimport { SingleImageSlide } from 'src/app/models/website-management/single-image-slide';\nimport { WebsiteComponent } from 'src/app/models/website-management/website-component';\nimport { SplitImageSlideDraftComponent } from '../components/split-image-slide-draft/split-image-slide-draft.component';\nimport { SplitImageSlide } from 'src/app/models/website-management/split-image-slide';\nimport { HtmlContentSlideDraftComponent } from '../components/html-content-slide-draft/html-content-slide-draft.component';\nimport { HtmlContentSlide } from 'src/app/models/website-management/html-content-slide';\n\n@Component({\n selector: 'app-slide-draft',\n templateUrl: './slide-draft.component.html',\n styleUrls: ['./slide-draft.component.scss']\n})\nexport class SlideDraftComponent implements OnInit {\n @Input() slide: CarouselSlide;\n @Input() component: Component;\n @Input() websiteConfig: WebsiteConfig;\n @Input() disabled: boolean;\n\n @ViewChild(SlideDraftSwitchDirective, {static: true}) appSlideDraftSwitch!: SlideDraftSwitchDirective;\n\n ngOnInit(): void {\n const viewContainerRef = this.appSlideDraftSwitch.viewContainerRef;\n viewContainerRef.clear();\n\n if (this.slide.type === 'ConsumerSites.Common.Models.SingleImageSlide') {\n const componentRef = this.appSlideDraftSwitch.viewContainerRef.createComponent(SingleImageSlideDraftComponent);\n componentRef.instance.slide = this.slide as SingleImageSlide;\n componentRef.instance.component = this.component as WebsiteComponent;\n componentRef.instance.websiteConfig = this.websiteConfig;\n componentRef.instance.disabled = this.disabled;\n } else if (this.slide.type === 'ConsumerSites.Common.Models.SplitImageSlide') {\n const componentRef = this.appSlideDraftSwitch.viewContainerRef.createComponent(SplitImageSlideDraftComponent);\n componentRef.instance.slide = (this.slide as unknown) as SplitImageSlide;\n componentRef.instance.component = this.component as WebsiteComponent;\n componentRef.instance.websiteConfig = this.websiteConfig;\n componentRef.instance.disabled = this.disabled;\n } else if (this.slide.type === 'ConsumerSites.Common.Models.HtmlContentSlide') {\n const componentRef = this.appSlideDraftSwitch.viewContainerRef.createComponent(HtmlContentSlideDraftComponent);\n componentRef.instance.slide = (this.slide as unknown) as HtmlContentSlide;\n componentRef.instance.disabled = this.disabled;\n } else {\n throw new TypeError('Unknown slide type');\n }\n }\n}\n","\n","import { SlidePreviewSwitchDirective } from 'src/app/directives/slide-preview-switch.directive';\nimport { CarouselSlide } from 'src/app/models/website-management/carousel-slide';\nimport { HtmlContentSlide } from 'src/app/models/website-management/html-content-slide';\nimport { SingleImageSlide } from 'src/app/models/website-management/single-image-slide';\nimport { SplitImageSlide } from 'src/app/models/website-management/split-image-slide';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n HtmlContentSlidePreviewComponent\n} from '../components/html-content-slide-preview/html-content-slide-preview.component';\nimport {\n SingleImageSlidePreviewComponent\n} from '../components/single-image-slide-preview/single-image-slide-preview.component';\nimport {\n SplitImageSlidePreviewComponent\n} from '../components/split-image-slide-preview/split-image-slide-preview.component';\n\n@Component({\n selector: 'app-slide-preview',\n templateUrl: './slide-preview.component.html',\n styleUrls: ['./slide-preview.component.scss']\n})\nexport class SlidePreviewComponent implements OnInit {\n @Input() slide: CarouselSlide;\n @Input() componentId: string;\n @Input() websiteId: string;\n\n @ViewChild(SlidePreviewSwitchDirective, {static: true}) appSlidePreviewSwitchDirective!: SlidePreviewSwitchDirective;\n\n slideTypeName: string;\n\n ngOnInit(): void {\n const viewContainerRef = this.appSlidePreviewSwitchDirective.viewContainerRef;\n viewContainerRef.clear();\n\n if (this.slide.type === 'ConsumerSites.Common.Models.SingleImageSlide') {\n this.slideTypeName = 'Single Image Slide';\n\n const viewContainerRef = this.appSlidePreviewSwitchDirective.viewContainerRef\n .createComponent(SingleImageSlidePreviewComponent);\n viewContainerRef.instance.slide = this.slide as SingleImageSlide;\n viewContainerRef.instance.componentId = this.componentId;\n viewContainerRef.instance.websiteId = this.websiteId;\n } else if (this.slide.type === 'ConsumerSites.Common.Models.SplitImageSlide') {\n this.slideTypeName = 'Split Image Slide';\n\n const viewContainerRef = this.appSlidePreviewSwitchDirective.viewContainerRef\n .createComponent(SplitImageSlidePreviewComponent);\n viewContainerRef.instance.slide = (this.slide as unknown) as SplitImageSlide;\n viewContainerRef.instance.componentId = this.componentId;\n viewContainerRef.instance.websiteId = this.websiteId;\n } else if (this.slide.type === 'ConsumerSites.Common.Models.HtmlContentSlide') {\n this.slideTypeName = 'HTML Content Slide';\n\n const viewContainerRef = this.appSlidePreviewSwitchDirective.viewContainerRef\n .createComponent(HtmlContentSlidePreviewComponent);\n viewContainerRef.instance.slide = (this.slide as unknown) as HtmlContentSlide;\n } else {\n throw new TypeError('Unknown slide type');\n }\n }\n\n}\n","
\n \n
\n\n","import { fromEvent, Observable, Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { fileSelectRestrictions as restrictions } from 'src/app/models/website-management/file-select-restrictions';\nimport { State } from 'src/app/models/website-management/state';\nimport { Store } from 'src/app/models/website-management/store';\nimport { StoreSubType } from 'src/app/models/website-management/store-sub-type';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { GoogleMapsService } from 'src/app/services/google-maps.service';\nimport { HeaderService } from 'src/app/services/header.service';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport { StoreManagementService } from 'src/app/services/website-management/store-management.service';\nimport { Component, HostListener, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MapGeocoder } from '@angular/google-maps';\nimport { ActivatedRoute } from '@angular/router';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Component({\n selector: 'app-store-management',\n templateUrl: './store-management.component.html',\n styleUrls: ['./store-management.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class StoreManagementComponent implements OnInit, OnDestroy {\n store: Store;\n storeImage: HTMLImageElement;\n fileSelectRestrictions = restrictions;\n loading = false;\n abandonDialogOpened = false;\n geolocateDialogOpened = false;\n viewCoordinatesDialogOpened = false;\n\n readonly latitudeMin = -90;\n readonly latitudeMax = 90;\n readonly longitudeMin = -180;\n readonly longitudeMax = 180;\n readonly recommendedImageSize = '760x300';\n\n states$: Observable;\n storeSubTypes$: Observable;\n googleApiLoaded$: Observable;\n websiteConfig: WebsiteConfig;\n\n geolocatedLatLng: google.maps.LatLngLiteral;\n\n private _savedStore: string;\n private routeParamsSubscription: Subscription;\n private storeSubscription: Subscription;\n private geocodingSubscription: Subscription;\n private imageSubscription: Subscription;\n\n constructor(\n private storeManagement: StoreManagementService,\n private contentManagement: ContentManagementService,\n private geocoder: MapGeocoder,\n private route: ActivatedRoute,\n private header: HeaderService,\n private notification: NotificationService,\n googleMaps: GoogleMapsService,\n @Inject(WINDOW) private window: Window,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) {\n this.googleApiLoaded$ = googleMaps.loaded;\n }\n\n ngOnInit(): void {\n this.routeParamsSubscription = this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === websiteId);\n this.header.title = `Store Management for ${this.websiteConfig.name}`;\n\n this.states$ = this.contentManagement.getStates(websiteId);\n this.storeSubTypes$ = this.storeManagement.getStoreSubTypes(websiteId);\n const storeIdText = params.get('storeId');\n const storeId = parseInt(storeIdText, 10);\n\n this.loadStore(storeId);\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeParamsSubscription) {\n this.routeParamsSubscription.unsubscribe();\n }\n if (this.storeSubscription) {\n this.storeSubscription.unsubscribe();\n }\n if (this.geocodingSubscription) {\n this.geocodingSubscription.unsubscribe();\n }\n if (this.imageSubscription) {\n this.imageSubscription.unsubscribe();\n }\n }\n\n canDeactivate(): Observable | Promise | boolean {\n if (this.dirty) {\n return confirm('You have unsaved changes that will lost if you leave. Are you sure you want to leave?');\n }\n return true;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification(event: Event): void {\n if (this.dirty) {\n event.returnValue = true;\n }\n }\n\n get existingPageSlug(): string {\n return this.savedStore.pageSlug;\n }\n\n saveStore(): void {\n this.loading = true;\n\n this.storeManagement.saveStore(this.store, this.websiteConfig.id).subscribe(store => {\n this.store = store;\n this.savedStore = store;\n\n this.loading = false;\n this.notification.show({\n content: 'This store has been saved.',\n animation: { type: 'slide', duration: 350 },\n position: { horizontal: 'center', vertical: 'top' },\n type: { style: 'success', icon: true },\n hideAfter: 3000\n });\n });\n }\n\n geolocate(): void {\n this.loading = true;\n const address = `${this.store.address}, ${this.store.city}, ${this.store.state}`;\n this.geocodingSubscription = this.geocoder.geocode({ address }).subscribe(response => {\n const location = response.results[0].geometry.location;\n this.geolocatedLatLng = {\n lat: location.lat(),\n lng: location.lng()\n };\n\n this.geolocateDialogOpened = true;\n\n setTimeout(() => this.loading = false);\n });\n }\n\n useGeolocatedCoordinates(): void {\n this.store.latitude = this.geolocatedLatLng.lat;\n this.store.longitude = this.geolocatedLatLng.lng;\n\n this.geolocateDialogOpened = false;\n }\n\n imageChanged(files: File[]): void {\n if (!files || !files.length) {\n this.store.image = '';\n this.storeImage = undefined;\n return;\n }\n\n this.loading = true;\n\n this.storeManagement.saveImage(files[0], this.websiteConfig.id).subscribe(result => {\n this.store.image = result.image;\n this.store.imageUrl = result.imageUrl;\n this.loading = false;\n this.loadImage();\n });\n }\n\n abandonChanges(): void {\n this.abandonDialogOpened = true;\n }\n\n abandonDialogClick(value: boolean): void {\n if (value) {\n this.store = this.savedStore;\n this.loadImage();\n }\n\n this.abandonDialogOpened = false;\n }\n\n previewStore(event: Event): void {\n event.preventDefault();\n const url = (event.target as HTMLAnchorElement).href;\n this.window.open(url, 'preview');\n }\n\n get dirty(): boolean {\n return JSON.stringify(this.store) !== this._savedStore;\n }\n\n private loadStore(storeId: number) {\n this.loading = true;\n\n this.storeSubscription = this.storeManagement.getStore(storeId, this.websiteConfig.id).subscribe(store => {\n this.store = store;\n this.savedStore = store;\n this.loadImage();\n this.loading = false;\n });\n }\n\n get storeLatLng(): google.maps.LatLng {\n return new google.maps.LatLng(this.store.latitude, this.store.longitude);\n }\n\n private loadImage() {\n if (!this.store.image) {\n this.storeImage = undefined;\n return;\n }\n\n const image = new Image();\n fromEvent(image, 'load').subscribe(() => this.storeImage = image);\n image.src = this.store.imageUrl;\n }\n\n private get savedStore(): Store {\n const store = JSON.parse(this._savedStore) as Store;\n\n store.hours.forEach(hours => {\n hours.openTime = new Date(hours.openTime);\n hours.closeTime = new Date(hours.closeTime);\n });\n\n return store;\n }\n\n private set savedStore(store: Store) {\n this._savedStore = JSON.stringify(store);\n }\n}\n","\n\n\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n\n
\n \n \n
\n A name is required\n
\n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n A street address is required.\n
\n
\n A city is required.\n
\n
\n A zip code must contain 5 numeric digits.\n
\n
\n\n
\n \n
\n \n \n \n\n \n \n \n\n \n
\n
\n Latitude is a required value between {{ latitudeMin }} and {{ latitudeMax }}.\n
\n
\n Longitude is a required value between {{ longitudeMin }} and {{ longitudeMax }}.\n
\n
\n The latitude and longitude provided does not exist in the United States.\n
\n
\n\n
\n \n \n \n
\n\n
\n \n
\n
\n {{ websiteConfig.baseUrl }}/store/\n
\n \n
\n
\n Page Slug is required.\n
\n
\n A page slug can only contain lower-case letters, numbers and the \"-\" character.\n
\n
\n The page slug entered already exists. Page slugs must be unique.\n
\n
\n Unable to determine if the page slug is unqiue. Please try again later.\n
\n
\n\n
\n \n \n
\n Page Description is required.\n
\n
\n\n
\n \n \n
\n\n
\n \n
\n \n
\n \n \n
\n\n
\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n The opening time must occur before the closing time.\n
\n
\n\n
\n \n \n \n
\n
\n\n\n

Are you sure you want to abandon the changes to this store?

\n \n \n \n \n
\n\n\n \n \n \n\n
\n \n \n\n \n \n
\n\n \n \n \n \n
\n\n\n \n \n \n\n","import { forkJoin, Observable, Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { CharityManagementService } from 'src/app/services/website-management/charity-management.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Charity } from 'src/app/models/website-management/charity';\nimport { DmsCharity } from 'src/app/models/website-management/dms-charity';\n\n@Component({\n selector: 'app-charities',\n templateUrl: './charities.component.html',\n styleUrls: ['./charities.component.scss']\n})\nexport class CharitiesComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n charities$: Observable;\n unclaimedCharities: DmsCharity[];\n\n loading = true;\n\n private routeSubscription: Subscription;\n private dmsCharitiesSubscription: Subscription;\n\n constructor(\n private charityManagement: CharityManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.route.paramMap.subscribe(params => {\n const websiteId = params.get('websiteId');\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === websiteId);\n\n this.charities$ = this.charityManagement.getCharities(websiteId);\n this.loading = false;\n });\n\n const dmsCharities$ = this.charityManagement.getDmsCharities();\n const charities$ = this.charityManagement.getCharities(this.websiteConfig.id);\n this.dmsCharitiesSubscription = forkJoin([dmsCharities$, charities$]).subscribe(val => {\n const charityCodes = val[1].map(x => x.code);\n this.unclaimedCharities = val[0].filter(x => !charityCodes.includes(x.charityCode));\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.dmsCharitiesSubscription) {\n this.dmsCharitiesSubscription.unsubscribe();\n }\n }\n}\n","
\n

Charities

\n
\n
\n \n \n
\n
\n
\n\n\n \n \n \n \n \n \n 0\">\n {{ dataItem.link.length > 0 ? 'Yes' : 'No' }}\n \n \n\n \n \n \n \n \n \n \n Edit\n \n \n \n\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { WebsiteComponent } from 'src/app/models/website-management/website-component';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { ContentManagementService } from 'src/app/services/website-management/content-management.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-components',\n templateUrl: './components.component.html',\n styleUrls: ['./components.component.scss']\n})\nexport class ComponentsComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n components: WebsiteComponent[];\n loading = true;\n\n private componentSubscription: Subscription;\n private routeSubscription: Subscription;\n\n constructor(\n private contentManagement: ContentManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window\n ) { }\n\n ngOnInit(): void {\n this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === params.get('websiteId'));\n this.loading = true;\n\n this.componentSubscription = this.contentManagement.getComponents(this.websiteConfig.id)\n .subscribe(components => {\n this.loading = false;\n this.components = components;\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this.componentSubscription) {\n this.componentSubscription.unsubscribe();\n }\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n previewComponent(component: WebsiteComponent): void {\n const url = `${this.websiteConfig.baseUrl}${component.previewUrl}`;\n this.window.open(url, 'preview');\n }\n}\n","

Content Management

\n\n \n \n \n \n \n \n \n \n \n\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { DropoffLocation } from 'src/app/models/website-management/dropoff-location';\nimport { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport {\n DropoffLocationManagementService\n} from 'src/app/services/website-management/dropoff-location-management.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\ninterface StateLocation {\n state: string;\n locations: DropoffLocation[];\n expanded: boolean;\n}\n\n@Component({\n selector: 'app-dropoff-locations',\n templateUrl: './dropoff-locations.component.html',\n styleUrls: ['./dropoff-locations.component.scss']\n})\nexport class DropoffLocationsComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n\n private routeSubscription: Subscription;\n private getDropoffLocationsSubscription: Subscription;\n private updateAllDropoffLocationHoursSubscription: Subscription;\n\n stateLocations: StateLocation[];\n loading: boolean;\n allDropoffHours: LocationHours[];\n\n dropOffHoursError = false;\n opened = false;\n\n constructor(\n private dropoffLocationManagement: DropoffLocationManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window,\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === params.get('websiteId'));\n this.refreshDropoffLocations();\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.getDropoffLocationsSubscription) {\n this.getDropoffLocationsSubscription.unsubscribe();\n }\n if (this.updateAllDropoffLocationHoursSubscription) {\n this.updateAllDropoffLocationHoursSubscription.unsubscribe();\n }\n }\n\n dropoffLocationClick(state: string): void {\n const stateLocation = this.stateLocations.find(x => x.state === state);\n if (stateLocation) {\n stateLocation.expanded = !stateLocation.expanded;\n }\n }\n\n previewDropoffLocation(event: Event): void {\n event.preventDefault();\n const url = (event.target as HTMLAnchorElement).href;\n this.window.open(url, 'preview');\n }\n\n onChangeHoursClick(): void {\n this.opened = true;\n }\n\n onDialogClose(): void {\n this.opened = false;\n }\n\n onSaveHours(): void {\n this.loading = true;\n\n const $ = this.dropoffLocationManagement.updateDropoffLocationHours(this.websiteConfig.id, this.allDropoffHours);\n this.updateAllDropoffLocationHoursSubscription = $.subscribe(() => {\n this.loading = false;\n this.refreshDropoffLocations();\n this.onDialogClose();\n });\n }\n\n private refreshDropoffLocations() {\n if (this.getDropoffLocationsSubscription) {\n this.getDropoffLocationsSubscription.unsubscribe();\n }\n this.loading = true;\n const $ = this.dropoffLocationManagement.getDropoffLocations(this.websiteConfig.id);\n this.getDropoffLocationsSubscription = $.subscribe(locations => {\n this.stateLocations = locations\n .reduce((acc, val) => {\n if (!acc.find(x => x === val.state.name)) {\n acc.push(val.state.name);\n }\n return acc;\n }, [] as string[])\n .map(state => {\n return {\n state,\n locations: locations\n .filter(x => x.state.name === state)\n .sort((a, b) => a.name.localeCompare(b.name, 'en', { sensitivity: 'base' })),\n expanded: false\n };\n })\n .sort((a, b) => a.state.localeCompare(b.state, 'en', { sensitivity: 'base' }));\n\n if (locations.length) {\n this.allDropoffHours = locations[0].hours.sort(x => x.dayofWeek);\n }\n\n this.loading = false;\n });\n }\n\n}\n","
\n

Drop-off Locations

\n
\n \n \n \n New Drop-off Location\n \n
\n
\n\n
\n \n
\n\n
\n
\n
\n

\n \n

\n
\n
\n
\n
\n
\n \n
\n
{{ location.name }}
\n
\n {{ location.address}}\n
\n {{ location.address2.length ? location.address2 : '' }}\n
\n {{ location.city }}, {{ location.state.abbreviation }} {{ location.zip }}\n
\n \n \n Not Active\n
\n \n
\n
\n
\n
\n
\n
\n\n\n
\n \n This will change the hours for ALL drop-off locations.\n
\n\n \n \n\n
\n The opening time must occur before the closing time.\n
\n\n \n \n \n \n
\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { PressItem } from 'src/app/models/website-management/press-item';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { PressItemManagementService } from 'src/app/services/website-management/press-item-management.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\n\n@Component({\n selector: 'app-press-items',\n templateUrl: './press-items.component.html',\n styleUrls: ['./press-items.component.scss']\n})\nexport class PressItemsComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n data: GridDataResult;\n loading: boolean;\n skip = 0;\n\n readonly pageSize = 10;\n\n private routeSubscription: Subscription;\n private pressItemSubscription: Subscription;\n\n constructor(\n private pressItemManagement: PressItemManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === params.get('websiteId'));\n this.loadPressItems();\n })\n }\n\n ngOnDestroy(): void {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.pressItemSubscription) {\n this.pressItemSubscription.unsubscribe();\n }\n }\n\n pageChanged(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.loadPressItems();\n }\n\n isExpired(pressItem: PressItem): boolean {\n return pressItem.expirationDate < new Date();\n }\n\n previewPressItems(): void {\n const url = `${this.websiteConfig.baseUrl}/in-the-news`;\n this.window.open(url, 'preview')\n }\n\n private loadPressItems(): void {\n if (this.pressItemSubscription) {\n this.pressItemSubscription.unsubscribe();\n this.pressItemSubscription = undefined;\n }\n\n this.loading = true;\n this.pressItemSubscription = this.pressItemManagement\n .getPressItems(this.skip, this.pageSize, this.websiteConfig.id)\n .subscribe(result => {\n this.data = {\n data: result.items,\n total: result.itemCount\n };\n this.loading = false;\n });\n }\n}\n","
\n

Press Items

\n
\n \n \n \n New Press Item\n \n
\n
\n\n\n \n \n \n \n {{ dataItem.category | humanize }}\n \n \n \n \n \n External Link\n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n {{ dataItem.expirationDate | date:'M/d/yy h:mm a' }}\n \n \n \n \n \n \n Edit\n \n \n \n\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG } from 'src/app/injection-tokens';\nimport { ColorSale } from 'src/app/models/website-management/color-sale';\nimport { PriceColor } from 'src/app/models/website-management/price-color';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { PromotionManagementService } from 'src/app/services/website-management/promotion-management.service';\nimport { Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n DateChangeEvent, EventClickEvent, EventStyleArgs, Resource, SchedulerEvent\n} from '@progress/kendo-angular-scheduler';\n\ninterface PromotionSchedulerEvent extends SchedulerEvent {\n saleColor: number;\n}\n\n\n@Component({\n selector: 'app-promotion-calendar',\n templateUrl: './promotion-calendar.component.html',\n styleUrls: ['./promotion-calendar.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PromotionCalendarComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n selectedDate = new Date();\n scheduleLoading = true;\n activeOnly = true;\n resources: Resource[] = [{\n name: 'Sale',\n data: [\n { text: 'Blue', value: PriceColor.Blue, color: '#0000ff' },\n { text: 'Pink', value: PriceColor.Pink, color: '#ff69b4' },\n { text: 'Orange', value: PriceColor.Orange, color: '#ffa500' },\n { text: 'Green', value: PriceColor.Green, color: '#008000' },\n { text: 'Yellow', value: PriceColor.Yellow, color: '#cccc00' },\n { text: 'Violet', value: PriceColor.Violet, color: '#9400d3' },\n { text: 'Promotion', value: 'promo', color: '#dc143c' }\n ],\n field: 'saleColor',\n valueField: 'value',\n textField: 'text',\n colorField: 'color'\n }];\n dateRangeStart: Date;\n dateRangeEnd: Date;\n\n events: SchedulerEvent[];\n schedulerHeight = 830;\n\n readonly eventHeight = 25;\n\n private routeSubscription: Subscription;\n private scheduleSubscription: Subscription;\n\n constructor(\n private router: Router,\n private promotionManagement: PromotionManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === params.get('websiteId'));\n });\n }\n\n ngOnDestroy(): void {\n if (this.scheduleSubscription) {\n this.scheduleSubscription.unsubscribe();\n }\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n schedulerDateChanged(event: DateChangeEvent): void {\n this.dateRangeStart = event.dateRange.start;\n this.dateRangeEnd = event.dateRange.end;\n this.refreshEvents();\n }\n\n eventClicked(event: EventClickEvent): void {\n if (event.originalEvent.button === 0 && event.event.saleColor === 'promo') {\n this.router.navigate([\n 'website-management',\n this.websiteConfig.id,\n 'promotion-management',\n event.event.dataItem.promotion.id\n ]);\n }\n }\n\n getEventType(event: SchedulerEvent): 'Sale' | 'ActivePromo' | 'InactivePromo' {\n return event.dataItem.promotion\n ? (event.dataItem.promotion.active ? 'ActivePromo' : 'InactivePromo')\n : 'Sale';\n }\n\n getEventClass(args: EventStyleArgs): string {\n return args.event.dataItem.saleColor === 'promo' ? 'event-promo' : '';\n }\n\n refreshEvents(): void {\n this.scheduleLoading = true;\n\n this.scheduleSubscription = this.promotionManagement\n .getSchedule(this.websiteConfig.id, this.dateRangeStart, this.dateRangeEnd)\n .subscribe(result => {\n this.scheduleLoading = false;\n const perc33Sales: SchedulerEvent[] = result.perc33Sales.map(x => this.createEventFromColorSale(x, '33% Off'));\n const perc50Sales: SchedulerEvent[] = result.perc50Sales.map(x => this.createEventFromColorSale(x, '50% Off'));\n const promotions: SchedulerEvent[] = result.promotions\n .filter(x => !(!x.active && this.activeOnly))\n .map(x => {\n const end = new Date(x.end);\n\n return {\n title: x.description,\n start: new Date(x.start),\n end: new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59, 999),\n isAllDay: false,\n saleColor: 'promo',\n promotion: x\n };\n });\n\n this.events = [].concat(perc33Sales, perc50Sales, promotions);\n this.refreshSchedulerHeight();\n });\n }\n\n private createEventFromColorSale(sale: ColorSale, saleDesc: string): PromotionSchedulerEvent {\n return {\n title: `${PriceColor[sale.color]} ${saleDesc}`,\n start: new Date(sale.start),\n end: new Date(new Date(sale.end).getTime() + 24 * 60 * 60),\n isAllDay: false,\n saleColor: sale.color\n };\n }\n\n private refreshSchedulerHeight() {\n const counts: number[] = [];\n for (const dt = new Date(this.dateRangeStart); dt < this.dateRangeEnd; dt.setDate(dt.getDate() + 1)) {\n counts.push(this.events.filter(x => x.start <= dt && x.end >= dt).length);\n }\n\n const maxEventPerDay = counts.reduce((acc, cur) => Math.max(cur, acc), 0);\n this.schedulerHeight = ((this.eventHeight + 2) * maxEventPerDay + 45) * 6 + 111;\n }\n}\n","
\n

Sale Colors & Promotions

\n
\n \n \n
\n \n
\n\n \n \n \n \n Click to edit\n {{ event.title }}\n \n \n \n Click to edit\n {{ event.title }}\n \n {{ event.title }}\n \n \n\n \n \n\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { ServiceArea } from 'src/app/models/website-management/service-area';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { ServiceAreaManagementService } from 'src/app/services/website-management/service-area-management.service';\nimport { Component, Inject, OnDestroy, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-service-areas',\n templateUrl: './service-areas.component.html',\n styleUrls: ['./service-areas.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ServiceAreasComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n loading: boolean;\n serviceAreas: ServiceArea[];\n\n private routeSubscription: Subscription;\n private subscription: Subscription;\n private sortOrderSubscription: Subscription;\n\n constructor(\n private serviceAreaManagement: ServiceAreaManagementService,\n private route: ActivatedRoute,\n private renderer: Renderer2,\n @Inject(CONSUMERSITE_CONFIG) private consumersitesConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window,\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersitesConfig.find(x => x.id === params.get('websiteId'));\n this.refreshServiceAreas();\n });\n }\n\n ngOnDestroy(): void {\n this.destroyDragListeners();\n\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.sortOrderSubscription) {\n this.sortOrderSubscription.unsubscribe();\n }\n }\n\n previewServiceArea(serviceArea: ServiceArea): void {\n const url = `${this.websiteConfig.baseUrl}/${serviceArea.pageSlug}`;\n this.window.open(url, 'preview');\n }\n\n private setDraggableRows(): void {\n const tableRows = this.getAllRows();\n document.addEventListener('dragend', () => {\n tableRows.forEach(tr => tr.classList.remove('service-area-drop'));\n });\n tableRows.forEach(tr => {\n this.renderer.setAttribute(tr, 'draggable', 'true');\n this.addDragListener(tr);\n });\n }\n\n private refreshServiceAreas() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n\n this.loading = true;\n this.subscription = this.serviceAreaManagement.getServiceAreas(this.websiteConfig.id).subscribe(result => {\n this.serviceAreas = result;\n this.loading = false;\n\n setTimeout(() => this.setDraggableRows());\n });\n }\n\n private getAllRows(): HTMLTableRowElement[] {\n return Array.from(document.querySelectorAll('#service-area-grid tr'));\n }\n\n\n private addDragListener(tr: HTMLTableRowElement) {\n tr.addEventListener('dragstart', event => {\n const sourceId = this.getServiceAreaIdFromRow(tr);\n if (!sourceId) {\n event.preventDefault();\n return;\n }\n\n event.dataTransfer.setData('text/plain', sourceId.toString());\n event.dataTransfer.effectAllowed = 'move';\n });\n tr.addEventListener('dragover', event => {\n event.preventDefault();\n\n this.getAllRows().forEach(tr => tr.classList.remove('service-area-drop'));\n\n const targetId = this.getServiceAreaIdFromRow(tr);\n if (!targetId) {\n return;\n }\n\n event.dataTransfer.dropEffect = 'move';\n tr.classList.add('service-area-drop');\n });\n tr.addEventListener('drop', event => {\n event.preventDefault();\n\n this.getAllRows().forEach(tr => tr.classList.remove('service-area-drop'));\n\n const sourceId = Number(event.dataTransfer.getData('text/plain'));\n const targetId = this.getServiceAreaIdFromRow(tr);\n if (!sourceId || !targetId) {\n return;\n }\n\n const sourceIndex = this.serviceAreas.findIndex(x => x.id === sourceId);\n const targetIndex = this.serviceAreas.findIndex(x => x.id === targetId);\n\n const serviceArea = this.serviceAreas.splice(sourceIndex, 1);\n this.serviceAreas.splice(targetIndex, 0, ...serviceArea);\n\n if (this.sortOrderSubscription) {\n this.sortOrderSubscription.unsubscribe();\n }\n this.sortOrderSubscription = this.serviceAreaManagement\n .updateServiceAreaSortOrder(this.serviceAreas.map(x => x.id), this.websiteConfig.id)\n .subscribe();\n });\n }\n\n private destroyDragListeners(): void {\n const tableRows = this.getAllRows();\n tableRows.forEach(tr => {\n document.removeAllListeners('dragend');\n tr.removeAllListeners('dragstart');\n tr.removeAllListeners('dragover');\n tr.removeAllListeners('drop');\n });\n }\n\n private getServiceAreaIdFromRow(tr: HTMLTableRowElement): number | undefined {\n const td = tr.querySelector('td:first-child');\n return td ? Number(td.textContent) : undefined;\n }\n}\n","
\n

Service Areas

\n \n
\n\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ dataItem.city }} {{ dataItem.state }}\n \n {{ dataItem.address }}\n \n \n \n \n \n \n \n \n \n\n","import { Subscription } from 'rxjs';\nimport { CONSUMERSITE_CONFIG, WINDOW } from 'src/app/injection-tokens';\nimport { LocationHours } from 'src/app/models/website-management/location-hours';\nimport { Store } from 'src/app/models/website-management/store';\nimport { WebsiteConfig } from 'src/app/models/website-management/website-config';\nimport { StoreManagementService } from 'src/app/services/website-management/store-management.service';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'app-stores',\n templateUrl: './stores.component.html',\n styleUrls: ['./stores.component.scss']\n})\nexport class StoresComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n\n private routeSubscription: Subscription;\n private storesSubscription: Subscription;\n private hoursSubscription: Subscription;\n\n stores: Store[];\n\n loading: boolean;\n allStoreHours: LocationHours[];\n opened = false;\n\n constructor(\n private storeManagement: StoreManagementService,\n private route: ActivatedRoute,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[],\n @Inject(WINDOW) private window: Window\n ) { }\n\n ngOnInit(): void {\n this.routeSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === params.get('websiteId'));\n this.refreshStores();\n })\n }\n\n ngOnDestroy(): void {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n if (this.storesSubscription) {\n this.storesSubscription.unsubscribe();\n }\n if (this.hoursSubscription) {\n this.hoursSubscription.unsubscribe();\n }\n }\n\n previewStore(event: Event): void {\n event.preventDefault();\n const url = (event.target as HTMLAnchorElement).href;\n this.window.open(url, 'preview');\n }\n\n onChangeHoursClick(): void {\n this.opened = true;\n }\n\n onDialogClose(): void {\n this.opened = false;\n\n this.allStoreHours = this.stores[0].hours.sort(x => x.dayofWeek);\n }\n\n onSaveHours(): void {\n this.loading = true;\n\n const $ = this.storeManagement.updateAllStoreHours(this.allStoreHours, this.websiteConfig.id);\n this.hoursSubscription = $.subscribe(() => {\n this.loading = false;\n this.refreshStores();\n this.onDialogClose();\n });\n }\n\n private refreshStores() {\n if (this.storesSubscription) {\n this.storesSubscription.unsubscribe();\n }\n this.loading = true;\n\n const $ = this.storeManagement.getStores(this.websiteConfig.id);\n this.storesSubscription = $.subscribe(stores => {\n this.stores = stores.sort(x => x.longitude);\n\n if (stores.length) {\n this.allStoreHours = stores[0].hours.sort(x => x.dayofWeek);\n }\n\n this.loading = false;\n })\n }\n}\n","
\n

Stores

\n
\n \n
\n
\n\n\n\n
\n
\n
\n \n
\n
{{ store.name }}
\n
\n {{ store.address }}
\n {{ store.city }}, {{ store.state.abbreviation }} {{ store.zip }}\n
\n \n \n Not Active\n
\n \n
\n
\n
\n\n\n
\n \n This will change the hours for ALL stores.\n
\n\n \n \n\n
\n The opening time must occur before the closing time.\n
\n\n \n \n \n \n
\n","import { Subscription } from 'rxjs';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CONSUMERSITE_CONFIG } from '../../injection-tokens';\nimport { WebsiteConfig } from '../../models/website-management/website-config';\nimport { HeaderService } from '../../services/header.service';\n\n@Component({\n selector: 'app-website-management',\n templateUrl: './website-management.component.html',\n styleUrls: ['./website-management.component.scss']\n})\nexport class WebsiteManagementComponent implements OnInit, OnDestroy {\n websiteConfig: WebsiteConfig;\n section: string;\n\n private routeParamSubscription: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private header: HeaderService,\n @Inject(CONSUMERSITE_CONFIG) private consumersiteConfig: WebsiteConfig[]\n ) {}\n\n ngOnInit(): void {\n this.routeParamSubscription = this.route.paramMap.subscribe(params => {\n this.websiteConfig = this.consumersiteConfig.find(x => x.id === params.get('websiteId'));\n this.section = params.get('section');\n this.header.title = `Website Management for ${this.websiteConfig.name}`;\n });\n }\n\n ngOnDestroy(): void {\n if (this.routeParamSubscription) {\n this.routeParamSubscription.unsubscribe();\n }\n }\n\n createRelativeHref(componentName: string): string[] {\n return [ '/website-management', this.websiteConfig.id, componentName ];\n }\n\n isTabActive(section: string): boolean {\n return this.section === section;\n }\n}\n","
\n \n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { LogLevel } from \"@azure/msal-browser\";\n\nexport function consoleLogger(level: LogLevel, message: string): void {\n if (!window.console) {\n return;\n }\n\n switch (level) {\n case LogLevel.Error:\n console.error(message);\n break;\n\n case LogLevel.Warning:\n console.warn(message);\n break;\n\n default:\n console.log(message);\n break;\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { fromEvent } from 'rxjs';\nimport { enableProdMode, StaticProvider } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG } from '@azure/msal-angular';\nimport { BrowserCacheLocation, InteractionType, LogLevel, PublicClientApplication } from '@azure/msal-browser';\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { AppModule } from './app/app.module';\nimport { CONSUMERSITE_CONFIG, GOOGLE_API_KEY } from './app/injection-tokens';\nimport { APPLICATION_INSIGHTS } from './app/services/application-insights.service';\nimport { consoleLogger } from './console-logger';\nimport { environment } from './environments/environment';\nimport { WebsiteConfig } from './app/models/website-management/website-config';\n\nif (environment.production) {\n enableProdMode();\n}\n\nfunction createAppInsights(instrumentationKey: string): ApplicationInsights {\n if (instrumentationKey) {\n const ai = new ApplicationInsights({\n config: { instrumentationKey }\n });\n ai.loadAppInsights();\n return ai;\n } else {\n console.warn('ApplicationInsights instrumentation key not provided');\n return null;\n }\n}\n\nfunction bootstrapApp() {\n const xhr = new XMLHttpRequest();\n fromEvent(xhr, 'load').subscribe(() => {\n const config = JSON.parse(xhr.responseText);\n const redirectUri = location.origin.endsWith('/') ? location.origin : `${location.origin}/`;\n const authority = config.authorityHost.endsWith('/') ? `${config.authorityHost}${config.tenantId}` :\n `${config.authorityHost}/${config.tenantId}`;\n\n const protectedResourceMap = new Map();\n config.websites.forEach((site: WebsiteConfig) => {\n protectedResourceMap.set(site.baseUrl, site.consentScopes);\n });\n\n const extraProviders: StaticProvider[] = [\n {\n provide: MSAL_INSTANCE,\n useValue: new PublicClientApplication({\n auth: {\n clientId: config.clientId,\n authority,\n redirectUri,\n postLogoutRedirectUri: redirectUri\n },\n cache: {\n cacheLocation: BrowserCacheLocation.LocalStorage,\n storeAuthStateInCookie: false\n },\n system: {\n loggerOptions: {\n loggerCallback: environment.production ? null : consoleLogger,\n logLevel: LogLevel.Info,\n piiLoggingEnabled: !environment.production\n }\n }\n })\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useValue: {\n interactionType: InteractionType.Popup,\n authRequest: {\n scopes: config.consentScopes\n }\n }\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useValue: {\n interactionType: InteractionType.Popup,\n protectedResourceMap\n }\n },\n {\n provide: APPLICATION_INSIGHTS,\n useValue: createAppInsights(config.instrumentationKey)\n },\n {\n provide: CONSUMERSITE_CONFIG,\n useValue: config.websites\n },\n {\n provide: GOOGLE_API_KEY,\n useValue: config.googleApiKey\n }\n ];\n\n platformBrowserDynamic(extraProviders)\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n });\n\n xhr.open('GET', 'api/config');\n xhr.send();\n}\n\nbootstrapApp();\n"],"names":["Router","MsalService","CONSUMERSITE_CONFIG","SignInComponent","constructor","router","msal","websiteConfig","ngOnInit","config","response","acquireTokenSilent","scopes","consentScopes","toPromise","accessToken","tokens","split","rawToken","token","JSON","parse","atob","roles","includes","navigate","id","i0","selectors","decls","vars","template","encapsulation","fromEvent","map","WINDOW","fileSelectRestrictions","restrictions","GoogleMapsService","HeaderService","CharityManagementService","ContentManagementService","DropoffLocationManagementService","MapGeocoder","ActivatedRoute","NotificationService","ctx_r1","ctx_r3","ctx_r4","DropoffLocationManagementComponent","dropoffLocationManagement","charityManagement","contentManagement","geocoder","route","header","notification","googleMaps","window","consumersiteConfig","googleApiLoaded$","loaded","routeParamSubscription","paramMap","subscribe","params","websiteId","get","find","x","title","name","states$","getStates","pipe","sort","a","b","abbreviation","localeCompare","sensitivity","charities$","getCharities","dropoffLocationIdText","createNewDropoffLocation","fragmentSubscription","fragment","dropoffLocationId","parseInt","loadDropoffLocation","ngOnDestroy","unsubscribe","dropoffLocationSubscription","geocodingSubscription","imageSubscription","canDeactivate","dirty","confirm","unloadNotification","event","preventDefault","saveDropoffLocation","dropoffLocation","image","trim","length","viewImageRequiredAlert","loading","updateDropoffLocation","location","savedDropoffLocation","show","content","animation","type","duration","position","horizontal","vertical","style","icon","hideAfter","createDropoffLocation","result","geolocate","address","city","state","geocode","geolocatedLatLng","lat","results","geometry","lng","geolocateDialogOpened","setTimeout","useGeolocatedCoordinates","latitude","longitude","viewCoordinates","viewCoordinatesDialogOpened","imageChanged","files","dropoffLocationImage","undefined","saveImage","imageUrls","loadImage","existingPageSlug","pageSlug","abandonChanges","abandonDialogOpened","abandonDialogClick","value","previewDropoffLocation","url","target","href","open","hours","now","Date","i","push","dayofWeek","openTime","getFullYear","getMonth","getDate","closeTime","closed","temporary","address2","zip","active","defaultLatitude","defaultLongitude","pageContent","locatedNear","charities","newDropoffLocation","getDropoffLocation","stringify","_savedDropoffLocation","dropoffLocationLatLng","google","maps","LatLng","Image","src","thumb","forEach","hostBindings","ctx","ServiceAreaManagementService","ServiceAreaManagementComponent","serviceAreaManagement","serviceAreaIdText","createNewServiceArea","serviceAreaId","loadServiceArea","serviceAreaSubscription","returnValue","saveServiceArea","serviceAreaType","serviceArea","updateServiceArea","savedServiceArea","createServiceArea","serviceAreaTypeChange","previewServiceArea","pageTitle","pageDescription","sortOrder","newServiceArea","getServiceArea","StoreManagementService","StoreManagementComponent","storeManagement","routeParamsSubscription","storeSubTypes$","getStoreSubTypes","storeIdText","storeId","loadStore","storeSubscription","savedStore","saveStore","store","storeImage","imageUrl","previewStore","_savedStore","getStore","storeLatLng","forkJoin","dataItem_r4","CharitiesComponent","consumersitesConfig","dmsCharities$","getDmsCharities","dmsCharitiesSubscription","val","charityCodes","code","unclaimedCharities","filter","charityCode","routeSubscription","consts"],"sourceRoot":"webpack:///"}