{"version":3,"file":"exin-proposal-management.mjs","sources":["../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-crescita/xn-proposal-business-plan-crescita.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-crescita/xn-proposal-business-plan-crescita.component.html","../../../projects/xn-proposal/management/src/xn-proposal-business-plan-management.service.ts","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-other-costs/xn-proposal-business-plan-other-costs.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-other-costs/xn-proposal-business-plan-other-costs.component.html","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-evolution-table/xn-proposal-business-plan-evolution-table.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan-evolution-table/xn-proposal-business-plan-evolution-table.component.html","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-business-plan/xn-proposal-business-plan.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management.service.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-list/xn-proposal-management-list.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-list/xn-proposal-management-list.component.html","../../../projects/xn-proposal/management/src/xn-proposal-loi-management.service.ts","../../../projects/xn-proposal/management/src/xn-proposal-config.ts","../../../projects/xn-proposal/management/src/xn-proposal-config.service.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-editor/xn-proposal-management-loi-blocks-editor.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-editor/xn-proposal-management-loi-blocks-editor.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-preview/xn-proposal-management-loi-blocks-preview.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-item.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-item.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-preview/xn-proposal-management-preview.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-preview/xn-proposal-management-preview.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-form-request/xn-proposal-management-form-request.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-form-request/xn-proposal-management-form-request.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-history/xn-proposal-management-history.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-history/xn-proposal-management-history.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-document/xn-proposal-management-loi-document.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-loi-document/xn-proposal-management-loi-document.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management-item/xn-proposal-management-item.component.ts","../../../projects/xn-proposal/management/src/xn-proposal-management-item/xn-proposal-management-item.component.html","../../../projects/xn-proposal/management/src/xn-proposal-management.module.ts","../../../projects/xn-proposal/management/exin-proposal-management.ts"],"sourcesContent":["import { Component, OnInit, Inject } from '@angular/core';\nimport { XnFormlyPage } from '@exin/core/formly';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-business-plan-crescita',\n  templateUrl: './xn-proposal-business-plan-crescita.component.html',\n  styleUrls: ['./xn-proposal-business-plan-crescita.component.less']\n})\nexport class XnProposalBusinessPlanCrescitaComponent extends XnFormlyPage implements OnInit {\n\n  crescita: number[] = [];\n\n  constructor(@Inject(NZ_MODAL_DATA) private nzData: any) {\n    super();\n  }\n\n  ngOnInit() {\n\n    this.crescita = this.nzData?.crescita || [];\n\n    this.model = {\n      items: [...this.crescita],\n    };\n\n    this.fields = [\n      {\n        type: 'repeat',\n        key: 'items',\n        fieldArray: {\n          type: 'percent',\n          className: 'ant-col ant-col-xs-24 ant-col-sm-12 ant-col-md-8',\n          templateOptions: {\n            label: 'Crescita Anno',\n            required: true,\n          },\n          expressionProperties: {\n            'templateOptions.label': (model, formState, field) => {\n              return 'Crescita Anno ' + (+field?.key + 1);\n            },\n            'templateOptions.disabled': (model, formState, field) => {\n              return (+field?.key < 2);\n            },\n            'className': (model, formState, field) => {\n              return (+field?.key < 2) ? 'd-none' : 'ant-col ant-col-xs-24 ant-col-sm-12 ant-col-md-8';\n            }\n          },\n        }\n      },\n    ];\n  }\n\n}\n","<form autocomplete=\"off\" nz-form [nzLayout]=\"'vertical'\" [formGroup]=\"form\">\n  <formly-form [form]=\"form\" [model]=\"model\" [fields]=\"fields\" [options]=\"options\"></formly-form>\n</form>","import { Injectable } from '@angular/core';\nimport { XnHttpService } from '@exin/core/core';\nimport { XnProposalBusinessPlan } from './xn-proposal-management.model';\nimport { Dictionary } from '@exin/core/utils';\nimport { catchError, map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class XnProposalBusinessPlanManagementService {\n\n  private _dictionary: Dictionary<XnProposalBusinessPlan> = new Dictionary<XnProposalBusinessPlan>();\n\n  constructor(\n    private http: XnHttpService\n  ) { }\n\n  //prelievo di tutti i documenti: GET /api/v1/proposals/{proposal_id}/loi -> ritorna la lista dei document (id, template, proposal_id)\n  loadProposalBusinessPlan(proposal_id: string): Observable<XnProposalBusinessPlan> {\n    return this.http.getApiSchema<XnProposalBusinessPlan>(`v2/proposals/${proposal_id}/business-plan`)\n      .pipe(\n        map((business_plan: XnProposalBusinessPlan) => {\n          this._updateBusinessPlan(proposal_id, business_plan);\n          return business_plan;\n        })\n      );\n  }\n\n  getProposalBusinessPlan(proposal_id: string): Observable<XnProposalBusinessPlan> {\n    return this._dictionary.objects$.pipe(\n      map(objects => objects[proposal_id])\n    )\n  }\n\n  editProposalBusinessPlanCosts(proposal_id: string, costs) {\n    return this.http.postApiSchema<XnProposalBusinessPlan>(`v2/proposals/${proposal_id}/business-plan/costs`, costs)\n      .pipe(\n        map((business_plan: XnProposalBusinessPlan) => {\n          this._updateBusinessPlan(proposal_id, business_plan);\n          return business_plan;\n        })\n      );\n  }\n\n  editProposalBusinessCrescita(proposal_id: string, crescita) {\n    return this.http.postApiSchema<XnProposalBusinessPlan>(`v2/proposals/${proposal_id}/business-plan/market-evolution`, crescita)\n      .pipe(\n        map((business_plan: XnProposalBusinessPlan) => {\n          this._updateBusinessPlan(proposal_id, business_plan);\n          return business_plan;\n        })\n      );\n  }\n\n  private _updateBusinessPlan(proposal_id: string, business_plan) {\n    this._dictionary.patchValue({ key: proposal_id, value: business_plan })\n  }\n}\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { XnFormlyPage } from '@exin/core/formly';\nimport { XnProposalBusinessPlanManagementService } from '../../xn-proposal-business-plan-management.service';\nimport { XnProposalBusinessPlanEvolution } from '../../xn-proposal-management.model';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-business-plan-other-costs',\n  templateUrl: './xn-proposal-business-plan-other-costs.component.html',\n  styleUrls: ['./xn-proposal-business-plan-other-costs.component.less']\n})\nexport class XnProposalBusinessPlanOtherCostsComponent extends XnFormlyPage implements OnInit {\n\n  proposal_id: string;\n  costs_length: number = 7;\n  default_data: XnProposalBusinessPlanEvolution;\n\n  data: XnProposalBusinessPlanEvolution;\n\n  dataSet: any[] = [];\n\n  preloading: boolean = true;\n\n  constructor(\n    private xnProposalBusinessPlanManagementService: XnProposalBusinessPlanManagementService,\n    @Inject(NZ_MODAL_DATA) private nzData: any\n  ) {\n    super();\n  }\n\n  ngOnInit() {\n    // Inizializzazione delle proprietà dalla injection\n    this.proposal_id = this.nzData?.proposal_id;\n    this.costs_length = this.nzData?.costs_length ?? 7; // Manteniamo il default se non specificato\n    this.default_data = this.nzData?.default_data;\n\n    this.fields = [\n      {\n        type: 'input',\n        key: 'nome',\n        className: 'ant-col ant-col-xs-24',\n        templateOptions: {\n          label: 'Nome',\n          placeholder: 'Inserisci il nome del costo',\n          required: true,\n        }\n      },\n      {\n        type: 'repeat',\n        key: 'costs',\n        fieldArray: {\n          type: 'currency',\n          className: 'ant-col ant-col-xs-12 ant-col-md-8 ant-col-lg-6',\n          templateOptions: {\n            label: 'Costo Anno',\n            required: true,\n            allowNegative: true,\n          },\n          expressionProperties: {\n            'templateOptions.label': (model, formState, field) => {\n              return 'Costo Anno ' + (+field?.key + 1);\n            }\n          }\n        }\n      },\n    ];\n    this._resetModel();\n\n    this.data = Object.assign({}, this.default_data);\n    this.dataSet = [...(this.data?.child?.slice() || [])];\n    this.preloading = false;\n  }\n\n  get rowHeader(): string[] {\n    const result = Array.from({ length: this.costs_length });\n    return result.map((_, i) => 'Anno ' + (i + 1));\n  }\n\n  // remove data\n  remove(index) {\n    this.dataSet = this.dataSet.filter((d, i) => i !== index);\n    this.data.child = this.dataSet;\n  }\n\n  // add data\n  add() {\n    let newData = Object.assign({}, this.form.value);\n    this.dataSet = [ ...this.dataSet, newData];\n    this.data.child = this.dataSet;\n    this._resetModel();\n  }\n\n  private _resetModel() {\n    this.model = Object.assign({}, {\n      nome: '',\n      costs: Array.from({ length: this.costs_length, }, (_, i) => 0),\n    });\n  }\n\n}\n","<nz-table #expandTable [nzLoading]=\"preloading\" [nzData]=\"dataSet\" [nzShowPagination]=\"false\"\n  [nzFrontPagination]=\"false\">\n  <thead>\n    <tr>\n      <th>\n        <span nz-typography nzType=\"secondary\">Nome Costo</span>\n      </th>\n      <ng-container *ngFor=\"let head of (rowHeader || []); let i = index;\">\n        <th style=\"text-align: right;\">\n          <span nz-typography nzType=\"secondary\">\n            {{head}}\n          </span>\n        </th>\n      </ng-container>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <ng-container *ngFor=\"let row of expandTable.data; let i = index;\">\n      <ng-template [ngTemplateOutlet]=\"rowDataTemplate\" [ngTemplateOutletContext]=\"{ row: row, index: i }\">\n      </ng-template>\n    </ng-container>\n  </tbody>\n  <tfoot class=\"ant-table-thead\">\n    <tr>\n      <th [attr.colspan]=\"costs_length + 1\">\n        <form autocomplete=\"off\" nz-form [nzLayout]=\"'vertical'\" [formGroup]=\"form\">\n            <formly-form [form]=\"form\" [model]=\"model\" [fields]=\"fields\" [options]=\"options\"></formly-form>\n        </form>\n      </th>\n      <th>\n        <button nz-button nzType=\"primary\" [disabled]=\"form?.invalid\" (click)=\"add()\">\n          <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n          Aggiungi\n        </button>\n      </th>\n    </tr>\n  </tfoot>\n</nz-table>\n\n<ng-template #rowDataTemplate let-row=\"row\" let-index=\"index\">\n  <tr>\n    <td>\n      <span nz-typography>\n        <strong>{{ row.nome }}</strong>\n      </span>\n    </td>\n    <ng-container *ngFor=\"let value of (row?.costs || []); let i = index;\">\n      <td style=\"text-align: right;\">\n        <span nz-typography [nzType]=\"value < 0 ? 'danger' : null\">\n          {{value | xnCurrency}}\n        </span>\n      </td>\n    </ng-container>\n    <td>\n      <button nz-button nzType=\"link\" nzDanger (click)=\"remove(index)\">\n        <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n        Rimuovi\n      </button>\n    </td>\n  </tr>\n</ng-template>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { XnProposalBusinessPlanEvolution } from '../../xn-proposal-management.model';\n\n@Component({\n  selector: 'xn-proposal-business-plan-evolution-table',\n  templateUrl: './xn-proposal-business-plan-evolution-table.component.html',\n  styleUrls: ['./xn-proposal-business-plan-evolution-table.component.less']\n})\nexport class XnProposalBusinessPlanEvolutionTableComponent implements OnInit {\n\n  @Input() data: XnProposalBusinessPlanEvolution[] = [];\n\n  @Input() title: string = null;\n\n  @Input() keyValue: string = null;\n\n  @Input() showTotal: boolean = false;\n\n  @Input() rowHeaderInfo: string[] = [];\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n  get rowTotal(): number[] {\n    if (!this.data || !this.keyValue) {\n      return [];\n    }\n\n    let arrays = this.data.map(row => row[this.keyValue] || []);\n\n    return this._sumArrays(...arrays);\n  }\n\n  private _sumArrays(...arrays): number[] {\n    const n = arrays.map(xs => xs.length || 0).reduce((max, length) => Math.max(max, length), 0);\n    const result = Array.from({ length: n });\n    return result.map((_, i) => arrays.map(xs => xs[i] || 0).reduce((sum, x) => sum + +x, 0));\n  }\n\n  get rowHeader(): string[] {\n    if (!this.data || !this.keyValue) {\n      return [];\n    }\n    let arrays = this.data.map(row => row[this.keyValue] || []);\n\n    return this._headerArrays(...arrays);\n  }\n\n  private _headerArrays(...arrays): string[] {\n    const n = arrays.map(xs => xs.length || 0).reduce((max, length) => Math.max(max, length), 0);\n    const result = Array.from({ length: n });\n    return result.map((_, i) => 'Anno ' + (i + 1));\n  }\n\n}\n","<nz-card [nzTitle]=\"title\" [nzBodyStyle]=\"{padding: 0}\" [nzExtra]=\"extraTemplate\">\n  <div class=\"table-container\">\n    <nz-table #expandTable [nzData]=\"data\" [nzShowPagination]=\"false\" [nzFrontPagination]=\"false\">\n      <thead>\n        <tr>\n          <th>\n            <span nz-typography nzType=\"secondary\">Nome</span>\n          </th>\n          <ng-container *ngFor=\"let head of (rowHeader || []); let i = index;\">\n            <th style=\"text-align: right;\">\n              <span \n                nz-typography \n                nzType=\"secondary\">\n                {{head}} \n                <i \n                  *ngIf=\"rowHeaderInfo[i]\"\n                  nz-icon \n                  nzType=\"info-circle\" \n                  nzTheme=\"fill\"\n                  nz-popover\n                  [nzPopoverTitle]=\"null\"\n                  [nzPopoverContent]=\"rowHeaderInfo[i]\"></i>\n              </span>\n            </th>\n          </ng-container>\n        </tr>\n      </thead>\n      <tbody>\n        <ng-template \n          *ngFor=\"let row of expandTable.data\" \n          [ngTemplateOutlet]=\"rowDataTemplate\" \n          [ngTemplateOutletContext]=\"{ row: row, level: 0 }\">\n        </ng-template>\n      </tbody>\n      <tfoot class=\"ant-table-thead\" *ngIf=\"!!showTotal\">\n          <ng-template [ngTemplateOutlet]=\"rowTotalTemplate\"></ng-template>\n      </tfoot>\n    </nz-table>\n  </div>\n</nz-card>\n\n<ng-template #rowDataTemplate let-row=\"row\" let-level=\"level\">\n  <tr>\n    <td\n      [nzIndentSize]=\"level * 16\"\n      [nzShowExpand]=\"!!row?.child?.length\"\n      [(nzExpand)]=\"row.expand\"\n     >\n      <span nz-typography>\n        <strong>{{ row.nome }}</strong>\n      </span>\n    </td>\n    <ng-container *ngFor=\"let value of (row[keyValue] || []); let i = index;\">\n      <td style=\"text-align: right;\">\n        <span nz-typography [nzType]=\"value < 0 ? 'danger' : null\">\n          {{value | xnCurrency}}\n        </span>\n      </td>\n    </ng-container>\n  </tr>\n\n  <ng-container *ngFor=\"let child of row?.child\">\n    <ng-container *ngIf=\"!!row.expand\">\n      <ng-template [ngTemplateOutlet]=\"rowDataTemplate\" [ngTemplateOutletContext]=\"{ row: child, level: level + 1 }\"></ng-template>\n    </ng-container>\n  </ng-container>\n</ng-template>\n\n<ng-template #rowTotalTemplate>\n  <tr>\n    <th>\n      <span nz-typography>\n        <strong>Totale {{title}}</strong>\n      </span>\n    </th>\n    <ng-container *ngFor=\"let value of (rowTotal || [])\">\n      <th style=\"text-align: right;\">\n        <span nz-typography [nzType]=\"value < 0 ? 'danger' : null\">\n          <strong>{{value | xnCurrency}}</strong>\n        </span>\n      </th>\n    </ng-container>\n  </tr>\n</ng-template>\n\n<ng-template #extraTemplate>\n  <ng-content></ng-content>\n</ng-template>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NzModalService, NzNotificationService } from '@exin/core/ant-design';\nimport { XnPercentPipe } from '@exin/core/pipes';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, startWith, switchMap, tap } from 'rxjs/operators';\nimport { XnProposalBusinessPlanManagementService } from '../xn-proposal-business-plan-management.service';\nimport { XnProposalBusinessPlan, XnProposalBusinessPlanEvolution } from '../xn-proposal-management.model';\nimport { XnProposalBusinessPlanCrescitaComponent } from './xn-proposal-business-plan-crescita/xn-proposal-business-plan-crescita.component';\nimport { XnProposalBusinessPlanOtherCostsComponent } from './xn-proposal-business-plan-other-costs/xn-proposal-business-plan-other-costs.component';\n\n@Component({\n  selector: 'xn-proposal-business-plan',\n  templateUrl: './xn-proposal-business-plan.component.html',\n  styleUrls: ['./xn-proposal-business-plan.component.less']\n})\nexport class XnProposalBusinessPlanComponent implements OnInit {\n\n  selectedIndex = 0;\n\n  preloading = true;\n\n  private _proposal_id: string = null;\n  @Input()\n  set proposal_id(proposal_id: string) {\n    this._proposal_id = proposal_id;\n    this._proposal_id$.emit(proposal_id);\n  };\n  get proposal_id() {\n    return this._proposal_id;\n  }\n  private _proposal_id$: EventEmitter<string> = new EventEmitter<string>();\n\n  business_plan: XnProposalBusinessPlan;\n\n  wallet_evoluzione_fine_anno_header_info: string[] = [];\n\n  private _get_business_plan$: Subscription;\n  private _load_business_plan$: Subscription;\n\n  @Output('onBack') onBack$: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor(\n    private xnProposalBusinessPlanManagementService: XnProposalBusinessPlanManagementService,\n    private modal: NzModalService,\n    private notification: NzNotificationService,\n  ) { }\n\n  ngOnInit() {\n\n    const _proposal_id$ = this._proposal_id$.pipe(\n      startWith(this.proposal_id),\n      filter(proposal_id => !!proposal_id),\n      distinctUntilChanged(),\n    );\n\n    this._load_business_plan$ = _proposal_id$.pipe(\n      switchMap((proposal_id) => this.xnProposalBusinessPlanManagementService.loadProposalBusinessPlan(proposal_id)),\n    ).subscribe(business_plan => {\n      this.preloading = false;\n    });\n\n    this._get_business_plan$ = _proposal_id$.pipe(\n      switchMap((proposal_id) => this.xnProposalBusinessPlanManagementService.getProposalBusinessPlan(proposal_id)),\n    ).subscribe(business_plan => {\n      this.business_plan = business_plan;\n      this.wallet_evoluzione_fine_anno_header_info = this.walletEvoluzioneFineAnnoHeaderInfo();\n    });\n  }\n\n  ngOnDestroy() {\n    this._get_business_plan$?.unsubscribe();\n    this._load_business_plan$?.unsubscribe();\n    this._proposal_id$?.unsubscribe();\n    this.onBack$?.unsubscribe();\n  }\n\n  back(event) {\n    this.onBack$?.emit(event);\n  }\n\n  walletEvoluzioneFineAnnoHeaderInfo(): string[] {\n    if (!this.business_plan?.crescita) {\n      return [];\n    }\n    let pipe = new XnPercentPipe();\n    let values = this.business_plan?.crescita?.map(val => val ? 'Attuale crescita prevista per l\\'anno del ' + pipe.transform(val / 100) : null);\n\n    return values;\n  }\n\n  moreCosts(costs: XnProposalBusinessPlanEvolution[]) {\n    let manual_costs = costs?.find(c => c.codice == 'MANUAL_COSTS');\n    if(!manual_costs) {\n      if (costs?.length) {\n        manual_costs = costs[costs?.length - 1];\n      } else {\n        return;\n      }\n    }\n\n    const modal = this.modal.create({\n      nzTitle: 'Personalizza i Contributi aggiuntivi del Business Plan',\n      nzWidth: '80vw',\n      nzData: {\n        proposal_id: this.proposal_id,\n        default_data: manual_costs,\n      },\n      nzBodyStyle: {\n        'padding': '0px',\n      },\n      nzContent: XnProposalBusinessPlanOtherCostsComponent,\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Conferma',\n          type: 'primary',\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalBusinessPlanManagementService.editProposalBusinessPlanCosts(\n              this.proposal_id,\n              contentComponentInstance?.data\n            )\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Errore nel salvataggio dei costi.');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'I costi sono stati salvati correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n\n  editCrescita() {\n    const modal = this.modal.create({\n      nzTitle: 'Personalizza la crescita del portafoglio al termine dell\\'inserimento',\n      nzWidth: '80vw',\n      nzData: {\n        crescita: this.business_plan?.crescita || [],\n      },\n      // nzBodyStyle: {\n      //   'padding': '0px',\n      // },\n      nzContent: XnProposalBusinessPlanCrescitaComponent,\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Conferma',\n          type: 'primary',\n          autoLoading: true,\n          disabled: (contentComponentInstance) => contentComponentInstance?.form?.invalid,\n          onClick: contentComponentInstance => {\n            return this.xnProposalBusinessPlanManagementService.editProposalBusinessCrescita(\n              this.proposal_id,\n              contentComponentInstance?.form?.getRawValue()\n            )\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Errore nel salvataggio dei valori di crescita.');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'I valori di crescita sono stati salvati correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n\n}\n","<!-- <pre>{{\n  business_plan | json\n}}</pre> -->\n\n<nz-header>\n  <nz-page-header class=\"container\" nzBackIcon (nzBack)=\"back($event)\">\n\n      <nz-breadcrumb nz-page-header-breadcrumb [nzAutoGenerate]=\"true\" #breadcrumb>\n          <nz-breadcrumb-item>\n              <a routerLink=\"/\"><i nz-icon nzType=\"home\"></i></a>\n          </nz-breadcrumb-item>\n      </nz-breadcrumb>\n\n      <nz-page-header-extra>\n        <!-- <button nz-button\n          nzType=\"default\" \n          (click)=\"reload()\">\n          <i nz-icon nzType=\"rollback\" nzTheme=\"outline\"></i> Ricarica\n        </button> -->\n      </nz-page-header-extra>\n      \n      <!--title-->\n      <nz-page-header-title>Business Plan</nz-page-header-title>\n\n\n      <nz-page-header-content>\n        <div class=\"extra\">\n          <nz-statistic \n            nzTitle=\"Primo Margine Banca maggiore di zero\" \n            [nzValue]=\"business_plan?.indicator1 || 'N.D.'\">\n          </nz-statistic>\n\n          <nz-statistic \n            nzTitle=\"Margine Cumulato Banca maggiore di zero\" \n            [nzValue]=\"business_plan?.indicator2 || 'N.D.'\"\n            style=\"margin: 0 32px\">\n          </nz-statistic>\n\n          <nz-statistic \n            nzTitle=\"Copertura Flussi di Cassa\" \n            [nzValue]=\"business_plan?.indicator3 || 'N.D.'\"\n            style=\"margin: 0 32px\">\n          </nz-statistic>\n        </div>\n      </nz-page-header-content>\n\n      <nz-page-header-footer>\n        <nz-tabset [(nzSelectedIndex)]=\"selectedIndex\">\n          <nz-tab nzTitle=\"Margini del Consulente\"></nz-tab>\n          <nz-tab nzTitle=\"Raccolta Netta e Masse\"></nz-tab>\n        </nz-tabset>\n      </nz-page-header-footer>\n\n  </nz-page-header>\n</nz-header>\n<nz-content class=\"container\">\n  <nz-spin \n    style=\"min-height: 300px;\"\n    [nzSpinning]=\"preloading\"\n    nzSize=\"large\"\n    nzTip=\"Caricamento in corso...\">\n\n    <!-- Margini del Consulente -->\n    <div *ngIf=\"selectedIndex === 0\">\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.mdc\"\n        title=\"Margini\"\n        keyValue=\"costs\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.flowCash\"\n        title=\"Analisi Flusso di Cassa\"\n        keyValue=\"costs\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.revenue\"\n        title=\"Ricavi\"\n        keyValue=\"revenue\"\n        [showTotal]=\"true\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.costs\"\n        title=\"Costi\"\n        keyValue=\"costs\"\n        [showTotal]=\"true\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.bonus\"\n        title=\"Bonus e Incentivazioni\"\n        keyValue=\"costs\"\n        [showTotal]=\"true\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.moreCosts\"\n        title=\"Altri Costi Banca\"\n        keyValue=\"costs\"\n        [showTotal]=\"true\">\n        <button nz-button nzType=\"primary\" \n          *ngIf=\"business_plan?.formState?.can_edit\" \n          (click)=\"moreCosts(business_plan?.moreCosts)\">\n          Personalizza\n        </button>\n      </xn-proposal-business-plan-evolution-table>\n    </div>\n\n    <!-- Raccolta Netta e Masse -->\n    <div *ngIf=\"selectedIndex === 1\">\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.wallet\"\n        title=\"Portafoglio Medio Annuo\"\n        keyValue=\"evoluzioneMedia\"\n        [showTotal]=\"true\">\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.wallet\"\n        title=\"Portafoglio di fine Periodo\"\n        keyValue=\"evoluzioneFineAnno\"\n        [showTotal]=\"true\"\n        [rowHeaderInfo]=\"wallet_evoluzione_fine_anno_header_info\">\n        <button nz-button nzType=\"primary\" \n          *ngIf=\"business_plan?.formState?.can_edit\" \n          (click)=\"editCrescita()\">\n          Personalizza\n        </button>\n      </xn-proposal-business-plan-evolution-table>\n\n      <xn-proposal-business-plan-evolution-table\n        [data]=\"business_plan?.wallet\"\n        title=\"Raccolta Netta Progressiva\"\n        keyValue=\"evoluzione\"\n        [showTotal]=\"true\">\n      </xn-proposal-business-plan-evolution-table>\n    </div>\n\n  </nz-spin>\n</nz-content>\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { XnApiSchema } from '@exin/core/core';\nimport { XnHttpService } from '@exin/core/core';\nimport { Observable, of } from 'rxjs';\nimport { XnProposalManagement, XnProposalManagementHistory } from './xn-proposal-management.model';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { XnFormlyFieldConfig } from '@exin/core/formly';\nimport { Dictionary } from '@exin/core/utils';\nimport { XnProposalStatusType } from '@exin/proposal/shared';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class XnProposalManagementService {\n\n  private _dictionary: Dictionary<XnProposalManagement> = new Dictionary<XnProposalManagement>();\n\n  constructor(\n    private http: XnHttpService\n  ) { }\n\n  loadProposalsMangement(\n    order_by: string, \n    order_sort: string, \n    paginate: number, \n    page: number,\n    status: XnProposalStatusType,\n    search:string,\n  ): Observable<XnApiSchema<XnProposalManagement[]>> {\n    let status_type = '0';\n    switch (status) {\n      case XnProposalStatusType.ACCEPTED:\n        status_type = '2';\n        break;\n      case XnProposalStatusType.REJECTED:\n        status_type = '3';\n        break;\n      case XnProposalStatusType.ENTITY_REJECTED:\n        status_type = '4';\n        break;\n    }\n    const params = new HttpParams()\n      .set('order_by', order_by)\n      .set('order_sort', order_sort)\n      .set('paginate', paginate.toString())\n      .set('page', page?.toString())\n      .set('status_type', status_type)\n      .set('search',search);\n    return this.http.get<XnApiSchema<XnProposalManagement[]>>(`v1/workflow/proposals`, { params: params }).pipe(\n      catchError(() => of({ data: [], meta: { total: 0 } } as XnApiSchema<XnProposalManagement[]>)),\n    );\n  }\n\n  loadProposalManagementDescription(proposal_id: string, workflow_status: string): Observable<XnFormlyFieldConfig[]> {\n    return this.http.get<XnFormlyFieldConfig[]>(`v1/workflow/proposals/${proposal_id}/describe/step/${workflow_status}`).pipe(\n      catchError(() => of([])),\n    );\n  }\n\n  loadProposalManagement(proposal_id: string, workflow_status: string): Observable<XnProposalManagement> {\n    return this.http.get<any>(`v1/workflow/proposals/${proposal_id}/step/${workflow_status}`)\n    .pipe(\n      map((response: XnProposalManagement) => {\n        this._dictionary.patchValue({ key: proposal_id, value: response })\n        return response;\n      })\n    );\n  }\n\n  saveProposalManagement(proposal_id: string, workflow_status: string, proposal: any): Observable<XnProposalManagement> {\n    return this.http.post<any>(`v1/workflow/proposals/${proposal_id}/step/${workflow_status}`, proposal).pipe(\n      map((response: XnProposalManagement) => {\n        this._dictionary.patchValue({ key: proposal_id, value: response })\n        return response;\n      })\n    );\n  }\n\n  nextProposalManagement(proposal_id: string, workflow_status: string, proposal: any, additional_data: any): Observable<XnProposalManagement> {\n    return this.saveProposalManagement(proposal_id, workflow_status, proposal).pipe(\n      switchMap(proposal => this.http.post<any>(`v1/workflow/proposals/${proposal_id}/next`, additional_data)),\n      switchMap(status => this.loadProposalManagement(proposal_id, workflow_status)),\n    );\n  }\n\n  backProposalManagement(proposal_id: string, workflow_status: string, additional_data: any) {\n    return this.http.post<any>(`v1/workflow/proposals/${proposal_id}/back`, additional_data).pipe(\n      switchMap(status => this.loadProposalManagement(proposal_id, workflow_status)),\n    );\n  }\n\n  rejectProposalManagement(proposal_id: string, workflow_status: string, additional_data: any) {\n    return this.http.post<any>(`v1/workflow/proposals/${proposal_id}/reject`, additional_data).pipe(\n      switchMap(status => this.loadProposalManagement(proposal_id, workflow_status)),\n    );\n  }\n  \n  closeProposalManagement(proposal_id: string, workflow_status: string, additional_data: any) {\n    return this.http.post<any>(`v1/workflow/proposals/${proposal_id}/close`, additional_data).pipe(\n      switchMap(status => this.loadProposalManagement(proposal_id, workflow_status)),\n    );\n  }\n\n  getProposalManagement(proposal_id: string): Observable<XnProposalManagement> {\n    return this._dictionary.objects$.pipe(\n      map(objects => objects[proposal_id])\n    )\n  }\n\n  loadProposalManagementHistory(proposal_id: string): Observable<XnProposalManagementHistory[]> {\n    return this.http.getApiSchema<XnProposalManagementHistory[]>(`v1/workflow/proposals/${proposal_id}/history`).pipe(\n      catchError(() => of([])),\n    );\n  }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { XnDatePipe } from '@exin/core/pipes';\nimport { XnDataTableComponent, XnTableColumn } from '@exin/core/data-table';\nimport { XnProposalStatusType } from '@exin/proposal/shared';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { XnProposalManagementService } from '../xn-proposal-management.service';\nimport { debounceTime, distinctUntilChanged, filter, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { FormGroup } from '@angular/forms';\nimport { XnFormlyFieldConfig, XnFormlyFormOptions } from '@exin/core/formly';\n\n@Component({\n  selector: 'xn-proposal-management-list',\n  templateUrl: './xn-proposal-management-list.component.html',\n  styleUrls: ['./xn-proposal-management-list.component.less'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class XnProposalManagementListComponent implements OnInit {\n\n  @ViewChild(XnDataTableComponent, { static: true }) table: XnDataTableComponent;\n\n  @ViewChild('actionTemplate', { static: true }) actionTemplate: TemplateRef<any>;\n\n  private _status: XnProposalStatusType = XnProposalStatusType.PENDING;\n  @Input()\n  set status(status: XnProposalStatusType) {\n    this._status = status;\n    this._status$.emit(status);\n  };\n  get status() {\n    return this._status;\n  }\n  private _status$: EventEmitter<XnProposalStatusType> = new EventEmitter<XnProposalStatusType>();\n\n  loading: boolean = true;\n\n  columns: XnTableColumn[] = [];\n\n  private _proposal_management$: Subscription;\n\n  constructor(\n    private xnProposalManagementService: XnProposalManagementService,\n    private cdr: ChangeDetectorRef,\n  ) {\n\n  }\n  form = new FormGroup({});\n  model = {\n    search: null,\n    proposal_type_ids: [],\n  };\n  fields: XnFormlyFieldConfig[] = [\n    {\n      fieldGroupClassName: 'ant-row',\n      fieldGroup: [\n        {\n          key: 'search',\n          type: 'input',\n          className: 'ant-col ant-col-xs-24 ant-col-sm-12 ant-col-md-8 ant-col-xl-6',\n          templateOptions: {\n            placeholder: 'Filtra per nominativo'\n          },\n          defaultValue: ''\n        },\n      ]\n    },\n  ];\n  options: XnFormlyFormOptions = {\n    formState: {\n    },\n  };\n  ngOnInit(): void {\n\n    const base_columns: XnTableColumn[] = [\n      {\n        name: 'Nome',\n        prop: 'identity_first_name',\n      },\n      {\n        name: 'Cognome',\n        prop: 'identity_last_name',\n      },\n      {\n        name: 'Reclutatore',\n        prop: 'user_name',\n      },\n      {\n        name: 'Data di avvio',\n        prop: 'started_at',\n        pipe: new XnDatePipe(),\n      },\n      {\n        name: 'Tipo proposta',\n        prop: 'proposal_type_title',\n      },\n    ];\n    const accepted_columns: XnTableColumn[] = [\n      {\n        name: 'Step attuale',\n        prop: 'current_workflow_status_label',\n      },\n      {\n        name: 'Step approvato',\n        prop: 'workflow_status_label',\n      },\n    ];\n    const rejected_columns: XnTableColumn[] = [\n      {\n        name: 'Step attuale',\n        prop: 'current_workflow_status_label',\n      },\n      {\n        name: 'Step approvato',\n        prop: 'workflow_status_label',\n      },\n    ];\n    const pending_columns: XnTableColumn[] = [\n      {\n        name: 'Step in sospeso',\n        prop: 'current_workflow_status_label',\n      },\n    ];\n    const actions_columns: XnTableColumn[] = [\n      {\n        name: 'Azioni',\n        cellTemplate: this.actionTemplate,\n        sortable: false,\n        canAutoResize: false,\n        draggable: false,\n        resizeable: false,\n        cellClass: 'text-right',\n        headerClass: 'text-right',\n        width: 95,\n        minWidth: 95,\n      }\n    ];\n\n    this._proposal_management$ = combineLatest([\n      this.table.pagedData$.pipe(),\n      this.form.valueChanges.pipe(\n        startWith(this.form.value),\n        map(\n          formValue => {\n            this.resetTable();\n            return formValue as any\n          }\n        )\n      ),\n      this._status$.pipe(\n        startWith(this.status),\n        filter(status => status != null),\n        distinctUntilChanged(),\n        map(status => {\n          this.resetTable();\n          switch (status) {\n            case XnProposalStatusType.ACCEPTED:\n              this.columns = [].concat(base_columns, accepted_columns, actions_columns);\n              break;\n\n            case XnProposalStatusType.REJECTED:\n              this.columns = [].concat(base_columns, rejected_columns, actions_columns);\n              break;\n\n            case XnProposalStatusType.ENTITY_REJECTED:\n              this.columns = [].concat(base_columns, rejected_columns, actions_columns);\n              break;\n\n            default:\n              this.columns = [].concat(base_columns, pending_columns, actions_columns);\n              break;\n          }\n          return status;\n        })\n      ),\n    ])\n      .pipe(\n        tap(() => this.loading = true),\n        debounceTime(300),\n        switchMap(([data, search, status]) => {\n          return this.xnProposalManagementService.loadProposalsMangement(\n            data.prop || 'created_at',\n            data.dir || 'asc',\n            data.limit,\n            data.offset + 1,\n            status,\n            search.search ?? ''\n          );\n        }),\n      )\n      .subscribe(response => {\n        this.table.rows = response.data;\n        this.table.count = response.meta.total;\n        this.loading = false;\n        this.cdr.detectChanges();\n      });\n  }\n\n  ngOnDestroy() {\n    this._proposal_management$?.unsubscribe();\n    this._status$?.unsubscribe();\n  }\n\n  private resetTable() {\n    this.table.offset = 0;\n  }\n}\n","<form autocomplete=\"off\" nz-form [nzLayout]=\"'horizontal'\" [formGroup]=\"form\">\n  <formly-form [form]=\"form\" [model]=\"model\" [fields]=\"fields\" [options]=\"options\"></formly-form>\n</form>\n<nz-card [nzBodyStyle]=\"{'padding': '0'}\">\n  <xn-data-table #table \n      [columns]=\"columns\" \n      [loading]=\"loading\"\n      [serverSide]=\"true\"\n      [clickable]=\"false\">\n  </xn-data-table>\n</nz-card>\n\n<ng-template #actionTemplate let-row=\"row\">\n  <a [routerLink]=\"['./', row?.id, row?.workflow_status]\">Dettaglio</a>\n</ng-template>","import { Injectable } from '@angular/core';\nimport { XnHttpService } from '@exin/core/core';\nimport { XnLoiDocument, XnLoiDocumentBlock } from './xn-proposal-management.model';\nimport { Dictionary } from '@exin/core/utils';\nimport { catchError, filter, map, switchMap, take } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class XnProposalLoiManagementService {\n\n  private _dictionary: Dictionary<XnLoiDocument> = new Dictionary<XnLoiDocument>();\n\n  constructor(\n    private http: XnHttpService\n  ) { }\n\n  //prelievo di tutti i documenti: GET /api/v1/proposals/{proposal_id}/loi -> ritorna la lista dei document (id, template, proposal_id)\n  getLoiDocuments(proposal_id: string): Observable<XnLoiDocument[]> {\n    return this.http.getApiSchema<XnLoiDocument[]>(`v1/proposals/${proposal_id}/loi`).pipe(\n      catchError(() => of([])),\n      map((loi_documents: XnLoiDocument[]) => {\n        loi_documents.forEach(loi_document => {\n          this._dictionary.patchValue({ key: loi_document.id, value: loi_document })\n        })\n        return loi_documents;\n      })\n    )\n  }\n\n  getLoiDocument(loi_id: string): Observable<XnLoiDocument> {\n    return this._dictionary.objects$.pipe(\n      map(objects => objects[loi_id])\n    )\n  }\n\n  //prelievo di tutti i blocchi di un documento: GET /api/v1/loi/{loi_id}/blocks -> ritorna tutti i blocchi\n  loadLoiDocumentBlocks(loi_id: string): Observable<XnLoiDocument> {\n    return this.http.getApiSchema<XnLoiDocumentBlock[]>(`v1/loi/${loi_id}/blocks`).pipe(\n      catchError(() => of([])),\n      switchMap(blocks => this.getLoiDocument(loi_id).pipe(\n        take(1),\n        filter(loi_document => !!loi_document),\n        map(loi_document => Object.assign(loi_document, {blocks: blocks})),\n      )),\n      map((loi_document: XnLoiDocument) => {\n        this._dictionary.patchValue({ key: loi_id, value: loi_document })\n        return loi_document;\n      })\n    )\n  }\n\n  //aggiorno un documento: PUT /api/v1/loi/{loi_id}/update -> ritorna il document con i blocchi\n  updateLoiDocument(loi_id: string): Observable<XnLoiDocument> {\n    return this.http.putApiSchema<XnLoiDocument>(`v1/loi/${loi_id}/update`).pipe(\n      catchError(() => of({\n        id: loi_id,\n        blocks: [],\n      })),\n      map((loi_document: XnLoiDocument) => {\n        this._dictionary.patchValue({ key: loi_id, value: loi_document })\n        return loi_document;\n      })\n    )\n  }\n\n  //modifico un blocco: PUT /api/v1/loi/{loi_id}/blocks/{block_id} -> ritorna il blocco\n  updateLoiDocumentBlock(loi_id: string, block_id: string, block: XnLoiDocumentBlock): Observable<XnLoiDocument> {\n    return this.http.putApiSchema<XnLoiDocumentBlock>(`v1/loi/${loi_id}/blocks/${block_id}`, block).pipe(\n      catchError(() => of(null)),\n      filter(block => !!block),\n      switchMap(block => this.getLoiDocument(loi_id).pipe(\n        take(1),\n        filter(loi_document => !!loi_document),\n        map(loi_document => {\n          const block_index = loi_document?.blocks.findIndex(block => block.id == block_id);\n          if (block_index >= 0) {\n            loi_document.blocks[block_index] = block;\n          }\n          return loi_document;\n        }),\n      )),\n      map((loi_document: XnLoiDocument) => {\n        this._dictionary.patchValue({ key: loi_id, value: loi_document })\n        return loi_document;\n      })\n    )\n  }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME = new InjectionToken('USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME');\n","import { Inject, Injectable } from '@angular/core';\nimport { USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME } from './xn-proposal-config';\n\n@Injectable()\nexport class XnProposalConfigService {\n\nconstructor(\n  @Inject(USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME) public _use_ldi_generic_reference_name: boolean,\n\n) { }\n\ngetLdiGenericReferenceName(){\n  return this._use_ldi_generic_reference_name\n}\n\n}\n","import { Inject } from '@angular/core';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\nimport { NgIf } from '@angular/common';\nimport { ChangeDetectorRef, Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ChangeEvent, CKEditorModule } from '@ckeditor/ckeditor5-angular';\nimport {\n\tClassicEditor,\n\tAccessibilityHelp,\n\tAlignment,\n\tAutoformat,\n\tAutoImage,\n\tAutoLink,\n\tAutosave,\n\tBlockQuote,\n\tBold,\n\tCode,\n\tCodeBlock,\n\tEssentials,\n\tFontBackgroundColor,\n\tFontColor,\n\tFontFamily,\n\tFontSize,\n\tFullPage,\n\tGeneralHtmlSupport,\n\tHeading,\n\tHighlight,\n\tHorizontalLine,\n\tHtmlComment,\n\tHtmlEmbed,\n\tImageBlock,\n\tImageCaption,\n\tImageInline,\n\tImageInsert,\n\tImageInsertViaUrl,\n\tImageResize,\n\tImageStyle,\n\tImageTextAlternative,\n\tImageToolbar,\n\tImageUpload,\n\tIndent,\n\tIndentBlock,\n\tItalic,\n\tLink,\n\tLinkImage,\n\tList,\n\tListProperties,\n\tMarkdown,\n\tMention,\n\tParagraph,\n\tPasteFromMarkdownExperimental,\n\tPasteFromOffice,\n\tRemoveFormat,\n\tSelectAll,\n\tShowBlocks,\n\tSimpleUploadAdapter,\n\tSourceEditing,\n\tSpecialCharacters,\n\tSpecialCharactersArrows,\n\tSpecialCharactersCurrency,\n\tSpecialCharactersEssentials,\n\tSpecialCharactersLatin,\n\tSpecialCharactersMathematical,\n\tSpecialCharactersText,\n\tStrikethrough,\n\tSubscript,\n\tSuperscript,\n\tTable,\n\tTableCaption,\n\tTableCellProperties,\n\tTableColumnResize,\n\tTableProperties,\n\tTableToolbar,\n\tTextTransformation,\n\tTodoList,\n\tUnderline,\n\tUndo,\n\ttype EditorConfig\n} from 'ckeditor5';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { XnProposalConfigService } from '../../../xn-proposal-config.service';\n\n\n\n@Component({\n  selector: 'xn-proposal-management-loi-blocks-editor',\n  templateUrl: './xn-proposal-management-loi-blocks-editor.component.html',\n  styleUrls: ['./xn-proposal-management-loi-blocks-editor.component.less'],\n  encapsulation: ViewEncapsulation.None,\n  standalone:true,\n  imports:[\n\tNgIf,\n\tFormsModule,\n\tReactiveFormsModule,\n\tCKEditorModule,\n\tNzCheckboxModule\n  ]\n})\nexport class XnProposalManagementLoiBlocksEditorComponent implements OnInit {\n\n  body: any = null;\n\n  // public ClassicEditor = ClassicEditor;\n\n  form = new FormGroup({\n    'block_body_override': new FormControl(null),\n    'override_all': new FormControl(false),\n  });\n\n//   public Editor = ClassicEditor;\n\n  editorConfig:any = {\n    language: 'it',\n    allowedContent: true,\n    // extraPlugins: 'divarea,pagebreak,basicstyles,liststyle,font,justify,tableresize,print',\n    toolbar: [\n      { name: 'clipboard', items: ['Undo', 'Redo'] },\n      { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'CopyFormatting', 'RemoveFormat'] },\n      { name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-'] },\n      { name: 'insert', items: ['Table', 'HorizontalRule', 'PageBreak'] },\n      { name: 'styles', items: ['Styles', 'Format', 'FontSize'] },\n      { name: 'colors', items: ['TextColor', 'BGColor'] },\n      { name: 'tools', items: ['Maximize',] },\n      { name: 'document', items: ['Source'] },\n    ],\n    removeButtons: '',\n  };\n  public _use_ldi_generic_reference_name: boolean = false;\n\n  constructor(\n    @Inject(NZ_MODAL_DATA) private nzData: any,\n\tprivate changeDetector: ChangeDetectorRef,\n\tprivate XnProposalConfigService:XnProposalConfigService,\n      ) {\n        this._use_ldi_generic_reference_name = this.XnProposalConfigService.getLdiGenericReferenceName();\n       }\n\n\tpublic isLayoutReady = false;\n\tpublic Editor = ClassicEditor;\n\tpublic config:any={};\n\t // CKEditor needs the DOM tree before calculating the configuration.\n\tpublic ngAfterViewInit(): void {\n\t\tlet newconfig = {\n\t\t\ttoolbar: {\n\t\t\t\titems: [\n\t\t\t\t\t'undo',\n\t\t\t\t\t'redo',\n\t\t\t\t\t'|',\n\t\t\t\t\t'sourceEditing',\n\t\t\t\t\t'showBlocks',\n\t\t\t\t\t'|',\n\t\t\t\t\t'heading',\n\t\t\t\t\t'|',\n\t\t\t\t\t'fontSize',\n\t\t\t\t\t'fontFamily',\n\t\t\t\t\t'fontColor',\n\t\t\t\t\t'fontBackgroundColor',\n\t\t\t\t\t'|',\n\t\t\t\t\t'bold',\n\t\t\t\t\t'italic',\n\t\t\t\t\t'underline',\n\t\t\t\t\t'strikethrough',\n\t\t\t\t\t'subscript',\n\t\t\t\t\t'superscript',\n\t\t\t\t\t'code',\n\t\t\t\t\t'removeFormat',\n\t\t\t\t\t'|',\n\t\t\t\t\t'specialCharacters',\n\t\t\t\t\t'horizontalLine',\n\t\t\t\t\t'link',\n\t\t\t\t\t'insertImage',\n\t\t\t\t\t'insertTable',\n\t\t\t\t\t'highlight',\n\t\t\t\t\t'blockQuote',\n\t\t\t\t\t'codeBlock',\n\t\t\t\t\t'htmlEmbed',\n\t\t\t\t\t'|',\n\t\t\t\t\t'alignment',\n\t\t\t\t\t'|',\n\t\t\t\t\t'bulletedList',\n\t\t\t\t\t'numberedList',\n\t\t\t\t\t'todoList',\n\t\t\t\t\t'outdent',\n\t\t\t\t\t'indent'\n\t\t\t\t],\n\t\t\t\tshouldNotGroupWhenFull: true\n\t\t\t},\n\t\t\tplugins: [\n\t\t\t\tAccessibilityHelp,\n\t\t\t\tAlignment,\n\t\t\t\tAutoformat,\n\t\t\t\tAutoImage,\n\t\t\t\tAutoLink,\n\t\t\t\tAutosave,\n\t\t\t\tBlockQuote,\n\t\t\t\tBold,\n\t\t\t\tCode,\n\t\t\t\tCodeBlock,\n\t\t\t\tEssentials,\n\t\t\t\tFontBackgroundColor,\n\t\t\t\tFontColor,\n\t\t\t\tFontFamily,\n\t\t\t\tFontSize,\n\t\t\t\tFullPage,\n\t\t\t\tGeneralHtmlSupport,\n\t\t\t\tHeading,\n\t\t\t\tHighlight,\n\t\t\t\tHorizontalLine,\n\t\t\t\tHtmlComment,\n\t\t\t\tHtmlEmbed,\n\t\t\t\tImageBlock,\n\t\t\t\tImageCaption,\n\t\t\t\tImageInline,\n\t\t\t\tImageInsert,\n\t\t\t\tImageInsertViaUrl,\n\t\t\t\tImageResize,\n\t\t\t\tImageStyle,\n\t\t\t\tImageTextAlternative,\n\t\t\t\tImageToolbar,\n\t\t\t\tImageUpload,\n\t\t\t\tIndent,\n\t\t\t\tIndentBlock,\n\t\t\t\tItalic,\n\t\t\t\tLink,\n\t\t\t\tLinkImage,\n\t\t\t\tList,\n\t\t\t\tListProperties,\n\t\t\t\tMarkdown,\n\t\t\t\tMention,\n\t\t\t\tParagraph,\n\t\t\t\tPasteFromMarkdownExperimental,\n\t\t\t\tPasteFromOffice,\n\t\t\t\tRemoveFormat,\n\t\t\t\tSelectAll,\n\t\t\t\tShowBlocks,\n\t\t\t\tSimpleUploadAdapter,\n\t\t\t\tSourceEditing,\n\t\t\t\tSpecialCharacters,\n\t\t\t\tSpecialCharactersArrows,\n\t\t\t\tSpecialCharactersCurrency,\n\t\t\t\tSpecialCharactersEssentials,\n\t\t\t\tSpecialCharactersLatin,\n\t\t\t\tSpecialCharactersMathematical,\n\t\t\t\tSpecialCharactersText,\n\t\t\t\tStrikethrough,\n\t\t\t\tSubscript,\n\t\t\t\tSuperscript,\n\t\t\t\tTable,\n\t\t\t\tTableCaption,\n\t\t\t\tTableCellProperties,\n\t\t\t\tTableColumnResize,\n\t\t\t\tTableProperties,\n\t\t\t\tTableToolbar,\n\t\t\t\tTextTransformation,\n\t\t\t\tTodoList,\n\t\t\t\tUnderline,\n\t\t\t\tUndo\n\t\t\t],\n\t\t\tlicenseKey:'GPL',\n\t\t\tfontFamily: {\n\t\t\t\tsupportAllValues: true\n\t\t\t},\n\t\t\tfontSize: {\n\t\t\t\toptions: [10, 12, 14, 'default', 18, 20, 22],\n\t\t\t\tsupportAllValues: true\n\t\t\t},\n\t\t\theading: {\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'paragraph',\n\t\t\t\t\t\ttitle: 'Paragraph',\n\t\t\t\t\t\tclass: 'ck-heading_paragraph'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading1',\n\t\t\t\t\t\tview: 'h1',\n\t\t\t\t\t\ttitle: 'Heading 1',\n\t\t\t\t\t\tclass: 'ck-heading_heading1'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading2',\n\t\t\t\t\t\tview: 'h2',\n\t\t\t\t\t\ttitle: 'Heading 2',\n\t\t\t\t\t\tclass: 'ck-heading_heading2'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading3',\n\t\t\t\t\t\tview: 'h3',\n\t\t\t\t\t\ttitle: 'Heading 3',\n\t\t\t\t\t\tclass: 'ck-heading_heading3'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading4',\n\t\t\t\t\t\tview: 'h4',\n\t\t\t\t\t\ttitle: 'Heading 4',\n\t\t\t\t\t\tclass: 'ck-heading_heading4'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading5',\n\t\t\t\t\t\tview: 'h5',\n\t\t\t\t\t\ttitle: 'Heading 5',\n\t\t\t\t\t\tclass: 'ck-heading_heading5'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel: 'heading6',\n\t\t\t\t\t\tview: 'h6',\n\t\t\t\t\t\ttitle: 'Heading 6',\n\t\t\t\t\t\tclass: 'ck-heading_heading6'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\thtmlSupport: {\n\t\t\t\tallow: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: /^.*$/,\n\t\t\t\t\t\tstyles: true,\n\t\t\t\t\t\tattributes: true,\n\t\t\t\t\t\tclasses: true\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\timage: {\n\t\t\t\ttoolbar: [\n\t\t\t\t\t'toggleImageCaption',\n\t\t\t\t\t'imageTextAlternative',\n\t\t\t\t\t'|',\n\t\t\t\t\t'imageStyle:inline',\n\t\t\t\t\t'imageStyle:wrapText',\n\t\t\t\t\t'imageStyle:breakText',\n\t\t\t\t\t'|',\n\t\t\t\t\t'resizeImage'\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tlanguage: 'it',\n\t\t\tlink: {\n\t\t\t\taddTargetToExternalLinks: true,\n\t\t\t\tdefaultProtocol: 'https://',\n\t\t\t\tdecorators: {\n\t\t\t\t\ttoggleDownloadable: {\n\t\t\t\t\t\tmode: 'manual',\n\t\t\t\t\t\tlabel: 'Downloadable',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\tdownload: 'file'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tlist: {\n\t\t\t\tproperties: {\n\t\t\t\t\tstyles: true,\n\t\t\t\t\tstartIndex: true,\n\t\t\t\t\treversed: true\n\t\t\t\t}\n\t\t\t},\n\t\t\tmention: {\n\t\t\t\tfeeds: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmarker: '@',\n\t\t\t\t\t\tfeed: [\n\t\t\t\t\t\t\t/* See: https://ckeditor.com/docs/ckeditor5/latest/features/mentions.html */\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tplaceholder: 'Type or paste your content here!',\n\t\t\ttable: {\n\t\t\t\tcontentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells', 'tableProperties', 'tableCellProperties']\n\t\t\t}\n\t\t\t// ,\n\t\t\t// translations: [CKEDITOR_TRANSLATIONS]\n\t\t};\n\t\tthis.config = {...this.config,...newconfig};\n\t\tthis.isLayoutReady = true;\n\t}\n\n\n  ngOnInit() {\n    this.body = this.nzData?.body;\n    this.form.get('block_body_override').patchValue(this.body);\n\tthis.config= {initialData:this.body}\n  }\n\n  public onReady( editor: any ): void {\n    const element = editor.ui.getEditableElement()!;\n    const parent = element.parentElement!;\n    parent.insertBefore(\n      editor.ui.view.toolbar.element!,\n      element\n    );\n    parent.firstElementChild.className=\"\"\n\n  }\n  change({ editor }: ChangeEvent){\n\tconst data = editor.getData();\n\tthis.form.get('block_body_override').patchValue(data);\n  }\n\n\n}\n","<form [formGroup]=\"form\">\n\n  <!-- <ckeditor\n    formControlName=\"block_body_override\"\n    [editor]=\"Editor\"\n    (ready)=\"onReady($event)\"\n    >\n  </ckeditor> -->\n  <div>\n    <div class=\"main-container\">\n      <div class=\"editor-container editor-container_classic-editor\" #editorContainerElement>\n        <div class=\"editor-container__editor\">\n          <div #editorElement>\n            <ckeditor [editor]=\"Editor\"\n             [config]=\"config\" \n             *ngIf=\"isLayoutReady\"\n             (change)=\"change($event)\"\n             />\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"ck ck-toolbar\" style=\"padding: 8px 16px;\" *ngIf=\"!_use_ldi_generic_reference_name\">\n    <label nz-checkbox formControlName=\"override_all\">\n      Esegui la modifica sulle LDI associate a questa specifica Proposta\n    </label>\n  </div>\n</form>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n  selector: 'xn-proposal-management-loi-blocks-preview',\n  template: '<div class=\"formatted ck-content\" [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(html)\"></div>',\n  styleUrls: ['./xn-proposal-management-loi-blocks-preview.component.less'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class XnProposalManagementLoiBlocksPreviewComponent implements OnInit {\n\n  @Input() html: any;\n\n  constructor(\n    public sanitizer: DomSanitizer\n  ) { }\n\n  ngOnInit() {\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NzModalService } from '@exin/core/ant-design';\nimport { tap } from 'rxjs/operators';\nimport { XnProposalLoiManagementService } from '../../xn-proposal-loi-management.service';\nimport { XnLoiDocumentBlock } from '../../xn-proposal-management.model';\nimport { XnProposalManagementLoiBlocksEditorComponent } from './xn-proposal-management-loi-blocks-editor/xn-proposal-management-loi-blocks-editor.component';\nimport { XnProposalConfigService } from '../../xn-proposal-config.service';\n\n@Component({\n  selector: 'xn-proposal-management-loi-blocks-item',\n  templateUrl: './xn-proposal-management-loi-blocks-item.component.html',\n  styleUrls: ['./xn-proposal-management-loi-blocks-item.component.less']\n})\nexport class XnProposalManagementLoiBlocksItemComponent implements OnInit {\n\n  @Input() block: XnLoiDocumentBlock = null;\n  @Input() can_edit: boolean = false;\n\n  status: number = 0;\n  public _use_ldi_generic_reference_name: boolean = false;\n  constructor(\n    private modal: NzModalService,\n    private xnProposalLoiManagementService: XnProposalLoiManagementService,\n    private XnProposalConfigService: XnProposalConfigService,\n  ) {\n    this._use_ldi_generic_reference_name = this.XnProposalConfigService.getLdiGenericReferenceName();\n  }\n\n  ngOnInit() { }\n\n  edit() {\n    const modal = this.modal.create({\n      nzTitle: this.block.block_title || 'Blocco senza titolo',\n      nzWidth: '1024px',\n      nzBodyStyle: { 'padding': '0' },\n      nzContent: XnProposalManagementLoiBlocksEditorComponent,\n      nzData: {\n        body: this.block?.is_overridden ? this.block.block_body_override : this.block.block_body\n      },\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Salva',\n          type: 'primary',\n          disabled: contentComponentInstance => {\n            return !!contentComponentInstance?.form?.invalid;\n          },\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalLoiManagementService\n              .updateLoiDocumentBlock(this.block.document_id, this.block.id, contentComponentInstance?.form?.value)\n              .pipe(\n                // catchError(error => {\n                //   this.notification.error('Errore...', 'Qualcosa è andato storto. Riprova...');\n                //   return of(null);\n                // }),\n                tap(model => {\n                  if (model) {\n                    // this.notification.success('Successo...', 'La proposta è stata respinta correttamente.');\n                    modal.destroy();\n                  }\n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n\n  reset(override_all: boolean = false) {\n    this.xnProposalLoiManagementService\n      .updateLoiDocumentBlock(this.block.document_id, this.block.id, { block_body_override: null, override_all: override_all })\n      .pipe()\n      .subscribe();\n  }\n\n}\n","<nz-card \n  [nzTitle]=\"block?.block_title_output || 'Blocco senza titolo'\" \n  [nzExtra]=\"extraTemplate\">\n\n  <nz-alert \n    *ngIf=\"block.is_overridden\" \n    style=\"margin-bottom: 16px;\" \n    nzType=\"info\" \n    [nzMessage]=\"resetTemplate\" \n    nzShowIcon>\n  </nz-alert>\n\n  <xn-proposal-management-loi-blocks-preview \n    [html]=\"block?.block_body_output\">\n  </xn-proposal-management-loi-blocks-preview>\n\n  <!-- <pre>\n    {{block | json}}\n  </pre> -->\n</nz-card>\n\n<ng-template #extraTemplate>\n  <!-- <nz-tag nzColor=\"default\" *ngIf=\"block.is_overridden\">Modificato</nz-tag> -->\n  <button nz-button nzType=\"link\" (click)=\"edit()\" *ngIf=\"can_edit\">\n    <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>\n    Modifica\n  </button>\n</ng-template>\n\n<ng-template #resetTemplate>\n  <div>\n    Questo blocco contiene del testo modificato\n  </div>\n  <div *ngIf=\"can_edit\">\n    <a\n      nz-popconfirm\n      nzPopconfirmTitle=\"Sei sicuro di voler cancellare le modifiche?\"\n      nzPopconfirmPlacement=\"bottom\"\n      (nzOnConfirm)=\"reset(false)\">Ripristina</a>\n    \n    <ng-container *ngIf=\"!_use_ldi_generic_reference_name\">\n      <i style=\"margin: 0 16px;\" nz-icon nzType=\"minus\" nzTheme=\"outline\"></i>\n      <a\n      nz-popconfirm\n      nzPopconfirmTitle=\"Sei sicuro di voler cancellare le modifiche?\"\n      nzPopconfirmPlacement=\"bottom\"\n      (nzOnConfirm)=\"reset(true)\">Ripristina tutte le LDI associate a questa Proposta</a>\n    </ng-container>\n  </div>\n</ng-template>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, Inject, Optional } from '@angular/core';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\nimport { NzModalRef } from '@exin/core/ant-design';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs/operators';\nimport { XnProposalLoiManagementService } from '../xn-proposal-loi-management.service';\nimport { XnLoiDocument } from '../xn-proposal-management.model';\n\n/**\n * XnProposalManagementLoiBlocksComponent\n *\n * Componente che supporta due modalità di utilizzo:\n * 1. Come contenuto di un modale (tramite nzContent): riceve i dati via NZ_MODAL_DATA\n * 2. Come elemento standard in un template: riceve i dati via @Input loi_id\n *\n * Durante la migrazione da @Input a NZ_MODAL_DATA, questo componente mantiene\n * entrambi i meccanismi per garantire compatibilità con l'uso esistente.\n * Attraverso la direttiva @Optional si evita di lanciare un errore\n * se il componente non usa NZ_MODAL_DATA.\n */\n\n@Component({\n  selector: 'xn-proposal-management-loi-blocks',\n  templateUrl: './xn-proposal-management-loi-blocks.component.html',\n  styleUrls: ['./xn-proposal-management-loi-blocks.component.less']\n})\nexport class XnProposalManagementLoiBlocksComponent implements OnInit, OnDestroy {\n\n  preloading: boolean = true;\n\n  private _loi_id: string = null;\n  @Input()\n  set loi_id(loi_id: string) {\n    this._loi_id = loi_id;\n    this._loi_id$.emit(loi_id);\n  };\n  get loi_id() {\n    return this._loi_id;\n  }\n  private _loi_id$: EventEmitter<string> = new EventEmitter<string>();\n\n  @Output('onBack') onBack$: EventEmitter<any> = new EventEmitter<any>();\n\n  loi_document: XnLoiDocument;\n  private _loiDocument$: Subscription;\n\n  constructor(\n    @Optional() @Inject(NZ_MODAL_DATA) private nzData: any,\n    private xnProposalLoiManagementService: XnProposalLoiManagementService,\n  ) { }\n\n  ngOnInit() {\n\n    this.loi_document = this.nzData?.loi_document;\n\n    const _loi_id$ = this._loi_id$.pipe(\n      startWith(this.loi_id),\n      filter(loi_id => !!loi_id),\n      distinctUntilChanged(),\n    );\n\n    this._loiDocument$ = _loi_id$.pipe(\n      switchMap((_loi_id) => this.xnProposalLoiManagementService.updateLoiDocument(_loi_id)),\n    ).subscribe(loi_document => {\n      this.loi_document = loi_document;\n      this.preloading = false;\n    });\n\n  }\n\n  ngOnDestroy() {\n    this._loiDocument$?.unsubscribe();\n    this._loi_id$?.unsubscribe();\n    this.onBack$?.unsubscribe();\n  }\n\n  back(event) {\n    this.onBack$?.emit(event);\n  }\n\n  close(loi_document: XnLoiDocument): void {\n  }\n\n  reload() {\n\n  }\n\n}\n","<nz-header>\n  <nz-page-header class=\"container\" nzBackIcon (nzBack)=\"back($event)\">\n\n      <nz-breadcrumb nz-page-header-breadcrumb [nzAutoGenerate]=\"true\" #breadcrumb>\n          <nz-breadcrumb-item>\n              <a routerLink=\"/\"><i nz-icon nzType=\"home\"></i></a>\n          </nz-breadcrumb-item>\n      </nz-breadcrumb>\n\n      <nz-page-header-extra>\n        <ng-template [ngxPermissionsOnly]=\"'app-proposal-generator-can-download-word'\">\n          <a \n          nz-button\n          nzType=\"primary\" \n          [href]=\"loi_document?.url_word\"\n          target=\"_blank\"\n          >\n          <i nz-icon nzType=\"file-word\" nzTheme=\"outline\"></i> Scarica Word\n        </a> &nbsp;\n        </ng-template>\n        \n        <a \n          nz-button\n          nzType=\"primary\" \n          [href]=\"loi_document?.url\"\n          target=\"_blank\"\n          >\n          <i nz-icon nzType=\"printer\" nzTheme=\"outline\"></i> Stampa anteprima documento\n        </a>\n\n        <!-- <button nz-button\n          nzType=\"default\" \n          (click)=\"reload()\">\n          <i nz-icon nzType=\"rollback\" nzTheme=\"outline\"></i> Ricarica\n        </button> -->\n      </nz-page-header-extra>\n      \n      <!--title-->\n      <nz-page-header-title>{{loi_document?.template?.title}}</nz-page-header-title>\n      <nz-page-header-content>\n        <p nz-paragraph>\n          {{loi_document?.template?.body}}\n        </p>\n      </nz-page-header-content>\n\n  </nz-page-header>\n</nz-header>\n<nz-content class=\"container\">\n  <nz-spin \n    style=\"min-height: 300px;\"\n    [nzSpinning]=\"preloading\"\n    nzSize=\"large\"\n    nzTip=\"Caricamento in corso...\">\n\n    <div *ngFor=\"let block of (loi_document?.blocks || []);\" style=\"margin-bottom: 24px;\">\n      <xn-proposal-management-loi-blocks-item [block]=\"block\" [can_edit]=\"loi_document?.formState?.can_edit || false\"></xn-proposal-management-loi-blocks-item>\n    </div>\n\n  </nz-spin>\n</nz-content>","import { Component, OnInit, Inject } from '@angular/core';\nimport { XnProposalManagementService } from '../xn-proposal-management.service';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-management-preview',\n  templateUrl: './xn-proposal-management-preview.component.html',\n  styleUrls: ['./xn-proposal-management-preview.component.less']\n})\nexport class XnProposalManagementPreviewComponent implements OnInit {\n\n  src: string = null;\n  loading: boolean = true;\n\n  constructor(@Inject(NZ_MODAL_DATA) private nzData: any) { }\n\n  ngOnInit() {\n    this.src = this.nzData?.src;\n  }\n}\n","<nz-spin [nzSpinning]=\"loading\">\n  <iframe \n    *ngIf=\"src\" \n    style=\"height: 65vh;\"\n    width=\"100%\" \n    frameBorder=\"0\" \n    marginwidth=\"0\" \n    marginheight=\"0\" \n    align=\"top\" \n    scrolling=\"yes\" \n    frameborder=\"0\" \n    hspace=\"0\" \n    vspace=\"0\"\n    [src]=\"src | xnSafe:'resourceUrl'\"\n    (load)=\"loading = false\">\n  </iframe>\n</nz-spin>","import { Component, Inject, OnInit } from '@angular/core';\nimport { XnFormlyPage } from '@exin/core/formly';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-management-form-request',\n  templateUrl: './xn-proposal-management-form-request.component.html',\n  styleUrls: ['./xn-proposal-management-form-request.component.scss']\n})\nexport class XnProposalManagementFormRequestComponent extends XnFormlyPage implements OnInit {\n\n  description: string = null;\n\n  constructor(@Inject(NZ_MODAL_DATA) private nzData: any) {\n    super();\n  }\n\n  ngOnInit() {\n    this.description = this.nzData?.description;\n    this.fields = [\n      {\n        key: 'note',\n        type: 'textarea',\n        templateOptions: {\n          label: 'Nota',\n          rows: 5,\n          required: true,\n        }\n      }\n    ]\n  }\n\n}\n","<form autocomplete=\"off\" nz-form [nzLayout]=\"'vertical'\" [formGroup]=\"form\">\n  <formly-form [form]=\"form\" [model]=\"model\" [fields]=\"fields\" [options]=\"options\"></formly-form>\n</form>\n\n<nz-alert *ngIf=\"description\" nzType=\"info\" [nzMessage]=\"description\" nzShowIcon></nz-alert>","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { XnProposalManagementHistory } from '../xn-proposal-management.model';\nimport { XnProposalManagementService } from '../xn-proposal-management.service';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-management-history',\n  templateUrl: './xn-proposal-management-history.component.html',\n  styleUrls: ['./xn-proposal-management-history.component.scss']\n})\nexport class XnProposalManagementHistoryComponent implements OnInit {\n\n  proposal_id: string = null;\n  proposal_histories$: Observable<XnProposalManagementHistory[]>;\n\n  constructor(\n    @Inject(NZ_MODAL_DATA) private nzData: any,\n    private xnProposalManagementService: XnProposalManagementService\n  ) { }\n\n  ngOnInit() {\n    this.proposal_id = this.nzData?.proposal_id;\n    this.proposal_histories$ = this.xnProposalManagementService.loadProposalManagementHistory(this.proposal_id);\n  }\n\n}\n","<nz-timeline *ngIf=\"(proposal_histories$ | async); let proposal_histories; else loadingTemplate\">\n  <ng-container *ngFor=\"let item of (proposal_histories || [])\">\n\n    <ng-container *ngIf=\"item?.type_id == 1\">\n      <nz-timeline-item nzColor=\"blue\">\n        <div>Richiesta avviata da <strong>{{item?.user_name || 'n.d.'}}</strong> il {{item?.started_at | xnDate}}</div>\n      </nz-timeline-item>\n    </ng-container>\n\n    <ng-container *ngIf=\"item?.type_id == 2\">\n      <nz-timeline-item nzColor=\"green\">\n        <div><strong>{{item?.from_status_label}}</strong></div>\n        <div>Accettata da <strong>{{item?.user_name || 'n.d.'}}</strong> il {{item?.started_at | xnDate}}</div>\n        <div\n          nz-typography\n          nzEllipsis\n          nzExpandable\n          [nzEllipsisRows]=\"2\"\n          nzType=\"secondary\">\n            {{item?.additional_data?.note}}\n        </div>\n      </nz-timeline-item>\n    </ng-container>\n\n    <ng-container *ngIf=\"item?.type_id == 3\">\n      <nz-timeline-item nzColor=\"red\">\n        <div><strong>{{item?.from_status_label}}</strong></div>\n        <div>Respinta da <strong>{{item?.user_name || 'n.d.'}}</strong> il {{item?.started_at | xnDate}}</div>\n        <div\n          nz-typography\n          nzEllipsis\n          nzExpandable\n          [nzEllipsisRows]=\"2\"\n          nzType=\"secondary\">\n            {{item?.additional_data?.note}}\n        </div>\n      </nz-timeline-item>\n    </ng-container>\n\n    <ng-container *ngIf=\"item?.type_id == 4\">\n      <nz-timeline-item nzColor=\"red\" [nzDot]=\"stopIconTemplate\">\n        <div><strong>{{item?.from_status_label}}</strong></div>\n        <div>Rifiutata da <strong>{{item?.user_name || 'n.d.'}}</strong> il {{item?.started_at | xnDate}}</div>\n        <div\n          nz-typography\n          nzEllipsis\n          nzExpandable\n          [nzEllipsisRows]=\"2\"\n          nzType=\"secondary\">\n            {{item?.additional_data?.note}}\n        </div>\n      </nz-timeline-item>\n    </ng-container>\n\n    <ng-container *ngIf=\"item?.type_id == 5\">\n      <nz-timeline-item nzColor=\"green\" [nzDot]=\"completeIconTemplate\">\n        <div><strong>{{item?.from_status_label}}</strong></div>\n        <div>Completata da <strong>{{item?.user_name || 'n.d.'}}</strong> il {{item?.started_at | xnDate}}</div>\n        <div\n          nz-typography\n          nzEllipsis\n          nzExpandable\n          [nzEllipsisRows]=\"2\"\n          nzType=\"secondary\">\n            {{item?.additional_data?.note}}\n        </div>\n      </nz-timeline-item>\n    </ng-container>\n\n    <ng-container *ngIf=\"!!!item?.finished_at\">\n      <nz-timeline-item nzColor=\"gray\" [nzDot]=\"loadingIconTemplate\">\n        <div><strong>{{item?.to_status_label}}</strong></div>\n        <div>In attesa di approvazione</div>\n      </nz-timeline-item>\n    </ng-container>\n  </ng-container>\n</nz-timeline>\n\n<ng-template #loadingIconTemplate>\n  <i nz-icon nzType=\"loading\"></i>\n</ng-template>\n\n<ng-template #stopIconTemplate>\n  <i nz-icon nzType=\"stop\" nzTheme=\"outline\"></i>\n</ng-template>\n\n<ng-template #completeIconTemplate>\n  <i nz-icon nzType=\"check-circle\" nzTheme=\"outline\"></i>\n</ng-template>\n\n<ng-template #loadingTemplate>\n  <div style=\"text-align: center; padding: 24px;\">\n    <nz-spin nzSimple nzTip=\"Caricamento in corso...\"></nz-spin>\n  </div>\n</ng-template>\n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { NzModalRef } from '@exin/core/ant-design';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { XnProposalLoiManagementService } from '../xn-proposal-loi-management.service';\nimport { XnLoiDocument } from '../xn-proposal-management.model';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-management-loi-document',\n  templateUrl: './xn-proposal-management-loi-document.component.html',\n  styleUrls: ['./xn-proposal-management-loi-document.component.less']\n})\nexport class XnProposalManagementLoiDocumentComponent implements OnInit {\n\n  loading = true;\n\n  gridStyle = {};\n\n  proposal_id: string = null;\n  loi_documents$: Observable<XnLoiDocument[]>;\n\n  constructor(\n    @Inject(NZ_MODAL_DATA) private nzData: any,\n    private xnProposalLoiManagementService: XnProposalLoiManagementService,\n    private modal: NzModalRef\n  ) { }\n\n  ngOnInit() {\n    this.proposal_id = this.nzData?.proposal_id;\n    this.loi_documents$ = this.xnProposalLoiManagementService.getLoiDocuments(this.proposal_id).pipe(\n      map(docs => {\n        this.gridStyle = {\n          width: `${docs.length ? (100 / docs.length) : 100}%`,\n          textAlign: 'center'\n        };\n        this.loading = false;\n        return docs;\n      })\n    );\n  }\n\n  close(loi_document: XnLoiDocument): void {\n    this.modal.destroy(loi_document);\n  }\n\n}\n","\n<nz-card [nzLoading]=\"loading\">\n  <div nz-card-grid *ngFor=\"let loi_document of ((loi_documents$ | async) || [])\" [ngStyle]=\"gridStyle\" (click)=\"close(loi_document)\">\n      <div>\n        <h5 nz-typography>{{loi_document?.template?.title}}</h5>\n      </div>\n      <div style=\"margin-top: 8px;\">\n          <span nz-typography nzType=\"secondary\">{{loi_document?.template?.body}}</span>\n      </div>\n  </div>\n</nz-card>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { NzModalService, NzNotificationService } from '@exin/core/ant-design';\nimport { XnFormlyPage } from '@exin/core/formly';\nimport { combineLatest, of, Subscription } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, startWith, switchMap, tap } from 'rxjs/operators';\nimport { XnProposalManagementFormRequestComponent } from '../xn-proposal-management-form-request/xn-proposal-management-form-request.component';\nimport { XnProposalManagementHistoryComponent } from '../xn-proposal-management-history/xn-proposal-management-history.component';\nimport { XnProposalManagementLoiBlocksComponent } from '../xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks.component';\nimport { XnProposalManagementLoiDocumentComponent } from '../xn-proposal-management-loi-document/xn-proposal-management-loi-document.component';\nimport { XnProposalManagementPreviewComponent } from '../xn-proposal-management-preview/xn-proposal-management-preview.component';\nimport { XnProposalManagementService } from '../xn-proposal-management.service';\n\n@Component({\n  selector: 'xn-proposal-management-item',\n  templateUrl: './xn-proposal-management-item.component.html',\n  styleUrls: ['./xn-proposal-management-item.component.less']\n})\nexport class XnProposalManagementItemComponent extends XnFormlyPage implements OnInit, OnDestroy {\n\n  loading: boolean = false;\n  preloading: boolean = true;\n\n  private _get_proposal_description$: Subscription;\n  private _get_proposal_model$: Subscription;\n  private _load_proposal_model$: Subscription;\n\n  private _workflow_status: string = null;\n  @Input()\n  set workflow_status(workflow_status: string) {\n    this._workflow_status = workflow_status;\n    this._workflow_status$.emit(workflow_status);\n  };\n  get workflow_status() {\n    return this._workflow_status;\n  }\n  private _workflow_status$: EventEmitter<string> = new EventEmitter<string>();\n\n  private _proposal_id: string = null;\n  @Input()\n  set proposal_id(proposal_id: string) {\n    this._proposal_id = proposal_id;\n    this._proposal_id$.emit(proposal_id);\n  };\n  get proposal_id() {\n    return this._proposal_id;\n  }\n  private _proposal_id$: EventEmitter<string> = new EventEmitter<string>();\n\n  @Output('onEditLoiId') onEditLoiId: EventEmitter<string> = new EventEmitter<string>();\n  @Output('onEditBusinessPlan') onEditBusinessPlan: EventEmitter<string> = new EventEmitter<string>();\n\n  constructor(\n    private xnProposalManagementService: XnProposalManagementService,\n    private modal: NzModalService,\n    private notification: NzNotificationService,\n  ) {\n    super();\n  }\n  \n\n  ngOnInit() {\n    const _proposal_id$ = this._proposal_id$.pipe(\n      startWith(this.proposal_id),\n      filter(proposal_id => !!proposal_id),\n      distinctUntilChanged(),\n    );\n\n    const _workflow_status$ = this._workflow_status$.pipe(\n      startWith(this.workflow_status),\n      filter(workflow_status => !!workflow_status),\n      distinctUntilChanged(),\n    );\n\n    // this.fields = fields;\n    \n    this._get_proposal_description$ = combineLatest([\n      _proposal_id$,\n      _workflow_status$,\n    ]).pipe(\n      switchMap(([proposal_id, workflow_status]) => this.xnProposalManagementService.loadProposalManagementDescription(proposal_id, workflow_status)),\n    ).subscribe(fields => {\n       this.fields = fields || [];\n   \n\n      this.preloading = false;\n    });\n\n    this._get_proposal_model$ = _proposal_id$.pipe(\n      switchMap((proposal_id) => this.xnProposalManagementService.getProposalManagement(proposal_id)),\n    ).subscribe(model => {\n      this.model = model || {};\n      this.options.formState = model?.formState || {};\n      this._resetFormState();\n    });\n\n    this._load_proposal_model$ = combineLatest([\n      _proposal_id$,\n      _workflow_status$,\n    ]).pipe(\n      switchMap(([proposal_id, workflow_status]) => this.xnProposalManagementService.loadProposalManagement(proposal_id, workflow_status)),\n    ).subscribe();\n  }\n\n  ngOnDestroy(): void {\n    this._get_proposal_description$?.unsubscribe();\n    this._get_proposal_model$?.unsubscribe();\n    this._load_proposal_model$?.unsubscribe();\n    this._workflow_status$?.unsubscribe();\n    this._proposal_id$?.unsubscribe();\n    this.onEditLoiId?.unsubscribe();\n    this.onEditBusinessPlan?.unsubscribe();\n  }\n\n  back() {\n    const modal = this.modal.create({\n      nzTitle: 'Respingi la proposta',\n      nzWidth: '650px',\n      nzContent: XnProposalManagementFormRequestComponent,\n      nzData: {\n        description: 'Respingedo, la proposta tornerà indietro allo step di validazione precedente.'\n      },\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Respingi',\n          type: 'primary',\n          disabled: contentComponentInstance => {\n            return !!contentComponentInstance?.form?.invalid;\n          },\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalManagementService\n              .backProposalManagement(this.proposal_id, this.workflow_status, contentComponentInstance?.form?.value)\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Qualcosa è andato storto. Riprova...');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'La proposta è stata respinta correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n\n  next() {\n    const modal = this.modal.create({\n      nzTitle: 'Approva la proposta',\n      nzWidth: '650px',\n      nzContent: XnProposalManagementFormRequestComponent,\n      nzData: {\n        description: 'Approvando, la proposta passerà allo step di validazione successivo.'\n      },\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Approva',\n          type: 'primary',\n          disabled: contentComponentInstance => {\n            return !!contentComponentInstance?.form?.invalid;\n          },\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalManagementService\n              .nextProposalManagement(this.proposal_id, this.workflow_status, this.form.value, contentComponentInstance?.form?.value)\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Qualcosa è andato storto. Riprova...');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'La proposta è stata approvata correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n  close(){\n    const modal = this.modal.create({\n      nzTitle: 'Chiudi la proposta',\n      nzWidth: '650px',\n      nzContent: XnProposalManagementFormRequestComponent,\n      nzData: {\n        description: 'Archivia la proposta'\n      },\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Chiudi',\n          type: 'primary',\n          disabled: contentComponentInstance => {\n            return !!contentComponentInstance?.form?.invalid;\n          },\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalManagementService\n              .closeProposalManagement(this.proposal_id,this.workflow_status, contentComponentInstance?.form?.value)\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Qualcosa è andato storto. Riprova...');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'La proposta è stata rifiutata correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n  reject() {\n    const modal = this.modal.create({\n      nzTitle: 'Rifiuta la proposta',\n      nzWidth: '650px',\n      nzContent: XnProposalManagementFormRequestComponent,\n      nzData: {\n        description: 'Rifiutando, la proposta tornerà indietro al titolare della candidatura.'\n      },\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => modal.destroy()\n        },\n        {\n          label: 'Rifiuta',\n          type: 'primary',\n          disabled: contentComponentInstance => {\n            return !!contentComponentInstance?.form?.invalid;\n          },\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalManagementService\n              .rejectProposalManagement(this.proposal_id, this.workflow_status, contentComponentInstance?.form?.value)\n              .pipe(\n                catchError(error => {\n                  this.notification.error('Errore...', 'Qualcosa è andato storto. Riprova...');\n                  return of(null);\n                }),\n                tap(model => {\n                  if (model) {\n                    this.notification.success('Successo...', 'La proposta è stata rifiutata correttamente.');\n                    modal.destroy();\n                  } \n                }),\n              )\n              .toPromise();\n          }\n        }\n      ],\n    });\n  }\n\n  history() {\n    const modal = this.modal.create({\n      nzTitle: 'Storico approvazioni',\n      nzWidth: '650px',\n      nzData: {\n        proposal_id: this.proposal_id\n      },\n      nzContent: XnProposalManagementHistoryComponent,\n      nzFooter: [\n        {\n          label: 'Ok',\n          type: 'primary',\n          onClick: () => modal.destroy()\n        },\n      ],\n    });\n  }\n\n  editLoi() {\n    const modal = this.modal.create({\n      nzTitle: 'Gestisci la LDI',\n      nzWidth: '650px',\n      nzData: {\n        proposal_id: this.proposal_id\n      },\n      nzContent: XnProposalManagementLoiDocumentComponent,\n      nzFooter: [\n        {\n          label: 'Annulla',\n          type: 'primary',\n          onClick: () => modal.destroy()\n        },\n      ],\n    });\n\n    modal.afterClose.pipe(\n      filter(loi_document => !!loi_document),\n    ).subscribe(loi_document => this.onEditLoiId.emit(loi_document.id));\n  }\n\n  private _editLoiBlocks(loi_document) {\n    const modal = this.modal.create({\n      nzTitle: loi_document?.template?.title,\n      nzWidth: '100%',\n      nzData: {\n        loi_document: loi_document\n      },\n      nzContent: XnProposalManagementLoiBlocksComponent,\n      nzFooter: [],\n    });\n    return modal.afterClose;\n  }\n\n  editBusinessPlan() {\n    this.onEditBusinessPlan.emit(this.proposal_id);\n  }\n\n  showPreview() {\n    const modal = this.modal.create({\n      nzTitle: 'Vista aggregata',\n      nzWidth: '800px',\n      nzBodyStyle: { 'padding': '0' },\n      nzData: {\n        src: this.options?.formState?.preview_src\n      },\n      nzContent: XnProposalManagementPreviewComponent,\n      nzFooter: [\n        {\n          label: 'Ok',\n          type: 'primary',\n          onClick: () => modal.destroy()\n        },\n      ],\n    });\n  }\n\n  onSave() {\n    this.xnProposalManagementService.saveProposalManagement(this.proposal_id, this.workflow_status, this.form.value)\n      .pipe()\n      .subscribe();\n  }\n\n  get saveDisabled() {\n    return this.form?.pristine || this.form?.pending || this.loading;\n  }\n\n  private _resetFormState() {\n    this.form.markAsUntouched();\n    this.form.markAsPristine();\n    this.form.updateValueAndValidity();\n    this.loading = false;\n  }\n\n}\n","<nz-header>\n  <nz-page-header class=\"container\">\n\n      <nz-breadcrumb nz-page-header-breadcrumb [nzAutoGenerate]=\"true\" #breadcrumb>\n          <nz-breadcrumb-item>\n              <a routerLink=\"/\"><i nz-icon nzType=\"home\"></i></a>\n          </nz-breadcrumb-item>\n      </nz-breadcrumb>\n\n      <nz-page-header-extra class=\"list-buttons\">\n        <!-- <nz-button-group> -->\n          <button nz-button *ngIf=\"options?.formState?.can_back\" \n            [disabled]=\"loading || preloading\" \n            nzType=\"default\" \n            (click)=\"back()\">\n            <i nz-icon nzType=\"rollback\" nzTheme=\"outline\"></i> Respingi\n          </button>\n          <button nz-button *ngIf=\"options?.formState?.can_next\" \n            [disabled]=\"loading || preloading || form?.invalid\" \n            nzType=\"primary\" \n            (click)=\"next()\">\n            <i nz-icon nzType=\"check\" nzTheme=\"outline\"></i> Approva\n          </button>\n          <button nz-button nz-dropdown \n            [nzDropdownMenu]=\"menu1\" \n            nzPlacement=\"bottomRight\">\n            <i nz-icon nzType=\"ellipsis\"></i>\n          </button>\n        <!-- </nz-button-group> -->\n\n        <nz-dropdown-menu #menu1=\"nzDropdownMenu\">\n          <ul nz-menu>\n            <li nz-menu-item *ngIf=\"options?.formState?.can_edit_ldi\" \n              [nzDisabled]=\"loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)\" \n              (click)=\"editLoi()\"\n              nz-popover\n              [nzPopoverContent]=\"'È necessario inserire e salvare tutti i dati obbligatori per gestire le LDI'\"\n              [nzPopoverTitle]=\"null\"\n              [nzPopoverTrigger]=\"(loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)) ? 'hover' : null\">\n              <i nz-icon nzType=\"form\" nzTheme=\"outline\"></i> Gestisci le LDI\n            </li>\n            <li nz-menu-item *ngIf=\"options?.formState?.can_edit_business_plan\" \n              [nzDisabled]=\"loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)\" \n              (click)=\"editBusinessPlan()\"\n              nz-popover\n              [nzPopoverContent]=\"'È necessario inserire e salvare tutti i dati obbligatori per gestire il Business Plan'\"\n              [nzPopoverTitle]=\"null\"\n              [nzPopoverTrigger]=\"(loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)) ? 'hover' : null\">\n              <i nz-icon nzType=\"stock\" nzTheme=\"outline\"></i> Business Plan\n            </li>\n            <li nz-menu-item *ngIf=\"options?.formState?.preview_src\" \n              [nzDisabled]=\"loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)\" \n              (click)=\"showPreview()\"\n              nz-popover\n              [nzPopoverContent]=\"'È necessario inserire e salvare tutti i dati obbligatori per visualizzare la vista aggregata'\"\n              [nzPopoverTitle]=\"null\"\n              [nzPopoverTrigger]=\"(loading || preloading || form?.invalid || !(this.form?.pristine || this.form?.pending)) ? 'hover' : null\">\n              <i nz-icon nzType=\"compress\" nzTheme=\"outline\"></i> Vista aggregata\n            </li>\n            <li nz-menu-item (click)=\"history()\">\n              <i nz-icon nzType=\"history\" nzTheme=\"outline\"></i> Storico approvazioni\n            </li>\n            <li nz-menu-item nzDanger *ngIf=\"options?.formState?.can_reject\" [nzDisabled]=\"loading || preloading\" (click)=\"reject()\">\n              <i nz-icon nzType=\"stop\" nzTheme=\"outline\"></i> Rifiuta proposta\n            </li>\n            <li nz-menu-item nzDanger *ngIf=\"options?.formState?.can_close\" [nzDisabled]=\"loading || preloading\" (click)=\"close()\">\n              <i nz-icon nzType=\"close-circle\" nzTheme=\"outline\"></i> Trattativa chiusa negativamente\n            </li>\n          </ul>\n        </nz-dropdown-menu>\n\n        \n      </nz-page-header-extra>\n      \n      <!--title-->\n      <nz-page-header-title>\n        {{model?.identity_target?.identity?.first_name || '...'}}\n        {{model?.identity_target?.identity?.last_name || '...'}}\n      </nz-page-header-title>\n      <nz-page-header-subtitle>{{model?.proposal_type?.title}}</nz-page-header-subtitle>\n      <!-- <nz-page-header-tags>\n        <nz-tag nzColor=\"processing\" *ngIf=\"model?.extra_standard_label\">\n          Livello approvativo: {{model?.extra_standard_label}}\n        </nz-tag>\n      </nz-page-header-tags> -->\n\n      <!-- \n      <nz-page-header-content>\n        <nz-alert \n          nzType=\"info\" \n          nzCloseable \n          *ngIf=\"options?.formState?.can_edit_ldi\"\n          [nzMessage]=\"'È necessario inserire e salvare tutti i dati obbligatori per Gestire le LDI'\">\n        </nz-alert>\n      </nz-page-header-content> \n      -->\n\n  </nz-page-header>\n</nz-header>\n<nz-content class=\"container\">\n  <nz-spin \n    style=\"min-height: 300px;\"\n    [nzSpinning]=\"preloading\"\n    nzSize=\"large\"\n    nzTip=\"Caricamento in corso...\">\n    <form autocomplete=\"off\" nz-form [nzLayout]=\"'vertical'\" [formGroup]=\"form\">\n      <formly-form [form]=\"form\" [model]=\"model\" [fields]=\"fields\" [options]=\"options\"></formly-form>\n    </form>\n  </nz-spin>\n  \n  <div style=\"height: 58px;\"></div>\n  \n  <div class=\"actions\" *ngIf=\"options?.formState?.can_save\">\n    <div class=\"container\">\n      <button [disabled]=\"saveDisabled\" type=\"button\" nz-button (click)=\"onSave()\" nzType=\"primary\" [nzLoading]=\"loading\">\n        Salva\n      </button>\n    </div>\n  </div>\n  \n  <!-- <pre>\n    {{form?.value | json}}\n  </pre> -->\n</nz-content>","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { XnFormlyModule } from '@exin/core/formly';\nimport { NzCheckboxModule, NzPopconfirmModule, NzTabsModule, NzAlertModule, NzBreadCrumbModule, NzButtonModule, NzCardModule, NzDropDownModule, NzGridModule, NzIconModule, NzLayoutModule, NzModalModule, NzNotificationModule, NzPageHeaderModule, NzSpinModule, NzTagModule, NzTimelineModule, NzTypographyModule, NzPopoverModule, NzTableModule, NzStatisticModule } from '@exin/core/ant-design';\nimport { XnDataTableModule } from '@exin/core/data-table';\nimport { XnProposalManagementItemComponent } from './xn-proposal-management-item/xn-proposal-management-item.component';\nimport { XnProposalManagementListComponent } from './xn-proposal-management-list/xn-proposal-management-list.component';\nimport { XnProposalManagementHistoryComponent } from './xn-proposal-management-history/xn-proposal-management-history.component';\nimport { XnPipesModule } from '@exin/core/pipes';\nimport { XnProposalManagementFormRequestComponent } from './xn-proposal-management-form-request/xn-proposal-management-form-request.component';\nimport { XnProposalManagementLoiDocumentComponent } from './xn-proposal-management-loi-document/xn-proposal-management-loi-document.component';\nimport { XnProposalManagementLoiBlocksComponent } from './xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks.component';\nimport { XnProposalManagementLoiBlocksItemComponent } from './xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-item.component';\nimport { XnProposalManagementLoiBlocksPreviewComponent } from './xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-preview/xn-proposal-management-loi-blocks-preview.component';\nimport { XnProposalManagementLoiBlocksEditorComponent } from './xn-proposal-management-loi-blocks/xn-proposal-management-loi-blocks-item/xn-proposal-management-loi-blocks-editor/xn-proposal-management-loi-blocks-editor.component';\nimport { XnProposalBusinessPlanComponent } from './xn-proposal-business-plan/xn-proposal-business-plan.component';\nimport { XnProposalBusinessPlanEvolutionTableComponent } from './xn-proposal-business-plan/xn-proposal-business-plan-evolution-table/xn-proposal-business-plan-evolution-table.component';\nimport { XnProposalBusinessPlanOtherCostsComponent } from './xn-proposal-business-plan/xn-proposal-business-plan-other-costs/xn-proposal-business-plan-other-costs.component';\nimport { XnProposalBusinessPlanCrescitaComponent } from './xn-proposal-business-plan/xn-proposal-business-plan-crescita/xn-proposal-business-plan-crescita.component';\nimport { XnProposalManagementPreviewComponent } from './xn-proposal-management-preview/xn-proposal-management-preview.component';\nimport { USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME } from './xn-proposal-config';\nimport { XnProposalConfigService } from './xn-proposal-config.service';\nimport { NgxPermissionsModule } from 'ngx-permissions';\n\nexport interface XnProposalManagementModuleConfig {\n  proposal_use_ldi_generic_reference_name?:boolean\n}\n@NgModule({\n  declarations: [\n    XnProposalManagementListComponent,\n    XnProposalManagementItemComponent,\n    XnProposalManagementHistoryComponent,\n    XnProposalManagementFormRequestComponent,\n    XnProposalManagementLoiDocumentComponent,\n    XnProposalManagementLoiBlocksComponent,\n    XnProposalManagementLoiBlocksItemComponent,\n    XnProposalManagementLoiBlocksPreviewComponent,\n    // XnProposalManagementLoiBlocksEditorComponent,\n    XnProposalBusinessPlanComponent,\n    XnProposalBusinessPlanEvolutionTableComponent,\n    XnProposalBusinessPlanOtherCostsComponent,\n    XnProposalBusinessPlanCrescitaComponent,\n    XnProposalManagementPreviewComponent,\n  ],\n  // entryComponents: [\n  //   XnProposalManagementHistoryComponent,\n  //   XnProposalManagementFormRequestComponent,\n  //   XnProposalManagementLoiDocumentComponent,\n  //   XnProposalManagementLoiBlocksEditorComponent,\n  //   XnProposalBusinessPlanOtherCostsComponent,\n  //   XnProposalBusinessPlanCrescitaComponent,\n  //   XnProposalManagementPreviewComponent,\n  // ],\n  imports: [\n    CommonModule,\n    RouterModule,\n    NzCardModule,\n    NzGridModule,\n    NzButtonModule,\n    NzLayoutModule,\n    NzPageHeaderModule,\n    NzBreadCrumbModule,\n    NzModalModule,\n    NzIconModule,\n    NzTimelineModule,\n    NzPopconfirmModule,\n    NzSpinModule,\n    NzDropDownModule,\n    NzTypographyModule,\n    NzNotificationModule,\n    NzTagModule,\n    NzAlertModule,\n    NzPopoverModule,\n    XnDataTableModule,\n    XnFormlyModule,\n    NzTabsModule,\n    NzTableModule,\n    NzStatisticModule,\n    NzCheckboxModule,\n    XnPipesModule,\n    NgxPermissionsModule,\n    XnFormlyModule,\n    XnProposalManagementLoiBlocksEditorComponent\n  ],\n  exports: [\n    XnProposalManagementListComponent,\n    XnProposalManagementItemComponent,\n    XnProposalManagementLoiBlocksComponent,\n    XnProposalManagementPreviewComponent,\n    XnProposalBusinessPlanComponent\n  ],\n  providers: [\n    XnProposalConfigService,\n      { provide: USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME, useValue: null}\n    ]\n})\nexport class XnProposalManagementModule { \n   static withConfig(config: XnProposalManagementModuleConfig = {}): ModuleWithProviders<XnProposalManagementModule> {\n    return {\n        ngModule: XnProposalManagementModule,\n        providers: [\n          { provide: USE_PROPOSAL_LDI_GENERIC_REFERENCE_NAME, useValue: config.proposal_use_ldi_generic_reference_name},\n        ]\n      };\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","i2","i4","i5","i6","i7","i1.XnProposalBusinessPlanManagementService","i7.XnProposalBusinessPlanEvolutionTableComponent","i1.XnProposalManagementService","i1.XnProposalConfigService","i2.XnProposalLoiManagementService","i3.XnProposalConfigService","i6.XnProposalManagementLoiBlocksPreviewComponent","i1.XnProposalLoiManagementService","i7.XnProposalManagementLoiBlocksItemComponent","i8","i9","NzCheckboxModule"],"mappings":"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"}