{"version":3,"file":"sgc-ng-group-form-edit.mjs","sources":["../../../projects/sgc-ng-group-form-edit/src/lib/sgc-ng-group-form-edit.service.ts","../../../projects/sgc-ng-group-form-edit/src/lib/sgc-ng-group-form-edit.component.ts","../../../projects/sgc-ng-group-form-edit/src/lib/sgc-ng-group-form-edit.component.html","../../../projects/sgc-ng-group-form-edit/src/lib/sgc-ng-group-form-edit.module.ts","../../../projects/sgc-ng-group-form-edit/src/public-api.ts","../../../projects/sgc-ng-group-form-edit/src/sgc-ng-group-form-edit.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SgcNgGroupFormEditService {\n\n  constructor() { }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CrudDataService_CreateOrEditView, DefaultRowGapBetweenFields, DefaultRowHeight, Max_WidthFieldInResponsiveGridWiew, Min_WidthFieldInResponsiveGridWiew, TGroupFieldFormEdit, TListeFieldFormEditData } from 'sgc-share-lib';\n\n\n@Component({\n    selector: 'sgc-ng-group-form-edit',\n    templateUrl: './sgc-ng-group-form-edit.component.html',\n    styleUrls: ['./sgc-ng-group-form-edit.component.scss'],\n    standalone: false\n})\nexport class SgcNgGroupFormEditComponent<TDataCreate,TDataEdit,TDataList> implements OnInit {\n  @Input() groupForm!: TGroupFieldFormEdit;\n  @Output() groupFormChange: EventEmitter<TGroupFieldFormEdit>;\n  @Input() groupSubmitted?: boolean = false;\n  @Input() crudDataService!: CrudDataService_CreateOrEditView<TDataCreate,TDataEdit,TDataList>;\n  @Output() crudDataServiceChange: EventEmitter<CrudDataService_CreateOrEditView<TDataCreate,TDataEdit,TDataList>>;\n\n  nullableKeyMap: number = -1;\n\n  rowFields_begin: Array<TListeFieldFormEditData> = [];\n  rowFields_end: Array<TListeFieldFormEditData> = [];\n\n  myMaxFieldsByRow: number = Max_WidthFieldInResponsiveGridWiew;\n  myRowGap: number = 5;\n\n  constructor() {\n    this.groupFormChange = new EventEmitter<TGroupFieldFormEdit>();\n    this.crudDataServiceChange = new EventEmitter<CrudDataService_CreateOrEditView<TDataCreate,TDataEdit,TDataList>>();\n  }\n\n  ngOnInit(): void {\n    console.log('****** GroupFormEdit COMPONENT - NGONINIT *************');\n    console.log(this.groupForm);\n    if (this.groupForm.rowGapBetweenFields == undefined) {\n      this.groupForm.rowGapBetweenFields = DefaultRowGapBetweenFields;\n    }\n    if (this.groupForm.rowHeight == undefined) {\n      this.groupForm.rowHeight = DefaultRowHeight;\n    }\n    if (this.groupForm.labelSeparatorParam == undefined) {\n      this.groupForm.labelSeparatorParam = {};\n    }\n    this.initListeFieldsByRow();\n  }\n\n  getLabel(): string {\n    return this.groupForm &&\n      this.groupForm.showLabel &&\n      this.groupForm.label != undefined\n      ? this.groupForm.label\n      : '';\n  }\n\n  /*getIconSeparatorLabel(): string {\n    return this.groupForm.showLabel && this.groupForm.iconSeparator != undefined ? this.groupForm.iconSeparator : \"\";\n  }*/\n\n  private initListeFieldsByRow = (): void => {\n    let myMap0: Map<number, TListeFieldFormEditData> = new Map();\n    if (this.groupForm && this.groupForm.listeFiedsForm != undefined) {\n      this.groupForm.listeFiedsForm.forEach((myfield) => {\n        if (myfield.rowNumberInForm == undefined) {\n          //--- Si rowNumberInForm non défini, je lui affecte la valeur -1\n          myfield.rowNumberInForm = this.nullableKeyMap;\n        }\n        if (!myMap0.has(myfield.rowNumberInForm)) {\n          myMap0.set(myfield.rowNumberInForm, [myfield]);\n        } else {\n          let findListeFieldsForMyfield = myMap0.get(myfield.rowNumberInForm);\n          findListeFieldsForMyfield?.push(myfield);\n        }\n      });\n    }\n    console.log('***** GROUP EDIT FORM --- Init liste Fields By Row  ---- ');\n    //console.log(myMap0)\n    this.initListeRowsFieldsBy_Begin(myMap0);\n    this.initListeRowsFieldsBy_End(myMap0);\n    //console.log(\"***** GROUP EDIT FORM --- Init liste Fields By Row -- 1  ---- \")\n    //console.log(myMap0)\n    console.log(this.rowFields_begin);\n    console.log(this.rowFields_end);\n  };\n\n  private initListeRowsFieldsBy_Begin = (\n    myMap: Map<number, TListeFieldFormEditData>\n  ): void => {\n    let listeRows: Array<TListeFieldFormEditData> = [];\n    //--- Recupère la liste des keysMap non null et les ordonne par ordre croissant  ----\n    const myMapKeys: Array<number> = Array.from(myMap?.keys())\n      .filter((elt) => elt != this.nullableKeyMap)\n      .sort((a, b) => a - b);\n    myMapKeys?.forEach((mykey) => {\n      let myRow: TListeFieldFormEditData | undefined = myMap.get(mykey);\n      if (myRow) {\n        listeRows.push(\n          myRow /*.filter(elt=> elt.isHide==undefined || !elt.isHide())*/\n        );\n      }\n    });\n    this.rowFields_begin = this.ajustWidthOfFieldsRowTomax100percent(listeRows);\n  };\n\n  private initListeRowsFieldsBy_End = (\n    myMap: Map<number, TListeFieldFormEditData>\n  ): void => {\n    let listeRows: Array<TListeFieldFormEditData> = [];\n    //--- Recupère la liste des keysMap non null et les ordonne par ordre croissant  ----\n    const myMapKeys: Array<number> = Array.from(myMap?.keys())\n      .filter((elt) => elt == this.nullableKeyMap)\n      .sort((a, b) => a - b);\n    myMapKeys?.forEach((mykey) => {\n      let myRow: TListeFieldFormEditData | undefined = myMap.get(mykey);\n      if (myRow) {\n        listeRows.push(myRow);\n      }\n    });\n    this.rowFields_end = this.ajustWidthOfFieldsRowTomax100percent(listeRows);\n  };\n\n  //--------------------------\n  /**\n   *\n   */\n  ajustWidthOfFieldsRowTomax100percent(\n    myRowsListeFields: Array<TListeFieldFormEditData>\n  ): Array<TListeFieldFormEditData> {\n    let rowsListeFields: Array<TListeFieldFormEditData> = myRowsListeFields;\n    if (rowsListeFields) {\n      for (let i: number = 0; i < rowsListeFields.length; i++) {\n        let myrow: TListeFieldFormEditData = rowsListeFields[i];\n        myrow = myrow.map((elt) => {\n          elt.widthInResponsiveGridWiew =\n            elt.widthInResponsiveGridWiew == undefined ||\n            elt.widthInResponsiveGridWiew < Min_WidthFieldInResponsiveGridWiew\n              ? Min_WidthFieldInResponsiveGridWiew\n              : elt.widthInResponsiveGridWiew >\n                Max_WidthFieldInResponsiveGridWiew\n              ? Max_WidthFieldInResponsiveGridWiew\n              : elt.widthInResponsiveGridWiew;\n          return elt;\n        });\n\n        console.log(\n          '****** GROUP FORM EDIT ---> AjustWidthOfFields 1 --> Row before ajust 1 ************'\n        );\n        console.log(myrow);\n\n        const totalWidth: number = myrow\n          .map((elt) =>\n            elt.widthInResponsiveGridWiew ? elt.widthInResponsiveGridWiew : 0\n          )\n          .reduce((sum, currentval) => sum + currentval);\n\n        console.log(\n          '****** GROUP FORM EDIT ---> AjustWidthOfFields 1 --> Totalwidth ************'\n        );\n        console.log(totalWidth);\n\n        if (myrow.length == 1 || totalWidth<=Max_WidthFieldInResponsiveGridWiew) {\n          rowsListeFields[i] = myrow;\n        } else {\n          rowsListeFields[i] = myrow.map((elt) => {\n            if (elt.widthInResponsiveGridWiew != undefined) {\n              elt.widthInResponsiveGridWiew = Math.round(\n                (Max_WidthFieldInResponsiveGridWiew *\n                  elt.widthInResponsiveGridWiew) /\n                  totalWidth\n              );\n            }\n            return elt;\n          });\n        }\n      }\n    }\n    return rowsListeFields;\n  }\n\n  //--------------------\n  showGroupFieldForm(): boolean {\n    const showgroup: boolean =\n      this.groupForm && this.groupForm.isHide != undefined\n        ? !this.groupForm.isHide()\n        : true;\n    //console.log(\"*********  GROUPFORMEDIT -- TEST SHOW GROUP **************************\");\n    //console.log(showgroup);\n    //console.log(this.groupForm.isHide!=undefined?this.groupForm.isHide():\"---\")\n    return showgroup;\n  }\n}\n","<ng-template #customGroupFieldsView>\n  <div class=\"rowGrid\" *ngFor=\"let rowsfieldform of rowFields_begin\">\n    @for (fieldform of rowsfieldform; track fieldform.name; let isLast = $last, idx=$index) {\n    <div      \n      [ngStyle]=\"{\n        width: fieldform.widthInResponsiveGridWiew + '%',\n        'margin-right': !isLast ? groupForm.rowGapBetweenFields + 'px' : null\n      }\"\n    >\n      <sgc-ng-field-form-edit\n        [(fieldForm)]=\"rowsfieldform[idx]\"\n        [fieldSubmitted]=\"groupSubmitted\"\n        [(crudDataService)]=\"crudDataService\"\n      ></sgc-ng-field-form-edit>\n    </div>\n  }\n  </div>\n</ng-template>\n\n<!--div style=\"margin: 0px !important; padding: 0px !important;\"-->\n<div class=\"main-div\" *ngIf=\"showGroupFieldForm()\">\n  <ng-container\n    *ngIf=\"\n      groupForm &&\n      !groupForm.showBorder &&\n      groupForm.showLabel &&\n      groupForm.labelSeparatorParam\n    \"\n  >\n    <sgc-ng-separator\n      [label]=\"groupForm.label\"\n      [params]=\"groupForm.labelSeparatorParam\"\n    ></sgc-ng-separator>\n    <!--mat-divider>\n      <span class=\"p-tag\">{{ getLabel() }}</span>\n    </mat-divider-->\n    <ng-container *ngTemplateOutlet=\"customGroupFieldsView\"></ng-container>\n    <sgc-ng-separator></sgc-ng-separator>\n  </ng-container>\n\n  <ng-container\n    *ngIf=\"groupForm && !groupForm.showBorder && !groupForm.showLabel\"\n  >\n    <div class=\"NoBorderNoLabel\">\n      <ng-container *ngTemplateOutlet=\"customGroupFieldsView\"></ng-container>\n    </div>\n  </ng-container>\n\n  <ng-container *ngIf=\"groupForm && groupForm.showBorder == true\">\n    <mat-card\n      class=\"mat-elevation-z0 mat-card-outline\"\n      [ngStyle]=\"{\n        background: groupForm.css_backgroundColor\n          ? groupForm.css_backgroundColor\n          : null\n      }\"\n    >\n      <mat-card-header *ngIf=\"groupForm.showLabel\">\n        <mat-card-title\n          [ngStyle]=\"{\n            color: groupForm.css_titleColor ? groupForm.css_titleColor : null\n          }\"\n        >\n          {{ getLabel() }}\n        </mat-card-title>\n      </mat-card-header>\n      <mat-card-content>\n        <ng-container *ngTemplateOutlet=\"customGroupFieldsView\"></ng-container>\n      </mat-card-content>\n    </mat-card>\n    <!--fieldset\n      [ngClass]=\"{\n        myBackgroundCss: true,\n        myBorderCss: groupForm.showBorder,\n        myNoBorderCss: !groupForm.showBorder\n      }\"\n    >\n      <legend *ngIf=\"groupForm.showLabel\">{{ getLabel() }}</legend>\n      <ng-container *ngTemplateOutlet=\"customGroupFieldsView\"></ng-container>\n    </fieldset-->\n  </ng-container>\n</div>\n<!--/div-->\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SgcNgGroupFormEditComponent } from './sgc-ng-group-form-edit.component';\nimport { SgcNgFieldFormEditModule } from 'sgc-ng-field-form-edit';\nimport { MatDividerModule } from '@angular/material/divider';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatCardModule} from '@angular/material/card';\nimport { SgcNgSeparatorModule } from 'sgc-ng-separator';\n\n@NgModule({\n  declarations: [\n    SgcNgGroupFormEditComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,    \n    ReactiveFormsModule,\n    SgcNgFieldFormEditModule,\n    MatDividerModule,\n    MatGridListModule,\n    MatCardModule,\n    SgcNgSeparatorModule\n  ],\n  exports: [\n    SgcNgGroupFormEditComponent,\n    SgcNgFieldFormEditModule,\n    MatDividerModule,\n    MatGridListModule,\n    MatCardModule,\n    SgcNgSeparatorModule\n  ]\n})\nexport class SgcNgGroupFormEditModule { }\n","/*\n * Public API Surface of sgc-ng-group-form-edit\n */\n\nexport * from './lib/sgc-ng-group-form-edit.service';\nexport * from './lib/sgc-ng-group-form-edit.component';\nexport * from './lib/sgc-ng-group-form-edit.module';\n//export * from './lib/model/sgc-ng-model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}