{"version":3,"file":"exin-proposal-list.mjs","sources":["../../../projects/xn-proposal/list/src/xn-proposal-list.service.ts","../../../projects/xn-proposal/list/src/xn-proposal-table/xn-proposal-table.component.ts","../../../projects/xn-proposal/list/src/xn-proposal-table/xn-proposal-table.component.html","../../../projects/xn-proposal/list/src/xn-proposal-type/xn-proposal-type.component.ts","../../../projects/xn-proposal/list/src/xn-proposal-type/xn-proposal-type.component.html","../../../projects/xn-proposal/list/src/xn-new-proposal/xn-new-proposal.directive.ts","../../../projects/xn-proposal/list/src/xn-proposal-list/xn-proposal-list.component.ts","../../../projects/xn-proposal/list/src/xn-proposal-list/xn-proposal-list.component.html","../../../projects/xn-proposal/list/src/xn-proposal-list.module.ts","../../../projects/xn-proposal/list/exin-proposal-list.ts"],"sourcesContent":["import { HttpParams } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { XnApiSchema, XnHttpService } from '@exin/core/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { XnProposalList, XnProposalType } from './xn-proposal-list.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class XnProposalListService implements OnDestroy {\n\n  private _proposalTypesSubject: BehaviorSubject<XnProposalType[]> = new BehaviorSubject<XnProposalType[]>([]);\n  proposal_types$: Observable<XnProposalType[]>;\n\n  constructor(\n    private http: XnHttpService,\n  ) {\n    this.proposal_types$ = this._proposalTypesSubject.asObservable();\n    this.loadProposalTypes();\n  }\n\n  loadProposalTypes() {\n    this.http.getApiSchema<XnProposalType[]>(`v1/proposal-types`)\n      .pipe(\n        catchError(() => of([])),\n      )\n      .subscribe(proposal_types => this._proposalTypesSubject.next(proposal_types));\n  }\n\n  loadProposals(identity_target_id): Observable<XnProposalList[]> {\n    return this.http.getApiSchema<XnProposalList[]>(`v1/identity-targets/${identity_target_id}/proposals`)\n      .pipe(\n        catchError(() => of([])),\n      );\n  }\n\n  loadAllProposals(\n    order_by: string, order_sort: string, paginate: number, page: number,\n    search: string,\n    proposal_type_ids:string,\n    user_ids:string,\n    tag:string\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('search', search || '')\n      .set('proposal_type_ids', proposal_type_ids)\n      .set('user_ids', user_ids)\n      .set('tag',tag);\n    return this.http.get<XnApiSchema<XnProposalList[]>>(`v1/proposals`, { params: params })\n      .pipe(\n        catchError(() => of({ data: [], meta: { total: 0 } } as XnApiSchema<XnProposalList[]>)),\n      );\n  }\n\n  createProposal(identity_target_id, proposal_type_id): Observable<XnProposalList> {\n    return this.http.postApiSchema<XnProposalList>(\n      `v1/identity-targets/${identity_target_id}/proposals`,\n      { proposal_type_id: proposal_type_id }\n    )\n      .pipe(\n        catchError(() => of(null)),\n      );\n  }\n\n  ngOnDestroy() {\n    this._proposalTypesSubject?.unsubscribe();\n  }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { XnDataTableComponent, XnTableColumn } from '@exin/core/data-table';\nimport { XnFormlyFieldConfig, XnFormlyFormOptions } from '@exin/core/formly';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { debounceTime, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { XnProposalList } from '../xn-proposal-list.model';\nimport { XnProposalListService } from '../xn-proposal-list.service';\nimport { XnProposalTag } from '@exin/proposal/shared';\n\n@Component({\n  selector: 'xn-proposal-table',\n  templateUrl: './xn-proposal-table.component.html',\n  styleUrls: ['./xn-proposal-table.component.less'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class XnProposalTableComponent implements OnInit, OnDestroy {\n\n  @Input() clickable: boolean = false;\n\n  proposal_type_options = [];\n  user_options = [];\n\n  form = new FormGroup({});\n  model = {\n    search: null,\n    proposal_type_ids: [],\n    user_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        },\n        {\n          key: 'proposal_type_ids',\n          type: 'select',\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 tipo di proposta',\n            multiple: true,\n            showArrow: true,\n            allowClear: true,\n            valueProp: 'id',\n            labelProp: 'title',\n          },\n          expressionProperties: {\n            'templateOptions.options': () => this.proposal_type_options,\n          }\n        },\n        {\n          key: 'user_ids',\n          type: 'select',\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 Gestore',\n            multiple: true,\n            showArrow: true,\n            allowClear: true,\n            valueProp: 'id',\n            labelProp: 'name',\n          },\n          expressionProperties: {\n            'templateOptions.options': () => this.user_options,\n          }\n        },\n      ]\n    },\n  ];\n  options: XnFormlyFormOptions = {\n    formState: {\n    },\n  };\n\n  @ViewChild(XnDataTableComponent, { static: true }) table: XnDataTableComponent;\n  @ViewChild('lastWorkflowStatusTemplate', { static: true }) lastWorkflowStatusTemplate: TemplateRef<any>;\n  @ViewChild('workflowStatusTemplate', { static: true }) workflowStatusTemplate: TemplateRef<any>;\n\n  loading: boolean;\n  columns: XnTableColumn[] = [];\n\n  private _subscription$: Subscription;\n\n  private _tag: XnProposalTag = XnProposalTag.DRAFT;\n  @Input()\n  set tag(tag: XnProposalTag) {\n    this._tag = tag;\n    this._tag$.emit(tag);\n  };\n  get tag() {\n    return this._tag;\n  }\n  private _tag$: EventEmitter<XnProposalTag> = new EventEmitter<XnProposalTag>();\n\n\n  @Output('onSelect') onSelect$: EventEmitter<XnProposalList> = new EventEmitter<XnProposalList>();\n\n  constructor(\n    private xnProposalListService: XnProposalListService,\n    private cdr: ChangeDetectorRef,\n  ) { }\n\n  ngOnInit() {\n    this.columns = [\n      {\n        name: 'Nome',\n        prop: 'identity_first_name',\n      },\n      {\n        name: 'Cognome',\n        prop: 'identity_last_name',\n      },\n      {\n        name: 'Gestore',\n        prop: 'user_name',\n      },\n      {\n        name: 'Tipo di proposta',\n        prop: 'proposal_type_title',\n      },\n      // {\n      //   name: 'Livello app.',\n      //   prop: 'last_workflow_status',\n      //   cellTemplate: this.lastWorkflowStatusTemplate,\n      // },\n      {\n        name: 'Stato',\n        prop: 'workflow_status',\n        cellTemplate: this.workflowStatusTemplate,\n      }\n    ];\n\n    this._subscription$ = combineLatest([\n      this.table.pagedData$.pipe(\n        // debounceTime(200),\n      ),\n      this.form.valueChanges.pipe(\n        startWith(this.form.value),\n        map(formValue =>{\n          this.resetTable()\n          return formValue as any\n        })\n      ),\n      this._tag$.pipe(\n        startWith(this.tag),\n        map(tag =>{\n          this.resetTable()\n          return tag\n        })\n      ),\n    ]).pipe(\n      tap(() => this.loading = true),\n      debounceTime(200),\n      // tap(console.log),\n      switchMap(([data, filters,tag]) =>\n        this.xnProposalListService.loadAllProposals(\n          data.prop || 'first_name',\n          data.dir || 'asc',\n          data.limit,\n          data.offset + 1,\n          filters.search,\n          filters.proposal_type_ids,\n          filters.user_ids,\n          tag\n        )\n      ),\n    ).subscribe( response => {\n      this.table.rows = response.data;\n      this.table.count = response.meta.total;\n      this.proposal_type_options = response?.filters_value?.proposal_type_options || [];\n      this.user_options = (response?.filters_value?.user_options || []).filter((v,i,a)=>a.findIndex(v2=>(v2.id===v.id))===i)\n      this.loading = false;\n      this.cdr.detectChanges();\n    });\n  }\n\n  ngOnDestroy() {\n    this.onSelect$?.unsubscribe();\n    this._subscription$?.unsubscribe();\n    this._tag$?.unsubscribe();\n  }\n\n  select(proposal) {\n    if (proposal) {\n      this.onSelect$.emit(proposal);\n    }\n  }\n\n  private resetTable()\n  {\n    this.table.offset = 0;\n  }\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\n<nz-card [nzBodyStyle]=\"{'padding': '0'}\">\n  <xn-data-table #table\n      [columns]=\"columns\" \n      [serverSide]=\"true\"\n      [loading]=\"loading\" \n      [clickable]=\"clickable\"\n      (onClick)=\"select($event)\">\n  </xn-data-table>\n</nz-card>\n\n<ng-template #lastWorkflowStatusTemplate let-row=\"row\">\n  <nz-tag nzColor=\"default\">\n    {{row?.last_workflow_status || 'N.D.'}}\n  </nz-tag>\n</ng-template>\n\n<ng-template #workflowStatusTemplate let-row=\"row\">\n  <nz-tag [nzColor]=\"row?.workflow_status_tag\">\n    <span [ngSwitch]=\"row?.workflow_status_tag\">\n      <i *ngSwitchCase=\"'success'\" nz-icon nzType=\"check-circle\"></i>\n      <i *ngSwitchCase=\"'processing'\" nz-icon nzType=\"sync\" nzSpin></i>\n      <i *ngSwitchCase=\"'error'\" nz-icon nzType=\"close-circle\"></i>\n      <i *ngSwitchCase=\"'warning'\" nz-icon nzType=\"exclamation-circle\"></i>\n      <i *ngSwitchCase=\"'default'\" nz-icon nzType=\"clock-circle\"></i>\n    </span>\n    {{row?.workflow_status_label}}\n  </nz-tag>\n</ng-template>","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { XnProposalListService } from '../xn-proposal-list.service';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\n\n@Component({\n  selector: 'xn-proposal-type',\n  templateUrl: './xn-proposal-type.component.html',\n  styleUrls: ['./xn-proposal-type.component.less']\n})\nexport class XnProposalTypeComponent implements OnInit, OnDestroy {\n\n  loading: boolean = true;\n\n  proposal_type_id_selected: string;\n\n  proposal_types: any[] = [];\n  private _proposal_types$: Subscription;\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private xnProposalListService: XnProposalListService,\n    @Inject(NZ_MODAL_DATA) private nzData: any\n  ) { }\n\n  ngOnInit(): void {\n    // Initialization from nzData (if needed in the future)\n\n    this._proposal_types$ = this.xnProposalListService.proposal_types$\n      .subscribe(proposal_types => {\n        this.proposal_types = proposal_types;\n        this.loading = false;\n        this.cdr.detectChanges();\n      });\n  }\n\n  ngOnDestroy() {\n    this._proposal_types$.unsubscribe();\n  }\n}\n","<nz-radio-group [(ngModel)]=\"proposal_type_id_selected\">\n  <nz-table \n      #fixedTable \n      [nzTableLayout]=\"'fixed'\"\n      [nzData]=\"proposal_types\"\n      [nzLoading]=\"loading\"\n      [nzFrontPagination]=\"false\"\n      [nzShowPagination]=\"false\"\n      [nzScroll]=\"{ y: '300px' }\">\n      <tbody>\n      <tr *ngFor=\"let proposal_type of fixedTable?.data\">\n          <td nz-radio [nzValue]=\"proposal_type?.id\" style=\"display: table-cell;\">\n            <label>{{ proposal_type?.title }}</label>\n            <br/>\n            <span nz-typography nzType=\"secondary\" *ngIf=\"proposal_type?.description\">{{ proposal_type.description }}</span>\n          </td>\n      </tr>\n      </tbody>\n  </nz-table>\n</nz-radio-group>","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { NzModalService, NzNotificationService } from '@exin/core/ant-design';\nimport { XnIdentityTargetService } from '@exin/crm/identity-target';\nimport { of } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { XnProposalList } from '../xn-proposal-list.model';\nimport { XnProposalListService } from '../xn-proposal-list.service';\nimport { XnProposalTypeComponent } from '../xn-proposal-type/xn-proposal-type.component';\n\n@Directive({\n  selector: '[xnNewProposal]'\n})\nexport class XnNewProposalDirective implements OnInit, OnDestroy {\n\n  @HostListener('click') onClick() {\n    this.create();\n  }\n\n  @Output('onSelect') onSelect$: EventEmitter<XnProposalList> = new EventEmitter<XnProposalList>();\n\n  modalTmp: any;\n  disabled: boolean = true;\n  loading: boolean = false;\n\n  private _identity_target_id$: EventEmitter<string> = new EventEmitter<string>();\n  private _identity_target_id: string;\n  @Input() \n  set identity_target_id (identity_target_id: string) {\n    this._identity_target_id = identity_target_id;\n    this._identity_target_id$.emit(identity_target_id);\n  }\n  get identity_target_id() {\n    return this._identity_target_id;\n  }\n\n  constructor(\n    private modal: NzModalService,\n    private xnIdentityTargetService: XnIdentityTargetService,\n    private xnProposalListService: XnProposalListService,\n    private notification: NzNotificationService,\n  ) { }\n\n  ngOnInit(): void {\n    this._identity_target_id$.pipe(\n      startWith(this.identity_target_id),\n      distinctUntilChanged(),\n      switchMap(identity_target_id => this.xnIdentityTargetService.getIdentityTarget(identity_target_id)),\n    ).subscribe(identity_target => {\n      this.setDisabled(identity_target)\n    });\n  }\n\n  ngOnDestroy() {\n    this._identity_target_id$?.unsubscribe();\n    this.onSelect$?.unsubscribe();\n  }\n\n  setDisabled(identity_target) {\n    setTimeout(() => {\n      this.disabled = (\n        !identity_target ||\n        (identity_target?.close_motivation_id)\n      ) ? true : false;\n    }, 0);\n  }\n\n  create() {\n    if (this.disabled) { return; }\n    this.createComponentModal();\n  }\n\n  createComponentModal() {\n    this.modalTmp = this.modal.create({\n      nzTitle: 'Seleziona la tipologia di proposta economica',\n      nzWidth: '650px',\n      nzData: {\n      },\n      nzContent: XnProposalTypeComponent,\n      nzFooter: [\n        {\n          label: 'Annulla',\n          onClick: () => this.modalTmp?.destroy()\n        },\n        {\n          label: 'Crea',\n          type: 'primary',\n          disabled: contentComponentInstance => !!!contentComponentInstance?.proposal_type_id_selected,\n          autoLoading: true,\n          onClick: contentComponentInstance => {\n            return this.xnProposalListService.createProposal(\n              this.identity_target_id, \n              contentComponentInstance?.proposal_type_id_selected\n            ).pipe(\n              catchError(error => {\n                this.notification.error('Errore...', 'Errore nella creazione della proposta.');\n                return of(null);\n              }),\n              map(proposal => {\n                if (proposal) {\n                  this.notification.success('Successo...', 'La proposta economica è stata creata correttamente.');\n                  this.onSelect$.emit(proposal);\n                  this.modalTmp?.destroy();\n                } \n                return proposal;\n              }),\n            ).toPromise();\n          }\n        }\n      ],\n    });\n    this.modalTmp?.afterOpen.subscribe(() => { });\n    this.modalTmp?.afterClose.subscribe(result => { });\n  }\n}\n\n\n@Directive({\n  selector: '[xnNewProposalButton]',\n  host: {\n    '[attr.disabled]': 'disabled || null',\n  }\n})\nexport class XnNewProposalButtonDirective extends XnNewProposalDirective {}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, startWith, switchMap } from 'rxjs/operators';\nimport { XnProposalList } from '../xn-proposal-list.model';\nimport { XnProposalListService } from '../xn-proposal-list.service';\n\n@Component({\n  selector: 'xn-proposal-list',\n  templateUrl: './xn-proposal-list.component.html',\n  styleUrls: ['./xn-proposal-list.component.less']\n})\nexport class XnProposalListComponent implements OnInit, OnDestroy {\n\n  loading: boolean = true;\n  proposals: XnProposalList[] = [];\n\n  private _subscription: Subscription;\n\n  private _identity_target_id$: EventEmitter<string> = new EventEmitter<string>();\n  private _identity_target_id: string;\n  @Input()\n  set identity_target_id(key: string) {\n    this._identity_target_id = key;\n    this._identity_target_id$.emit(key);\n  }\n  get identity_target_id() {\n    return this._identity_target_id;\n  };\n\n  @Output('onSelect') onSelect$: EventEmitter<XnProposalList> = new EventEmitter<XnProposalList>();\n\n  constructor(\n    private xnProposalListService: XnProposalListService,\n  ) { }\n\n  ngOnInit() {\n    this._subscription = this._identity_target_id$.pipe(\n      startWith(this.identity_target_id),\n      filter(identity_target_id => identity_target_id != null),\n      distinctUntilChanged(),\n      switchMap((identity_target_id) => this.xnProposalListService.loadProposals(identity_target_id))\n    ).subscribe(proposals => {\n      this.loading = false;\n      this.proposals = proposals\n    });\n  }\n\n  ngOnDestroy() {\n    this._identity_target_id$?.unsubscribe();\n    this.onSelect$?.unsubscribe();\n    this._subscription?.unsubscribe();\n  }\n\n  open(proposal) {\n    this.onSelect$.emit(proposal);\n  }\n\n}\n","<ng-container *ngIf=\"(loading); else notLoading\">\n  <nz-card [nzLoading]=\"loading\">\n  </nz-card>\n</ng-container>\n\n<ng-template #notLoading>\n  <ng-container *ngIf=\"(proposals?.length); else proposalEmpty\">\n    <ng-template ngxPermissionsOnly=\"app-proposal-generator-can-add-multiple\">\n      <div class=\"action-buttons\" style=\"margin-bottom: 16px;\">\n        <ng-template [ngTemplateOutlet]=\"extraTemplate\"></ng-template>\n      </div>\n    </ng-template>\n    <div *ngFor=\"let proposal of proposals\">\n      <nz-card nzTitle=\"Dettaglio proposta economica\" [nzExtra]=\"detailTemplate\">\n        <xn-proposal [proposal]=\"proposal\"></xn-proposal>\n      </nz-card>\n      <ng-template #detailTemplate>\n        <a (click)=\"open(proposal)\">Dettaglio <i nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></i></a>\n      </ng-template>\n    </div>\n  </ng-container>\n</ng-template>\n\n<ng-template #proposalEmpty>\n  <nz-card>\n    <nz-empty \n      nzNotFoundImage=\"simple\" \n      [nzNotFoundContent]=\"'Nessuna proposta economica attiva'\"\n      [nzNotFoundFooter]=\"extraTemplate\">\n    </nz-empty>\n  </nz-card>\n</ng-template>\n\n<ng-template #extraTemplate>\n  <ng-template ngxPermissionsOnly=\"app-proposal-generator-can-add\">\n    <ng-content></ng-content>\n  </ng-template>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { XnProposalListComponent } from './xn-proposal-list/xn-proposal-list.component';\nimport { NzCardModule, NzEmptyModule, NzIconModule, NzListModule, NzModalModule, NzNotificationModule, NzRadioModule, NzTableModule, NzTagModule, NzTypographyModule } from '@exin/core/ant-design';\nimport { XnNewProposalButtonDirective, XnNewProposalDirective } from './xn-new-proposal/xn-new-proposal.directive';\nimport { XnProposalModule } from '@exin/proposal/shared';\nimport { RouterModule } from '@angular/router';\nimport { XnProposalTypeComponent } from './xn-proposal-type/xn-proposal-type.component';\nimport { FormsModule } from '@angular/forms';\nimport { NgxPermissionsModule } from '@exin/core/core';\nimport { XnProposalTableComponent } from './xn-proposal-table/xn-proposal-table.component';\nimport { XnDataTableModule } from '@exin/core/data-table';\nimport { XnFormlyModule } from '@exin/core/formly';\n\nconst COMPONENTS = [\n  XnProposalListComponent,\n  XnNewProposalDirective,\n  XnNewProposalButtonDirective,\n  XnProposalTypeComponent,\n  XnProposalTableComponent,\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    NzCardModule,\n    NzListModule,\n    NzEmptyModule,\n    NzIconModule,\n    NzModalModule,\n    NzNotificationModule,\n    NzRadioModule,\n    NzTableModule,\n    NzTagModule,\n    NzTypographyModule,\n    XnProposalModule,\n    NgxPermissionsModule,\n    XnDataTableModule,\n    XnFormlyModule,\n    RouterModule,\n  ],\n  // entryComponents:[\n  //   XnProposalTypeComponent,\n  // ],\n  declarations: [\t\n    ...COMPONENTS,\n   ],\n  exports: [\n    ...COMPONENTS,\n  ]\n})\nexport class XnProposalListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.XnProposalListService","i1","i2","i3.XnProposalListService","i3","i4","i5"],"mappings":"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"}