{"version":3,"file":"optimajet-workflow-designer-angular-strict.mjs","sources":["../../../projects/workflow-designer-angular/strict/src/lib/workflow-designer.strict.component.ts","../../../projects/workflow-designer-angular/strict/src/lib/workflow-designer.strict.module.ts","../../../projects/workflow-designer-angular/strict/src/public-api.ts","../../../projects/workflow-designer-angular/strict/src/optimajet-workflow-designer-angular-strict.ts"],"sourcesContent":["import {AfterViewInit, Component, DoCheck, HostListener, Input, KeyValueDiffer, KeyValueDiffers, NgZone} from '@angular/core';\n// @ts-ignore\nimport jQuery from \"jquery\";\n// @ts-ignore\nwindow.$ = window.jQuery = jQuery;\n\n// @ts-ignore\nimport moment from 'moment'\n// @ts-ignore\nwindow.moment = moment;\n\n// @ts-ignore\nimport WorkflowDesigner from '@optimajet/workflow-designer/strict';\n\n@Component({\n    //changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'workflow-designer',\n    template: `\n        <div id=\"{{this.designerConfig.renderTo}}\"></div>\n        <form action=\"\" id=\"{{this.designerConfig.uploadFormId}}\" method=\"post\" style=\"display: none;\" encType=\"multipart/form-data\">\n            <input type=\"file\" name=\"{{this.designerConfig.uploadFileId}}\" id=\"{{this.designerConfig.uploadFileId}}\" (change)=\"uploadChange()\"/>\n        </form>\n    `,\n    styles: [],\n    standalone: false\n})\nexport class WorkflowDesignerStrictComponent implements AfterViewInit, DoCheck {\n    // Class members which could be assigned from outside\n    @Input() schemeCode = '';\n    @Input() processId = '';\n    @Input() designerFolder = '';\n    @Input() designerConfig: any = {\n        renderTo:'workflow-designer', //default id value\n        uploadFormId: 'workflow-uploadform', //default id value\n        uploadFileId: 'workflow-uploadfile' //default id value\n    };\n\n    // Public class members\n    public data?: object = undefined;\n    public innerDesigner: any = null;\n\n    // Private class members\n    private uploadCallback: any = null;\n    private uploadType?: string = \"scheme\";\n    private resizeTimer?: any = undefined;\n    private configDiffer: KeyValueDiffer<string, any>;\n\n    constructor(private _ngZone: NgZone, private window: Window, private differs: KeyValueDiffers) {\n      this.configDiffer = this.differs.find(this.designerConfig).create();\n     }\n\n    ngDoCheck() {\n      if (this.configDiffer.diff(this.designerConfig)) {\n        this.redrawDesigner();\n      }\n    }\n\n    // ------------- Methods for using from other components ------------- //\n\n    /**\n     * Clears the designer, equivalent of creating empty scheme design\n     */\n    clearScheme() {\n        this.innerDesigner.create();\n    }\n\n    /**\n     * Get Workflow Designer Errors\n     *\n     * @returns Errors in Workflow Designer\n     */\n    getDesignerErrors() {\n        return this.innerDesigner.validate();\n    }\n\n    /**\n     * Save Workflow scheme\n     *\n     * @param {function} successCallback Function which will be executed if save was successful\n     * @param {function} errorCallback Function which will be executed if save operation failed\n     */\n    save(successCallback: Function, errorCallback:Function) {\n        this.innerDesigner.schemecode = this.schemeCode;\n        const error = this.getDesignerErrors();\n\n        if (error != undefined && error.length > 0) {\n            errorCallback(error);\n        } else {\n            this.innerDesigner.save(successCallback);\n        }\n    }\n\n    /**\n     * Download XML file which contain Workflow Scheme description\n     */\n    downloadScheme() {\n        this.innerDesigner.downloadscheme({\n            name: this.schemeCode\n        });\n    }\n\n    /**\n     * Upload BPMN or XML file\n     *\n     * @param uploadType {string} Upload type, can be 'scheme' or 'bpmn'\n     * @param {function} callback Function that will be executed after uploading file\n     */\n    upload(uploadType: string, callback : Function) {\n        this.uploadCallback = callback;\n        this.uploadType = uploadType;\n\n        this.triggerUploadEvent();\n    }\n\n    /**\n     * Check for scheme existence by the scheme code from props\n     *\n     * @returns {boolean} If scheme exists true, otherwise, false\n     */\n    isSchemeExist() {\n        const data = {\n            schemecode: this.schemeCode,\n            processid: undefined\n        };\n\n        return this.innerDesigner.exists(data);\n    }\n\n    /**\n     * Check for process existence by scheme code\n     * and process id given in props\n     *\n     * @returns {boolean} If process exists true, otherwise, false\n     */\n    isProcessExist() {\n        const data = {\n            schemecode: this.schemeCode,\n            processid: this.processId,\n        };\n\n        return this.innerDesigner.exists(data);\n    }\n\n    /**\n     * Refresh data in WorkflowDesigner\n     */\n    refresh() {\n        this.innerDesigner.refresh();\n    }\n\n    // ------------- End of methods for using from other components ------------- //\n    ngAfterViewInit() {\n        this.redrawDesigner();\n    }\n\n    uploadChange() {\n        const form = document.getElementById(this.designerConfig.uploadFormId);\n\n        if (this.uploadType === \"bpmn\") {\n            this.innerDesigner.uploadbpmn(form, this.uploadCallback);\n        } else {\n            this.innerDesigner.uploadscheme(form, this.uploadCallback);\n        }\n    }\n\n    triggerUploadEvent() {\n        const file = document.getElementById(this.designerConfig.uploadFileId);\n\n        if (file) {\n            file.click();\n        }\n    }\n\n    graphSize(): any {\n      const {widthDiff, heightDiff} = this.designerConfig;\n      return {\n        width: window.innerWidth - (widthDiff ?? 0),\n        height: window.innerHeight - (heightDiff ?? 0)\n      }\n    }\n\n    @HostListener('window:resize')\n    resizeDesigner(): void {\n        if (this.resizeTimer) {\n            clearTimeout(this.resizeTimer);\n            this.resizeTimer = undefined;\n        }\n\n        this.resizeTimer = setTimeout(() => {\n          const {width, height} = this.graphSize();\n            this.innerDesigner.resize(width, height);\n        }, 150);\n    }\n\n    redrawDesigner(): void {\n        const designerDiv = document.getElementById(this.designerConfig.renderTo);\n\n        if (this.schemeCode === '' && this.processId === '') {\n            return;\n        }\n\n        if (!designerDiv) {\n            return;\n        }\n\n        const designerConfig = {\n            ...this.designerConfig,\n            renderTo: this.designerConfig.renderTo,\n            graphwidth: this.graphSize().width,\n            graphheight: this.graphSize().height\n        };\n\n        this._ngZone.runOutsideAngular(() => {\n            if (this.innerDesigner) {\n                this.processExistingDesigner(designerConfig);\n            } else {\n                this.createNewDesigner(designerConfig);\n            }\n        });\n    }\n\n    processExistingDesigner(config: object) {\n        const data = this.innerDesigner?.data;\n        const schemecode = this.innerDesigner?.schemecode;\n        this.innerDesigner?.destroy();\n\n        this.innerDesigner = this.getWorkflowDesigner(config);\n        this.innerDesigner.schemecode = schemecode;\n\n        if (!data) {\n            this.loadScheme();\n        } else {\n            this.innerDesigner.data = data;\n            this.innerDesigner.render();\n        }\n    }\n\n    createNewDesigner(config: object) {\n        this.innerDesigner = this.getWorkflowDesigner(config);\n        this.loadScheme();\n    }\n\n    getWorkflowDesigner(config: object): any {\n        return new WorkflowDesigner(config);\n    }\n\n    loadScheme() {\n\n        let data = {\n            schemecode: this.schemeCode,\n            processid: this.processId,\n            readonly: this.processId != undefined && this.processId != \"\"\n        };\n\n        const callback = () => {\n            this.data = this.innerDesigner.data;\n        };\n        const loadData = new Promise((resolve, reject) => {\n            if (this.innerDesigner.exists(data)) {\n                this.innerDesigner.load(data, resolve);\n            } else {\n                this.innerDesigner.create(this.schemeCode);\n            }\n        });\n\n        loadData.then(callback);\n    }\n}\n\n","import { NgModule } from '@angular/core';\nimport { WorkflowDesignerStrictComponent } from './workflow-designer.strict.component';\n\n@NgModule({\n  providers: [\n    { provide: Window, useValue: window } \n  ],\n  declarations: [\n    WorkflowDesignerStrictComponent\n  ],\n  imports: [\n  ],\n  exports: [\n    WorkflowDesignerStrictComponent\n  ]\n})\nexport class WorkflowDesignerStrictModule { }\n\n","/*\n * Public API Surface of workflow-designer-angular/strict\n */\n\nexport * from './lib/workflow-designer.strict.component';\nexport * from './lib/workflow-designer.strict.module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}