{"version":3,"file":"cocori-ng-src-feature-form.mjs","sources":["../../../projects/cocori-ng/src/feature-form/core/config/config.components.ts","../../../projects/cocori-ng/src/feature-form/core/config/config.events.ts","../../../projects/cocori-ng/src/feature-form/shared/component/button/cocoring-button.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/button/cocoring-button.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/button-link/cocoring-button-link.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/button-link/cocoring-button-link.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/extend-inputs/extend-inputs.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/error-handler/input-error-handler/cocoring-input-error.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox-indeterminate/checkbox-indeterminate.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox-indeterminate/checkbox-indeterminate.component.html","../../../projects/cocori-ng/src/feature-form/shared/pipe/variable-html/cocoring-variable-html.pipe.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox/cocoring-checkbox.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox/cocoring-checkbox.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-icon/input-icon.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-icon/input-icon.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-date/cocoring-date.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-date/cocoring-date.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-email/cocoring-email.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-email/cocoring-email.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-number/cocoring-number.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-number/cocoring-number.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-password/cocoring-password.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-password/cocoring-password.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-select/cocoring-select.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-select/cocoring-select.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-slide-toggle/cocoring-slide-toggle.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-slide-toggle/cocoring-slide-toggle.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-text/cocoring-text.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-text/cocoring-text.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-textarea/cocoring-textarea.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-textarea/cocoring-textarea.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-viewer/cocoring-viewer.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-viewer/cocoring-viewer.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/index.ts","../../../projects/cocori-ng/src/feature-form/core/service/form-builder/form-builder.service.ts","../../../projects/cocori-ng/src/feature-form/core/service/uploader/uploader.service.ts","../../../projects/cocori-ng/src/feature-form/core/service/toast-message.service.ts","../../../projects/cocori-ng/src/feature-form/core/service/datagrid/datagrid.service.ts","../../../projects/cocori-ng/src/feature-form/shared/component/modal/confirm-modal/cocoring-confirm-modal.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/modal/confirm-modal/cocoring-confirm-modal.component.html","../../../projects/cocori-ng/src/feature-form/core/service/confirm-modal.service.ts","../../../projects/cocori-ng/src/feature-form/core/service/flex-layout/flex-layout.service.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/color-picker/cocoring-colorpicker.directive.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/color-picker/cocoring-colorpicker.module.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/default-image/cocoring-default-image.directive.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/default-image/cocoring-default-image.module.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/previous-page/cocoring-previous-page.directive.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/previous-page/cocoring-previous-page.module.ts","../../../projects/cocori-ng/src/feature-form/shared/directive/datagrid/cocoring-datagrid-group.directive.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/variable-html/cocoring-variable-html.module.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/file-size/cocoring-file-size.pipe.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/file-size/cocoring-file-size.module.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/pretty-print/cocoring-pretty-print.pipe.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/pretty-print/cocoring-pretty-print.module.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/sanitize-url/cocoring-sanitize-url.pipe.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/sanitize-url/cocoring-sanitize-url.module.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/truncate/cocoring-truncate.pipe.ts","../../../projects/cocori-ng/src/feature-form/shared/pipe/truncate/cocoring-truncate.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/error-handler/input-error-handler/cocoring-input-error.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/wysiwyg/cocoring-wysiwyg.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/wysiwyg/cocoring-wysiwyg.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/wysiwyg/cocoring-wysiwyg.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/toast-error-stacktrace/toast-error-stacktrace.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/toast-error-stacktrace/toast-error-stacktrace.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/toast-error-stacktrace/toast-error-stacktrace.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/modal/confirm-modal/cocoring-confirm-modal.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-buttons/cocoring-buttons-group.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-buttons/cocoring-buttons-group.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-buttons/cocoring-buttons-group.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-icon/input-icon.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox/cocoring-checkbox.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-checkbox-indeterminate/checkbox-indeterminate.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-date/cocoring-date.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-slide-toggle/cocoring-slide-toggle.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-email/cocoring-email.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-number/cocoring-number.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-password/cocoring-password.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-select/cocoring-select.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-text/cocoring-text.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-textarea/cocoring-textarea.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/inputs/input-viewer/cocoring-viewer.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-container/cocoring-form-container.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-container/cocoring-form-container.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/form/form-container/cocoring-form-container.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/button/cocoring-button.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/button-link/cocoring-button-link.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-bottom-sheet/cocoring-uploader-bottom-sheet.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-bottom-sheet/cocoring-uploader-bottom-sheet.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-file-actions/cocoring-uploader-file-actions.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-file-actions/cocoring-uploader-file-actions.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-list-file/cocoring-uploader-list-file.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader-list-file/cocoring-uploader-list-file.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/uploader/cocoring-uploader.module.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-cell/cocoring-datagrid-cell.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-cell/cocoring-datagrid-cell.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-row/cocoring-datagrid-row.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-row/cocoring-datagrid-row.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/common-datagrid/sort-column-extend.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-head/cocoring-datagrid-head.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-head/cocoring-datagrid-head.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-filter-modal/cocoring-datagrid-filter-column/cocoring-datagrid-filter-column.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-filter-modal/cocoring-datagrid-filter-column/cocoring-datagrid-filter-column.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-filter-modal/cocoring-datagrid-filter-modal.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-filter-modal/cocoring-datagrid-filter-modal.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-toolbar/cocoring-datagrid-searchbar/cocoring-datagrid-searchbar.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-toolbar/cocoring-datagrid-searchbar/cocoring-datagrid-searchbar.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-toolbar/cocoring-datagrid-toolbar.component.ts","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid-toolbar/cocoring-datagrid-toolbar.component.html","../../../projects/cocori-ng/src/feature-form/shared/component/datagrid/cocoring-datagrid.module.ts","../../../projects/cocori-ng/src/feature-form/shared/index.ts","../../../projects/cocori-ng/src/feature-form/cocori-ng-src-feature-form.ts"],"sourcesContent":["\r\nexport const DefaultConfigComponent = {\r\n    form: {\r\n        keyId: \"formId\",\r\n        appearance: 'outline',\r\n        styleCompact: false\r\n    },\r\n    button: {\r\n        text: \"Valider\"\r\n    },\r\n    date: {\r\n        dateTimeSeparator: ' à '\r\n    },\r\n    upload: {\r\n        chunkSize: 2 * 1048576\r\n    },\r\n    wysiwyg: {\r\n        plugins: [\r\n            'quickbars',\r\n            'advlist',\r\n            'autolink',\r\n            'lists',\r\n            'link',\r\n            'image',\r\n            'media',\r\n            'imagetools',\r\n            'emoticons',\r\n            'preview',\r\n            'searchreplace',\r\n            'media',\r\n            'table',\r\n            'paste',\r\n            'code',\r\n            'help',\r\n        ],\r\n        toolbar: 'undo redo | bullist | imageoptions | quicklink | outdent | indent | emoticons',\r\n        quickbarsInsert: 'bullist numlist | imageoptions media | quicklink | quicktable | emoticons'\r\n    }\r\n}\r\n","export const ConfigEvents = {\r\n    FORM_SUBMITTED: \"FORM_SUBMITTED\",\r\n    CMS_RESPONSIVE_ORIENTATION_CHANGED: \"CMS_RESPONSIVE_ORIENTATION_CHANGED\",\r\n};\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { ButtonComponentInputs, ButtonIconPositon, LoadingService, TypeButtonEnum } from 'cocori-ng/src/feature-core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'cocoring-button',\r\n    templateUrl: 'cocoring-button.component.html',\r\n    styleUrls: ['./cocoring-button.component.scss']\r\n})\r\nexport class CocoringButtonComponent implements OnInit, OnDestroy {\r\n    @Output() callback: EventEmitter<string> = new EventEmitter<string>();\r\n    @Output() click: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n    @Input() disabled: boolean = false;\r\n    @Input() text: string;\r\n    @Input() type: string = TypeButtonEnum.SUBMIT;\r\n    @Input() class: string = 'primary';\r\n\r\n    onClickSubmit: Function;\r\n    isLoading: boolean = false;\r\n    icon: string;\r\n    iconPosition: ButtonIconPositon;\r\n\r\n    private readonly destroy$ = new Subject();\r\n\r\n    constructor(\r\n        private loadingService: LoadingService,\r\n        private cdr: ChangeDetectorRef,) {\r\n    }\r\n\r\n    @Input()\r\n    set config(config: ButtonComponentInputs) {\r\n        if (!config) return;\r\n\r\n        this.text = config.text;\r\n        this.icon = config.icon;\r\n        this.class = config.className || this.class;\r\n        this.iconPosition = config.iconPosition;\r\n        this.type = config.type;\r\n        this.onClickSubmit = config.onClickSubmit;\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.loadingService.subject.pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((isLoading: boolean) => {\r\n            this.isLoading = isLoading\r\n            this.cdr.detectChanges()\r\n        })\r\n\r\n        this.callback.emit(this.text);\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    onClick() {\r\n        if (this.type === TypeButtonEnum.SUBMIT && this.onClickSubmit) {\r\n            this.onClickSubmit()\r\n        } else if (this.type === TypeButtonEnum.BUTTON && this.onClickSubmit) {\r\n            this.click.emit()\r\n        }\r\n    }\r\n}\r\n","<button class=\"btn\" mat-raised-button [ngClass]=\"class\" [class.spinner]=\"isLoading\" type=\"{{type}}\"\r\n    [disabled]=\"isLoading || disabled\" (click)=\"onClick()\">\r\n    <mat-icon *ngIf=\"icon && iconPosition === 'start' \">{{icon}}</mat-icon>\r\n    {{text}}\r\n    <ng-content></ng-content>\r\n    <mat-icon *ngIf=\"icon && iconPosition === 'end'\">{{icon}}</mat-icon>\r\n</button>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ButtonComponentInputs, TypeButtonEnum } from 'cocori-ng/src/feature-core';\r\n\r\n@Component({\r\n    selector: 'cocoring-button-link',\r\n    templateUrl: 'cocoring-button-link.component.html',\r\n    styleUrls: ['./cocoring-button-link.component.scss']\r\n})\r\nexport class CocoringButtonLinkComponent implements OnInit, OnDestroy {\r\n    public btnConfig: ButtonComponentInputs\r\n    public url: string = '/bo/home'\r\n    public openNewTab: boolean = false\r\n\r\n    /** Mettre les bons Inputs de base comme ceux utilisé dans le projet atlantX */\r\n\r\n    constructor() { }\r\n\r\n    @Input()\r\n    set config(config: ButtonComponentInputs) {\r\n        if (!config) return;\r\n\r\n        config.type = TypeButtonEnum.BUTTON;\r\n\r\n        this.url = config.url\r\n        this.openNewTab = config.openNewTab || false\r\n        this.btnConfig = config\r\n    }\r\n\r\n    ngOnInit() { }\r\n\r\n    ngOnDestroy(): void { }\r\n}\r\n","<a [routerLink]=\"url ? url : null\" target=\"{{openNewTab ? '_blank' : '_self'}}\">\r\n    <cocoring-button [config]=\"btnConfig\"></cocoring-button>\r\n</a>","import { Component, EventEmitter, Injector, Input, OnDestroy, Output } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidatorFn } from '@angular/forms';\r\nimport {\r\n    ConfigInputComponent,\r\n    DataSourceInput,\r\n    DatasourceService,\r\n    HttpService,\r\n    InputFieldAppearance,\r\n    OutputCallback,\r\n    ValidatorsService,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { Observable, Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n    selector: 'extend-inputs',\r\n    template: '',\r\n    host: { 'class': 'input-form' }\r\n})\r\n\r\nexport abstract class ExtendInputsComponent implements OnDestroy {\r\n    @Input() formGroup: UntypedFormGroup\r\n    @Input() nameControl: string\r\n    @Input() nameLabel: string\r\n    @Input() color: string = 'primary' /** à factoriser dans le helper pour la construction de form */\r\n\r\n    /** méthode appelée lorsque que le contrôle a été ajouté au formulaire avec en paramètre le nom du contrôle créé */\r\n    @Output() callback: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n    public readonly destroy$ = new Subject();\r\n\r\n    dataSource$: Observable<any>;\r\n    dataSourceNameProperty: string\r\n    inRelationWith: string;\r\n    validators: ValidatorFn[];\r\n    appearance: InputFieldAppearance;\r\n    httpService: HttpService;\r\n    datasourceService: DatasourceService;\r\n    styleCompact: boolean;\r\n    maxlength: number;\r\n    icon: string;\r\n    callbackComponent: OutputCallback;\r\n\r\n    constructor(injector: Injector) {\r\n        this.httpService = injector.get(HttpService);\r\n        this.datasourceService = injector.get(DatasourceService);\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.destroy$.next(undefined);\r\n        this.destroy$.complete();\r\n    }\r\n\r\n    configInput(config: ConfigInputComponent) {\r\n        this.nameLabel = config.nameLabel;\r\n        this.nameControl = config.nameControl;\r\n        this.formGroup = config.formGroup;\r\n        this.styleCompact = config.styleCompact;\r\n        this.maxlength = config.maxlength;\r\n        this.icon = config.icon;\r\n        this.appearance = config.appearance;\r\n        this.dataSource$ = this.loadDataSource(config.dataSource)\r\n        this.inRelationWith = config.inRelationWith\r\n        this.validators = config.validators\r\n        this.callbackComponent = config.callbackComponent\r\n\r\n        this.nameLabel += this.isControlRequired() ? ' *' : ''\r\n    }\r\n\r\n    emitEvent() {\r\n        if (!this.formGroup || !this.nameControl) {\r\n            throw new Error(`Données formulaire manquantes, formGroup : ${this.formGroup} - nameControl : ${this.nameControl}`);\r\n        }\r\n\r\n        this.inRelatioNWith()\r\n\r\n        if (this.callbackComponent) {\r\n            this.callbackComponent.callback(this.nameControl)\r\n        } else {\r\n            this.callback.emit(this.nameControl);\r\n        }\r\n    }\r\n\r\n    clearValue(event?: any) {\r\n        this.formGroup.get(this.nameControl).reset()\r\n        this.formGroup.get(this.nameControl).markAsUntouched()\r\n\r\n        if(event) event.stopPropagation();\r\n    }\r\n\r\n    addControlForm() {\r\n        if (this.controlAlreadyAdded()) return;\r\n\r\n        this.formGroup.addControl(this.nameControl, new UntypedFormControl(null, this.validators))\r\n\r\n        this.emitEvent()\r\n    }\r\n\r\n    addArrayForm() {\r\n        if (this.controlAlreadyAdded()) return;\r\n\r\n        this.formGroup.addControl(this.nameControl, new UntypedFormArray([], this.validators))\r\n\r\n        this.emitEvent()\r\n    }\r\n\r\n    private controlAlreadyAdded(): boolean {\r\n        return this.formGroup.contains(this.nameControl)\r\n    }\r\n\r\n    loadDataSource(configDataSource: DataSourceInput): Observable<any> {\r\n        if (!configDataSource) return;\r\n\r\n        this.dataSourceNameProperty = configDataSource.dataSourceNameProperty || 'name'\r\n\r\n        return this.datasourceService.loadDataSource(configDataSource)\r\n    }\r\n\r\n    private inRelatioNWith() {\r\n        if (this.inRelationWith && typeof this.inRelationWith !== 'undefined') {\r\n\r\n            console.log(\"inRelationWith>>\", this.inRelationWith, this.formGroup)\r\n\r\n            this.formGroup.get(this.inRelationWith).valueChanges.pipe(\r\n                takeUntil(this.destroy$),\r\n            ).subscribe((parentValue) => {\r\n                console.log(\"Parent Value \", parentValue);\r\n            })\r\n        }\r\n    }\r\n\r\n    private isControlRequired(): boolean {\r\n        if (!this.validators) return;\r\n\r\n        const d = this.validators.find((validatorFn: Function) => validatorFn.name === ValidatorsService.require.name)\r\n\r\n        return typeof d === 'undefined' ? false : true\r\n    }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, ValidationErrors } from '@angular/forms';\r\nimport { BroadcastEventService, ValidatorsService, ValidtionError } from 'cocori-ng/src/feature-core';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nimport { DefaultConfigComponent } from '../../../../core/config/config.components';\r\nimport { ConfigEvents } from '../../../../core/config/config.events';\r\n\r\n@Component({\r\n    selector: '[error-handler]',\r\n    template: `\r\n        <ng-container *ngIf=\"(errorMessage$ | async) as errorMessage\">\r\n            <mat-error>{{errorMessage}}</mat-error>\r\n        </ng-container>\r\n    `,\r\n    styleUrls: ['./cocoring-input-error.component.scss']\r\n})\r\n\r\nexport class CocoringInputErrorComponent implements OnInit, OnDestroy {\r\n    @Input() form: UntypedFormGroup;\r\n    @Input() controlName: string;\r\n\r\n    private formId: string;\r\n\r\n    errorMessage$: any;\r\n\r\n    constructor(\r\n        private broadcastEventService: BroadcastEventService,\r\n        private validatorsService: ValidatorsService) { }\r\n\r\n    ngOnInit() {\r\n\r\n        if (!this.form.get(DefaultConfigComponent.form.keyId)) return;\r\n\r\n        this.formId = this.form.get(DefaultConfigComponent.form.keyId).value as string\r\n\r\n        const onSubmitObs: Observable<unknown> = this.broadcastEventService.listen([ConfigEvents.FORM_SUBMITTED, this.formId])\r\n        const valueChangesObs: Observable<unknown> = this.form.get(this.controlName).valueChanges\r\n\r\n        this.mergeObservables(onSubmitObs, valueChangesObs)\r\n    }\r\n\r\n    ngOnDestroy() { }\r\n\r\n    private mergeObservables(onSubmitObs: Observable<unknown>, valueChangesObs: Observable<unknown>) {\r\n        this.errorMessage$ = merge(\r\n            onSubmitObs,\r\n            valueChangesObs\r\n        )\r\n            .pipe(\r\n                filter((value: any) => this.form.get(this.controlName).errors !== null),\r\n                map((value: any) => this.form.get(this.controlName).errors),\r\n                map((formError: ValidationErrors) => {\r\n                    const errorKey: string = Object.keys(formError)[0]\r\n\r\n                    /** pour déclencher l'erreur angular material */\r\n                    this.form.get(this.controlName).markAsTouched()\r\n\r\n                    return this.validatorsService.getValidationErrorMessage(<ValidtionError>{ key: errorKey, value: formError[errorKey] })\r\n                })\r\n            )\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-checkbox-indeterminate',\r\n    templateUrl: 'checkbox-indeterminate.component.html',\r\n    styleUrls: ['./checkbox-indeterminate.component.scss'],\r\n})\r\n\r\nexport class CocoringCheckboxIndeterminateComponent extends ExtendInputsComponent {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n\r\n        this.dataSource$.pipe(\r\n            takeUntil(this.destroy$),\r\n        ).subscribe((datasource: any[]) => {\r\n            this.addNestedForm(datasource)\r\n        })\r\n    }\r\n\r\n    nestedNameForm: string = 'nestedValues'\r\n    someComplete: boolean = false;\r\n\r\n    constructor(\r\n        private fb: UntypedFormBuilder,\r\n        private cdr: ChangeDetectorRef,\r\n        injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    private addNestedForm(datasource: any[]) {\r\n\r\n        if (!datasource.length) return;\r\n\r\n        const nestedFrom = this.fb.group({});\r\n\r\n        datasource.forEach((datas: any) => {\r\n            nestedFrom.addControl(datas.id, new UntypedFormControl(false))\r\n        })\r\n\r\n        this.formGroup.addControl(this.nestedNameForm, nestedFrom)\r\n\r\n        this.formChangeEvent()\r\n\r\n        this.nestedFormChangeEvent()\r\n    }\r\n\r\n    private formChangeEvent() {\r\n        this.formGroup.get(this.nameControl).valueChanges.pipe(\r\n            takeUntil(this.destroy$),\r\n        ).subscribe((value: boolean) => {\r\n            this.setValueControls(value)\r\n        })\r\n    }\r\n\r\n    private setValueControls(value: boolean) {\r\n        Object.keys(this.nestedForm['controls']).forEach(key => {\r\n            this.nestedForm['controls'][key].setValue(value, { emitEvent: false })\r\n        });\r\n    }\r\n\r\n    private nestedFormChangeEvent() {\r\n        // const nestedFormPropertiesLength: number = this.formHelperService.countControlsForm(this.nestedForm)\r\n        const nestedFormPropertiesLength: number = 3\r\n\r\n        this.nestedForm.valueChanges.pipe(\r\n            takeUntil(this.destroy$),\r\n        ).subscribe((values) => {\r\n            const completed: any[] = Object.entries(values).filter(([key, value]) => <boolean>value === true)\r\n\r\n            if (completed.length === nestedFormPropertiesLength) {\r\n                this.formGroup.get(this.nameControl).setValue(true, { emitEvent: false })\r\n\r\n                setTimeout(() => {\r\n                    this.someComplete = false\r\n                    this.cdr.detectChanges()\r\n                });\r\n            } else if (completed.length > 0 && completed.length < nestedFormPropertiesLength) {\r\n                this.formGroup.get(this.nameControl).setValue(false, { emitEvent: false })\r\n\r\n                setTimeout(() => {\r\n                    this.someComplete = true\r\n                    this.cdr.detectChanges()\r\n                });\r\n            } else {\r\n                this.someComplete = false\r\n                this.formGroup.get(this.nameControl).setValue(false, { emitEvent: false })\r\n            }\r\n        })\r\n    }\r\n\r\n    private get nestedForm(): UntypedFormGroup {\r\n        return <UntypedFormGroup>this.formGroup.get(this.nestedNameForm)\r\n    }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-checkbox\r\n            class=\"optionSelectAll\"\r\n            [formControlName]=\"nameControl\" \r\n            [indeterminate]=\"someComplete\"\r\n            color=\"primary\"\r\n            (click)=\"$event.stopPropagation()\">\r\n        {{nameLabel}}\r\n    </mat-checkbox>\r\n\r\n    <ng-container [formGroupName]=\"nestedNameForm\">\r\n        <mat-checkbox *ngFor=\"let item of (dataSource$ | async)\" \r\n                [formControlName]=\"item.id\"\r\n                color=\"primary\">\r\n                {{item[dataSourceNameProperty]}}\r\n        </mat-checkbox>\r\n    </ng-container>\r\n\r\n    <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n</ng-container>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'variableHtml',\r\n    pure: false\r\n})\r\nexport class CocoringVariableHtmlPipe implements PipeTransform {\r\n    constructor(private sanitizer: DomSanitizer) {\r\n    }\r\n    transform(texteHtml: string): SafeHtml {\r\n        if (!texteHtml) return ''\r\n\r\n        return this.sanitizer.bypassSecurityTrustHtml(texteHtml);\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-checkbox',\r\n    templateUrl: 'cocoring-checkbox.component.html',\r\n})\r\n\r\nexport class CocoringCheckboxComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-checkbox (click)=\"$event.stopPropagation()\" [formControlName]=\"nameControl\" [color]=\"color\">\r\n        <div [innerHtml]=\"nameLabel | variableHtml\"></div>\r\n    </mat-checkbox>\r\n    <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n  selector: 'input-icon',\r\n  templateUrl: './input-icon.component.html',\r\n  styleUrls: ['./input-icon.component.scss']\r\n})\r\nexport class InputIconComponent implements OnInit {\r\n  @Input() icon: string\r\n  @Output() clickEvent: EventEmitter<boolean> = new EventEmitter();\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  emitClickEvent() {\r\n    this.clickEvent.emit(true);\r\n  }\r\n\r\n}\r\n","<button type=\"button\" tabindex=\"-1\" *ngIf=\"icon\" (click)=\"emitClickEvent()\" mat-icon-button aria-label=\"Icone dans le champ de saisi\">\r\n    <mat-icon>\r\n        {{icon}}\r\n    </mat-icon>\r\n</button>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Injector, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { ConfigInputComponent, HelperService, ValidatorsService } from 'cocori-ng/src/feature-core';\r\nimport { DateTime } from 'luxon';\r\nimport { takeUntil } from 'rxjs';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-date',\r\n    templateUrl: 'cocoring-date.component.html',\r\n    styleUrls: ['./cocoring-date.component.scss'],\r\n})\r\n\r\nexport class CocoringDateComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n\r\n        config.validators.push(ValidatorsService.dateValidator)\r\n\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n\r\n        this.maskInputControlName = `m${this.nameControl}`\r\n\r\n        /** le masque de saisie ne fonctionne pas avec le composant de material datepicker */\r\n        this.addDateMaskControl()\r\n\r\n        this.valueChangeEvent()\r\n\r\n    }\r\n\r\n    // dateMask: any = { guide: false, showMask : false, mask: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/], placeholderChar: '\\u2000' };\r\n\r\n    maskInputControlName: string = null\r\n\r\n    constructor(\r\n        @Inject(MAT_DATE_LOCALE) public locale: string,\r\n        private cdr: ChangeDetectorRef,\r\n        injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n\r\n    /** Value from datepicker changed event */\r\n    valueChangeEvent() {\r\n        this.formGroup.get(this.nameControl).valueChanges.pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((val) => {\r\n            let d = null;\r\n\r\n            if (!val) return;\r\n\r\n            if (typeof val.getMonth === 'function' || typeof val === 'string') {\r\n                d = DateTime.fromJSDate(new Date(val)).setLocale(this.locale).toLocaleString() // sous la forme de 21/12/2021\r\n            } else if ((<Object>val).hasOwnProperty(\"isLuxonDateTime\")) {\r\n                d = DateTime.fromISO(val).setLocale(this.locale).toLocaleString() // sous la forme de 21/12/2021\r\n            }\r\n\r\n            if (d) {\r\n                this.formGroup.get(this.maskInputControlName).setValue(HelperService.replaceAll(d, '/', ''))\r\n\r\n                setTimeout(() => { // bogue dans le rendu sinon...\r\n                    this.cdr.detectChanges()\r\n                });\r\n            }\r\n        })\r\n    }\r\n\r\n    private maskInputChangeEvent() {\r\n        this.formGroup.get(this.maskInputControlName).valueChanges.pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((dateInput: string) => {\r\n            this.dispatchValueInput(dateInput)\r\n        })\r\n    }\r\n\r\n    private dispatchValueInput(dateInput: string) {\r\n        if (dateInput && dateInput.length === 8) {\r\n            const day = dateInput.substring(0, 2)\r\n            const month = dateInput.substring(2, 4)\r\n            const year = dateInput.substring(4)\r\n\r\n            const dateFormated: DateTime = DateTime.fromISO(year + month + day)\r\n\r\n            if (dateFormated.isValid) {\r\n                this.formGroup.get(this.nameControl).setValue(DateTime.fromISO(year + month + day), { emitEvent: false })\r\n            } else this.clearDateMaskValue()\r\n        } else {\r\n            this.clearValue()\r\n        }\r\n    }\r\n\r\n    onBlur() {\r\n        const dateInput: string = this.formGroup.get(this.maskInputControlName).value\r\n\r\n        if (!dateInput || dateInput.length !== 8) {\r\n            this.clearDateMaskValue()\r\n        }\r\n    }\r\n\r\n    private addDateMaskControl() {\r\n        this.formGroup.addControl(this.maskInputControlName, new UntypedFormControl(null, this.validators))\r\n\r\n        this.maskInputChangeEvent()\r\n\r\n        this.emitEvent()\r\n    }\r\n\r\n    clearDateMaskValue(event?: any) {\r\n        this.formGroup.get(this.maskInputControlName).reset()\r\n        this.formGroup.get(this.maskInputControlName).markAsUntouched()\r\n\r\n        this.clearValue(event)\r\n\r\n        if (event) event.stopPropagation();\r\n    }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <!-- <input matInput [matDatepicker]=\"picker\" [formControlName]=\"nameControl\"> -->\r\n        <input [attr.data-cy]=\"nameControl\" matInput type=\"text\" mask=\"d0/M0/0000\" [leadZeroDateTime]=\"true\" [formControlName]=\"maskInputControlName\" (blur)=\"onBlur()\"/>\r\n        <input [matDatepicker]=\"picker\" [formControlName]=\"nameControl\">\r\n        <div matSuffix style=\"display:flex\">\r\n            <mat-datepicker-toggle tabindex=\"-1\" matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(maskInputControlName).value\" (click)=\"clearDateMaskValue($event)\"></input-icon>\r\n        </div>\r\n        <mat-datepicker #picker></mat-datepicker>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"maskInputControlName\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent, ValidatorsService } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-email',\r\n    templateUrl: 'cocoring-email.component.html',\r\n})\r\n\r\nexport class CocoringEmailComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n\r\n        config.validators.push(ValidatorsService.emailValidator)\r\n\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <div matPrefix>\r\n            <input-icon [icon]=\"icon\"></input-icon>\r\n        </div>\r\n        <input [attr.data-cy]=\"nameControl\" type=\"email\" matInput [formControlName]=\"nameControl\" />\r\n        <div matSuffix style=\"display:flex\">\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\"></input-icon>\r\n        </div>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-number',\r\n    templateUrl: 'cocoring-number.component.html',\r\n})\r\n\r\nexport class CocoringNumberComponent extends ExtendInputsComponent implements OnInit, OnDestroy {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.formGroup.get(this.nameControl).valueChanges.pipe(\r\n            takeUntil(this.destroy$),\r\n            filter(value => this.maxlength && String(value).length > this.maxlength && value > 0),\r\n        ).subscribe((value) => {\r\n            this.formGroup.get(this.nameControl).setValue(String(value).slice(0, this.maxlength), { emitEvent: false })\r\n        })\r\n    }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <div matPrefix>\r\n            <input-icon [icon]=\"icon\"></input-icon>\r\n        </div>\r\n        <input [attr.data-cy]=\"nameControl\" type=\"number\" matInput [formControlName]=\"nameControl\" [maxlength]=\"maxlength\" />\r\n        <div matSuffix style=\"display:flex\">\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\"></input-icon>\r\n        </div>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-password',\r\n    templateUrl: 'cocoring-password.component.html',\r\n})\r\n\r\nexport class CocoringPasswordComponent extends ExtendInputsComponent implements OnInit {\r\n\r\n    type: string = \"password\"\r\n    revealPasswordStatus: boolean = false;\r\n\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n\r\n    toggleRevealPassword() {\r\n        this.revealPasswordStatus = !this.revealPasswordStatus;\r\n\r\n        this.type = this.revealPasswordStatus ? 'text' : 'password'\r\n    }    \r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        \r\n        <div matPrefix>\r\n            <input-icon [icon]=\"icon\"></input-icon>\r\n        </div>\r\n\r\n        <input [attr.data-cy]=\"nameControl\" matInput [type]=\"type\" [formControlName]=\"nameControl\" />\r\n\r\n        <div matSuffix style=\"display:flex\">\r\n            <button type=\"button\" tabindex=\"-1\" class=\"suffix-icon\" (click)=\"toggleRevealPassword()\" mat-icon-button\r\n                aria-label=\"Révéler / cacher le mot de passe\">\r\n                <mat-icon>\r\n                    <ng-container *ngIf=\"!revealPasswordStatus\">visibility</ng-container>\r\n                    <ng-container *ngIf=\"revealPasswordStatus\">visibility_off</ng-container>\r\n                </mat-icon>\r\n            </button>\r\n\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\">\r\n            </input-icon>\r\n        </div>\r\n\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-select',\r\n    templateUrl: 'cocoring-select.component.html',\r\n    styleUrls: ['./cocoring-select.component.scss']\r\n})\r\n\r\nexport class CocoringSelectComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm()\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <div matPrefix>\r\n            <input-icon [icon]=\"icon\"></input-icon>\r\n        </div>\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <mat-select [attr.data-cy]=\"nameControl\" [formControlName]=\"nameControl\">\r\n            <mat-option *ngFor=\"let item of (dataSource$ | async)\" [value]=\"item.id\">\r\n                {{item[dataSourceNameProperty]}}\r\n            </mat-option>\r\n        </mat-select>\r\n        <div matSuffix style=\"display:flex\">\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\"></input-icon>\r\n        </div>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-slide-toggle',\r\n    templateUrl: 'cocoring-slide-toggle.component.html',\r\n    styleUrls: ['./cocoring-slide-toggle.component.scss']\r\n})\r\n\r\nexport class CocoringSlideToggleComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <div class=\"slide-toggle-frm\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <mat-slide-toggle [attr.data-cy]=\"nameControl\" [formControlName]=\"nameControl\"></mat-slide-toggle>\r\n    </div>\r\n    <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-text',\r\n    templateUrl: 'cocoring-text.component.html',\r\n})\r\n\r\nexport class CocoringTextComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<!-- utilier ngTemplateOutlet ex: https://blog.bitsrc.io/component-reusability-techniques-with-angular-727a6c603ad2 -->\r\n\r\n<!-- <input-container-ng [form]=\"formGroup\" [controlName]=\"nameControl\">\r\n    <ng-container [formGroup]=\"formGroup\">\r\n        <mat-form-field>\r\n            <mat-label>{{nameLabel}}</mat-label>\r\n            <input type=\"text\" matInput [formControlName]=\"nameControl\" />\r\n        </mat-form-field>\r\n    </ng-container>\r\n</input-container-ng> -->\r\n\r\n<!-- <input-container-ng [templateRef]=\"nestedComponentRef\" [form]=\"formGroup\" [controlName]=\"nameControl\">\r\n</input-container-ng>\r\n\r\n<ng-template #nestedComponentRef>\r\n    <ng-container [formGroup]=\"formGroup\">\r\n        <mat-form-field>\r\n            <mat-label>{{nameLabel}}</mat-label>\r\n            <input type=\"text\" matInput [formControlName]=\"nameControl\" />\r\n        </mat-form-field>\r\n    </ng-container>\r\n</ng-template> -->\r\n\r\n<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\" [ngClass]=\"{'mat-form-compact': styleCompact}\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <div matPrefix>\r\n            <input-icon [icon]=\"icon\"></input-icon>\r\n        </div>\r\n        <input type=\"text\" [attr.data-cy]=\"nameControl\" matInput [formControlName]=\"nameControl\" [maxlength]=\"maxlength\" />\r\n        <div matSuffix style=\"display:flex\">\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\">\r\n            </input-icon>\r\n        </div>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-textarea',\r\n    templateUrl: 'cocoring-textarea.component.html',\r\n    styleUrls: ['./cocoring-textarea.component.scss']\r\n})\r\n\r\nexport class CocoringTextareaComponent extends ExtendInputsComponent implements OnInit {\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addControlForm();\r\n    }\r\n\r\n    constructor(injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() { }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field [appearance]=\"appearance\">\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <textarea [attr.data-cy]=\"nameControl\" matInput [formControlName]=\"nameControl\" rows=\"10\"></textarea>\r\n        <div matSuffix style=\"display:flex\">\r\n            <input-icon icon=\"close\" *ngIf=\"formGroup.get(nameControl).value\" (click)=\"clearValue($event)\"></input-icon>\r\n        </div>\r\n        <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error>\r\n    </mat-form-field>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, EventEmitter, Injector, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ConfigInputComponent } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../extend-inputs/extend-inputs.component';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    selector: 'cocoring-viewer-ng',\r\n    templateUrl: 'cocoring-viewer.component.html',\r\n})\r\n\r\nexport class CocoringViewerComponent extends ExtendInputsComponent implements OnInit {\r\n    @Output() callback: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n    nameLabel: string;\r\n    formGroup: UntypedFormGroup;\r\n    nameControl: string;\r\n\r\n    @Input()\r\n    set config(config: ConfigInputComponent) {\r\n        this.configInput(config)\r\n\r\n        this.addForm()\r\n    }\r\n\r\n    constructor(private fb: UntypedFormBuilder, injector: Injector) {\r\n        super(injector);\r\n    }\r\n\r\n    ngOnInit() {\r\n    }\r\n\r\n    private addForm() {\r\n        const nestedFrom: UntypedFormGroup = this.fb.group({\r\n            windowingMin: null,\r\n            windowingMax: null,\r\n            rangeMin: null,\r\n            rangeMax: null,\r\n            lut: null\r\n        })\r\n\r\n        this.formGroup.addControl(this.nameControl, nestedFrom)\r\n\r\n        this.emitEvent()\r\n    }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n    <mat-form-field>\r\n        <mat-label>{{nameLabel}}</mat-label>\r\n        <ng-container [formGroupName]=\"nameControl\">\r\n            <input type=\"text\" matInput formControlName=\"windowingMin\" />\r\n        </ng-container>\r\n        <!-- <mat-error error-handler [form]=\"formGroup\" [controlName]=\"nameControl\"></mat-error> -->\r\n    </mat-form-field>\r\n</ng-container>","import { FormInputComponents } from 'cocori-ng/src/feature-core';\r\n\r\nimport { CocoringButtonLinkComponent } from '../button-link/cocoring-button-link.component';\r\nimport { CocoringButtonComponent } from '../button/cocoring-button.component';\r\nimport {\r\n    CocoringCheckboxIndeterminateComponent,\r\n} from './inputs/input-checkbox-indeterminate/checkbox-indeterminate.component';\r\nimport { CocoringCheckboxComponent } from './inputs/input-checkbox/cocoring-checkbox.component';\r\nimport { CocoringDateComponent } from './inputs/input-date/cocoring-date.component';\r\nimport { CocoringEmailComponent } from './inputs/input-email/cocoring-email.component';\r\nimport { CocoringNumberComponent } from './inputs/input-number/cocoring-number.component';\r\nimport { CocoringPasswordComponent } from './inputs/input-password/cocoring-password.component';\r\nimport { CocoringSelectComponent } from './inputs/input-select/cocoring-select.component';\r\nimport { CocoringSlideToggleComponent } from './inputs/input-slide-toggle/cocoring-slide-toggle.component';\r\nimport { CocoringTextComponent } from './inputs/input-text/cocoring-text.component';\r\nimport { CocoringTextareaComponent } from './inputs/input-textarea/cocoring-textarea.component';\r\nimport { CocoringViewerComponent } from './inputs/input-viewer/cocoring-viewer.component';\r\n\r\n\r\nexport const ClasseComponents = {\r\n    [FormInputComponents.INPUT_TEXT]: CocoringTextComponent,\r\n    [FormInputComponents.INPUT_EMAIL]: CocoringEmailComponent,\r\n    [FormInputComponents.INPUT_CHECKBOX]: CocoringCheckboxComponent,\r\n    [FormInputComponents.INPUT_CHECKBOX_INDETERMINATE]: CocoringCheckboxIndeterminateComponent,\r\n    [FormInputComponents.INPUT_NUMBER]: CocoringNumberComponent,\r\n    [FormInputComponents.INPUT_PASSWORD]: CocoringPasswordComponent,\r\n    [FormInputComponents.INPUT_DATE]: CocoringDateComponent,\r\n    [FormInputComponents.INPUT_SLIDE_TOGGLE]: CocoringSlideToggleComponent,\r\n    [FormInputComponents.INPUT_TEXTAREA]: CocoringTextareaComponent,\r\n    [FormInputComponents.INPUT_VIEWER]: CocoringViewerComponent,\r\n    [FormInputComponents.INPUT_SELECT]: CocoringSelectComponent,\r\n    [FormInputComponents.BUTTON]: CocoringButtonComponent,\r\n    [FormInputComponents.LINK]: CocoringButtonLinkComponent,\r\n};","import { Injectable, ViewContainerRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport {\r\n    BroadcastEventService,\r\n    ButtonComponentInputs,\r\n    ButtonIconPositon,\r\n    ConfigComponentInputs,\r\n    ConfigInputComponent,\r\n    DataSourceInput,\r\n    FormInputComponents,\r\n    HelperService,\r\n    InjectComponentService,\r\n    InputFieldAppearance,\r\n    OutputCallback,\r\n    TypeButtonEnum,\r\n    ValidatorsService,\r\n} from 'cocori-ng/src/feature-core';\r\n\r\nimport { ClasseComponents } from '../../../shared/component/form';\r\nimport { DefaultConfigComponent } from '../../config/config.components';\r\nimport { ConfigEvents } from '../../config/config.events';\r\n\r\n\r\n/**\r\n * https://www.typescriptlang.org/play?#code/C4TwDgpgBAggTgcwK4FsIDtgBVwQM4A8WAfFALxRZQQAewGAJnlABQB0HUAhongFxQAlugBmEOFACqASnKlhYiQCUoAfikD0EAG7iA3AChQkKEohgANlwDGEM8CRx0OSAQDyAGigA5UhXYcXALwyGiYLvjuxLJkpN6GRrhQAEJIghYM4gQA0tR0jMwA1hAgAPYiUADCpejWcBD0qemZcH5QAN4GUFAA2pJC6FDZALoC-bT06ExQAOQARmkZM2pVNXUNEE0Z4n3DUAJmljZ2DY7OuARd3au19Y2LLbseV91bLQQAojTWFkiZOV5JKQJgUoFpdBJ1PMHssBF8fn8IACpMRiFc0QBfBIiJC1YCCGpQBbNcQsaQCN5ZeG-f7FMoVaq3DaUuBeaHNGaojpXO5nMEQADuN3W9xJcDJ3GYXHQIEMGIMBh+XDwzEZIs2D3E3O6XDJAmAAAtBMxOtcoLynFBDcbDN15Vc5nqrUaTS9zadLda8LaoPbusSMk68MA4MIENrrhbBjMRKVSjMffL7QGWmS2LrpGxHZmU2S9FAAPQFqClQoGFOknNpjNZh55wvF0vlzXinN16T5ovUOBwUpwZti6tp3Mdhvd3v9iutrPD9ud4viCcD7bTms1kfz8d95epqt72vNetdxfbqdD-fZg+B0fHnunlvn9PD2eHm8Lu9wIA\r\n * https://medium.com/@bensammons/building-a-fluent-interface-with-typescript-using-generics-in-typescript-3-4d206f00dba5\r\n */\r\n\r\ntype AddInput<Builder, InputName extends string> =\r\n    Builder extends FormBuilderService<infer InputNames, infer ButtonNames>\r\n    ? FormBuilderService<InputNames | InputName, ButtonNames>\r\n    : never\r\n\r\n// type AddButton<Builder, ButtonName extends string> =\r\n//     Builder extends FormBuilderService<infer InputNames, infer ButtonNames>\r\n//     ? FormBuilderService<InputNames, ButtonNames | ButtonName>\r\n//     : never\r\n\r\ntype InferInputNames<Builder> =\r\n    Builder extends FormBuilderService<infer InputNames>\r\n    ? InputNames\r\n    : never\r\n\r\nclass InputConfigBuilder<Builder> {\r\n\r\n    _isRequired: boolean;\r\n    _styleCompact: boolean;\r\n    _appearance: InputFieldAppearance;\r\n    _nameLabel: string;\r\n    _icon: string;\r\n    _maxlength: number;\r\n    _inRelationWith: string;\r\n    _type: FormInputComponents;\r\n    _dataSource: DataSourceInput;\r\n    _callbackComponent: OutputCallback;\r\n\r\n    isRequired() {\r\n        this._isRequired = true\r\n\r\n        return this\r\n    }\r\n\r\n    styleCompact() {\r\n        this._styleCompact = true\r\n\r\n        return this\r\n    }\r\n\r\n    appearance(appearance: InputFieldAppearance) {\r\n        this._appearance = appearance\r\n\r\n        return this\r\n    }\r\n\r\n    nameLabel(nameLabel: string) {\r\n        this._nameLabel = nameLabel\r\n\r\n        return this\r\n    }\r\n\r\n    inRelationWith<InputName extends InferInputNames<Builder>>(inputName: InputName) {\r\n        this._inRelationWith = inputName\r\n\r\n        return this\r\n    }\r\n\r\n    dataSource(dataSource: DataSourceInput) {\r\n        this._dataSource = dataSource\r\n\r\n        return this\r\n    }\r\n\r\n    maxlength(value: number) {\r\n        this._maxlength = value\r\n\r\n        return this\r\n    }\r\n\r\n    icon(materialIconName: string) {\r\n        this._icon = materialIconName\r\n\r\n        return this\r\n    }\r\n\r\n    typeInput(\r\n        type: FormInputComponents) {\r\n        this._type = type\r\n\r\n        return this\r\n    }\r\n\r\n    outputCallback(outputCallback: OutputCallback) {\r\n        this._callbackComponent = outputCallback\r\n\r\n        return this\r\n    }\r\n}\r\n\r\nclass ButtonConfigBuilder<Builder> {\r\n\r\n    _type: TypeButtonEnum;\r\n    _icon: string;\r\n    _className: string;\r\n    _iconPosition: ButtonIconPositon;\r\n    _callbackComponent: OutputCallback;\r\n    _url: string;\r\n    _openNewTab: boolean;\r\n\r\n    isTypeSubmit(is: boolean = true) {\r\n        this._type = is ? TypeButtonEnum.SUBMIT : TypeButtonEnum.BUTTON\r\n\r\n        return this\r\n    }\r\n\r\n    type(typeOfTheBtn: TypeButtonEnum = TypeButtonEnum.BUTTON) {\r\n        this._type = typeOfTheBtn\r\n\r\n        return this\r\n    }\r\n\r\n    icon(materialIconName: string, buttonIconPosition: ButtonIconPositon = ButtonIconPositon.START) {\r\n        this._icon = materialIconName\r\n        this._iconPosition = buttonIconPosition\r\n\r\n        return this\r\n    }\r\n\r\n    url(url: string) {\r\n        this._url = url\r\n\r\n        return this\r\n    }\r\n\r\n    openNewTab(openNewTab: boolean) {\r\n        this._openNewTab = openNewTab\r\n\r\n        return this\r\n    }\r\n\r\n    class(className: string) {\r\n        this._className = className\r\n\r\n        return this\r\n    }\r\n\r\n    outputCallback(outputCallback: OutputCallback) {\r\n        this._callbackComponent = outputCallback\r\n\r\n        return this\r\n    }\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root',\r\n})\r\nexport class FormBuilderService<InputNames extends string = never, ButtonNames extends string = never, NodeNames extends string = never,> {\r\n    public formId: string; /** error handler */\r\n    public formName: string; /** mapping details */\r\n\r\n    private currentForm: UntypedFormGroup;\r\n    private _configInputsForm: ConfigInputComponent[] = [];\r\n    private _appearance: InputFieldAppearance = <InputFieldAppearance>DefaultConfigComponent.form.appearance\r\n    private _styleCompact: boolean = DefaultConfigComponent.form.styleCompact;\r\n\r\n    constructor(\r\n        private fb: UntypedFormBuilder,\r\n        private helperService: HelperService,\r\n        private broadcastEventService: BroadcastEventService,\r\n        public generateComponentViewService: GenerateComponentViewService\r\n    ) {\r\n        this.newForm()\r\n    }\r\n\r\n    set form(form: UntypedFormGroup) {\r\n        this.currentForm = form;\r\n    }\r\n\r\n    get form(): UntypedFormGroup {\r\n        return this.currentForm\r\n    }\r\n\r\n    get styleCompact(): boolean {\r\n        return this._styleCompact\r\n    }\r\n\r\n    getAppearance(): InputFieldAppearance {\r\n        return this._appearance\r\n    }\r\n\r\n    get configInputsForm(): ConfigInputComponent[] {\r\n        return this._configInputsForm\r\n    }\r\n\r\n    newForm() {\r\n        this.currentForm = this.fb.group({});\r\n\r\n        this._configInputsForm.splice(0, this._configInputsForm.length)\r\n\r\n        this.identityForm(this.helperService.generateGuid())\r\n\r\n        return this;\r\n    }\r\n\r\n    appearance(value: InputFieldAppearance) {\r\n        this._appearance = value\r\n\r\n        return this;\r\n    }\r\n\r\n    identityForm(id: string, name?: string) {\r\n        this.formId = id;\r\n\r\n        this.formName = name;\r\n\r\n        this.currentForm.addControl(DefaultConfigComponent.form.keyId, new UntypedFormControl(id))\r\n\r\n        return this;\r\n    }\r\n\r\n    setViewContainerRef(containerRef: ViewContainerRef) {\r\n        this.generateComponentViewService.setViewContainerRef(containerRef)\r\n\r\n        return this;\r\n    }\r\n\r\n    addInput<InputName extends string, ReturnType extends AddInput<this, InputName>>(\r\n        inputName: Exclude<InputName, InputNames>,\r\n        configBuilder: (b: InputConfigBuilder<this>) => InputConfigBuilder<this>\r\n    ): ReturnType {\r\n\r\n        const builder = configBuilder(new InputConfigBuilder);\r\n\r\n        /** on formalise la configuration du champ input */\r\n        const configInputComponent: ConfigInputComponent = {\r\n            type: builder._type,\r\n            formGroup: this.currentForm,\r\n            nameControl: inputName,\r\n            nameLabel: builder._nameLabel,\r\n            dataSource: builder._dataSource,\r\n            inRelationWith: builder._inRelationWith,\r\n            styleCompact: builder._styleCompact ? builder._styleCompact : this.styleCompact,\r\n            icon: builder._icon,\r\n            maxlength: builder._maxlength,\r\n            appearance: builder._appearance ? builder._appearance : this._appearance,\r\n            callbackComponent: builder._callbackComponent,\r\n            validators: []\r\n        };\r\n\r\n        /** on traite la validation du champ input */\r\n\r\n        if (builder._isRequired) {\r\n            configInputComponent.validators.push(ValidatorsService.require)\r\n        }\r\n\r\n        this._configInputsForm.push(configInputComponent)\r\n\r\n        this.generateComponentViewService.addComponentToView(configInputComponent.type, configInputComponent, builder._callbackComponent);\r\n\r\n        return this as FormBuilderService as ReturnType;\r\n    }\r\n\r\n    /** Déclenche manuellement la création des champs dans la vue */\r\n    generateFormInView() {\r\n        if (this.generateComponentViewService.getViewContainerRef()) {\r\n            this._configInputsForm.forEach((conf: ConfigInputComponent) => {\r\n                this.generateComponentViewService.addComponentToView(conf.type, conf, conf.callbackComponent);\r\n            })\r\n        }\r\n        return this\r\n    }\r\n\r\n    addButton<ButtonName extends string>(\r\n        buttonName: Exclude<ButtonName, ButtonNames>,\r\n        configBuilder: (b: ButtonConfigBuilder<this>) => ButtonConfigBuilder<this>\r\n    ) {\r\n\r\n        const builder = configBuilder(new ButtonConfigBuilder);\r\n\r\n        const configInputComponent: ButtonComponentInputs = {\r\n            text: buttonName,\r\n            type: builder._type,\r\n            icon: builder._icon,\r\n            url: builder._url,\r\n            openNewTab: builder._openNewTab,\r\n            className: builder._className,\r\n            iconPosition: builder._iconPosition,\r\n            onClickSubmit: this.onClickSubmit.bind(this)\r\n        };\r\n\r\n        if (builder._type === TypeButtonEnum.LINK) {\r\n            this.generateComponentViewService.addComponentToView(FormInputComponents.LINK, configInputComponent, builder._callbackComponent);\r\n        } else {\r\n            this.generateComponentViewService.addComponentToView(FormInputComponents.BUTTON, configInputComponent, builder._callbackComponent);\r\n        }\r\n\r\n        return this as FormBuilderService;\r\n    }\r\n\r\n    onClickSubmit() {\r\n        this.broadcastEventService.broadcast({ eventKeys: [ConfigEvents.FORM_SUBMITTED, this.formId], eventData: this.form })\r\n    }\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root',\r\n})\r\nexport class GenerateComponentViewService {\r\n    private formContainerRef: ViewContainerRef;\r\n\r\n    constructor(private injectComponentService: InjectComponentService) {\r\n    }\r\n\r\n    setViewContainerRef(containerRef: ViewContainerRef) {\r\n        this.formContainerRef = containerRef;\r\n\r\n        return this;\r\n    }\r\n\r\n    getViewContainerRef(): ViewContainerRef {\r\n        return this.formContainerRef\r\n    }\r\n\r\n    addComponentToView(componentType: FormInputComponents, configComponent: ConfigComponentInputs, callback: OutputCallback) {\r\n\r\n        if (!this.getViewContainerRef()) return;\r\n\r\n        const componentToAdd = this.returnComponentClassFromType(componentType);\r\n\r\n        this.injectComponentService.loadAndAddComponentToContainer(componentToAdd, this.formContainerRef,\r\n            { config: configComponent }, callback\r\n        );\r\n    }\r\n\r\n    private returnComponentClassFromType(typeOfComponent: FormInputComponents) {\r\n        if (!ClasseComponents.hasOwnProperty(typeOfComponent)) {\r\n            const error: string = `This type of component : '${typeOfComponent}' doesn't exist`;\r\n            throw new Error(error);\r\n        } else {\r\n            return ClasseComponents[typeOfComponent];\r\n        }\r\n    }\r\n}\r\n","import { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n  AssembleFilePartsCommand,\r\n  ConfigAPIsFile,\r\n  FilePartCommand,\r\n  HttpService,\r\n  NewFileCommand,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, last, map, tap } from 'rxjs/operators';\r\nimport SparkMD5 from 'spark-md5';\r\n\r\nimport { DefaultConfigComponent } from '../../config/config.components';\r\n\r\n\r\ninterface FileReaderEventTarget extends EventTarget {\r\n  result: string;\r\n}\r\n\r\ninterface FileReaderEvent extends Event {\r\n  target: FileReaderEventTarget;\r\n  getMessage(): string;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: \"root\"\r\n})\r\nexport class UploaderService {\r\n  public progressSource = new BehaviorSubject<number>(0);\r\n  public fileUploaded$: Subject<any> = new Subject<any>();\r\n  public fileOnError$: Subject<any> = new Subject<any>();\r\n  public apisFile: ConfigAPIsFile;\r\n  chunkSize: number;\r\n  file: File;\r\n\r\n  constructor(\r\n    private httpService: HttpService,) {\r\n    this.chunkSize = DefaultConfigComponent.upload.chunkSize;\r\n  }\r\n\r\n  uploadFile(file: File) {\r\n    this.file = file\r\n\r\n    const numberParts = this.getNumberPart(file);\r\n\r\n    this.convertFileToArrayBuffer(file).subscribe(\r\n      (fileArrayBuffer: ArrayBuffer) => {\r\n        if (numberParts === 1) {\r\n          this.handleFullFile(fileArrayBuffer, numberParts)\r\n        } else {\r\n          this.handlePartsFile(fileArrayBuffer, numberParts)\r\n        }\r\n      }\r\n    )\r\n  }\r\n\r\n  private handleFullFile(fileArrayBuffer: ArrayBuffer, numberParts: number) {\r\n    this.sendFull(fileArrayBuffer, numberParts).pipe(\r\n      tap((fileId: string) => {\r\n        this.fileUploaded$.next(fileId)\r\n      }),\r\n    ).subscribe()\r\n  }\r\n\r\n  private handlePartsFile(fileArrayBuffer: ArrayBuffer, numberParts: number) {\r\n    /** send first part then the others */\r\n    this.sendFull(this.getPart(fileArrayBuffer, 0), numberParts).subscribe((datas: any) => {\r\n      const fileId: string = datas.value\r\n\r\n      this.loopParts(numberParts, fileId, fileArrayBuffer).then(() => {\r\n        this.endCommand(fileId, fileArrayBuffer).subscribe(_ => {\r\n          this.fileUploaded$.next(fileId)\r\n        })\r\n      })\r\n    })\r\n  }\r\n\r\n  private async loopParts(numberParts: number, fileId: string, fileArrayBuffer: any) {\r\n    for (var iPart = 1; iPart < numberParts; iPart++) {\r\n      await this.sendPart(fileId, iPart, this.getPart(fileArrayBuffer, iPart), numberParts)\r\n    }\r\n  }\r\n\r\n\r\n  private sendFull(buffer: ArrayBuffer, numberParts: number): Observable<any> {\r\n    const command: NewFileCommand = {\r\n      fileName: this.file.name,\r\n      mimeType: this.file.type,\r\n      numberParts: numberParts,\r\n      base64Content: this.convertToBase64(buffer)\r\n    }\r\n\r\n    return this.sendFile(command, 1, numberParts)\r\n  }\r\n\r\n  private sendPart(fileId: string, partIndex: number, buffer: ArrayBuffer, numberParts: number): Promise<any> {\r\n    const command: FilePartCommand = {\r\n      fileId: fileId,\r\n      partIndex: partIndex,\r\n      mimeType: this.file.type,\r\n      base64Content: this.convertToBase64(buffer)\r\n    }\r\n    return this.sendFile(command, partIndex + 1, numberParts).toPromise()\r\n  }\r\n\r\n  private sendFile(command: NewFileCommand | FilePartCommand, partIndex: number, numberParts: number) {\r\n    return this.UploadFileAPI(command, partIndex, numberParts).pipe(\r\n      map(event => this.getEventMessage(event, partIndex, numberParts)),\r\n      last(),\r\n      catchError(error => {\r\n        this.fileOnError$.next(undefined)\r\n        return of(null)\r\n      })\r\n    );\r\n  }\r\n\r\n  private endCommand(fileId: string, buffer: ArrayBuffer) {\r\n    const command: AssembleFilePartsCommand = {\r\n      fileId: fileId,\r\n      checksum: this.getChecksum(buffer)\r\n    }\r\n    return this.EndUploadPartsFileAPI(command).pipe(\r\n      catchError(error => {\r\n        this.fileOnError$.next(undefined)\r\n        return of(null)\r\n      })\r\n    );\r\n  }\r\n\r\n  private getNumberPart(file: File) {\r\n    return this.chunkSize <= 0\r\n      ? 1\r\n      : Math.ceil(file.size / this.chunkSize);\r\n  }\r\n\r\n  convertFileToArrayBuffer(file: File): Observable<ArrayBuffer> {\r\n    return new Observable((observer) => {\r\n      const reader = new FileReader();\r\n\r\n      reader.readAsArrayBuffer(file);\r\n      reader.onload = function () {\r\n        const arraybuffer = <ArrayBuffer>reader.result;\r\n\r\n        observer.next(arraybuffer)\r\n        observer.complete();\r\n      }\r\n    })\r\n  }\r\n\r\n  convertToBase64(buffer: ArrayBuffer) {\r\n    let binary = \"\";\r\n    let bytes = new Uint8Array(buffer);\r\n    let len = bytes.byteLength;\r\n    for (let i = 0; i < len; i++) {\r\n      binary += String.fromCharCode(bytes[i]);\r\n    }\r\n    return window.btoa(binary);\r\n  }\r\n\r\n  getPart(data: ArrayBuffer, partIndex: number): ArrayBuffer {\r\n    const start = partIndex * this.chunkSize;\r\n    const end = start + this.chunkSize;\r\n\r\n    return data.slice(start, Math.min(end, data.byteLength));\r\n  }\r\n\r\n  getChecksum(data: ArrayBuffer) {\r\n    const spark = new SparkMD5.ArrayBuffer();\r\n    spark.append(data);\r\n    return btoa(spark.end(true));\r\n  }\r\n\r\n  private getEventMessage(event: HttpEvent<any>, partIndex: number, numberParts: number) {\r\n    switch (event.type) {\r\n      case HttpEventType.Sent:\r\n        return this.progressSource.next(Math.round((partIndex / numberParts) * 100));\r\n\r\n      case HttpEventType.UploadProgress:\r\n        return `progress...`;\r\n\r\n      case HttpEventType.Response:\r\n        return event.body;\r\n\r\n      default:\r\n        return `default...`;\r\n    }\r\n  }\r\n\r\n  /** APIs */\r\n\r\n  UploadFileAPI(datas: NewFileCommand | FilePartCommand, partIndex: number, numberParts: number): Observable<any> {\r\n    let apiFile: string = this.apisFile.apiFile()\r\n\r\n    if (numberParts > 1 && partIndex > 1) apiFile = `${apiFile}/${(<FilePartCommand>datas).fileId}/parts`\r\n\r\n    return this.httpService.upload(apiFile, datas)\r\n  }\r\n\r\n  EndUploadPartsFileAPI(datas: AssembleFilePartsCommand): Observable<any> {\r\n    const apiFile: string = this.apisFile.apiFile()\r\n\r\n    return this.httpService.patch(`${apiFile}/${datas.fileId}/parts`, datas)\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { ErrorStacktraceModel, StacktraceModel } from 'cocori-ng/src/feature-core';\r\nimport { filter, Subscription } from 'rxjs';\r\n\r\n// import {\r\n//   ToastErrorStacktraceComponent,\r\n// } from '../../shared/component/toast-error-stacktrace/toast-error-stacktrace.component';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ToastMessageService {\r\n\r\n  private classCss: string[] = [\"succesToast\", \"errorToast\", \"infoToast\"];\r\n  private callback: Function;\r\n  private toastRef: any;\r\n  private buttonAction: string = 'Fermer'\r\n\r\n  defaultDuration: number = 5000;\r\n  defaultErrorDuration: number = 0;\r\n\r\n  subscription: Subscription;\r\n\r\n  constructor(\r\n    private toast: MatSnackBar,\r\n    public router: Router,) {\r\n    this.onChangeUrl()\r\n  }\r\n\r\n  private onChangeUrl() {\r\n    this.router.events\r\n      .pipe(\r\n        filter((event) => event instanceof NavigationStart),\r\n        filter(() => !!this.toastRef),\r\n      )\r\n      .subscribe(() => this.dismiss())\r\n  }\r\n\r\n  success(message: string, callback?: () => void, duration: number = this.defaultDuration) {\r\n    this.messageHandler(callback, message, 0, duration, null);\r\n  }\r\n\r\n  error(message: string, callback?: () => void, duration: number = this.defaultErrorDuration) {\r\n    this.messageHandler(callback, message, 1, duration, this.buttonAction);\r\n  }\r\n\r\n  // https://stackblitz.com/edit/snackbar-with-html-so?file=app%2Fhome-page%2Fhome-page.component.ts\r\n  errorStacktrace(message: string, stacktrace?: StacktraceModel, callback?: () => void, duration: number = this.defaultErrorDuration) {\r\n    const errorStacktrace: ErrorStacktraceModel = { message: message, stacktrace: stacktrace };\r\n\r\n    // const options = {\r\n    //   'panelClass': this.classCss[messageStyle],\r\n    //   'duration': !duration ? 0 : duration,\r\n    //   'verticalPosition': position\r\n    // }\r\n\r\n    // this.toastRef = this.toast.openFromComponent(ToastErrorStacktraceComponent, { data: errorStacktrace, 'panelClass': this.classCss[1] });\r\n\r\n    this.onDismiss();\r\n  }\r\n\r\n  info(message: string, callback?: () => void, duration: number = this.defaultDuration) {\r\n    this.messageHandler(callback, message, 2, duration, null);\r\n  }\r\n\r\n  private messageHandler(callback: () => void, message: string, messageStyle: number, duration: number, buttonActionText: string, position: MatSnackBarVerticalPosition = 'bottom') {\r\n    this.callback = callback;\r\n\r\n    const options = {\r\n      'panelClass': this.classCss[messageStyle],\r\n      'duration': !duration ? 0 : duration,\r\n      'verticalPosition': position\r\n    }\r\n\r\n    this.toastRef = this.toast.open(message, buttonActionText, options);\r\n\r\n    this.onDismiss();\r\n  }\r\n\r\n  private onDismiss() {\r\n    if (this.subscription) this.subscription.unsubscribe();\r\n\r\n    this.subscription = this.toastRef.afterDismissed().subscribe(() => {\r\n      if (this.callback) this.callback();\r\n    });\r\n  }\r\n\r\n  dismiss() {\r\n    this.toast.dismiss();\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport {\r\n  ColumnDatagridModel,\r\n  ConfigDatagridModel,\r\n  DatasourceService,\r\n  HelperService,\r\n  Odata,\r\n  OrderColumnModel,\r\n  PageIndicators,\r\n  QueryBuilder,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { BehaviorSubject, from, Observable, of, Subject } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class DatagridService {\r\n  private _nextPage$: Subject<void> = new Subject<void>();\r\n  private _previousPage$: Subject<void> = new Subject<void>();\r\n  private _resetColumnExcept$: Subject<string> = new Subject<string>();\r\n  private _updateColumn$: Subject<ColumnDatagridModel> = new Subject<ColumnDatagridModel>();\r\n  private _reOrderColumns$: Subject<OrderColumnModel> = new Subject<OrderColumnModel>();\r\n  private _lengthDataSource$: BehaviorSubject<number> = new BehaviorSubject<number>(0);\r\n  public rowSelectedByClickEvent$: Subject<any> = new Subject<any>();\r\n  public rowCheckedEvent$: Subject<any> = new Subject<any>();\r\n  public rowsDeletedEvent$: Subject<any> = new Subject<any>();\r\n  public rowsRestoredEvent$: Subject<any> = new Subject<any>();\r\n  public allRowsChecked$: Subject<boolean> = new Subject<boolean>();\r\n  public refreshNeeded$: Subject<void> = new Subject<void>();\r\n\r\n  public checkboxesDatagridForm: UntypedFormGroup;\r\n  public rowsSelectedDatagrid: string[] = [] /** array avec tous les ids des lignes sélectionnées dans la grille */\r\n  public config: ConfigDatagridModel;\r\n\r\n  public itemsPerPage: number = 10\r\n  public currentPage: number = 1\r\n  public totalRows: number = 0;\r\n  public indicatorPage: PageIndicators;\r\n  public searchGlobal: string;\r\n\r\n  constructor(\r\n    private datasourceService: DatasourceService,\r\n    private helperService: HelperService,\r\n    private fb: UntypedFormBuilder,) {\r\n    this.onPaginatePage()\r\n  }\r\n\r\n  private onPaginatePage() {\r\n    this.onNextPage()\r\n\r\n    this.onPreviousPage()\r\n  }\r\n\r\n  private onNextPage() {\r\n    this.nextPage$.pipe(\r\n      tap(_ => this.currentPage = this.currentPage + 1),\r\n      tap(_ => this.refreshNeeded$.next()),\r\n    ).subscribe()\r\n  }\r\n\r\n  private onPreviousPage() {\r\n    this.previousPage$.pipe(\r\n      tap(_ => this.currentPage = this.currentPage - 1),\r\n      tap(_ => this.refreshNeeded$.next()),\r\n    ).subscribe()\r\n  }\r\n\r\n  get resetColumnExcept$() {\r\n    return this._resetColumnExcept$;\r\n  }\r\n\r\n  get updateColumn$() {\r\n    return this._updateColumn$;\r\n  }\r\n\r\n  get reOrderColumns$() {\r\n    return this._reOrderColumns$;\r\n  }\r\n\r\n  get nextPage$() {\r\n    return this._nextPage$;\r\n  }\r\n\r\n  get previousPage$() {\r\n    return this._previousPage$;\r\n  }\r\n\r\n  get lengthDataSource$() {\r\n    return this._lengthDataSource$;\r\n  }\r\n\r\n  lengthDataSource(rowsLength: number) {\r\n    this.totalRows = rowsLength\r\n\r\n    this.calculPaginationDatas();\r\n\r\n    this.lengthDataSource$.next(rowsLength)\r\n  }\r\n\r\n  initCheckboxesDatagridForm() {\r\n    this.checkboxesDatagridForm = this.fb.group({});\r\n\r\n    this.checkboxesDatagridForm.addControl(\"selectAllRowsCheckbox\", new UntypedFormControl(false))\r\n    this.checkboxesDatagridForm.addControl(\"rowsCheckbox\", new UntypedFormArray([]))\r\n  }\r\n\r\n  checkUncheckAllRows(value: boolean) {\r\n    this.allRowsChecked$.next(value)\r\n  }\r\n\r\n  getAllDatas(): Observable<Odata<any>> {\r\n    if (!this.config.dataSource) return <Observable<Odata<any>>>of(null);\r\n\r\n    const queryString: string = this.buildQueryStringOData();\r\n\r\n    // return this.httpService.get(api, {$filter: filter, $top: 20})\r\n    return this.datasourceService.loadDataSource(this.config.dataSource, queryString)\r\n\r\n    // switch (this.config.dataSource.type) {\r\n    //   case DataSourceType.BRUTE:\r\n    //     return <Observable<DatasourceOdata>>of(<DatasourceOdata>this.config.dataSource.value).pipe(delay(1000))\r\n    //     break;\r\n    //   case DataSourceType.API:\r\n    //     // return this.httpService.get(api, {$filter: filter, $top: 20})\r\n    //     return this.httpService.get(<string>this.config.dataSource.value)\r\n    //     break;\r\n    //   default:\r\n    //     return <Observable<DatasourceOdata>>of(null)\r\n    //     break;\r\n    // }\r\n  }\r\n\r\n  public storeIdsRowsSelected(rowValues: any, checkValue: boolean) {\r\n    const rowId: string = rowValues.id\r\n    const indexIdFound: number = this.rowsSelectedDatagrid.findIndex((id: string) => id === rowId)\r\n\r\n    if (checkValue && indexIdFound === -1) {\r\n      this.rowsSelectedDatagrid.push(rowId)\r\n      this.rowCheckedEvent$.next(rowValues)\r\n    } else if (!checkValue && indexIdFound !== -1) {\r\n      this.rowsSelectedDatagrid = this.helperService.removeValueFromArrayByIndex(this.rowsSelectedDatagrid, indexIdFound)\r\n      this.rowCheckedEvent$.next(rowValues)\r\n    }\r\n  }\r\n\r\n  private buildQueryStringOData(): string {\r\n\r\n    const orderByQuery: string = this.generateSortQuery()\r\n\r\n    this.calculPaginationDatas();\r\n\r\n    let queryBuider = new QueryBuilder()\r\n      .top(this.itemsPerPage)\r\n      .skip(this.indicatorPage.from)\r\n\r\n    if (orderByQuery) queryBuider = queryBuider.orderBy(orderByQuery)\r\n\r\n    queryBuider = this.generateFilterQuery(queryBuider)\r\n\r\n    const queryString = queryBuider.toQuery()\r\n\r\n    console.log(\"queryString : \", queryString);\r\n\r\n    return queryString;\r\n  }\r\n\r\n  private calculPaginationDatas() {\r\n    let valueTo: number = this.currentPage * this.itemsPerPage;\r\n\r\n    if (this.currentPage === 1 && this.totalRows < this.itemsPerPage) {\r\n      valueTo = this.totalRows;\r\n    }\r\n\r\n    this.indicatorPage = { from: (this.currentPage - 1) * this.itemsPerPage, to: valueTo };\r\n  }\r\n\r\n  private generateSortQuery() {\r\n    const sortQuery: string = this.config.columns\r\n      .filter((column: ColumnDatagridModel) => column.sort === 'ASC' || column.sort === 'DESC')\r\n      .map(function (elem: ColumnDatagridModel) {\r\n        return `${elem.dataField.toLowerCase()} ${elem.sort.toLowerCase()}`;\r\n      }).join(\",\");\r\n\r\n    return sortQuery\r\n  }\r\n\r\n  private generateFilterQuery(qb: QueryBuilder) {\r\n    /** OR */\r\n    // qb\r\n    //   .filter(\r\n    //     f => {\r\n    //       // for (let index = 0; index < 3; index++) {\r\n    //         f.filterPhrase(`contains('ferrari1') or contains('ferrari2')`)\r\n    //       // }\r\n    //       return f\r\n    //     }\r\n    //   )\r\n\r\n    /** AND */\r\n    // qb\r\n    //   .filter(\r\n    //     f => {\r\n    //       for (let index = 0; index < 3; index++) {\r\n    //         f.filterPhrase(`contains('ferrari1')`)\r\n    //       }\r\n    //       return f\r\n    //     }\r\n    //   )\r\n\r\n\r\n    let filterQuery: string = '';\r\n\r\n    let tabFilters: string[] = []\r\n    let cpt = 0\r\n\r\n    this.config.columns.forEach((column: ColumnDatagridModel) => {\r\n\r\n      let tabFiltersLength: number = tabFilters.length;\r\n\r\n      if (column.filters) {\r\n        \r\n        if (cpt === 1) {\r\n          tabFilters[0] = `(${tabFilters[0]})`\r\n        }\r\n\r\n        tabFilters = this.setBooleanColumnFilters(tabFilters, column, cpt)\r\n      }\r\n\r\n      if (tabFilters.length === tabFiltersLength + 1) cpt++\r\n    })\r\n\r\n    filterQuery = this.joinFiltersQuery(filterQuery, this.setBlocFilters(tabFilters))\r\n\r\n    if (this.searchGlobal) {\r\n      let filterSearchGlobal: string = this.config.columns\r\n        .filter((column: ColumnDatagridModel) => column.dataType === 'string')\r\n        .map((elem: ColumnDatagridModel) => {\r\n          return `(contains(${elem.dataField}, '${this.searchGlobal}'))`;\r\n        }).join(\" or \")\r\n\r\n      filterSearchGlobal = filterSearchGlobal ? `(${filterSearchGlobal})` : ''\r\n\r\n      filterQuery = this.joinFiltersQuery(filterQuery, filterSearchGlobal)\r\n    }\r\n\r\n    if (filterQuery) {\r\n      qb\r\n        .filter(\r\n          f => f.filterPhrase(filterQuery)\r\n        )\r\n    }\r\n\r\n    return qb\r\n  }\r\n\r\n  private joinFiltersQuery(filterQuery, newFilters: string): string {\r\n    if (filterQuery === '' || newFilters === '') return filterQuery || newFilters\r\n\r\n    return `${[filterQuery, newFilters].join(\" and \")}`\r\n  }\r\n\r\n  private setBlocFilters(tabFilters: string[]): string {\r\n\r\n    if (!tabFilters.length) return ''\r\n\r\n    const filtersToString: string = tabFilters.join(\" and \")\r\n\r\n    return `(${filtersToString})`\r\n  }\r\n\r\n  private setBooleanColumnFilters(tabFilters: string[], column: ColumnDatagridModel, cpt: number): string[] {\r\n\r\n    if (column.dataType === 'boolean') {\r\n\r\n      if (!column.filters.selectAll) {\r\n\r\n        if (column.filters.nestedValues.allSelected) {\r\n          tabFilters.push(`${column.dataField} eq true`)\r\n        } else if (column.filters.nestedValues.noSelected) {\r\n          tabFilters.push(`${column.dataField} eq false`)\r\n        }\r\n\r\n        if (cpt >= 1) {\r\n          tabFilters[cpt] = `(${tabFilters[cpt]})`\r\n        }\r\n      }\r\n    }\r\n\r\n    return tabFilters\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostListener,\r\n  Inject,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ModalOptionsModel } from 'cocori-ng/src/feature-core';\r\n\r\nimport { FormBuilderService } from '../../../../core/service/form-builder/form-builder.service';\r\n\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-confirm-modal',\r\n  templateUrl: './cocoring-confirm-modal.component.html',\r\n  styleUrls: ['./cocoring-confirm-modal.component.scss']\r\n})\r\nexport class CocoringConfirmModalComponent implements OnInit {\r\n  @ViewChild('FormContainerRef', { static: true, read: ViewContainerRef }) formContainerRef: ViewContainerRef;\r\n\r\n  formulaire: UntypedFormGroup;\r\n\r\n  constructor(\r\n    @Inject(MAT_DIALOG_DATA) public data: ModalOptionsModel,\r\n    private fb: UntypedFormBuilder,\r\n    private mdDialogRef: MatDialogRef<CocoringConfirmModalComponent>,\r\n    private formBuilderService: FormBuilderService) {\r\n    this.formulaire = this.fb.group({})\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this.data.withForm) {\r\n      this.buildForm();\r\n    }\r\n  }\r\n\r\n  private buildForm() {\r\n    this.formulaire = this.formBuilderService\r\n      .setViewContainerRef(this.formContainerRef)\r\n      .generateFormInView()\r\n      .form;\r\n  }\r\n\r\n  public cancel() {\r\n    this.close(false);\r\n  }\r\n\r\n  public close(value) {\r\n    this.mdDialogRef.close(value);\r\n  }\r\n\r\n  public confirm() {\r\n    this.close(true);\r\n  }\r\n\r\n  @HostListener(\"keydown.esc\")\r\n  public onEsc() {\r\n    this.close(false);\r\n  }\r\n\r\n  public validateFrom({ value, valid }: { value: any, valid: boolean }) {\r\n\r\n    this.formBuilderService.onClickSubmit()\r\n\r\n    if (!valid) return;\r\n\r\n    console.log(\"values\", value);\r\n\r\n    this.close(value);\r\n  }\r\n}\r\n","<div class=\"header\">\r\n    <h1 mat-dialog-title>{{ data.title }}</h1>\r\n</div>\r\n<form [formGroup]=\"formulaire\" (ngSubmit)=\"validateFrom(formulaire)\">\r\n    <div mat-dialog-content>\r\n        <p class=\"dialog-message\" [innerHtml]=\"data.message | variableHtml\"></p>\r\n        <ng-template #FormContainerRef></ng-template>\r\n    </div>\r\n    <div mat-dialog-actions>\r\n        <button mat-button type=\"button\" (click)=\"cancel()\">{{ data.cancelText }}</button>\r\n        <button *ngIf=\"data.withForm === false\" mat-button type=\"button\" (click)=\"confirm()\" cdkFocusInitial>{{\r\n            data.confirmText }}</button>\r\n        <button *ngIf=\"data.withForm\" mat-button type=\"submit\" cdkFocusInitial>{{ data.confirmText }}</button>\r\n    </div>\r\n</form>","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { ModalOptionsModel } from 'cocori-ng/src/feature-core';\r\nimport { Observable } from 'rxjs';\r\nimport { map, take } from 'rxjs/operators';\r\n\r\nimport { CocoringConfirmModalComponent } from '../../shared/component/modal/confirm-modal/cocoring-confirm-modal.component';\r\n\r\n@Injectable({\r\n    providedIn: 'root',\r\n})\r\nexport class ConfirmModalService {\r\n    dialogRef: MatDialogRef<CocoringConfirmModalComponent>;\r\n\r\n    constructor(private dialog: MatDialog) { }\r\n\r\n    public open(options: ModalOptionsModel) {\r\n        this.dialogRef = this.dialog.open(CocoringConfirmModalComponent, {\r\n            data: <ModalOptionsModel>{\r\n                withForm: options.withForm,\r\n                title: options.title,\r\n                message: options.message,\r\n                cancelText: options.cancelText,\r\n                confirmText: options.confirmText\r\n            }\r\n        });\r\n    }\r\n\r\n    public confirmed<T>(): Observable<T> {\r\n        return this.dialogRef.afterClosed().pipe(\r\n            take(1),\r\n            map((res: T) => {\r\n                return res;\r\n            }\r\n            ));\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MediaChange } from '@angular/flex-layout';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FlexLayoutService {\r\n  public getAlias = (MediaChange: MediaChange[]) => {\r\n    return MediaChange[0].mqAlias;\r\n  }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2 } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\n\r\ndeclare var ColorPicker: any\r\n\r\n/** doc du plugin Js : https://www.cssscript.com/chrome-devtools-color-picker/ */\r\n\r\n@Directive({\r\n    selector: '[cocoring-colorpicker]',\r\n})\r\nexport class CocoringColorpickerDirective implements AfterViewInit {\r\n\r\n    @Input('cocoring-colorpicker') color!: string\r\n\r\n    @Output('onColorChange') colorChangeEmitter: EventEmitter<string> = new EventEmitter();\r\n\r\n    defaultColor: string = '#1ddaf7';\r\n\r\n    /**\r\n     * The directive's constructor\r\n     */\r\n    public constructor(\r\n        private elementRef: ElementRef<HTMLElement>,\r\n        private renderer: Renderer2,\r\n    ) { }\r\n\r\n    ngAfterViewInit() {\r\n        const elem = this.elementRef.nativeElement;\r\n\r\n        let picker = new ColorPicker(elem, this.color ? this.color : this.defaultColor);\r\n\r\n        fromEvent(elem, 'colorChange').pipe(\r\n            debounceTime(400),\r\n            map((event: any) => event.detail.color)\r\n        ).subscribe((color: string) => {\r\n            this.colorChangeEmitter.emit(color);\r\n        });\r\n\r\n        // elem.addEventListener('colorChange', (event: any) => {\r\n        //     this.colorChangeEmitter.emit(event.detail.color);\r\n        // });\r\n    }\r\n\r\n    @HostListener(\"click\", [\"$event\"])\r\n    public onClick(event: any): void {\r\n        event.stopPropagation();\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringColorpickerDirective } from './cocoring-colorpicker.directive';\r\n\r\n@NgModule({\r\n    declarations: [CocoringColorpickerDirective],\r\n    imports: [],\r\n    exports: [CocoringColorpickerDirective]\r\n})\r\nexport class CocoringColorpickerModule { }","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: 'img[default]',\r\n})\r\nexport class CocoringDefaultImageDirective {\r\n    @Input()\r\n    default: string;\r\n\r\n    @HostListener('error')\r\n    onError() {\r\n        this.src = this.default || \"https://www.fortunehotels.in/images/404img.jpg\";\r\n    }\r\n\r\n    @HostBinding('src')\r\n    @Input()\r\n    src: string;\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringDefaultImageDirective } from './cocoring-default-image.directive';\r\n\r\n@NgModule({\r\n    declarations: [CocoringDefaultImageDirective],\r\n    imports: [],\r\n    exports: [CocoringDefaultImageDirective]\r\n})\r\nexport class CocoringDefaultImageModule { }","import { Location } from '@angular/common';\r\nimport { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[cocoring-previousPage]'\r\n})\r\nexport class CocoringPreviousPageDirective {\r\n    constructor(private location: Location) { }\r\n\r\n    @HostListener('click')\r\n    onClick() {\r\n        this.location.back();\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringPreviousPageDirective } from './cocoring-previous-page.directive';\r\n\r\n@NgModule({\r\n    declarations: [CocoringPreviousPageDirective],\r\n    imports: [],\r\n    exports: [CocoringPreviousPageDirective]\r\n})\r\nexport class CocoringPreviousPageModule { }","import { Directive } from '@angular/core';\r\n\r\nimport { DatagridService } from '../../../core';\r\n\r\n@Directive({\r\n    selector: '[cocoring-datagrid-group]',\r\n    providers: [DatagridService]\r\n})\r\nexport class CocoringDatagridGroupDirective { }","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringVariableHtmlPipe } from './cocoring-variable-html.pipe';\r\n\r\n@NgModule({\r\n    declarations: [CocoringVariableHtmlPipe],\r\n    imports: [],\r\n    exports: [CocoringVariableHtmlPipe]\r\n})\r\nexport class CocoringVariableHtmlModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/** https://gist.github.com/JonCatmull/ecdf9441aaa37336d9ae2c7f9cb7289a */\r\n\r\ntype unit = 'octets' | 'Ko' | 'Mo' | 'Go' | 'To' | 'Po';\r\ntype unitPrecisionMap = {\r\n    [u in unit]: number;\r\n};\r\n\r\nconst defaultPrecisionMap: unitPrecisionMap = {\r\n    octets: 0,\r\n    Ko: 0,\r\n    Mo: 1,\r\n    Go: 1,\r\n    To: 2,\r\n    Po: 2\r\n};\r\n\r\n/*\r\n * Convert bytes into largest possible unit.\r\n * Takes an precision argument that can be a number or a map for each unit.\r\n * Usage:\r\n *   bytes | fileSize:precision\r\n * @example\r\n * // returns 1 KB\r\n * {{ 1500 | fileSize }}\r\n * @example\r\n * // returns 2.1 GB\r\n * {{ 2100000000 | fileSize }}\r\n * @example\r\n * // returns 1.46 KB\r\n * {{ 1500 | fileSize:2 }}\r\n */\r\n@Pipe({ name: 'fileSize' })\r\nexport class CocoringFileSizePipe implements PipeTransform {\r\n    private readonly units: unit[] = ['octets', 'Ko', 'Mo', 'Go', 'To', 'Po'];\r\n\r\n    transform(bytes: number = 0, precision: number | unitPrecisionMap = defaultPrecisionMap): string {\r\n        if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '?';\r\n\r\n        let unitIndex = 0;\r\n\r\n        while (bytes >= 1024) {\r\n            bytes /= 1024;\r\n            unitIndex++;\r\n        }\r\n\r\n        const unit = this.units[unitIndex];\r\n\r\n        if (typeof precision === 'number') {\r\n            return `${bytes.toFixed(+precision)} ${unit}`;\r\n        }\r\n        return `${bytes.toFixed(precision[unit])} ${unit}`;\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringFileSizePipe } from './cocoring-file-size.pipe';\r\n\r\n@NgModule({\r\n    declarations: [CocoringFileSizePipe],\r\n    imports: [],\r\n    exports: [CocoringFileSizePipe]\r\n})\r\nexport class CocoringFileSizeModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'prettyprint'\r\n})\r\nexport class CocoringPrettyPrintPipe implements PipeTransform {\r\n    transform(val) {\r\n        return JSON.stringify(val, undefined, 4)\r\n            .replace(/ /g, '&nbsp;')\r\n            .replace(/\\n/g, '<br/>');\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringPrettyPrintPipe } from './cocoring-pretty-print.pipe';\r\n\r\n@NgModule({\r\n    declarations: [CocoringPrettyPrintPipe],\r\n    imports: [],\r\n    exports: [CocoringPrettyPrintPipe]\r\n})\r\nexport class CocoringPrettyPrintModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'sanitizeUrl',\r\n    pure: false\r\n})\r\nexport class CocoringSanitizeUrlPipe implements PipeTransform {\r\n    constructor(private sanitizer: DomSanitizer) {\r\n    }\r\n    transform(url: string): SafeHtml {\r\n        return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringSanitizeUrlPipe } from './cocoring-sanitize-url.pipe';\r\n\r\n@NgModule({\r\n    declarations: [CocoringSanitizeUrlPipe],\r\n    imports: [],\r\n    exports: [CocoringSanitizeUrlPipe]\r\n})\r\nexport class CocoringSanitizeUrlModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'truncate'\r\n})\r\nexport class CocoringTruncatePipe implements PipeTransform {\r\n    transform(value: string, args: any[]): string {\r\n        const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\r\n        const trail = args.length > 1 ? args[1] : '...';\r\n        return value.length > limit ? value.substring(0, limit) + trail : value;\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringTruncatePipe } from './cocoring-truncate.pipe';\r\n\r\n@NgModule({\r\n    declarations: [CocoringTruncatePipe],\r\n    imports: [],\r\n    exports: [CocoringTruncatePipe]\r\n})\r\nexport class CocoringTruncateModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\nimport { CocoringInputErrorComponent } from './cocoring-input-error.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringInputErrorComponent],\r\n    imports: [\r\n        CommonModule,\r\n        MatFormFieldModule\r\n    ],\r\n    exports: [CocoringInputErrorComponent]\r\n})\r\nexport class CocoringInputErrorModule { }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport {\r\n  ConfigAPIsFile,\r\n  ConfigWysiwygModel,\r\n  FileModel,\r\n  InitWysiwyg,\r\n  PluginsAvailable,\r\n  WysiwygService,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DefaultConfigComponent, UploaderService } from '../../../core';\r\nimport { ExtendInputsComponent } from '../form/inputs/extend-inputs/extend-inputs.component';\r\n\r\n// Doc composant TinyMCE - Angular\r\n// https://www.tiny.cloud/docs/integrations/angular/#supportedangularversions\r\n// file : https://www.tiny.cloud/docs/demo/file-picker/\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-wysiwyg',\r\n  templateUrl: './cocoring-wysiwyg.component.html',\r\n  styleUrls: ['./cocoring-wysiwyg.component.scss'],\r\n  providers: [WysiwygService, UploaderService]\r\n})\r\nexport class CocoringWysiwygComponent extends ExtendInputsComponent implements OnInit {\r\n  initParams: any\r\n  editor: any\r\n  apisFile: ConfigAPIsFile\r\n  fileModel: FileModel = { fileName: null, description: null }\r\n\r\n  @Input() apiKey: string;\r\n  @Input() height: number = 500;\r\n  @Input() inline: boolean = false;\r\n  @Input() menubar: boolean = true;\r\n  @Input() plugins: PluginsAvailable[] = <PluginsAvailable[]>DefaultConfigComponent.wysiwyg.plugins;\r\n  @Input() toolbar: string = DefaultConfigComponent.wysiwyg.toolbar;\r\n  @Input() quickbarsInsert: string = DefaultConfigComponent.wysiwyg.quickbarsInsert;\r\n  callbackFileUplad: any;\r\n  fileUploaded: File;\r\n  uploadImageDialogInstance: any;\r\n\r\n\r\n  @Input()\r\n  set config(config: ConfigWysiwygModel) {\r\n    if (!config) {\r\n      throw new Error(`La config du composant uploader n'est pas correcte... config: ${config}`);\r\n    }\r\n\r\n    this.apiKey = config.apiKey\r\n\r\n    this.apisFile = { apiFile: config.apiFile, apiFileDownload: config.apiFileDownload }\r\n\r\n    this.configInput(config)\r\n\r\n    this.handleParamsWysiwyg(config.params)\r\n\r\n    this.addControlForm();\r\n  }\r\n\r\n  private handleParamsWysiwyg(params: InitWysiwyg) {\r\n    if (!params) return;\r\n\r\n    const height = params.height || this.height\r\n    const inline = params.inline || this.inline\r\n    const menubar = params.menubar || this.menubar\r\n    const plugins = params.plugins || this.plugins\r\n    const quickbars = params.quickbars || this.quickbarsInsert\r\n    const toolbar = params.toolbar ? this.wysiwygService.toolbarOptionsToString(params.toolbar) : this.toolbar\r\n\r\n    this.initParams = {\r\n      placeholder: 'Ecrivez quelque chose',\r\n      toolbar_mode: 'scrolling', // https://www.tiny.cloud/docs/configure/editor-appearance/#toolbar_sticky\r\n      language: 'fr_FR',\r\n      resize: false,\r\n      height: height,\r\n      inline: inline,\r\n      image_advtab: true,\r\n      menubar: 'file edit insert format table tools',\r\n      // menubar: false,\r\n      toolbar: toolbar,\r\n      // toolbar: false,\r\n      contextmenu: false,\r\n      plugins: plugins,\r\n      quickbars_selection_toolbar: 'bold italic underline forecolor backcolor | fontsizeselect | alignleft | aligncenter | alignright | quicklink | removeformat',\r\n      quickbars_insert_toolbar: quickbars,\r\n      image_title: true,\r\n      automatic_uploads: true,\r\n      paste_data_images: true,\r\n      setup: editor => {\r\n        this.editor = editor;\r\n\r\n        editor.on('OpenWindow', (eventDetails) => {\r\n          this.uploadImageDialogInstance = eventDetails.dialog;\r\n        });\r\n\r\n        editor.on('init', () => { });\r\n\r\n        editor.on('change', () => { });\r\n      },\r\n      file_picker_types: 'image',\r\n      // https://www.tiny.cloud/docs/configure/file-image-upload/\r\n      file_picker_callback: (cb, value, meta) => this.filePickerCallback(cb, value, meta)\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    injector: Injector,\r\n    private wysiwygService: WysiwygService,\r\n    public uploaderService: UploaderService,\r\n    private cdr: ChangeDetectorRef) {\r\n    super(injector);\r\n  }\r\n\r\n  ngOnInit(): void {\r\n\r\n    this.uploaderService.apisFile = this.apisFile\r\n\r\n    this.onFileUploaded()\r\n\r\n    this.onError()\r\n\r\n    this.onValueEditorChanged()\r\n  }\r\n\r\n  private filePickerCallback(cb, value, meta) {\r\n    this.callbackFileUplad = cb\r\n\r\n    var input = document.createElement('input');\r\n\r\n    input.setAttribute('type', 'file');\r\n    input.setAttribute('accept', 'image/*');\r\n\r\n    input.onchange = () => {\r\n      this.uploadImageDialogInstance.block('Uploading file...');\r\n\r\n      this.fileUploaded = input.files[0];\r\n\r\n      this.fileModel.fileName = this.fileUploaded.name\r\n\r\n      this.cdr.detectChanges()\r\n\r\n      this.uploaderService.uploadFile(this.fileUploaded)\r\n    }\r\n\r\n    input.click();\r\n  }\r\n\r\n  private onFileUploaded() {\r\n    this.uploaderService.fileUploaded$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((id: string) => this.validateFileValue(id)),\r\n      tap(_ => this.uploadImageDialogInstance.unblock()),\r\n    ).subscribe()\r\n  }\r\n  private onError() {\r\n    this.uploaderService.fileOnError$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap(_ => this.uploadImageDialogInstance.unblock()),\r\n      tap(_ => this.uploadImageDialogInstance.close()),\r\n      tap(_ => {\r\n        this.editor.notificationManager.open({\r\n          text: 'Une erreur est survenue, veuillez réessayer',\r\n          type: 'error'\r\n        });\r\n      }),\r\n    ).subscribe()\r\n  }\r\n\r\n  private onValueEditorChanged() {\r\n    this.formGroup.get(this.nameControl).valueChanges.pipe(\r\n      takeUntil(this.destroy$),\r\n      debounceTime(400),\r\n      tap(_ => this.cdr.detectChanges()),\r\n    ).subscribe()\r\n  }\r\n\r\n  private validateFileValue(id: string) {\r\n    this.fileModel.id = id\r\n\r\n    this.callbackFileUplad(this.apisFile.apiFile(id), { title: this.fileModel.fileName });\r\n  }\r\n}\r\n","<div [formGroup]=\"formGroup\">\r\n  <editor #tinymce [formControlName]=\"nameControl\" [apiKey]=\"apiKey\" [init]=\"initParams\"></editor>\r\n  <mat-error *ngIf=\"formGroup.get(nameControl).errors\" error-handler [form]=\"formGroup\" [controlName]=\"nameControl\">\r\n  </mat-error>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { EditorModule } from '@tinymce/tinymce-angular';\r\n\r\nimport { CocoringInputErrorModule } from '../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringWysiwygComponent } from './cocoring-wysiwyg.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CocoringWysiwygComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    CocoringInputErrorModule,\r\n    EditorModule,\r\n  ],\r\n  exports: [\r\n    CocoringWysiwygComponent\r\n  ],\r\n})\r\nexport class CocoringWysiwygModule { }","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ErrorStacktraceModel } from 'cocori-ng/src/feature-core';\r\n\r\n// https://medium.com/@abshakekumar/snackbar-angular-material-component-with-multiple-actions-88ea3a9d3ddd\r\n@Component({\r\n  selector: 'toast-error-stacktrace',\r\n  styleUrls: ['./toast-error-stacktrace.component.scss'],\r\n  templateUrl: './toast-error-stacktrace.component.html'\r\n})\r\nexport class ToastErrorStacktraceComponent implements OnInit {\r\n\r\n  toggleVisibility : boolean = true;\r\n  errorDebugMessages: string[] = [];\r\n\r\n  constructor(\r\n    private matSnackBar: MatSnackBar,\r\n    @Inject(MAT_SNACK_BAR_DATA) public data: ErrorStacktraceModel\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n    this.errorDebugMessages = <string[]>this.data.stacktrace?.httpError?.error?.debug?.messages\r\n  }\r\n\r\n  afficheCache(){\r\n    this.toggleVisibility = !this.toggleVisibility;\r\n  }\r\n\r\n  close(event): void {\r\n    this.matSnackBar.dismiss();\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  trackBy(index: number) {\r\n    return index;\r\n  }\r\n}\r\n","<div class=\"notification-containeur\">\r\n    <div class=\"container-messages\">\r\n        <div>{{data.message}}</div>\r\n        <div *ngIf=\"data.stacktrace\" class=\"link-plus\" (click)=\"afficheCache()\" title=\"Afficher / masquer les détails techniques de l'erreur\">\r\n\r\n            <div class=\"__link-plus\" *ngIf=\"toggleVisibility; else templateMoins\">\r\n                <div>afficher plus de détails</div>\r\n                <mat-icon>expand_more</mat-icon>\r\n            </div>\r\n            <ng-template #templateMoins>\r\n                <div class=\"__link-plus\">\r\n                    <div>masquer les détails</div>\r\n                    <mat-icon>expand_less</mat-icon>\r\n                </div>\r\n            </ng-template>\r\n        </div>\r\n        <div *ngIf=\"!toggleVisibility\" class=\"stacktrace\">\r\n            <div>Date : {{data.stacktrace.dateError}}</div>\r\n            <div>Status : {{data.stacktrace.httpError?.status}} - Id : {{data.stacktrace.httpError?.error.id}}</div>\r\n            <div *ngIf=\"errorDebugMessages.length\">\r\n                <div *ngFor=\"let message of errorDebugMessages; let i = index; trackBy: trackBy\">{{message}}</div>\r\n            </div>\r\n            <div>\r\n                {{data.stacktrace.httpError?.message}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <button mat-button type=\"button\" class=\"mat-button\" (click)=\"close($event)\">\r\n        <span class=\"mat-button-wrapper\">Fermer</span>\r\n        <div class=\"mat-button-ripple mat-ripple\"></div>\r\n        <div class=\"mat-button-focus-overlay\"></div>\r\n    </button>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { ToastErrorStacktraceComponent } from './toast-error-stacktrace.component';\r\n\r\n@NgModule({\r\n    declarations: [ToastErrorStacktraceComponent],\r\n    imports: [\r\n        CommonModule,\r\n        MatIconModule,\r\n    ],\r\n    exports: [ToastErrorStacktraceComponent]\r\n})\r\nexport class ToastErrorStacktraceModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\nimport { CocoringVariableHtmlModule } from '../../../pipe/variable-html/cocoring-variable-html.module';\r\nimport { CocoringInputErrorModule } from '../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringConfirmModalComponent } from './cocoring-confirm-modal.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringConfirmModalComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatDialogModule,\r\n        MatButtonModule,\r\n        CocoringVariableHtmlModule,\r\n        CocoringInputErrorModule,\r\n    ],\r\n    exports: [\r\n        CocoringConfirmModalComponent,\r\n    ]\r\n})\r\nexport class CocoringConfirmModalModule { }","import { Component, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ButtonSchema } from 'cocori-ng/src/feature-core';\r\n\r\nimport { FormBuilderService } from '../../../../core/service/form-builder/form-builder.service';\r\n\r\n@Component({\r\n    selector: 'cocoring-buttons-group',\r\n    templateUrl: 'cocoring-buttons-group.component.html',\r\n})\r\n\r\nexport class CocoringButtonsGroupComponent implements OnInit {\r\n    @ViewChild('ButtonsContainerRef', { static: true, read: ViewContainerRef }) buttonsContainerRef: ViewContainerRef;\r\n\r\n    @Input()\r\n    set config(buttonsSchema: ButtonSchema[]) {\r\n\r\n        this.buttonsContainerRef.clear();\r\n\r\n        if (!buttonsSchema) return;\r\n\r\n        console.log(\"current form\", this.formBuilderService.form);\r\n        console.log(\"schemaDatasButtons\", buttonsSchema);\r\n\r\n        if (buttonsSchema && buttonsSchema.length) {\r\n            this.buildView(buttonsSchema);\r\n        }\r\n    }\r\n\r\n    constructor(\r\n        public formBuilderService: FormBuilderService) { }\r\n\r\n    ngOnInit() {\r\n    }\r\n\r\n    buildView(buttons: ButtonSchema[]) {\r\n\r\n        const formBuilder: FormBuilderService = this.formBuilderService\r\n            .setViewContainerRef(this.buttonsContainerRef)\r\n\r\n        buttons.forEach((configSchema: ButtonSchema) => {\r\n\r\n            formBuilder\r\n                .addButton(configSchema.text, config => config\r\n                    .isTypeSubmit(configSchema.submit)\r\n                    .outputCallback(this.buttonAddCallback.bind(this)));\r\n        })\r\n    }\r\n\r\n    buttonAddCallback(nameControl: string) {\r\n        console.log(\"Bouton ajouté avec succès : \", nameControl);\r\n    }\r\n}\r\n","<ng-template #ButtonsContainerRef></ng-template>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CocoringButtonsGroupComponent } from './cocoring-buttons-group.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringButtonsGroupComponent],\r\n    imports: [],\r\n    exports: [CocoringButtonsGroupComponent]\r\n})\r\nexport class CocoringButtonsGroupModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { InputIconComponent } from './input-icon.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        InputIconComponent\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        MatButtonModule,\r\n        MatIconModule,\r\n    ],\r\n    exports: [\r\n        InputIconComponent\r\n    ]\r\n})\r\nexport class InputIconModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\nimport { CocoringVariableHtmlModule } from '../../../../pipe/variable-html/cocoring-variable-html.module';\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringCheckboxComponent } from './cocoring-checkbox.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringCheckboxComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatCheckboxModule,\r\n        MatFormFieldModule,\r\n        CocoringInputErrorModule,\r\n        CocoringVariableHtmlModule,\r\n    ],\r\n    exports: [\r\n        CocoringCheckboxComponent,\r\n    ]\r\n})\r\nexport class CocoringCheckboxModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringCheckboxIndeterminateComponent } from './checkbox-indeterminate.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringCheckboxIndeterminateComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        ReactiveFormsModule,\r\n        MatCheckboxModule,\r\n        MatFormFieldModule,\r\n        CocoringInputErrorModule,\r\n    ],\r\n    exports: [\r\n        CocoringCheckboxIndeterminateComponent,\r\n    ]\r\n})\r\nexport class CocoringCheckboxIndeterminateModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringDateComponent } from './cocoring-date.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringDateComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        MatDatepickerModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule,\r\n        NgxMaskModule.forRoot(),\r\n    ],\r\n    exports: [\r\n        CocoringDateComponent,\r\n    ]\r\n})\r\nexport class CocoringDateModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringSlideToggleComponent } from './cocoring-slide-toggle.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringSlideToggleComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        MatSlideToggleModule,\r\n        CocoringInputErrorModule,\r\n    ],\r\n    exports: [\r\n        CocoringSlideToggleComponent,\r\n    ]\r\n})\r\nexport class CocoringSlideToggleModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringEmailComponent } from './cocoring-email.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringEmailComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule,\r\n    ],\r\n    exports: [\r\n        CocoringEmailComponent,\r\n    ]\r\n})\r\nexport class CocoringEmailModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringNumberComponent } from './cocoring-number.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringNumberComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule,\r\n    ],\r\n    exports: [\r\n        CocoringNumberComponent,\r\n    ]\r\n})\r\nexport class CocoringNumberModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringPasswordComponent } from './cocoring-password.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringPasswordComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        InputIconModule,\r\n        MatFormFieldModule,\r\n        MatButtonModule,\r\n        MatIconModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n    ],\r\n    exports: [\r\n        CocoringPasswordComponent\r\n    ]\r\n})\r\nexport class CocoringPasswordModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringSelectComponent } from './cocoring-select.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringSelectComponent],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatSelectModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule,\r\n    ],\r\n    exports: [CocoringSelectComponent]\r\n})\r\nexport class CocoringSelectModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringTextComponent } from './cocoring-text.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringTextComponent,\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule\r\n    ],\r\n    exports: [CocoringTextComponent]\r\n})\r\nexport class CocoringTextModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { InputIconModule } from '../input-icon/input-icon.module';\r\nimport { CocoringTextareaComponent } from './cocoring-textarea.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringTextareaComponent],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n        InputIconModule\r\n    ],\r\n    exports: [CocoringTextareaComponent]\r\n})\r\nexport class CocoringTextareaModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { CocoringInputErrorModule } from '../../../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport { CocoringViewerComponent } from './cocoring-viewer.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringViewerComponent],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        CocoringInputErrorModule,\r\n    ],\r\n    exports: [CocoringViewerComponent]\r\n})\r\nexport class CocoringViewerModule { }","import { Component, EventEmitter, Input, OnDestroy, Output, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport {\r\n    ButtonSchema,\r\n    CommandMappings,\r\n    FieldSchema,\r\n    FormContainerInputs,\r\n    FormSchema,\r\n    MappingBuilderService,\r\n    SubmitDatas,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\nimport { FormBuilderService } from '../../../../core';\r\n\r\n@Component({\r\n    selector: 'cocoring-form-container',\r\n    templateUrl: 'cocoring-form-container.component.html',\r\n    providers: [FormBuilderService, MappingBuilderService]\r\n})\r\n\r\nexport class CocoringFormContainerComponent implements OnDestroy {\r\n    @ViewChild('FormContainerRef', { static: true, read: ViewContainerRef }) formContainerRef: ViewContainerRef;\r\n\r\n    currentForm: UntypedFormGroup;\r\n    schemaDatasForm: FormSchema;\r\n    formBuildedSubject: Subject<boolean>; /** tous les composants fields ont été ajoutés à la vue */\r\n    schemaDatasButtons: ButtonSchema[];\r\n    objectCommand: Object = {};\r\n\r\n    private readonly destroy$ = new Subject();\r\n\r\n    @Input()\r\n    set config(formSchema: FormContainerInputs) {\r\n        if (!formSchema) return;\r\n\r\n        this.schemaDatasForm = formSchema.form;\r\n\r\n        /** todo: filtrer les boutons associés au formulaire en entrée */\r\n        const schemaDatasButtons = formSchema.buttons || [];\r\n\r\n        this.schemaDatasButtons = this.filterButtonsAssociatedToForm(this.schemaDatasForm, \"name\", schemaDatasButtons, \"formName\");\r\n\r\n        this.formBuilderService.newForm();\r\n        this.formContainerRef.clear();\r\n\r\n        this.initEventFormBuilded();\r\n        this.buildCurrentForm();\r\n    }\r\n\r\n    @Output() onComponentReady: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n    @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n    constructor(\r\n        public fb: UntypedFormBuilder,\r\n        public formBuilderService: FormBuilderService,\r\n        public mappingBuilderService: MappingBuilderService\r\n    ) {\r\n        this.formBuilderService.newForm();\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 buildCurrentForm() {\r\n        const formBuilder: FormBuilderService =\r\n            this.formBuilderService\r\n                .identityForm(this.schemaDatasForm.id, this.schemaDatasForm.name)\r\n                .setViewContainerRef(this.formContainerRef);\r\n\r\n        this.schemaDatasForm.fields.forEach((field: FieldSchema) => {\r\n            formBuilder.addInput(field.name, config => config\r\n                .nameLabel(field.label)\r\n                .inRelationWith(<never>field.inRelationWith)\r\n                .dataSource(field.dataSource)\r\n                .typeInput(field.type)\r\n            );\r\n        });\r\n\r\n        /** todo: Utiliser une variable ou direct l'objet */\r\n        this.currentForm = this.formBuilderService.form;\r\n    }\r\n\r\n    /** lorsque tous les composants ont été initialisés avec succès */\r\n    private initEventFormBuilded() {\r\n        this.formBuildedSubject = new Subject<boolean>();\r\n        let formFieldsAdded: number = 0;\r\n\r\n        this.formBuildedSubject.pipe(\r\n            takeUntil(this.destroy$)\r\n        ).subscribe((isBuilded: boolean) => {\r\n            formFieldsAdded++;\r\n\r\n            if (formFieldsAdded === this.schemaDatasForm.fields.length) {\r\n                this.onComponentReady.emit(true);\r\n            }\r\n        })\r\n    }\r\n\r\n    /** composant aijouté au formulaire angular */\r\n    private childAdded(nameControl: string) {\r\n        console.log(\"input ajouté avec succès : \", nameControl)\r\n        this.formBuildedSubject.next(true);\r\n    }\r\n\r\n    validateForm({ value, valid }: { value: Object, valid: boolean }) {\r\n        if (valid) {\r\n            const mappedValues: Object = this.mapFormValues(value);\r\n\r\n            this.onSubmit.emit(<SubmitDatas>{ rawValues: value, mappedValues: mappedValues });\r\n        }\r\n    }\r\n\r\n    private filterButtonsAssociatedToForm<A, KA extends keyof A, B, KB extends keyof B>(objA: A, keyA: KA, objB: B[], keyB: KB): B[] {\r\n        const tabOfB: B[] = [];\r\n\r\n        objB.forEach((B) => {\r\n            if (<unknown>B[keyB] === <unknown>objA[keyA]) {\r\n                tabOfB.push(B);\r\n            }\r\n        })\r\n\r\n        return tabOfB;\r\n    }\r\n\r\n    private mapFormValues(valueForm: Object): Object {\r\n        const commandMappings: CommandMappings[] = this.schemaDatasButtons\r\n            .find((button: ButtonSchema) => button.submit === true)\r\n            ?.commandMappings\r\n\r\n        this.mappingBuilderService.init();\r\n        this.mappingBuilderService.setNameForm = this.schemaDatasForm.name;\r\n        this.mappingBuilderService.valuesForm = valueForm;\r\n\r\n        commandMappings.forEach((mapping: CommandMappings) => {\r\n            this.mappingBuilderService.map(mapping)\r\n        })\r\n\r\n        console.log(\"mapping result\", this.mappingBuilderService.getMapping())\r\n\r\n        return this.mappingBuilderService.getMapping();\r\n    }\r\n}\r\n","<!-- utilier ngTemplateOutlet ex: https://blog.bitsrc.io/component-reusability-techniques-with-angular-727a6c603ad2 -->\r\n\r\n<form [formGroup]=\"currentForm\" (ngSubmit)=\"validateForm(currentForm)\">\r\n    <h1>{{formBuilderService.formName}}</h1>\r\n    <ng-template #FormContainerRef></ng-template>\r\n    <cocoring-buttons-group *ngIf=\"schemaDatasButtons.length\" [config]=\"schemaDatasButtons\"></cocoring-buttons-group>\r\n</form>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { CocoringButtonsGroupModule } from '../form-buttons/cocoring-buttons-group.module';\r\nimport { CocoringFormContainerComponent } from './cocoring-form-container.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringFormContainerComponent],\r\n    imports: [\r\n        CommonModule,\r\n        ReactiveFormsModule,\r\n        CocoringButtonsGroupModule\r\n    ],\r\n    exports: [CocoringFormContainerComponent]\r\n})\r\nexport class CocoringFormContainerModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { CocoringButtonComponent } from './cocoring-button.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringButtonComponent],\r\n    imports: [\r\n        CommonModule,\r\n        MatIconModule,\r\n        MatButtonModule\r\n    ],\r\n    exports: [CocoringButtonComponent]\r\n})\r\nexport class CocoringButtonModule { }","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { CocoringButtonModule } from '../button/cocoring-button.module';\r\nimport { CocoringButtonLinkComponent } from './cocoring-button-link.component';\r\n\r\n@NgModule({\r\n    declarations: [CocoringButtonLinkComponent],\r\n    imports: [\r\n        CommonModule,\r\n        RouterModule,\r\n        MatIconModule,\r\n        MatButtonModule,\r\n        CocoringButtonModule,\r\n    ],\r\n    exports: [CocoringButtonLinkComponent]\r\n})\r\nexport class CocoringButtonLinkModule { }","import { Component, Inject, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { FileActions, FileDetailsComponent, InjectComponentService } from 'cocori-ng/src/feature-core';\r\n\r\n@Component({\r\n  selector: 'cocoring-uploader-bottom-sheet',\r\n  templateUrl: './cocoring-uploader-bottom-sheet.component.html',\r\n  styleUrls: ['./cocoring-uploader-bottom-sheet.component.scss']\r\n})\r\nexport class CocoringUploaderBottomSheetComponent implements OnInit {\r\n  @ViewChild('ContainerRef', { static: true, read: ViewContainerRef }) containerRef: ViewContainerRef;\r\n\r\n  constructor(\r\n    private injectComponentService: InjectComponentService,\r\n    private _bottomSheetRef: MatBottomSheetRef<CocoringUploaderBottomSheetComponent>,\r\n    @Inject(MAT_BOTTOM_SHEET_DATA) public data: FileDetailsComponent) { }\r\n\r\n  ngOnInit(): void {\r\n    this.addContent()\r\n  }\r\n\r\n  addContent() {\r\n    if (!this.data.component) return;\r\n\r\n    this.injectComponentService.loadAndAddComponentToContainer(this.data.component, this.containerRef,\r\n      { file: this.data.file, apisFile: this.data.apisFile },\r\n      { callback: (action: FileActions) => this.callback(action) }\r\n    );\r\n  }\r\n\r\n  callback(action: FileActions): void {\r\n    this._bottomSheetRef.dismiss(action);\r\n  }\r\n\r\n  close() {\r\n    this._bottomSheetRef.dismiss();\r\n  }\r\n}\r\n","<!-- <div class=\"button-container\">\r\n    <button mat-fab color=\"accent\" aria-label=\"Ouvrir le fichier\" (click)=\"close()\">\r\n        <mat-icon>attach_file</mat-icon>\r\n    </button>\r\n</div> -->\r\n<div class=\"bottom-sheet-header\">\r\n    <button class=\"actions-header-modal\" mat-icon-button aria-label=\"Fermer le menu\" (click)=\"close()\">\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\">{{data.file.description}}</div>\r\n        <div class=\"date-upload\" *ngIf=\"data.file.dateUpload\">\r\n            <span>{{data.file.dateUpload | date: 'dd/MM/yyyy, HH:mm':'':'fr-FR'}}</span>\r\n        </div>\r\n        <div class=\"description\">            \r\n            <div class=\"filename\">{{data.file.fileName}}</div>\r\n            <div class=\"description-size\">{{data.file.size | fileSize:2}}</div>\r\n        </div>\r\n    </div>\r\n</div>\r\n<ng-template #ContainerRef></ng-template>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigAPIsFile, FileActions, FileModel } from 'cocori-ng/src/feature-core';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-uploader-file-actions',\r\n  templateUrl: './cocoring-uploader-file-actions.component.html',\r\n  styleUrls: ['./cocoring-uploader-file-actions.component.scss']\r\n})\r\nexport class CocoringUploaderFileActionsComponent implements OnInit {\r\n\r\n  @Input() file: FileModel\r\n  @Input() apisFile: ConfigAPIsFile\r\n  @Output() callback: EventEmitter<FileActions> = new EventEmitter<FileActions>();\r\n\r\n  apiFile: string;\r\n  apiFileDownload: string;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    this.setFileApi()\r\n    this.setFileDownloadApi()\r\n  }\r\n\r\n  private setFileApi() {\r\n    this.apiFile = this.apisFile.apiFile(this.file.id);\r\n  }\r\n\r\n  private setFileDownloadApi() {\r\n    this.apiFileDownload = this.apisFile.apiFileDownload(this.file.id);\r\n  }\r\n\r\n  actionFile(event: MouseEvent, action: FileActions) {\r\n    this.close(action)\r\n\r\n    event.preventDefault();\r\n  }\r\n\r\n  close(action?: FileActions) {\r\n    this.callback.emit(action)\r\n  }\r\n}\r\n","<mat-nav-list class=\"list\">\r\n    <a [href]=\"apiFile\" target=\"_blank\" mat-list-item (click)=\"close()\">\r\n        <mat-icon mat-list-icon>visibility</mat-icon>\r\n        <span mat-line>Ouvrir le fichier</span>\r\n    </a>\r\n\r\n    <a [href]=\"apiFileDownload\" mat-list-item (click)=\"close()\">\r\n        <mat-icon mat-list-icon>get_app</mat-icon>\r\n        <span mat-line>Télécharger le fichier</span>\r\n    </a>\r\n\r\n    <a href=\"#\" mat-list-item (click)=\"actionFile($event, 'browse')\">\r\n        <mat-icon mat-list-icon>upload_file</mat-icon>\r\n        <span mat-line>Sélectionner un nouveau fichier</span>\r\n    </a>\r\n\r\n    <a href=\"#\" mat-list-item (click)=\"actionFile($event, 'remove')\">\r\n        <mat-icon mat-list-icon>delete_outline</mat-icon>\r\n        <span mat-line>Supprimer le fichier</span>\r\n    </a>\r\n</mat-nav-list>","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  HostListener,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {\r\n  ConfigAPIsFile,\r\n  FileActions,\r\n  FileDetailsComponent,\r\n  FileModel,\r\n  HelperUploaderService,\r\n} from 'cocori-ng/src/feature-core';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { UploaderService } from '../../../../core';\r\nimport {\r\n  CocoringUploaderBottomSheetComponent,\r\n} from '../cocoring-uploader-bottom-sheet/cocoring-uploader-bottom-sheet.component';\r\nimport {\r\n  CocoringUploaderFileActionsComponent,\r\n} from '../cocoring-uploader-file-actions/cocoring-uploader-file-actions.component';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-uploader-list-file',\r\n  templateUrl: './cocoring-uploader-list-file.component.html',\r\n  styleUrls: ['./cocoring-uploader-list-file.component.scss'],\r\n  providers: [UploaderService]\r\n})\r\nexport class CocoringUploaderListFileComponent implements OnInit, OnDestroy {\r\n  @ViewChild('uploader') uploaderInputRef: ElementRef;\r\n  @ViewChild('progressCircle') progressCircleRef: ElementRef;\r\n\r\n  @Input() formGroup: UntypedFormGroup\r\n  @Input() nameControl: string\r\n  @Input() fileModel: FileModel\r\n  @Input() apisFile: ConfigAPIsFile\r\n\r\n  private fileUploaded: File;\r\n\r\n  fileFormControl: UntypedFormControl;\r\n  isUploading: boolean = false;\r\n  progress: number;\r\n  onError: boolean = false;\r\n  apiFile: string;\r\n  upoaderFormArray: UntypedFormArray;\r\n  fileType: string;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  constructor(\r\n    public dialog: MatDialog,\r\n    public uploaderService: UploaderService,\r\n    private _bottomSheet: MatBottomSheet,\r\n    private cdr: ChangeDetectorRef,) { }\r\n\r\n  ngOnInit(): void {\r\n    this.addFileControl()\r\n\r\n    this.uploaderService.fileUploaded$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((id: string) => this.validateFileValue(id)),\r\n      tap(_ => this.cdr.detectChanges()),\r\n      debounceTime(500),\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.progress = 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  ngOnDestroy(): void {\r\n    this.destroy$.next(undefined);\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  private setFileApi() {\r\n    this.apiFile = this.apisFile.apiFile(this.fileModel.id);\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.fileUploaded = file;\r\n\r\n    this.fileModel.fileName = this.fileUploaded.name\r\n    this.fileModel.size = this.fileUploaded.size\r\n    this.fileModel.mimeType = this.fileUploaded.type\r\n\r\n    this.fileType = HelperUploaderService.checkTypeImage(this.fileUploaded.type) ? 'image' : 'doc'\r\n\r\n    this.cdr.detectChanges()\r\n\r\n    this.uploaderService.uploadFile(this.fileUploaded)\r\n  }\r\n\r\n  private errorFile() {\r\n    this.isUploading = false\r\n\r\n    this.removeFile()\r\n\r\n    this.onError = true\r\n\r\n    this.cdr.detectChanges()\r\n  }\r\n\r\n  openMenuOrBrowse() {\r\n    if (this.fileModel.id) {\r\n      this.openBottomSheet()\r\n    } else {\r\n      this.browseFile()\r\n    }\r\n  }\r\n\r\n  openBottomSheet() {\r\n    const bottomSheet = this._bottomSheet.open(CocoringUploaderBottomSheetComponent, {\r\n      panelClass: 'bottom-sheet-container',\r\n      data: <FileDetailsComponent>{\r\n        file: this.fileModel,\r\n        apisFile: this.apisFile,\r\n        component: CocoringUploaderFileActionsComponent\r\n      }\r\n    });\r\n\r\n    bottomSheet.afterDismissed().pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((action: FileActions) => {\r\n      switch (action) {\r\n        case 'browse':\r\n          this.browseFile()\r\n          break;\r\n\r\n        case 'remove':\r\n          this.removeFile()\r\n          break;\r\n\r\n        default:\r\n          break;\r\n      }\r\n    })\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  removeFile() {\r\n\r\n    this.removeFromFormArray()\r\n\r\n    this.fileUploaded = null\r\n    this.fileModel.id = null\r\n    this.fileModel.fileName = null\r\n\r\n    this.fileType = null\r\n    this.uploaderInputRef.nativeElement.value = ''\r\n  }\r\n\r\n  private removeFromFormArray() {\r\n    /** supprime le formControl et donc sa valeur du tableau de fichier du formulaure */\r\n    if (this.fileModel.id) {\r\n      this.upoaderFormArray.removeAt(this.upoaderFormArray.value.findIndex(fileId => fileId === this.fileModel.id))\r\n    }\r\n  }\r\n\r\n  /** create control and add it to the formGroup. Will store id of the file */\r\n  private addFileControl() {\r\n    this.uploaderService.apisFile = this.apisFile\r\n\r\n    this.upoaderFormArray = <UntypedFormArray>this.formGroup.get(this.nameControl);\r\n\r\n    this.fileFormControl = new UntypedFormControl(null);\r\n\r\n    if (this.fileModel.id) {\r\n      // this.fileType = HelperUploaderService.checkTypeImage(this.fileModel.mimeType) ? 'image' : 'doc'\r\n\r\n      this.fileFormControl.setValue(this.fileModel.id)\r\n\r\n      this.upoaderFormArray.push(this.fileFormControl);\r\n\r\n      this.setFileApi()\r\n    }\r\n  }\r\n\r\n  /** store the file id */\r\n  private validateFileValue(id: string) {\r\n\r\n    this.removeFromFormArray()\r\n\r\n    this.fileModel.id = id\r\n    this.fileModel.dateUpload = new Date()\r\n\r\n    this.fileFormControl.setValue(id)\r\n\r\n    this.upoaderFormArray.push(this.fileFormControl);\r\n  }\r\n}\r\n","<mat-list-option id=\"optionList\" [value]=\"fileModel.id\" (click)=\"openMenuOrBrowse()\">\r\n    <ng-container *ngIf=\"!isUploading\">\r\n        <div *ngIf=\"!fileModel.id\">\r\n            <button class=\"file-doc\" mat-fab disableRipple=\"true\" aria-label=\"Joindre un fichier\">\r\n                <mat-icon [ngClass]=\"{'fileOnError error': onError}\">upload_file</mat-icon>\r\n            </button>\r\n        </div>\r\n\r\n        <div *ngIf=\"fileType === 'doc'\">\r\n            <button class=\"file-doc\" mat-fab disableRipple=\"true\" aria-label=\"\">\r\n                <mat-icon>attach_file</mat-icon>\r\n            </button>\r\n        </div>\r\n\r\n        <div *ngIf=\"fileType === 'image'\" class=\"file-image\"\r\n            [ngStyle]=\"{'background-image': 'url(' + apiFile}\">\r\n        </div>\r\n    </ng-container>\r\n\r\n    <ng-container *ngIf=\"isUploading\">\r\n        <div class=\"loading-container\">\r\n            <svg class=\"progress\" width=\"65\" height=\"60\">\r\n                <circle #progressCircle class=\"progress-circle\" cx=\"26\" cy=\"33\" r=\"25\" fill=\"transparent\" />\r\n                <text class=\"loading\" fill=\"blue\" x=\"50\" y=\"50\" alignment-baseline=\"middle\" text-anchor=\"middle\"></text>\r\n            </svg>\r\n        </div>\r\n    </ng-container>\r\n\r\n    <div class=\"mat-list-text\">\r\n        <div mat-line [ngClass]=\"{'fileOnError error': onError}\">\r\n            <span *ngIf=\"fileModel.id\" title=\"{{fileModel.fileName}}\">{{fileModel.fileName}}</span>\r\n            <span *ngIf=\"!fileModel.id\" title=\"{{fileModel.description}}\">{{fileModel.description}}</span>\r\n        </div>\r\n\r\n        <ng-template [ngIf]=\"!isUploading\" [ngIfElse]=\"uploadTpl\">\r\n            <div class=\"subtext\" mat-line>\r\n                <span *ngIf=\"fileModel?.id\">{{fileModel.size | fileSize:2}}</span>\r\n                <span *ngIf=\"!fileModel?.id && !onError\" title=\"Cliquez pour déposer votre fichier ici\"> Cliquez pour déposer votre fichier ici</span>\r\n                <span *ngIf=\"!fileModel?.id && onError\" class=\"fileOnError error\" title=\"Une erreur est survenue, veuillez\r\n                réessayer\">Une erreur est survenue, veuillez\r\n                    réessayer</span>\r\n            </div>\r\n        </ng-template>\r\n\r\n        <ng-template #uploadTpl>\r\n            <div mat-line class=\"progress-bar\">\r\n                <mat-progress-bar [value]=\"progress\"></mat-progress-bar>\r\n            </div>\r\n        </ng-template>\r\n    </div>\r\n\r\n</mat-list-option>\r\n\r\n<input #uploader hidden class=\"browse-file\" type=\"file\" name=\"fileUpload\" accept=\"*\" />","import { ChangeDetectionStrategy, Component, Injector, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ConfigAPIsFile, ConfigUploaderModel } from 'cocori-ng/src/feature-core';\r\n\r\nimport { ExtendInputsComponent } from '../form/inputs/extend-inputs/extend-inputs.component';\r\n\r\nexport interface Section {\r\n  name: string;\r\n  updated: Date;\r\n}\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-uploader',\r\n  templateUrl: './cocoring-uploader.component.html',\r\n  styleUrls: ['./cocoring-uploader.component.scss'],\r\n})\r\nexport class CocoringUploaderComponent extends ExtendInputsComponent implements OnInit, OnDestroy {\r\n  apisFile: ConfigAPIsFile;\r\n\r\n  @Input()\r\n  set config(config: ConfigUploaderModel) {\r\n    if (!config) {\r\n      throw new Error(`La config du composant uploader n'est pas correcte... config: ${config}`);\r\n    }\r\n\r\n    this.configInput(config)\r\n\r\n    this.addArrayForm();\r\n\r\n    this.apisFile = { apiFile: config.apiFile, apiFileDownload: config.apiFileDownload }\r\n  }\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  ngOnInit() { }\r\n\r\n  ngOnDestroy() { }\r\n}\r\n","<div class=\"upload-drop\">\r\n  <mat-selection-list [multiple]=\"false\">\r\n    <div mat-subheader>{{nameLabel}}</div>\r\n    <ng-container *ngIf=\"dataSource$ | async as files; else loadingTpl\">\r\n      <cocoring-uploader-list-file *ngFor=\"let file of files\" [formGroup]=\"formGroup\" [nameControl]=\"nameControl\"\r\n        [apisFile]=\"apisFile\" [fileModel]=\"file\">\r\n      </cocoring-uploader-list-file>\r\n    </ng-container>\r\n    <ng-template #loadingTpl>\r\n      <div class=\"fake-list-file\" *ngFor=\"let i of [].constructor(2)\">\r\n        <div class=\"fake-icon loading-animation\"></div>\r\n        <div class=\"fake-file-infos\">\r\n          <div class=\"fake-info info-name loading-animation\"></div>\r\n          <div class=\"fake-info loading-animation\"></div>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n    <!-- #todo: normalement pas nécessaire ce ngIf, mais là le message ne disparaît pas... -->\r\n    <mat-error *ngIf=\"formGroup.get(nameControl).errors\" error-handler [form]=\"formGroup\" [controlName]=\"nameControl\">\r\n    </mat-error>\r\n  </mat-selection-list>\r\n  <!-- {{formGroup.get(nameControl).value | json}} -->\r\n</div>","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\n\r\nimport { CocoringFileSizeModule } from '../../pipe/file-size/cocoring-file-size.module';\r\nimport { CocoringButtonModule } from '../button/cocoring-button.module';\r\nimport { CocoringInputErrorModule } from '../error-handler/input-error-handler/cocoring-input-error.module';\r\nimport {\r\n  CocoringUploaderBottomSheetComponent,\r\n} from './cocoring-uploader-bottom-sheet/cocoring-uploader-bottom-sheet.component';\r\nimport {\r\n  CocoringUploaderFileActionsComponent,\r\n} from './cocoring-uploader-file-actions/cocoring-uploader-file-actions.component';\r\nimport { CocoringUploaderListFileComponent } from './cocoring-uploader-list-file/cocoring-uploader-list-file.component';\r\nimport { CocoringUploaderComponent } from './cocoring-uploader.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CocoringUploaderComponent,\r\n    CocoringUploaderListFileComponent,\r\n    CocoringUploaderFileActionsComponent,\r\n    CocoringUploaderBottomSheetComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    DragDropModule,\r\n    CocoringFileSizeModule,\r\n    ReactiveFormsModule,\r\n    MatListModule,\r\n    MatFormFieldModule,\r\n    MatMenuModule,\r\n    MatProgressBarModule,\r\n    MatDialogModule,\r\n    MatBottomSheetModule,\r\n    MatInputModule,\r\n    MatIconModule,\r\n    MatButtonModule,\r\n    CocoringInputErrorModule,\r\n    CocoringButtonModule,\r\n  ],\r\n  exports: [\r\n    CocoringUploaderComponent\r\n  ],\r\n})\r\nexport class CocoringUploaderModule { }","import { formatDate } from '@angular/common';\r\nimport { Component, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\r\nimport { CellValueDatagridModel } from 'cocori-ng/src/feature-core';\r\n\r\nimport { DatagridService } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'cocoring-datagrid-cell',\r\n  templateUrl: './cocoring-datagrid-cell.component.html',\r\n  styleUrls: ['./cocoring-datagrid-cell.component.scss']\r\n})\r\nexport class CocoringDatagridCellComponent implements OnInit {\r\n  public _cell: CellValueDatagridModel;\r\n  cellIsArchived: boolean = false;\r\n\r\n  @Input()\r\n  set cell(value: CellValueDatagridModel) {\r\n    this._cell = value\r\n\r\n    this.formatCellValue();\r\n\r\n    this.checkIfCellIsArchived();\r\n  }\r\n\r\n  cellValue: string\r\n\r\n  constructor(\r\n    @Inject(LOCALE_ID) private locale: string,\r\n    private datagridService: DatagridService) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  private formatCellValue() {\r\n    this.cellValue = this._cell.dataType === 'date' ? formatDate(this._cell.value, 'dd/MM/yyyy', this.locale) : this._cell.value;\r\n  }\r\n\r\n  private checkIfCellIsArchived() {\r\n    this.cellIsArchived =  this._cell.dataField === this.datagridService.config.propIsArchived\r\n  }\r\n}\r\n","<ng-container *ngIf=\"_cell && _cell.visible\">\r\n    <td [attr.data-label]=\"_cell.caption\" [title]=\"cellValue\" [ngSwitch]=\"_cell.dataType\">\r\n        <div *ngSwitchCase=\"'boolean'\" class=\"valTrue\">\r\n            <mat-icon *ngIf=\"cellValue\">check</mat-icon>\r\n        </div>\r\n        <div *ngSwitchDefault>{{cellValue}}</div>\r\n    </td>\r\n</ng-container>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { CellValueDatagridModel, ColumnDatagridModel, OrderColumnModel } from 'cocori-ng/src/feature-core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DatagridService } from '../../../../core';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-datagrid-row',\r\n  templateUrl: './cocoring-datagrid-row.component.html',\r\n  styleUrls: ['./cocoring-datagrid-row.component.scss']\r\n})\r\nexport class CocoringDatagridRowComponent implements OnInit, OnDestroy {\r\n  @Input() columns: ColumnDatagridModel[] = []\r\n  @Input()\r\n  set datas(datas: any) {\r\n    this._datas = datas;\r\n\r\n    this.addCheckboxRow();\r\n\r\n    this.initCellsValues();\r\n  }\r\n  @Input() datagridService: DatagridService\r\n\r\n  _datas: any;\r\n  cellValues: CellValueDatagridModel[] = []\r\n  checkboxRowFormGroup: UntypedFormGroup;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  constructor(\r\n    private fb: UntypedFormBuilder,\r\n    private cdr: ChangeDetectorRef,\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.eventAllCheckboxesChecked()\r\n\r\n    this.onUpdateColumn()\r\n\r\n    this.onReOrderColumns()\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  /** ajouter le contrôle checkbox de la ligne dans le formulaire */\r\n  private addCheckboxRow() {\r\n    const checkboxesFormControlArray: UntypedFormArray = <UntypedFormArray>this.datagridService.checkboxesDatagridForm.get(\"rowsCheckbox\");\r\n\r\n    this.checkboxRowFormGroup = this.fb.group({});\r\n\r\n    this.checkboxRowFormGroup.addControl(this._datas.id, this.fb.control(false));\r\n\r\n    checkboxesFormControlArray.push(this.checkboxRowFormGroup);\r\n\r\n    this.checkboxRowFormGroup.get(this._datas.id).valueChanges.pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((checkValue: boolean) => {\r\n      this.datagridService.storeIdsRowsSelected(this._datas, checkValue)\r\n    })\r\n  }\r\n\r\n  private initCellsValues() {\r\n    this.columns.forEach((column: ColumnDatagridModel) => {\r\n      this.cellValues.push({\r\n        dataField: column.dataField,\r\n        caption: column.caption,\r\n        visible: column.visible,\r\n        dataType: column.dataType,\r\n        value: this.getDatasourceValue(column.dataField)\r\n      });\r\n    });\r\n  }\r\n\r\n  private onUpdateColumn() {\r\n    this.datagridService.updateColumn$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((columnUpdated: ColumnDatagridModel) => {\r\n        this.cellValues\r\n          .find((cell: CellValueDatagridModel) => cell.dataField === columnUpdated.dataField)\r\n          .visible = columnUpdated.visible\r\n      }),\r\n      tap(_ => this.cdr.detectChanges()),\r\n    ).subscribe()\r\n  }\r\n\r\n  private onReOrderColumns() {\r\n    this.datagridService.reOrderColumns$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((columnUpdated: OrderColumnModel) => {\r\n        this.cellValues.splice(columnUpdated.currentIndex, 0, this.cellValues.splice(columnUpdated.previousIndex, 1)[0]);\r\n      }),\r\n      tap(_ => this.cdr.detectChanges()),\r\n    ).subscribe()\r\n  }\r\n\r\n  private eventAllCheckboxesChecked() {\r\n    this.datagridService.allRowsChecked$.pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((value: boolean) => {\r\n      this.checkboxRowFormGroup.get(this._datas.id).setValue(value);\r\n    })\r\n  }\r\n\r\n  private getDatasourceValue(column: string) {\r\n    return this._datas.hasOwnProperty(column) ? this._datas[column] : null\r\n  }\r\n\r\n  selectRow() {\r\n    this.datagridService.rowSelectedByClickEvent$.next(this._datas)\r\n  }\r\n\r\n  trackBy(index: number) {\r\n    return index;\r\n  }\r\n}\r\n","<tr (click)=\"selectRow()\">\r\n    <ng-container *ngFor=\"let cell of cellValues; let i = index; trackBy: trackBy\">\r\n        <!-- <ng-container *ngIf=\"datagridService.config.withBatchProcessing\"> -->\r\n        <ng-container>\r\n            <td class=\"column-select\" *ngIf=\"i===0\">\r\n                <cocoring-checkbox [formGroup]=\"checkboxRowFormGroup\" [nameControl]=\"_datas.id\" color=\"warn\">\r\n                </cocoring-checkbox>\r\n            </td>\r\n        </ng-container>\r\n        <cocoring-datagrid-cell [cell]=\"cell\"></cocoring-datagrid-cell>\r\n    </ng-container>\r\n</tr>","import { ChangeDetectorRef, Component, HostListener, Injector, Input, OnDestroy } from '@angular/core';\r\nimport { BooleanFilters, ColumnDatagridModel, SortType } from 'cocori-ng/src/feature-core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DatagridService } from '../../../../core';\r\n\r\n@Component({\r\n    selector: '',\r\n    template: ''\r\n})\r\n\r\nexport abstract class SortColumnExtendComponent implements OnDestroy {\r\n    @Input() datagridService: DatagridService\r\n    @Input() column: ColumnDatagridModel\r\n\r\n    shiftKey: boolean = false;\r\n    cdr: ChangeDetectorRef;\r\n    colFiltered: boolean = false;\r\n\r\n    readonly destroy$ = new Subject();\r\n\r\n    constructor(injector: Injector) {\r\n        this.cdr = injector.get(ChangeDetectorRef);\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    onInitColumn() {\r\n\r\n        this.isFiltered()\r\n\r\n        this.datagridService.resetColumnExcept$.pipe(\r\n            takeUntil(this.destroy$),\r\n            filter((datafieldException: string) => datafieldException !== this.column.dataField),\r\n            tap(_ => this.column.sort = 'NONE'),\r\n            tap(_ => this.cdr.detectChanges()),\r\n        ).subscribe()\r\n\r\n        this.datagridService.updateColumn$.pipe(\r\n            takeUntil(this.destroy$),\r\n            filter((columnUpdated: ColumnDatagridModel) => columnUpdated.dataField === this.column.dataField),\r\n            tap((columnUpdated: ColumnDatagridModel) => this.column = columnUpdated),\r\n            tap(_ => this.isFiltered()),\r\n            tap(_ => this.cdr.detectChanges()),\r\n        ).subscribe()\r\n    }\r\n\r\n    private isFiltered() {\r\n\r\n        this.colFiltered = false\r\n\r\n        if (this.column.dataType === 'boolean') {\r\n            let filters: BooleanFilters = this.column.filters as BooleanFilters\r\n\r\n            if (!filters.selectAll && (filters.nestedValues.allSelected || filters.nestedValues.noSelected)) {\r\n                this.colFiltered = true\r\n            }\r\n        }\r\n    }\r\n\r\n    @HostListener('window:keydown', ['$event']) onShiftPressed($event: KeyboardEvent) {\r\n        if ($event.shiftKey) {\r\n            this.shiftKey = true\r\n        }\r\n    }\r\n\r\n    @HostListener('window:keyup', ['$event']) onShiftReleased($event: KeyboardEvent) {\r\n        if ($event.code === \"ShiftLeft\") {\r\n            this.shiftKey = false\r\n        }\r\n    }\r\n\r\n    sort() {\r\n        if (!this.shiftKey) this.datagridService.resetColumnExcept$.next(this.column.dataField)\r\n\r\n        let newSortValue: SortType = 'NONE'\r\n\r\n        if (!this.column.sort || this.column.sort === 'NONE') newSortValue = 'ASC'\r\n        else if (this.column.sort === 'ASC') newSortValue = 'DESC'\r\n        else newSortValue = 'NONE'\r\n\r\n        this.column.sort = newSortValue\r\n\r\n        this.datagridService.updateColumn$.next(this.column)\r\n\r\n        this.datagridService.refreshNeeded$.next()\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ColumnDatagridModel } from 'cocori-ng/src/feature-core';\r\n\r\nimport { DatagridService } from '../../../../core';\r\nimport { SortColumnExtendComponent } from '../common-datagrid/sort-column-extend.component';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-datagrid-head',\r\n  templateUrl: './cocoring-datagrid-head.component.html',\r\n  styleUrls: ['./cocoring-datagrid-head.component.scss']\r\n})\r\nexport class CocoringDatagridHeadComponent extends SortColumnExtendComponent implements OnInit {\r\n  @Input() column: ColumnDatagridModel\r\n  @Input() datagridService: DatagridService\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector)\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.onInitColumn()\r\n  }\r\n}\r\n","<ng-container *ngIf=\"column.visible\">\r\n  <th scope=\"col\" [title]=\"column.caption\" (click)=\"sort()\">\r\n    <div class=\"column-table-header\">\r\n      <mat-icon *ngIf=\"colFiltered\" class=\"isFiltered\">filter_alt</mat-icon>\r\n      <div class=\"column-caption\">{{column.caption}}</div>\r\n      <!-- <div *ngIf=\"column.sort && column.sort !== 'NONE'\"> -->\r\n        <!-- <button mat-icon-button title=\"Inverser le tri\" aria-label=\"Inverser le tri\"> -->\r\n          <ng-container *ngIf=\"column.sort && column.sort !== 'NONE'\">\r\n            <mat-icon *ngIf=\"column.sort === 'ASC'\">arrow_upward</mat-icon>\r\n            <mat-icon *ngIf=\"column.sort === 'DESC'\">arrow_downward</mat-icon>\r\n          </ng-container>\r\n        <!-- </button> -->\r\n      <!-- </div> -->\r\n    </div>\r\n  </th>\r\n</ng-container>","import {\r\n    ChangeDetectionStrategy,\r\n    ChangeDetectorRef,\r\n    Component,\r\n    EventEmitter,\r\n    HostBinding,\r\n    Input,\r\n    OnDestroy,\r\n    Output,\r\n    ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ConfigDatagridModel, Odata, OdataClass } from 'cocori-ng/src/feature-core';\r\nimport { merge, Subject } from 'rxjs';\r\nimport { debounceTime, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DatagridService } from '../../../core';\r\n\r\n@Component({\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    encapsulation: ViewEncapsulation.None,\r\n    selector: 'cocoring-datagrid',\r\n    templateUrl: 'cocoring-datagrid.component.html',\r\n    styleUrls: ['./cocoring-datagrid.component.scss'],\r\n    providers: [OdataClass]\r\n})\r\nexport class CocoringDatagridComponent implements OnDestroy {\r\n    checkboxesGroup: UntypedFormGroup;\r\n\r\n    @HostBinding('class.table-full-width') forceFullWidth: boolean = true;\r\n\r\n    datagridDataSource: OdataClass;\r\n    totalRowsSaved: number = 5;\r\n\r\n    private readonly destroy$ = new Subject();\r\n\r\n    constructor(\r\n        private fb: UntypedFormBuilder,\r\n        private cdr: ChangeDetectorRef,\r\n        private odata: OdataClass,\r\n        public datagridService: DatagridService\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    @Input()\r\n    set config(config: ConfigDatagridModel) {\r\n        if (!config) {\r\n            throw new Error(`La config du datgrid n'est pas correcte... config: ${config}`);\r\n        }\r\n\r\n        this.datagridService.config = config;\r\n\r\n        this.loadDataSource();\r\n\r\n        this.onReOrderColumns()\r\n\r\n        this.onRowSelected()\r\n\r\n        this.onRowsDeletedRestored()\r\n    }\r\n\r\n    @Output() eventClickRow: EventEmitter<void> = new EventEmitter<void>();\r\n    @Output() eventRowsDeleted: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n    @Output() eventRowsRestored: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n\r\n    refreshDatagrid() {\r\n        this.datagridService.refreshNeeded$.next()\r\n    }\r\n\r\n    private loadDataSource() {\r\n        const emptySearch$ = this.datagridService.refreshNeeded$.pipe(\r\n            debounceTime(400),\r\n            tap(_ => this.datagridDataSource = null),\r\n            tap(_ => {\r\n                /** on désactive la case à cocher qui permet de sélectionner / désélectionner toutes les lignes du tableau */\r\n                this.datagridService.checkboxesDatagridForm.get(\"selectAllRowsCheckbox\").setValue(false, { emitEvent: false })\r\n            }),\r\n            tap(_ => this.datagridService.checkUncheckAllRows(false)),\r\n            tap(_ => this.cdr.detectChanges()),\r\n            switchMap(() => this.datagridService.getAllDatas())\r\n        )\r\n\r\n        merge(this.datagridService.getAllDatas(), emptySearch$).pipe(\r\n            takeUntil(this.destroy$),\r\n            map((results: Odata<any>) => {\r\n                this.odata.setDatasource(results)\r\n\r\n                this.datagridDataSource = this.odata\r\n\r\n                this.cdr.detectChanges();\r\n            }),\r\n            // tap(_ => this.totalRowsSaved = this.datagridDataSource.getResults().length),\r\n            tap(_ => this.totalRowsSaved = this.datagridDataSource.getCount()),\r\n            tap(_ => this.datagridService.lengthDataSource(this.totalRowsSaved))\r\n        ).subscribe()\r\n    }\r\n\r\n    /** re order cellValues array */\r\n    private onReOrderColumns() {\r\n        this.datagridService.reOrderColumns$.pipe(\r\n            takeUntil(this.destroy$),\r\n            tap(_ => this.cdr.detectChanges()),\r\n        ).subscribe()\r\n    }\r\n\r\n    private onRowSelected() {\r\n        this.datagridService.rowSelectedByClickEvent$.pipe(\r\n            takeUntil(this.destroy$),\r\n            tap((rowDatas: any) => this.eventClickRow.emit(rowDatas)),\r\n        ).subscribe()\r\n    }\r\n\r\n    private onRowsDeletedRestored() {\r\n        this.datagridService.rowsDeletedEvent$.pipe(\r\n            takeUntil(this.destroy$),\r\n            tap(_ => this.eventRowsDeleted.emit(this.datagridService.rowsSelectedDatagrid)),\r\n        ).subscribe()\r\n\r\n        this.datagridService.rowsRestoredEvent$.pipe(\r\n            takeUntil(this.destroy$),\r\n            tap(_ => this.eventRowsRestored.emit(this.datagridService.rowsSelectedDatagrid)),\r\n        ).subscribe()\r\n    }\r\n\r\n    trackBy(item: any, index: number) {\r\n        return `${item.id}-${index}`\r\n    }\r\n}\r\n","<ng-container *ngIf=\"datagridService.config\">\r\n  <!-- <cocoring-datagrid-toolbar></cocoring-datagrid-toolbar> -->\r\n  <div class=\"datagrid-container\">\r\n    <table [formGroup]=\"datagridService.checkboxesDatagridForm\">\r\n      <thead>\r\n        <tr>\r\n          <!-- <ng-container *ngIf=\"datagridService.config.withBatchProcessing\"> -->\r\n          <ng-container>\r\n            <th class=\"column-select\" scope=\"col\"></th>\r\n          </ng-container>\r\n          <ng-container *ngFor=\"let column of datagridService.config.columns; let i = index; trackBy: trackBy\">\r\n            <cocoring-datagrid-head [column]=\"column\" [datagridService]=\"datagridService\"></cocoring-datagrid-head>\r\n          </ng-container>\r\n        </tr>\r\n      </thead>\r\n      <tbody *ngIf=\"datagridDataSource as data; else loadingTpl\">\r\n        <ng-container *ngFor=\"let rowDatas of data.getResults(); let i = index; trackBy: trackBy\">\r\n          <cocoring-datagrid-row class=\"table-line\" [datagridService]=\"datagridService\"\r\n            [columns]=\"datagridService.config.columns\" [datas]=\"rowDatas\"></cocoring-datagrid-row>\r\n        </ng-container>\r\n      </tbody>\r\n      <ng-template #loadingTpl>\r\n        <tr *ngFor=\"let i of [].constructor(totalRowsSaved)\">\r\n          <ng-container *ngFor=\"let column of datagridService.config.columns; let j = index; trackBy: trackBy\">\r\n            <td *ngIf=\"j === 0\" class=\"column-select table-cell-loader\">\r\n              <div class=\"row-loader loading-animation\"></div>\r\n            </td>\r\n            <td class=\"table-cell-loader\">\r\n              <div class=\"row-loader loading-animation\"></div>\r\n            </td>\r\n          </ng-container>\r\n        </tr>\r\n      </ng-template>\r\n    </table>\r\n    <!-- {{datagridService.checkboxesDatagridForm.get('rowsCheckbox').value | json}} -->\r\n  </div>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, EventEmitter, Injector, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { ColumnDatagridModel } from 'cocori-ng/src/feature-core';\r\n\r\nimport { SortColumnExtendComponent } from '../../common-datagrid/sort-column-extend.component';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-datagrid-filter-column',\r\n  templateUrl: './cocoring-datagrid-filter-column.component.html',\r\n  styleUrls: ['./cocoring-datagrid-filter-column.component.scss']\r\n})\r\nexport class CocoringDatagridFilterColumnComponent extends SortColumnExtendComponent implements OnInit, OnDestroy {\r\n  @Output() columnSelected = new EventEmitter<ColumnDatagridModel>();\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector)\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.onInitColumn()\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  selectColumn() {\r\n    this.columnSelected.emit(this.column)\r\n  }\r\n\r\n  visible() {\r\n    this.column.visible = !this.column.visible\r\n\r\n    this.datagridService.updateColumn$.next(this.column)\r\n  }\r\n}\r\n","<a class=\"list-item\" mat-list-item cdkDrag cdkDragLockAxis=\"y\" cdkDragBoundary=\".sidenav\">\r\n    <div class=\"list-item-part-left\" (click)=\"sort()\">\r\n        <button mat-icon-button type=\"button\" aria-label=\"Réordonner les colonnes\">\r\n            <mat-icon>drag_indicator</mat-icon>\r\n        </button>\r\n        <div class=\"column-caption\" [ngClass]=\"{'column-no-visible': !column.visible}\">\r\n            {{column.caption}}\r\n            <mat-icon *ngIf=\"colFiltered\" class=\"isFiltered\">filter_alt</mat-icon>\r\n        </div>\r\n        <button class=\"action-sort-column\" mat-icon-button type=\"button\" aria-label=\"Inverser le tri\">\r\n            <mat-icon *ngIf=\"column.sort === 'ASC'\">arrow_upward</mat-icon>\r\n            <mat-icon *ngIf=\"column.sort === 'DESC'\">arrow_downward</mat-icon>\r\n        </button>\r\n    </div>\r\n    <div class=\"list-item-part-right\">\r\n        <button (click)=\"visible()\" class=\"button-visibility\" mat-icon-button type=\"button\" aria-label=\"Réordonner les colonnes\">\r\n            <mat-icon *ngIf=\"column.visible\">visibility</mat-icon>\r\n            <mat-icon *ngIf=\"!column.visible\">visibility_off</mat-icon>\r\n        </button>\r\n        <button (click)=\"selectColumn()\" mat-icon-button type=\"button\" aria-label=\"Sélectionner cette colonne\">\r\n            <mat-icon>keyboard_arrow_right</mat-icon>\r\n        </button>\r\n    </div>\r\n</a>","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  Inject,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { BooleanFilters, ColumnDatagridModel, DataSourceType, FormInputComponents } from 'cocori-ng/src/feature-core';\r\n\r\nimport { DatagridService } from '../../../../core';\r\nimport { FormBuilderService } from '../../../../core/service/form-builder/form-builder.service';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-datagrid-filter-modal',\r\n  templateUrl: './cocoring-datagrid-filter-modal.component.html',\r\n  styleUrls: ['./cocoring-datagrid-filter-modal.component.scss']\r\n})\r\nexport class CocoringDatagridFilterModalComponent implements OnInit {\r\n  @ViewChild('BooleanFilterFormContainerRef', { static: false, read: ViewContainerRef }) booleanFilterFormContainerRef: ViewContainerRef;\r\n  @ViewChild('ButtonFormContainerRef', { static: false, read: ViewContainerRef }) buttonFormContainerRef: ViewContainerRef;\r\n  @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n  formulaire: UntypedFormGroup;\r\n  disabled = true\r\n  isSidenavOpen: boolean = false;\r\n\r\n  datagridService: DatagridService;\r\n  currentColumn: ColumnDatagridModel;\r\n\r\n  constructor(\r\n    @Inject(MAT_DIALOG_DATA) public data: { datagridService: DatagridService },\r\n    private cdr: ChangeDetectorRef,\r\n    private formBuilderService: FormBuilderService,\r\n    private mdDialogRef: MatDialogRef<CocoringDatagridFilterModalComponent>) {\r\n\r\n    this.datagridService = data.datagridService\r\n    this.formulaire = this.formBuilderService.newForm().form\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  public close(value: any) {\r\n    this.mdDialogRef.close(value);\r\n  }\r\n\r\n  /** Reset le form des filtres selon le mode */\r\n  public toggleFiltersOrClose() {\r\n    if (this.currentColumn) {\r\n      // back to the list of columns\r\n      this.currentColumn = null\r\n\r\n      this.formulaire.reset()\r\n\r\n      this.sidenav.toggle()\r\n    } else {\r\n      this.close(null)\r\n    }\r\n  }\r\n\r\n  public columnSelected(column: ColumnDatagridModel) {\r\n    this.currentColumn = column\r\n\r\n    /** on fait apparaître le paneau détail de la colonne */\r\n    this.sidenav.toggle()\r\n\r\n    /** on mets à jour la vue comme ça les var booleanFilterFormContainerRef et buttonFormContainerRef sont définies */\r\n    this.cdr.detectChanges()\r\n\r\n    /** on init le form et on ajoute les éléments dans la vue dynamiquement 🖕 */\r\n    if (this.currentColumn.dataType == 'boolean') {\r\n      this.buildFormFiltersBoolean()\r\n    }\r\n  }\r\n\r\n  public trackBy(item: any, index: number) {\r\n    return `${item.id}-${index}`\r\n  }\r\n\r\n  public dropColumn(event: CdkDragDrop<ColumnDatagridModel[]>) {\r\n    moveItemInArray(this.datagridService.config.columns, event.previousIndex, event.currentIndex);\r\n\r\n    this.datagridService.reOrderColumns$.next({ previousIndex: event.previousIndex, currentIndex: event.currentIndex })\r\n  }\r\n\r\n  private buildFormFiltersBoolean() {\r\n    let formBuilderService = this.formBuilderService\r\n      .appearance('fill') // par défaut c'est outline\r\n      .setViewContainerRef(this.booleanFilterFormContainerRef)\r\n      .addInput('selectAll', config => config\r\n        .nameLabel('Tout sélectionner')\r\n        .typeInput(FormInputComponents.INPUT_CHECKBOX_INDETERMINATE)\r\n        .dataSource({\r\n          type: DataSourceType.BRUTE,\r\n          dataSourceNameProperty: 'name',\r\n          value: [{ id: \"noSelected\", name: \"non\" }, { id: \"allSelected\", name: \"oui\" }]\r\n        })\r\n      )\r\n      ;\r\n\r\n    formBuilderService = this.buildFormAddButtonsAction(formBuilderService, this.buttonFormContainerRef)\r\n\r\n    this.formulaire = formBuilderService.form\r\n\r\n    if (this.currentColumn.filters) {\r\n      this.formulaire.patchValue(this.currentColumn.filters)\r\n    }\r\n\r\n  }\r\n\r\n  private buildFormAddButtonsAction(formBuilderService: FormBuilderService, viewContainerRef: ViewContainerRef) {\r\n    return formBuilderService\r\n      .setViewContainerRef(viewContainerRef)\r\n      .addButton('Annuler', config => config\r\n        .isTypeSubmit(false)\r\n        .outputCallback({\r\n          click: () => this.toggleFiltersOrClose()\r\n        })\r\n      )\r\n      .addButton('Appliquer', config => config\r\n        .isTypeSubmit()\r\n        .icon('check')\r\n        .outputCallback({\r\n          callback: () => { }\r\n        })\r\n      )\r\n  }\r\n\r\n  public validateFilters({ value, valid }: { value: any, valid: boolean }) {\r\n    if (!valid) return;\r\n    \r\n    this.currentColumn.filters = <BooleanFilters>value\r\n    \r\n    this.datagridService.updateColumn$.next(this.currentColumn)\r\n\r\n    this.datagridService.refreshNeeded$.next()\r\n\r\n    this.toggleFiltersOrClose()\r\n  }\r\n}\r\n","<div class=\"modal-header\">\r\n    <button class=\"actions-header-modal\" (click)=\"toggleFiltersOrClose()\" mat-icon-button\r\n        aria-label=\"Afficher / cacher les colonnes\">\r\n        <mat-icon *ngIf=\"!currentColumn\">clear</mat-icon>\r\n        <mat-icon *ngIf=\"currentColumn\">keyboard_arrow_left</mat-icon>\r\n    </button>\r\n    <h1 class=\"header-title\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle mat-dialog-title>\r\n        <span *ngIf=\"!currentColumn\">Options</span>\r\n        <span *ngIf=\"currentColumn\">{{currentColumn.caption}}</span>\r\n    </h1>\r\n</div>\r\n<form [formGroup]=\"formulaire\" (ngSubmit)=\"validateFilters(formulaire)\">\r\n    <div mat-dialog-content class=\"test\">\r\n        <mat-sidenav-container class=\"layout-container\" [hasBackdrop]=\"false\">\r\n            <mat-sidenav class=\"sidenav\" #sidenav mode=\"over\" position=\"end\" [opened]=\"isSidenavOpen\">\r\n                <ng-container *ngIf=\"currentColumn\">\r\n                    <div class=\"filters\">\r\n                        <ng-template #BooleanFilterFormContainerRef></ng-template>\r\n                    </div>\r\n                    <div class=\"filtersButton\">\r\n                        <ng-template #ButtonFormContainerRef></ng-template>\r\n                    </div>\r\n                </ng-container>\r\n            </mat-sidenav>\r\n            <mat-sidenav-content #sidenavContent>\r\n                <mat-nav-list cdkDropList (cdkDropListDropped)=\"dropColumn($event)\">\r\n                    <ng-container\r\n                        *ngFor=\"let column of datagridService.config.columns; let i = index; trackBy: trackBy\">\r\n                        <cocoring-datagrid-filter-column [column]=\"column\" [datagridService]=\"datagridService\"\r\n                            (columnSelected)=\"columnSelected($event)\"></cocoring-datagrid-filter-column>\r\n                    </ng-container>\r\n                </mat-nav-list>\r\n            </mat-sidenav-content>\r\n        </mat-sidenav-container>\r\n    </div>\r\n</form>","import { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'cocoring-datagrid-searchbar',\r\n  templateUrl: './cocoring-datagrid-searchbar.component.html',\r\n  styleUrls: ['./cocoring-datagrid-searchbar.component.scss']\r\n})\r\nexport class CocoringDatagridSearchbarComponent implements OnInit, OnDestroy {\r\n  @Output() searchValue = new EventEmitter<string>();\r\n\r\n  searchForm: UntypedFormGroup;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  constructor(private fb: UntypedFormBuilder) { }\r\n\r\n  ngOnInit(): void {\r\n    this.buildSearchForm()\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 buildSearchForm() {\r\n    this.searchForm = <UntypedFormGroup>this.fb.group({\r\n      'inputSearch': null\r\n    });\r\n\r\n    this.searchForm.get('inputSearch').valueChanges.pipe(\r\n      takeUntil(this.destroy$),\r\n      debounceTime(400),\r\n      tap((data: string) => this.searchValue.emit(data))\r\n    ).subscribe()\r\n  }\r\n\r\n  clearValue() {\r\n    this.searchForm.reset()\r\n  }\r\n}\r\n","<div class=\"datagrid-searchbar\" [formGroup]=\"searchForm\">\r\n    <mat-form-field>\r\n        <mat-label>Filtrer</mat-label>\r\n        <button class=\"iconSearch\" mat-button matPrefix mat-icon-button aria-label=\"Clear\">\r\n            <mat-icon>search</mat-icon>\r\n        </button>\r\n        <input class=\"input-filter\" matInput formControlName=\"inputSearch\">\r\n        <button class=\"button-reset\" mat-button *ngIf=\"searchForm.get('inputSearch').value\" matSuffix mat-icon-button aria-label=\"Clear\"\r\n            (click)=\"clearValue()\">\r\n            <mat-icon>close</mat-icon>\r\n        </button>\r\n    </mat-form-field>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\n\r\nimport { DatagridService } from '../../../../core';\r\nimport {\r\n    CocoringDatagridFilterModalComponent,\r\n} from '../cocoring-datagrid-filter-modal/cocoring-datagrid-filter-modal.component';\r\n\r\n@Component({\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  selector: 'cocoring-datagrid-toolbar',\r\n  templateUrl: './cocoring-datagrid-toolbar.component.html',\r\n  styleUrls: ['./cocoring-datagrid-toolbar.component.scss']\r\n})\r\nexport class CocoringDatagridToolbarComponent implements OnInit, OnDestroy {\r\n  totalRows: number\r\n  nbRowsChecked: number = 0;\r\n  rowRemoved: boolean = false;\r\n\r\n  private readonly destroy$ = new Subject();\r\n\r\n  // list: { id: number; name: string; }[];\r\n  // checkboxesFormControlArray: FormArray;\r\n\r\n  constructor(\r\n    public dialog: MatDialog,\r\n    private cdr: ChangeDetectorRef,\r\n    public datagridService: DatagridService) { }\r\n\r\n  ngOnInit(): void {\r\n    this.setCheckboxHeaderColumn()\r\n\r\n    this.onLengthDataSourceChange()\r\n\r\n    this.onRowsChecked()\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 onLengthDataSourceChange() {\r\n    this.datagridService.lengthDataSource$.pipe(\r\n      takeUntil(this.destroy$),\r\n      tap((nombre: number) => {\r\n        this.totalRows = nombre;\r\n        this.cdr.detectChanges();\r\n      })\r\n    ).subscribe()\r\n  }\r\n\r\n  refreshList() {\r\n    this.datagridService.refreshNeeded$.next();\r\n  }\r\n\r\n  deleteSelectedRows() {\r\n    this.datagridService.rowsDeletedEvent$.next(undefined);\r\n  }\r\n\r\n  restoreSelectedRows() {\r\n    this.datagridService.rowsRestoredEvent$.next(undefined);\r\n  }\r\n\r\n  onRowsChecked() {\r\n    this.datagridService.rowCheckedEvent$.pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((rowValues: any) => {\r\n      this.rowRemoved = <boolean>rowValues[this.datagridService.config.propIsArchived]\r\n      this.nbRowsChecked = this.datagridService.rowsSelectedDatagrid.length\r\n      this.cdr.detectChanges()\r\n    })\r\n  }\r\n\r\n  filterModal() {\r\n    const dialogRef = this.dialog.open(CocoringDatagridFilterModalComponent, {\r\n      data: { datagridService: this.datagridService },\r\n      autoFocus: false,\r\n      width: '400px'\r\n    });\r\n\r\n    dialogRef.afterClosed().pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((datas: any) => {\r\n      // console.log(\"modal fermée\", datas)\r\n    })\r\n  }\r\n\r\n  private setCheckboxHeaderColumn() {\r\n    this.datagridService.initCheckboxesDatagridForm()\r\n\r\n    this.datagridService.checkboxesDatagridForm.get(\"selectAllRowsCheckbox\").valueChanges.pipe(\r\n      takeUntil(this.destroy$)\r\n    ).subscribe((value: boolean) => {\r\n      this.datagridService.checkUncheckAllRows(value)\r\n    })\r\n  }\r\n\r\n  nextPage() {\r\n    this.datagridService.nextPage$.next()\r\n  }\r\n\r\n  previousPage() {\r\n    this.datagridService.previousPage$.next()\r\n  }\r\n\r\n  searchValue(searchValue: string) {\r\n    this.datagridService.searchGlobal = searchValue\r\n\r\n    this.datagridService.refreshNeeded$.next()\r\n  }\r\n\r\n  // private buildCheckboxesArray() {\r\n  //   this.list = [{ id: 1, name: \"golf\" }, { id: 2, name: \"tennis\" }, { id: 3, name: \"foot\" }];\r\n  //   this.checkboxesFormControlArray = <FormArray>this.datagridService.checkboxesDatagridForm.get(\"rowsCheckbox\")\r\n  //   this.list.forEach((item: any, i) => {\r\n  //     let fg = this.fb.group({});\r\n  //     fg.addControl(this.list[i].name, this.fb.control(true));\r\n  //     this.checkboxesFormControlArray.push(fg);\r\n  //   });\r\n  //   console.log(\"Test checkboxes\", this.checkboxesFormControlArray, this.datagridService.checkboxesDatagridForm.get(\"rowsCheckbox\"))\r\n  // }\r\n}\r\n","<cocoring-datagrid-searchbar (searchValue)=\"searchValue($event)\"></cocoring-datagrid-searchbar>\r\n<div class=\"datagrid-toolbar\">\r\n    <div class=\"datagrid-toolbar-part\">\r\n        <ng-container *ngIf=\"datagridService.config?.withBatchProcessing\">\r\n            <div class=\"toolbar-option select-all\">\r\n                <cocoring-checkbox [formGroup]=\"datagridService.checkboxesDatagridForm\"\r\n                    nameControl=\"selectAllRowsCheckbox\">\r\n                </cocoring-checkbox>\r\n            </div>\r\n        </ng-container>\r\n        <div class=\"toolbar-option\">\r\n            <button class=\"button-refresh\" mat-icon-button title=\"Rafraichir\" aria-label=\"Rafraichir les données du tableau\"\r\n                (click)=\"refreshList()\">\r\n                <mat-icon>refresh</mat-icon>\r\n            </button>\r\n        </div>\r\n        <div class=\"toolbar-option\">\r\n            <button class=\"button-filter\" mat-icon-button title=\"Rechercher / Filter / Trier\" aria-label=\"Rechercher / Filter / Trier\"\r\n                (click)=\"filterModal()\">\r\n                <mat-icon>filter_list</mat-icon>\r\n            </button>\r\n        </div>\r\n        <!-- <ng-container *ngIf=\"datagridService.config?.withBatchProcessing\"> -->\r\n        <ng-container>\r\n            <div class=\"toolbar-option\">\r\n                <!-- [disabled]=\"!nbRowsChecked || (!datagridService.config?.withBatchProcessing && nbRowsChecked > 1)\" -->\r\n                <ng-container *ngIf=\"!(!nbRowsChecked || (!datagridService.config?.withBatchProcessing && nbRowsChecked > 1))\" >\r\n                    <button mat-icon-button aria-label=\"supprimer les lignes sélectionnées\" (click)=\"deleteSelectedRows()\">\r\n                        <mat-icon title=\"supprimer les lignes sélectionnées\">delete_outline</mat-icon>\r\n                    </button>\r\n                    <button mat-icon-button aria-label=\"restaurer les lignes supprimées\" (click)=\"restoreSelectedRows()\">\r\n                        <mat-icon title=\"restaurer les lignes supprimées\">restore_from_trash</mat-icon>\r\n                    </button>\r\n                </ng-container>\r\n            </div>\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"datagrid-toolbar-part right-part\">\r\n        <div class=\"currentPaginationText\">{{datagridService.indicatorPage?.from + 1}} - {{datagridService.indicatorPage?.to}} sur {{totalRows}}</div>\r\n        <div class=\"toolbar-option\">\r\n            <button class=\"button-previous\" mat-icon-button title=\"Précédent\" (click)=\"previousPage()\"\r\n                [disabled]=\"datagridService.currentPage === 1\" aria-label=\"Afficher la page précédente\">\r\n                <mat-icon>keyboard_arrow_left</mat-icon>\r\n            </button>\r\n        </div>\r\n        <div class=\"toolbar-option\">\r\n            <button class=\"button-next\" mat-icon-button title=\"Suivant\" (click)=\"nextPage()\"\r\n                [disabled]=\"datagridService.indicatorPage?.to === totalRows\" aria-label=\"Afficher la page suivante\">\r\n                <mat-icon>keyboard_arrow_right</mat-icon>\r\n            </button>\r\n        </div>\r\n    </div>\r\n</div>","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\nimport { CocoringDatagridGroupDirective } from '../../directive/datagrid/cocoring-datagrid-group.directive';\r\nimport { CocoringButtonModule } from '../button/cocoring-button.module';\r\nimport { CocoringCheckboxModule } from '../form/inputs/input-checkbox/cocoring-checkbox.module';\r\nimport { CocoringDatagridCellComponent } from './cocoring-datagrid-cell/cocoring-datagrid-cell.component';\r\nimport {\r\n    CocoringDatagridFilterColumnComponent,\r\n} from './cocoring-datagrid-filter-modal/cocoring-datagrid-filter-column/cocoring-datagrid-filter-column.component';\r\nimport {\r\n    CocoringDatagridFilterModalComponent,\r\n} from './cocoring-datagrid-filter-modal/cocoring-datagrid-filter-modal.component';\r\nimport { CocoringDatagridHeadComponent } from './cocoring-datagrid-head/cocoring-datagrid-head.component';\r\nimport { CocoringDatagridRowComponent } from './cocoring-datagrid-row/cocoring-datagrid-row.component';\r\nimport {\r\n    CocoringDatagridSearchbarComponent,\r\n} from './cocoring-datagrid-toolbar/cocoring-datagrid-searchbar/cocoring-datagrid-searchbar.component';\r\nimport { CocoringDatagridToolbarComponent } from './cocoring-datagrid-toolbar/cocoring-datagrid-toolbar.component';\r\nimport { CocoringDatagridComponent } from './cocoring-datagrid.component';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        CocoringDatagridComponent,\r\n        CocoringDatagridRowComponent,\r\n        CocoringDatagridCellComponent,\r\n        CocoringDatagridHeadComponent,\r\n        CocoringDatagridFilterModalComponent,\r\n        CocoringDatagridFilterColumnComponent,\r\n        CocoringDatagridToolbarComponent,\r\n        CocoringDatagridSearchbarComponent,\r\n        CocoringDatagridGroupDirective\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        DragDropModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatSidenavModule,\r\n        MatListModule,\r\n        MatDialogModule,\r\n        MatInputModule,\r\n        MatIconModule,\r\n        MatButtonModule,\r\n        CocoringButtonModule,\r\n        CocoringCheckboxModule\r\n    ],\r\n    exports: [\r\n        CocoringDatagridComponent,\r\n        CocoringDatagridToolbarComponent,\r\n        CocoringDatagridGroupDirective\r\n    ],\r\n})\r\nexport class CocoringDatagridModule { }","\r\n/** DIRECTIVES */\r\n\r\nexport * from './directive/color-picker/cocoring-colorpicker.module';\r\nexport * from './directive/color-picker/cocoring-colorpicker.directive';\r\n\r\nexport * from './directive/default-image/cocoring-default-image.directive';\r\nexport * from './directive/default-image/cocoring-default-image.module';\r\n\r\nexport * from './directive/previous-page/cocoring-previous-page.module';\r\nexport * from './directive/previous-page/cocoring-previous-page.directive';\r\n\r\nexport * from './directive/datagrid/cocoring-datagrid-group.directive';\r\n\r\n/** PIPES */\r\n\r\nexport * from './pipe/variable-html/cocoring-variable-html.module';\r\nexport * from './pipe/variable-html/cocoring-variable-html.pipe';\r\n\r\nexport * from './pipe/file-size/cocoring-file-size.pipe';\r\nexport * from './pipe/file-size/cocoring-file-size.module';\r\n\r\nexport * from './pipe/pretty-print/cocoring-pretty-print.pipe';\r\nexport * from './pipe/pretty-print/cocoring-pretty-print.module';\r\n\r\nexport * from './pipe/sanitize-url/cocoring-sanitize-url.pipe';\r\nexport * from './pipe/sanitize-url/cocoring-sanitize-url.module';\r\n\r\nexport * from './pipe/truncate/cocoring-truncate.pipe';\r\nexport * from './pipe/truncate/cocoring-truncate.module';\r\n\r\n/** COMPONENTS */\r\n\r\nexport * from './component/error-handler/input-error-handler/cocoring-input-error.component';\r\nexport * from './component/error-handler/input-error-handler/cocoring-input-error.module';\r\n\r\nexport * from './component/wysiwyg/cocoring-wysiwyg.module';\r\nexport * from './component/wysiwyg/cocoring-wysiwyg.component';\r\n\r\nexport * from './component/toast-error-stacktrace/toast-error-stacktrace.module';\r\nexport * from './component/toast-error-stacktrace/toast-error-stacktrace.component';\r\n\r\nexport * from './component/modal/confirm-modal/cocoring-confirm-modal.component';\r\nexport * from './component/modal/confirm-modal/cocoring-confirm-modal.module';\r\n\r\nexport * from './component/form/form-buttons/cocoring-buttons-group.component';\r\nexport * from './component/form/form-buttons/cocoring-buttons-group.module';\r\n\r\nexport * from './component/form/inputs/input-icon/input-icon.component';\r\nexport * from './component/form/inputs/input-icon/input-icon.module';\r\n\r\nexport * from './component/form/inputs/input-checkbox/cocoring-checkbox.component';\r\nexport * from './component/form/inputs/input-checkbox/cocoring-checkbox.module';\r\n\r\nexport * from './component/form/inputs/input-checkbox-indeterminate/checkbox-indeterminate.component';\r\nexport * from './component/form/inputs/input-checkbox-indeterminate/checkbox-indeterminate.module';\r\n\r\nexport * from './component/form/inputs/input-date/cocoring-date.component';\r\nexport * from './component/form/inputs/input-date/cocoring-date.module';\r\n\r\nexport * from './component/form/inputs/input-slide-toggle/cocoring-slide-toggle.component';\r\nexport * from './component/form/inputs/input-slide-toggle/cocoring-slide-toggle.module';\r\n\r\nexport * from './component/form/inputs/input-email/cocoring-email.component';\r\nexport * from './component/form/inputs/input-email/cocoring-email.module';\r\n\r\nexport * from './component/form/inputs/input-number/cocoring-number.component';\r\nexport * from './component/form/inputs/input-number/cocoring-number.module';\r\n\r\nexport * from './component/form/inputs/input-password/cocoring-password.component';\r\nexport * from './component/form/inputs/input-password/cocoring-password.module';\r\n\r\nexport * from './component/form/inputs/input-select/cocoring-select.component';\r\nexport * from './component/form/inputs/input-select/cocoring-select.module';\r\n\r\nexport * from './component/form/inputs/input-text/cocoring-text.component';\r\nexport * from './component/form/inputs/input-text/cocoring-text.module';\r\n\r\nexport * from './component/form/inputs/input-textarea/cocoring-textarea.component';\r\nexport * from './component/form/inputs/input-textarea/cocoring-textarea.module';\r\n\r\nexport * from './component/form/inputs/input-viewer/cocoring-viewer.component';\r\nexport * from './component/form/inputs/input-viewer/cocoring-viewer.module';\r\n\r\nexport * from './component/form/form-container/cocoring-form-container.component';\r\nexport * from './component/form/form-container/cocoring-form-container.module';\r\n\r\nexport * from './component/form/index';\r\n\r\nexport * from './component/button-link/cocoring-button-link.module';\r\nexport * from './component/button-link/cocoring-button-link.component';\r\n\r\nexport * from './component/button/cocoring-button.module';\r\nexport * from './component/button/cocoring-button.component';\r\n\r\nexport * from './component/uploader/cocoring-uploader.module';\r\nexport * from './component/uploader/cocoring-uploader.component';\r\n\r\nexport * from './component/datagrid/cocoring-datagrid.component';\r\nexport * from './component/datagrid/cocoring-datagrid-toolbar/cocoring-datagrid-toolbar.component';\r\nexport * from './component/datagrid/cocoring-datagrid.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4","i1","i2.CocoringButtonComponent","i3","i5.CocoringInputErrorComponent","i4.CocoringInputErrorComponent","i5.CocoringVariableHtmlPipe","i5","i6.CocoringInputErrorComponent","i7.InputIconComponent","i6.InputIconComponent","takeUntil","i3.InputIconComponent","i6","i7","i8.CocoringInputErrorComponent","filter","i3.FormBuilderService","i6.CocoringVariableHtmlPipe","i2.UploaderService","i1.FormBuilderService","i2.FormBuilderService","i5.CocoringButtonsGroupComponent","i6.CocoringFileSizePipe","i8","i9","i10.CocoringFileSizePipe","i6.CocoringUploaderListFileComponent","i1.DatagridService","i3.CocoringCheckboxComponent","i4.CocoringDatagridCellComponent","i3.DatagridService","i5.CocoringDatagridRowComponent","i6.CocoringDatagridHeadComponent","i10.CocoringDatagridFilterColumnComponent","i2.DatagridService","i7.CocoringCheckboxComponent","i8.CocoringDatagridSearchbarComponent"],"mappings":"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"}