{"version":3,"file":"alurkerja-angular.mjs","sources":["../../../projects/alurkerja-angular/src/lib/crud/model-crud/crud.model.ts","../../../projects/alurkerja-angular/src/lib/shared/services/common/sweet-alert.service.ts","../../../projects/alurkerja-angular/src/lib/crud/base-edit-pages.component.ts","../../../projects/alurkerja-angular/src/lib/crud/edit-crud/edit-crud-modal.component.html","../../../projects/alurkerja-angular/src/lib/crud/base-delete-pages.component.ts","../../../projects/alurkerja-angular/src/lib/crud/delete-crud/delete-crud-modal.component.html","../../../projects/alurkerja-angular/src/lib/crud/base-crud-pages.component.ts","../../../projects/alurkerja-angular/src/lib/crud/base-crud-bpmn-pages.component.ts","../../../projects/alurkerja-angular/src/lib/crud/base-crud-bpmn-todo-pages.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/diagram/diagram.component.ts","../../../projects/alurkerja-angular/src/lib/crud-table/models/environment.model.ts","../../../projects/alurkerja-angular/src/lib/shared/services/common/select2.service.ts","../../../projects/alurkerja-angular/src/lib/shared/components/base-select-2/base-select2.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/base-select-2/base-select2.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/base-select-2/common-select2.component.ts","../../../projects/alurkerja-angular/src/lib/crud/base-bpmn-edit-pages.component.ts","../../../projects/alurkerja-angular/src/lib/crud/edit-crud/edit-bpmn-modal.component.html","../../../projects/alurkerja-angular/src/lib/shared/services/common/file-upload.service.ts","../../../projects/alurkerja-angular/src/lib/shared/components/date/date-select.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/date/date-select.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/base-edit-bpmn/base-edit-bpmn.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/base-edit-bpmn/base-edit-bpmn.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/base-edit-bpmn-decision/base-edit-bpmn-decision.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/base-edit-bpmn-decision/base-edit-bpmn-decision.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/draw/draw.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/draw/draw.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/single-upload-file/single-upload-file.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/single-upload-file/single-upload-file.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/diagram/diagram-tes.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/tag/tag-file.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/tag/tag-file.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/diagram/diagram-req-doc.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/date-range/date-range-select.component.ts","../../../projects/alurkerja-angular/src/lib/shared/components/date-range/date-range-select.component.html","../../../projects/alurkerja-angular/src/lib/shared/components/diagram/diagram-delegate-app.component.ts","../../../projects/alurkerja-angular/src/lib/crud/crud.module.ts","../../../projects/alurkerja-angular/src/lib/crud-table/models/sort.model.ts","../../../projects/alurkerja-angular/src/lib/crud-table/models/paginator.model.ts","../../../projects/alurkerja-angular/src/lib/crud-table/models/grouping.model.ts","../../../projects/alurkerja-angular/src/lib/crud-table/services/table.service.ts","../../../projects/alurkerja-angular/src/lib/crud-table/services/table.extended.service.ts","../../../projects/alurkerja-angular/src/lib/crud-table/components/paginator/ng-pagination/ng-pagination.config.ts","../../../projects/alurkerja-angular/src/lib/crud-table/components/paginator/ng-pagination/ng-pagination.component.ts","../../../projects/alurkerja-angular/src/lib/crud-table/components/paginator/ng-pagination/ng-pagination.component.html","../../../projects/alurkerja-angular/src/lib/crud-table/components/paginator/paginator.component.ts","../../../projects/alurkerja-angular/src/lib/crud-table/components/paginator/paginator.component.html","../../../projects/alurkerja-angular/src/lib/crud-table/components/sort-icon/sort-icon.component.ts","../../../projects/alurkerja-angular/src/lib/crud-table/components/sort-icon/sort-icon.component.html","../../../projects/alurkerja-angular/src/lib/crud-table/crud-table.module.ts","../../../projects/alurkerja-angular/src/alurkerja-angular.ts"],"sourcesContent":["export const LIST_TYPE_INPUT = [\n    'button',\n    'checkbox',\n    'color',\n    'date',\n    'datetime-local',\n    'email',\n    'file',\n    'hidden',\n    'image',\n    'month',\n    'number',\n    'password',\n    'radio',\n    'range',\n    'reset',\n    'search',\n    'submit',\n    'tel',\n    'text',\n    'url',\n    'week'\n];\n","import {Injectable} from \"@angular/core\";\nimport Swal from 'sweetalert2'\nimport {Router} from \"@angular/router\";\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class SweetAlertService {\n\n  constructor(private router: Router) {}\n\n  static swalError(res) {\n    this.customSwal(res.error.message, `Error HTTP ${res.status}`, 'error', res.status);\n  }\n\n  static swalSuccess(res) {\n    this.customSwal('', `Success`, 'success', res.status);\n  }\n\n  static swalSuccessDraft(res) {\n    this.customSwal('Your draft has been saved successfully', `Success`, 'success', res.status);\n  }\n\n  static swalSuccessCustom(text: string, title: string) {\n    this.customSwal(text, title, 'success', 200);\n  }\n\n  // THIS FOR Single Approval\n  static customSwal(text, title, icon = 'error', status) {\n    if (status == 401) {\n      Swal.fire({\n        icon: icon === 'error' ? 'error' : (icon === 'warning' ? 'warning' : 'success'),\n        confirmButtonColor: '#3699FF',\n        title: 'Session Expired',\n        text: 'Your session has timeout, please sign in again'\n      }).then((result) => {\n        window.location.href=\"/#logout=true\"\n      });\n    } else if (status == 502) {\n      const titleStr = '';\n      const textStr = 'Our system is currently under maintenance. We will get back soon to serve you better';\n      Swal.fire({\n        icon: 'warning',\n        confirmButtonColor: '#3699FF',\n        title: titleStr,\n        text: textStr\n      }).then();\n    } else {\n      Swal.fire({\n        icon: icon === 'error' ? 'error' : (icon === 'warning' ? 'warning' : 'success'),\n        confirmButtonColor: '#3699FF',\n        title,\n        text\n      }).then();\n    }\n  }\n\n  // THIS FOR Single Approval\n  static swalErrorNoApi(title: string, text: string) {\n    Swal.fire({\n      icon: 'error',\n      confirmButtonColor: '#3699FF',\n      title,\n      text\n    }).then();\n  }\n\n  // THIS FOR Single Approval\n  static swalErrorNoApiHtml(title: string, arr = []) {\n    let html = '<ul>';\n    arr.forEach((el) => {\n      html = html + '<li>' + el + '</li>';\n    })\n    html = html + '</ul>';\n    Swal.fire({\n      icon: 'error',\n      confirmButtonColor: '#3699FF',\n      title,\n      html: html\n    }).then();\n  }\n\n  // THIS FOR Single Approval\n  static swalWithUrl(title: string, showDeny: boolean, showCancel: boolean, textConfirm: string, textDeny: string, icon, urlConfirmed: string, textDenied: string) {\n    Swal.fire({\n      title,\n      icon,\n      showDenyButton: showDeny,\n      showCancelButton: showCancel,\n      confirmButtonText: textConfirm,\n      denyButtonText: textDeny,\n    }).then((result) => {\n      /* Read more about isConfirmed, isDenied below */\n      if (result.isConfirmed) {\n        window.location.href = urlConfirmed;\n      } else if (result.isDenied) {\n        Swal.fire(textDenied, '', 'info')\n      }\n    })\n  }\n\n  // THIS FOR Single Approval\n  static idleLogout() {\n    Swal.fire({\n      icon: 'error',\n      confirmButtonColor: '#3699FF',\n      title: 'Session Expired',\n      text: 'Your session has timeout, please sign in again'\n    }).then((result) => {\n      window.location.href=\"/auth/login\"\n    });\n  }\n\n}\n","import {Component, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\nimport {Subscription} from 'rxjs';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\nimport {LIST_TYPE_INPUT} from './model-crud/crud.model';\nimport {SweetAlertService} from \"../shared/services/common/sweet-alert.service\";\n\n@Component({\n    selector: 'app-base-edit-pages',\n    templateUrl: './edit-crud/edit-crud-modal.component.html',\n    styleUrls: ['./edit-crud/edit-crud-modal.component.scss'],\n})\n\nexport class BaseEditPagesComponent implements OnInit, OnDestroy {\n    @Input() id: number;\n    @Input() show: boolean;\n    @Input() title: string;\n    @Input() arrFormGroup: {\n        title: string,\n        form: string,\n        type?: string,\n        url?: string,\n        metaData?: string,\n        placeHolder?: string,\n        name?: string,\n        readonly?: boolean,\n        mandatory?: boolean\n    }[];\n    isLoading$;\n    formObj: any;\n    formGroup: UntypedFormGroup;\n    subscriptions: Subscription[] = [];\n    htmlInputType = LIST_TYPE_INPUT;\n    EMPTY_OBJ: {} = {};\n    constructor(\n        @Inject('') protected service: any,\n        protected fb: UntypedFormBuilder,\n        public modal: NgbActiveModal\n    ) { }\n\n    ngOnInit(): void {\n        this.isLoading$ = this.service.isLoading$;\n        this.loadFormData();\n    }\n\n    loadFormData() {\n        if (!this.id) {\n            this.formObj = this.EMPTY_OBJ;\n            this.loadForm();\n        } else {\n            const sb = this.service.getItemById(this.id).pipe(\n\n            ).subscribe((res: any) => {\n              // SweetAlertService.swalSuccess(res);\n              this.formObj = res.data;\n              this.loadForm();\n            }, (error) => {\n              SweetAlertService.swalError(error);\n              this.modal.dismiss(error)\n            });\n            this.subscriptions.push(sb);\n        }\n    }\n\n    // OVERRIDE THIS (ADD CUSTOM FORMCONTROLL AND VALIDATION)\n    loadForm() {\n\n    }\n\n    save() {\n        this.prepareFormData();\n        if (this.formObj.id) {\n            this.edit();\n        } else {\n            this.create();\n        }\n    }\n\n    edit() {\n        const sbUpdate = this.service.update(this.formObj.id, this.prepareFormEdit()).pipe(\n        ).subscribe((res: any) => {\n          this.formObj = res;\n          this.modal.dismiss('success');\n        }, (error) => {\n          SweetAlertService.swalError(error);\n          this.modal.dismiss('error');\n        });\n        this.subscriptions.push(sbUpdate);\n    }\n\n    create() {\n        const sbCreate = this.service.create(this.prepareFormData()).pipe(\n        ).subscribe((res: any) => {\n          this.formObj = res;\n          this.modal.dismiss(('success'));\n        }, (error) => {\n          SweetAlertService.swalError(error);\n          this.modal.dismiss('error');\n        });\n        this.subscriptions.push(sbCreate);\n    }\n\n    // OVERRIDE THIS (PREPARE DATA FOR BODY PAYLOAD)\n    prepareFormData() {\n\n    }\n\n    // OVERRIDE THIS (PREPARE DATA FOR BODY PAYLOAD)\n    prepareFormEdit() {\n\n    }\n\n    ngOnDestroy(): void {\n        this.subscriptions.forEach(sb => sb.unsubscribe());\n    }\n\n    // helpers for View\n    isControlValid(controlName: string): boolean {\n        const control = this.formGroup.controls[controlName];\n        return control.valid && (control.dirty || control.touched);\n    }\n\n    isControlInvalid(controlName: string): boolean {\n        const control = this.formGroup.controls[controlName];\n        return control.invalid && (control.dirty || control.touched);\n    }\n\n    controlHasError(validation, controlName): boolean {\n        const control = this.formGroup.controls[controlName];\n        return control.hasError(validation) && (control.dirty || control.touched);\n    }\n\n    isControlTouched(controlName): boolean {\n        const control = this.formGroup.controls[controlName];\n        return control.dirty || control.touched;\n    }\n}\n","<div class=\"modal-content\">\n    <div class=\"modal-header\">\n        <div class=\"modal-title h4\" id=\"example-modal-sizes-title-lg\">\n            <ng-container *ngIf=\"formObj\">\n                <ng-container *ngIf=\"formObj.id && !show\">Edit</ng-container>\n                <ng-container *ngIf=\"formObj.id && show\">View</ng-container>\n                <ng-container *ngIf=\"!formObj.id\">Create</ng-container>\n                {{title}}\n            </ng-container>\n        </div>\n    </div>\n    <div class=\"overlay overlay-block cursor-default modal-body\" style=\"min-height: 404px\">\n        <ng-container *ngIf=\"isLoading$ | async\">\n            <div class=\"overlay-layer bg-transparent\">\n                <div class=\"spinner spinner-lg spinner-success\"></div>\n            </div>\n        </ng-container>\n\n        <ng-container *ngIf=\"formObj\">\n            <form action=\"#\" class=\"form form-label-right\" [formGroup]=\"formGroup\">\n                <div class=\"form-group row\" *ngFor=\"let item of arrFormGroup\">\n                    <label  class=\"col-2 col-form-label\">{{item.title}} <span *ngIf=\"item.mandatory\" class=\"text-danger\">*</span></label>\n                    <div class=\"col-lg-6\">\n                        <input *ngIf=\"htmlInputType.includes(item.type ? item.type : 'text')\"\n                                type=\"{{item.type}}\"\n                                class=\"form-control form-control-lg\"\n                                name=\"{{item.name ? item.name :  item.title}}\"\n                                placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n                                autocomplete=\"off\"\n                                [class.is-invalid]=\"isControlInvalid(item.form)\"\n                                [class.is-valid]=\"isControlValid(item.form)\"\n                                [readOnly]=\"show || item.readonly\"\n                                formControlName=\"{{item.form}}\"\n                        />\n\n                        <textarea *ngIf=\"item.type === 'textarea'\"\n                                  name=\"{{item.name ? item.name : item.title}}\"\n                                  formControlName=\"{{item.form}}\"\n                                  class=\"form-control form-control-lg\"\n                                  rows=\"3\"\n                                  [class.is-invalid]=\"isControlInvalid(item.form)\"\n                                  [class.is-valid]=\"isControlValid(item.form)\"\n                                  [readOnly]=\"show\"\n                        >\n                            {{item.placeHolder ? item.placeHolder : item.title}}\n                        </textarea>\n\n                        <div class=\"valid-feedback\" *ngIf=\"isControlValid(item.form)\">\n                            {{item.title}} was entered correct\n                        </div>\n                        <div class=\"invalid-feedback\" *ngIf=\"controlHasError('required', item.form)\">\n                            {{item.title}} is required\n                        </div>\n                        <div class=\"invalid-feedback\" *ngIf=\"controlHasError('minlength', item.form)\">\n                            {{item.title}} minimun length not achieved\n                        </div>\n                        <div class=\"invalid-feedback\" *ngIf=\"controlHasError('maxlength', item.form)\">\n                            {{item.title}} maximun length passed\n                        </div>\n                    </div>\n                </div>\n            </form>\n        </ng-container>\n    </div>\n    <div class=\"modal-footer\" *ngIf=\"!show\">\n        <button\n                type=\"button\"\n                class=\"btn btn-light btn-elevate mr-2\"\n                (click)=\"modal.dismiss()\"\n        >\n            Cancel\n        </button>\n        <ng-container *ngIf=\"formObj\">\n            <button\n                    type=\"submit\"\n                    class=\"btn btn-primary btn-elevate\"\n                    (click)=\"save()\"\n                    [disabled]=\"formGroup.invalid\"\n            >\n                Save\n            </button>\n        </ng-container>\n    </div>\n</div>\n","import {Component, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {of, Subscription} from 'rxjs';\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\nimport {catchError, delay, finalize, tap} from 'rxjs/operators';\n\n@Component({\n    selector: 'app-base-delete-pages',\n    templateUrl: './delete-crud/delete-crud-modal.component.html',\n    styleUrls: ['./delete-crud/delete-crud-modal.component.scss']\n})\n\nexport class BaseDeletePagesComponent implements OnInit, OnDestroy {\n    @Input() id: number;\n    @Input() title: string;\n    isLoading = false;\n    subscriptions: Subscription[] = [];\n\n    constructor(\n        @Inject('') protected tableService: any,\n        public modal: NgbActiveModal\n    ) { }\n\n    ngOnInit(): void {\n    }\n\n    deleteMethod() {\n        this.isLoading = true;\n        const sb = this.tableService.delete(this.id).pipe(\n            delay(1000), // Remove it from your code (just for showing loading)\n            tap(() => this.modal.close()),\n            catchError((err) => {\n                this.modal.dismiss(err);\n                return of(undefined);\n            }),\n            finalize(() => {\n                this.isLoading = false;\n            })\n        ).subscribe();\n        this.subscriptions.push(sb);\n    }\n\n    ngOnDestroy(): void {\n        this.subscriptions.forEach(sb => sb.unsubscribe());\n    }\n}\n","<ng-container *ngIf=\"isLoading\">\n    <div class=\"progress progress-modal\">\n        <div class=\"progress-bar progress-bar-striped progress-bar-animated bg-primary\" role=\"progressbar\"\n             style=\"width: 100%\" aria-valuenow=\"100\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n    </div>\n</ng-container>\n\n<div class=\"modal-header\">\n    <div class=\"modal-title h4\">{{title}} Delete</div>\n</div>\n<div class=\"modal-body\">\n    <ng-container *ngIf=\"isLoading\">\n        <span>{{title}} is deleting...</span>\n    </ng-container>\n\n    <ng-container *ngIf=\"!isLoading\">\n        <span>Are you sure to permanently delete this {{title}}?</span>\n    </ng-container>\n</div>\n\n<div class=\"modal-footer\">\n    <div>\n        <button type=\"button\" class=\"btn btn-light btn-elevate mr-1\" (click)=\"modal.dismiss()\">\n            Cancel\n        </button>&nbsp;\n        <button type=\"button\" class=\"btn btn-primary btn-elevate\" (click)=\"deleteMethod()\">\n            Delete\n        </button>\n    </div>\n</div>\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\nimport {IFilterView, IPaginatorView, ISortView, PaginatorState, SortState} from \"../crud-table\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {SweetAlertService} from \"../shared/services/common/sweet-alert.service\";\nimport {debounceTime} from \"rxjs/operators\";\n\n@Component({\n    selector: 'app-base-crud-pages',\n    template: ``,\n    styles: [],\n})\n\nexport class BaseCrudPagesComponent implements OnInit, OnDestroy, ISortView, IFilterView, IPaginatorView {\n    isLoading: boolean;\n    public subscriptions: Subscription[] = [];\n    filterGroup: UntypedFormGroup;\n    sorting: SortState;\n    paginator: PaginatorState;\n    arrFormGroups: any[] = [];\n    protected http: HttpClient;\n    arrFilterForm = [];\n\n    constructor(\n        @Inject('') protected tableService: any,\n        protected fb: UntypedFormBuilder\n    ) {}\n\n    paginate(paginator: PaginatorState) {\n        this.tableService.patchState({ paginator });\n    }\n\n    // OVERRIDE THIS FOR FILTER\n    filterForm() {\n      let objTemp = new Object();\n      this.arrFilterForm.forEach((el) => {\n        objTemp[el] = [''];\n      });\n      this.filterGroup = this.fb.group(objTemp);\n\n      this.arrFilterForm.forEach((el) => {\n        this.subscriptions.push(\n          this.filterGroup.controls[el].valueChanges\n              .pipe(debounceTime(900))\n              .subscribe(() =>\n            this.filter()\n          )\n        );\n      });\n    }\n\n    // OVERRIDE THIS FOR FILTER\n    filter() {\n      const filter = {};\n      this.arrFilterForm.forEach((el) => {\n        if (this.filterGroup.controls[el].value) {\n          filter[el] = this.filterGroup.controls[el].value\n        }\n      });\n      this.tableService.patchState({ filter });\n    }\n\n    sort(column: string): void {\n        const sorting = this.sorting;\n        const isActiveColumn = sorting.column === column;\n        if (!isActiveColumn) {\n            sorting.column = column;\n            sorting.direction = 'asc';\n        } else {\n            sorting.direction = sorting.direction === 'asc' ? 'desc' : 'asc';\n        }\n        this.tableService.patchState({ sorting });\n    }\n\n    ngOnInit(): void {\n        this.tableService.setDefaults();\n        this.filterForm();\n        this.tableService.fetch();\n        const sb = this.tableService.isLoading$.subscribe(res => this.isLoading = res);\n        this.tableService.errorMessage$.subscribe((res) => {\n            if (typeof res == 'object') {\n                if (res.hasOwnProperty('error')) {\n                    SweetAlertService.swalError(res);\n                }\n            }\n        })\n        this.subscriptions.push(sb);\n        this.sorting = this.tableService.sorting;\n        this.paginator = this.tableService.paginator;\n    }\n\n    ngOnDestroy() {\n        this.subscriptions.forEach((sb) => sb.unsubscribe());\n    }\n}\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\nimport {IFilterView, IPaginatorView, ISortView, PaginatorState, SortState} from \"../crud-table\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {SweetAlertService} from \"../shared/services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-base-bpmn-pages',\n  template: ``,\n  styles: [],\n})\n\nexport class BaseCrudBpmnPagesComponent implements OnInit, OnDestroy, ISortView, IFilterView, IPaginatorView {\n  isLoading: boolean;\n  public subscriptions: Subscription[] = [];\n  filterGroup: UntypedFormGroup;\n  sorting: SortState;\n  paginator: PaginatorState;\n  arrFormGroups: any[] = [];\n  protected http: HttpClient;\n  taskDef = '';\n  arrVar = [];\n  arrDto = [];\n  arrDecision = [];\n  arrTasks = [];\n  allSpec = {};\n  loadingStart = false;\n\n  //FOR BPMN\n  diagramUrl = ``;\n  isCollapsed = false;\n  title = 'bpmn-js-angular';\n  importError?: Error;\n\n  alertShow = false;\n  alertType = 'primary';\n  alertMessage = '';\n\n  syncFoo = \"foo\";\n  testEmitter$ = new BehaviorSubject<any>(this.syncFoo);\n\n  constructor(\n    @Inject('') protected tableService: any,\n    protected fb: UntypedFormBuilder\n  ) {\n  }\n\n  paginate(paginator: PaginatorState) {\n    this.tableService.patchStateBpmn({paginator}, this.taskDef);\n  }\n\n  create() {\n    this.edit(undefined, 'edit', 'init');\n  }\n\n  //OVERRIDE THIS\n  editComponentShow(id, type, typeTask, transFormArrForm, transFormArrVar, transFormArrDecision, typeDecision) {\n\n  }\n\n  edit(id: number, type: string = 'edit', typeTask = null) {\n    let transFormArrForm = [];\n    let transFormArrVar = [];\n    let transFormArrDecision = [];\n    let typeDecision = '';\n    for (const key in this.allSpec) {\n      if (key === typeTask) {\n        const obj = this.allSpec[key];\n        if (obj.hasOwnProperty('decision')) {\n          if (obj.decision.hasOwnProperty('exclusive')) {\n            transFormArrDecision = obj.decision.exclusive;\n            typeDecision = 'radio';\n          }\n          if (obj.decision.hasOwnProperty('inclusive')) {\n            transFormArrDecision = obj.decision.inclusive;\n            typeDecision = 'checkbox';\n          }\n        }\n        if (obj.hasOwnProperty('variable')) {\n          transFormArrVar = obj.variable.map((el) => {\n            return {\n              title: el.label,\n              form: el.name,\n              type: 'text',\n              mandatory: el.required\n            };\n          });\n        }\n        if (obj.hasOwnProperty('dto')) {\n          transFormArrForm = obj.dto.map((el) => {\n            const typeTemp = el.type == 'String' || el.type == 'string' ? 'text' : el.type ? el.type : 'text';\n            if (typeTemp == 'radio' || typeTemp == 'checkbox') {\n              let tempJson = el.metadata.jsonValues;\n              el.metadata = {\n                ...el.metadata,\n                jsonValues: typeof tempJson === 'string' ? JSON.parse(tempJson) : tempJson\n              };\n            }\n            return {\n              title: el.label,\n              form: el.name,\n              type: typeTemp ? typeTemp.toLowerCase() : typeTemp,\n              mandatory: el.required,\n              metaData: el.metadata\n            };\n          });\n        }\n      }\n    }\n    this.editComponentShow(id, type, typeTask, transFormArrForm, transFormArrVar, transFormArrDecision, typeDecision);\n  }\n\n  // OVERRIDE THIS FOR FILTER\n  filterForm() {\n\n  }\n\n  // OVERRIDE THIS FOR FILTER\n  filter() {\n\n  }\n\n  sort(column: string): void {\n    const sorting = this.sorting;\n    const isActiveColumn = sorting.column === column;\n    if (!isActiveColumn) {\n      sorting.column = column;\n      sorting.direction = 'asc';\n    } else {\n      sorting.direction = sorting.direction === 'asc' ? 'desc' : 'asc';\n    }\n    this.tableService.patchStateBpmn({sorting}, this.taskDef);\n  }\n\n  ngOnInit(): void {\n    this.tableService.setDefaults();\n    this.loadingStart = true;\n    this.filterForm();\n    this.tableService.fetchBpmn(this.taskDef);\n    const sb = this.tableService.isLoading$.subscribe((res) => {\n      this.isLoading = res\n    });\n    this.tableService.fetchBpmnInit(this.taskDef);\n    // sub specifications\n    this.tableService.listSpecInit$.subscribe((res) => {\n      this.allSpec = {\n        ...this.allSpec,\n        ...res\n      }\n    })\n    // sub tasks\n    this.tableService.listTasks$.subscribe((res) => {\n      this.arrTasks = res;\n      if (this.arrTasks.length) {\n        this.tableService.fetchAllSpecInit(this.arrTasks);\n      }\n    }, (error) => {\n      this.loadingStart = false;\n    })\n    // sub all specification\n    this.tableService.listSpecAll$.subscribe((res) => {\n      this.allSpec = {\n        ...this.allSpec,\n        ...res\n      }\n      if (Object.keys(res).length !== 0) {\n        this.testEmitter$.next(\"foo\");\n        this.loadingStart = false;\n      }\n    }, (error) => {\n      this.loadingStart = false;\n    })\n    this.tableService.errorMessage$.subscribe((res) => {\n      if (typeof res == 'object') {\n        if (res.hasOwnProperty('error')) {\n          SweetAlertService.swalError(res);\n        }\n      }\n    })\n    this.subscriptions.push(sb);\n    this.sorting = this.tableService.sorting;\n    this.paginator = this.tableService.paginator;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach((sb) => sb.unsubscribe());\n  }\n\n  getSpecData(typeTask) {\n    this.tableService.getSpec('dto', typeTask).subscribe((res: any) => {\n      const dataTemp = res.data.map((item) => {\n        return {\n          title: item.label,\n          form: item.name,\n          type: 'text',\n          mandatory: item.required\n        }\n      })\n      this.arrDto = [...dataTemp]\n    });\n    this.tableService.getSpec('variable', typeTask).subscribe((res: any) => {\n      const dataTemp = res.data.map((item) => {\n        return {\n          title: item.label,\n          form: item.name,\n          type: 'text',\n          mandatory: item.required\n        }\n      })\n      this.arrVar = [...dataTemp]\n    });\n  }\n\n  closeAlert() {\n    this.alertShow = false;\n    this.alertMessage = '';\n  }\n\n  clearVar() {\n    this.alertShow = false;\n    this.alertType = 'primary';\n    this.alertMessage = '';\n  }\n\n  handleImported(event) {\n    const {\n      type,\n      error,\n      warnings\n    } = event;\n\n    if (type === 'success') {\n      console.log(`Rendered diagram (%s warnings)`, warnings.length);\n      this.isCollapsed = true;\n    }\n\n    if (type === 'error') {\n      console.error('Failed to render diagram', error);\n    }\n\n    if (type === 'click') {\n      this.taskDef = warnings;\n      this.tableService.fetchBpmn(this.taskDef)\n    }\n\n    this.importError = error;\n  }\n}\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {UntypedFormBuilder, UntypedFormGroup} from '@angular/forms';\nimport {IFilterView, IPaginatorView, ISortView, PaginatorState, SortState} from \"../crud-table\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {SweetAlertService} from \"../shared/services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-base-bpmn-todo-pages',\n  template: ``,\n  styles: [],\n})\n\nexport class BaseCrudBpmnTodoPagesComponent implements OnInit, OnDestroy, ISortView, IFilterView, IPaginatorView {\n  // USE if not using alurkerja BE (Remove depedency OnInit AlurKerja BE)\n  isLoading: boolean;\n  public subscriptions: Subscription[] = [];\n  filterGroup: UntypedFormGroup;\n  sorting: SortState;\n  paginator: PaginatorState;\n  arrFormGroups: any[] = [];\n  protected http: HttpClient;\n  loadingStart = false;\n  taskDef = '';\n  itemsContent = [];\n\n  constructor(\n    @Inject('') protected tableService: any,\n    protected fb: UntypedFormBuilder\n  ) {}\n\n  paginate(paginator: PaginatorState) {\n    this.tableService.patchStateBpmn({ paginator }, this.taskDef);\n  }\n\n  create() {\n    this.edit(undefined, 'edit', 'init');\n  }\n\n  edit(id: number, type: string = 'edit', typeTask = null) {\n\n  }\n\n  // OVERRIDE THIS FOR FILTER\n  filterForm() {\n\n  }\n\n  // OVERRIDE THIS FOR FILTER\n  filter() {\n\n  }\n\n  sort(column: string): void {\n    const sorting = this.sorting;\n    const isActiveColumn = sorting.column === column;\n    if (!isActiveColumn) {\n      sorting.column = column;\n      sorting.direction = 'asc';\n    } else {\n      sorting.direction = sorting.direction === 'asc' ? 'desc' : 'asc';\n    }\n    this.tableService.patchStateBpmn({ sorting }, this.taskDef);\n  }\n\n  ngOnInit(): void {\n    this.tableService.setDefaults();\n    this.loadingStart = true;\n    this.filterForm();\n    this.tableService.fetchBpmnGeneral(this.taskDef);\n    const sb = this.tableService.isLoading$.subscribe((res) => {\n      this.isLoading = res\n    });\n    this.tableService.items$.subscribe((res) => {\n      if (res.length) {\n        this.itemsContent = [...res];\n        this.loadingStart = false;\n        this.toDoSomething();\n      }\n    }, (error) => {\n      this.loadingStart = false;\n    })\n    this.tableService.errorMessage$.subscribe((res) => {\n      if (typeof res == 'object') {\n        if (res.hasOwnProperty('error')) {\n          SweetAlertService.swalError(res);\n        }\n      }\n    })\n    this.subscriptions.push(sb);\n    this.sorting = this.tableService.sorting;\n    this.paginator = this.tableService.paginator;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach((sb) => sb.unsubscribe());\n  }\n\n  toDoSomething() {\n  //  Override this\n  }\n\n}\n","import {\n  AfterContentInit,\n  Component,\n  ElementRef,\n  EventEmitter, Input,\n  OnChanges,\n  OnDestroy,\n  Output, SimpleChanges,\n  ViewChild\n} from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport {from, Observable, Subscription} from \"rxjs\";\nimport {map, switchMap} from \"rxjs/operators\";\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-viewer.production.min.js';\n\n@Component({\n  selector: 'app-diagram',\n  template: `<div #ref class=\"diagram-container\"></div>`,\n  styles: [\n    `\n          .diagram-container {\n            height: 100%;\n            width: 100%;\n          }\n        `\n  ]\n})\nexport class DiagramComponent implements AfterContentInit, OnChanges, OnDestroy {\n  private bpmnJS: BpmnJS;\n  private overlays: any;\n  private elementRegis: any;\n\n  @ViewChild('ref', { static: true }) private el: ElementRef;\n  @Output() private importDone: EventEmitter<any> = new EventEmitter();\n\n  @Input() private url: string;\n  @Input() private taskUrl: string;\n  @Input() private myHeader: any;\n\n  constructor(private http: HttpClient) {\n\n    this.bpmnJS = new BpmnJS();\n\n    this.bpmnJS.on('import.done', ({ error }) => {\n      if (!error) {\n        this.bpmnJS.get('canvas').zoom('fit-viewport');\n        this.overlays = this.bpmnJS.get('overlays');\n        this.elementRegis = this.bpmnJS.get('elementRegistry');\n      }\n    });\n  }\n\n  ngAfterContentInit(): void {\n    this.bpmnJS.attachTo(this.el.nativeElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.url) {\n      this.loadUrl(changes.url.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.bpmnJS.destroy();\n  }\n\n  /**\n   * Load diagram from URL and emit completion event\n   */\n  loadUrl(url: string): Subscription {\n\n    return (\n      this.http.get(url, {\n        headers: this.myHeader,\n        responseType: 'text'\n      }).pipe(\n        switchMap((xml: string) => this.importDiagram(xml)),\n        map(result => result.warnings),\n      ).subscribe(\n        (warnings) => {\n          if (this.taskUrl) {\n            let shape = this.elementRegis.get(this.taskUrl);\n            let overlayHtml = $('<div id=\"' + this.taskUrl + '\" style=\"width: 100px; height: 80px; border-radius: 10px; ' +\n              'border-style: solid; border-color: green; cursor: pointer\">' +\n              '</div>')\n              .css({\n                width: shape.width,\n                heigth: shape.heigth\n              });\n\n            this.overlays.add(this.taskUrl, {\n              position: {\n                top: 0,\n                left: 0\n              },\n              html: overlayHtml\n            });\n          }\n\n          this.importDone.emit({\n            type: 'success',\n            warnings\n          });\n        },\n        (err) => {\n          this.importDone.emit({\n            type: 'error',\n            error: err\n          });\n        }\n      )\n    );\n  }\n\n  private importDiagram(xml: string): Observable<{warnings: Array<any>}> {\n    return from(this.bpmnJS.importXML(xml) as Promise<{warnings: Array<any>}>);\n  }\n}\n","export const environment = {\n  production: false,\n  appVersion: 'v726demo1',\n  USERDATA_KEY: 'authf649fc9a5f55',\n  isMockEnabled: true,\n  apiUrl: 'https://be.dev.alurkerja.com'\n};\n","import {Injectable} from '@angular/core';\nimport { HttpBackend, HttpClient } from '@angular/common/http';\nimport {Observable, throwError} from \"rxjs\";\nimport {catchError, map} from \"rxjs/operators\";\nimport {environment} from \"../../../crud-table/models/environment.model\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class Select2Service {\n  API_URL = `${environment.apiUrl}`;\n  myHeader = null;\n\n  constructor(private http: HttpClient, private handler: HttpBackend) {}\n\n  getCustomList(val, id, name, header = null) {\n    return this.http.get<any>(`${this.API_URL}${val}`, {\n      headers: header\n    }).pipe(\n      map(res => {\n        const data = [];\n        for (let i = 0; i < res.data.content.length; i++) {\n          data.push({\n            id: res.data.content[i][id],\n            name: res.data.content[i][name]\n          });\n        }\n        return data;\n      }),\n      catchError(err => {\n        return throwError(err); })\n    );\n  }\n\n}\n","import {Component, EventEmitter, Inject, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {UntypedFormControl, UntypedFormGroup} from '@angular/forms';\nimport {BehaviorSubject, ReplaySubject, Subject} from 'rxjs';\nimport {BaseSelect2Model} from '../../model/base-select2.model';\nimport {takeUntil} from 'rxjs/operators';\nimport {MatSelect} from '@angular/material/select';\nimport {Select2Service} from '../../services/common/select2.service';\n\n@Component({\n  selector: 'app-base-select2',\n  templateUrl: './base-select2.component.html',\n  styleUrls: ['./base-select2.component.scss']\n})\nexport class BaseSelect2Component implements OnInit {\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() labelName: string;\n  @Input() selectedVal: string;\n  @Input() mandatory: boolean;\n  @Input() disabledBol: boolean;\n  @Output() valueChange = new EventEmitter();\n  @Output() getDataChange = new EventEmitter();\n\n  loading$ = new BehaviorSubject<boolean>(false);\n  testEmitter$ = new BehaviorSubject<any>(false);\n\n\n  filterCtrl: UntypedFormControl = new UntypedFormControl();\n\n  filtered: ReplaySubject<BaseSelect2Model[]> = new ReplaySubject<\n    BaseSelect2Model[]\n    >(1);\n\n  private data: BaseSelect2Model[] = [];\n\n  @ViewChild(\"singleSelect\", { static: true }) singleSelect: MatSelect;\n\n  protected _onDestroy = new Subject<void>();\n\n  constructor(\n    protected commonService: Select2Service,\n    @Inject(\"\") public label: string\n  ) {}\n\n  get labelTitleName() {\n    if (this.labelName) {\n      return this.labelName;\n    } else {\n      return this.label;\n    }\n  }\n\n  ngOnInit() {\n    this.listData();\n    this.filterCtrl.valueChanges\n      .pipe(takeUntil(this._onDestroy))\n      .subscribe(() => {\n        this.filter();\n      });\n  }\n\n  ngOnDestroy() {\n    this._onDestroy.next();\n    this._onDestroy.complete();\n  }\n\n  private filter() {\n    if (!this.data) {\n      return;\n    }\n    // get the search keyword\n    let search = this.filterCtrl.value;\n    if (!search) {\n      this.filtered.next(this.data.slice());\n      return;\n    } else {\n      search = search.toLowerCase();\n    }\n\n    // filtering\n    this.filtered.next(\n      this.data.filter((partner) => {\n        if (partner.name) {\n          return partner.name.toLowerCase().indexOf(search) > -1;\n        }\n        return false\n      })\n    );\n  }\n\n  private async listData() {\n    this.loading$.next(true);\n\n    try {\n        this.data = await this.getData();\n    } catch (e) {\n        console.log(e, 'error');\n    }\n    this.getDataChange.emit(this.data);\n    await this.filtered.next(this.data);\n    await this.loading$.next(false);\n    await this.testEmitter$.next(true);\n  }\n\n  protected async getData(): Promise<any> {\n    return this.data;\n  }\n\n  compareObjects(o1: any, o2: any): boolean {\n    return o1 == o2;\n  }\n\n  emitSomething(event) {\n    this.valueChange.emit(event)\n  }\n\n  // helpers for View\n  isControlValid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.valid && (control.dirty || control.touched);\n  }\n\n  isControlInvalid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.invalid && (control.dirty || control.touched);\n  }\n\n  controlHasError(validation, controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.hasError(validation) && (control.dirty || control.touched);\n  }\n\n  isControlTouched(controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.dirty || control.touched;\n  }\n}\n","<div [formGroup]=\"formGroupParent\" *ngIf=\"testEmitter$ | async\">\n  <select\n    class=\"form-control\" [formControlName]=\"formName\" #singleSelect\n    (ngModelChange)=\"emitSomething($event)\" [disabled]=\"disabledBol\"\n    [class.is-invalid]=\"isControlInvalid(formName)\"\n    [class.is-valid]=\"isControlValid(formName)\"\n  >\n    <option value=\"\"></option>\n    <option *ngFor=\"let filterData of filtered | async\" [value]=\"filterData.id\">{{ filterData.name }}</option>\n  </select>\n</div>\n","import {Component, Input} from '@angular/core';\nimport {BaseSelect2Component} from './base-select2.component';\nimport {Select2Service} from '../../services/common/select2.service';\n\n@Component({\n  selector: 'app-common-select2',\n  templateUrl: './base-select2.component.html',\n  styleUrls: ['./base-select2.component.scss'],\n})\nexport class CommonSelect2Component extends BaseSelect2Component {\n  @Input() link: string;\n  @Input() selectId: string;\n  @Input() selectName: string;\n  @Input() option: string;\n\n  constructor(protected commonService: Select2Service) {\n    super(commonService, '');\n  }\n\n  protected async getData(): Promise<any> {\n    return this.commonService.getCustomList(this.link, this.selectId, this.selectName).toPromise();\n  }\n}\n","import {Component, Inject, Input, OnDestroy, OnInit} from \"@angular/core\";\nimport {UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators} from \"@angular/forms\";\nimport {NgbActiveModal} from \"@ng-bootstrap/ng-bootstrap\";\nimport {first} from \"rxjs/operators\";\nimport {BehaviorSubject, of, Subscription} from \"rxjs\";\nimport {LIST_TYPE_INPUT} from \"./model-crud/crud.model\";\nimport {DatePipe} from '@angular/common';\nimport {SweetAlertService} from \"../shared/services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-base-bpmn-edit-pages',\n  templateUrl: './edit-crud/edit-bpmn-modal.component.html',\n  styleUrls: ['./edit-crud/edit-crud-modal.component.scss'],\n})\n\nexport class BaseBpmnEditPagesComponent implements OnInit, OnDestroy {\n  @Input() id: number;\n  @Input() type: string;\n  @Input() show: boolean;\n  @Input() title: string;\n  @Input() typeDecision: string;\n  @Input() arrform: string;\n  @Input() arrvar: string;\n  @Input() arrDecision: any[];\n  @Input() arrParamsGroup: {\n    title: string,\n    form: string,\n    type?: string,\n    url?: string,\n    metaData?: any,\n    placeHolder?: string,\n    name?: string,\n    readonly?: boolean,\n    mandatory?: boolean\n  }[];\n  @Input() arrFormGroup: {\n    title: string,\n    form: string,\n    type?: string,\n    url?: string,\n    metaData?: any,\n    placeHolder?: string,\n    name?: string,\n    readonly?: boolean,\n    mandatory?: boolean\n  }[];\n  @Input() formCustom: any;\n\n  //for form\n  isLoading$;\n  formObj: any;\n  formGroup: UntypedFormGroup;\n  subscriptions: Subscription[] = [];\n  htmlInputType = LIST_TYPE_INPUT;\n  EMPTY_OBJ: {} = {};\n  listInput = [\n    'text',\n    'number',\n    'email',\n    'list'\n  ];\n\n  //diagram\n  diagramUrl = ``;\n  diagramUrlDetail = '';\n  isCollapsed = false;\n  importError?: Error;\n\n  //handle form variable and dto\n  arrNameOfForm: any[] = [];\n  arrNameOfVar: any[] = [];\n\n  // hide logs when create new bpmn\n  applyHide = false;\n\n  syncFoo = \"foo\";\n  testEmitter$ = new BehaviorSubject<any>(this.syncFoo);\n\n  arrCheckboxList = [];\n\n  //handle form with type date\n  arrTempDate = [];\n  datePipe = new DatePipe('en-US');\n\n  constructor(\n    @Inject('') protected service: any,\n    protected fb: UntypedFormBuilder,\n    public modal: NgbActiveModal\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.isLoading$ = this.service.isLoading$;\n    this.loadFormData();\n  }\n\n  loadFormData() {\n    if (!this.id) {\n      this.formObj = this.EMPTY_OBJ;\n      this.loadForm();\n    } else {\n      const sb = this.service.getItemBpmnById(this.id).pipe(\n        first()\n      ).subscribe((res: any) => {\n        // SweetAlertService.swalSuccess(res);\n        const logs = res.data.logs;\n        let model = res.data.object;\n        let typeTask = '';\n        let nameTask = '';\n        for (var key in model.tasks) {\n          if (model.tasks.hasOwnProperty(key)) {\n            typeTask = key\n            nameTask = model.tasks[key]\n          }\n        }\n        model = {\n          ...model,\n          typeTask,\n          nameTask\n        }\n        //init form object\n        this.formObj = {\n          logs,\n          model\n        }\n        this.loadForm();\n      }, (error) => {\n        SweetAlertService.swalError(error)\n        this.modal.dismiss('error');\n      });\n      this.subscriptions.push(sb);\n    }\n  }\n\n  // OVERRIDE THIS (ADD CUSTOM FORMCONTROLL AND VALIDATION)\n  loadForm() {\n    if (this.id) {\n      this.diagramUrl = `${this.diagramUrlDetail}/${this.id}/xml`;\n    } else {\n      this.applyHide = true;\n    }\n    this.initArrVarDto();\n    this.initFormGroup();\n  }\n\n  initArrVarDto() {\n    this.arrNameOfForm = this.arrFormGroup.map((el) => {\n      if (el.type == 'checkbox') {\n        this.arrCheckboxList.push(el.form)\n      }\n      if (el.type == 'date') {\n        this.arrTempDate.push(el.form)\n      }\n      return el.form;\n    });\n    this.arrNameOfVar = this.arrParamsGroup.map((el) => {\n      return el.form;\n    });\n    for (const key of this.arrNameOfForm) {\n      this.EMPTY_OBJ[key] = key;\n    }\n    for (const key of this.arrNameOfVar) {\n      this.EMPTY_OBJ[key] = key;\n    }\n  }\n\n  initFormGroup() {\n    const objFormGroup = new Object();\n    // generate obj FORM database\n    this.arrNameOfForm.forEach((el) => {\n      //check validate\n      const findItem = this.arrFormGroup.find((item, index) => {\n        if (item.form === el) {\n          return true;\n        } else {\n          return false;\n        }\n      });\n      let validate = [];\n      if (findItem) {\n        if (findItem.mandatory) {\n          validate.push(Validators.required);\n        }\n      }\n      if (this.arrCheckboxList.includes(el)) {\n      } else {\n        objFormGroup[el] = [this.id ? this.formObj.model[el] : '', Validators.compose(validate)];\n      }\n    });\n    // generate obj Variables Camunda\n    this.arrNameOfVar.forEach((el) => {\n      //check validate\n      const findItem = this.arrParamsGroup.find((item, index) => {\n        if (item.form === el) {\n          return true;\n        } else {\n          return false;\n        }\n      });\n      let validate = [];\n      if (findItem) {\n        if (findItem.mandatory) {\n          validate.push(Validators.required);\n        }\n      }\n      objFormGroup[el] = ['', Validators.compose(validate)];\n    });\n    // generate decision Camunda\n    if (this.arrDecision.length) {\n      objFormGroup['decision'] = ['', Validators.compose([Validators.required])];\n    }\n\n    // angular formGroup\n    this.formGroup = this.fb.group(objFormGroup);\n\n    //for checkbox\n    this.arrNameOfForm.forEach((el) => {\n      if (this.arrCheckboxList.includes(el)) {\n        this.formGroup.addControl(el, this.fb.array([]));\n      }\n    })\n  }\n\n  save() {\n    this.prepareFormData();\n    if (this.formObj.model.id) {\n      this.edit();\n    } else {\n      this.create();\n    }\n  }\n\n  edit() {\n    const sbUpdate = this.service\n      .updateBpmn(this.formObj.model.id, this.prepareFormEdit(), this.type, this.prepareParamsEdit())\n      .pipe()\n      .subscribe((res: any) => {\n        SweetAlertService.swalSuccess(res);\n        this.modal.dismiss('success');\n        return true\n      }, (error) => {\n        SweetAlertService.swalError(error);\n        this.modal.dismiss('error');\n      });\n    this.subscriptions.push(sbUpdate);\n  }\n\n  create() {\n    const sbCreate = this.service.apply(this.prepareFormData(), this.prepareParamsData())\n      .pipe()\n      .subscribe((res: any) => {\n        SweetAlertService.swalSuccess(res);\n        this.modal.dismiss('success');\n        return true\n      }, (error) => {\n        SweetAlertService.swalError(error);\n        this.modal.dismiss('error');\n      });\n    this.subscriptions.push(sbCreate);\n  }\n\n  editCustom() {\n    // Use this if wanna add something after post\n    const sbUpdate = this.service.updateBpmn(this.formObj.model.id, this.prepareFormEdit(), this.type, this.prepareParamsEdit())\n      .pipe()\n      .subscribe((res: any) => {\n        this.custom(res);\n      }, (error) => {\n        SweetAlertService.swalError(error);\n        this.modal.dismiss('error');\n      });\n    this.subscriptions.push(sbUpdate);\n  }\n\n  createCustom(obj, arr, customUrl = null) {\n    // Use this if wanna add something after post\n    const sbCreate = this.service.apply(obj, arr, customUrl)\n      .pipe()\n      .subscribe((res: any) => {\n        this.custom(res);\n      }, (error) => {\n        SweetAlertService.swalError(error);\n        this.modal.dismiss('error');\n      });\n    this.subscriptions.push(sbCreate);\n  }\n\n  custom(res) {\n  //  override this\n  }\n\n  prepareFormData() {\n    //    OVERRIDE THIS\n    const formData = this.formGroup.value;\n    let obj = new Object();\n    this.arrNameOfForm.forEach((el) => {\n      if (formData[el]) {\n        if (this.arrTempDate.includes(el)) {\n          obj[el] = this.datePipe.transform(formData[el], 'yyyy-MM-dd')\n        } else {\n          obj[el] = formData[el];\n        }\n      }\n    });\n    return obj;\n  }\n\n  prepareFormEdit() {\n    //    OVERRIDE THIS\n    this.prepareFormData();\n  }\n\n  prepareParamsData() {\n    //    OVERRIDE THIS\n    const formParams = this.formGroup.value;\n    const arrTemp = [];\n    this.arrNameOfVar.forEach((el) => {\n      if (formParams[el]) {\n        arrTemp.push({\n          name: el,\n          value: formParams[el]\n        });\n      }\n    });\n    // //decision hard code dlu\n    if (this.arrDecision.length) {\n      arrTemp.push({\n        name: 'decision',\n        value: formParams['decision']\n      });\n    } else {\n      if (this.typeDecision == 'radio') {\n        arrTemp.push({\n          name: 'decision',\n          value: 'ok'\n        });\n      }\n    }\n    //if have arrNameOfVar\n    if (this.arrNameOfForm.length) {\n      arrTemp.push({\n        name: 'withVariable',\n        value: '1'\n      });\n    }\n    return arrTemp;\n  }\n\n  prepareParamsEdit() {\n    //    OVERRIDE THIS\n    this.prepareParamsData();\n  }\n\n  ngOnDestroy(): void {\n    this.subscriptions.forEach(sb => sb.unsubscribe());\n  }\n\n  onCheckChange(event, name) {\n    const formArray: UntypedFormArray = this.formGroup.get(name) as UntypedFormArray;\n    if (event.target.checked) {\n      formArray.push(new UntypedFormControl(event.target.value));\n    } else {\n      let i: number = 0;\n      formArray.controls.forEach((ctrl: UntypedFormControl) => {\n        if (ctrl.value == event.target.value) {\n          formArray.removeAt(i);\n          return;\n        }\n        i++;\n      });\n    }\n  }\n\n  // For Bpmn Viewer Handler\n  handleImported(event) {\n    const {\n      type,\n      error,\n      warnings\n    } = event;\n\n    if (type === 'success') {\n      console.log(`Rendered diagram (%s warnings)`, warnings.length);\n    }\n\n    if (type === 'error') {\n      console.error('Failed to render diagram', error);\n    }\n    this.importError = error;\n  }\n\n  // get validator\n  getValidatorVal() {\n    // OVERRIDE THIS IF WANT TO CUSTOM\n    //check form\n    let bol = false;\n    this.arrFormGroup.forEach((el) => {\n      if (el.mandatory) {\n        if (!this.formGroup.controls[el.form].value) {\n          bol = true;\n        }\n      }\n    })\n    this.arrParamsGroup.forEach((el) => {\n      if (el.mandatory) {\n        if (!this.formGroup.controls[el.form].value) {\n          bol = true;\n        }\n      }\n    })\n    if (this.arrDecision.length) {\n      if (!this.formGroup.controls['decision'].value) {\n        bol = true;\n      }\n    }\n    return bol\n  }\n\n  // helpers for View\n  isControlValid(controlName: string): boolean {\n    const control = this.formGroup.controls[controlName];\n    return control.valid && (control.dirty || control.touched);\n  }\n\n  isControlInvalid(controlName: string): boolean {\n    const control = this.formGroup.controls[controlName];\n    return control.invalid && (control.dirty || control.touched);\n  }\n\n  controlHasError(validation, controlName): boolean {\n    const control = this.formGroup.controls[controlName];\n    return control.hasError(validation) && (control.dirty || control.touched);\n  }\n\n  isControlTouched(controlName): boolean {\n    const control = this.formGroup.controls[controlName];\n    return control.dirty || control.touched;\n  }\n}\n","<div class=\"modal-content\">\n  <div class=\"modal-header\">\n    <div class=\"modal-title h4\" id=\"example-modal-sizes-title-lg\">\n      <ng-container *ngIf=\"formObj?.model\">\n        {{title}}\n      </ng-container>\n    </div>\n  </div>\n  <div class=\"overlay overlay-block cursor-default modal-body\" style=\"min-height: 404px\">\n    <ng-container *ngIf=\"isLoading$ | async\">\n      <div class=\"overlay-layer bg-transparent\">\n        <div class=\"spinner spinner-lg spinner-success\"></div>\n      </div>\n    </ng-container>\n\n    <ng-container *ngIf=\"formObj?.model\">\n      <div class=\"row\" *ngIf=\"!applyHide\">\n        <div class=\"col-12\">\n          <button type=\"button\"\n                  class=\"btn btn-primary mb-3\"\n                  (click)=\"isCollapsed = !isCollapsed\"\n                  [attr.aria-expanded]=\"!isCollapsed\"\n                  aria-controls=\"collapseExample\">\n            Show\n          </button>\n          <div [ngbCollapse]=\"isCollapsed\">\n            <div class=\"diagram-parent mb-5\" style=\"height: 450px\">\n              <app-diagram [url]=\"diagramUrl\" (importDone)=\"handleImported($event)\"></app-diagram>\n\n              <div class=\"import-error\" *ngIf=\"importError\">\n                <strong>Failed to render diagram: </strong>\n                {{ importError.message }}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"row\" *ngIf=\"!applyHide\">\n        <div class=\"col-12\">\n          <h3>Logs</h3>\n          <table class=\"table table-head-custom table-vertical-center overflow-hidden\">\n            <thead>\n            <th>id</th>\n            <th>createdDate</th>\n            <th>updatedDate</th>\n            <th>entityId</th>\n            <th>actBy</th>\n            <th>remarks</th>\n            <th>statusBefore</th>\n            <th>statusAfter</th>\n            </thead>\n            <tbody>\n            <tr *ngFor=\"let item of formObj?.logs\">\n              <td>{{ item.id }}</td>\n              <td>{{ item.createdDate | date: 'dd-MMM-yyyy' }}</td>\n              <td>{{ item.updatedDate | date: 'dd-MMM-yyyy' }}</td>\n              <td>{{ item.entityId }}</td>\n              <td>{{ item.actBy }}</td>\n              <td>{{ item.remarks }}</td>\n              <td>{{ item.statusBefore }}</td>\n              <td>{{ item.statusAfter }}</td>\n            </tr>\n            <tr *ngIf=\"formObj?.logs.length === 0\">\n              <td colspan=\"8\">Not found Data</td>\n            </tr>\n            </tbody>\n          </table>\n        </div>\n      </div>\n      <ng-container>\n        <form action=\"#\" class=\"form form-label-right\" [formGroup]=\"formGroup\">\n          <div class=\"row\">\n            <div class=\"col-12\">\n              <h3>Variables</h3>\n              <ng-container>\n                <div class=\"form-group row\" *ngFor=\"let item of arrParamsGroup\">\n                  <label  class=\"col-2 col-form-label\">{{item.title}} <span *ngIf=\"item.mandatory\" class=\"text-danger\">*</span></label>\n                  <div class=\"col-lg-6\">\n                    <input *ngIf=\"listInput.includes(item.type)\"\n                           type=\"{{item.type}}\"\n                           class=\"form-control form-control-lg\"\n                           name=\"{{item.name ? item.name :  item.title}}\"\n                           placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n                           [readOnly]=\"show || item.readonly\"\n                           [class.is-invalid]=\"isControlInvalid(item.form)\"\n                           [class.is-valid]=\"isControlValid(item.form)\"\n                           formControlName=\"{{item.form}}\"\n                    />\n\n                    <div class=\"valid-feedback\" *ngIf=\"isControlValid(item.form)\">\n                      {{item.title}} was entered correct\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('required', item.form)\">\n                      {{item.title}} is required\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('minlength', item.form)\">\n                      {{item.title}} minimun length not achieved\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('maxlength', item.form)\">\n                      {{item.title}} maximun length passed\n                    </div>\n                  </div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n\n          <div class=\"row\">\n            <div class=\"col-12\">\n              <h3>Models</h3>\n              <ng-container>\n                <div class=\"form-group row\" *ngFor=\"let item of arrFormGroup\">\n                  <label  class=\"col-2 col-form-label\">{{item.title}} <span *ngIf=\"item.mandatory\" class=\"text-danger\">*</span></label>\n                  <div class=\"col-lg-6\">\n                    <input *ngIf=\"listInput.includes(item.type)\"\n                           type=\"{{item.type}}\"\n                           class=\"form-control form-control-lg\"\n                           name=\"{{item.name ? item.name :  item.title}}\"\n                           placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n                           autocomplete=\"off\"\n                           [readOnly]=\"show || item.readonly\"\n                           [class.is-invalid]=\"isControlInvalid(item.form)\"\n                           [class.is-valid]=\"isControlValid(item.form)\"\n                           formControlName=\"{{item.form}}\"\n                    />\n\n                    <textarea *ngIf=\"item.type === 'textarea'\"\n                              name=\"{{item.name ? item.name : item.title}}\"\n                              formControlName=\"{{item.form}}\"\n                              placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n                              class=\"form-control form-control-lg\"\n                              rows=\"3\"\n                              [class.is-invalid]=\"isControlInvalid(item.form)\"\n                              [class.is-valid]=\"isControlValid(item.form)\"\n                              [readOnly]=\"show || item.readonly\"\n                    >\n                                            {{item.placeHolder ? item.placeHolder : item.title}}\n                                        </textarea>\n\n                    <app-common-select2\n                      *ngIf=\"item.type == 'select'\"\n                      [formGroupParent]=\"formGroup\"\n                      link=\"{{item.metaData.url}}\"\n                      selectId=\"{{item.metaData.key}}\"\n                      selectName=\"{{item.metaData.value}}\"\n                      [labelName]=\"item.title\"\n                      formName=\"{{item.form}}\"\n                    >\n                    </app-common-select2>\n\n                    <div class=\"radio-list\" *ngIf=\"item.type == 'radio'\">\n                      <label class=\"radio\" *ngFor=\"let t of item.metaData.jsonValues\">\n                        <input type=\"radio\" value=\"{{t.id}}\" formControlName=\"{{item.form}}\"/>\n                        <span></span>\n                        {{t.name}}\n                      </label>\n                    </div>\n\n                    <div class=\"valid-feedback\" *ngIf=\"isControlValid(item.form)\">\n                      {{item.title}} was entered correct\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('required', item.form)\">\n                      {{item.title}} is required\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('minlength', item.form)\">\n                      {{item.title}} minimun length not achieved\n                    </div>\n                    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('maxlength', item.form)\">\n                      {{item.title}} maximun length passed\n                    </div>\n                  </div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n\n          <div class=\"row\" *ngIf=\"arrDecision.length\">\n            <div class=\"col-12\">\n              <h3>Decision</h3>\n              <ng-container>\n                <div class=\"form-group row\">\n                  <label  class=\"col-2 col-form-label\">Decision <span *ngIf=\"true\" class=\"text-danger\">*</span></label>\n                  <div class=\"col-lg-6\">\n                    <div class=\"radio-list\" *ngIf=\"typeDecision == 'radio'\">\n                      <label class=\"radio\" *ngFor=\"let t of arrDecision\">\n                        <input type=\"radio\" value=\"{{t}}\" formControlName=\"decision\"/>\n                        <span></span>\n                        {{t}}\n                      </label>\n                    </div>\n                  </div>\n                </div>\n              </ng-container>\n            </div>\n          </div>\n        </form>\n      </ng-container>\n    </ng-container>\n  </div>\n  <div class=\"modal-footer\" *ngIf=\"!show\">\n    <button\n      type=\"button\"\n      class=\"btn btn-light btn-elevate mr-2\"\n      (click)=\"modal.dismiss()\"\n    >\n      Cancel\n    </button>\n    <ng-container *ngIf=\"formObj?.model\">\n      <button\n        type=\"submit\"\n        class=\"btn btn-primary btn-elevate\"\n        (click)=\"save()\"\n        [disabled]=\"formGroup.invalid\"\n      >\n        {{id ? 'Approve' : 'Apply'}}\n      </button>\n    </ng-container>\n  </div>\n</div>\n","import {Injectable} from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {Observable, throwError} from \"rxjs\";\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FileUploadService {\n  constructor(private http: HttpClient) {}\n\n  upload(file, link, header = null):Observable<any> {\n    const formData = new FormData();\n    formData.append(\"file\", file);\n    return this.http.post<any>(`${link}`, formData, {\n      headers: header\n    })\n  }\n}\n","import {Component, Input} from \"@angular/core\";\nimport {UntypedFormGroup} from \"@angular/forms\";\n\n@Component({\n  selector: 'app-date-select',\n  templateUrl: './date-select.component.html',\n  styleUrls: ['./date-select.component.scss']\n})\n\nexport class DateSelectComponent {\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() labelName: string;\n  @Input() selectedVal: string;\n  @Input() mandatory: boolean;\n  @Input() disabledBol: boolean;\n  @Input() classCustom: string;\n  @Input() classIcon: string;\n\n  constructor() {\n\n  }\n\n  // helpers for View\n  isControlValid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.valid && (control.dirty || control.touched);\n  }\n\n  isControlInvalid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.invalid && (control.dirty || control.touched);\n  }\n\n  controlHasError(validation, controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.hasError(validation) && (control.dirty || control.touched);\n  }\n\n  isControlTouched(controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.dirty || control.touched;\n  }\n}\n","<div [formGroup]=\"formGroupParent\">\n  <div class=\"input-group date\">\n    <input type=\"text\"\n           class=\"form-control\"\n           placeholder=\"dd-mm-yyyy\"\n           [formControlName]=\"formName\"\n           ngbDatepicker #d=\"ngbDatepicker\"\n           [class.is-invalid]=\"isControlInvalid(formName)\"\n           [class.is-valid]=\"isControlValid(formName)\"\n           [disabled]=\"disabledBol\"\n           [ngClass]=\"classCustom\"\n    />\n    <div class=\"input-group-append\">\n      <button class=\"btn btn-primary\" (click)=\"d.toggle()\" type=\"button\">\n        <i [ngClass]=\"classIcon\"></i>\n      </button>\n    </div>\n    <div class=\"valid-feedback\" *ngIf=\"isControlValid(formName)\">\n      {{formName}} was entered correct\n    </div>\n    <div class=\"invalid-feedback\" *ngIf=\"controlHasError('required', formName)\">\n      {{formName}} is required\n    </div>\n  </div>\n</div>\n","import {Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\nimport {UntypedFormArray, UntypedFormControl, UntypedFormGroup} from \"@angular/forms\";\nimport {BehaviorSubject} from \"rxjs\";\n\n@Component({\n  selector: 'app-base-edit-bpmn',\n  templateUrl: './base-edit-bpmn.component.html',\n  styleUrls: ['./base-edit-bpmn.component.scss']\n})\nexport class BaseEditBpmnComponent implements OnInit {\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() listInput: any;\n  @Input() arrGroup: any;\n  @Input() show: boolean;\n  @Output() valueChange = new EventEmitter();\n  @Output() getDataChange = new EventEmitter();\n\n  testEmitter$ = new BehaviorSubject<any>(false);\n  constructor() {\n\n  }\n\n  ngOnInit() {\n\n  }\n\n  //Checkbox\n  onCheckChangeNew(event, name) {\n    const formArray: UntypedFormArray = this.formGroupParent.get(name) as UntypedFormArray;\n    if(event.target.checked){\n      formArray.push(new UntypedFormControl(event.target.value));\n    }\n    /* unselected */\n    else{\n      // find the unselected element\n      let i: number = 0;\n\n      formArray.controls.forEach((ctrl: UntypedFormControl) => {\n        if(ctrl.value == event.target.value) {\n          formArray.removeAt(i);\n          return;\n        }\n        i++;\n      });\n    }\n  }\n\n  // helpers for View\n  isControlValid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.valid && (control.dirty || control.touched);\n  }\n\n  isControlInvalid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.invalid && (control.dirty || control.touched);\n  }\n\n  controlHasError(validation, controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.hasError(validation) && (control.dirty || control.touched);\n  }\n\n  isControlTouched(controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.dirty || control.touched;\n  }\n}\n","<ng-container [formGroup]=\"formGroupParent\">\n  <div class=\"form-group row\" *ngFor=\"let item of arrGroup\">\n    <label  class=\"col-2 col-form-label\">{{item.title}} <span *ngIf=\"item.mandatory\" class=\"text-danger\">*</span></label>\n    <div class=\"col-lg-6\">\n      <input *ngIf=\"listInput.includes(item.type)\"\n             type=\"{{item.type}}\"\n             class=\"form-control form-control-lg\"\n             name=\"{{item.name ? item.name :  item.title}}\"\n             placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n             autocomplete=\"off\"\n             [readOnly]=\"show || item.readonly\"\n             [class.is-invalid]=\"isControlInvalid(item.form)\"\n             [class.is-valid]=\"isControlValid(item.form)\"\n             formControlName=\"{{item.form}}\"\n      />\n\n      <textarea *ngIf=\"item.type === 'textarea'\"\n                name=\"{{item.name ? item.name : item.title}}\"\n                formControlName=\"{{item.form}}\"\n                placeholder=\"{{item.placeHolder ? item.placeHolder : item.title}}\"\n                class=\"form-control form-control-lg\"\n                rows=\"3\"\n                [class.is-invalid]=\"isControlInvalid(item.form)\"\n                [class.is-valid]=\"isControlValid(item.form)\"\n                [readOnly]=\"show || item.readonly\"\n      >\n        {{item.placeHolder ? item.placeHolder : item.title}}\n      </textarea>\n\n      <app-common-select2\n        *ngIf=\"item.type == 'select'\"\n        [formGroupParent]=\"formGroupParent\"\n        link=\"{{item.metaData.url}}\"\n        selectId=\"{{item.metaData.key}}\"\n        selectName=\"{{item.metaData.value}}\"\n        [labelName]=\"item.title\"\n        formName=\"{{item.form}}\"\n      >\n      </app-common-select2>\n\n      <div class=\"radio-list\" *ngIf=\"item.type == 'radio'\">\n        <label class=\"radio\" *ngFor=\"let t of item.metaData.jsonValues\">\n          <input type=\"radio\" value=\"{{t.id}}\" formControlName=\"{{item.form}}\"/>\n          <span></span>\n          {{t.name}}\n        </label>\n      </div>\n\n      <div class=\"checkbox-list\" *ngIf=\"item.type == 'checkbox'\">\n        <label class=\"checkbox\" *ngFor=\"let t of item.metaData.jsonValues\">\n          <input type=\"checkbox\" value=\"{{t.id}}\" (change)=\"onCheckChangeNew($event, item.form)\"/>\n          <span></span>\n          {{t.name}}\n        </label>\n      </div>\n\n      <app-date-select\n        *ngIf=\"item.type == 'date'\"\n        [formGroupParent]=\"formGroupParent\"\n        [labelName]=\"item.title\"\n        formName=\"{{item.form}}\"\n      >\n      </app-date-select>\n\n      <div class=\"valid-feedback\" *ngIf=\"isControlValid(item.form)\">\n        {{item.title}} was entered correct\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"controlHasError('required', item.form)\">\n        {{item.title}} is required\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"controlHasError('minlength', item.form)\">\n        {{item.title}} minimun length not achieved\n      </div>\n      <div class=\"invalid-feedback\" *ngIf=\"controlHasError('maxlength', item.form)\">\n        {{item.title}} maximun length passed\n      </div>\n    </div>\n  </div>\n</ng-container>\n","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\nimport {UntypedFormGroup} from \"@angular/forms\";\n\n@Component({\n  selector: 'app-base-edit-bpmn-decision',\n  templateUrl: './base-edit-bpmn-decision.component.html',\n  styleUrls: ['./base-edit-bpmn-decision.component.scss']\n})\nexport class BaseEditBpmnDecisionComponent {\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() typeDecision: any;\n  @Input() arrDecision: any;\n  @Output() valueChange = new EventEmitter();\n  @Output() getDataChange = new EventEmitter();\n\n  constructor() {\n\n  }\n}\n","<ng-container [formGroup]=\"formGroupParent\">\n  <div class=\"form-group row\">\n    <label  class=\"col-2 col-form-label\">Decision <span *ngIf=\"true\" class=\"text-danger\">*</span></label>\n    <div class=\"col-lg-6\">\n      <div class=\"radio-list\" *ngIf=\"typeDecision == 'radio'\">\n        <label class=\"radio\" *ngFor=\"let t of arrDecision\">\n          <input type=\"radio\" value=\"{{t}}\" [formControlName]=\"formName\"/>\n          <span></span>\n          {{t}}\n        </label>\n      </div>\n    </div>\n  </div>\n</ng-container>\n","import {SignaturePad} from \"angular2-signaturepad\";\nimport {Component, ViewChild} from \"@angular/core\";\n\n@Component({\n  selector: 'app-draw-select',\n  templateUrl: './draw.component.html',\n  styleUrls: []\n})\n\nexport class DrawComponent {\n\n  @ViewChild(SignaturePad) signaturePad: SignaturePad;\n\n  signaturePadOptions: Object = { // passed through to szimek/signature_pad constructor\n    dotSize: function () {\n      return (0.5 + 1.5) / 2;\n    },\n    minWidth: 0.5,\n    maxWidth: 1.5,\n    canvasWidth: 500,\n    canvasHeight: 300,\n    velocityFilterWeight: 0.7,\n    backgroundColor: 'rgb(255,255,255)',\n    throttle: 0\n  };\n\n  constructor() {\n  }\n\n  ngAfterViewInit() {\n    this.signaturePad.set('minWidth', 5);\n    this.signaturePad.clear();\n  }\n\n  drawComplete() {\n    console.log(this.signaturePad.toDataURL());\n  }\n\n  drawStart() {\n    console.log('begin drawing');\n  }\n\n  clear() {\n    this.signaturePad.clear();\n  }\n}\n","<signature-pad [options]=\"signaturePadOptions\" (onBeginEvent)=\"drawStart()\" (onEndEvent)=\"drawComplete()\"></signature-pad>\n<br>\n<button type=\"button\"\n        class=\"btn btn-primary mb-3\"\n        (click)=\"clear()\"\n        aria-controls=\"collapseExample\">\n  Clear\n</button>\n","// Not Yet Tested\nimport {Component, Input, OnInit} from \"@angular/core\";\nimport {FileUploadService} from \"../../services/common/file-upload.service\";\nimport {SweetAlertService} from \"../../services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-single-file-upload',\n  templateUrl: './single-upload-file.component.html',\n  styleUrls: ['./single-upload-file.component.scss']\n})\nexport class SingleUploadFileComponent implements OnInit {\n  @Input() link: string;\n  @Input() header: string;\n\n  loading: boolean = false;\n  file: File = null;\n\n  constructor(private fileUploadService: FileUploadService) { }\n\n  ngOnInit(): void {\n  }\n\n  onChange(event) {\n    this.file = event.target.files[0];\n  }\n\n  onUpload() {\n    this.loading = !this.loading;\n    this.fileUploadService.upload(this.file, this.link, this.header).subscribe(\n      (result: any) => {\n          this.loading = false;\n      }, (error) => {\n        SweetAlertService.swalError(error)\n        this.loading = false;\n      }\n    );\n  }\n}\n","<div>\n  <div class=\"input-group\">\n    <input type=\"file\"\n           class=\"form-control\"\n           placeholder=\"Upload File\"\n           (change)=\"onChange($event)\"\n    />\n    <div class=\"input-group-append\">\n      <button class=\"btn btn-primary\" (click)=\"onUpload()\" type=\"button\">\n        upload\n      </button>\n    </div>\n  </div>\n  <div class=\"container\" *ngIf=\"loading\">\n    <h6>Loading ...</h6>\n  </div>\n</div>\n","// THIS FOR Single Approval\nimport {\n  AfterContentInit,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  ViewChild,\n  SimpleChanges,\n  EventEmitter\n} from '@angular/core';\n\nimport { HttpClient } from '@angular/common/http';\nimport {map, switchMap, tap} from 'rxjs/operators';\n\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport { from, Observable, Subscription } from 'rxjs';\nimport {data} from 'jquery';\n\n@Component({\n  selector: 'app-diagram-tes',\n  template: `\n    <div class=\"row\">\n      <div class=\"col-12\" style=\"height: 450px\">\n        <div #ref class=\"diagram-container\"></div>\n      </div>\n      <div class=\"col-12\">\n        <div style=\"position: absolute;bottom: 50px;right: 20px;display: grid;grid-gap: 3px;\">\n          <button id=\"btnzoomin\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomIn()\">\n            <i class=\"ki ki-plus\"></i>\n          </button>\n          <button id=\"btnfit\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomOut()\">\n            <i class=\"ki ki-minus\"></i>\n          </button>\n          <button id=\"btnzoomout\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomReset()\">\n            <i class=\"ki ki-refresh\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n    .diagram-container {\n      height: 100%;\n      width: 100%;\n    }\n    `,\n    `\n    .bac {\n        background-color: red;\n    }`\n  ]\n})\nexport class DiagramTesComponent implements AfterContentInit, OnChanges, OnDestroy {\n  private bpmnJS: BpmnJS;\n  private overlays: any;\n  private elementRegis: any;\n  cnvs = 0;\n\n  @ViewChild('ref', { static: true }) private el: ElementRef;\n  @Output() private importDone: EventEmitter<any> = new EventEmitter();\n\n  @Input() private url: string;\n  @Input() private urlSec: string;\n  @Input() private myHeader: any;\n  @Input() private showUrlSec: string;\n\n  constructor(private http: HttpClient) {\n\n    this.bpmnJS = new BpmnJS();\n\n    this.bpmnJS.on('import.done', ({ error }) => {\n      if (!error) {\n        this.bpmnJS.get('canvas').zoom('fit-viewport');\n        this.overlays = this.bpmnJS.get('overlays');\n        this.elementRegis = this.bpmnJS.get('elementRegistry');\n        this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n      }\n    });\n  }\n\n  ngAfterContentInit(): void {\n    this.bpmnJS.attachTo(this.el.nativeElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (this.showUrlSec) {\n      if (changes.urlSec) {\n        this.loadUrlSec(changes.urlSec.currentValue);\n      }\n    } else {\n      if (changes.url) {\n        this.loadUrl(changes.url.currentValue);\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.bpmnJS.destroy();\n  }\n\n  zoomIn() {\n    if (this.cnvs < 1.5) {\n      this.cnvs += 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomOut() {\n    if (this.cnvs > 0.3) {\n      this.cnvs -= 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomReset() {\n    this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  loadUrlSec(url: string): Subscription {\n    const urlXml = `${this.url}/xml`;\n    const urlStatic = `${url}`;\n\n    return (\n      this.http.get(urlXml, {\n        headers: this.myHeader,\n        responseType: 'text'\n      }).pipe(\n        switchMap((xml: string) => this.importDiagram(xml)),\n        map(result => result.warnings),\n      ).subscribe(\n        async (warnings) => {\n          const dataStatic = await this.http.get(urlStatic, {\n            headers: this.myHeader,\n          }).pipe(\n            map((res: any) => {\n              return {\n                tasks: res.data\n              };\n            })\n          ).toPromise();\n          for (const key in dataStatic.tasks) {\n            let shape = this.elementRegis.get(dataStatic.tasks[key].id);\n            let overlayHtml = $('<div id=\"' + key + '\" style=\"cursor: pointer\"><a class=\"badge badge-primary\">' + dataStatic.tasks[key].instances + '</a></div>')\n              .css({\n                width: shape.width,\n                heigth: shape.heigth\n              });\n\n            this.overlays.add(dataStatic.tasks[key].id, {\n              position: {\n                top: 0,\n                left: 0\n              },\n              html: overlayHtml\n            });\n\n            overlayHtml.click((e) => {\n              this.importDone.emit({\n                type: 'click',\n                warnings: key\n              });\n            });\n          }\n\n          this.importDone.emit({\n            type: 'success',\n            warnings\n          });\n        },\n        (err) => {\n          this.importDone.emit({\n            type: 'error',\n            error: err\n          });\n        }\n      )\n    );\n  }\n\n  /**\n   * Load diagram from URL and emit completion event\n   */\n  loadUrl(url: string): Subscription {\n    const urlXml = `${url}/xml`;\n    const urlStatic = `${url}/statistic`;\n    return (\n      this.http.get(urlXml, {\n        headers: this.myHeader,\n        responseType: 'text'\n      }).pipe(\n        switchMap((xml: string) => this.importDiagram(xml)),\n        map(result => result.warnings),\n      ).subscribe(\n        async (warnings) => {\n\n          const dataStatic = await this.http.get(urlStatic, {\n            headers: this.myHeader,\n          }).pipe(\n            map((res: any) => {\n              return {\n                tasks: res.data.tasks\n              };\n            })\n          ).toPromise();\n\n          for (const key in dataStatic.tasks) {\n            let shape = this.elementRegis.get(key);\n            let overlayHtml = $('<div id=\"' + key + '\" style=\"cursor: pointer\"><a class=\"badge badge-primary\">' + dataStatic.tasks[key] + '</a></div>')\n              .css({\n                width: shape.width,\n                heigth: shape.heigth\n              });\n\n            this.overlays.add(key, {\n              position: {\n                top: 0,\n                left: 0\n              },\n              html: overlayHtml\n            });\n\n            overlayHtml.click((e) => {\n              this.importDone.emit({\n                type: 'click',\n                warnings: key\n              });\n            });\n\n          }\n\n          this.importDone.emit({\n            type: 'success',\n            warnings\n          });\n        },\n        (err) => {\n          this.importDone.emit({\n            type: 'error',\n            error: err\n          });\n        }\n      )\n    );\n  }\n\n  private importDiagram(xml: string): Observable<{warnings: Array<any>}> {\n    return from(this.bpmnJS.importXML(xml) as Promise<{warnings: Array<any>}>);\n  }\n}\n","// NOT YET TESTED\nimport {Component, ElementRef, Input, ViewChild} from \"@angular/core\";\nimport {UntypedFormGroup} from \"@angular/forms\";\nimport {COMMA, ENTER} from \"@angular/cdk/keycodes\";\nimport {Observable} from \"rxjs\";\nimport {map, startWith} from \"rxjs/operators\";\n\n@Component({\n  selector: 'app-tag-file',\n  templateUrl: './tag-file.component.html',\n  styleUrls: ['./tag-file.component.scss']\n})\n\nexport class TagFileComponent {\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() formArray: string[];\n\n  selectable = true;\n  removable = true;\n  separatorKeysCodes: number[] = [ENTER, COMMA];\n  item: string[] = [];\n\n  @ViewChild('itemInput') fruitInput: ElementRef<HTMLInputElement>;\n\n  constructor() {\n\n  }\n}\n","<div [formGroup]=\"formGroupParent\">\n<!--TODO-->\n</div>\n","// THIS FOR Single Approval\nimport {\n  AfterContentInit,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  ViewChild,\n  SimpleChanges,\n  EventEmitter\n} from '@angular/core';\n\nimport { HttpClient } from '@angular/common/http';\nimport {map, switchMap, tap} from 'rxjs/operators';\n\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport { from, Observable, Subscription } from 'rxjs';\nimport {data} from 'jquery';\nimport {SweetAlertService} from \"../../services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-diagram-req-doc',\n  template: `\n    <div class=\"row\">\n      <div class=\"col-12\" style=\"height: 450px\">\n        <div #ref class=\"diagram-container\"></div>\n      </div>\n      <div class=\"col-12\">\n        <div style=\"position: absolute;bottom: 50px;right: 20px;display: grid;grid-gap: 3px;\">\n          <button id=\"btnzoomin\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomIn()\">\n            <i class=\"ki ki-plus\"></i>\n          </button>\n          <button id=\"btnfit\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomOut()\">\n            <i class=\"ki ki-minus\"></i>\n          </button>\n          <button id=\"btnzoomout\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomReset()\">\n            <i class=\"ki ki-refresh\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n    .diagram-container {\n      height: 100%;\n      width: 100%;\n    }\n    `,\n    `\n    .bac {\n        background-color: red;\n    }`\n  ]\n})\nexport class DiagramReqDocComponent implements AfterContentInit, OnChanges, OnDestroy {\n  private bpmnJS: BpmnJS;\n  private overlays: any;\n  private elementRegis: any;\n  cnvs = 0;\n\n  @ViewChild('ref', { static: true }) private el: ElementRef;\n  @Output() private importDone: EventEmitter<any> = new EventEmitter();\n\n  @Input() private url: string;\n  @Input() private urlDashboard: string;\n  @Input() private myHeader: any;\n\n  constructor(private http: HttpClient) {\n    // single approval custom\n    this.bpmnJS = new BpmnJS();\n\n    this.bpmnJS.on('import.done', ({ error }) => {\n      if (!error) {\n        this.bpmnJS.get('canvas').zoom('fit-viewport');\n        this.overlays = this.bpmnJS.get('overlays');\n        this.elementRegis = this.bpmnJS.get('elementRegistry');\n        this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n      }\n    });\n  }\n\n  ngAfterContentInit(): void {\n    this.bpmnJS.attachTo(this.el.nativeElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.url) {\n      this.loadUrl(changes.url.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.bpmnJS.destroy();\n  }\n\n  zoomIn() {\n    if (this.cnvs < 1.5) {\n      this.cnvs += 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomOut() {\n    if (this.cnvs > 0.3) {\n      this.cnvs -= 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomReset() {\n    this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  /**\n   * Load diagram from URL and emit completion event\n   */\n  loadUrl(url: string): Subscription {\n    const urlXml = `${url}`;\n    return (\n      this.http.get(urlXml, {\n        headers: this.myHeader,\n        responseType: 'text'\n      }).pipe(\n        switchMap((xml: string) => this.importDiagram(xml)),\n        map(result => result.warnings),\n      ).subscribe(\n        async (warnings) => {\n          this.http.get(this.urlDashboard, {\n            headers: this.myHeader\n          }).subscribe((res: any) => {\n            const dataDash = res.data;\n            let obj = new Object();\n            obj['Drafting'] = (dataDash.Drafting ?? 0);\n            obj['Review'] = (dataDash.reviewSequence ?? 0) + (dataDash.reviewParalel ?? 0);\n            obj['Approval'] = (dataDash.headApprovalSequence ?? 0) + (dataDash.headApprovalParalel ?? 0) + (dataDash.groupHeadApprovalSequence ?? 0) +  (dataDash.groupHeadApprovalParalel ?? 0) + (dataDash.chiefApprovalSequence ?? 0) + (dataDash.chiefApprovalParalel ?? 0);\n            obj['Acknowledge'] = (dataDash.acknowledgeSequence ?? 0) + (dataDash.acknowledgeParalel ?? 0);\n            obj['Revise'] = (dataDash.revise ?? 0);\n            obj['reviewReviseDocument'] = (dataDash.reviewReviseParalel ?? 0);\n            obj['approved'] = (dataDash['ENDED - approved'] ?? 0);\n            obj['rejected'] = (dataDash['ENDED - rejected'] ?? 0);\n\n            const arrId = ['Drafting', 'Review', 'Approval', 'Acknowledge', 'reviewReviseDocument', 'Revise', 'approved', 'rejected'];\n            for (const el of arrId) {\n              let shape = this.elementRegis.get(el);\n              let overlayHtml = $('<div id=\"' + el + '\" style=\"cursor: pointer\"><a class=\"badge badge-primary\">' + obj[el] + '</a></div>')\n                .css({\n                  width: shape.width,\n                  heigth: shape.heigth\n                });\n\n              this.overlays.add(el, {\n                position: {\n                  top: 0,\n                  left: 0\n                },\n                html: overlayHtml\n              });\n\n              overlayHtml.click((e) => {\n                this.importDone.emit({\n                  type: 'click',\n                  warnings: el\n                });\n              });\n            }\n            this.importDone.emit({\n              type: 'success',\n              warnings\n            });\n          }, (err) => {\n            this.importDone.emit({\n              type: 'error',\n              error: err\n            });\n          })\n        },\n        (err) => {\n          this.importDone.emit({\n            type: 'error',\n            error: err\n          });\n        }\n      )\n    );\n  }\n\n  private importDiagram(xml: string): Observable<{warnings: Array<any>}> {\n    return from(this.bpmnJS.importXML(xml) as Promise<{warnings: Array<any>}>);\n  }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {UntypedFormArray, UntypedFormGroup} from \"@angular/forms\";\n\n@Component({\n  selector: 'app-date-range-select',\n  templateUrl: './date-range-select.component.html',\n  styleUrls: ['./date-range-select.component.scss']\n})\n\nexport class DateRangeSelectComponent implements OnInit{\n  @Input() formGroupParent: UntypedFormGroup;\n  @Input() formName: string;\n  @Input() formValue: any;\n  @Input() index: any;\n  @Input() fieldVal: any;\n  @Input() labelName: string;\n  @Input() selectedVal: string;\n  @Input() mandatory: boolean;\n  @Input() disabledBol: boolean;\n  @Input() classCustom: string;\n  @Input() classIcon: string;\n  @Input() classCol: string;\n  @Input() show: boolean;\n  dateBefore: any;\n  dateAfter: any;\n  arr = ['', ''];\n\n  constructor() {\n\n  }\n\n  ngOnInit() {\n    if (this.formValue) {\n      const myArray = this.formValue.split(\" / \");\n      if (myArray) {\n        for (let i = 0; i < myArray.length; i++) {\n          if (i == 0) {\n            this.dateBefore = myArray[0];\n          } else if (i == 1) {\n            this.dateAfter = myArray[1];\n          }\n        }\n      }\n    }\n  }\n\n  beforeChange(evt) {\n    this.dateBefore = evt;\n    this.arr[0] = this.dateBefore\n    const arrayForm = this.formGroupParent.get(this.formName) as UntypedFormArray;\n    const formGroupArray = arrayForm.controls[this.index] as UntypedFormGroup;\n    formGroupArray.controls[this.fieldVal].setValue(this.formatter());\n\n  }\n\n  afterChange(evt) {\n    this.dateAfter = evt;\n    this.arr[1] = this.dateAfter\n    const arrayForm = this.formGroupParent.get(this.formName) as UntypedFormArray;\n    const formGroupArray = arrayForm.controls[this.index] as UntypedFormGroup;\n    formGroupArray.controls[this.fieldVal].setValue(this.formatter());\n  }\n\n  formatter() {\n    return this.arr[0] + ' / ' + this.arr[1]\n  }\n\n  // helpers for View\n  isControlValid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.valid && (control.dirty || control.touched);\n  }\n\n  isControlInvalid(controlName: string): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.invalid && (control.dirty || control.touched);\n  }\n\n  controlHasError(validation, controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.hasError(validation) && (control.dirty || control.touched);\n  }\n\n  isControlTouched(controlName): boolean {\n    const control = this.formGroupParent.controls[controlName];\n    return control.dirty || control.touched;\n  }\n}\n","<ng-container *ngIf=\"show\">\n  <div class=\"row\">\n    <div [ngClass]=\"classCol\">\n      <input type=\"text\"\n             class=\"form-control form-control-lg\"\n             placeholder=\"yyyy-mm-dd\"\n             [ngClass]=\"show ? 'disabledCustom' : ''\"\n             value=\"{{dateBefore}}\"\n      />\n    </div>\n    <div class=\"col-sm-12 col-lg-5\">\n      <input type=\"text\"\n             class=\"form-control form-control-lg\"\n             placeholder=\"yyyy-mm-dd\"\n             [ngClass]=\"show ? 'disabledCustom' : ''\"\n             value=\"{{dateAfter}}\"\n      />\n    </div>\n  </div>\n</ng-container>\n<ng-container *ngIf=\"!show\">\n  <div class=\"row\" [formGroup]=\"formGroupParent\">\n    <div [ngClass]=\"classCol\">\n      <div class=\"input-group date\">\n        <input type=\"text\"\n               class=\"form-control form-control-lg\"\n               placeholder=\"dd-mm-yyyy\"\n               ngbDatepicker #d=\"ngbDatepicker\"\n               [disabled]=\"disabledBol\"\n               [ngClass]=\"classCustom\"\n               [ngModel]=\"dateBefore\" [ngModelOptions]=\"{standalone: true}\"\n               (ngModelChange)=\"beforeChange($event)\"\n        />\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-primary\" (click)=\"d.toggle()\" type=\"button\">\n            <i [ngClass]=\"classIcon\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n    <div [ngClass]=\"classCol\">\n      <div class=\"input-group date\">\n        <input type=\"text\"\n               class=\"form-control form-control-lg\"\n               placeholder=\"dd-mm-yyyy\"\n               ngbDatepicker #d2=\"ngbDatepicker\"\n               [disabled]=\"disabledBol\"\n               [ngClass]=\"classCustom\"\n               [ngModel]=\"dateAfter\" [ngModelOptions]=\"{standalone: true}\"\n               (ngModelChange)=\"afterChange($event)\"\n        />\n        <div class=\"input-group-append\">\n          <button class=\"btn btn-primary\" (click)=\"d2.toggle()\" type=\"button\">\n            <i [ngClass]=\"classIcon\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</ng-container>\n","// THIS FOR Single Approval\nimport {\n  AfterContentInit,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  ViewChild,\n  SimpleChanges,\n  EventEmitter\n} from '@angular/core';\n\nimport { HttpClient } from '@angular/common/http';\nimport {map, switchMap, tap} from 'rxjs/operators';\n\nimport * as BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.js';\nimport { from, Observable, Subscription } from 'rxjs';\nimport {data} from 'jquery';\nimport {SweetAlertService} from \"../../services/common/sweet-alert.service\";\n\n@Component({\n  selector: 'app-diagram-delegate-doc',\n  template: `\n    <div class=\"row\">\n      <div class=\"col-12\" style=\"height: 450px\">\n        <div #ref class=\"diagram-container\"></div>\n      </div>\n      <div class=\"col-12\">\n        <div style=\"position: absolute;bottom: 50px;right: 20px;display: grid;grid-gap: 3px;\">\n          <button id=\"btnzoomin\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomIn()\">\n            <i class=\"ki ki-plus\"></i>\n          </button>\n          <button id=\"btnfit\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomOut()\">\n            <i class=\"ki ki-minus\"></i>\n          </button>\n          <button id=\"btnzoomout\" class=\"btn btn-primary btn-icon btn-sm\" (click)=\"zoomReset()\">\n            <i class=\"ki ki-refresh\"></i>\n          </button>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n    .diagram-container {\n      height: 100%;\n      width: 100%;\n    }\n    `,\n    `\n    .bac {\n        background-color: red;\n    }`\n  ]\n})\nexport class DiagramDelegateAppComponent implements AfterContentInit, OnChanges, OnDestroy {\n  private bpmnJS: BpmnJS;\n  private overlays: any;\n  private elementRegis: any;\n  cnvs = 0;\n\n  @ViewChild('ref', { static: true }) private el: ElementRef;\n  @Output() private importDone: EventEmitter<any> = new EventEmitter();\n\n  @Input() private url: string;\n  @Input() private urlDashboard: string;\n  @Input() private myHeader: any;\n\n  constructor(private http: HttpClient) {\n    // single approval custom\n    this.bpmnJS = new BpmnJS();\n\n    this.bpmnJS.on('import.done', ({ error }) => {\n      if (!error) {\n        this.bpmnJS.get('canvas').zoom('fit-viewport');\n        this.overlays = this.bpmnJS.get('overlays');\n        this.elementRegis = this.bpmnJS.get('elementRegistry');\n        this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n      }\n    });\n  }\n\n  ngAfterContentInit(): void {\n    this.bpmnJS.attachTo(this.el.nativeElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.url) {\n      this.loadUrl(changes.url.currentValue);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.bpmnJS.destroy();\n  }\n\n  zoomIn() {\n    if (this.cnvs < 1.5) {\n      this.cnvs += 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomOut() {\n    if (this.cnvs > 0.3) {\n      this.cnvs -= 0.1;\n    }\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  zoomReset() {\n    this.cnvs = this.bpmnJS.get('canvas').zoom('fit-viewport');\n    this.bpmnJS.get('canvas').zoom(this.cnvs);\n  }\n\n  /**\n   * Load diagram from URL and emit completion event\n   */\n  loadUrl(url: string): Subscription {\n    const urlXml = `${url}`;\n    return (\n      this.http.get(urlXml, {\n        headers: this.myHeader,\n        responseType: 'text'\n      }).pipe(\n        switchMap((xml: string) => this.importDiagram(xml)),\n        map(result => result.warnings),\n      ).subscribe(\n        async (warnings) => {\n          this.http.get(this.urlDashboard, {\n            headers: this.myHeader\n          }).subscribe((res: any) => {\n            const objData = res.data.object\n            const dataDash = objData.tasks;\n            let obj = new Object();\n            obj['Drafting'] = (dataDash.Drafting ? 1 : 0);\n            obj['Review'] = (dataDash.reviewSequence ? 1 : 0) + (dataDash.reviewParalel ? 1 : 0);\n            obj['Approval'] = (dataDash.headApprovalSequence ? 1 : 0) + (dataDash.headApprovalParalel ? 1 : 0) + (dataDash.groupHeadApprovalSequence ? 1 : 0) +  (dataDash.groupHeadApprovalParalel ? 1 : 0) + (dataDash.chiefApprovalSequence ? 1 : 0) + (dataDash.chiefApprovalParalel ? 1 : 0);\n            obj['Acknowledge'] = (dataDash.acknowledgeSequence ? 1 : 0) + (dataDash.acknowledgeParalel ? 1 : 0);\n            obj['Revise'] = (dataDash.revise ? 1 : 0);\n            obj['reviewReviseDocument'] = (dataDash.reviewReviseParalel ? 1 : 0);\n            obj['approved'] = (dataDash['ENDED - approved'] ? 1 : 0);\n            obj['rejected'] = (dataDash['ENDED - rejected'] ? 1 : 0);\n\n            const arrId = ['Drafting', 'Review', 'Approval', 'Acknowledge', 'reviewReviseDocument', 'Revise', 'approved', 'rejected'];\n            for (const el of arrId) {\n              if (obj[el]) {\n                let shape = this.elementRegis.get(el);\n                let overlayHtml = $('<div id=\"' + el + '\" style=\"background-color: #1dc5bd; opacity: 0.6; border-radius: 8px;\">&nbsp;</div>')\n                  .css({\n                    width: shape.width,\n                    height: shape.height\n                  });\n\n                this.overlays.add(el, {\n                  position: {\n                    top: 0,\n                    left: 0\n                  },\n                  html: overlayHtml\n                });\n\n                overlayHtml.click((e) => {\n                  this.importDone.emit({\n                    type: 'click',\n                    warnings: el\n                  });\n                });\n              }\n            }\n            this.importDone.emit({\n              type: 'success',\n              warnings\n            });\n          }, (err) => {\n            this.importDone.emit({\n              type: 'error',\n              error: err\n            });\n          })\n        },\n        (err) => {\n          this.importDone.emit({\n            type: 'error',\n            error: err\n          });\n        }\n      )\n    );\n  }\n\n  private importDiagram(xml: string): Observable<{warnings: Array<any>}> {\n    return from(this.bpmnJS.importXML(xml) as Promise<{warnings: Array<any>}>);\n  }\n}\n","import {NgModule} from \"@angular/core\";\nimport {BaseCrudPagesComponent} from \"./base-crud-pages.component\";\nimport {BaseDeletePagesComponent} from \"./base-delete-pages.component\";\nimport {BaseEditPagesComponent} from \"./base-edit-pages.component\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {CommonModule} from \"@angular/common\";\nimport {InlineSVGModule} from \"ng-inline-svg\";\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\nimport {NgbModule} from \"@ng-bootstrap/ng-bootstrap\";\nimport {BaseCrudBpmnPagesComponent} from \"./base-crud-bpmn-pages.component\";\nimport {BaseBpmnEditPagesComponent} from \"./base-bpmn-edit-pages.component\";\nimport {CommonSelect2Component} from \"../shared/components/base-select-2/common-select2.component\";\nimport {BaseSelect2Component} from \"../shared/components/base-select-2/base-select2.component\";\nimport {MatInputModule} from \"@angular/material/input\";\nimport {NgxMatSelectSearchModule} from \"ngx-mat-select-search\";\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatCardModule} from \"@angular/material/card\";\nimport {MatRadioModule} from \"@angular/material/radio\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {DateSelectComponent} from \"../shared/components/date/date-select.component\";\nimport {BaseEditBpmnComponent} from \"../shared/components/base-edit-bpmn/base-edit-bpmn.component\";\nimport {BaseEditBpmnDecisionComponent} from \"../shared/components/base-edit-bpmn-decision/base-edit-bpmn-decision.component\";\nimport {DrawComponent} from \"../shared/components/draw/draw.component\";\nimport {SignaturePadModule} from \"angular2-signaturepad\";\nimport {SingleUploadFileComponent} from \"../shared/components/single-upload-file/single-upload-file.component\";\nimport {DiagramComponent} from \"../shared/components/diagram/diagram.component\";\nimport {DiagramTesComponent} from \"../shared/components/diagram/diagram-tes.component\";\nimport {TagFileComponent} from \"../shared/components/tag/tag-file.component\";\nimport {BaseCrudBpmnTodoPagesComponent} from \"./base-crud-bpmn-todo-pages.component\";\nimport {DiagramReqDocComponent} from \"../shared/components/diagram/diagram-req-doc.component\";\nimport {DateRangeSelectComponent} from \"../shared/components/date-range/date-range-select.component\";\nimport {DiagramDelegateAppComponent} from \"../shared/components/diagram/diagram-delegate-app.component\";\n\n@NgModule({ declarations: [\n        BaseCrudPagesComponent,\n        BaseDeletePagesComponent,\n        BaseEditPagesComponent,\n        DiagramComponent,\n        BaseCrudBpmnPagesComponent,\n        BaseBpmnEditPagesComponent,\n        DiagramTesComponent,\n        BaseSelect2Component,\n        CommonSelect2Component,\n        DateSelectComponent,\n        BaseEditBpmnComponent,\n        BaseEditBpmnDecisionComponent,\n        DrawComponent,\n        SingleUploadFileComponent,\n        TagFileComponent,\n        BaseCrudBpmnTodoPagesComponent,\n        DiagramReqDocComponent,\n        DateRangeSelectComponent,\n        DiagramDelegateAppComponent\n    ],\n    exports: [\n        BaseCrudPagesComponent,\n        BaseDeletePagesComponent,\n        BaseEditPagesComponent,\n        BaseCrudBpmnPagesComponent,\n        BaseBpmnEditPagesComponent,\n        BaseSelect2Component,\n        CommonSelect2Component,\n        DateSelectComponent,\n        BaseEditBpmnComponent,\n        BaseEditBpmnDecisionComponent,\n        DrawComponent,\n        SingleUploadFileComponent,\n        DiagramComponent,\n        DiagramTesComponent,\n        TagFileComponent,\n        BaseCrudBpmnTodoPagesComponent,\n        DiagramReqDocComponent,\n        DateRangeSelectComponent,\n        DiagramDelegateAppComponent\n    ], imports: [ReactiveFormsModule,\n        CommonModule,\n        InlineSVGModule,\n        NgbModule,\n        FormsModule,\n        MatInputModule,\n        MatCheckboxModule,\n        MatSelectModule,\n        MatCardModule,\n        MatRadioModule,\n        MatFormFieldModule,\n        NgxMatSelectSearchModule,\n        SignaturePadModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\n\nexport class CrudModule { }\n","export type SortDirection = 'asc' | 'desc' | '';\r\n\r\nexport interface ISortState {\r\n  column: string;\r\n  direction: SortDirection;\r\n}\r\n\r\nexport class SortState implements ISortState {\r\n  column = 'createdDate'; // Id by default\r\n  direction: SortDirection = 'desc'; // asc by default;\r\n}\r\n\r\nexport interface ISortView {\r\n  sorting: SortState;\r\n  ngOnInit(): void;\r\n  sort(column: string): void;\r\n}\r\n","export const PageSizes = [3, 5, 10, 15, 50, 100];\r\n\r\nexport interface IPaginatorState {\r\n  page: number;\r\n  pageSize: number;\r\n  total: number;\r\n  recalculatePaginator(total: number): IPaginatorState;\r\n}\r\n\r\nexport class PaginatorState implements IPaginatorState {\r\n  page = 1;\r\n  pageSize = PageSizes[2];\r\n  total = 0;\r\n  pageSizes: number[] = [];\r\n\r\n  recalculatePaginator(total: number): PaginatorState {\r\n    this.total = total;\r\n    return this;\r\n  }\r\n}\r\n\r\nexport interface IPaginatorView {\r\n  paginator: PaginatorState;\r\n  ngOnInit(): void;\r\n  paginate(paginator: PaginatorState): void;\r\n}\r\n","export interface IGroupingState {\r\n  selectedRowIds: Set<number>;\r\n  itemIds: number[];\r\n  checkAreAllRowsSelected(): boolean;\r\n  selectRow(id: number): IGroupingState;\r\n  // tslint:disable-next-line:variable-name\r\n  clearRows(_itemIds: number[]): IGroupingState;\r\n  isRowSelected(id: number): boolean;\r\n  selectAllRows(): IGroupingState;\r\n  getSelectedRows(): number[];\r\n  getSelectedRowsCount(): number;\r\n}\r\n\r\nexport class GroupingState implements IGroupingState {\r\n  selectedRowIds: Set<number> = new Set<number>();\r\n  itemIds: number[] = [];\r\n\r\n\r\n  checkAreAllRowsSelected(): boolean {\r\n    if (this.itemIds.length === 0) {\r\n      return false;\r\n    }\r\n\r\n    return this.selectedRowIds.size === this.itemIds.length;\r\n  }\r\n\r\n  selectRow(id: number): GroupingState {\r\n    if (this.selectedRowIds.has(id)) {\r\n      this.selectedRowIds.delete(id);\r\n    } else {\r\n      this.selectedRowIds.add(id);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  // tslint:disable-next-line:variable-name\r\n  clearRows(_itemIds: number[]): GroupingState {\r\n    this.itemIds = _itemIds;\r\n    this.selectedRowIds = new Set<number>();\r\n    return this;\r\n  }\r\n\r\n  isRowSelected(id: number): boolean {\r\n    return this.selectedRowIds.has(id);\r\n  }\r\n\r\n  selectAllRows(): GroupingState {\r\n    const areAllSelected = this.itemIds.length === this.selectedRowIds.size;\r\n    if (areAllSelected) {\r\n      this.selectedRowIds = new Set<number>();\r\n    } else {\r\n      this.selectedRowIds = new Set<number>();\r\n      this.itemIds.forEach(id => this.selectedRowIds.add(id));\r\n    }\r\n    return this;\r\n  }\r\n\r\n  getSelectedRows(): number[] {\r\n    return Array.from(this.selectedRowIds);\r\n  }\r\n\r\n  getSelectedRowsCount(): number {\r\n    return this.selectedRowIds.size;\r\n  }\r\n}\r\n\r\nexport interface IGroupingView  {\r\n  grouping: GroupingState;\r\n  ngOnInit(): void;\r\n}\r\n","// tslint:disable:variable-name\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport {BehaviorSubject, forkJoin, Observable, of, Subscription} from 'rxjs';\r\nimport {catchError, finalize, map, tap} from 'rxjs/operators';\r\nimport { PaginatorState } from '../models/paginator.model';\r\nimport { ITableState, TableResponseModel } from '../models/table.model';\r\nimport { BaseModel } from '../models/base.model';\r\nimport { SortState } from '../models/sort.model';\r\nimport { GroupingState } from '../models/grouping.model';\r\nimport {environment} from \"../models/environment.model\";\r\nimport {SweetAlertService} from \"../../shared/services/common/sweet-alert.service\";\r\n\r\nconst DEFAULT_STATE: ITableState = {\r\n  filter: {},\r\n  paginator: new PaginatorState(),\r\n  sorting: new SortState(),\r\n  searchTerm: '',\r\n  grouping: new GroupingState(),\r\n  entityId: undefined\r\n};\r\n\r\nexport abstract class TableService<T> {\r\n  // Private fields\r\n  private _items$ = new BehaviorSubject<T[]>([]);\r\n  private _isLoading$ = new BehaviorSubject<boolean>(false);\r\n  private _listTasks$ = new BehaviorSubject<any>([]);\r\n  private _listSpecInit$ = new BehaviorSubject<any>({});\r\n  private _listSpecAll$ = new BehaviorSubject<any>({});\r\n  private _isFirstLoading$ = new BehaviorSubject<boolean>(true);\r\n  private _tableState$ = new BehaviorSubject<ITableState>(DEFAULT_STATE);\r\n  private _errorMessage = new BehaviorSubject<string>('');\r\n  private _subscriptions: Subscription[] = [];\r\n\r\n  // Getters\r\n  get items$() {\r\n    return this._items$.asObservable();\r\n  }\r\n  get isLoading$() {\r\n    return this._isLoading$.asObservable();\r\n  }\r\n  get listTasks$() {\r\n    return this._listTasks$.asObservable();\r\n  }\r\n  get listSpecInit$() {\r\n    return this._listSpecInit$.asObservable();\r\n  }\r\n  get listSpecAll$() {\r\n    return this._listSpecAll$.asObservable();\r\n  }\r\n  get isFirstLoading$() {\r\n    return this._isFirstLoading$.asObservable();\r\n  }\r\n  get errorMessage$() {\r\n    return this._errorMessage.asObservable();\r\n  }\r\n  get subscriptions() {\r\n    return this._subscriptions;\r\n  }\r\n  // State getters\r\n  get paginator() {\r\n    return this._tableState$.value.paginator;\r\n  }\r\n  get filter() {\r\n    return this._tableState$.value.filter;\r\n  }\r\n  get sorting() {\r\n    return this._tableState$.value.sorting;\r\n  }\r\n  get searchTerm() {\r\n    return this._tableState$.value.searchTerm;\r\n  }\r\n  get grouping() {\r\n    return this._tableState$.value.grouping;\r\n  }\r\n\r\n  protected http: HttpClient;\r\n  // API URL has to be overrided\r\n  API_URL = `${environment.apiUrl}/endpoint`;\r\n  myHeader = null;\r\n  constructor(http: HttpClient) {\r\n    this.http = http;\r\n  }\r\n\r\n  // CRUD Service OVER HERE\r\n  create(item: any): Observable<BaseModel> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    return this.http.post<BaseModel>(this.API_URL, item, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  getAll(tableState: ITableState, sortDefault = null): Observable<any> {\r\n    const url = this.API_URL;\r\n    this._errorMessage.next('');\r\n    const page = tableState.paginator.page - 1;\r\n    let params = new HttpParams()\r\n        .set('page', page.toString())\r\n        .set('limit', tableState.paginator.pageSize.toString())\r\n    if (sortDefault) {\r\n      params = params.set('sort', sortDefault);\r\n    } else {\r\n      params = params.set('sort', tableState.sorting.column);\r\n    }\r\n    // params = params.set('search', '1');\r\n    for (const key in tableState.filter) {\r\n\r\n      if (tableState.filter.hasOwnProperty(key)) {\r\n        params = params.set(key, tableState.filter[key]);\r\n      }\r\n    }\r\n    if (tableState.sorting.direction === 'asc') {\r\n      params = params.set('asc', '1');\r\n    }else {\r\n      params = params.set('asc', '0');\r\n    }\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n      params\r\n    }).pipe(\r\n        catchError(err => {\r\n          SweetAlertService.swalError(err)\r\n          this._errorMessage.next(err);\r\n          return of({ items: [], total: 0 });\r\n        })\r\n    );\r\n  }\r\n\r\n  getItemById(id: number): Observable<BaseModel> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const url = `${this.API_URL}/${id}`;\r\n    return this.http.get<BaseModel>(url, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  update(id, item: any): Observable<any> {\r\n    const url = `${this.API_URL}/${id}`;\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    return this.http.post(url, item, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  delete(id: any): Observable<any> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const url = `${this.API_URL}/${id}`;\r\n    return this.http.delete(url, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  public fetch(sortDefault = null) {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const request = this.getAll(this._tableState$.value, sortDefault)\r\n      .pipe(\r\n        tap((res: any) => {\r\n          const itemsTemp = res.data.content.map((item) => {\r\n            return item;\r\n          });\r\n          this._items$.next(itemsTemp);\r\n          this.patchStateWithoutFetch({\r\n            paginator: this._tableState$.value.paginator.recalculatePaginator(\r\n              res.data.totalElements\r\n            ),\r\n          });\r\n        }),\r\n        catchError((err) => {\r\n          this._errorMessage.next(err);\r\n          return of({\r\n            items: [],\r\n            total: 0\r\n          });\r\n        }),\r\n        finalize(() => {\r\n          this._isLoading$.next(false);\r\n          const itemIds = this._items$.value.map((el: T) => {\r\n            const item = (el as unknown) as BaseModel;\r\n            return item.id;\r\n          });\r\n          this.patchStateWithoutFetch({\r\n            grouping: this._tableState$.value.grouping.clearRows(itemIds),\r\n          });\r\n        })\r\n      )\r\n      .subscribe();\r\n    this._subscriptions.push(request);\r\n  }\r\n\r\n  public setDefaults() {\r\n    this.patchStateWithoutFetch({ filter: {} });\r\n    this.patchStateWithoutFetch({ sorting: new SortState() });\r\n    this.patchStateWithoutFetch({ grouping: new GroupingState() });\r\n    this.patchStateWithoutFetch({ searchTerm: '' });\r\n    this.patchStateWithoutFetch({\r\n      paginator: new PaginatorState()\r\n    });\r\n    this._isFirstLoading$.next(true);\r\n    this._isLoading$.next(true);\r\n    this._tableState$.next(DEFAULT_STATE);\r\n    this._errorMessage.next('');\r\n  }\r\n\r\n  public patchState(patch: Partial<ITableState>) {\r\n    this.patchStateWithoutFetch(patch);\r\n    this.fetch();\r\n  }\r\n\r\n  public patchStateWithoutFetch(patch: Partial<ITableState>) {\r\n    const newState = Object.assign(this._tableState$.value, patch);\r\n    this._tableState$.next(newState);\r\n  }\r\n\r\n  // BPMN SERVICE OVER HERE\r\n  // BPMN SERVICE OVER HERE\r\n  apply(item: any, paramSet = [], customUrl = null): Observable<any> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    let params = new HttpParams();\r\n    paramSet.forEach((el) => {\r\n      params = params.set(el.name, el.value)\r\n    })\r\n    const url = customUrl ? customUrl : this.API_URL\r\n    return this.http.post(url, item, {\r\n      headers: this.myHeader,\r\n      params\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  getItemBpmnById(id: number, customUrl = null): Observable<BaseModel> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const url = customUrl ? customUrl : this.API_URL + `/${id}`;\r\n    return this.http.get<BaseModel>(url, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  public fetchBpmnInit() {\r\n    this._isLoading$.next(true);\r\n    const stats = this.getStatistic();\r\n    const specs = this.getSpecInit();\r\n    forkJoin([stats, specs]).subscribe(results => {\r\n      let stat = results[0];\r\n      let spec = results[1];\r\n      let arrTasks = [];\r\n      for (const key in stat.data.tasks) {\r\n        arrTasks.push(key)\r\n      }\r\n      this._listTasks$.next(arrTasks);\r\n      this._listSpecInit$.next({\r\n        init: spec.data\r\n      });\r\n      this._isLoading$.next(false);\r\n    }, (error) => {\r\n      SweetAlertService.swalError(error)\r\n    });\r\n  }\r\n\r\n  public fetchAllSpecInit(arr) {\r\n    this._isLoading$.next(true);\r\n    let test = []\r\n    arr.forEach((el) => {\r\n      test.push(\r\n        this.getSpecDynamic(el)\r\n      )\r\n    })\r\n    forkJoin(test).subscribe((results: any) => {\r\n      let arrTemp = new Object()\r\n      for (let i=0; i<arr.length; i++) {\r\n        arrTemp[arr[i]] = results[i].data\r\n      }\r\n      this._listSpecAll$.next(arrTemp);\r\n      this._isLoading$.next(false);\r\n    }, (error) => {\r\n      SweetAlertService.swalError(error)\r\n    });\r\n  }\r\n\r\n  public fetchBpmn(def = '', sortDefault = null) {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const request = this.getAllBpmn(this._tableState$.value, def, sortDefault)\r\n      .pipe(\r\n        tap((res: any) => {\r\n          const itemsTemp = res.data.content.map((item) => {\r\n            let typeTask = '';\r\n            let nameTask = '';\r\n            for (var key in item.tasks) {\r\n              if (item.tasks.hasOwnProperty(key)) {\r\n                typeTask = key\r\n                nameTask = item.tasks[key]\r\n              }\r\n            }\r\n            let obj = {\r\n              ...item,\r\n              typeTask: typeTask,\r\n              nameTask: nameTask\r\n            }\r\n            return obj;\r\n          });\r\n          this._items$.next(itemsTemp);\r\n          this.patchStateWithoutFetch({\r\n            paginator: this._tableState$.value.paginator.recalculatePaginator(\r\n              res.data.totalElements\r\n            ),\r\n          });\r\n        }),\r\n        catchError((err) => {\r\n          this._errorMessage.next(err);\r\n          return of({\r\n            items: [],\r\n            total: 0\r\n          });\r\n        }),\r\n        finalize(() => {\r\n          this._isLoading$.next(false);\r\n          const itemIds = this._items$.value.map((el: T) => {\r\n            const item = (el as unknown) as BaseModel;\r\n            return item.id;\r\n          });\r\n          this.patchStateWithoutFetch({\r\n            grouping: this._tableState$.value.grouping.clearRows(itemIds),\r\n          });\r\n        })\r\n      )\r\n      .subscribe();\r\n    this._subscriptions.push(request);\r\n  }\r\n\r\n  public fetchBpmnGeneral(def = '', sortDefault = null) {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const request = this.getAllBpmn(this._tableState$.value, def, sortDefault)\r\n      .pipe(\r\n        tap((res: any) => {\r\n          this._items$.next(res.data.content);\r\n          this.patchStateWithoutFetch({\r\n            paginator: this._tableState$.value.paginator.recalculatePaginator(\r\n              res.data.totalElements\r\n            ),\r\n          });\r\n        }),\r\n        catchError((err) => {\r\n          this._errorMessage.next(err);\r\n          return of({\r\n            items: [],\r\n            total: 0\r\n          });\r\n        }),\r\n        finalize(() => {\r\n          this._isLoading$.next(false);\r\n          const itemIds = this._items$.value.map((el: T) => {\r\n            const item = (el as unknown) as BaseModel;\r\n            return item.id;\r\n          });\r\n          this.patchStateWithoutFetch({\r\n            grouping: this._tableState$.value.grouping.clearRows(itemIds),\r\n          });\r\n        })\r\n      )\r\n      .subscribe();\r\n    this._subscriptions.push(request);\r\n  }\r\n\r\n  public patchStateBpmn(patch: Partial<ITableState>, def = '') {\r\n    this.patchStateWithoutFetch(patch);\r\n    this.fetchBpmn(def);\r\n  }\r\n\r\n  updateBpmn(id, item: any, type: string, paramSet = []): Observable<any> {\r\n    const url = `${this.API_URL}/${type}/${id}/submit`;\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    let params = new HttpParams();\r\n    paramSet.forEach((el) => {\r\n      params = params.set(el.name, el.value)\r\n    })\r\n    return this.http.post(url, item, {\r\n      headers: this.myHeader,\r\n      params\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n  getAllBpmn(tableState: ITableState, def = '', sortDefault = null): Observable<any> {\r\n    const url = this.API_URL;\r\n    this._errorMessage.next('');\r\n    const page = tableState.paginator.page - 1;\r\n    let params = new HttpParams()\r\n      .set('page', page.toString())\r\n      .set('limit', tableState.paginator.pageSize.toString())\r\n      .set('taskDefinitionKey', def)\r\n\r\n    // params = params.set('search', '1');\r\n    for (const key in tableState.filter) {\r\n      if (tableState.filter.hasOwnProperty(key)) {\r\n        params = params.set(key, tableState.filter[key]);\r\n      }\r\n    }\r\n    if (sortDefault) {\r\n      params = params.set('sort', sortDefault);\r\n    } else {\r\n      params = params.set('sort', tableState.sorting.column);\r\n    }\r\n    if (tableState.sorting.direction === 'asc') {\r\n      params = params.set('asc', '1');\r\n    }else {\r\n      params = params.set('asc', '0');\r\n    }\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n      params\r\n    }).pipe(\r\n      catchError(err => {\r\n        // SweetAlertService.swalError(err)\r\n        this._errorMessage.next(err);\r\n        return of({ items: [], total: 0 });\r\n      })\r\n    );\r\n  }\r\n\r\n  getSpecInit() {\r\n    const url = this.API_URL + '/spec';\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n    })\r\n  }\r\n\r\n  getSpecDynamic(str: string) {\r\n    const url = this.API_URL + `/${str}/spec`;\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n    })\r\n  }\r\n\r\n  getStatistic() {\r\n    const url = this.API_URL + '/statistic';\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n    });\r\n  }\r\n\r\n  getSpec(type: string, task: string): Observable<any> {\r\n    this._isLoading$.next(true);\r\n    this._errorMessage.next('');\r\n    const url = `${this.API_URL}/${task}/spec/${type}`;\r\n    return this.http.get<any>(url, {\r\n      headers: this.myHeader,\r\n    }).pipe(\r\n      finalize(() => this._isLoading$.next(false))\r\n    );\r\n  }\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TableService } from './table.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TableExtendedService extends TableService<any> {\r\n  constructor(@Inject(HttpClient) http) {\r\n    super(http);\r\n  }\r\n}\r\n","// Fork of https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/pagination/pagination-config.ts\r\nimport { Injectable } from '@angular/core';\r\nimport { PageSizes } from '../../../models/paginator.model';\r\n\r\n/**\r\n * A configuration service for the [`NgPagination`](#/components/paginator/api#NgPagination) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the paginations used in the application.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class NgPaginationConfig {\r\n  disabled = false;\r\n  boundaryLinks = false;\r\n  directionLinks = true;\r\n  ellipses = true;\r\n  maxSize = 0;\r\n  pageSize = PageSizes[2];\r\n  rotate = false;\r\n  size: 'sm' | 'lg';\r\n}\r\n","// tslint:disable:max-line-length component-class-suffix directive-selector directive-class-suffix component-selector no-host-metadata-property object-literal-key-quotes prefer-const\r\n// fork of https://github.com/ng-bootstrap/ng-bootstrap/blob/master/src/pagination/pagination.ts\r\nimport {\r\n  Component,\r\n  ContentChild,\r\n  Directive,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  OnChanges,\r\n  ChangeDetectionStrategy,\r\n  SimpleChanges,\r\n  TemplateRef\r\n} from '@angular/core';\r\nimport { NgPaginationConfig } from './ng-pagination.config';\r\n\r\nfunction getValueInRange(value: number, max: number, min = 0): number {\r\n  return Math.max(Math.min(value, max), min);\r\n}\r\n\r\nfunction isNumber(value: any): value is number {\r\n  return !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n  return parseInt(`${value}`, 10);\r\n}\r\n\r\n/**\r\n * A context for the\r\n * * `NgPaginationFirst`\r\n * * `NgPaginationPrevious`\r\n * * `NgPaginationNext`\r\n * * `NgPaginationLast`\r\n * * `NgPaginationEllipsis`\r\n *\r\n * link templates in case you want to override one.\r\n *\r\n * @since 4.1.0\r\n */\r\nexport interface NgPaginationLinkContext {\r\n  /**\r\n   * The currently selected page number\r\n   */\r\n  currentPage: number;\r\n\r\n  /**\r\n   * If `true`, the current link is disabled\r\n   */\r\n  disabled: boolean;\r\n}\r\n\r\n/**\r\n * A context for the `NgPaginationNumber` link template in case you want to override one.\r\n *\r\n * Extends `NgPaginationLinkContext`.\r\n *\r\n * @since 4.1.0\r\n */\r\nexport interface NgPaginationNumberContext extends NgPaginationLinkContext {\r\n  /**\r\n   * The page number, displayed by the current page link.\r\n   */\r\n  $implicit: number;\r\n}\r\n\r\n/**\r\n * A directive to match the 'ellipsis' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationEllipsis]' })\r\nexport class NgPaginationEllipsis {\r\n  constructor(public templateRef: TemplateRef<NgPaginationLinkContext>) { }\r\n}\r\n\r\n/**\r\n * A directive to match the 'first' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationFirst]' })\r\nexport class NgPaginationFirst {\r\n  constructor(public templateRef: TemplateRef<NgPaginationLinkContext>) { }\r\n}\r\n\r\n/**\r\n * A directive to match the 'last' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationLast]' })\r\nexport class NgPaginationLast {\r\n  constructor(public templateRef: TemplateRef<NgPaginationLinkContext>) { }\r\n}\r\n\r\n/**\r\n * A directive to match the 'next' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationNext]' })\r\nexport class NgPaginationNext {\r\n  constructor(public templateRef: TemplateRef<NgPaginationLinkContext>) { }\r\n}\r\n\r\n/**\r\n * A directive to match the page 'number' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationNumber]' })\r\nexport class NgPaginationNumber {\r\n  constructor(public templateRef: TemplateRef<NgPaginationNumberContext>) { }\r\n}\r\n\r\n/**\r\n * A directive to match the 'previous' link template\r\n *\r\n * @since 4.1.0\r\n */\r\n@Directive({ selector: 'ng-template[ngPaginationPrevious]' })\r\nexport class NgPaginationPrevious {\r\n  constructor(public templateRef: TemplateRef<NgPaginationLinkContext>) { }\r\n}\r\n\r\n/**\r\n * A component that displays page numbers and allows to customize them in several ways.\r\n */\r\n@Component({\r\n  selector: 'ng-pagination',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  host: { 'role': 'navigation' },\r\n  templateUrl: './ng-pagination.component.html',\r\n\r\n})\r\nexport class NgPagination implements OnChanges {\r\n  pageCount = 0;\r\n  pages: number[] = [];\r\n\r\n  @ContentChild(NgPaginationEllipsis, { static: false }) tplEllipsis: NgPaginationEllipsis;\r\n  @ContentChild(NgPaginationFirst, { static: false }) tplFirst: NgPaginationFirst;\r\n  @ContentChild(NgPaginationLast, { static: false }) tplLast: NgPaginationLast;\r\n  @ContentChild(NgPaginationNext, { static: false }) tplNext: NgPaginationNext;\r\n  @ContentChild(NgPaginationNumber, { static: false }) tplNumber: NgPaginationNumber;\r\n  @ContentChild(NgPaginationPrevious, { static: false }) tplPrevious: NgPaginationPrevious;\r\n\r\n  /**\r\n   * If `true`, pagination links will be disabled.\r\n   */\r\n  @Input() disabled: boolean;\r\n\r\n  /**\r\n   * If `true`, the \"First\" and \"Last\" page links are shown.\r\n   */\r\n  @Input() boundaryLinks: boolean;\r\n\r\n  /**\r\n   * If `true`, the \"Next\" and \"Previous\" page links are shown.\r\n   */\r\n  @Input() directionLinks: boolean;\r\n\r\n  /**\r\n   * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages.\r\n   */\r\n  @Input() ellipses: boolean;\r\n\r\n  /**\r\n   * Whether to rotate pages when `maxSize` > number of pages.\r\n   *\r\n   * The current page always stays in the middle if `true`.\r\n   */\r\n  @Input() rotate: boolean;\r\n\r\n  /**\r\n   *  The number of items in your paginated collection.\r\n   *\r\n   *  Note, that this is not the number of pages. Page numbers are calculated dynamically based on\r\n   *  `collectionSize` and `pageSize`. Ex. if you have 100 items in your collection and displaying 20 items per page,\r\n   *  you'll end up with 5 pages.\r\n   */\r\n  @Input() collectionSize: number;\r\n\r\n  /**\r\n   *  The maximum number of pages to display.\r\n   */\r\n  @Input() maxSize: number;\r\n\r\n  /**\r\n   *  The current page.\r\n   *\r\n   *  Page numbers start with `1`.\r\n   */\r\n  @Input() page = 1;\r\n\r\n  /**\r\n   *  The number of items per page.\r\n   */\r\n  @Input() pageSize: number;\r\n\r\n  /**\r\n   *  An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\r\n   *\r\n   *  Event payload is the number of the newly selected page.\r\n   *\r\n   *  Page numbers start with `1`.\r\n   */\r\n  @Output() pageChange = new EventEmitter<number>(true);\r\n\r\n  /**\r\n   * The pagination display size.\r\n   *\r\n   * Bootstrap currently supports small and large sizes.\r\n   */\r\n  @Input() size: 'sm' | 'lg';\r\n\r\n  constructor(config: NgPaginationConfig) {\r\n    this.disabled = config.disabled;\r\n    this.boundaryLinks = config.boundaryLinks;\r\n    this.directionLinks = config.directionLinks;\r\n    this.ellipses = config.ellipses;\r\n    this.maxSize = config.maxSize;\r\n    this.pageSize = config.pageSize;\r\n    this.rotate = config.rotate;\r\n    this.size = config.size;\r\n  }\r\n\r\n  hasPrevious(): boolean { return this.page > 1; }\r\n\r\n  hasNext(): boolean { return this.page < this.pageCount; }\r\n\r\n  nextDisabled(): boolean { return !this.hasNext() || this.disabled; }\r\n\r\n  previousDisabled(): boolean { return !this.hasPrevious() || this.disabled; }\r\n\r\n  selectPage(pageNumber: number): void { this._updatePages(pageNumber); }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void { this._updatePages(this.page); }\r\n\r\n  isEllipsis(pageNumber): boolean { return pageNumber === -1; }\r\n\r\n  /**\r\n   * Appends ellipses and first/last page number to the displayed pages\r\n   */\r\n  private _applyEllipses(start: number, end: number) {\r\n    if (this.ellipses) {\r\n      if (start > 0) {\r\n        // The first page will always be included. If the displayed range\r\n        // starts after the third page, then add ellipsis. But if the range\r\n        // starts on the third page, then add the second page instead of\r\n        // an ellipsis, because the ellipsis would only hide a single page.\r\n        if (start > 2) {\r\n          this.pages.unshift(-1);\r\n        } else if (start === 2) {\r\n          this.pages.unshift(2);\r\n        }\r\n        this.pages.unshift(1);\r\n      }\r\n      if (end < this.pageCount) {\r\n        // The last page will always be included. If the displayed range\r\n        // ends before the third-last page, then add ellipsis. But if the range\r\n        // ends on third-last page, then add the second-last page instead of\r\n        // an ellipsis, because the ellipsis would only hide a single page.\r\n        if (end < (this.pageCount - 2)) {\r\n          this.pages.push(-1);\r\n        } else if (end === (this.pageCount - 2)) {\r\n          this.pages.push(this.pageCount - 1);\r\n        }\r\n        this.pages.push(this.pageCount);\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Rotates page numbers based on maxSize items visible.\r\n   * Currently selected page stays in the middle:\r\n   *\r\n   * Ex. for selected page = 6:\r\n   * [5,*6*,7] for maxSize = 3\r\n   * [4,5,*6*,7] for maxSize = 4\r\n   */\r\n  private _applyRotation(): [number, number] {\r\n    let start = 0;\r\n    let end = this.pageCount;\r\n    let leftOffset = Math.floor(this.maxSize / 2);\r\n    let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\r\n\r\n    if (this.page <= leftOffset) {\r\n      // very beginning, no rotation -> [0..maxSize]\r\n      end = this.maxSize;\r\n    } else if (this.pageCount - this.page < leftOffset) {\r\n      // very end, no rotation -> [len-maxSize..len]\r\n      start = this.pageCount - this.maxSize;\r\n    } else {\r\n      // rotate\r\n      start = this.page - leftOffset - 1;\r\n      end = this.page + rightOffset;\r\n    }\r\n\r\n    return [start, end];\r\n  }\r\n\r\n  /**\r\n   * Paginates page numbers based on maxSize items per page.\r\n   */\r\n  private _applyPagination(): [number, number] {\r\n    let page = Math.ceil(this.page / this.maxSize) - 1;\r\n    let start = page * this.maxSize;\r\n    let end = start + this.maxSize;\r\n\r\n    return [start, end];\r\n  }\r\n\r\n  private _setPageInRange(newPageNo) {\r\n    const prevPageNo = this.page;\r\n    this.page = getValueInRange(newPageNo, this.pageCount, 1);\r\n\r\n    if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\r\n      this.pageChange.emit(this.page);\r\n    }\r\n  }\r\n\r\n  private _updatePages(newPage: number) {\r\n    this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\r\n\r\n    if (!isNumber(this.pageCount)) {\r\n      this.pageCount = 0;\r\n    }\r\n\r\n    // fill-in model needed to render pages\r\n    this.pages.length = 0;\r\n    for (let i = 1; i <= this.pageCount; i++) {\r\n      this.pages.push(i);\r\n    }\r\n\r\n    // set page within 1..max range\r\n    this._setPageInRange(newPage);\r\n\r\n    // apply maxSize if necessary\r\n    if (this.maxSize > 0 && this.pageCount > this.maxSize) {\r\n      let start = 0;\r\n      let end = this.pageCount;\r\n\r\n      // either paginating or rotating page numbers\r\n      if (this.rotate) {\r\n        [start, end] = this._applyRotation();\r\n      } else {\r\n        [start, end] = this._applyPagination();\r\n      }\r\n\r\n      this.pages = this.pages.slice(start, end);\r\n\r\n      // adding ellipses\r\n      this._applyEllipses(start, end);\r\n    }\r\n  }\r\n}\r\n","<ng-template #first>\r\n  <i\r\n    class=\"ki ki-bold-double-arrow-back icon-xs\"\r\n    aria-hidden=\"true\"\r\n    i18n=\"@@ng.pagination.first\"\r\n  ></i>\r\n</ng-template>\r\n<ng-template #previous>\r\n  <i\r\n    class=\"ki ki-bold-arrow-back icon-xs\"\r\n    aria-hidden=\"true\"\r\n    i18n=\"@@ng.pagination.previous\"\r\n  ></i>\r\n</ng-template>\r\n<ng-template #next>\r\n  <i\r\n    class=\"ki ki-bold-arrow-next icon-xs\"\r\n    aria-hidden=\"true\"\r\n    i18n=\"@@ng.pagination.next\"\r\n  ></i>\r\n</ng-template>\r\n<ng-template #last>\r\n  <i\r\n    aria-hidden=\"true\"\r\n    i18n=\"@@ng.pagination.last\"\r\n    class=\"ki ki-bold-double-arrow-next icon-xs\"\r\n  ></i>\r\n</ng-template>\r\n<ng-template #ellipsis>...</ng-template>\r\n<ng-template #defaultNumber let-page let-currentPage=\"currentPage\">\r\n  {{ page }}\r\n  <span *ngIf=\"page === currentPage\" class=\"sr-only\">(current)</span>\r\n</ng-template>\r\n<a\r\n  *ngIf=\"boundaryLinks\"\r\n  [class.disabled]=\"previousDisabled()\"\r\n  aria-label=\"First\"\r\n  i18n-aria-label=\"@@ng.pagination.first-aria\"\r\n  class=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n  href\r\n  (click)=\"selectPage(1); $event.preventDefault()\"\r\n  [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\r\n  [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\r\n>\r\n  <ng-template\r\n    [ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\r\n    [ngTemplateOutletContext]=\"{\r\n      disabled: previousDisabled(),\r\n      currentPage: page\r\n    }\"\r\n  ></ng-template>\r\n</a>\r\n<a\r\n  *ngIf=\"directionLinks\"\r\n  [class.disabled]=\"previousDisabled()\"\r\n  aria-label=\"Previous\"\r\n  i18n-aria-label=\"@@ng.pagination.previous-aria\"\r\n  class=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n  href\r\n  (click)=\"selectPage(page - 1); $event.preventDefault()\"\r\n  [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\r\n  [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\r\n>\r\n  <ng-template\r\n    [ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\r\n    [ngTemplateOutletContext]=\"{ disabled: previousDisabled() }\"\r\n  ></ng-template>\r\n</a>\r\n<ng-container *ngFor=\"let pageNumber of pages\">\r\n  <a\r\n    *ngIf=\"isEllipsis(pageNumber)\"\r\n    class=\"btn btn-icon btn-sm border-0 btn-light btn-hover-primary mr-2 my-1\"\r\n    tabindex=\"-1\"\r\n    aria-disabled=\"true\"\r\n    [class.active]=\"pageNumber === page\"\r\n    [class.disabled]=\"isEllipsis(pageNumber) || disabled\"\r\n    [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\r\n  >\r\n    <ng-template\r\n      [ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\r\n      [ngTemplateOutletContext]=\"{ disabled: true, currentPage: page }\"\r\n    ></ng-template>\r\n  </a>\r\n  <a\r\n    *ngIf=\"!isEllipsis(pageNumber)\"\r\n    class=\"btn btn-icon btn-sm border-0 btn-light btn-hover-primary mr-2 my-1\"\r\n    (click)=\"selectPage(pageNumber); $event.preventDefault()\"\r\n    [attr.tabindex]=\"disabled ? '-1' : null\"\r\n    [attr.aria-disabled]=\"disabled ? 'true' : null\"\r\n    [class.active]=\"pageNumber === page\"\r\n    [class.disabled]=\"isEllipsis(pageNumber) || disabled\"\r\n    [attr.aria-current]=\"pageNumber === page ? 'page' : null\"\r\n  >\r\n    <ng-template\r\n      [ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\r\n      [ngTemplateOutletContext]=\"{\r\n        disabled: disabled,\r\n        $implicit: pageNumber,\r\n        currentPage: page\r\n      }\"\r\n    ></ng-template>\r\n  </a>\r\n</ng-container>\r\n<a\r\n  aria-label=\"Next\"\r\n  i18n-aria-label=\"@@ng.pagination.next-aria\"\r\n  class=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n  (click)=\"selectPage(page + 1); $event.preventDefault()\"\r\n  [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\r\n  [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\r\n  *ngIf=\"directionLinks\"\r\n  [class.disabled]=\"nextDisabled()\"\r\n>\r\n  <ng-template\r\n    [ngTemplateOutlet]=\"tplNext?.templateRef || next\"\r\n    [ngTemplateOutletContext]=\"{\r\n      disabled: nextDisabled(),\r\n      currentPage: page\r\n    }\"\r\n  ></ng-template>\r\n</a>\r\n<a\r\n  aria-label=\"Last\"\r\n  i18n-aria-label=\"@@ng.pagination.last-aria\"\r\n  class=\"btn btn-icon btn-sm btn-light btn-hover-primary mr-2 my-1\"\r\n  (click)=\"selectPage(pageCount); $event.preventDefault()\"\r\n  [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\r\n  [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\r\n  *ngIf=\"boundaryLinks\"\r\n  [class.disabled]=\"nextDisabled()\"\r\n>\r\n  <ng-template\r\n    [ngTemplateOutlet]=\"tplLast?.templateRef || last\"\r\n    [ngTemplateOutletContext]=\"{\r\n      disabled: nextDisabled(),\r\n      currentPage: page\r\n    }\"\r\n  ></ng-template>\r\n</a>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { PageSizes, PaginatorState } from '../../models/paginator.model';\r\n\r\n@Component({\r\n  selector: 'app-paginator',\r\n  templateUrl: './paginator.component.html',\r\n  styleUrls: ['./paginator.component.scss']\r\n})\r\nexport class PaginatorComponent implements OnInit {\r\n  @Input() paginator: PaginatorState;\r\n  @Input() isLoading;\r\n  @Output() paginate: EventEmitter<PaginatorState> = new EventEmitter();\r\n  pageSizes: number[] = PageSizes;\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n\r\n  pageChange(num: number) {\r\n    this.paginator.page = num;\r\n    this.paginate.emit(this.paginator);\r\n  }\r\n\r\n  sizeChange() {\r\n    this.paginator.pageSize = +this.paginator.pageSize;\r\n    this.paginator.page = 1;\r\n    this.paginate.emit(this.paginator);\r\n  }\r\n}\r\n","<!-- start: Paginator -->\r\n<div class=\"d-flex flex-wrap py-2 mr-3\">\r\n  <ng-pagination\r\n    [collectionSize]=\"paginator.total\"\r\n    [(page)]=\"paginator.page\"\r\n    [maxSize]=\"4\"\r\n    [rotate]=\"true\"\r\n    [boundaryLinks]=\"true\"\r\n    [pageSize]=\"paginator.pageSize\"\r\n    (pageChange)=\"pageChange($event)\"\r\n  ></ng-pagination>\r\n</div>\r\n<div class=\"d-flex align-items-center py-3\">\r\n  <!-- begin: loading -->\r\n  <div class=\"d-flex align-items-center\" *ngIf=\"isLoading\">\r\n    <div class=\"mr-2 text-muted\">Loading...</div>\r\n    <div class=\"spinner spinner-primary mr-10\"></div>\r\n  </div>\r\n  <!-- end: loading -->\r\n\r\n  <!-- begin: pageSize -->\r\n  <select\r\n    class=\"form-control form-control-sm font-weight-bold mr-4 border-0 bg-light false\"\r\n    style=\"width: 75px\"\r\n    [(ngModel)]=\"paginator.pageSize\"\r\n    (change)=\"sizeChange()\"\r\n  >\r\n    <option class=\"btn\" *ngFor=\"let ps of pageSizes\">\r\n      {{ ps }}\r\n    </option></select\r\n  ><span class=\"react-bootstrap-table-pagin ation-total\"\r\n    >&nbsp;Showing rows {{ paginator.page }} to&nbsp;{{\r\n      paginator.pageSize\r\n    }}\r\n    of&nbsp;{{ paginator.total }}</span\r\n  >\r\n  <!-- end: pageSize -->\r\n</div>\r\n<!-- end: Paginator -->\r\n","import { Component, OnInit, Input, OnChanges, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { SortDirection } from '../../models/sort.model';\r\n\r\n@Component({\r\n  selector: 'app-sort-icon',\r\n  templateUrl: './sort-icon.component.html',\r\n  styleUrls: ['./sort-icon.component.scss']\r\n})\r\nexport class SortIconComponent implements OnInit, OnChanges {\r\n  @Input() column: string;\r\n  @Input() activeColumn: string;\r\n  @Input() activeDirection: SortDirection;\r\n  @Output() sort: EventEmitter<string> = new EventEmitter<string>();\r\n  isActive = false;\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n  ngOnChanges(): void {\r\n    const parent = this.el.nativeElement.parentElement;\r\n    if (!parent) {\r\n      return;\r\n    }\r\n\r\n    // Load css classes\r\n    parent.classList.add('sortable');\r\n    parent.classList.remove('sortable-active');\r\n    if (this.column === this.activeColumn) {\r\n      parent.classList.add('sortable-active');\r\n    }\r\n\r\n    // load icons\r\n    this.isActive = this.column === this.activeColumn;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    const parent = this.el.nativeElement.parentElement as Element;\r\n    if (!parent) {\r\n      return;\r\n    }\r\n\r\n    parent.addEventListener('click', () => {\r\n      this.sort.emit(this.column);\r\n    });\r\n  }\r\n}\r\n","<ng-container *ngIf=\"isActive\">\r\n  <ng-container *ngIf=\"activeDirection === 'asc'\">\r\n    <span [inlineSVG]=\"'./assets/media/svg/icons/Navigation/Up-2.svg'\"\r\n      [cacheSVG]=\"true\"\r\n      class=\"svg-icon svg-icon-sm svg-icon-primary ml-1\">\r\n    </span>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"activeDirection === 'desc'\">\r\n    <span [inlineSVG]=\"'./assets/media/svg/icons/Navigation/Down-2.svg'\"\r\n      [cacheSVG]=\"true\"\r\n      class=\"svg-icon svg-icon-sm svg-icon-primary ml-1\">\r\n  </span>\r\n  </ng-container>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isActive\">\r\n  <span [inlineSVG]=\"'./assets/media/svg/icons/Shopping/Sort1.svg'\"\r\n    [cacheSVG]=\"true\"\r\n    class=\"svg-icon svg-icon-sm svg-icon-primary ml-1 svg-icon-sort\">\r\n  </span>\r\n</ng-container>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PaginatorComponent } from './components/paginator/paginator.component';\r\nimport {\r\n  NgPagination,\r\n  NgPaginationEllipsis,\r\n  NgPaginationFirst, NgPaginationLast, NgPaginationNext, NgPaginationNumber, NgPaginationPrevious\r\n} from './components/paginator/ng-pagination/ng-pagination.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SortIconComponent } from './components/sort-icon/sort-icon.component';\r\nimport { InlineSVGModule } from 'ng-inline-svg';\r\n@NgModule({\r\n  declarations: [PaginatorComponent, NgPagination, SortIconComponent, NgPagination,\r\n    NgPaginationEllipsis, NgPaginationFirst, NgPaginationLast, NgPaginationPrevious, NgPaginationNumber, NgPaginationNext],\r\n  imports: [CommonModule, FormsModule, InlineSVGModule  ],\r\n  exports: [PaginatorComponent, NgPagination, SortIconComponent, NgPagination,\r\n    NgPaginationEllipsis, NgPaginationFirst, NgPaginationLast,NgPaginationPrevious, NgPaginationNumber, NgPaginationNext],\r\n})\r\nexport class CRUDTableModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.Select2Service","i4.DiagramComponent","i5.CommonSelect2Component","i3","i3.CommonSelect2Component","i4.DateSelectComponent","i1.FileUploadService","BpmnJS","i1.NgPaginationConfig","i3.NgPagination"],"mappings":"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"}