{"version":3,"file":"cocori-ng-src-feature-cms.mjs","sources":["../../../projects/cocori-ng/src/feature-cms/core/service/adapter-page-cms.service.ts","../../../projects/cocori-ng/src/feature-cms/core/service/cms.service.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-section/cocoring-cms-section.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-section/cocoring-cms-section.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-blocks-catalog/cocoring-cms-blocks-catalog.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-blocks-catalog/cocoring-cms-blocks-catalog.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-preview-options/cocoring-preview-options.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-preview-options/cocoring-preview-options.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-toolbar-cms/cocoring-toolbar-cms.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-toolbar-cms/cocoring-toolbar-cms.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms/cocoring-cms.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms/cocoring-cms.component.html","../../../projects/cocori-ng/src/feature-cms/shared/extend-preview-actions.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/section-tpl/section-tpl.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/section-tpl/section-tpl.component.html","../../../projects/cocori-ng/src/feature-cms/shared/shared-cms.module.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-image-upload/cocoring-cms-image-upload.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-image-upload/cocoring-cms-image-upload.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-section-actions/cocoring-cms-section-actions.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-section-actions/cocoring-cms-section-actions.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms.module.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly-section/cocoring-cms-readonly-section.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly-section/cocoring-cms-readonly-section.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly/cocoring-cms-readonly.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly/cocoring-cms-readonly.component.html","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly.module.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-editor/cocoring-cms-section/extend-section-tpl.component.ts","../../../projects/cocori-ng/src/feature-cms/shared/component-cms-readonly/cocoring-cms-readonly-section/extend-section-readonly-tpl.component.ts","../../../projects/cocori-ng/src/feature-cms/cocori-ng-src-feature-cms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { SectionModel, SectionModelCommand } from '../model/cms.model';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AdapterPageCmsService {\r\n\r\n  /** Adapteur en écriture \r\n   *  on retourne au back les sections sans les propriétés component et componentReadonly (deconstruct) non utiles pour le back\r\n  */\r\n  public adapterCommand(sections: SectionModel[]): SectionModelCommand[] {\r\n    return sections.map(({ component, componentReadonly, ...attributes }) => attributes)\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HelperService } from 'cocori-ng/src/feature-core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\nimport {\r\n  InsertSectionAt,\r\n  MoveOrientationSectionActions,\r\n  SectionModel,\r\n  SectionModelCommand,\r\n  SectionMoveIndexes,\r\n} from '../model/cms.model';\r\nimport { AdapterPageCmsService } from './adapter-page-cms.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CmsService {\r\n  public sectionAdded$: Subject<InsertSectionAt> = new Subject<InsertSectionAt>();\r\n  public catalogBlocksOpened$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n  public backgroundColor$: Subject<string> = new Subject<string>();\r\n  public moveSection$: Subject<SectionMoveIndexes> = new Subject<SectionMoveIndexes>();\r\n  public onSaveCmsContent$: Subject<SectionModelCommand[]> = new Subject<SectionModelCommand[]>();\r\n  private sectionRemoved$: Subject<InsertSectionAt> = new Subject<InsertSectionAt>();\r\n\r\n  public sections: SectionModel[] = []\r\n\r\n  constructor(\r\n    private helperService: HelperService,\r\n    private adapterPageCmsService: AdapterPageCmsService) {\r\n    this.init()\r\n  }\r\n\r\n  public init() {\r\n    this.sections.splice(0, this.sections.length)\r\n  }\r\n\r\n  public onSectionRemoved(): Subject<InsertSectionAt> {\r\n    return this.sectionRemoved$\r\n  }\r\n\r\n  public sectionsPageDatas(): SectionModelCommand[] {\r\n    return this.adapterPageCmsService.adapterCommand(this.sections)\r\n  }\r\n\r\n  public addSection(newSection: SectionModel) {\r\n    this.sections.push(newSection)\r\n\r\n    this.sectionAdded$.next({ section: newSection })\r\n  }\r\n\r\n  public getIndexCurrentSection(sectionId: string): number {\r\n    return this.sections.findIndex((section: SectionModel) => section.id === sectionId)\r\n  }\r\n\r\n  public removeSection(sectionId: string) {\r\n    const index: number = this.sections.findIndex((section: SectionModel) => section.id === sectionId)\r\n\r\n    const sectionRemoved: SectionModel[] = this.sections.splice(index, 1)\r\n\r\n    this.sectionRemoved$.next(<InsertSectionAt>{ index: index, section: sectionRemoved[0] })\r\n  }\r\n\r\n  public duplicateSection(section: SectionModel) {\r\n    const index: number = this.sections.findIndex((s: SectionModel) => s.id === section.id)\r\n\r\n    const newIndex: number = index + 1\r\n\r\n    const sectionToDuplicate: SectionModel = this.sections[index]\r\n\r\n    const sectionDuplicated: SectionModel = JSON.parse(JSON.stringify(sectionToDuplicate));\r\n\r\n    sectionDuplicated.key = sectionToDuplicate.key\r\n    sectionDuplicated.id = this.helperService.generateGuid()\r\n\r\n    this.sections.splice(newIndex, 0, sectionDuplicated)\r\n\r\n    this.sectionAdded$.next({ section: sectionDuplicated, index: newIndex })\r\n  }\r\n\r\n  public changeBackgroundColorSection(idSection: string, value: string) {\r\n    const section: SectionModel = this.sections.find((s: SectionModel) => s.id === idSection)\r\n\r\n    section.backgroundColor = value\r\n\r\n    this.backgroundColor$.next(idSection)\r\n  }\r\n\r\n  public moveSection(idSection: string, orientation: MoveOrientationSectionActions) {\r\n    const previousIndex: number = this.sections.findIndex((s: SectionModel) => s.id === idSection)\r\n    let currentIndex: number = previousIndex\r\n\r\n    if (orientation === 'move-up' && previousIndex > 0) {\r\n      currentIndex = previousIndex - 1\r\n    } else if (orientation === 'move-down' && previousIndex < this.sections.length - 1) {\r\n      currentIndex = previousIndex + 1\r\n    }\r\n\r\n    this.moveSection$.next({ previousIndex: previousIndex, currentIndex: currentIndex })\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\r\nimport { InjectComponentService } from 'cocori-ng/src/feature-core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { ApisConfigCmsModel, InsertSectionAt as SectionIndex, SectionModel } from '../../../core/model/cms.model';\r\nimport { CmsService } from '../../../core/service/cms.service';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  selector: 'cocoring-cms-section',\r\n  templateUrl: './cocoring-cms-section.component.html',\r\n  styleUrls: ['../../section-styles/section-styles.component.scss', './cocoring-cms-section.component.scss'],\r\n  providers: [MatBottomSheet]\r\n})\r\nexport class CocoringCmsSectionComponent implements OnInit, OnDestroy {\r\n  @ViewChild('ContainerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n\r\n  @Input() section: SectionModel\r\n  @Input() apisConfig: ApisConfigCmsModel\r\n  @Output() afterRemoveAnimation = new EventEmitter();\r\n\r\n  readOnly: boolean = true;\r\n  indexSectionRemoved: number;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  animationDone(event: AnimationEvent) {\r\n    if (event.animationName === 'sectionOut') {\r\n      this.afterRemoveAnimation.emit(this.indexSectionRemoved);\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    private host: ElementRef<HTMLElement>,\r\n    private cdr: ChangeDetectorRef,\r\n    private cmsService: CmsService,\r\n    private injectComponentService: InjectComponentService,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.addTemplateSectionComponent()\r\n\r\n    this.catalogBlocksOpenedEvent()\r\n\r\n    this.onSectionRemoved()\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(undefined);\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  get container(): HTMLElement {\r\n    return this.host.nativeElement.querySelector('.cms-section') as HTMLElement;\r\n  }\r\n\r\n  removeSection() {\r\n    this.container.style.animation = 'sectionOut 0.3s';\r\n  }\r\n\r\n  private onSectionRemoved() {\r\n    this.cmsService.onSectionRemoved().pipe(\r\n      takeUntil(this.destroy$),\r\n      filter((sectionRemoved: SectionIndex) => sectionRemoved.section.id === this.section.id),\r\n      tap((sectionRemoved: SectionIndex) => this.indexSectionRemoved = sectionRemoved.index),\r\n      tap(_ => this.removeSection()),\r\n    ).subscribe()\r\n  }\r\n\r\n  private catalogBlocksOpenedEvent() {\r\n    this.cmsService.catalogBlocksOpened$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((isOpened: boolean) => {\r\n        this.readOnly = isOpened\r\n      }),\r\n      tap(_ => this.cdr.detectChanges())\r\n    ).subscribe()\r\n  }\r\n\r\n  private addTemplateSectionComponent() {\r\n    this.injectComponentService.loadAndAddComponentToContainer(this.section.component, this.containerRef,\r\n      { section: this.section, apisConfig: this.apisConfig }, null)\r\n  }\r\n}\r\n","<div class=\"cms-section\" (animationend)=\"animationDone($event)\">\r\n    <div cdkDrag [cdkDragDisabled]=\"!readOnly\" cdkDragLockAxis=\"y\" cdkDragBoundary=\".blocks\">\r\n        <ng-template #ContainerRef></ng-template>\r\n        <div class=\"example-custom-placeholder\" *cdkDragPlaceholder></div>\r\n        <div *cdkDragPreview></div>\r\n    </div>\r\n</div>","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { HelperService } from 'cocori-ng/src/feature-core';\r\n\r\nimport { SectionModel } from '../../../core/model/cms.model';\r\nimport { Block } from '../../../core/service/block';\r\nimport { CmsService } from '../../../core/service/cms.service';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-cms-blocks-catalog',\r\n  templateUrl: './cocoring-cms-blocks-catalog.component.html',\r\n  styleUrls: ['./cocoring-cms-blocks-catalog.component.scss'],\r\n})\r\nexport class CocoringCmsBlocksCatalogComponent implements OnInit {\r\n\r\n  @Input() catalog: Block[] = []\r\n\r\n  constructor(\r\n    public cmsService: CmsService,\r\n    private helperService: HelperService\r\n  ) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  selectBlock(block: Block) {\r\n    const newSection: SectionModel = {\r\n      id: this.helperService.generateGuid(),\r\n      key: block.key,\r\n      component: block.data.component,\r\n      componentReadonly: null,\r\n      backgroundColor: block.data.backgroundColor,\r\n      values: block.data.content\r\n    }\r\n\r\n    this.cmsService.addSection(newSection)\r\n  }\r\n\r\n  trackBy(index: number) {\r\n    return index;\r\n  }\r\n}\r\n","<div class=\"catalogue-sections\">\r\n    <div class=\"c1\">Catalogue de templates</div>\r\n    <div class=\"c2\">cliquez & composez votre page</div>\r\n\r\n</div>\r\n<div class=\"blocks-container\">\r\n    <ng-container *ngFor=\"let block of catalog; let i = index; trackBy: trackBy\">\r\n        <img src=\"assets/images/cms/design-blocks/{{block.data.filename}}\" (click)=\"selectBlock(block)\" />\r\n    </ng-container>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { BroadcastEventService } from 'cocori-ng/src/feature-core';\r\nimport { ConfigEvents } from 'cocori-ng/src/feature-form';\r\n\r\nimport { ResponsiveOrientation } from '../../../core/model/cms.model';\r\n\r\n@Component({\r\n  selector: 'cocoring-preview-options',\r\n  templateUrl: './cocoring-preview-options.component.html',\r\n  styleUrls: ['./cocoring-preview-options.component.scss']\r\n})\r\nexport class CocoringPreviewOptionsComponent implements OnInit {\r\n\r\n  responsive: string = 'computer'\r\n\r\n  orientationComputer: ResponsiveOrientation = 'computer'\r\n  orientationTabletLand: ResponsiveOrientation = 'tablet-land'\r\n  orientationTabletPort: ResponsiveOrientation = 'tablet-port'\r\n  orientationMobile: ResponsiveOrientation = 'mobile'\r\n\r\n  constructor(\r\n    private broadcastEventService: BroadcastEventService,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  reset() {\r\n    this.responsive = this.orientationComputer\r\n\r\n    this.broadcastEventService.broadcast({ eventKeys: [ConfigEvents.CMS_RESPONSIVE_ORIENTATION_CHANGED], eventData: this.responsive })\r\n  }\r\n\r\n  onResponsiveChange($event) {\r\n    this.broadcastEventService.broadcast({ eventKeys: [ConfigEvents.CMS_RESPONSIVE_ORIENTATION_CHANGED], eventData: $event })\r\n  }\r\n}\r\n","<mat-button-toggle-group [(ngModel)]=\"responsive\" (ngModelChange)=\"onResponsiveChange($event)\" class=\"resolutions-group\"\r\n    #group=\"matButtonToggleGroup\">\r\n    <mat-button-toggle [value]=\"orientationComputer\" title=\"Vision ordinateur\" aria-label=\"Ordinateur\">\r\n        <mat-icon>computer</mat-icon>\r\n    </mat-button-toggle>\r\n    <mat-button-toggle [value]=\"orientationTabletLand\" title=\"Vision tablette en mode paysage\"\r\n        aria-label=\"Tablette paysage\">\r\n        <mat-icon>tablet</mat-icon>\r\n    </mat-button-toggle>\r\n    <mat-button-toggle [value]=\"orientationTabletPort\" title=\"Vision tablette en mode portrait\"\r\n        aria-label=\"Tablette portrait\">\r\n        <mat-icon>tablet_mac</mat-icon>\r\n    </mat-button-toggle>\r\n    <mat-button-toggle [value]=\"orientationMobile\" title=\"Vision téléphone\" aria-label=\"Téléphone\">\r\n        <mat-icon>phone_iphone</mat-icon>\r\n    </mat-button-toggle>\r\n</mat-button-toggle-group>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { CmsService } from '../../../core/service/cms.service';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-toolbar-cms',\r\n  templateUrl: './cocoring-toolbar-cms.component.html',\r\n  styleUrls: ['./cocoring-toolbar-cms.component.scss']\r\n})\r\nexport class CocoringToolbarCmsComponent implements OnInit {\r\n  @Input() showSaveBtn: boolean = false;\r\n  @Output() toggleSidenav: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  constructor(\r\n    private cmsService: CmsService) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  saveContentPage() {\r\n    this.cmsService.onSaveCmsContent$.next(this.cmsService.sectionsPageDatas())\r\n  }\r\n}\r\n","<div class=\"sidenav-header\" style=\"z-index: 9;\">\r\n    <div class=\"group-left\">\r\n        <cocoring-preview-options></cocoring-preview-options>\r\n    </div>\r\n    <div class=\"group-right\">\r\n        <div *ngIf=\"showSaveBtn\" class=\"toggle-sidenav\" (click)=\"saveContentPage()\">\r\n            <mat-icon>save_alt</mat-icon>\r\n        </div>\r\n        <div class=\"toggle-sidenav\" (click)=\"toggleSidenav.emit()\">\r\n            <mat-icon>widgets</mat-icon>\r\n        </div>\r\n    </div>\r\n</div>","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MediaObserver } from '@angular/flex-layout';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { InjectComponentService } from 'cocori-ng/src/feature-core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n  ConfigCmsModel,\r\n  InsertSectionAt,\r\n  SectionModel,\r\n  SectionModelCommand,\r\n  SectionMoveIndexes,\r\n} from '../../../core/model/cms.model';\r\nimport { Block } from '../../../core/service/block';\r\nimport { CmsService } from '../../../core/service/cms.service';\r\nimport { CocoringCmsSectionComponent } from '../cocoring-cms-section/cocoring-cms-section.component';\r\n\r\n// import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n// import { MediaChange, MediaObserver } from '@angular/flex-layout';\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-cms',\r\n  templateUrl: './cocoring-cms.component.html',\r\n  styleUrls: ['./cocoring-cms.component.scss'],\r\n  providers: [InjectComponentService]\r\n})\r\nexport class CocoringCmsComponent implements OnInit, OnDestroy {\r\n  @ViewChild('sidenav') sidenav: MatSidenav;\r\n  @ViewChild('ContainerRef', { static: false, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n\r\n  configCms: ConfigCmsModel;\r\n  catalog: Block[] = []\r\n  orientation = 'column'\r\n  _showSaveBtn: boolean = false;\r\n  importSections: SectionModel[] = [];\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  @Input()\r\n  set config(config: ConfigCmsModel) {\r\n    if (!config) {\r\n      throw new Error(`La config du composant CMS n'est pas correcte... config: ${config}`);\r\n    }\r\n\r\n    this.configCms = config\r\n\r\n    this.catalog = config.catalog\r\n\r\n    this.cmsService.init()\r\n  }\r\n\r\n  @Input()\r\n  set datas(sectionDatas: SectionModel[]) {\r\n    this.importSections = sectionDatas\r\n  }\r\n\r\n  @Input()\r\n  set showSaveBtn(data: boolean) {\r\n    this._showSaveBtn = data\r\n\r\n    if (data) {\r\n      this.onPageSaved()\r\n    }\r\n  }\r\n\r\n  @Output() onSaveBtn: EventEmitter<SectionModel[]> = new EventEmitter<SectionModel[]>();\r\n\r\n  responsive: string = 'computer'\r\n  activeMediaQuery = '';\r\n  sidenavMode: string = 'side'\r\n  isSidenavOpen: boolean = false;\r\n  totalSections: number = 0;\r\n\r\n  constructor(\r\n    private mediaObserver: MediaObserver,\r\n    private cdr: ChangeDetectorRef,\r\n    private cmsService: CmsService,\r\n    private injectComponentService: InjectComponentService,\r\n  ) {\r\n    this.eventSizeScreen();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.addSectionEvent()\r\n\r\n    this.onSectionMoved()\r\n\r\n    /** on dessine les sections chargées ! */\r\n    if (this.importSections.length) {\r\n      this.importSections.forEach((section: SectionModel) => {\r\n        this.cmsService.addSection(section)\r\n      })\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(undefined);\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  private onPageSaved() {\r\n    this.cmsService.onSaveCmsContent$.pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((contentPage: SectionModel[]) => {\r\n      this.onSaveBtn.emit(contentPage)\r\n    })\r\n  }\r\n\r\n  private eventSizeScreen() {\r\n    this.mediaObserver\r\n      .asObservable()\r\n      .pipe(\r\n        takeUntil(this.destroy$)\r\n      ).subscribe((change) => {\r\n        change.forEach((item) => {\r\n          this.activeMediaQuery = item ? `'${item.mqAlias}' = (${item.mediaQuery})` : '';\r\n\r\n          if (item.mqAlias === 'xs') {\r\n            this.sidenavMode = 'over';\r\n          } else {\r\n            this.sidenavMode = 'side';\r\n          }\r\n        })\r\n      })\r\n  }\r\n\r\n  toggleSidenavBlocks() {\r\n    this.sidenav.toggle()\r\n\r\n    this.isSidenavOpen = this.sidenav.opened\r\n\r\n    this.cmsService.catalogBlocksOpened$.next(this.isSidenavOpen)\r\n  }\r\n\r\n  public getPageCMSDatas(): SectionModelCommand[] {\r\n    return this.cmsService.sectionsPageDatas()\r\n  }\r\n\r\n  private addSectionEvent() {\r\n    this.cmsService.sectionAdded$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap(_ => this.refreshNumberSection()),\r\n      tap((datas: InsertSectionAt) => {\r\n        this.injectComponentService.loadAndAddComponentToContainer(CocoringCmsSectionComponent, this.containerRef,\r\n          { section: datas.section, apisConfig: this.configCms.wysiwygOptions },\r\n          { afterRemoveAnimation: (sectionIndexRemoved: number) => this.onSectionRemovedAfterAnimation(sectionIndexRemoved) }, datas.index\r\n        )\r\n      }),\r\n    ).subscribe()\r\n  }\r\n\r\n  private onSectionRemovedAfterAnimation(indexSectionRemoved: number) {\r\n    this.injectComponentService.removeComponentFromViewContainer(indexSectionRemoved, this.containerRef)\r\n\r\n    this.refreshNumberSection()\r\n  }\r\n\r\n  private onSectionMoved() {\r\n    this.cmsService.moveSection$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((values: any) => {\r\n        this.moveSectionContainer({ previousIndex: values.previousIndex, currentIndex: values.currentIndex })\r\n      }),\r\n    ).subscribe()\r\n  }\r\n\r\n  private refreshNumberSection() {\r\n    this.totalSections = this.cmsService.sections.length\r\n\r\n    this.cdr.detectChanges()\r\n  }\r\n\r\n  public dropSection(event: CdkDragDrop<any[]>) {\r\n    this.moveSectionContainer({ previousIndex: event.previousIndex, currentIndex: event.currentIndex })\r\n  }\r\n\r\n  private moveSectionContainer(moveIndexes: SectionMoveIndexes) {\r\n    moveItemInArray(this.cmsService.sections, moveIndexes.previousIndex, moveIndexes.currentIndex);\r\n\r\n    this.injectComponentService.moveComponentFromViewContainer(moveIndexes.currentIndex, moveIndexes.previousIndex, this.containerRef)\r\n  }\r\n}\r\n","<div class=\"page\">\r\n    <cocoring-toolbar-cms [showSaveBtn]=\"_showSaveBtn\" (toggleSidenav)=\"toggleSidenavBlocks()\"></cocoring-toolbar-cms>\r\n\r\n    <div class=\"sidenav-container\">\r\n        <mat-sidenav-container class=\"layout-container\" [hasBackdrop]=\"false\" fullscreen>\r\n            <mat-sidenav class=\"sidenav-blocks-catalog\" #sidenav [mode]=\"sidenavMode\" position=\"end\" opened=\"false\">\r\n                <cocoring-cms-blocks-catalog [catalog]=\"catalog\"></cocoring-cms-blocks-catalog>\r\n            </mat-sidenav>\r\n            <mat-sidenav-content [ngClass]=\"{'no-margin-right': isSidenavOpen && totalSections}\">\r\n                <div class=\"sidenav-content\" [ngClass]=\"{'sidenav-openned': isSidenavOpen}\">\r\n                    <div *ngIf=\"!totalSections && !isSidenavOpen\" class=\"no-section\" (click)=\"toggleSidenavBlocks()\">\r\n                        <div>\r\n                            <h1>Customisez votre page facilement 👌 </h1>\r\n                            <p>(cliquez ici pour composer votre page)</p>\r\n                        </div>\r\n                    </div>\r\n                    <div *ngIf=\"isSidenavOpen && !totalSections\" class=\"col-elements\">\r\n                        <div class=\"texte-preview\">\r\n                            Aperçu de votre page\r\n                        </div>\r\n                        <div class=\"new-block\">\r\n                            <h1>Aucune section</h1>\r\n                            <p>cliquez sur un template pour l'ajouter</p>\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div *ngIf=\"totalSections\" class=\"container-sections\" [ngClass]=\"{'col-elements': isSidenavOpen}\">\r\n                        <div class=\"blocks\" cdkDropList (cdkDropListDropped)=\"dropSection($event)\">\r\n                            <ng-template #ContainerRef></ng-template>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </mat-sidenav-content>\r\n        </mat-sidenav-container>\r\n    </div>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, OnDestroy } from '@angular/core';\r\nimport { BroadcastEventService } from 'cocori-ng/src/feature-core';\r\nimport { ConfigEvents } from 'cocori-ng/src/feature-form';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\nimport { OrientationParamsTpl, ResponsiveOrientation } from '../core/model/cms.model';\r\n\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'extend-preview-tpl',\r\n    template: ''\r\n})\r\n\r\nexport abstract class ExtendPreviewActionsComponent implements OnDestroy {\r\n\r\n    broadcastEventService: BroadcastEventService;\r\n    orientation: string = 'row'\r\n    orientationWidth: string = '100%';\r\n    flexWidth: string;\r\n    cdr: any;\r\n    readonly destroy$ = new Subject();\r\n\r\n    constructor(injector: Injector) {\r\n        this.cdr = injector.get(ChangeDetectorRef);\r\n        this.broadcastEventService = injector.get(BroadcastEventService);\r\n\r\n        this.onOrientationChanged()\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.destroy$.next(undefined);\r\n        this.destroy$.complete();\r\n    }\r\n\r\n    private onOrientationChanged() {\r\n        this.broadcastEventService.listen([ConfigEvents.CMS_RESPONSIVE_ORIENTATION_CHANGED]).pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((orientation: ResponsiveOrientation) => {\r\n            this.getOrientationParams(orientation)\r\n\r\n            this.cdr.detectChanges()\r\n        })\r\n    }\r\n\r\n    getOrientationParams(type: ResponsiveOrientation) {\r\n        this.flexWidth = null\r\n\r\n        var orientations: OrientationParamsTpl = {\r\n            'mobile': () => {\r\n                this.orientation = 'column'\r\n                this.orientationWidth = '375px'\r\n                this.flexWidth = '100%'\r\n            },\r\n            'tablet-port': () => {\r\n                this.orientation = 'column'\r\n                this.orientationWidth = '768px'\r\n            },\r\n            'tablet-land': () => {\r\n                this.orientation = 'row'\r\n                this.orientationWidth = '1024px'\r\n            },\r\n            'computer': () => {\r\n                this.orientation = 'row'\r\n                this.orientationWidth = '100%'\r\n            }\r\n        };\r\n\r\n        (orientations[type] || orientations['default'])();\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Injector, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { ExtendPreviewActionsComponent } from '../extend-preview-actions.component';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'section-tpl',\r\n  templateUrl: './section-tpl.component.html',\r\n  styleUrls: []\r\n})\r\nexport class SectionTplComponent extends ExtendPreviewActionsComponent implements OnInit {\r\n\r\n  @Input() backgroundColor: string\r\n  @Input() readOnly: boolean = false\r\n\r\n  @Output() openBottomSheet: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","<section class=\"cms-block\" [style.background-color]=\"backgroundColor\" [style.max-width]=\"orientationWidth\"\r\n    [ngClass]=\"{'sidenav-openned': readOnly, 'orientation-column': orientation === 'column'}\"\r\n    (click)=\"openBottomSheet.emit()\">\r\n    <div class=\"container\" fxFlex=\"100%\" [fxLayout]=\"orientation\" [fxFlex.gt-lg]=\"flexWidth || '75%'\"\r\n        [fxFlex.gt-md]=\"flexWidth || '80%'\" [fxFlex.gt-sm]=\"flexWidth || '90%'\" fxFlex.gt-xs=\"100%\">\r\n        <div class=\"row justify-content-center\" [fxLayout]=\"orientation\" fxFlex=\"100%\" [ngClass.lt-md]=\"'row-mobile'\" [ngClass]=\"{'row-mobile': orientation === 'column'}\">\r\n            <ng-content></ng-content>\r\n        </div>\r\n    </div>\r\n</section>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { SectionTplComponent } from './section-tpl/section-tpl.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    SectionTplComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FlexLayoutModule\r\n  ],\r\n  exports: [SectionTplComponent]\r\n})\r\nexport class SharedCMSModule { }\r\n","import {\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  HostListener,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { FileModel } from 'cocori-ng/src/feature-core';\r\nimport { UploaderService } from 'cocori-ng/src/feature-form';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { ApisConfigCmsModel, SectionModel } from '../../../core/model/cms.model';\r\n\r\n@Component({\r\n  selector: 'cocoring-cms-image-upload',\r\n  templateUrl: './cocoring-cms-image-upload.component.html',\r\n  styleUrls: ['./cocoring-cms-image-upload.component.scss'],\r\n  providers: [UploaderService]\r\n})\r\nexport class CocoringCmsImageUploadComponent implements OnInit, OnDestroy {\r\n  @ViewChild('uploader') uploaderInputRef: ElementRef;\r\n  @ViewChild('progressCircle') progressCircleRef: ElementRef;\r\n\r\n  @Input() section: SectionModel\r\n  @Input() nameBackgroundImage: string\r\n  @Input() apisConfig: ApisConfigCmsModel\r\n\r\n  @Output() apiFileUploaded: EventEmitter<string> = new EventEmitter<string>();\r\n  @Output() removeBackgroundImage: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  isUploading: boolean = false;\r\n  uploadProgress: number;\r\n  backgroundImageUpload: FileModel\r\n  fileUploaded: File;\r\n  onError: boolean = false;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  constructor(\r\n    private cdr: ChangeDetectorRef,\r\n    public uploaderService: UploaderService,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.uploaderService.apisFile = this.apisConfig\r\n\r\n    this.eventsFileUpload()\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next(undefined);\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  @HostListener('change', ['$event.target.files']) emitFiles(event: FileList) {\r\n    const file = event && event.item(0);\r\n\r\n    if (!file) return;\r\n\r\n    this.isUploading = true\r\n    this.onError = false\r\n\r\n    this.backgroundImageUpload = { description: null }\r\n\r\n    this.fileUploaded = file;\r\n\r\n    this.backgroundImageUpload.size = this.fileUploaded.size\r\n\r\n    this.uploaderService.uploadFile(this.fileUploaded)\r\n  }\r\n\r\n  browseFile() {\r\n    let el: HTMLElement = this.uploaderInputRef.nativeElement;\r\n    el.click();\r\n  }\r\n\r\n  private eventsFileUpload() {\r\n    this.uploaderService.fileUploaded$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((id: string) => this.getFileId(id)),\r\n      tap(_ => this.isUploading = false),\r\n      tap(_ => this.setFileApi()),\r\n      tap(_ => this.cdr.detectChanges())\r\n    ).subscribe()\r\n\r\n    this.uploaderService.fileOnError$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap(_ => this.errorFile()),\r\n    ).subscribe()\r\n\r\n    this.uploaderService.progressSource.pipe(\r\n      takeUntil(this.destroy$),\r\n      filter(_ => !!this.fileUploaded),\r\n      tap((progress: number) => {\r\n        this.uploadProgress = progress\r\n\r\n        const circumference = this.progressCircleRef.nativeElement.getTotalLength()\r\n\r\n        this.progressCircleRef.nativeElement.style.strokeDashoffset = circumference - (progress / 100) * circumference;\r\n\r\n        this.cdr.detectChanges()\r\n      })\r\n    ).subscribe()\r\n  }\r\n\r\n  private getFileId(id: string) {\r\n    this.backgroundImageUpload.id = id\r\n  }\r\n\r\n  /** on récupère l'api du fichier pour la transmettre au composant parent */\r\n  private setFileApi() {\r\n    const apiFile = this.apisConfig.apiFile(this.backgroundImageUpload.id);\r\n\r\n    this.apiFileUploaded.emit(apiFile)\r\n  }\r\n\r\n  onBackgroundImageRemoved(event) {\r\n    event.stopPropagation()\r\n\r\n    this.removeBackgroundImage.emit()\r\n  }\r\n\r\n  private errorFile() {\r\n    this.isUploading = false\r\n\r\n    this.deleteFile()\r\n\r\n    this.onError = true\r\n  }\r\n\r\n  private deleteFile() {\r\n    this.fileUploaded = null\r\n    this.backgroundImageUpload.id = null\r\n\r\n    this.uploaderInputRef.nativeElement.value = ''\r\n  }\r\n}\r\n","<div class=\"background-image-full\" (click)=\"browseFile()\"\r\n    [ngStyle]=\"{'background-image': 'url(' + (section.values[nameBackgroundImage] ?  section.values[nameBackgroundImage] : '') + ')'}\">\r\n</div>\r\n<div class=\"addNewFile\">\r\n    <div class=\"badges-actions\" *ngIf=\"!isUploading\">\r\n        <div class=\"badge\" (click)=\"browseFile()\">\r\n            <mat-icon>wallpaper</mat-icon>\r\n        </div>\r\n        <div class=\"badge badge-delete\" (click)=\"onBackgroundImageRemoved($event)\">\r\n            <mat-icon>delete_outline</mat-icon>\r\n        </div>\r\n    </div>\r\n    <svg *ngIf=\"isUploading\" class=\"progress\" width=\"59\" height=\"59\">\r\n        <circle #progressCircle class=\"progress-circle\" cx=\"30\" cy=\"30\" r=\"28\" fill=\"white\" />\r\n        <text class=\"text-progress\" x=\"30\" y=\"30\" alignment-baseline=\"middle\" text-anchor=\"middle\">\r\n            {{uploadProgress}} %\r\n        </text>\r\n    </svg>\r\n</div>\r\n<div *ngIf=\"onError\" class=\"error-upload\">\r\n    <div class=\"badge badge-delete error\" title=\"Une erreur est survenue, veuillez réessayer\">\r\n        <mat-icon>error</mat-icon>\r\n    </div>\r\n</div>\r\n<input #uploader hidden class=\"browse-file\" type=\"file\" name=\"fileUpload\" accept=\"image/*\" />","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\n\r\nimport { BottomSheetSectionReturnAction, SectionModel } from '../../../core/model/cms.model';\r\nimport { CmsService } from '../../../core/service/cms.service';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-cms-section-actions',\r\n  templateUrl: './cocoring-cms-section-actions.component.html',\r\n  styleUrls: ['./cocoring-cms-section-actions.component.scss']\r\n})\r\nexport class CocoringCmsSectionActionsComponent implements OnInit {\r\n  color: string;\r\n  section: SectionModel;\r\n\r\n  constructor(\r\n    private cmsService: CmsService,\r\n    private _bottomSheetRef: MatBottomSheetRef<CocoringCmsSectionActionsComponent>,\r\n    @Inject(MAT_BOTTOM_SHEET_DATA) public data: { section: SectionModel }) {\r\n    this.section = data.section\r\n\r\n    this.color = this.section.backgroundColor\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  close(event) {\r\n    this._bottomSheetRef.dismiss();\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  removeSection(event) {\r\n    this._bottomSheetRef.dismiss(<BottomSheetSectionReturnAction>{ action: 'remove' });\r\n\r\n    event.preventDefault();\r\n  }\r\n  \r\n  moveUpSection(event) {\r\n    this.cmsService.moveSection(this.section.id, 'move-up');\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  moveDownSection(event) {\r\n    this.cmsService.moveSection(this.section.id, 'move-down');\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  duplicateSection(event) {\r\n    this._bottomSheetRef.dismiss(<BottomSheetSectionReturnAction>{ action: 'duplicate' });\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  selectColor(event) {\r\n    this._bottomSheetRef.dismiss(<BottomSheetSectionReturnAction>{ action: 'backgroundColor', value: this.color });\r\n  }\r\n\r\n  onColorChange(color: any) {\r\n    this.color = color.hexa\r\n\r\n    this.cmsService.changeBackgroundColorSection(this.section.id, color.hexa)\r\n  }\r\n}\r\n","<div class=\"bottom-sheet-header\">\r\n    <button class=\"actions-header-modal\" mat-icon-button aria-label=\"Fermer la fenêtre\" (click)=\"close($event)\">\r\n        <mat-icon>keyboard_arrow_down</mat-icon>\r\n    </button>\r\n    <div class=\"header-part-right\">\r\n        <div class=\"description-file\">Section</div>\r\n    </div>\r\n</div>\r\n<mat-nav-list class=\"bottom-sheet-list\">\r\n    <a mat-list-item (click)=\"selectColor($event)\">\r\n        <mat-icon mat-list-icon>format_color_fill</mat-icon>\r\n        <div class=\"circle-color\" [cocoring-colorpicker]=\"color\" (onColorChange)=\"onColorChange($event)\"></div>\r\n        <span mat-line>Changer la couleur de fond</span>\r\n    </a>\r\n    \r\n    <a href=\"#\" mat-list-item (click)=\"moveUpSection($event)\">\r\n        <mat-icon mat-list-icon>keyboard_arrow_up</mat-icon>\r\n        <span mat-line>Déplacer vers le haut</span>\r\n    </a>\r\n    \r\n    <a href=\"#\" mat-list-item (click)=\"moveDownSection($event)\">\r\n        <mat-icon mat-list-icon>keyboard_arrow_down</mat-icon>\r\n        <span mat-line>Déplacer vers le bas</span>\r\n    </a>\r\n\r\n    <a href=\"#\" mat-list-item (click)=\"duplicateSection($event)\">\r\n        <mat-icon mat-list-icon>content_copy</mat-icon>\r\n        <span mat-line>Dupliquer</span>\r\n    </a>\r\n\r\n    <a href=\"#\" target=\"_blank\" mat-list-item (click)=\"removeSection($event)\">\r\n        <mat-icon mat-list-icon>delete_outline</mat-icon>\r\n        <span mat-line>Supprimer</span>\r\n    </a>\r\n\r\n</mat-nav-list>\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { CocoringColorpickerModule, CocoringVariableHtmlModule, CocoringWysiwygModule } from 'cocori-ng/src/feature-form';\r\n\r\nimport { SharedCMSModule } from '../shared-cms.module';\r\nimport { CocoringCmsBlocksCatalogComponent } from './cocoring-cms-blocks-catalog/cocoring-cms-blocks-catalog.component';\r\nimport { CocoringCmsImageUploadComponent } from './cocoring-cms-image-upload/cocoring-cms-image-upload.component';\r\nimport { CocoringCmsSectionActionsComponent } from './cocoring-cms-section-actions/cocoring-cms-section-actions.component';\r\nimport { CocoringCmsSectionComponent } from './cocoring-cms-section/cocoring-cms-section.component';\r\nimport { CocoringCmsComponent } from './cocoring-cms/cocoring-cms.component';\r\nimport { CocoringPreviewOptionsComponent } from './cocoring-preview-options/cocoring-preview-options.component';\r\nimport { CocoringToolbarCmsComponent } from './cocoring-toolbar-cms/cocoring-toolbar-cms.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringCmsComponent,\r\n        CocoringCmsBlocksCatalogComponent,\r\n        CocoringCmsSectionComponent,\r\n        CocoringCmsSectionActionsComponent,\r\n        CocoringToolbarCmsComponent,\r\n        CocoringPreviewOptionsComponent,\r\n        CocoringCmsImageUploadComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        SharedCMSModule,\r\n        DragDropModule,\r\n        MatSidenavModule,\r\n        MatBottomSheetModule,\r\n        MatButtonToggleModule,\r\n        MatListModule,\r\n        MatButtonModule,\r\n        MatIconModule,\r\n        FlexLayoutModule,\r\n        CocoringVariableHtmlModule,\r\n        CocoringWysiwygModule,\r\n        CocoringColorpickerModule\r\n    ],\r\n    exports: [\r\n        CocoringCmsComponent,\r\n        CocoringPreviewOptionsComponent\r\n    ]\r\n})\r\nexport class CocoringCMSModule { }","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { InjectComponentService } from 'cocori-ng/src/feature-core';\r\n\r\nimport { SectionModel } from '../../../core/model/cms.model';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  encapsulation: ViewEncapsulation.None,\r\n  selector: 'cocoring-cms-readonly-section',\r\n  templateUrl: './cocoring-cms-readonly-section.component.html',\r\n  styleUrls: ['../../section-styles/section-styles.component.scss', './cocoring-cms-readonly-section.component.scss']\r\n})\r\nexport class CocoringCmsReadonlySectionComponent implements OnInit {\r\n  @ViewChild('ContainerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n  private section: SectionModel;\r\n\r\n  @Input()\r\n  set config(datas: SectionModel) {\r\n\r\n    this.section = datas\r\n\r\n    this.containerRef.clear()\r\n\r\n    this.addTemplateSectionComponent()\r\n  }\r\n\r\n  constructor(\r\n    private injectComponentService: InjectComponentService,\r\n  ) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  private addTemplateSectionComponent() {\r\n    this.injectComponentService.loadAndAddComponentToContainer(this.section.componentReadonly, this.containerRef,\r\n      { section: this.section }, null)\r\n  }\r\n}\r\n","<ng-template #ContainerRef></ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { SectionModel } from '../../../core/model/cms.model';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-cms-readonly',\r\n  templateUrl: './cocoring-cms-readonly.component.html',\r\n  styleUrls: ['./cocoring-cms-readonly.component.scss']\r\n})\r\nexport class CocoringCmsReadonlyComponent implements OnInit {\r\n  sectionPageDatas: SectionModel[];\r\n\r\n  @Input()\r\n  set config(datas: SectionModel[]) {\r\n    if (!datas) {\r\n      throw new Error(`La config du composant uploader n'est pas correcte... config: ${datas}`);\r\n    }\r\n\r\n    this.sectionPageDatas = datas\r\n\r\n\r\n    console.log(\"sectionPageDatas>>>\", this.sectionPageDatas)\r\n  }\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  trackBy(index: number) {\r\n    return index;\r\n  }\r\n}\r\n","<ng-container *ngFor=\"let section of sectionPageDatas; let i = index; trackBy: trackBy\">\r\n    <cocoring-cms-readonly-section [config]=\"section\"></cocoring-cms-readonly-section>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CocoringVariableHtmlModule } from 'cocori-ng/src/feature-form';\r\n\r\nimport { SharedCMSModule } from '../shared-cms.module';\r\nimport {\r\n    CocoringCmsReadonlySectionComponent,\r\n} from './cocoring-cms-readonly-section/cocoring-cms-readonly-section.component';\r\nimport { CocoringCmsReadonlyComponent } from './cocoring-cms-readonly/cocoring-cms-readonly.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringCmsReadonlyComponent,\r\n        CocoringCmsReadonlySectionComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        CocoringVariableHtmlModule,\r\n        SharedCMSModule,\r\n        FlexLayoutModule,\r\n        MatIconModule\r\n    ],\r\n    exports: [\r\n        CocoringCmsReadonlyComponent,\r\n    ]\r\n})\r\nexport class CocoringCmsReadonlyModule { }","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    Injector,\r\n    Input,\r\n    OnDestroy,\r\n    ViewContainerRef,\r\n} from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\r\nimport {\r\n    FileModel,\r\n    FormHelperService,\r\n    InitWysiwyg,\r\n    InjectComponentService,\r\n    WysiwygConfigSection,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { CocoringWysiwygComponent } from 'cocori-ng/src/feature-form';\r\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n    ApisConfigCmsModel,\r\n    BottomSheetSectionReturnAction,\r\n    EditorValues,\r\n    SectionModel,\r\n} from '../../../core/model/cms.model';\r\nimport { CmsService } from '../../../core/service/cms.service';\r\nimport { ExtendPreviewActionsComponent } from '../../extend-preview-actions.component';\r\nimport { CocoringCmsImageUploadComponent } from '../cocoring-cms-image-upload/cocoring-cms-image-upload.component';\r\nimport { CocoringCmsSectionActionsComponent } from '../cocoring-cms-section-actions/cocoring-cms-section-actions.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'extend-section-tpl',\r\n    template: '',\r\n    host: { 'class': 'input-form' },\r\n})\r\n\r\nexport abstract class ExtendSectionTplComponent extends ExtendPreviewActionsComponent implements OnDestroy {\r\n    @Input() section: SectionModel\r\n    @Input() apisConfig: ApisConfigCmsModel\r\n\r\n    private fb: UntypedFormBuilder;\r\n    private _bottomSheet: MatBottomSheet;\r\n    public cdr: any;\r\n    public cmsService: CmsService;\r\n\r\n    formulaire: UntypedFormGroup\r\n    nbEditorView: number\r\n    nbBackgroundImage: number;\r\n\r\n    nameControl: string = 'editor'\r\n    backgroundImageControl: string = 'backgroundImage'\r\n    backgroundImageUpload: FileModel\r\n    uploadProgress: number;\r\n    isUploading: boolean = false;\r\n\r\n    configsWysiwyg: WysiwygConfigSection[];\r\n    readOnly: boolean = false;\r\n    value: any;\r\n    formHelper: FormHelperService;\r\n    injectComponentService: InjectComponentService;\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n\r\n        this.injectComponentService = injector.get(InjectComponentService);\r\n        this.fb = injector.get(UntypedFormBuilder);\r\n        this._bottomSheet = injector.get(MatBottomSheet);\r\n        this.cdr = injector.get(ChangeDetectorRef);\r\n        this.cmsService = injector.get(CmsService);\r\n        this.formHelper = injector.get(FormHelperService);\r\n    }\r\n\r\n    init(nbEditorView: number, nbBackgroundImage: number = 0) {\r\n        this.nbEditorView = nbEditorView\r\n        this.nbBackgroundImage = nbBackgroundImage\r\n\r\n        this.buildForm();\r\n\r\n        this.catalogBlocksOpenedEvent()\r\n\r\n        this.onBackgroundColorEvent()\r\n    }\r\n\r\n    private buildForm() {\r\n        this.formulaire = this.fb.group({});\r\n        this.configsWysiwyg = []\r\n\r\n        for (let i = 1; i <= this.nbEditorView; i++) {\r\n            const nameControl: string = `${this.nameControl}${i}`\r\n\r\n            this.formulaire.addControl(nameControl, new UntypedFormControl(this.initSectionValue(nameControl)))\r\n\r\n            this.configsWysiwyg[nameControl] = this.configComponent(nameControl)\r\n        }\r\n\r\n        for (let i = 1; i <= this.nbBackgroundImage; i++) {\r\n            const nameControl: string = `${this.backgroundImageControl}${i}`\r\n\r\n            this.formulaire.addControl(nameControl, new UntypedFormControl(this.initSectionValue(nameControl)))\r\n        }\r\n\r\n        this.saveSectionValues()\r\n\r\n        this.onSectionValuesChanged()\r\n    }\r\n\r\n    onBackgroundFileUploadedCallback(nameControl: string, apiFileUploaded: string,) {\r\n        this.formulaire.get(nameControl).setValue(apiFileUploaded)\r\n    }\r\n\r\n    removeBackgroundFileCallback(nameControl: string) {\r\n        this.formulaire.get(nameControl).reset()\r\n\r\n        this.saveSectionValues()\r\n\r\n        this.cdr.detectChanges()\r\n    }\r\n\r\n    /** ex valeur du formulaire : {editor1: \"<h1>coucou</h1>\", editor2: \"<h1>hello</h1>\"} */\r\n    private onSectionValuesChanged() {\r\n        this.formulaire.valueChanges.pipe(\r\n            takeUntil(this.destroy$),\r\n            debounceTime(500),\r\n            tap((values: any) => {\r\n                this.section.values = values\r\n\r\n                this.cdr.detectChanges()\r\n            })\r\n        ).subscribe()\r\n    }\r\n\r\n    private saveSectionValues() {\r\n        this.section.values = this.formulaire.value\r\n    }\r\n\r\n    private initSectionValue(nameControl: string) {\r\n        const blockContent: EditorValues = this.section.values\r\n\r\n        const blockValue: string = blockContent?.hasOwnProperty(nameControl) ? blockContent[nameControl] : null\r\n        const sectionValue: string = this.section.values?.hasOwnProperty(nameControl) ? this.section.values[nameControl] : null\r\n\r\n        return sectionValue || blockValue\r\n    }\r\n\r\n    private configComponent(nameControl: string) {\r\n        let config = {\r\n            apiFile: this.apisConfig.apiFile,\r\n            apiFileDownload: this.apisConfig.apiFileDownload,\r\n            apiKey: this.apisConfig.apiKey,\r\n            params: <InitWysiwyg>{\r\n                inline: true\r\n            },\r\n            nameLabel: '',\r\n            formGroup: this.formulaire,\r\n            nameControl: nameControl,\r\n            validators: []\r\n        }\r\n\r\n        return config\r\n    }\r\n\r\n    private catalogBlocksOpenedEvent() {\r\n        this.cmsService.catalogBlocksOpened$.pipe(\r\n            takeUntil(this.destroy$),\r\n            tap((isOpened: boolean) => {\r\n                this.readOnly = isOpened\r\n\r\n                if (isOpened && this.formHelper.countControlsForm(this.formulaire) > 0) {\r\n                    this.value = this.formulaire.value\r\n                }\r\n            }),\r\n            tap(_ => this.cdr.detectChanges())\r\n        ).subscribe()\r\n    }\r\n\r\n    /** @param : tableau des références où seront ajouter le composant Wysiwyg */\r\n    public addWysiwygComponentToViewEvent(refs: ViewContainerRef[]) {\r\n        for (let i = 1; i <= refs.length; i++) {\r\n            const nameControl: string = `${this.nameControl}${i}`\r\n\r\n            this.injectComponentService.loadAndAddComponentToContainer(CocoringWysiwygComponent, refs[i - 1],\r\n                { config: this.configsWysiwyg[nameControl] }, null)\r\n        }\r\n    }\r\n\r\n    public addImageUploadComponentToViewEvent(refs: ViewContainerRef[]) {\r\n        for (let i = 1; i <= refs.length; i++) {\r\n            const nameControl: string = `${this.backgroundImageControl}${i}`\r\n\r\n            this.injectComponentService.loadAndAddComponentToContainer(CocoringCmsImageUploadComponent, refs[i - 1],\r\n                { section: this.section, apisConfig: this.apisConfig, nameBackgroundImage: nameControl },\r\n                {\r\n                    apiFileUploaded: (apiFile: string) => this.onBackgroundFileUploadedCallback(nameControl, apiFile),\r\n                    removeBackgroundImage: () => this.removeBackgroundFileCallback(nameControl)\r\n                })\r\n        }\r\n    }\r\n\r\n    private onBackgroundColorEvent() {\r\n        this.cmsService.backgroundColor$.pipe(\r\n            takeUntil(this.destroy$),\r\n            filter((idSection: string) => idSection === this.section.id),\r\n            tap(_ => this.cdr.detectChanges()),\r\n        ).subscribe()\r\n    }\r\n\r\n    openBottomSheet() {\r\n        if (!this.readOnly) return;\r\n\r\n        const bottomSheet = this._bottomSheet.open(CocoringCmsSectionActionsComponent, {\r\n            panelClass: 'bottom-sheet-container',\r\n            data: <any>{\r\n                section: this.section,\r\n            }\r\n        });\r\n\r\n        bottomSheet.afterDismissed().pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((datas: BottomSheetSectionReturnAction) => {\r\n            if (!datas) return;\r\n\r\n            switch (datas.action) {\r\n                case 'remove':\r\n                    this.cmsService.removeSection(this.section.id)\r\n\r\n                    break;\r\n\r\n                case 'duplicate':\r\n                    this.cmsService.duplicateSection(this.section)\r\n\r\n                    break;\r\n\r\n                case 'backgroundColor':\r\n                    this.saveSectionBackgroundColor(datas.value)\r\n\r\n                    break;\r\n\r\n                default:\r\n                    break;\r\n            }\r\n        })\r\n    }\r\n\r\n    private saveSectionBackgroundColor(color: string) {\r\n        this.section.backgroundColor = color\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, Input } from '@angular/core';\r\n\r\nimport { SectionModel } from '../../../core/model/cms.model';\r\nimport { ExtendPreviewActionsComponent } from '../../extend-preview-actions.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'extend-section-ro-tpl',\r\n    template: '',\r\n    host: { 'class': 'input-form' },\r\n})\r\n\r\nexport abstract class ExtendSectionReadonlyTplComponent extends ExtendPreviewActionsComponent {\r\n    @Input() section: SectionModel\r\n\r\n    public cdr: any;\r\n\r\n    nbEditorView: number\r\n    readOnly: boolean = true;\r\n    value: any;\r\n    uploadProgress: number;\r\n    isUploading: boolean;\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    init(nbEditorView: number) {\r\n        this.nbEditorView = nbEditorView\r\n        this.getValuesEditor();\r\n    }\r\n\r\n    private getValuesEditor() {\r\n        this.value = this.section.values\r\n    }\r\n\r\n    openBottomSheet() { }\r\n\r\n    removeBackground(event, nameControl) { }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AdapterPageCmsService","i1.CmsService","i2","i3","i4","i4.CocoringPreviewOptionsComponent","i1","i2.CmsService","i5","i8.CocoringCmsBlocksCatalogComponent","i9.CocoringToolbarCmsComponent","takeUntil","i6","i7","i2.CocoringCmsReadonlySectionComponent"],"mappings":"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"}