@colijnit/sharedcomponents 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/colijnit-sharedcomponents.umd.js +433 -119
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents-1.0.23.tgz +0 -0
- package/colijnit-sharedcomponents.d.ts +3 -3
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +4 -4
- package/esm2015/lib/components/circular-gauge/co-circular-gauge.component.js +125 -0
- package/esm2015/lib/components/circular-gauge/co-circular-gauge.module.js +21 -0
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +55 -0
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -0
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +1 -18
- package/esm2015/lib/components/statusbar/statusbar.component.js +81 -0
- package/esm2015/lib/components/statusbar/statusbar.module.js +23 -0
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +7 -2
- package/esm2015/lib/components/stock/stock.component.js +33 -18
- package/esm2015/lib/components/stock/stock.module.js +2 -4
- package/esm2015/lib/service/shared-connector.service.js +13 -14
- package/esm2015/lib/service/stock.service.js +24 -22
- package/esm2015/public-api.js +7 -1
- package/fesm2015/colijnit-sharedcomponents.js +404 -92
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/lib/components/circular-gauge/co-circular-gauge.component.d.ts +20 -0
- package/lib/components/circular-gauge/co-circular-gauge.module.d.ts +2 -0
- package/lib/components/circular-gauge/style/_layout.scss +24 -0
- package/lib/components/circular-gauge/style/_material-definition.scss +8 -0
- package/lib/components/circular-gauge/style/_theme.scss +9 -0
- package/lib/components/circular-gauge/style/material.scss +5 -0
- package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +16 -0
- package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -0
- package/lib/components/linear-gauge/style/_layout.scss +22 -0
- package/lib/components/linear-gauge/style/_material-definition.scss +8 -0
- package/lib/components/linear-gauge/style/_theme.scss +6 -0
- package/lib/components/linear-gauge/style/material.scss +5 -0
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -4
- package/lib/components/statusbar/statusbar.component.d.ts +23 -0
- package/lib/components/statusbar/statusbar.module.d.ts +2 -0
- package/lib/components/statusbar/style/_layout.scss +61 -0
- package/lib/components/statusbar/style/_material-definition.scss +23 -0
- package/lib/components/statusbar/style/_theme.scss +16 -0
- package/lib/components/statusbar/style/material.scss +6 -0
- package/lib/components/stock/stock.component.d.ts +10 -6
- package/lib/components/stock/style/_layout.scss +1 -2
- package/lib/components/stock/style/_material-definition.scss +1 -1
- package/lib/service/shared-connector.service.d.ts +1 -1
- package/lib/service/stock.service.d.ts +4 -2
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colijnit-sharedcomponents.js","sources":["../../../projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts","../../../projects/sharedcomponents/src/lib/utils/is-nill.function.ts","../../../projects/sharedcomponents/src/lib/utils/array-utils.ts","../../../projects/sharedcomponents/src/lib/model/business-object.ts","../../../projects/sharedcomponents/src/lib/factory/business-object-factory.ts","../../../projects/sharedcomponents/src/lib/enum/language-code.enum.ts","../../../projects/sharedcomponents/src/lib/utils/string-utils.ts","../../../projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts","../../../projects/sharedcomponents/src/lib/service/dictionary.service.ts","../../../projects/sharedcomponents/src/lib/service/options.service.ts","../../../projects/sharedcomponents/src/lib/service/shared-connector.service.ts","../../../projects/sharedcomponents/src/lib/service/shared.service.ts","../../../projects/sharedcomponents/src/lib/service/stock.service.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts","../../../projects/sharedcomponents/src/lib/model/icon-svg.ts","../../../projects/sharedcomponents/src/lib/service/icon-cache.service.ts","../../../projects/sharedcomponents/src/lib/enum/icon.enum.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock.module.ts","../../../projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts","../../../projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts","../../../projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts","../../../projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts","../../../projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts","../../../projects/sharedcomponents/src/public-api.ts","../../../projects/sharedcomponents/src/colijnit-sharedcomponents.ts"],"sourcesContent":["import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {PDFDocument} from \"pdf-lib\";\r\nimport * as PDFJS from \"pdfjs-dist/legacy/build/pdf\";\r\nimport pdfjsWorker from \"pdfjs-dist/build/pdf.worker.entry\";\r\nimport {TextItem} from \"pdfjs-dist/types/src/display/api\";\r\n\r\nexport interface TextDimension {\r\n x: number,\r\n y: number,\r\n width: number,\r\n height: number,\r\n page: number\r\n}\r\n\r\n@Component({\r\n selector: \"ione-docsign\",\r\n template: `\r\n <iframe #iframe></iframe>\r\n <ione-signatures *ngIf=\"showSignatures\" @showHideSignature\r\n [showFirstSignature]=\"showSigBuyer\"\r\n [firstSignatureTitle]=\"firstSignatureLabel\"\r\n [showSecondSignature]=\"showSigSeller\"\r\n [secondSignatureTitle]=\"secondSignatureLabel\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (saveFirstSignature)=\"saveFirstSignature($event)\"\r\n (saveSecondSignature)=\"saveSecondSignature($event)\"\r\n ></ione-signatures>\r\n <input type=\"button\" *ngIf=\"(showSigBuyer || showSigSeller) && !showSignatures\" class=\"button button-sign-document\"\r\n [value]=\"signDocumentButtonLabel\"\r\n (click)=\"showSignatures = true\"\r\n />\r\n <input type=\"button\" class=\"button button-cancel\"\r\n [value]=\"cancelButtonLabel\"\r\n (click)=\"cancelClick.emit($event)\"\r\n />\r\n `,\r\n animations: [\r\n trigger(\"showHideSignature\", [\r\n state(\"void\", style({transform: \"translate(-50%, -50%) scale(0)\"})),\r\n state(\"*\", style({transform: \"translate(-50%, -50%) scale(1)\"})),\r\n transition(\"void <=> *\", animate(\"200ms ease-in-out\")),\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DocsignComponent {\r\n @ViewChild(\"iframe\", { read: ElementRef })\r\n public iframe: ElementRef;\r\n\r\n /**\r\n * Load an existing [[PDFDocument]]. The input data can be provided in\r\n * multiple formats:\r\n *\r\n * | Type | Contents |\r\n * | ------------- | ------------------------------------------------------ |\r\n * | `string` | A base64 encoded string (or data URI) containing a PDF |\r\n * | `Uint8Array` | The raw bytes of a PDF |\r\n * | `ArrayBuffer` | The raw bytes of a PDF |\r\n *\r\n * For example:\r\n * ```js\r\n * import { PDFDocument } from 'pdf-lib'\r\n *\r\n * // pdf=string\r\n * const base64 =\r\n * 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +\r\n * 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +\r\n * '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +\r\n * 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +\r\n * 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +\r\n * 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +\r\n * '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +\r\n * 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +\r\n * 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +\r\n * 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +\r\n * 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +\r\n * '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +\r\n * 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +\r\n * 'FydHhyZWYKNTEwCiUlRU9G'\r\n *\r\n * const dataUri = 'data:application/pdf;base64,' + base64\r\n *\r\n * const pdfDoc1 = await PDFDocument.load(base64)\r\n * const pdfDoc2 = await PDFDocument.load(dataUri)\r\n *\r\n * // pdf=Uint8Array\r\n * import fs from 'fs'\r\n * const uint8Array = fs.readFileSync('with_update_sections.pdf')\r\n * const pdfDoc3 = await PDFDocument.load(uint8Array)\r\n *\r\n * // pdf=ArrayBuffer\r\n * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'\r\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\r\n * const pdfDoc4 = await PDFDocument.load(arrayBuffer)\r\n *\r\n * ```\r\n *\r\n * @param pdf The input data containing a PDF document.\r\n * @param options The options to be used when loading the document.\r\n * @returns Resolves with a document loaded from the input.\r\n */\r\n @Input()\r\n public set pdf(value: any) {\r\n if (value) {\r\n this._pdf = value;\r\n this._openPDF();\r\n }\r\n }\r\n\r\n public get pdf(): any {\r\n return this._pdf;\r\n }\r\n\r\n @Input()\r\n public firstSignatureLabel: string;\r\n\r\n @Input()\r\n public firstSignatureField: string;\r\n\r\n @Input()\r\n public secondSignatureLabel: string;\r\n\r\n @Input()\r\n public secondSignatureField: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Input()\r\n public signDocumentButtonLabel: string = 'SIGN_DOCUMENT';\r\n\r\n @Input()\r\n public cancelButtonLabel: string = 'CANCEL';\r\n\r\n @Output()\r\n public pdfSaved: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public cancelClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @HostBinding('class.ione-docsign')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showSignaturePopup: boolean = false;\r\n public showSigBuyer: boolean = false;\r\n public sigBuyerPosition: TextDimension;\r\n public showSigSeller: boolean = false;\r\n public sigSellerPosition: TextDimension;\r\n public showSignatures: boolean = false;\r\n\r\n public pdfDoc: PDFDocument;\r\n\r\n private _pdf: any;\r\n\r\n public saveFirstSignature(sig: string): void {\r\n this._saveSignature(sig, this.sigBuyerPosition);\r\n this.showSigBuyer = false;\r\n this._savePdf();\r\n }\r\n\r\n public saveSecondSignature(sig: string): void {\r\n this._saveSignature(sig, this.sigSellerPosition);\r\n this.showSigSeller = false;\r\n this._savePdf();\r\n }\r\n\r\n private async _openPDF(): Promise<void> {\r\n // first create reader to check signatures\r\n this._checkSignatures();\r\n\r\n this.pdfDoc = await PDFDocument.load(this._pdf, {\r\n updateMetadata: false\r\n });\r\n const pdfDataUri = await this.pdfDoc.saveAsBase64({ dataUri: true });\r\n this.iframe.nativeElement.src = pdfDataUri;\r\n }\r\n\r\n private async _savePdf(): Promise<void> {\r\n if (!this.showSigBuyer && !this.showSigSeller) {\r\n // ready, save the pdf and emit result\r\n const result = await this.pdfDoc.saveAsBase64();\r\n this.pdfSaved.next(result);\r\n }\r\n }\r\n\r\n private async _checkSignatures(): Promise<void> {\r\n let pdfWorkerSrc;\r\n if (window.hasOwnProperty('pdfWorkerSrc') &&\r\n typeof (window as any).pdfWorkerSrc === 'string' &&\r\n (window as any).pdfWorkerSrc) {\r\n pdfWorkerSrc = (window as any).pdfWorkerSrc;\r\n }\r\n else {\r\n pdfWorkerSrc = pdfjsWorker;\r\n }\r\n PDFJS.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\r\n const pdfReader = await PDFJS.getDocument(this._pdf).promise;\r\n const numPages = pdfReader.numPages;\r\n for (let i = 0; i < numPages; i++) {\r\n const page = await pdfReader.getPage(i + 1);\r\n const text = await page.getTextContent();\r\n page.cleanup();\r\n if (this.firstSignatureField) {\r\n this.sigBuyerPosition = this._getPositionSignature(text, this.firstSignatureField);\r\n if (this.sigBuyerPosition.width > 0 && this.sigBuyerPosition.height > 0) {\r\n this.sigBuyerPosition.page = i;\r\n this.showSigBuyer = true;\r\n }\r\n }\r\n if (this.secondSignatureField) {\r\n this.sigSellerPosition = this._getPositionSignature(text, this.secondSignatureField);\r\n if (this.sigSellerPosition.width > 0 && this.sigSellerPosition.height > 0) {\r\n this.sigSellerPosition.page = i;\r\n this.showSigSeller = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _getPositionSignature(textItem: any, signatureField: string): TextDimension {\r\n const sigItem: TextItem = <TextItem>textItem.items.find((i: any) => i.str.toLowerCase() === signatureField.toLowerCase());\r\n if (sigItem) {\r\n textItem.items.slice(textItem.items.indexOf(sigItem), 1);\r\n return {\r\n x: sigItem.transform[4],\r\n y: sigItem.transform[5],\r\n width: sigItem.width,\r\n height: sigItem.height,\r\n page: 0\r\n };\r\n }\r\n return {x: 0, y: 0, width: 0, height: 0, page: 0}\r\n }\r\n\r\n private async _saveSignature(sig: string, dimensions: TextDimension): Promise<void> {\r\n const jpgImage = await this.pdfDoc.embedPng(sig);\r\n const page = await this.pdfDoc.getPage(dimensions.page);\r\n page.drawImage(jpgImage, {\r\n x: ((dimensions.x + (dimensions.width / 2)) - (200 / 2)),\r\n y: ((dimensions.y + (dimensions.height / 2)) - (100 / 2)),\r\n width: 200,\r\n height: 100\r\n });\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport SignaturePad from \"signature_pad\";\r\n\r\n@Component({\r\n selector: \"ione-signature\",\r\n template: `\r\n <div class=\"signature-wrapper\">\r\n <div class=\"signature-header\">\r\n <span *ngIf=\"title\" class=\"title\" [textContent]=\"title\"></span>\r\n <div class=\"button-wrapper\">\r\n <input type=\"button\" (click)=\"handleSave($event)\" [value]=\"saveButtonLabel\"/>\r\n <input type=\"button\" (click)=\"handleClear($event)\" [value]=\"clearButtonLabel\">\r\n </div>\r\n </div>\r\n <div class=\"canvas\">\r\n <canvas #signature></canvas>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SignatureComponent {\r\n @ViewChild(\"signature\", {read: ElementRef}) set content(content: ElementRef) {\r\n if (content) {\r\n this.signatureCanvas = content;\r\n this._initCanvas();\r\n }\r\n }\r\n\r\n @Input()\r\n public title: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Output()\r\n public save: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding(\"class.ione-signature\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public signature: SignaturePad;\r\n public signatureCanvas: ElementRef;\r\n\r\n public handleSave(event: MouseEvent): void {\r\n // save canvas as svg\r\n // const sig: string = this.signature.toDataURL(\"image/svg+xml\");\r\n const sig: string = this.signature.toDataURL(\"image/png\");\r\n // emit signature string\r\n this.save.next(sig);\r\n }\r\n\r\n public handleClear(event: MouseEvent): void {\r\n if (this.signature) {\r\n this.signature.clear();\r\n }\r\n }\r\n\r\n private _initCanvas(): void {\r\n if (this.signatureCanvas && this.signatureCanvas.nativeElement) {\r\n this.signature = new SignaturePad(this.signatureCanvas.nativeElement);\r\n setTimeout(() => {\r\n this._resizeSignatureCanvas(this.signature, this.signatureCanvas);\r\n });\r\n }\r\n }\r\n\r\n private _resizeSignatureCanvas(signature: SignaturePad, signatureCanvas: ElementRef): void {\r\n const imageBeforeResize: string = signature.toDataURL();\r\n const ratio: number = Math.max(window.devicePixelRatio || 1, 1);\r\n signatureCanvas.nativeElement.width = signatureCanvas.nativeElement.offsetWidth * ratio;\r\n signatureCanvas.nativeElement.height = signatureCanvas.nativeElement.offsetHeight * ratio;\r\n signatureCanvas.nativeElement.getContext(\"2d\").scale(ratio, ratio);\r\n signature.fromDataURL(imageBeforeResize);\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ione-signatures\",\r\n template: `\r\n <ione-signature *ngIf=\"showFirstSignature\"\r\n [title]=\"firstSignatureTitle\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (save)=\"saveFirstSignature.emit($event)\"></ione-signature>\r\n <ione-signature *ngIf=\"showSecondSignature\"\r\n [title]=\"secondSignatureTitle\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (save)=\"saveSecondSignature.emit($event)\"></ione-signature>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SignaturesComponent {\r\n\r\n @Input()\r\n public showFirstSignature: boolean = false;\r\n\r\n @Input()\r\n public firstSignatureTitle: string;\r\n\r\n @Input()\r\n public showSecondSignature: boolean = false;\r\n\r\n @Input()\r\n public secondSignatureTitle: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Output()\r\n public saveFirstSignature: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public saveSecondSignature: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding(\"class.ione-signatures\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {DocsignComponent} from \"./docsign.component\";\r\nimport {SignatureComponent} from \"./component/signature/signature.component\";\r\nimport {SignaturesComponent} from \"./component/signatures/signatures.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n DocsignComponent,\r\n SignatureComponent,\r\n SignaturesComponent\r\n ],\r\n exports: [\r\n DocsignComponent\r\n ]\r\n})\r\nexport class DocsignModule {\r\n\r\n}\r\n","import {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\nimport {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\n\r\nconst PROP_META_KEY: string = \"complexField\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are other strongly typed businessobjects.\r\n * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods\r\n * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.\r\n *\r\n * Usage:\r\n *\r\n * @ComplexField(Transaction)\r\n * public transaction: Transaction\r\n *\r\n * Also keeps track of a \"complexFieldProps\" metadata on the class-level, as a reflect-metadata workaround to be able to\r\n * retrieve all properties that have the @ComplexField(..) decorator (impossible with current Reflect API).\r\n */\r\nexport function ComplexField(type: any): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n\r\n // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem\r\n // to be immediately processed when a class is first imported\r\n if (!type) {\r\n // eslint-disable-next-line no-console\r\n console.warn(`@ComplexField(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +\r\n `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +\r\n `where both classes and their dependencies are used, e.g. factory, repository or models..`);\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the ComplexFieldDecorator decorator.\r\nexport class ComplexFieldDecorator {\r\n\r\n /**\r\n * Returns whether given property (as a string) on given object is a complex field. A complex field is a field that is decorated\r\n * with the @ComplexField decorator.\r\n */\r\n public static IsComplexField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));\r\n }\r\n\r\n // Returns the VALUE of the @ComplexField(VALUE) property decorator on the given propertyKey on the given modelObject.\r\n public static GetComplexFieldType(target: Object, propertyKey: string): any {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n}\r\n","import {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\nimport {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\n\r\nconst PROP_META_KEY: string = \"complexArray\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are an array of other strongly typed businessobjects.\r\n * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods\r\n * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.\r\n *\r\n * Usage:\r\n *\r\n * @ComplexArray(TransactionLine)\r\n * public transactionLines: TransactionLine[]\r\n */\r\nexport function ComplexArray(type: any): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return;\r\n }\r\n // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem\r\n // to be immediately processed when a class is first imported\r\n if (!type) {\r\n console.warn(`@ComplexArray(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +\r\n `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +\r\n `where both classes and their dependencies are used, e.g. factory, repository or models..`);\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the ComplexArrayDecorator decorator.\r\nexport class ComplexArrayDecorator {\r\n /**\r\n * Returns whether given property (as a string) on given object is a complex array. A complex array is an array field that is decorated\r\n * with the @ComplexArray decorator.\r\n */\r\n public static IsComplexArray(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n\r\n return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));\r\n }\r\n\r\n /**\r\n * Returns the VALUE of the @ComplexArray(VALUE) property decorator on the given propertyKey on the given modelobject.\r\n */\r\n public static GetComplexArrayType(target: Object, propertyKey: string): any {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n\r\n return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n}\r\n","import {GetYesNoDbBooleanValue} from \"@colijnit/articleapi/build/enum/yes-no-db-type.enum\";\r\nimport {GetTrueFalseDbBooleanValue} from \"@colijnit/articleapi/build/enum/true-false-db-type.enum\";\r\nimport {GetOneZeroDbBooleanValue} from \"@colijnit/articleapi/build/enum/one-zero-bool-db-type.enum\";\r\nimport {DbBooleanValueType, GetLogicalBooleanValue} from \"@colijnit/articleapi/build/enum/db-boolean-value-type.enum\";\r\n\r\nconst PROP_META_KEY_JN: string = \"booleanTextJN\";\r\nconst PROP_META_KEY_TF: string = \"booleanTextTF\";\r\nconst PROP_META_KEY_10: string = \"booleanText10\";\r\n\r\n/**\r\n * There are 'J', 'T', 'N', 'F', 0 and 1 'boolean values' in the database. These should be translated to true and false boolean values in\r\n * our client application.\r\n *\r\n * The values 'J' and 'N' seem to be most commonly used. This is the default setting when using this decorator.\r\n * You can pass 'T' or 1 for the other variants as follows:\r\n *\r\n * Usage:\r\n *\r\n * @BooleanText() or @BooleanText(\"J\") (the default, uses YesNoDbType char values)\r\n * public foo: boolean // 'J' and 'N' become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n *\r\n * @BooleanText('T') (uses TrueFalseDbType char values)\r\n * public bar: boolean // 'T' and 'F' become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n *\r\n * @BooleanText(1)\r\n * public baz: boolean // 1 and 0 become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n */\r\nexport function BooleanText(type?: \"J\" | \"T\" | 1): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n // by default, it's a J N boolean text\r\n if (!type || type === \"J\") {\r\n Reflect.defineMetadata(PROP_META_KEY_JN, true, target, propertyKey);\r\n } else if (type === \"T\") {\r\n Reflect.defineMetadata(PROP_META_KEY_TF, true, target, propertyKey);\r\n } else if (type === 1) {\r\n Reflect.defineMetadata(PROP_META_KEY_10, true, target, propertyKey);\r\n }\r\n };\r\n}\r\n\r\n// Utility function holder of the BooleanTextDecorator decorator.\r\nexport class BooleanTextDecorator {\r\n\r\n /**\r\n * Returns whether given property (as a string) on given object is a boolean text field. That is, it's a field that is decorated\r\n * with the @BooleanText decorator.\r\n */\r\n public static IsBooleanTextField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return (\r\n Reflect.getMetadata(PROP_META_KEY_JN, target, propertyKey) === true\r\n ||\r\n Reflect.getMetadata(PROP_META_KEY_TF, target, propertyKey) === true\r\n ||\r\n Reflect.getMetadata(PROP_META_KEY_10, target, propertyKey) === true\r\n );\r\n }\r\n\r\n /**\r\n * Returns the logical true or false value of given character ('J', 'N', 'T' or 'F') or number (0 or 1).\r\n * Returns UNDEFINED if given boolChar was not recognised as a boolean text.\r\n */\r\n public static GetLogicalBooleanValue(dbBoolChar: DbBooleanValueType | string): boolean {\r\n return GetLogicalBooleanValue(dbBoolChar);\r\n }\r\n\r\n /**\r\n * Returns the boolean character / number of given logical bool property on target object. Uses its @BooleanText() annotation to decide\r\n * what character / number to return.\r\n * Used in BusinessObjectSerializerServiceService to convert logical bools to their original boolean character.\r\n * @returns {string|number} The original, reverse-engineered boolean character (or number) of given object property, or undefined.\r\n */\r\n public static GetDbBooleanValue(target: Object, propertyKey: string): DbBooleanValueType {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n\r\n let dbBoolVal: any = undefined;\r\n\r\n const curBoolVal: boolean = target[propertyKey];\r\n\r\n if (BooleanTextDecorator._IsJaNeeProp(target, propertyKey)) {\r\n dbBoolVal = GetYesNoDbBooleanValue(curBoolVal);\r\n } else if (BooleanTextDecorator._IsTrueFalseProp(target, propertyKey)) {\r\n dbBoolVal = GetTrueFalseDbBooleanValue(curBoolVal);\r\n } else if (BooleanTextDecorator._IsZeroOneProp(target, propertyKey)) {\r\n dbBoolVal = GetOneZeroDbBooleanValue(curBoolVal);\r\n }\r\n\r\n return dbBoolVal as any as DbBooleanValueType;\r\n }\r\n\r\n private static _IsJaNeeProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_JN, target, propertyKey);\r\n }\r\n\r\n private static _IsTrueFalseProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_TF, target, propertyKey);\r\n }\r\n\r\n private static _IsZeroOneProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_10, target, propertyKey);\r\n }\r\n\r\n private static _IsProp(prop: string, target: Object, propertyKey: string): boolean {\r\n return !!target && !!propertyKey && typeof target === \"object\" && Reflect.hasMetadata(prop, target, propertyKey);\r\n }\r\n}\r\n","import {DateUtils} from \"@colijnit/articleapi/build/utils/date-utils\";\r\n\r\nconst PROP_META_KEY: string = \"dateField\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are of type Date, but are sent to us as strings.\r\n * Ensures that the BusinessObjectFactory makes proper JavaScript Date objects from incoming strings for @DateField() decorated properties.\r\n *\r\n * Usage:\r\n *\r\n * @DateField()\r\n * public expectedDeliveryDate: Date\r\n */\r\nexport function DateField(): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the @DateField() decorator.\r\nexport class DateFieldFieldDecorator {\r\n\r\n // Returns whether given property (as a string) on given object is decorated with @DateField().\r\n public static IsDateField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n\r\n public static StringAsDate(str: string): Date {\r\n return DateUtils.StringAsDate(str);\r\n }\r\n}\r\n","import {NumberUtils} from \"@colijnit/articleapi/build/utils/number-utils\";\r\n\r\nconst PROP_META_KEY: string = \"stringNumber\";\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Decorator for properties of businessobjects that are sent to us as strings from the database, but which we want to use as a number in the client.\r\n *\r\n * Can be handy for incongruent backend api cases, where id data types are communicated wrongly via strings instead of numbers\r\n * (e.g. on EmployeeFullObject.district, points to a District which has a number id, but in employee it's a string representation of that number...)\r\n *\r\n * Used by business object factory and -serializer.\r\n *\r\n * Usage:\r\n *\r\n * @StringNumber()\r\n * public rights: UserRightType\r\n */\r\nexport function StringNumber(): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the @StringNumber() decorator.\r\nexport class StringNumberDecorator {\r\n\r\n // Returns whether given property (as a string) on given object is decorated with @StringNumber().\r\n public static IsStringNumber(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n\r\n public static StringAsNumber(str: string): number {\r\n return NumberUtils.ParseFloatKeepPrecision(str);\r\n }\r\n\r\n public static NumberAsString(nr: number): string {\r\n return \"\" + nr;\r\n }\r\n}\r\n","// @returns true iff given value equals null or equals undefined\r\nexport function isNill(value: any): boolean {\r\n return value === null || value === undefined;\r\n}","import {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\nimport {NumberUtils} from \"@colijnit/articleapi/build/utils/number-utils\";\r\nimport {isNill} from \"@colijnit/articleapi/build/utils/function/is-nill.function\";\r\nimport {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Returns whether at least one element in given array could be found by given finder function.\r\n *\r\n * @param {T[]} array\r\n * @param {(element: T) => boolean} finder A finder function that takes an element of the array and returns a boolean that represents\r\n * the 'found status' for that element; whether it should have been found or not.\r\n */\r\n public static ContainsAnElementFoundBy<T>(array: T[], finder: (element: T) => boolean): boolean {\r\n if (!array || !finder) {\r\n return false;\r\n }\r\n\r\n return notNill(this.Find<T>(array, finder));\r\n }\r\n\r\n /**\r\n * Cross-browser Array.find() function. Returns the first item in given array for which the foundBy function returns true. Returns\r\n * undefined when none was found.\r\n *\r\n * Example usage:\r\n * const foundItem: BusinessObject = ArrayUtils.Find<BusinessObject>(modelArray, (modelItem: BusinessObject) => <br>\r\n * (return modelItem.getId() === '1')\r\n * * });\r\n *\r\n * @param array The array with items to search in.\r\n * @param foundBy The finder function applied on each items of the array, when that returns true, the item is considered found.\r\n */\r\n public static Find<T>(array: T[], foundBy: (item: T) => boolean): T {\r\n if (!array || !foundBy) {\r\n return undefined;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n const itemCur: T = array[i];\r\n if (foundBy(itemCur) ) {\r\n return itemCur;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n // @returns empty array when nothing found, otherwise array with found items\r\n public static FindAll<T>(array: T[], foundBy: (item: T) => boolean): T[] {\r\n const answer: T[] = [];\r\n if (!array || !foundBy) {\r\n return answer;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n const itemCur: T = array[i];\r\n if (foundBy(itemCur)) {\r\n answer.push(itemCur);\r\n }\r\n }\r\n return answer;\r\n }\r\n\r\n // returns a simple clone of given array, using array.slice(0)\r\n public static CloneArray<T>(array: T[]): T[] {\r\n let answer: T[] = [];\r\n\r\n if (array) {\r\n answer = array.slice(0);\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns a 'semi deep clone' of given array. Its first-level members are object-shallow-cloned (optionally with a strongly typed constructor),\r\n * or just as plain object (see param arrayItemsClass).\r\n * @param array\r\n * @param arrayItemsClass If provided, the cloned array's first-level items will be strongly typed to / constructed as this class. Otherwise\r\n * it'll be a plain object.\r\n * @param deepClone Set to true if array items contain FUNCTIONS that need to be cloned..\r\n * @returns {Array} semi-deep clone of given array\r\n */\r\n public static CloneArrayAndItsItems<T>(array: T[], arrayItemsClass?: any, deepClone: boolean = false): T[] {\r\n const cloneArray: T[] = [];\r\n\r\n if (array) {\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n if (deepClone) {\r\n cloneArray.push(ObjectUtils.GetDeepClone(array[i]));\r\n } else {\r\n cloneArray.push(ObjectUtils.GetShallowClone(array[i], arrayItemsClass));\r\n }\r\n }\r\n } else {\r\n return [];\r\n }\r\n\r\n return cloneArray;\r\n }\r\n\r\n /**\r\n * Removes element at given index from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really\r\n * removes the element using splice().\r\n *\r\n * @param {number} index\r\n * @param {any[]} array in-out\r\n * @returns {boolean} True if and only if the element on given index is succesfully removed from given array.\r\n */\r\n public static RemoveElementAtIndex(index: number, array: any[]): boolean {\r\n if (NumberUtils.IsNaN(index) || index < 0 || !Array.isArray(array) || array.length === 0) {\r\n return false;\r\n }\r\n\r\n if (index in array) {\r\n array.splice(index, 1);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Removes given element from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really removes the\r\n * element using splice(). Also works on associative arrays.\r\n *\r\n * @param {T} element The element to remove.\r\n * @param {T[]} array The array to remove the element from.\r\n * @returns {boolean} True iff given element was truly successfully removed from given array.\r\n */\r\n public static RemoveElement<T>(element: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n const index: number = array.indexOf(element);\r\n return ArrayUtils.RemoveElementAtIndex(index, array);\r\n }\r\n\r\n // Checks if given array is defined, and is an array, and has length > 0, and, optionally checks that the first element is of type given clazz.\r\n public static IsArrayWithElements<T>(arrayToCheck: T[], classItemsMustBeInstanceOf?: any): boolean {\r\n if (isNill(arrayToCheck)) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(arrayToCheck) && arrayToCheck.length > 0) {\r\n if (classItemsMustBeInstanceOf) {\r\n return arrayToCheck[0] instanceof classItemsMustBeInstanceOf;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Removes all elements from given array for which given filter function holds true. Returns true if at least one removed, else false.\r\n public static RemoveElementsByFilter(array: any[], filterFunction: (item: any) => boolean): boolean {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !filterFunction) {\r\n return false;\r\n }\r\n\r\n let atLeastOneRemoved: boolean = false;\r\n\r\n const len: number = array.length;\r\n for (let i: number = len - 1; i >= 0; i--) {\r\n const item: any = array[i];\r\n if (filterFunction.call(this, item) === true) {\r\n array.splice(i, 1);\r\n atLeastOneRemoved = true;\r\n }\r\n }\r\n\r\n return atLeastOneRemoved;\r\n }\r\n\r\n public static MoveElement<T>(element: T, toIndex: number, array: T[]): boolean {\r\n if (!Array.isArray(array) || isNill(toIndex)) {\r\n return false;\r\n }\r\n\r\n const fromIndex: number = array.indexOf(element);\r\n const toIndexCorrected: number = NumberUtils.GetNearestNumberWithinBounds(toIndex, 0, array.length - 1);\r\n if (fromIndex === -1 || array[toIndexCorrected] === element) {\r\n // element did not exist in given array, or already existed on given toIndex\r\n return false;\r\n }\r\n array.splice(toIndexCorrected, 0, array.splice(fromIndex, 1)[0]);\r\n return true;\r\n }\r\n\r\n // PRE: elements exists in given array. POST: given elementToPlace has a lower index than given afterThisElement. Array is in-out manipulated.\r\n public static PlaceElementAfterOther(array: any[], elementToPlace: any, afterThisElement: any): void {\r\n if (array) {\r\n const afterThisElIdx: number = array.indexOf(afterThisElement);\r\n const elToPlaceIdx: number = array.indexOf(elementToPlace);\r\n if (afterThisElIdx >= elToPlaceIdx) {\r\n ArrayUtils.MoveElement(elementToPlace, afterThisElIdx + 1, array);\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * This type represents the concept of a business object ID type. ID's of business objects can be a primary number, a simple string or a\r\n * object for a composite key.\r\n *\r\n * Simply to prevent type declarations of 'number | string | Object' for BO ID data all over the application.\r\n */\r\nimport {MapPropertyDecorator} from \"@colijnit/articleapi/build/factory/decorators/map-property.decorator\";\r\nimport {BooleanTextDecorator} from \"@colijnit/articleapi/build/factory/decorators/boolean.decorator\";\r\nimport {JsonFieldFieldDecorator} from \"@colijnit/articleapi/build/factory/decorators/json.decorator\";\r\nimport {ComplexArrayDecorator} from \"@colijnit/articleapi/build/factory/decorators/complex-array.decorator\";\r\n\r\nexport type BusinessObjectIDType = number | string | Object;\r\n\r\nexport abstract class BusinessObject {\r\n // The ID of the model.\r\n public id: BusinessObjectIDType;\r\n\r\n // Overridable. Returns the ID of the model. Concrete model classes often override this method to provide their specific ID getter.\r\n public getId(): BusinessObjectIDType {\r\n return this.id;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n protected setOwnMappedPropsFromRawData(rawData: any = {}): void {\r\n if (!rawData) {\r\n return;\r\n }\r\n Object.keys(this).forEach((key) => {\r\n // check if property needs to be mapped\r\n if (MapPropertyDecorator.IsMapProperty(this, key)) {\r\n const mapKeys: string[] = MapPropertyDecorator.GetMapProperty(this, key).split(\",\");\r\n const len: number = mapKeys.length;\r\n for (let i: number = 0; i < len; i++) {\r\n // eslint-disable-next-line\r\n const mapKey = mapKeys[i].trim();\r\n const objProp: any = rawData[mapKey];\r\n let decorated: boolean = false;\r\n if (rawData.hasOwnProperty(mapKey)) {\r\n if (BooleanTextDecorator.IsBooleanTextField(this, key)) {\r\n this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);\r\n decorated = true;\r\n }\r\n if (JsonFieldFieldDecorator.IsJsonField(this, key)) {\r\n this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);\r\n decorated = true;\r\n }\r\n if (ComplexArrayDecorator.IsComplexArray(this, key)) {\r\n const arrayClass: any = ComplexArrayDecorator.GetComplexArrayType(this, key);\r\n // eslint-disable-next-line\r\n const origArray = this[key];\r\n // eslint-disable-next-line\r\n const newArray = [];\r\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\r\n for (let j = 0; j < origArray.length; j++) {\r\n // eslint-disable-next-line\r\n const item = new arrayClass(origArray[j]);\r\n newArray.push(item);\r\n }\r\n this[key] = newArray;\r\n } else {\r\n if (!decorated) {\r\n this[key] = objProp;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n } else {\r\n if (rawData.hasOwnProperty(key)) {\r\n const objProp: any = rawData[key];\r\n if (BooleanTextDecorator.IsBooleanTextField(this, key)) {\r\n this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);\r\n } else if (JsonFieldFieldDecorator.IsJsonField(this, key)) {\r\n this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);\r\n } else {\r\n this[key] = objProp;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {ComplexFieldDecorator} from \"./decorators/complex-field.decorator\";\r\nimport {ComplexArrayDecorator} from \"./decorators/complex-array.decorator\";\r\nimport {BooleanTextDecorator} from \"./decorators/boolean.decorator\";\r\nimport {DateFieldFieldDecorator} from \"./decorators/date-field.decorator\";\r\nimport {StringNumberDecorator} from \"./decorators/string-number.decorator\";\r\nimport {isNill} from \"../utils/is-nill.function\";\r\nimport {ArrayUtils} from \"../utils/array-utils\";\r\nimport {BusinessObject} from \"../model/business-object\";\r\n\r\n// Factory service creates businessobjects, using their decorators in the process.\r\nexport class BusinessObjectFactory {\r\n constructor() {\r\n }\r\n\r\n /**\r\n * Creates and returns a new business data object instance of given class, with all given data properties applied to it in a\r\n * complex-aware style. That is, all properties on given class that are decorated with @ComplexField(..) or @ComplexArray(..) decorators\r\n * become strongly typed business objects, with methods that are usable and such.\r\n *\r\n * @param modelClass\r\n * @param {Object} rawData The object with all (possibly raw/flat/not alive) data to be applied to the created model object\r\n */\r\n public makeWithRawBackendData(modelClass: any, rawData: Object): BusinessObject {\r\n if (!modelClass) {\r\n return undefined;\r\n }\r\n if (typeof modelClass !== typeof BusinessObject) {\r\n return undefined;\r\n }\r\n\r\n const model: BusinessObject = new modelClass();\r\n this._copyAllPropertiesDecoratorProcessedFrom(rawData, model);\r\n return model;\r\n }\r\n\r\n // see makeWithRawBackendData, this is a loop-wrapper around that method\r\n public makeBOArrayFromRawBackendDataArray(modelClass: any, arrayOfRawDatas: Object[]): BusinessObject[] {\r\n if (!modelClass) {\r\n return undefined;\r\n }\r\n\r\n const trueClientBos: BusinessObject[] = [];\r\n if (arrayOfRawDatas) {\r\n for (let i: number = 0, len: number = arrayOfRawDatas.length; i < len; i++) {\r\n trueClientBos.push(this.makeWithRawBackendData(modelClass, arrayOfRawDatas[i]));\r\n }\r\n }\r\n return trueClientBos;\r\n }\r\n\r\n public instantiateNewBo(modelClass: any): BusinessObject {\r\n return this.makeWithRawBackendData(modelClass, {});\r\n }\r\n\r\n /**\r\n * Applies all properties of given 'source' object to the given 'destination' businessobject, if destination has that property.\r\n * Works with the @ComplexField(), @ComplexArray, @BooleanText, @CoInject and @DateField annotations of given destination model.\r\n *\r\n * @param sourceData Raw data to copy to destination model\r\n * @param {BusinessObject} destinationModel InOut: The annotated businessobject to apply source properties to\r\n */\r\n private _copyAllPropertiesDecoratorProcessedFrom(sourceData: any, destinationModel: BusinessObject): void {\r\n if (!sourceData || !destinationModel) {\r\n return;\r\n }\r\n\r\n // process all source data into destinationModel\r\n for (const srcPropKey in sourceData) {\r\n if (!sourceData.hasOwnProperty(srcPropKey)) {\r\n continue;\r\n }\r\n\r\n const srcPropVal: any = sourceData[srcPropKey];\r\n\r\n if (ComplexFieldDecorator.IsComplexField(destinationModel, srcPropKey)) {\r\n const classOfField: any = ComplexFieldDecorator.GetComplexFieldType(destinationModel, srcPropKey);\r\n destinationModel[srcPropKey] = this.makeWithRawBackendData(classOfField, srcPropVal);\r\n } else if (ComplexArrayDecorator.IsComplexArray(destinationModel, srcPropKey)) {\r\n const sourceArray: any[] = srcPropVal;\r\n if (!sourceArray) {\r\n continue;\r\n }\r\n const classOfArrayItems: any = ComplexArrayDecorator.GetComplexArrayType(destinationModel, srcPropKey);\r\n const tempArray: any[] = [];\r\n for (let i: number = 0, len: number = sourceArray.length; i < len; i++) {\r\n tempArray.push(this.makeWithRawBackendData(classOfArrayItems, sourceArray[i]));\r\n }\r\n destinationModel[srcPropKey] = tempArray;\r\n } else if (BooleanTextDecorator.IsBooleanTextField(destinationModel, srcPropKey)) {\r\n // logical 'true' and 'false' also allowed as incoming values for @BooleanText() properties: then just copy their value\r\n if (typeof srcPropVal === \"boolean\") {\r\n destinationModel[srcPropKey] = srcPropVal;\r\n // here, it should be a 'J' or 'N' (or 'T' or 'F'): assign the associated boolean value\r\n } else {\r\n destinationModel[srcPropKey] = BooleanTextDecorator.GetLogicalBooleanValue(srcPropVal);\r\n }\r\n } else if (DateFieldFieldDecorator.IsDateField(destinationModel, srcPropKey)) {\r\n destinationModel[srcPropKey] = DateFieldFieldDecorator.StringAsDate(srcPropVal);\r\n } else if (StringNumberDecorator.IsStringNumber(destinationModel, srcPropKey)) {\r\n destinationModel[srcPropKey] = StringNumberDecorator.StringAsNumber(srcPropVal);\r\n }\r\n // non-decorated prop\r\n else {\r\n if (isNill(srcPropVal)) {\r\n destinationModel[srcPropKey] = undefined;\r\n } else if (Array.isArray(srcPropVal)) {\r\n destinationModel[srcPropKey] = ArrayUtils.CloneArray(srcPropVal);\r\n } else if (typeof srcPropVal === \"object\") {\r\n if (srcPropVal instanceof Map) { //just copy the value in case of maps\r\n destinationModel[srcPropKey] = srcPropVal;\r\n } else {\r\n destinationModel[srcPropKey] = Object.assign({}, srcPropVal);\r\n }\r\n } else {\r\n destinationModel[srcPropKey] = srcPropVal;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","export enum LanguageCode {\r\n Dutch = \"nl-NL\",\r\n English = \"en-GB\",\r\n German = \"de-DE\",\r\n French = \"fr-FR\",\r\n}\r\n","// Static utility functions holder related to strings.\r\nexport class StringUtils {\r\n\r\n /**\r\n * Returns a new string where given placeholder in given source string are replaced by given replacement texts.\r\n *\r\n * Example usage:\r\n *\r\n * source = \"ABCDABCD\"\r\n * placeholder = \"BC\"\r\n * replacementTexts = \"Z\", \"Z\" (REST arguments)\r\n * OUTPUT = \"AZDAZD\"\r\n *\r\n * @param {string} source\r\n * @param {string} placeholder\r\n * @param {string} replacementTexts If only one is given, this function replaces all placeholders with that single replacementText.\r\n * If more are given, placeholders without a corresponding replacementText will remain their original placeholder characters.\r\n */\r\n public static ReplaceOccurrencesIn(source: string, placeholder: string, ...replacementTexts: string[]): string {\r\n // parameter guards\r\n if (!(source)) {\r\n return undefined;\r\n }\r\n if (!placeholder || replacementTexts.length === 0) {\r\n return source;\r\n }\r\n let outString: string = source;\r\n // one replacementText means replace for all\r\n if (replacementTexts.length === 1) {\r\n // \"g\" is the g flag to replace globally\r\n outString = outString.replace(placeholder, replacementTexts[0]);\r\n } else {\r\n // replace occurence i by replacementTexts[i], one at a time in loop (there might be a faster way..)\r\n for (let i: number = 0, len: number = replacementTexts.length; i < len; i++) {\r\n outString = outString.replace(placeholder, replacementTexts[i]);\r\n }\r\n }\r\n return outString;\r\n }\r\n\r\n // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.\r\n public static ParseString(arg: any, defaultValue: string = \"\"): string {\r\n if (!StringUtils.IsString(arg)) {\r\n if (arg && typeof arg.toString === \"function\") {\r\n arg = arg.toString();\r\n } else {\r\n arg = defaultValue;\r\n }\r\n }\r\n return arg;\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: string): boolean {\r\n return str && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns given string, escaped for use as string literal in regular expressions.\r\n private static _escapeRegExp(str: string): string {\r\n return str;// .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^$\\|]/g, \"\\\\$&\");\r\n }\r\n\r\n}\r\n","export class Dictionary {\r\n public strings: {} = {\r\n \"nl\": {},\r\n \"de\": {},\r\n \"fr\": {},\r\n \"en\": {},\r\n };\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {LanguageCode} from \"../enum/language-code.enum\";\r\nimport {StringUtils} from \"../utils/string-utils\";\r\nimport {Dictionary} from \"../assets/dictionary/text.properties\";\r\n\r\n// The localization service, providing peers with text translation functionality.\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DictionaryService {\r\n private readonly dictionaryUrl: string = \"js/browser/res/dictionary/\";\r\n\r\n public get language(): string {\r\n return this._language;\r\n }\r\n\r\n public set rootUrl(value: string) {\r\n this._rootUrl = value;\r\n this._dictBasePath = this._rootUrl + \"/\" + this.dictionaryUrl;\r\n }\r\n\r\n // public dictionaryLoaded: Subject<void> = new Subject();\r\n\r\n private _dictBasePath: string;\r\n private _rootUrl: string;\r\n // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();\r\n private _dictionaries: Map<string, { [key: string]: string }> = new Map<string, { [key: string]: string }>();\r\n private _language: string;\r\n\r\n // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.\r\n private readonly _placeholder: string = \"|~\";\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n // Loads the dictionary for given language in memory.\r\n public async setDictionary(language: string): Promise<void> {\r\n this._language = language || LanguageCode.Dutch;\r\n this._loadDictionary();\r\n }\r\n\r\n private _loadDictionary() {\r\n if (!this._dictionaries.has(this._language)) {\r\n const dictionary: Dictionary = new Dictionary();\r\n // eslint-disable-next-line no-magic-numbers\r\n if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {\r\n // eslint-disable-next-line no-magic-numbers\r\n this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the localized text for the given dictionary key.\r\n * @param {string} key\r\n * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val\r\n * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value\r\n * @returns {string} The translated text for given dictionary key\r\n */\r\n public get(key: string, upperCaseFirst: boolean = true, ...replacementTexts: string[]): string {\r\n if (!StringUtils.IsStringWithLength(key)) {\r\n return key || \"\";\r\n }\r\n\r\n if (this.language === undefined) {\r\n this._language = LanguageCode.Dutch;\r\n this._loadDictionary();\r\n }\r\n\r\n let text: string = this._dictionaries.get(this.language)[key];\r\n text = StringUtils.IsStringWithLength(text) ? text : key;\r\n\r\n if (upperCaseFirst) {\r\n text = text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n text = text.charAt(0).toLowerCase() + text.slice(1);\r\n }\r\n\r\n if (replacementTexts.length > 0) {\r\n text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);\r\n }\r\n\r\n return text;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport {DictionaryService} from \"./dictionary.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class OptionsService {\r\n\r\n public optionsInitialized: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n public set options(value: any) {\r\n this._options = value;\r\n }\r\n\r\n public get options(): any {\r\n return this._options;\r\n }\r\n\r\n public optionsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _options: any;\r\n\r\n constructor(private _dictionary: DictionaryService) {\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n this.options = new Object();\r\n if (obj.hasOwnProperty(\"url\")) {\r\n this.options.url = obj[\"url\"];\r\n }\r\n if (obj.hasOwnProperty(\"schema\")) {\r\n this.options.schema = obj[\"schema\"];\r\n }\r\n if (obj.hasOwnProperty(\"version\")) {\r\n this.options.version = obj[\"version\"];\r\n }\r\n if (obj.hasOwnProperty(\"languageCode\")) {\r\n this.options.languageCode = obj[\"languageCode\"];\r\n } else {\r\n this.options.languageCode = \"NL\";\r\n }\r\n if (obj.hasOwnProperty(\"username\")) {\r\n this.options.username = obj[\"username\"];\r\n }\r\n if (obj.hasOwnProperty(\"password\")) {\r\n this.options.password = obj[\"password\"];\r\n }\r\n if (obj.hasOwnProperty(\"session\")) {\r\n this.options.session = obj[\"session\"];\r\n }\r\n if (obj.hasOwnProperty(\"useLoginEncryption\")) {\r\n this.options.useLoginEncryption = obj[\"useLoginEncryption\"];\r\n }\r\n\r\n this.optionsLoaded.next(true);\r\n }\r\n\r\n public async initialize(options: any): Promise<void> {\r\n if (options) {\r\n await this.createSettingsFromObject(options);\r\n await this._dictionary.setDictionary(this.options.languageCode);\r\n this.optionsInitialized.next(true);\r\n }\r\n }\r\n}\r\n","import {Articles} from \"@colijnit/articleapi/build/articles\";\r\nimport {Sharedapi} from \"@colijnit/sharedapi/build/sharedapi\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\nimport {DataServiceResponseData} from \"@colijnit/articleapi/build/model/data-service-response-data\";\r\nimport {DataServiceResponseData as DataServiceResponse} from \"@colijnit/sharedapi/build/model/data-service-response-data\";\r\nimport {BusinessObjectFactory} from \"../factory/business-object-factory\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\nimport {OptionsService} from \"./options.service\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\n\r\nexport class SharedConnectorService {\r\n public connector: Articles;\r\n public sharedConnector: Sharedapi;\r\n\r\n private _boFactory: BusinessObjectFactory = new BusinessObjectFactory();\r\n\r\n\r\n constructor(\r\n private _optionsService: OptionsService,\r\n ) {\r\n }\r\n\r\n public async connect(): Promise<void> {\r\n this.connector = new Articles(this._optionsService.options);\r\n this.sharedConnector = new Sharedapi(this._optionsService.options);\r\n this._optionsService.options.session = this.connector.session && this.sharedConnector.session;\r\n }\r\n\r\n public async getAllPrinters(showAll: boolean = true): Promise<Printer[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.listAllPrinters(showAll).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Printer, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getPrintStockStickers(request: PrintStockStickers): Promise<PrintStockStickers> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getPrintStockStickers(request).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeWithRawBackendData(PrintStockStickers, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n public async getPrintPriceStickers(request: PrintPriceStickers): Promise<PrintPriceStickers> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.printPriceStickers(request).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeWithRawBackendData(PrintPriceStickers, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n // public async getStockStickerPrintLayouts(stockStickersPrintLayouts: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n // return new Promise((resolve: Function, reject: Function) => {\r\n // return this.sharedConnector.getStockStickerPrintLayouts(stockStickersPrintLayouts).then((result: DataServiceResponse) => {\r\n // if (result.validationResult && result.validationResult.success) {\r\n // if (result.resultObject) {\r\n // resolve(this._boFactory.makeWithRawBackendData(stockStickersPrintLayouts, result.resultObject));\r\n // }\r\n // } else {\r\n // reject(result.validationMessagesAsString);\r\n // }\r\n // })\r\n // })\r\n // }\r\n\r\n public async getArticleFullObject(goodId: number): Promise<ArticleExtended> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getArticleFullObject(goodId).then((result: DataServiceResponseData) => {\r\n // if (result.validationResult && result.validationResult.success) {\r\n // if (result.resultObject) {\r\n // resolve(this._boFactory.makeWithRawBackendData(ArticleExtended, result.resultObject));\r\n // }\r\n // } else {\r\n // reject(result.validationMessagesAsString);\r\n // }\r\n });\r\n });\r\n }\r\n\r\n public async getStockHistory(request: GetStockHistoryRequest): Promise<StockHistoryBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getStockHistory(request).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject && result.resultObject.hasOwnProperty(\"stockHistory\")) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockHistoryBo, result.resultObject.stockHistory));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<ArticleStockBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getStockInformation(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleStockBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockManagementWarehouses(): Promise<StockManagementWarehouses[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getStockManagementWarehouses().then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockManagementLocations(warehouseNo: number): Promise<StockLocation[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getStockManagementLocations(warehouseNo).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockLocation, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getArticleDetails(data: ArticleStockManagement): Promise<ArticleDetailsBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getArticleDetails(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleDetailsBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async updateArticleDetails(data: ArticleDetailsBo): Promise<boolean> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.updateArticleDetails(data).then(async (result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n await this.commit();\r\n resolve(true);\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n public async lockArticleDetails(data: ArticleStockManagement): Promise<boolean> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.lockArticleDetails(data).then(async (result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n await this.commit();\r\n resolve(true);\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n public async getStockStatus(): Promise<StockStatus[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getStockState().then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStatus, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getStockStickerPrintLayouts(data).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getArticleTransaction(data: ArticleTransaction): Promise<ArticleTransactionBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.connector.getArticleTransaction(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleTransactionBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public commit(): Promise<DataServiceResponseData> {\r\n return this.connector.commit();\r\n }\r\n\r\n}\r\n","import {SharedConnectorService} from \"./shared-connector.service\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {OptionsService} from \"./options.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\n\r\nexport class SharedService {\r\n\r\n constructor(\r\n protected options: OptionsService,\r\n protected connector: SharedConnectorService,\r\n ) {\r\n }\r\n\r\n public async init(options: any): Promise<void> {\r\n await this.options.initialize(options);\r\n this.connector.connect();\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\nimport {DataServiceResponseData} from \"@colijnit/articleapi/build/model/data-service-response-data\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\nimport {SharedService} from \"./shared.service\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class StockService extends SharedService {\r\n\r\n public stockStickers: PrintStockStickers;\r\n public printSticker: PrintStockStickers = new PrintStockStickers();\r\n public printPriceSticker: PrintPriceStickers = new PrintPriceStickers();\r\n\r\n public async getPrintStockStickers(data: PrintStockStickers): Promise<void> {\r\n await this.connector.getPrintStockStickers(data);\r\n }\r\n\r\n public async getPrintPriceStickers(data: PrintPriceStickers): Promise<void> {\r\n await this.connector.getPrintPriceStickers(data);\r\n }\r\n\r\n public async getAllPrinters(showAll: boolean = true): Promise<Printer[]> {\r\n return await this.connector.getAllPrinters(showAll);\r\n }\r\n\r\n public async getStockHistory(data: GetStockHistoryRequest): Promise<StockHistoryBo[]> {\r\n return await this.connector.getStockHistory(data);\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<ArticleStockBo[]> {\r\n return await this.connector.getStockInformation(data);\r\n }\r\n\r\n // public async getStockStickerPrintLayouts(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n // return await this._connector.getStockStickerPrintLayouts(data);\r\n // }\r\n\r\n public async getArticleDetails(data: ArticleStockManagement): Promise<ArticleDetailsBo[]> {\r\n return await this.connector.getArticleDetails(data);\r\n }\r\n\r\n public async updateArticleDetails(data: ArticleDetailsBo): Promise<boolean> {\r\n return await this.connector.updateArticleDetails(data);\r\n }\r\n\r\n public async getStockState(): Promise<StockStatus[]> {\r\n return await this.connector.getStockStatus();\r\n }\r\n\r\n public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n return await this.connector.getStockStickerTemplates(data);\r\n }\r\n\r\n public async getStockManagementWarehouses(): Promise<StockManagementWarehouses[]> {\r\n return await this.connector.getStockManagementWarehouses();\r\n }\r\n\r\n public async getStockManagementLocations(warehouseNo: number): Promise<StockLocation[]> {\r\n return await this.connector.getStockManagementLocations(warehouseNo);\r\n }\r\n\r\n public async getArticleTransaction(data: ArticleTransaction): Promise<ArticleTransactionBo[]> {\r\n return await this.connector.getArticleTransaction(data);\r\n }\r\n\r\n public async lockArticleDetails(data: ArticleStockManagement): Promise<boolean> {\r\n return await this.connector.lockArticleDetails(data);\r\n }\r\n\r\n public commit(): Promise<DataServiceResponseData> {\r\n return this.connector.commit();\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {OptionsService} from \"../../service/options.service\";\r\n\r\n@Component({\r\n selector: \"co-stock\",\r\n template: `\r\n <div class=\"stock-info-container\">\r\n <co-stock-information [article]=\"articleExtended\"\r\n [articleStock]=\"\"\r\n [allAvailableStockInformation]=\"allAvailableStock\"\r\n [allTechnicalStockInformation]=\"allTechnicalStock\"\r\n >\r\n </co-stock-information>\r\n <hr>\r\n <co-stock-information-grid *ngIf=\"showStockInformationGrid\"\r\n [stockLocationData]=\"stockLocationInformation\"\r\n [articleStockInformation]=\"stockInformation\"\r\n (transferIconClicked)=\"handleStockTransferClick($event)\"\r\n (historyClicked)=\"getStockHistory()\"\r\n [stockHistoryInformation]=\"stockHistory\"\r\n >\r\n </co-stock-information-grid>\r\n <co-stock-location *ngIf=\"showStockLocation\"\r\n (backToStockLines)=\"backToStockLinesClicked()\">\r\n\r\n </co-stock-location>\r\n <co-stock-transfer *ngIf=\"showStockTransfer\"\r\n (handleCancelClicked)=\"backToStock()\"\r\n [article]=\"stockTransferArticle\"\r\n [articleToTransfer]=\"stockTransferArticleDetails\"\r\n [stockSticker]=\"stockService.stockStickers\"\r\n (handleStickerClicked)=\"handleStickerClicked.emit($event)\"\r\n [articleWarehouse]=\"articleWarehouse\"\r\n [allWarehouses]=\"allWarehouses\"\r\n >\r\n </co-stock-transfer>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockComponent {\r\n\r\n @ViewChild(StockComponent)\r\n public stock: StockComponent;\r\n\r\n @Output()\r\n public handleStickerClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input()\r\n public set options(value: any) {\r\n if (value) {\r\n if (typeof value === \"string\") {\r\n this._options = JSON.parse(value);\r\n } else {\r\n this._options = value;\r\n }\r\n this._publicOptions = true;\r\n this._optionsService.initialize(this._options).then();\r\n }\r\n }\r\n\r\n @Input()\r\n public set article(article) {\r\n this.articleExtended = article;\r\n this.getStockInformation(article);\r\n };\r\n\r\n @Input()\r\n public articleWarehouse: any[];\r\n\r\n @Input()\r\n public allWarehouses: any[];\r\n\r\n @HostBinding(\"class.co-stock\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showStockInformationGrid: boolean = true;\r\n public showStockLocation: boolean = false;\r\n public showStockTransfer: boolean = false;\r\n public stockInformation: ArticleStockBo[];\r\n public stockLocationInformation: ArticleStockBo[];\r\n public stockTransferArticle: ArticleStockBo;\r\n public stockTransferArticleDetails: ArticleDetailsBo;\r\n public articleExtended: ArticleExtended;\r\n public stockHistory: StockHistoryBo[];\r\n public allAvailableStock: number = 0;\r\n public allTechnicalStock: number = 0;\r\n private _publicOptions: boolean = true;\r\n private _options: any;\r\n\r\n constructor(\r\n public stockService: StockService,\r\n private _optionsService: OptionsService,\r\n ) {\r\n }\r\n\r\n public backToStockLinesClicked(): void {\r\n this.showStockLocation = false;\r\n this.showStockInformationGrid = true;\r\n }\r\n\r\n public handleStockTransferClick(event): void {\r\n this.stockTransferArticleDetails = event;\r\n this.showStockTransfer = !this.showStockTransfer;\r\n this.showStockInformationGrid = !this.showStockInformationGrid;\r\n this.stockService.stockStickers = new PrintStockStickers();\r\n }\r\n\r\n public backToStock(): void {\r\n this.showStockTransfer = !this.showStockTransfer;\r\n this.showStockInformationGrid = !this.showStockInformationGrid;\r\n }\r\n\r\n public async getStockHistory(): Promise<void> {\r\n const stockHistoryInformation: GetStockHistoryRequest = new GetStockHistoryRequest();\r\n stockHistoryInformation.type = \"B\";\r\n stockHistoryInformation.goodId = this.articleExtended.goodId.toString();\r\n this.stockHistory = await this.stockService.getStockHistory(stockHistoryInformation);\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<void> {\r\n const articleData: ArticleStock = new ArticleStock();\r\n articleData.goodId = data.goodId.toString();\r\n articleData.viewKind = \"M\";\r\n this.stockInformation = await this.stockService.getStockInformation(articleData);\r\n this.stockInformation.forEach((articleStock) => this.allAvailableStock += articleStock.availableStock);\r\n this.stockInformation.forEach((articleStock) => this.allTechnicalStock += articleStock.technicalStock);\r\n\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-information\",\r\n template: `\r\n <div class=\"stock-info\" *ngIf=\"article\">\r\n <div class=\"stock-info-row\" >\r\n <div class=\"stock-info-row-image\">\r\n <div class=\"stock-image\">\r\n <co-image class=\"stock-image\" [source]=\"article.imageData\"></co-image>\r\n </div>\r\n </div>\r\n <div class=\"stock-good-info\">\r\n <div>\r\n <span [textContent]=\"article.description\"></span>\r\n </div>\r\n <div>\r\n <span [textContent]=\"article.articleNumber\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'STOCK_STATUS'\"></label>\r\n <span [textContent]=\"article.stockStatus\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_IN_STOCK'\"></label>\r\n <span [textContent]=\"allTechnicalStockInformation\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_AVAILABLE'\"></label>\r\n <span [textContent]=\"allAvailableStockInformation\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_LATER_AVAILABLE'\"></label>\r\n <span [textContent]=\"\"></span>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockInformationComponent {\r\n\r\n public image: string;\r\n\r\n @Input()\r\n public article: ArticleExtended;\r\n\r\n @Input()\r\n public articleStock: ArticleStockBo;\r\n\r\n @Input()\r\n public allAvailableStockInformation: number;\r\n\r\n @Input()\r\n public allTechnicalStockInformation: number;\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\r\n\r\nexport const IconSvg: {[iconName: string]: string} = {\r\n \"angle_left_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path fill=\\\"#183153\\\" d=\\\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\\\"/></svg>\",\r\n \"angle_right_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path fill=\\\"#183153\\\" d=\\\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\\\"/></svg>\",\r\n \"arrow_fat_right\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"37.5 25 25.2 12.7 25.2 20.35 12.5 20.35 12.5 29.66 25.2 29.66 25.2 37.3 37.5 25\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\"><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\r\n \"bring_forward_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path fill=\\\"#183153\\\" d=\\\"M224 464H448C456.8 464 464 456.8 464 448V224C464 215.2 456.8 208 448 208H384V160H448C483.3 160 512 188.7 512 224V448C512 483.3 483.3 512 448 512H224C188.7 512 160 483.3 160 448V384H208V448C208 456.8 215.2 464 224 464zM64 352C28.65 352 0 323.3 0 288V64C0 28.65 28.65 0 64 0H288C323.3 0 352 28.65 352 64V288C352 323.3 323.3 352 288 352H64z\\\"/></svg>\",\r\n \"delete_left_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M432.1 208.1L385.9 256L432.1 303C442.3 312.4 442.3 327.6 432.1 336.1C423.6 346.3 408.4 346.3 399 336.1L352 289.9L304.1 336.1C295.6 346.3 280.4 346.3 271 336.1C261.7 327.6 261.7 312.4 271 303L318.1 256L271 208.1C261.7 199.6 261.7 184.4 271 175C280.4 165.7 295.6 165.7 304.1 175L352 222.1L399 175C408.4 165.7 423.6 165.7 432.1 175C442.3 184.4 442.3 199.6 432.1 208.1V208.1zM512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H205.3C188.3 448 172 441.3 160 429.3L9.372 278.6C3.371 272.6 0 264.5 0 256C0 247.5 3.372 239.4 9.372 233.4L160 82.75C172 70.74 188.3 64 205.3 64L512 64zM528 128C528 119.2 520.8 112 512 112H205.3C201 112 196.9 113.7 193.9 116.7L54.63 256L193.9 395.3C196.9 398.3 201 400 205.3 400H512C520.8 400 528 392.8 528 384V128z\\\"/></svg>\",\r\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15.35\\\" y=\\\"16.56\\\" width=\\\"15.14\\\" height=\\\"10.94\\\" transform=\\\"translate(-1.83 2.08) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"7.96\\\" y=\\\"17.63\\\" width=\\\"5\\\" height=\\\"1\\\" transform=\\\"translate(-1.54 0.98) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.02\\\" y=\\\"29.71\\\" width=\\\"3\\\" height=\\\"1\\\" transform=\\\"translate(-2.59 1.21) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.48\\\" y=\\\"23.53\\\" width=\\\"4\\\" height=\\\"1\\\" transform=\\\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"pdf\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.42,40.17H13.88c-2.16,0-2.72-.56-2.72-2.72V12.88c0-2.15.56-2.71,2.72-2.71h11.6l8.66,8.88v3.43H32.8V19.6l-7.88-8.09h-11c-1.38,0-1.38,0-1.38,1.37V37.45c0,1.37,0,1.37,1.38,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.83,26.63v4.24h1a3.57,3.57,0,0,0,.78-.06,1.22,1.22,0,0,0,.52-.26,1.44,1.44,0,0,0,.34-.62,4.13,4.13,0,0,0,.13-1.18,3.79,3.79,0,0,0-.13-1.14,1.51,1.51,0,0,0-.37-.62,1.14,1.14,0,0,0-.6-.3,5.93,5.93,0,0,0-1.06-.06Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.86,26.63v1.82h.71a3.57,3.57,0,0,0,1-.1A.88.88,0,0,0,24,28a.84.84,0,0,0,.14-.5.8.8,0,0,0-.2-.57.88.88,0,0,0-.52-.29,6.36,6.36,0,0,0-.93,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.14,24.27v9h19.7v-9Zm6.12,4.24a1.68,1.68,0,0,1-.54.63,1.9,1.9,0,0,1-.67.3,6.57,6.57,0,0,1-1.34.1h-.85V32H20.57V25.54h2.07a7.75,7.75,0,0,1,1.54.1,1.73,1.73,0,0,1,.93.63,2,2,0,0,1,.37,1.25A2,2,0,0,1,25.26,28.51Zm6.45,1.66A2.91,2.91,0,0,1,31,31.31a2.28,2.28,0,0,1-.91.51A4,4,0,0,1,29,32H26.54V25.54H28.9a4.21,4.21,0,0,1,1.22.13,2.08,2.08,0,0,1,1,.59,2.79,2.79,0,0,1,.61,1,4.76,4.76,0,0,1,.21,1.52A4.19,4.19,0,0,1,31.71,30.17Zm5.7-3.54h-3.1v1.52H37v1.08H34.31V32H33V25.54h4.39Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"print\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,16.5H12a2,2,0,0,0-2,2v9a2,2,0,0,0,2,2h2v-5H36v5h2a2,2,0,0,0,2-2v-9A2,2,0,0,0,38,16.5ZM37,21a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,37,21Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35,11.5v5H15v-5H35m1-1H14v7H36v-7Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35,25.5v13H15v-13H35m1-1H14v15H36v-15Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"28.3\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"31.5\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"34.7\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"signature_field\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M20.1,25.42a1.1,1.1,0,1,1,1.27,1.45l-3.3,9.07A63.13,63.13,0,0,1,28,28.3l1.26-12-8.26-3-6.77,10A62.4,62.4,0,0,1,17,35.54l3.3-9.07A1.12,1.12,0,0,1,20.1,25.42Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.62\\\" y=\\\"11.43\\\" width=\\\"8.79\\\" height=\\\"2.34\\\" transform=\\\"translate(5.88 -8.14) rotate(20)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.11,37.48c1.44,2.65,4.58,2.94,7.23,2.1,1.41-.44,2.2-1.49,3.44-2.06,2.42-1.1,3.13,1.2,5.36,1.37.42,0,2-.65,1.54-.68-2.55-.19-2.93-3.13-5.51-2.65a4.9,4.9,0,0,0-1.64.71c-.77.49-1.31,1.62-2.07,2l-4.61.56A3.38,3.38,0,0,1,20,37c-.22-.41-2,.28-1.85.5Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"xml\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.14,24.27v9h19.7v-9Zm5.36,7.41-1.3-2-1.3,2H20.48l2-3.06-1.81-2.8h1.38l1.18,1.88,1.15-1.88h1.37l-1.83,2.85,2,3Zm7.67,0h-1.1V27.07l-1.16,4.61H28.77l-1.16-4.61v4.61H26.52V25.82h1.76l1.07,4,1-4h1.77Zm5.33,0H33.38V25.87h1.18v4.82H37.5Z\\\" fill=\\\"#484f60\\\"/></svg>\"\r\n};","import {Injectable} from \"@angular/core\";\r\nimport {DomSanitizer, SafeHtml} from \"@angular/platform-browser\";\r\nimport {Icon} from \"../enum/icon.enum\";\r\nimport {IconSvg} from \"../model/icon-svg\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer\r\n ) {\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: Icon): SafeHtml {\r\n if (iconName) {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getIconAsBase64(iconName: Icon): SafeHtml {\r\n const icon: string = IconSvg[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);\r\n }\r\n\r\n public getRawIcon(iconName: Icon): string {\r\n if (iconName) {\r\n return IconSvg[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public setIconCache(): void {\r\n for (const key in IconSvg) {\r\n if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== \"function\") {\r\n this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);\r\n }\r\n }\r\n }\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\r\n\r\nexport enum Icon {\r\n AngleLeftSolid = \"angle_left_solid\",\r\n AngleRightSolid = \"angle_right_solid\",\r\n ArrowFatRight = \"arrow_fat_right\",\r\n ArrowPointRight = \"arrow_point_right\",\r\n BringForwardRegular = \"bring_forward_regular\",\r\n DeleteLeftRegular = \"delete_left_regular\",\r\n DeliveryTruck = \"delivery_truck\",\r\n Email = \"email\",\r\n Pdf = \"pdf\",\r\n Print = \"print\",\r\n SignatureField = \"signature_field\",\r\n Xml = \"xml\"\r\n}","import {Component, Output, ViewChild, ViewEncapsulation, EventEmitter, Input} from \"@angular/core\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {IconCacheService} from \"../../../service/icon-cache.service\";\r\nimport {Icon} from \"../../../enum/icon.enum\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {CoDropDownListFields} from \"../stock-transfer/co-drop-down-list-fields.interface\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-information-grid\",\r\n template: `\r\n <div class=\"tab-link show\" *ngIf=\"hideOrShowTabs\">\r\n <span class=\"tab-link-buttons\"\r\n *ngFor=\"let tab of tabs\"\r\n (click)=\"handleTabClick(tab)\"\r\n [textContent]=\"tab\"\r\n [class.active]=\"tab === activeTab\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"stock-line\">\r\n <div [textContent]=\"activeTabText\"></div>\r\n\r\n </div>\r\n\r\n <div class=\"stock-grid\">\r\n <co-simple-grid *ngIf=\"activeTab === tabs[0] && hideOrShowTabs\"\r\n [data]=\"articleStockInformation\"\r\n class=\"simple-grid\"\r\n [showAdd]=\"true\"\r\n [showToolbar]=\"true\"\r\n (addRow)=\"addNewRow()\"\r\n [inlineEdit]=\"true\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'warehouseNo'\" [order]=\"10\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DESCRIPTION'\" [field]=\"'warehouseName'\" [order]=\"11\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'technicalStock'\" [order]=\"12\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AVAILABLE_STOCK'\" [field]=\"'availableStock'\" [order]=\"13\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'ECONOMICAL_STOCK'\" [field]=\"'economicalStock'\" [order]=\"14\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LOCATION'\" [field]=\"'locationNo'\" [order]=\"15\">\r\n <ng-template #template let-row=\"row\">\r\n <span [textContent]=\"'Bekijken'\" (click)=\"onLocationClick(row)\"></span>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n\r\n <co-simple-grid *ngIf=\"activeTab === tabs[1]\"\r\n [data]=\"inOrderInformation\"\r\n class=\"simple-grid\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'IN_ORDER2'\" [field]=\"'transactionNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'CUSTOMER'\" [field]=\"'user'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DATE'\" [field]=\"'transactionDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amountInOrder'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'wareHouseNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DESCRIPTION'\" [field]=\"'locationNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'amountInStock'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSFER'\" [field]=\"'transfer'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.DeliveryTruck)\" (click)=\"handleStockTransferClick($event)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n\r\n <co-simple-grid *ngIf=\"activeTab === tabs[2]\"\r\n [data]=\"orderInformation\"\r\n class=\"simple-grid\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'PURCHASE_ORDER_NR'\" [field]=\"'transactionNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DATE'\" [field]=\"'transactionDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amountInOrder'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RESERVED'\" [field]=\"'reserved'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'FREE_STOCK'\" [field]=\"'freeStock'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DELIVERY_DATE1'\" [field]=\"'deliveryDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RESERVE'\" [field]=\"'reservation'\"></co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <div class=\"stock-grid\" *ngIf=\"hideOrShowLocationTab\">\r\n <div class=\"stock-location-group\">\r\n <div class=\"stock-location-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"handleBackToStockClick()\"></span>\r\n </div>\r\n <div class=\"stock-location-right-group\">\r\n <co-drop-down-list [(model)]=\"selectedWarehouse\"\r\n [collection]=\"dataWareHouseCode\"\r\n [fields]=\"dataWareHouseFields\"\r\n [placeholder]=\"'WAREHOUSE'\"\r\n (modelChange)=\"onSelectWarehouse($event)\"\r\n [required]=\"true\"\r\n ></co-drop-down-list>\r\n </div>\r\n </div>\r\n\r\n<!-- TODO move to own component stock-location-->\r\n <co-simple-grid [data]=\"articleDetails\"\r\n class=\"simple-grid\"\r\n >\r\n <div class=\"stock-location-group\">\r\n <div class=\"stock-location-left-group\">\r\n <co-button class=\"stock-lines-button\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"handleBackToStockClick()\"></co-button>\r\n </div>\r\n </div>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'warehouseDescription'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'BATCH'\" [field]=\"'batchNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'SERIAL_NO'\" [field]=\"'serialNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'amountInStock'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-input-number-picker (keyup.enter)=\"openDialogClick(row)\" [(model)]=\"row['amountInStock']\">\r\n\r\n </co-input-number-picker>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'ALLOCATED'\" [field]=\"'amountInStockFree'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AVAILABLE_STOCK'\" [field]=\"'perceptibleStorage'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'PHYSICAL_STOCK'\" [field]=\"'amountInStockOriginal'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'VALUTA'\" [field]=\"'currency'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'PURCHASE_PRICE'\" [field]=\"'purchasePrice'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'SUPPLIER_NUMBER'\" [field]=\"'supplierNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSFER'\" [field]=\"'transfer'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.DeliveryTruck)\" (click)=\"handleStockTransferClick(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <co-stock-change-amount *ngIf=\"showChangeStockDetails\"\r\n (closeStockChangeAmount)=\"showChangeStockDetails = false\"\r\n [selectedArticleDetailsData]=\"selectedArticleDetailsData\"\r\n >\r\n </co-stock-change-amount>\r\n\r\n <div class=\"stock-grid\" *ngIf=\"showStockHistory\">\r\n <div class=\"stock-button-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"backToStockInformation()\"></span>\r\n </div>\r\n <co-simple-grid [data]=\"stockHistoryInformation\"\r\n class=\"simple-grid\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'MUTATION_DATE'\" [field]=\"'mutationDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'MUTATION_TIME'\" [field]=\"'mutationTime'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amount'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'wareHouseNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LOCATION'\" [field]=\"'locationNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSACTION_TYPE'\" [field]=\"'transType'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DOCUMENT_NUMBER'\" [field]=\"'docNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LINE'\" [field]=\"'posLineNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK_STATE'\" [field]=\"'stockStateId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK_REMARK'\" [field]=\"'stockStateRemarkId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'VALUTA'\" [field]=\"'currencyCode'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RELATION_ID'\" [field]=\"'relationId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'USER'\" [field]=\"'user'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'MUTATION_TYPE'\" [field]=\"'mutationType'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <div class=\"stock-button-toolbar\">\r\n <div class=\"stock-button-left-group\">\r\n <co-button [label]=\"'HISTORY'\" (click)=\"handleHistoryClick()\"></co-button>\r\n </div>\r\n <div class=\"stock-button-middle-group\">\r\n <div class=\"button-left\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"onOkClick()\"></co-button>\r\n </div>\r\n <div class=\"button-right\">\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"onCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </div>\r\n <ione-send-method-dialog\r\n *ngIf=\"showSendMethodDialog\"\r\n [showDialog]=\"showSendMethodDialog\"\r\n (printButtonClicked)=\"printStockStickers()\"\r\n ></ione-send-method-dialog>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockInformationGridComponent {\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @ViewChild(StockInformationGridComponent)\r\n public stock: StockInformationGridComponent;\r\n\r\n @Input()\r\n public articleStockInformation: ArticleStockBo[];\r\n\r\n @Input()\r\n public stockLocationData: ArticleStockBo[];\r\n\r\n @Input()\r\n public stockHistoryInformation: StockHistoryBo[];\r\n\r\n @Output()\r\n public readonly transferIconClicked: EventEmitter<ArticleStockBo> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly historyClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n public image: string;\r\n public show: boolean = false;\r\n public hideOrShowLocationTab: boolean = false;\r\n public showStockHistory: boolean = false;\r\n public showSendMethodDialog: boolean = false;\r\n\r\n public inOrderInformation: ArticleTransactionBo[];\r\n public orderInformation: ArticleTransactionBo[]\r\n public hideOrShowTabs: boolean = true;\r\n public dataWareHouseCode: StockManagementWarehouses[];\r\n public dataWareHouseFields: CoDropDownListFields = { text: \"warehouseDescription\", value: \"warehouseNo\" };\r\n public selectedWarehouse: any;\r\n public articleStockSearchInfo: ArticleStock = new ArticleStock();\r\n public articleDetails: ArticleDetailsBo[];\r\n public selectedArticleDetailsData: ArticleDetailsBo;\r\n public showChangeStockDetails: boolean = false;\r\n public articleDetailsInformation: ArticleStockManagement = new ArticleStockManagement()\r\n\r\n public tabs: string[] = [\r\n \"STOCK\",\r\n \"IN_ORDER2\",\r\n \"ORDERS1\"\r\n ];\r\n public activeTab: string = this.tabs[0];\r\n\r\n public get activeTabText(): string {\r\n switch (this.activeTab) {\r\n case this.tabs[0]:\r\n return \"Voorraadregels\";\r\n case this.tabs[1]:\r\n return \"Gevonden in order(s)\";\r\n case this.tabs[2]:\r\n return \"Gevonden in bestellingen\";\r\n default:\r\n return \"Voorraadlocatie regels\";\r\n }\r\n }\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService,\r\n private _stockService: StockService,\r\n ) {\r\n }\r\n\r\n public handleTabClick(tabData): void {\r\n this.activeTab = tabData;\r\n if (this.activeTab === \"IN_ORDER2\") {\r\n this.getInOrderData();\r\n } if (this.activeTab === \"ORDERS1\") {\r\n this.getOrderData();\r\n }\r\n }\r\n\r\n public onLocationClick(data: ArticleStockBo): void {\r\n this.articleStockSearchInfo.goodId = data.goodId.toString();\r\n this.articleStockSearchInfo.wareHouseNo = data.warehouseNo.toString();\r\n this.articleStockSearchInfo.viewKind = \"D\";\r\n this.selectedWarehouse = data.warehouseNo;\r\n if (!this.dataWareHouseCode) {\r\n this.getStockManagementWarehouses(data);\r\n }\r\n this.getArticleDetails(data);\r\n this.hideOrShowTabs = false;\r\n this.hideOrShowLocationTab = true;\r\n this._stockService.lockArticleDetails(this.articleDetailsInformation);\r\n }\r\n\r\n public handleHistoryClick(): void {\r\n this.historyClicked.emit()\r\n this.hideOrShowLocationTab = false;\r\n this.showChangeStockDetails = false;\r\n this.hideOrShowTabs = false;\r\n this.showStockHistory = true;\r\n }\r\n\r\n public backToStockInformation(): void {\r\n this.showStockHistory = false;\r\n this.hideOrShowTabs = true;\r\n }\r\n\r\n public handleStockTransferClick(event): void {\r\n this.transferIconClicked.emit(event);\r\n }\r\n\r\n public async handleBackToStockClick(): Promise<void> {\r\n this.activeTab = this.tabs[0];\r\n this.hideOrShowTabs = true;\r\n this.hideOrShowLocationTab = false;\r\n this.articleDetails = undefined;\r\n }\r\n\r\n public openSendMethodDialog(data): void {\r\n this._stockService.printSticker.goodId = data.goodId;\r\n this._stockService.printSticker.warehouse = data.warehouseNo;\r\n this.showSendMethodDialog =! this.showSendMethodDialog;\r\n }\r\n\r\n public printStockStickers(): void {\r\n this._stockService.getPrintStockStickers(this._stockService.printSticker);\r\n }\r\n\r\n public onOkClick(): void {\r\n\r\n }\r\n\r\n public onCancelClick(): void {\r\n\r\n }\r\n\r\n public openDialogClick(data): void {\r\n this.selectedArticleDetailsData = data;\r\n this.showChangeStockDetails = true;\r\n }\r\n\r\n public getArticleDetails(data: any): void {\r\n // const info = new ArticleStockManagement();\r\n this.articleDetailsInformation.goodId = data.goodId;\r\n this.articleDetailsInformation.lineId = data.lineId;\r\n this.articleDetailsInformation.warehouseNumber = data.warehouseNo;\r\n this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {\r\n this.articleDetails = details;\r\n });\r\n }\r\n\r\n public getStockManagementWarehouses(data: ArticleStockBo): void {\r\n this._stockService.getStockManagementWarehouses().then((warehouses) => {\r\n this.dataWareHouseCode = warehouses;\r\n this.selectedWarehouse = data.warehouseNo;\r\n })\r\n }\r\n\r\n public onSelectWarehouse(event): void {\r\n this.articleDetailsInformation.warehouseNumber = event;\r\n if (this.selectedWarehouse || this.selectedWarehouse === 0) {\r\n this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {\r\n this.articleDetails = details;\r\n });\r\n }\r\n }\r\n\r\n public async getInOrderData(): Promise<void> {\r\n const inOrderData: ArticleTransaction = new ArticleTransaction();\r\n inOrderData.type = \"V\";\r\n inOrderData.goodId = this.articleStockInformation[0].goodId.toString();\r\n this.inOrderInformation = await this._stockService.getArticleTransaction(inOrderData);\r\n }\r\n\r\n public async getOrderData(): Promise<void> {\r\n const orderData: ArticleTransaction = new ArticleTransaction();\r\n orderData.type = \"V\";\r\n orderData.goodId = this.articleStockInformation[0].goodId.toString();\r\n this.orderInformation = await this._stockService.getArticleTransaction(orderData);\r\n }\r\n\r\n public addNewRow(): void {\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\n\r\n@Component({\r\n selector: \"co-stock-location\",\r\n template: `\r\n <div class=\"stock-location-wrapper\">\r\n <div class=\"buttons-wrapper\">\r\n <div class=\"stock-button-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"backToStockInformation()\"></span>\r\n </div>\r\n <div class=\"dropdown-wrapper\">\r\n <co-drop-down-list\r\n [collection]=\"allWarehouses\"\r\n [placeholder]=\"'WAREHOUSES'\"\r\n (modelChange)=\"onSelectWarehouse($event)\"\r\n ></co-drop-down-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"stock-grid\">\r\n\r\n </div>\r\n <div class=\"button-wrapper\">\r\n <div class=\"button-left\">\r\n <co-button (click)=\"onOkClick()\"></co-button>\r\n </div>\r\n <div class=\"button-right\">\r\n <co-button (click)=\"onCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockLocationComponent {\r\n\r\n @Input()\r\n public stockLocationInformation: ArticleStock;\r\n\r\n @Output()\r\n public backToStockLines: EventEmitter<any> = new EventEmitter();\r\n\r\n public allWarehouses: any;\r\n\r\n public stockLocationColumns: any[] = [];\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n this.stockLocationColumns.push(\r\n {field: \"location\", headerText: \"WAREHOUSE\", editType: \"none\"},\r\n {field: \"batch\", headerText: \"BATCH\"},\r\n {field: \"serieNo\", headerText: \"SERIAL_NO\"},\r\n {field: \"amountInStock\", headerText: \"STOCK\", textAlign: \"Right\", editType: \"numericEdit\"},\r\n {field: \"allocated\", headerText: \"ALLOCATED\", textAlign: \"Right\"},\r\n {field: \"amountAvailable\", headerText: \"AVAILABLE_STOCK\", textAlign: \"Right\"},\r\n {field: \"PhysicalStock\", headerText: \"PHYSICAL_STOCK\", textAlign: \"Right\"},\r\n {field: \"Valuta\", headerText: \"VALUTA\", textAlign: \"Right\"},\r\n {field: \"PurchasePrice\", headerText: \"PURSCHASE_PRICE\", textAlign: \"Right\"},\r\n {field: \"SupplierNo\", headerText: \"SUPPLIER_NO\", textAlign: \"Right\"},\r\n {field: \"Transfer\", headerText: \"TRANSFER\"},\r\n {field: \"sticker\", headerText: \"STICKER\"},\r\n );\r\n }\r\n\r\n public backToStockInformation(): void {\r\n this.backToStockLines.emit();\r\n }\r\n\r\n public onOkClick(): void {\r\n\r\n }\r\n\r\n public onCancelClick(): void {\r\n\r\n }\r\n\r\n public onSelectWarehouse(event): void {\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {PrintStockStickers} from \"@colijnit/articleapi/build/model/print-stock-stickers\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {CoDropDownListFields} from \"./co-drop-down-list-fields.interface\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-transfer\",\r\n template: `\r\n <div class=\"stock-transfer\">\r\n <div class=\"stock-transfer-columns\">\r\n <div *ngIf=\"articleToTransfer\" class=\"stock-transfer-left-column\">\r\n <co-input-text disabled\r\n [(model)]=\"articleToTransfer.warehouseDescription\"\r\n [textContent]=\"articleToTransfer.warehouseDescription\"\r\n [placeholder]=\"'Standaard magazijn'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"articleToTransfer.locationNo\"\r\n [textContent]=\"articleToTransfer.locationNo\"\r\n [placeholder]=\"'Standaard locatie'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"stockSticker.batch\"\r\n [placeholder]=\"'Batch'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"stockSticker.serial\"\r\n [placeholder]=\"'Serie'\">\r\n </co-input-text>\r\n <co-input-text\r\n [(model)]=\"articleToTransfer.amountTransfer\"\r\n [placeholder]=\"'Aantal'\">\r\n </co-input-text>\r\n </div>\r\n\r\n <div class=\"stock-transfer-right-column\">\r\n <co-drop-down-list [collection]=\"warehouses\"\r\n [fields]=\"allWarehousesDropdownFields\"\r\n (modelChange)=\"handleSelectedWarehouse($event)\"\r\n [(model)]=\"articleToTransfer.targetWarehouse\">\r\n </co-drop-down-list>\r\n <co-drop-down-list [collection]=\"locations\"\r\n [fields]=\"allLocationDropdownFields\"\r\n [(model)]=\"articleToTransfer.targetLocation\"\r\n >\r\n </co-drop-down-list>\r\n <co-drop-down-list [collection]=\"stockState\"\r\n [fields]=\"stockStateDropdownField\"\r\n [placeholder]=\"'Voorraadstatus'\"\r\n [(model)]=\"articleToTransfer.stockStateId\">\r\n </co-drop-down-list>\r\n <co-input-text [placeholder]=\"'Omschrijving'\"\r\n [(model)]=\"articleToTransfer.stockStateRemark\">\r\n </co-input-text>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ok-cancel-buttons\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"handleOkClick(articleToTransfer)\"></co-button>\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"handleCancelClick()\"></co-button>\r\n <co-button [textContent]=\"'Sticker'\" (click)=\"handleStickerClick()\"></co-button>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockTransferComponent implements AfterViewInit {\r\n\r\n @Input()\r\n public stockSticker: PrintStockStickers;\r\n\r\n @Input()\r\n public article: ArticleStockBo;\r\n\r\n @Input()\r\n public articleToTransfer: ArticleDetailsBo;\r\n\r\n @Input()\r\n public articleWarehouse: any[];\r\n\r\n @Input()\r\n public allWarehouses: any[];\r\n\r\n @Output()\r\n public handleCancelClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public handleStickerClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n public allWarehousesDropdownFields: CoDropDownListFields = {text: \"warehouseDescription\", value: \"warehouseNo\"};\r\n public allLocationDropdownFields: CoDropDownListFields = {text: \"locationNo\", value: \"locationNo\"};\r\n\r\n public showSendMethodDialog: boolean = false;\r\n public warehouses: StockManagementWarehouses[];\r\n public stockState: StockStatus[] = [];\r\n public stockStateDropdownField: CoDropDownListFields = {text: \"stateDescription\", value: \"stockStateId\"};\r\n public locations: StockLocation[];\r\n public selectedWarehouse: any;\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getStockManagementWarehouses();\r\n this.getStockState();\r\n }\r\n\r\n public async handleOkClick(data: ArticleDetailsBo): Promise<void> {\r\n data.selected = true;\r\n data.entryDate = new Date;\r\n await this._stockService.updateArticleDetails(data);\r\n }\r\n\r\n public handleCancelClick(): void {\r\n this.handleCancelClicked.emit();\r\n }\r\n\r\n public handleSelectedWarehouse(event): void {\r\n this.selectedWarehouse = event;\r\n this.getStockManagementLocations(this.selectedWarehouse);\r\n }\r\n\r\n public async handleStickerClick(): Promise<void> {\r\n this.handleStickerClicked.emit();\r\n this.showSendMethodDialog = true;\r\n }\r\n\r\n public getStockManagementWarehouses(): void {\r\n this._stockService.getStockManagementWarehouses().then((warehouses) => {\r\n this.warehouses = warehouses;\r\n })\r\n }\r\n\r\n public getStockManagementLocations(data): void {\r\n this._stockService.getStockManagementLocations(data).then((locations) => {\r\n this.locations = locations;\r\n })\r\n }\r\n\r\n public getStockState(): void {\r\n this._stockService.getStockState().then((state: StockStatus[]) => {\r\n this.stockState = state;\r\n });\r\n }\r\n\r\n}\r\n","export enum SendOption {\r\n Email,\r\n Print,\r\n Pdf,\r\n Xml\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input, OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {Icon} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {SendOption} from \"./enums/send-option\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {CoDropDownListFields} from \"../stock/stock-transfer/co-drop-down-list-fields.interface\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {OptionsService} from \"../../service/options.service\";\r\nimport {DictionaryService} from \"../../service/dictionary.service\";\r\n\r\n@Component({\r\n selector: \"ione-send-method-dialog\",\r\n template: `\r\n <div class=\"send-method-dialog-wrapper\">\r\n <co-dialog-wizard id=\"sendOptionsDialog\" *ngIf=\"showDialog\" [showCloseIcon]=\"showExitButton\" (closeClick)=\"closeDialogClick()\">\r\n <ng-container header>\r\n <span [textContent]=\"headerTitle\"></span>\r\n </ng-container>\r\n <div class=\"dialog-content-wrapper\">\r\n <div class=\"main-content-container\" *ngIf=\"!showPrinterSelections\">\r\n <div class=\"send-options-wrapper\">\r\n <div class=\"custom-button-wrapper\"\r\n *ngFor=\"let sendOption of sendOptions\"\r\n [class.selected-option]=\"sendOption.option === activeSendOption\"\r\n (click)=\"activeSendOption = sendOption.option\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(sendOption.iconName)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"email-option-content\" *ngIf=\"activeSendOption === sendOption.Email || activeSendOption === sendOption.Pdf\">\r\n <div class=\"emails-container\" *ngIf=\"activeSendOption === sendOption.Email\">\r\n <co-input-checkbox\r\n *ngFor=\"let email, let index of emails\"\r\n [name]=\"email\"\r\n [(model)]=\"models[index]\"\r\n [label]=\"email\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n </div>\r\n\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"selectedLayout\"\r\n [collection]=\"layouts\"\r\n [forceReadonly]=\"true\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n\r\n <div class=\"signature-button-wrapper\">\r\n <div class=\"custom-button-wrapper signature-button\" (click)=\"handleSignatureStart()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.SignatureField)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"email-option-content\" *ngIf=\"activeSendOption === sendOption.Print\" (click)=\"getPrintTemplates()\">\r\n <div *ngIf=\"showPrintPriceStickers\">\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printPriceSticker.reportId\"\r\n [collection]=\"printTemplates\"\r\n [fields]=\"printTemplatesField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n <div class=\"lov-wrapper\" *ngIf=\"priceListCodeData\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printPriceSticker.priceListCode\"\r\n [collection]=\"priceListCodeData\"\r\n [fields]=\"priceListDataField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showPrintStockStickers\">\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printSticker.reportId\"\r\n [collection]=\"printTemplates\"\r\n [fields]=\"printTemplatesField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"lov-wrapper clickable\" (click)=\"togglePrinterSelection()\">\r\n <div class=\"selected-printer-wrapper\">\r\n <div class=\"printer-option-list-item\">\r\n <co-icon class=\"printer-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\"></co-icon>\r\n <div class=\"printer-details\" *ngIf=\"printerList\">\r\n <span class=\"printer-name\" [textContent]=\"defaultPrinter\"></span>\r\n <span class=\"printer-status\" [textContent]=\"defaultPrinter.acceptingJobs\"></span>\r\n </div>\r\n </div>\r\n <co-icon class=\"select-printer-arrow\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"standard-printer-wrapper\">\r\n <div class=\"standard-printer-link\" (click)=\"showStandardPrinterOptions = !showStandardPrinterOptions\">\r\n <co-icon class=\"arrow-icon\" [iconData]=\"iconCacheService.getIcon(icons.ArrowFatRight)\"></co-icon>\r\n <span class=\"standard-printer-message\" [textContent]=\"'Standaard printer voor lay-out instellen'\"></span>\r\n </div>\r\n\r\n <div class=\"standard-printer-selections\" *ngIf=\"showStandardPrinterOptions\">\r\n <co-input-checkbox\r\n [(model)]=\"models[0]\"\r\n [label]=\"'Per gebruiker instellen'\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n <co-input-checkbox\r\n [(model)]=\"models[1]\"\r\n [label]=\"'Voor alle gebruikers instellen'\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-footer-wrapper\">\r\n <div class=\"input-number-wrapper\">\r\n <co-input-number-picker class=\"number-picker\"\r\n [step]=\"1\" [(model)]=\"stockService.printSticker.amount\" [min]=\"1\"\r\n [ngModelOptions]=\"{debounce: 1}\">\r\n </co-input-number-picker>\r\n </div>\r\n <div class=\"custom-button-wrapper print-button\" (click)=\"handlePrintClicked()\">\r\n <span [textContent]=\"'Print'\"></span>\r\n </div>\r\n <div class=\"custom-button-wrapper signature-button\" (click)=\"handleSignatureStart()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.SignatureField)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"printer-content-container\" @slideInOut *ngIf=\"showPrinterSelections\">\r\n <div class=\"selected-printer-wrapper selection clickable\" *ngFor=\"let printers of printerList\" (click)=\"onPrinterClicked(printers)\">\r\n <div class=\"printer-option-list-item\">\r\n <co-icon class=\"printer-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\"></co-icon>\r\n <div class=\"printer-details\">\r\n <span class=\"printer-name\" [textContent]=\"printers.name\"></span>\r\n <span class=\"printer-status\" [textContent]=\"printers.acceptingJobs\"></span>\r\n </div>\r\n </div>\r\n <co-icon class=\"select-printer-arrow\" *ngIf=\"!showPrinterSelections\"\r\n [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </co-dialog-wizard>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('slideInOut', [\r\n state('*', style({transform: 'translateX(0%)', width: '100%', opacity: '1'})),\r\n state('void', style({transform: 'translateX(150%)', opacity: '0'})),\r\n transition('void => *', animate(250))\r\n ])\r\n ]\r\n})\r\n\r\nexport class SendMethodDialogComponent implements OnDestroy {\r\n public readonly icons: typeof Icon = Icon;\r\n public readonly sendOption: typeof SendOption = SendOption;\r\n\r\n @Input()\r\n public showEmailOption: boolean = true;\r\n\r\n @Input()\r\n public showPrintOption: boolean = true;\r\n\r\n @Input()\r\n public showPdfOption: boolean = true;\r\n\r\n @Input()\r\n public showXmlOption: boolean = true;\r\n\r\n @Input()\r\n public showPrintPriceStickers: boolean = false;\r\n\r\n @Input()\r\n public showPrintStockStickers: boolean = true;\r\n\r\n @Input()\r\n public priceListCodeData: any\r\n\r\n public sendOptions: {option: SendOption, iconName: Icon}[] = [\r\n { option: SendOption.Email,\r\n iconName: this.icons.Email,\r\n },\r\n { option: SendOption.Print,\r\n iconName: this.icons.Print,\r\n },\r\n { option: SendOption.Pdf,\r\n iconName: this.icons.Pdf,\r\n },\r\n { option: SendOption.Xml,\r\n iconName: this.icons.Xml,\r\n }\r\n ]\r\n\r\n public activeSendOption: SendOption = SendOption.Email;\r\n public showStandardPrinterOptions: boolean = false;\r\n public showPrinterSelections: boolean = false;\r\n public showExitButton = true;\r\n public defaultPrinter: Printer;\r\n public printTemplates: StockStickersPrintLayouts[];\r\n public printTemplatesField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public priceListDataField: CoDropDownListFields = {text: \"name\", value: \"priceListCode\"};\r\n public upAndLoaded: boolean = false;\r\n\r\n public emails: any[] = ['lars.vdv@colijn-it.nl', 'david@colijn-it.nl', 'ruben@colijn-it.nl'];\r\n public models: boolean[] = [false, false, true];\r\n\r\n public layouts: any[] = ['Layout 1', 'Layout 2', 'Layout 3'];\r\n public selectedLayout: 'Layout 1';\r\n\r\n @Input()\r\n public set options(value: any) {\r\n if (value) {\r\n if (typeof value === \"string\") {\r\n this._options = JSON.parse(value);\r\n } else {\r\n this._options = value;\r\n }\r\n this._publicOptions = true;\r\n this._optionsService.initialize(this._options).then();\r\n }\r\n }\r\n\r\n public get options(): any {\r\n return this._options;\r\n }\r\n\r\n @Input()\r\n public showDialog: boolean = false;\r\n\r\n @Input()\r\n public headerTitle: string;\r\n\r\n @Input()\r\n public printerList: Printer[];\r\n\r\n @Input()\r\n public set articleData(data: any) {\r\n this.stockService.printSticker.goodId = data.goodId;\r\n this.stockService.printSticker.warehouse = data.warehouseNo;\r\n };\r\n\r\n @Output()\r\n public startSignatureClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printButtonClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding(\"class.ione-send-method-dialog\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n private _subscriptions: Subscription[] = [];\r\n private _publicOptions: boolean = true;\r\n private _options: any;\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService,\r\n public stockService: StockService,\r\n private _optionsService: OptionsService,\r\n private _dictionary: DictionaryService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subscriptions.push(\r\n this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\r\n )\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n public async getPrinters(): Promise<void> {\r\n return this.stockService.getAllPrinters(true).then((list) => {\r\n this.printerList = list;\r\n });\r\n }\r\n\r\n public closeDialogClick(): void {\r\n this.showDialog = false;\r\n }\r\n\r\n public handleSignatureStart(): void {\r\n this.startSignatureClicked.emit();\r\n }\r\n\r\n public handlePrintClicked(): void {\r\n // this.printButtonClicked.emit();\r\n if (this.stockService.printSticker.printerName) {\r\n this.stockService.getPrintStockStickers(this.stockService.printSticker);\r\n }\r\n }\r\n\r\n public togglePrinterSelection(): void {\r\n this.getPrinters();\r\n if (!this.showPrinterSelections) {\r\n this.showPrinterSelections = true;\r\n this.headerTitle = 'Printer selectie';\r\n } else {\r\n this.showPrinterSelections = false;\r\n this.headerTitle = 'Verzendopties';\r\n }\r\n }\r\n\r\n public onPrinterClicked(printer): void {\r\n this.defaultPrinter = printer.name;\r\n this.stockService.printSticker.printerName = printer.name;\r\n this.showPrinterSelections =! this.showPrinterSelections;\r\n }\r\n\r\n public getPrintTemplates(): any {\r\n if (!this.printTemplates) {\r\n const data = new StockStickersPrintLayouts();\r\n this.stockService.getStockStickerTemplates(data).then((templates: StockStickersPrintLayouts[]) => {\r\n this.printTemplates = templates;\r\n });\r\n }\r\n }\r\n\r\n private async _handleSettingsLoaded(loaded: boolean): Promise<void> {\r\n if (loaded) {\r\n await this._initConnection().then();\r\n this.upAndLoaded = true;\r\n }\r\n }\r\n\r\n private async _initConnection(): Promise<void> {\r\n // await this._connector.connect(this._optionsService.options);\r\n\r\n if (this._optionsService.options.url) {\r\n this._dictionary.rootUrl = this._optionsService.options.url.replace(\"/ajaxservice\", \"\");\r\n }\r\n await this._dictionary.setDictionary(this._optionsService.options.languageCode);\r\n setTimeout(() => {\r\n this._changeDetector.detectChanges();\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ButtonModule,\r\n CoDialogPromptModule, CoDialogWizardModule, IconModule,\r\n InputCheckboxModule,\r\n InputComboBoxModule, InputNumberPickerModule\r\n} from \"@colijnit/corecomponents_v12\";\r\nimport {SendMethodDialogComponent} from \"./send-method-dialog.component\";\r\nimport {StockService} from \"../../service/stock.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n SendMethodDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n CoDialogPromptModule,\r\n InputCheckboxModule,\r\n InputComboBoxModule,\r\n IconModule,\r\n InputNumberPickerModule,\r\n CoDialogWizardModule,\r\n ButtonModule\r\n ],\r\n exports: [\r\n SendMethodDialogComponent\r\n ],\r\n providers: [\r\n StockService\r\n ]\r\n})\r\nexport class SendMethodDialogModule { }\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {CoDropDownListFields} from \"./co-drop-down-list-fields.interface\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-change-amount\",\r\n template: `\r\n <div class=\"stock-transfer\">\r\n <co-dialog-wizard [showCloseIcon]=\"true\" (closeClick)=\"closeDialogClick()\">\r\n <ng-container header>\r\n <span [textContent]=\"'STOCK_CHANGE_REASON'\"></span>\r\n </ng-container>\r\n <div class=\"popup-wrapper\">\r\n <co-drop-down-list [collection]=\"stockState\"\r\n [fields]=\"stockStateDropdownField\"\r\n [placeholder]=\"'STOCK_STATE'\"\r\n [(model)]=\"selectedArticleDetailsData.stockStateId\"\r\n ></co-drop-down-list>\r\n\r\n <co-input-textarea [(model)]=\"selectedArticleDetailsData.stockStateRemark\"\r\n\r\n ></co-input-textarea>\r\n <div class=\"ok-cancel-buttons\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"handleOkClick(selectedArticleDetailsData)\"></co-button>\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"handleCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </co-dialog-wizard>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockChangeAmountComponent implements AfterViewInit {\r\n\r\n @Input()\r\n public selectedArticleDetailsData: ArticleDetailsBo;\r\n\r\n @Output()\r\n public readonly closeStockChangeAmount: EventEmitter<any> = new EventEmitter();\r\n\r\n public stockState: StockStatus[] = [];\r\n public stockStateDropdownField: CoDropDownListFields = {text: \"stateDescription\", value: \"stockStateId\"};\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getStockState();\r\n }\r\n\r\n public closeDialogClick(): void {\r\n this.closeStockChangeAmount.emit();\r\n }\r\n\r\n public async handleOkClick(data: ArticleDetailsBo): Promise<void> {\r\n await this._stockService.updateArticleDetails(data);\r\n }\r\n\r\n public handleCancelClick(): void {\r\n this.closeStockChangeAmount.emit();\r\n }\r\n\r\n public getStockState(): void {\r\n this._stockService.getStockState().then((state: StockStatus[]) => {\r\n this.stockState = state;\r\n });\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {StockComponent} from \"./stock.component\";\r\nimport {\r\n ButtonModule, CoDialogWizardModule,\r\n CoGridModule,\r\n DropDownModule, IconModule, ImageModule,\r\n InputComboBoxModule, InputNumberPickerModule,\r\n InputRadioButtonModule, InputTextareaModule, InputTextModule, SimpleGridModule\r\n} from \"@colijnit/corecomponents_v12\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {StockInformationComponent} from \"./stock-information/stock-information.component\";\r\nimport {StockInformationGridComponent} from \"./stock-information-grid/stock-information-grid.component\";\r\nimport {StockLocationComponent} from \"./stock-location/stock-location.component\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {SharedConnectorService} from \"../../service/shared-connector.service\";\r\nimport {StockTransferComponent} from \"./stock-transfer/stock-transfer.component\";\r\nimport {SendMethodDialogModule} from \"../send-method-dialog/send-method-dialog.module\";\r\nimport {StockChangeAmountComponent} from \"./stock-transfer/stock-change-amount.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n InputComboBoxModule,\r\n CoGridModule,\r\n ButtonModule,\r\n CommonModule,\r\n InputRadioButtonModule,\r\n DropDownModule,\r\n SimpleGridModule,\r\n ImageModule,\r\n InputTextModule,\r\n SendMethodDialogModule,\r\n IconModule,\r\n InputNumberPickerModule,\r\n CoDialogWizardModule,\r\n InputTextareaModule\r\n ],\r\n declarations: [\r\n StockComponent,\r\n StockInformationComponent,\r\n StockInformationGridComponent,\r\n StockLocationComponent,\r\n StockTransferComponent,\r\n StockChangeAmountComponent\r\n ],\r\n exports: [\r\n StockComponent\r\n ],\r\n providers: [\r\n StockService,\r\n SharedConnectorService\r\n ]\r\n})\r\nexport class StockModule {}\r\n","export enum KeyboardCode {\r\n Backspace = \"Backspace\",\r\n Digit0 = \"Digit0\",\r\n Digit1 = \"Digit1\",\r\n Digit2 = \"Digit2\",\r\n Digit3 = \"Digit3\",\r\n Digit4 = \"Digit4\",\r\n Digit5 = \"Digit5\",\r\n Digit6 = \"Digit6\",\r\n Digit7 = \"Digit7\",\r\n Digit8 = \"Digit8\",\r\n Digit9 = \"Digit9\",\r\n Enter = \"Enter\",\r\n Escape = \"Escape\",\r\n Minus = \"Minus\",\r\n Numpad0 = \"Numpad0\",\r\n Numpad1 = \"Numpad1\",\r\n Numpad2 = \"Numpad2\",\r\n Numpad3 = \"Numpad3\",\r\n Numpad4 = \"Numpad4\",\r\n Numpad5 = \"Numpad5\",\r\n Numpad6 = \"Numpad6\",\r\n Numpad7 = \"Numpad7\",\r\n Numpad8 = \"Numpad8\",\r\n Numpad9 = \"Numpad9\",\r\n NumpadDecimal = \"NumpadDecimal\",\r\n NumpadEnter = \"NumpadEnter\",\r\n NumpadSubtract = \"NumpadSubtract\",\r\n Period = \"Period\"\r\n}\r\n","import {Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation} from '@angular/core';\r\nimport {Icon} from '../../enum/icon.enum';\r\nimport {IconCacheService} from '../../service/icon-cache.service';\r\nimport {KeyboardCode} from '../../enum/keyboard-code.enum';\r\n\r\n@Component({\r\n selector: 'co-key-pad',\r\n template: `\r\n <div class=\"key-pad-wrapper\">\r\n <div class=\"key-pad-model-wrapper\" *ngIf=\"showValue\">\r\n <div class=\"key-pad-model\" [textContent]=\"internalModel\" [class.negative]=\"isNegative\"></div>\r\n </div>\r\n <div class=\"key-pad-button-wrapper\">\r\n <div class=\"key-pad-button button-7\" [textContent]=\"'7'\" (click)=\"handleButtonClick('7')\"></div>\r\n <div class=\"key-pad-button button-8\" [textContent]=\"'8'\" (click)=\"handleButtonClick('8')\"></div>\r\n <div class=\"key-pad-button button-9\" [textContent]=\"'9'\" (click)=\"handleButtonClick('9')\"></div>\r\n <div class=\"key-pad-button button-bs\" (click)=\"handleBsClick($event)\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.DeleteLeftRegular)\"></co-icon>\r\n </div>\r\n <div class=\"key-pad-button button-4\" [textContent]=\"'4'\" (click)=\"handleButtonClick('4')\"></div>\r\n <div class=\"key-pad-button button-5\" [textContent]=\"'5'\" (click)=\"handleButtonClick('5')\"></div>\r\n <div class=\"key-pad-button button-6\" [textContent]=\"'6'\" (click)=\"handleButtonClick('6')\"></div>\r\n <div class=\"key-pad-button button-minus\" [textContent]=\"'-'\" (click)=\"handleMinusClick($event)\"></div>\r\n <div class=\"key-pad-button button-1\" [textContent]=\"'1'\" (click)=\"handleButtonClick('1')\"></div>\r\n <div class=\"key-pad-button button-2\" [textContent]=\"'2'\" (click)=\"handleButtonClick('2')\"></div>\r\n <div class=\"key-pad-button button-3\" [textContent]=\"'3'\" (click)=\"handleButtonClick('3')\"></div>\r\n <div class=\"key-pad-button button-enter\" (click)=\"handleEnterClick($event)\">\r\n <span [textContent]=\"'enter'\"></span>\r\n </div>\r\n <div class=\"key-pad-button button-0\" [textContent]=\"'0'\" (click)=\"handleButtonClick('0')\"></div>\r\n <div class=\"key-pad-button button-dot\" [textContent]=\"'.'\" (click)=\"handleButtonClick('.')\"></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KeyPadComponent {\r\n public icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public set model(value: number) {\r\n this._model = value;\r\n this._internalModel = this._model + \"\";\r\n }\r\n\r\n public get model(): number {\r\n return this._model;\r\n }\r\n\r\n @Input()\r\n public showValue: boolean = true;\r\n\r\n @Input()\r\n public emitModelChangeOnEnter: boolean = true;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Output()\r\n public internalModelChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public enterClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding('class.co-key-pad')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n public handleKeyDown(event: KeyboardEvent) {\r\n this._keyDown(event);\r\n }\r\n\r\n private readonly _validKeyMap: Map<KeyboardCode | string, string> = new Map<KeyboardCode, string>([\r\n [KeyboardCode.Digit0, \"0\"],\r\n [KeyboardCode.Digit1, \"1\"],\r\n [KeyboardCode.Digit2, \"2\"],\r\n [KeyboardCode.Digit3, \"3\"],\r\n [KeyboardCode.Digit4, \"4\"],\r\n [KeyboardCode.Digit5, \"5\"],\r\n [KeyboardCode.Digit6, \"6\"],\r\n [KeyboardCode.Digit7, \"7\"],\r\n [KeyboardCode.Digit8, \"8\"],\r\n [KeyboardCode.Digit9, \"9\"],\r\n [KeyboardCode.Numpad0, \"0\"],\r\n [KeyboardCode.Numpad1, \"1\"],\r\n [KeyboardCode.Numpad2, \"2\"],\r\n [KeyboardCode.Numpad3, \"3\"],\r\n [KeyboardCode.Numpad4, \"4\"],\r\n [KeyboardCode.Numpad5, \"5\"],\r\n [KeyboardCode.Numpad6, \"6\"],\r\n [KeyboardCode.Numpad7, \"7\"],\r\n [KeyboardCode.Numpad8, \"8\"],\r\n [KeyboardCode.Numpad9, \"9\"],\r\n [KeyboardCode.NumpadDecimal, \".\"],\r\n [KeyboardCode.Period, \".\"]\r\n ])\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n }\r\n\r\n public set internalModel(value: string) {\r\n this._internalModel = value;\r\n this.isNegative = parseFloat(this._internalModel) < 0;\r\n this.internalModelChange.emit(this._internalModel);\r\n }\r\n\r\n public get internalModel(): string {\r\n return this._internalModel;\r\n }\r\n\r\n public isNegative: boolean = false;\r\n\r\n private _model: number = 0;\r\n private _internalModel: string = \"0\";\r\n private _maxCharacters: number = 11;\r\n\r\n public handleMinusClick(event: MouseEvent | KeyboardEvent): void {\r\n const model: number = parseFloat(this.internalModel);\r\n if (model !== 0) {\r\n if (model < 0) {\r\n this.internalModel = Math.abs(model) + \"\";\r\n } else {\r\n this.internalModel = -model + \"\";\r\n }\r\n }\r\n this._emitModelChange();\r\n }\r\n\r\n public handleClearClick(event: MouseEvent | KeyboardEvent): void {\r\n this.internalModel = \"0\";\r\n this._emitModelChange();\r\n }\r\n\r\n public handleBsClick(event: MouseEvent | KeyboardEvent): void {\r\n let wish: string = this.internalModel;\r\n wish = wish.slice(0, wish.length - 1) || \"0\";\r\n if (!isNaN(parseFloat(wish))) {\r\n this.internalModel = parseFloat(wish) + \"\";\r\n }\r\n this._emitModelChange();\r\n }\r\n\r\n public handleButtonClick(chr: string): void {\r\n this._updateModel(chr);\r\n }\r\n\r\n public handleEnterClick(event: MouseEvent | KeyboardEvent): void {\r\n this._emitModelChange(true);\r\n this.enterClick.emit();\r\n }\r\n\r\n private _updateModel(value: string): void {\r\n if (value === undefined || value === null ||\r\n (value === '.' && this.internalModel.indexOf('.') > -1) ||\r\n this.internalModel.length >= this._maxCharacters) {\r\n return;\r\n }\r\n this.internalModel = this.internalModel !== \"0\" ? this.internalModel + value : value;\r\n this._emitModelChange();\r\n }\r\n\r\n private _keyDown(event: KeyboardEvent): void {\r\n if (this._isEnter(event)) {\r\n this.handleEnterClick(event);\r\n } else if (this._isMinus(event)) {\r\n this.handleMinusClick(event);\r\n } else if (this._isEscape(event)) {\r\n this.handleClearClick(event);\r\n } else if (this._isBackspace(event)) {\r\n this.handleBsClick(event);\r\n } else {\r\n this._updateModel(this._validKeyMap.get(event.code));\r\n }\r\n }\r\n\r\n private _isEnter(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Enter || event.code === KeyboardCode.NumpadEnter;\r\n }\r\n\r\n private _isMinus(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Minus || event.code === KeyboardCode.NumpadSubtract;\r\n }\r\n\r\n private _isEscape(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Escape;\r\n }\r\n\r\n private _isBackspace(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Backspace;\r\n }\r\n\r\n private _emitModelChange(enter: boolean = false): void {\r\n if ((enter && this.emitModelChangeOnEnter) || (!enter && !this.emitModelChangeOnEnter)) {\r\n const model: number = parseFloat(this.internalModel);\r\n if (!isNaN(model)) {\r\n if (enter && this.emitModelChangeOnEnter) {\r\n this.model = model;\r\n }\r\n this.modelChange.emit(model);\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {KeyPadComponent} from './key-pad.component';\r\nimport {IconModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n KeyPadComponent\r\n ],\r\n exports: [\r\n KeyPadComponent\r\n ]\r\n})\r\nexport class KeyPadModule {\r\n}\r\n","import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {Icon} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\n\r\n\r\n@Component({\r\n selector: \"layout-switcher\",\r\n template: `\r\n <div class=\"mask-wrapper\" [class.mask-wrapper-active]='showMaskSidebar' @showHideSidebar>\r\n <div class=\"icon-wrapper\" (click)=\"toggleMaskSidebar()\">\r\n <co-icon class=\"icon-mask\" [iconData]=\"iconCacheService.getIcon(icon.BringForwardRegular)\" [@positionIcon]=\"showMaskSidebar\"></co-icon>\r\n\r\n <co-icon class='icon-mask-sidebar-handle' [@positionHandle]='showMaskSidebar' [iconData]=\"showMaskSidebar ? iconCacheService.getIcon(this.icon.AngleLeftSolid) : iconCacheService.getIcon(this.icon.AngleRightSolid)\"></co-icon>\r\n </div>\r\n\r\n <div class=\"mask-content\" *ngIf=\"showMaskSidebar\" @showHideSidebar>\r\n <span *ngFor='let item of this.layoutItems' [class.active]=\"this.activeIndex === this.layoutItems.indexOf(item)\" [textContent]=\"item\" (click)='activeIndex = this.layoutItems.indexOf(item)' ></span>\r\n </div>\r\n </div>\r\n\r\n `,\r\n animations: [\r\n trigger(\"showHideSidebar\", [\r\n state(\"void\", style({\"width\": \"0\"})),\r\n state(\"*\", style({\"width\": \"*\"})),\r\n transition(\"void <=> *\", animate(200))\r\n ]),\r\n trigger(\"positionIcon\", [\r\n state(\"true\", style({\"left\": \"70px\"})),\r\n state(\"false\", style({\"left\": \"10px\"})),\r\n transition(\"true <=> false\", animate(200))\r\n ]),\r\n trigger(\"positionHandle\", [\r\n state(\"true\", style({\"left\": \"15px\"})),\r\n state(\"false\", style({\"left\": \"75px\"})),\r\n transition(\"true <=> false\", animate(200))\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LayoutSwitcherComponent {\r\n public readonly icon: typeof Icon = Icon;\r\n\r\n @HostBinding('class.layout-switcher')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Input()\r\n public layoutItems: string[] = [];\r\n\r\n @Output()\r\n public layoutSwitchEmit:EventEmitter<string> = new EventEmitter<string>();\r\n\r\n public get activeIndex(): number {\r\n return this._activeIndex;\r\n }\r\n\r\n public set activeIndex(index) {\r\n this._activeIndex = index;\r\n this.toggleMaskSidebar();\r\n this.layoutSwitchEmit.emit(this.layoutItems[index]);\r\n }\r\n\r\n public showMaskSidebar: boolean = false;\r\n\r\n private _activeIndex: number = 0;\r\n\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n }\r\n\r\n public toggleMaskSidebar(): void {\r\n this.showMaskSidebar = !this.showMaskSidebar;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {LayoutSwitcherComponent} from \"./layout-switcher.component\";\r\nimport {IconModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n LayoutSwitcherComponent,\r\n ],\r\n exports: [\r\n LayoutSwitcherComponent\r\n ]\r\n})\r\nexport class LayoutSwitcherModule {\r\n\r\n}\r\n","/*\r\n * Public API Surface of sharedcomponents\r\n */\r\n\r\nexport * from './lib/components/docsign/docsign.component';\r\nexport * from './lib/components/docsign/docsign.module';\r\nexport * from './lib/components/stock/stock.component';\r\nexport * from './lib/components/stock/stock.module';\r\nexport * from './lib/components/send-method-dialog/send-method-dialog.component';\r\nexport * from './lib/components/send-method-dialog/send-method-dialog.module';\r\nexport * from './lib/components/key-pad/key-pad.component';\r\nexport * from './lib/components/key-pad/key-pad.module';\r\nexport * from './lib/components/layout-switcher/layout-switcher.component';\r\nexport * from './lib/components/layout-switcher/layout-switcher.module';\r\nexport * from './lib/service/shared.service';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SignatureComponent as ɵa} from './lib/components/docsign/component/signature/signature.component';\nexport {SignaturesComponent as ɵb} from './lib/components/docsign/component/signatures/signatures.component';\nexport {StockInformationGridComponent as ɵi} from './lib/components/stock/stock-information-grid/stock-information-grid.component';\nexport {StockInformationComponent as ɵh} from './lib/components/stock/stock-information/stock-information.component';\nexport {StockLocationComponent as ɵj} from './lib/components/stock/stock-location/stock-location.component';\nexport {StockChangeAmountComponent as ɵl} from './lib/components/stock/stock-transfer/stock-change-amount.component';\nexport {StockTransferComponent as ɵk} from './lib/components/stock/stock-transfer/stock-transfer.component';\nexport {DictionaryService as ɵe} from './lib/service/dictionary.service';\nexport {IconCacheService as ɵg} from './lib/service/icon-cache.service';\nexport {OptionsService as ɵd} from './lib/service/options.service';\nexport {SharedConnectorService as ɵf} from './lib/service/shared-connector.service';\nexport {StockService as ɵc} from './lib/service/stock.service';"],"names":["PROP_META_KEY","isNill","BooleanTextDecorator","ComplexArrayDecorator","ArticleStockBo","ArticleTransactionBo","ArticleStock","ArticleTransaction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colijnit-sharedcomponents.js","sources":["../../../projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts","../../../projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts","../../../projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts","../../../projects/sharedcomponents/src/lib/utils/is-nill.function.ts","../../../projects/sharedcomponents/src/lib/utils/array-utils.ts","../../../projects/sharedcomponents/src/lib/model/business-object.ts","../../../projects/sharedcomponents/src/lib/factory/business-object-factory.ts","../../../projects/sharedcomponents/src/lib/enum/language-code.enum.ts","../../../projects/sharedcomponents/src/lib/utils/string-utils.ts","../../../projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts","../../../projects/sharedcomponents/src/lib/service/dictionary.service.ts","../../../projects/sharedcomponents/src/lib/service/options.service.ts","../../../projects/sharedcomponents/src/lib/service/shared-connector.service.ts","../../../projects/sharedcomponents/src/lib/service/stock.service.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts","../../../projects/sharedcomponents/src/lib/model/icon-svg.ts","../../../projects/sharedcomponents/src/lib/service/icon-cache.service.ts","../../../projects/sharedcomponents/src/lib/enum/icon.enum.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts","../../../projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts","../../../projects/sharedcomponents/src/lib/components/stock/stock.module.ts","../../../projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts","../../../projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts","../../../projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts","../../../projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts","../../../projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts","../../../projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.component.ts","../../../projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.module.ts","../../../projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts","../../../projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts","../../../projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts","../../../projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts","../../../projects/sharedcomponents/src/lib/service/shared.service.ts","../../../projects/sharedcomponents/src/public-api.ts","../../../projects/sharedcomponents/src/colijnit-sharedcomponents.ts"],"sourcesContent":["import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {PDFDocument} from \"pdf-lib\";\r\nimport * as PDFJS from \"pdfjs-dist/legacy/build/pdf\";\r\nimport pdfjsWorker from \"pdfjs-dist/build/pdf.worker.entry\";\r\nimport {TextItem} from \"pdfjs-dist/types/src/display/api\";\r\n\r\nexport interface TextDimension {\r\n x: number,\r\n y: number,\r\n width: number,\r\n height: number,\r\n page: number\r\n}\r\n\r\n@Component({\r\n selector: \"ione-docsign\",\r\n template: `\r\n <iframe #iframe></iframe>\r\n <ione-signatures *ngIf=\"showSignatures\" @showHideSignature\r\n [showFirstSignature]=\"showSigBuyer\"\r\n [firstSignatureTitle]=\"firstSignatureLabel\"\r\n [showSecondSignature]=\"showSigSeller\"\r\n [secondSignatureTitle]=\"secondSignatureLabel\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (saveFirstSignature)=\"saveFirstSignature($event)\"\r\n (saveSecondSignature)=\"saveSecondSignature($event)\"\r\n ></ione-signatures>\r\n <input type=\"button\" *ngIf=\"(showSigBuyer || showSigSeller) && !showSignatures\" class=\"button button-sign-document\"\r\n [value]=\"signDocumentButtonLabel\"\r\n (click)=\"showSignatures = true\"\r\n />\r\n <input type=\"button\" class=\"button button-cancel\"\r\n [value]=\"cancelButtonLabel\"\r\n (click)=\"cancelClick.emit($event)\"\r\n />\r\n `,\r\n animations: [\r\n trigger(\"showHideSignature\", [\r\n state(\"void\", style({transform: \"translate(-50%, -50%) scale(0)\"})),\r\n state(\"*\", style({transform: \"translate(-50%, -50%) scale(1)\"})),\r\n transition(\"void <=> *\", animate(\"200ms ease-in-out\")),\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DocsignComponent {\r\n @ViewChild(\"iframe\", { read: ElementRef })\r\n public iframe: ElementRef;\r\n\r\n /**\r\n * Load an existing [[PDFDocument]]. The input data can be provided in\r\n * multiple formats:\r\n *\r\n * | Type | Contents |\r\n * | ------------- | ------------------------------------------------------ |\r\n * | `string` | A base64 encoded string (or data URI) containing a PDF |\r\n * | `Uint8Array` | The raw bytes of a PDF |\r\n * | `ArrayBuffer` | The raw bytes of a PDF |\r\n *\r\n * For example:\r\n * ```js\r\n * import { PDFDocument } from 'pdf-lib'\r\n *\r\n * // pdf=string\r\n * const base64 =\r\n * 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +\r\n * 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +\r\n * '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +\r\n * 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +\r\n * 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +\r\n * 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +\r\n * '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +\r\n * 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +\r\n * 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +\r\n * 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +\r\n * 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +\r\n * '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +\r\n * 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +\r\n * 'FydHhyZWYKNTEwCiUlRU9G'\r\n *\r\n * const dataUri = 'data:application/pdf;base64,' + base64\r\n *\r\n * const pdfDoc1 = await PDFDocument.load(base64)\r\n * const pdfDoc2 = await PDFDocument.load(dataUri)\r\n *\r\n * // pdf=Uint8Array\r\n * import fs from 'fs'\r\n * const uint8Array = fs.readFileSync('with_update_sections.pdf')\r\n * const pdfDoc3 = await PDFDocument.load(uint8Array)\r\n *\r\n * // pdf=ArrayBuffer\r\n * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'\r\n * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\r\n * const pdfDoc4 = await PDFDocument.load(arrayBuffer)\r\n *\r\n * ```\r\n *\r\n * @param pdf The input data containing a PDF document.\r\n * @param options The options to be used when loading the document.\r\n * @returns Resolves with a document loaded from the input.\r\n */\r\n @Input()\r\n public set pdf(value: any) {\r\n if (value) {\r\n this._pdf = value;\r\n this._openPDF();\r\n }\r\n }\r\n\r\n public get pdf(): any {\r\n return this._pdf;\r\n }\r\n\r\n @Input()\r\n public firstSignatureLabel: string;\r\n\r\n @Input()\r\n public firstSignatureField: string;\r\n\r\n @Input()\r\n public secondSignatureLabel: string;\r\n\r\n @Input()\r\n public secondSignatureField: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Input()\r\n public signDocumentButtonLabel: string = 'SIGN_DOCUMENT';\r\n\r\n @Input()\r\n public cancelButtonLabel: string = 'CANCEL';\r\n\r\n @Output()\r\n public pdfSaved: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public cancelClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @HostBinding('class.ione-docsign')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showSignaturePopup: boolean = false;\r\n public showSigBuyer: boolean = false;\r\n public sigBuyerPosition: TextDimension;\r\n public showSigSeller: boolean = false;\r\n public sigSellerPosition: TextDimension;\r\n public showSignatures: boolean = false;\r\n\r\n public pdfDoc: PDFDocument;\r\n\r\n private _pdf: any;\r\n\r\n public saveFirstSignature(sig: string): void {\r\n this._saveSignature(sig, this.sigBuyerPosition);\r\n this.showSigBuyer = false;\r\n this._savePdf();\r\n }\r\n\r\n public saveSecondSignature(sig: string): void {\r\n this._saveSignature(sig, this.sigSellerPosition);\r\n this.showSigSeller = false;\r\n this._savePdf();\r\n }\r\n\r\n private async _openPDF(): Promise<void> {\r\n // first create reader to check signatures\r\n this._checkSignatures();\r\n\r\n this.pdfDoc = await PDFDocument.load(this._pdf, {\r\n updateMetadata: false\r\n });\r\n const pdfDataUri = await this.pdfDoc.saveAsBase64({ dataUri: true });\r\n this.iframe.nativeElement.src = pdfDataUri;\r\n }\r\n\r\n private async _savePdf(): Promise<void> {\r\n if (!this.showSigBuyer && !this.showSigSeller) {\r\n // ready, save the pdf and emit result\r\n const result = await this.pdfDoc.saveAsBase64();\r\n this.pdfSaved.next(result);\r\n }\r\n }\r\n\r\n private async _checkSignatures(): Promise<void> {\r\n let pdfWorkerSrc;\r\n if (window.hasOwnProperty('pdfWorkerSrc') &&\r\n typeof (window as any).pdfWorkerSrc === 'string' &&\r\n (window as any).pdfWorkerSrc) {\r\n pdfWorkerSrc = (window as any).pdfWorkerSrc;\r\n }\r\n else {\r\n pdfWorkerSrc = pdfjsWorker;\r\n }\r\n PDFJS.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;\r\n const pdfReader = await PDFJS.getDocument(this._pdf).promise;\r\n const numPages = pdfReader.numPages;\r\n for (let i = 0; i < numPages; i++) {\r\n const page = await pdfReader.getPage(i + 1);\r\n const text = await page.getTextContent();\r\n page.cleanup();\r\n if (this.firstSignatureField) {\r\n this.sigBuyerPosition = this._getPositionSignature(text, this.firstSignatureField);\r\n if (this.sigBuyerPosition.width > 0 && this.sigBuyerPosition.height > 0) {\r\n this.sigBuyerPosition.page = i;\r\n this.showSigBuyer = true;\r\n }\r\n }\r\n if (this.secondSignatureField) {\r\n this.sigSellerPosition = this._getPositionSignature(text, this.secondSignatureField);\r\n if (this.sigSellerPosition.width > 0 && this.sigSellerPosition.height > 0) {\r\n this.sigSellerPosition.page = i;\r\n this.showSigSeller = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _getPositionSignature(textItem: any, signatureField: string): TextDimension {\r\n const sigItem: TextItem = <TextItem>textItem.items.find((i: any) => i.str.toLowerCase() === signatureField.toLowerCase());\r\n if (sigItem) {\r\n textItem.items.slice(textItem.items.indexOf(sigItem), 1);\r\n return {\r\n x: sigItem.transform[4],\r\n y: sigItem.transform[5],\r\n width: sigItem.width,\r\n height: sigItem.height,\r\n page: 0\r\n };\r\n }\r\n return {x: 0, y: 0, width: 0, height: 0, page: 0}\r\n }\r\n\r\n private async _saveSignature(sig: string, dimensions: TextDimension): Promise<void> {\r\n const jpgImage = await this.pdfDoc.embedPng(sig);\r\n const page = await this.pdfDoc.getPage(dimensions.page);\r\n page.drawImage(jpgImage, {\r\n x: ((dimensions.x + (dimensions.width / 2)) - (200 / 2)),\r\n y: ((dimensions.y + (dimensions.height / 2)) - (100 / 2)),\r\n width: 200,\r\n height: 100\r\n });\r\n }\r\n}\r\n","import {Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport SignaturePad from \"signature_pad\";\r\n\r\n@Component({\r\n selector: \"ione-signature\",\r\n template: `\r\n <div class=\"signature-wrapper\">\r\n <div class=\"signature-header\">\r\n <span *ngIf=\"title\" class=\"title\" [textContent]=\"title\"></span>\r\n <div class=\"button-wrapper\">\r\n <input type=\"button\" (click)=\"handleSave($event)\" [value]=\"saveButtonLabel\"/>\r\n <input type=\"button\" (click)=\"handleClear($event)\" [value]=\"clearButtonLabel\">\r\n </div>\r\n </div>\r\n <div class=\"canvas\">\r\n <canvas #signature></canvas>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SignatureComponent {\r\n @ViewChild(\"signature\", {read: ElementRef}) set content(content: ElementRef) {\r\n if (content) {\r\n this.signatureCanvas = content;\r\n this._initCanvas();\r\n }\r\n }\r\n\r\n @Input()\r\n public title: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Output()\r\n public save: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding(\"class.ione-signature\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public signature: SignaturePad;\r\n public signatureCanvas: ElementRef;\r\n\r\n public handleSave(event: MouseEvent): void {\r\n // save canvas as svg\r\n // const sig: string = this.signature.toDataURL(\"image/svg+xml\");\r\n const sig: string = this.signature.toDataURL(\"image/png\");\r\n // emit signature string\r\n this.save.next(sig);\r\n }\r\n\r\n public handleClear(event: MouseEvent): void {\r\n if (this.signature) {\r\n this.signature.clear();\r\n }\r\n }\r\n\r\n private _initCanvas(): void {\r\n if (this.signatureCanvas && this.signatureCanvas.nativeElement) {\r\n this.signature = new SignaturePad(this.signatureCanvas.nativeElement);\r\n setTimeout(() => {\r\n this._resizeSignatureCanvas(this.signature, this.signatureCanvas);\r\n });\r\n }\r\n }\r\n\r\n private _resizeSignatureCanvas(signature: SignaturePad, signatureCanvas: ElementRef): void {\r\n const imageBeforeResize: string = signature.toDataURL();\r\n const ratio: number = Math.max(window.devicePixelRatio || 1, 1);\r\n signatureCanvas.nativeElement.width = signatureCanvas.nativeElement.offsetWidth * ratio;\r\n signatureCanvas.nativeElement.height = signatureCanvas.nativeElement.offsetHeight * ratio;\r\n signatureCanvas.nativeElement.getContext(\"2d\").scale(ratio, ratio);\r\n signature.fromDataURL(imageBeforeResize);\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ione-signatures\",\r\n template: `\r\n <ione-signature *ngIf=\"showFirstSignature\"\r\n [title]=\"firstSignatureTitle\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (save)=\"saveFirstSignature.emit($event)\"></ione-signature>\r\n <ione-signature *ngIf=\"showSecondSignature\"\r\n [title]=\"secondSignatureTitle\"\r\n [saveButtonLabel]=\"saveButtonLabel\"\r\n [clearButtonLabel]=\"clearButtonLabel\"\r\n (save)=\"saveSecondSignature.emit($event)\"></ione-signature>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SignaturesComponent {\r\n\r\n @Input()\r\n public showFirstSignature: boolean = false;\r\n\r\n @Input()\r\n public firstSignatureTitle: string;\r\n\r\n @Input()\r\n public showSecondSignature: boolean = false;\r\n\r\n @Input()\r\n public secondSignatureTitle: string;\r\n\r\n @Input()\r\n public saveButtonLabel: string = 'SAVE';\r\n\r\n @Input()\r\n public clearButtonLabel: string = 'CLEAR';\r\n\r\n @Output()\r\n public saveFirstSignature: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public saveSecondSignature: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding(\"class.ione-signatures\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {DocsignComponent} from \"./docsign.component\";\r\nimport {SignatureComponent} from \"./component/signature/signature.component\";\r\nimport {SignaturesComponent} from \"./component/signatures/signatures.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n DocsignComponent,\r\n SignatureComponent,\r\n SignaturesComponent\r\n ],\r\n exports: [\r\n DocsignComponent\r\n ]\r\n})\r\nexport class DocsignModule {\r\n\r\n}\r\n","import {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\nimport {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\n\r\nconst PROP_META_KEY: string = \"complexField\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are other strongly typed businessobjects.\r\n * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods\r\n * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.\r\n *\r\n * Usage:\r\n *\r\n * @ComplexField(Transaction)\r\n * public transaction: Transaction\r\n *\r\n * Also keeps track of a \"complexFieldProps\" metadata on the class-level, as a reflect-metadata workaround to be able to\r\n * retrieve all properties that have the @ComplexField(..) decorator (impossible with current Reflect API).\r\n */\r\nexport function ComplexField(type: any): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n\r\n // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem\r\n // to be immediately processed when a class is first imported\r\n if (!type) {\r\n // eslint-disable-next-line no-console\r\n console.warn(`@ComplexField(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +\r\n `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +\r\n `where both classes and their dependencies are used, e.g. factory, repository or models..`);\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the ComplexFieldDecorator decorator.\r\nexport class ComplexFieldDecorator {\r\n\r\n /**\r\n * Returns whether given property (as a string) on given object is a complex field. A complex field is a field that is decorated\r\n * with the @ComplexField decorator.\r\n */\r\n public static IsComplexField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));\r\n }\r\n\r\n // Returns the VALUE of the @ComplexField(VALUE) property decorator on the given propertyKey on the given modelObject.\r\n public static GetComplexFieldType(target: Object, propertyKey: string): any {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n}\r\n","import {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\nimport {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\n\r\nconst PROP_META_KEY: string = \"complexArray\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are an array of other strongly typed businessobjects.\r\n * Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods\r\n * to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.\r\n *\r\n * Usage:\r\n *\r\n * @ComplexArray(TransactionLine)\r\n * public transactionLines: TransactionLine[]\r\n */\r\nexport function ComplexArray(type: any): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return;\r\n }\r\n // warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem\r\n // to be immediately processed when a class is first imported\r\n if (!type) {\r\n console.warn(`@ComplexArray(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +\r\n `Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +\r\n `where both classes and their dependencies are used, e.g. factory, repository or models..`);\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the ComplexArrayDecorator decorator.\r\nexport class ComplexArrayDecorator {\r\n /**\r\n * Returns whether given property (as a string) on given object is a complex array. A complex array is an array field that is decorated\r\n * with the @ComplexArray decorator.\r\n */\r\n public static IsComplexArray(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n\r\n return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));\r\n }\r\n\r\n /**\r\n * Returns the VALUE of the @ComplexArray(VALUE) property decorator on the given propertyKey on the given modelobject.\r\n */\r\n public static GetComplexArrayType(target: Object, propertyKey: string): any {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n\r\n return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n}\r\n","import {GetYesNoDbBooleanValue} from \"@colijnit/articleapi/build/enum/yes-no-db-type.enum\";\r\nimport {GetTrueFalseDbBooleanValue} from \"@colijnit/articleapi/build/enum/true-false-db-type.enum\";\r\nimport {GetOneZeroDbBooleanValue} from \"@colijnit/articleapi/build/enum/one-zero-bool-db-type.enum\";\r\nimport {DbBooleanValueType, GetLogicalBooleanValue} from \"@colijnit/articleapi/build/enum/db-boolean-value-type.enum\";\r\n\r\nconst PROP_META_KEY_JN: string = \"booleanTextJN\";\r\nconst PROP_META_KEY_TF: string = \"booleanTextTF\";\r\nconst PROP_META_KEY_10: string = \"booleanText10\";\r\n\r\n/**\r\n * There are 'J', 'T', 'N', 'F', 0 and 1 'boolean values' in the database. These should be translated to true and false boolean values in\r\n * our client application.\r\n *\r\n * The values 'J' and 'N' seem to be most commonly used. This is the default setting when using this decorator.\r\n * You can pass 'T' or 1 for the other variants as follows:\r\n *\r\n * Usage:\r\n *\r\n * @BooleanText() or @BooleanText(\"J\") (the default, uses YesNoDbType char values)\r\n * public foo: boolean // 'J' and 'N' become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n *\r\n * @BooleanText('T') (uses TrueFalseDbType char values)\r\n * public bar: boolean // 'T' and 'F' become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n *\r\n * @BooleanText(1)\r\n * public baz: boolean // 1 and 0 become true and false after BusinessObjectFactoryService and -SerializerService processing\r\n */\r\nexport function BooleanText(type?: \"J\" | \"T\" | 1): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n // by default, it's a J N boolean text\r\n if (!type || type === \"J\") {\r\n Reflect.defineMetadata(PROP_META_KEY_JN, true, target, propertyKey);\r\n } else if (type === \"T\") {\r\n Reflect.defineMetadata(PROP_META_KEY_TF, true, target, propertyKey);\r\n } else if (type === 1) {\r\n Reflect.defineMetadata(PROP_META_KEY_10, true, target, propertyKey);\r\n }\r\n };\r\n}\r\n\r\n// Utility function holder of the BooleanTextDecorator decorator.\r\nexport class BooleanTextDecorator {\r\n\r\n /**\r\n * Returns whether given property (as a string) on given object is a boolean text field. That is, it's a field that is decorated\r\n * with the @BooleanText decorator.\r\n */\r\n public static IsBooleanTextField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return (\r\n Reflect.getMetadata(PROP_META_KEY_JN, target, propertyKey) === true\r\n ||\r\n Reflect.getMetadata(PROP_META_KEY_TF, target, propertyKey) === true\r\n ||\r\n Reflect.getMetadata(PROP_META_KEY_10, target, propertyKey) === true\r\n );\r\n }\r\n\r\n /**\r\n * Returns the logical true or false value of given character ('J', 'N', 'T' or 'F') or number (0 or 1).\r\n * Returns UNDEFINED if given boolChar was not recognised as a boolean text.\r\n */\r\n public static GetLogicalBooleanValue(dbBoolChar: DbBooleanValueType | string): boolean {\r\n return GetLogicalBooleanValue(dbBoolChar);\r\n }\r\n\r\n /**\r\n * Returns the boolean character / number of given logical bool property on target object. Uses its @BooleanText() annotation to decide\r\n * what character / number to return.\r\n * Used in BusinessObjectSerializerServiceService to convert logical bools to their original boolean character.\r\n * @returns {string|number} The original, reverse-engineered boolean character (or number) of given object property, or undefined.\r\n */\r\n public static GetDbBooleanValue(target: Object, propertyKey: string): DbBooleanValueType {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return undefined;\r\n }\r\n\r\n let dbBoolVal: any = undefined;\r\n\r\n const curBoolVal: boolean = target[propertyKey];\r\n\r\n if (BooleanTextDecorator._IsJaNeeProp(target, propertyKey)) {\r\n dbBoolVal = GetYesNoDbBooleanValue(curBoolVal);\r\n } else if (BooleanTextDecorator._IsTrueFalseProp(target, propertyKey)) {\r\n dbBoolVal = GetTrueFalseDbBooleanValue(curBoolVal);\r\n } else if (BooleanTextDecorator._IsZeroOneProp(target, propertyKey)) {\r\n dbBoolVal = GetOneZeroDbBooleanValue(curBoolVal);\r\n }\r\n\r\n return dbBoolVal as any as DbBooleanValueType;\r\n }\r\n\r\n private static _IsJaNeeProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_JN, target, propertyKey);\r\n }\r\n\r\n private static _IsTrueFalseProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_TF, target, propertyKey);\r\n }\r\n\r\n private static _IsZeroOneProp(target: Object, propertyKey: string): boolean {\r\n return BooleanTextDecorator._IsProp(PROP_META_KEY_10, target, propertyKey);\r\n }\r\n\r\n private static _IsProp(prop: string, target: Object, propertyKey: string): boolean {\r\n return !!target && !!propertyKey && typeof target === \"object\" && Reflect.hasMetadata(prop, target, propertyKey);\r\n }\r\n}\r\n","import {DateUtils} from \"@colijnit/articleapi/build/utils/date-utils\";\r\n\r\nconst PROP_META_KEY: string = \"dateField\";\r\n\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Property decorator for properties of businessobject classes that are of type Date, but are sent to us as strings.\r\n * Ensures that the BusinessObjectFactory makes proper JavaScript Date objects from incoming strings for @DateField() decorated properties.\r\n *\r\n * Usage:\r\n *\r\n * @DateField()\r\n * public expectedDeliveryDate: Date\r\n */\r\nexport function DateField(): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the @DateField() decorator.\r\nexport class DateFieldFieldDecorator {\r\n\r\n // Returns whether given property (as a string) on given object is decorated with @DateField().\r\n public static IsDateField(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n\r\n public static StringAsDate(str: string): Date {\r\n return DateUtils.StringAsDate(str);\r\n }\r\n}\r\n","import {NumberUtils} from \"@colijnit/articleapi/build/utils/number-utils\";\r\n\r\nconst PROP_META_KEY: string = \"stringNumber\";\r\n/**\r\n * !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.\r\n */\r\n\r\n/**\r\n * Decorator for properties of businessobjects that are sent to us as strings from the database, but which we want to use as a number in the client.\r\n *\r\n * Can be handy for incongruent backend api cases, where id data types are communicated wrongly via strings instead of numbers\r\n * (e.g. on EmployeeFullObject.district, points to a District which has a number id, but in employee it's a string representation of that number...)\r\n *\r\n * Used by business object factory and -serializer.\r\n *\r\n * Usage:\r\n *\r\n * @StringNumber()\r\n * public rights: UserRightType\r\n */\r\nexport function StringNumber(): PropertyDecorator {\r\n return function (target: any, propertyKey: string): void {\r\n if (!target || !propertyKey) {\r\n return;\r\n }\r\n Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);\r\n };\r\n}\r\n\r\n// Utility function holder of the @StringNumber() decorator.\r\nexport class StringNumberDecorator {\r\n\r\n // Returns whether given property (as a string) on given object is decorated with @StringNumber().\r\n public static IsStringNumber(target: Object, propertyKey: string): boolean {\r\n if (!target || !propertyKey || typeof target !== \"object\") {\r\n return false;\r\n }\r\n return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);\r\n }\r\n\r\n public static StringAsNumber(str: string): number {\r\n return NumberUtils.ParseFloatKeepPrecision(str);\r\n }\r\n\r\n public static NumberAsString(nr: number): string {\r\n return \"\" + nr;\r\n }\r\n}\r\n","// @returns true iff given value equals null or equals undefined\r\nexport function isNill(value: any): boolean {\r\n return value === null || value === undefined;\r\n}","import {ObjectUtils} from \"@colijnit/articleapi/build/utils/object-utils\";\r\nimport {NumberUtils} from \"@colijnit/articleapi/build/utils/number-utils\";\r\nimport {isNill} from \"@colijnit/articleapi/build/utils/function/is-nill.function\";\r\nimport {notNill} from \"@colijnit/articleapi/build/utils/function/not-nill.function\";\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Returns whether at least one element in given array could be found by given finder function.\r\n *\r\n * @param {T[]} array\r\n * @param {(element: T) => boolean} finder A finder function that takes an element of the array and returns a boolean that represents\r\n * the 'found status' for that element; whether it should have been found or not.\r\n */\r\n public static ContainsAnElementFoundBy<T>(array: T[], finder: (element: T) => boolean): boolean {\r\n if (!array || !finder) {\r\n return false;\r\n }\r\n\r\n return notNill(this.Find<T>(array, finder));\r\n }\r\n\r\n /**\r\n * Cross-browser Array.find() function. Returns the first item in given array for which the foundBy function returns true. Returns\r\n * undefined when none was found.\r\n *\r\n * Example usage:\r\n * const foundItem: BusinessObject = ArrayUtils.Find<BusinessObject>(modelArray, (modelItem: BusinessObject) => <br>\r\n * (return modelItem.getId() === '1')\r\n * * });\r\n *\r\n * @param array The array with items to search in.\r\n * @param foundBy The finder function applied on each items of the array, when that returns true, the item is considered found.\r\n */\r\n public static Find<T>(array: T[], foundBy: (item: T) => boolean): T {\r\n if (!array || !foundBy) {\r\n return undefined;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n const itemCur: T = array[i];\r\n if (foundBy(itemCur) ) {\r\n return itemCur;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n // @returns empty array when nothing found, otherwise array with found items\r\n public static FindAll<T>(array: T[], foundBy: (item: T) => boolean): T[] {\r\n const answer: T[] = [];\r\n if (!array || !foundBy) {\r\n return answer;\r\n }\r\n\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n const itemCur: T = array[i];\r\n if (foundBy(itemCur)) {\r\n answer.push(itemCur);\r\n }\r\n }\r\n return answer;\r\n }\r\n\r\n // returns a simple clone of given array, using array.slice(0)\r\n public static CloneArray<T>(array: T[]): T[] {\r\n let answer: T[] = [];\r\n\r\n if (array) {\r\n answer = array.slice(0);\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns a 'semi deep clone' of given array. Its first-level members are object-shallow-cloned (optionally with a strongly typed constructor),\r\n * or just as plain object (see param arrayItemsClass).\r\n * @param array\r\n * @param arrayItemsClass If provided, the cloned array's first-level items will be strongly typed to / constructed as this class. Otherwise\r\n * it'll be a plain object.\r\n * @param deepClone Set to true if array items contain FUNCTIONS that need to be cloned..\r\n * @returns {Array} semi-deep clone of given array\r\n */\r\n public static CloneArrayAndItsItems<T>(array: T[], arrayItemsClass?: any, deepClone: boolean = false): T[] {\r\n const cloneArray: T[] = [];\r\n\r\n if (array) {\r\n for (let i: number = 0, len: number = array.length; i < len; i++) {\r\n if (deepClone) {\r\n cloneArray.push(ObjectUtils.GetDeepClone(array[i]));\r\n } else {\r\n cloneArray.push(ObjectUtils.GetShallowClone(array[i], arrayItemsClass));\r\n }\r\n }\r\n } else {\r\n return [];\r\n }\r\n\r\n return cloneArray;\r\n }\r\n\r\n /**\r\n * Removes element at given index from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really\r\n * removes the element using splice().\r\n *\r\n * @param {number} index\r\n * @param {any[]} array in-out\r\n * @returns {boolean} True if and only if the element on given index is succesfully removed from given array.\r\n */\r\n public static RemoveElementAtIndex(index: number, array: any[]): boolean {\r\n if (NumberUtils.IsNaN(index) || index < 0 || !Array.isArray(array) || array.length === 0) {\r\n return false;\r\n }\r\n\r\n if (index in array) {\r\n array.splice(index, 1);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Removes given element from given array. Doesn't just set it to null like JavaScripts standard 'delete' does, but really removes the\r\n * element using splice(). Also works on associative arrays.\r\n *\r\n * @param {T} element The element to remove.\r\n * @param {T[]} array The array to remove the element from.\r\n * @returns {boolean} True iff given element was truly successfully removed from given array.\r\n */\r\n public static RemoveElement<T>(element: T, array: T[]): boolean {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n\r\n const index: number = array.indexOf(element);\r\n return ArrayUtils.RemoveElementAtIndex(index, array);\r\n }\r\n\r\n // Checks if given array is defined, and is an array, and has length > 0, and, optionally checks that the first element is of type given clazz.\r\n public static IsArrayWithElements<T>(arrayToCheck: T[], classItemsMustBeInstanceOf?: any): boolean {\r\n if (isNill(arrayToCheck)) {\r\n return false;\r\n }\r\n\r\n if (Array.isArray(arrayToCheck) && arrayToCheck.length > 0) {\r\n if (classItemsMustBeInstanceOf) {\r\n return arrayToCheck[0] instanceof classItemsMustBeInstanceOf;\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Removes all elements from given array for which given filter function holds true. Returns true if at least one removed, else false.\r\n public static RemoveElementsByFilter(array: any[], filterFunction: (item: any) => boolean): boolean {\r\n if (!ArrayUtils.IsArrayWithElements(array) || !filterFunction) {\r\n return false;\r\n }\r\n\r\n let atLeastOneRemoved: boolean = false;\r\n\r\n const len: number = array.length;\r\n for (let i: number = len - 1; i >= 0; i--) {\r\n const item: any = array[i];\r\n if (filterFunction.call(this, item) === true) {\r\n array.splice(i, 1);\r\n atLeastOneRemoved = true;\r\n }\r\n }\r\n\r\n return atLeastOneRemoved;\r\n }\r\n\r\n public static MoveElement<T>(element: T, toIndex: number, array: T[]): boolean {\r\n if (!Array.isArray(array) || isNill(toIndex)) {\r\n return false;\r\n }\r\n\r\n const fromIndex: number = array.indexOf(element);\r\n const toIndexCorrected: number = NumberUtils.GetNearestNumberWithinBounds(toIndex, 0, array.length - 1);\r\n if (fromIndex === -1 || array[toIndexCorrected] === element) {\r\n // element did not exist in given array, or already existed on given toIndex\r\n return false;\r\n }\r\n array.splice(toIndexCorrected, 0, array.splice(fromIndex, 1)[0]);\r\n return true;\r\n }\r\n\r\n // PRE: elements exists in given array. POST: given elementToPlace has a lower index than given afterThisElement. Array is in-out manipulated.\r\n public static PlaceElementAfterOther(array: any[], elementToPlace: any, afterThisElement: any): void {\r\n if (array) {\r\n const afterThisElIdx: number = array.indexOf(afterThisElement);\r\n const elToPlaceIdx: number = array.indexOf(elementToPlace);\r\n if (afterThisElIdx >= elToPlaceIdx) {\r\n ArrayUtils.MoveElement(elementToPlace, afterThisElIdx + 1, array);\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * This type represents the concept of a business object ID type. ID's of business objects can be a primary number, a simple string or a\r\n * object for a composite key.\r\n *\r\n * Simply to prevent type declarations of 'number | string | Object' for BO ID data all over the application.\r\n */\r\nimport {MapPropertyDecorator} from \"@colijnit/articleapi/build/factory/decorators/map-property.decorator\";\r\nimport {BooleanTextDecorator} from \"@colijnit/articleapi/build/factory/decorators/boolean.decorator\";\r\nimport {JsonFieldFieldDecorator} from \"@colijnit/articleapi/build/factory/decorators/json.decorator\";\r\nimport {ComplexArrayDecorator} from \"@colijnit/articleapi/build/factory/decorators/complex-array.decorator\";\r\n\r\nexport type BusinessObjectIDType = number | string | Object;\r\n\r\nexport abstract class BusinessObject {\r\n // The ID of the model.\r\n public id: BusinessObjectIDType;\r\n\r\n // Overridable. Returns the ID of the model. Concrete model classes often override this method to provide their specific ID getter.\r\n public getId(): BusinessObjectIDType {\r\n return this.id;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n protected setOwnMappedPropsFromRawData(rawData: any = {}): void {\r\n if (!rawData) {\r\n return;\r\n }\r\n Object.keys(this).forEach((key) => {\r\n // check if property needs to be mapped\r\n if (MapPropertyDecorator.IsMapProperty(this, key)) {\r\n const mapKeys: string[] = MapPropertyDecorator.GetMapProperty(this, key).split(\",\");\r\n const len: number = mapKeys.length;\r\n for (let i: number = 0; i < len; i++) {\r\n // eslint-disable-next-line\r\n const mapKey = mapKeys[i].trim();\r\n const objProp: any = rawData[mapKey];\r\n let decorated: boolean = false;\r\n if (rawData.hasOwnProperty(mapKey)) {\r\n if (BooleanTextDecorator.IsBooleanTextField(this, key)) {\r\n this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);\r\n decorated = true;\r\n }\r\n if (JsonFieldFieldDecorator.IsJsonField(this, key)) {\r\n this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);\r\n decorated = true;\r\n }\r\n if (ComplexArrayDecorator.IsComplexArray(this, key)) {\r\n const arrayClass: any = ComplexArrayDecorator.GetComplexArrayType(this, key);\r\n // eslint-disable-next-line\r\n const origArray = this[key];\r\n // eslint-disable-next-line\r\n const newArray = [];\r\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\r\n for (let j = 0; j < origArray.length; j++) {\r\n // eslint-disable-next-line\r\n const item = new arrayClass(origArray[j]);\r\n newArray.push(item);\r\n }\r\n this[key] = newArray;\r\n } else {\r\n if (!decorated) {\r\n this[key] = objProp;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n } else {\r\n if (rawData.hasOwnProperty(key)) {\r\n const objProp: any = rawData[key];\r\n if (BooleanTextDecorator.IsBooleanTextField(this, key)) {\r\n this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);\r\n } else if (JsonFieldFieldDecorator.IsJsonField(this, key)) {\r\n this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);\r\n } else {\r\n this[key] = objProp;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {ComplexFieldDecorator} from \"./decorators/complex-field.decorator\";\r\nimport {ComplexArrayDecorator} from \"./decorators/complex-array.decorator\";\r\nimport {BooleanTextDecorator} from \"./decorators/boolean.decorator\";\r\nimport {DateFieldFieldDecorator} from \"./decorators/date-field.decorator\";\r\nimport {StringNumberDecorator} from \"./decorators/string-number.decorator\";\r\nimport {isNill} from \"../utils/is-nill.function\";\r\nimport {ArrayUtils} from \"../utils/array-utils\";\r\nimport {BusinessObject} from \"../model/business-object\";\r\n\r\n// Factory service creates businessobjects, using their decorators in the process.\r\nexport class BusinessObjectFactory {\r\n constructor() {\r\n }\r\n\r\n /**\r\n * Creates and returns a new business data object instance of given class, with all given data properties applied to it in a\r\n * complex-aware style. That is, all properties on given class that are decorated with @ComplexField(..) or @ComplexArray(..) decorators\r\n * become strongly typed business objects, with methods that are usable and such.\r\n *\r\n * @param modelClass\r\n * @param {Object} rawData The object with all (possibly raw/flat/not alive) data to be applied to the created model object\r\n */\r\n public makeWithRawBackendData(modelClass: any, rawData: Object): BusinessObject {\r\n if (!modelClass) {\r\n return undefined;\r\n }\r\n if (typeof modelClass !== typeof BusinessObject) {\r\n return undefined;\r\n }\r\n\r\n const model: BusinessObject = new modelClass();\r\n this._copyAllPropertiesDecoratorProcessedFrom(rawData, model);\r\n return model;\r\n }\r\n\r\n // see makeWithRawBackendData, this is a loop-wrapper around that method\r\n public makeBOArrayFromRawBackendDataArray(modelClass: any, arrayOfRawDatas: Object[]): BusinessObject[] {\r\n if (!modelClass) {\r\n return undefined;\r\n }\r\n\r\n const trueClientBos: BusinessObject[] = [];\r\n if (arrayOfRawDatas) {\r\n for (let i: number = 0, len: number = arrayOfRawDatas.length; i < len; i++) {\r\n trueClientBos.push(this.makeWithRawBackendData(modelClass, arrayOfRawDatas[i]));\r\n }\r\n }\r\n return trueClientBos;\r\n }\r\n\r\n public instantiateNewBo(modelClass: any): BusinessObject {\r\n return this.makeWithRawBackendData(modelClass, {});\r\n }\r\n\r\n /**\r\n * Applies all properties of given 'source' object to the given 'destination' businessobject, if destination has that property.\r\n * Works with the @ComplexField(), @ComplexArray, @BooleanText, @CoInject and @DateField annotations of given destination model.\r\n *\r\n * @param sourceData Raw data to copy to destination model\r\n * @param {BusinessObject} destinationModel InOut: The annotated businessobject to apply source properties to\r\n */\r\n private _copyAllPropertiesDecoratorProcessedFrom(sourceData: any, destinationModel: BusinessObject): void {\r\n if (!sourceData || !destinationModel) {\r\n return;\r\n }\r\n\r\n // process all source data into destinationModel\r\n for (const srcPropKey in sourceData) {\r\n if (!sourceData.hasOwnProperty(srcPropKey)) {\r\n continue;\r\n }\r\n\r\n const srcPropVal: any = sourceData[srcPropKey];\r\n\r\n if (ComplexFieldDecorator.IsComplexField(destinationModel, srcPropKey)) {\r\n const classOfField: any = ComplexFieldDecorator.GetComplexFieldType(destinationModel, srcPropKey);\r\n destinationModel[srcPropKey] = this.makeWithRawBackendData(classOfField, srcPropVal);\r\n } else if (ComplexArrayDecorator.IsComplexArray(destinationModel, srcPropKey)) {\r\n const sourceArray: any[] = srcPropVal;\r\n if (!sourceArray) {\r\n continue;\r\n }\r\n const classOfArrayItems: any = ComplexArrayDecorator.GetComplexArrayType(destinationModel, srcPropKey);\r\n const tempArray: any[] = [];\r\n for (let i: number = 0, len: number = sourceArray.length; i < len; i++) {\r\n tempArray.push(this.makeWithRawBackendData(classOfArrayItems, sourceArray[i]));\r\n }\r\n destinationModel[srcPropKey] = tempArray;\r\n } else if (BooleanTextDecorator.IsBooleanTextField(destinationModel, srcPropKey)) {\r\n // logical 'true' and 'false' also allowed as incoming values for @BooleanText() properties: then just copy their value\r\n if (typeof srcPropVal === \"boolean\") {\r\n destinationModel[srcPropKey] = srcPropVal;\r\n // here, it should be a 'J' or 'N' (or 'T' or 'F'): assign the associated boolean value\r\n } else {\r\n destinationModel[srcPropKey] = BooleanTextDecorator.GetLogicalBooleanValue(srcPropVal);\r\n }\r\n } else if (DateFieldFieldDecorator.IsDateField(destinationModel, srcPropKey)) {\r\n destinationModel[srcPropKey] = DateFieldFieldDecorator.StringAsDate(srcPropVal);\r\n } else if (StringNumberDecorator.IsStringNumber(destinationModel, srcPropKey)) {\r\n destinationModel[srcPropKey] = StringNumberDecorator.StringAsNumber(srcPropVal);\r\n }\r\n // non-decorated prop\r\n else {\r\n if (isNill(srcPropVal)) {\r\n destinationModel[srcPropKey] = undefined;\r\n } else if (Array.isArray(srcPropVal)) {\r\n destinationModel[srcPropKey] = ArrayUtils.CloneArray(srcPropVal);\r\n } else if (typeof srcPropVal === \"object\") {\r\n if (srcPropVal instanceof Map) { //just copy the value in case of maps\r\n destinationModel[srcPropKey] = srcPropVal;\r\n } else {\r\n destinationModel[srcPropKey] = Object.assign({}, srcPropVal);\r\n }\r\n } else {\r\n destinationModel[srcPropKey] = srcPropVal;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","export enum LanguageCode {\r\n Dutch = \"nl-NL\",\r\n English = \"en-GB\",\r\n German = \"de-DE\",\r\n French = \"fr-FR\",\r\n}\r\n","// Static utility functions holder related to strings.\r\nexport class StringUtils {\r\n\r\n /**\r\n * Returns a new string where given placeholder in given source string are replaced by given replacement texts.\r\n *\r\n * Example usage:\r\n *\r\n * source = \"ABCDABCD\"\r\n * placeholder = \"BC\"\r\n * replacementTexts = \"Z\", \"Z\" (REST arguments)\r\n * OUTPUT = \"AZDAZD\"\r\n *\r\n * @param {string} source\r\n * @param {string} placeholder\r\n * @param {string} replacementTexts If only one is given, this function replaces all placeholders with that single replacementText.\r\n * If more are given, placeholders without a corresponding replacementText will remain their original placeholder characters.\r\n */\r\n public static ReplaceOccurrencesIn(source: string, placeholder: string, ...replacementTexts: string[]): string {\r\n // parameter guards\r\n if (!(source)) {\r\n return undefined;\r\n }\r\n if (!placeholder || replacementTexts.length === 0) {\r\n return source;\r\n }\r\n let outString: string = source;\r\n // one replacementText means replace for all\r\n if (replacementTexts.length === 1) {\r\n // \"g\" is the g flag to replace globally\r\n outString = outString.replace(placeholder, replacementTexts[0]);\r\n } else {\r\n // replace occurence i by replacementTexts[i], one at a time in loop (there might be a faster way..)\r\n for (let i: number = 0, len: number = replacementTexts.length; i < len; i++) {\r\n outString = outString.replace(placeholder, replacementTexts[i]);\r\n }\r\n }\r\n return outString;\r\n }\r\n\r\n // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.\r\n public static ParseString(arg: any, defaultValue: string = \"\"): string {\r\n if (!StringUtils.IsString(arg)) {\r\n if (arg && typeof arg.toString === \"function\") {\r\n arg = arg.toString();\r\n } else {\r\n arg = defaultValue;\r\n }\r\n }\r\n return arg;\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: string): boolean {\r\n return str && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns given string, escaped for use as string literal in regular expressions.\r\n private static _escapeRegExp(str: string): string {\r\n return str;// .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^$\\|]/g, \"\\\\$&\");\r\n }\r\n\r\n}\r\n","export class Dictionary {\r\n public strings: {} = {\r\n \"nl\": {},\r\n \"de\": {},\r\n \"fr\": {},\r\n \"en\": {},\r\n };\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {LanguageCode} from \"../enum/language-code.enum\";\r\nimport {StringUtils} from \"../utils/string-utils\";\r\nimport {Dictionary} from \"../assets/dictionary/text.properties\";\r\n\r\n// The localization service, providing peers with text translation functionality.\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DictionaryService {\r\n private readonly dictionaryUrl: string = \"js/browser/res/dictionary/\";\r\n\r\n public get language(): string {\r\n return this._language;\r\n }\r\n\r\n public set rootUrl(value: string) {\r\n this._rootUrl = value;\r\n this._dictBasePath = this._rootUrl + \"/\" + this.dictionaryUrl;\r\n }\r\n\r\n // public dictionaryLoaded: Subject<void> = new Subject();\r\n\r\n private _dictBasePath: string;\r\n private _rootUrl: string;\r\n // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();\r\n private _dictionaries: Map<string, { [key: string]: string }> = new Map<string, { [key: string]: string }>();\r\n private _language: string;\r\n\r\n // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.\r\n private readonly _placeholder: string = \"|~\";\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n // Loads the dictionary for given language in memory.\r\n public async setDictionary(language: string): Promise<void> {\r\n this._language = language || LanguageCode.Dutch;\r\n this._loadDictionary();\r\n }\r\n\r\n private _loadDictionary() {\r\n if (!this._dictionaries.has(this._language)) {\r\n const dictionary: Dictionary = new Dictionary();\r\n // eslint-disable-next-line no-magic-numbers\r\n if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {\r\n // eslint-disable-next-line no-magic-numbers\r\n this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns the localized text for the given dictionary key.\r\n * @param {string} key\r\n * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val\r\n * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value\r\n * @returns {string} The translated text for given dictionary key\r\n */\r\n public get(key: string, upperCaseFirst: boolean = true, ...replacementTexts: string[]): string {\r\n if (!StringUtils.IsStringWithLength(key)) {\r\n return key || \"\";\r\n }\r\n\r\n if (this.language === undefined) {\r\n this._language = LanguageCode.Dutch;\r\n this._loadDictionary();\r\n }\r\n\r\n let text: string = this._dictionaries.get(this.language)[key];\r\n text = StringUtils.IsStringWithLength(text) ? text : key;\r\n\r\n if (upperCaseFirst) {\r\n text = text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n text = text.charAt(0).toLowerCase() + text.slice(1);\r\n }\r\n\r\n if (replacementTexts.length > 0) {\r\n text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);\r\n }\r\n\r\n return text;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\nimport {DictionaryService} from \"./dictionary.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class OptionsService {\r\n\r\n public optionsInitialized: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n public set options(value: any) {\r\n this._options = value;\r\n }\r\n\r\n public get options(): any {\r\n return this._options;\r\n }\r\n\r\n public optionsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _options: any;\r\n\r\n constructor(private _dictionary: DictionaryService) {\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n this.options = new Object();\r\n if (obj.hasOwnProperty(\"url\")) {\r\n this.options.url = obj[\"url\"];\r\n }\r\n if (obj.hasOwnProperty(\"schema\")) {\r\n this.options.schema = obj[\"schema\"];\r\n }\r\n if (obj.hasOwnProperty(\"version\")) {\r\n this.options.version = obj[\"version\"];\r\n }\r\n if (obj.hasOwnProperty(\"languageCode\")) {\r\n this.options.languageCode = obj[\"languageCode\"];\r\n } else {\r\n this.options.languageCode = \"NL\";\r\n }\r\n if (obj.hasOwnProperty(\"username\")) {\r\n this.options.username = obj[\"username\"];\r\n }\r\n if (obj.hasOwnProperty(\"password\")) {\r\n this.options.password = obj[\"password\"];\r\n }\r\n if (obj.hasOwnProperty(\"session\")) {\r\n this.options.session = obj[\"session\"];\r\n }\r\n if (obj.hasOwnProperty(\"useLoginEncryption\")) {\r\n this.options.useLoginEncryption = obj[\"useLoginEncryption\"];\r\n }\r\n\r\n this.optionsLoaded.next(true);\r\n }\r\n\r\n public async initialize(options: any): Promise<void> {\r\n if (options) {\r\n await this.createSettingsFromObject(options);\r\n await this._dictionary.setDictionary(this.options.languageCode);\r\n this.optionsInitialized.next(true);\r\n }\r\n }\r\n}\r\n","import {Articles} from \"@colijnit/articleapi/build/articles\";\r\nimport {Sharedapi} from \"@colijnit/sharedapi/build/sharedapi\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\nimport {DataServiceResponseData} from \"@colijnit/articleapi/build/model/data-service-response-data\";\r\nimport {DataServiceResponseData as DataServiceResponse} from \"@colijnit/sharedapi/build/model/data-service-response-data\";\r\nimport {BusinessObjectFactory} from \"../factory/business-object-factory\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\nimport {OptionsService} from \"./options.service\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class SharedConnectorService {\r\n public articleConnector: Articles;\r\n public sharedConnector: Sharedapi;\r\n\r\n private _boFactory: BusinessObjectFactory = new BusinessObjectFactory();\r\n\r\n\r\n constructor(\r\n private _optionsService: OptionsService,\r\n ) {\r\n }\r\n\r\n public async connect(): Promise<void> {\r\n this.articleConnector = new Articles(this._optionsService.options);\r\n this.sharedConnector = new Sharedapi(this._optionsService.options);\r\n }\r\n\r\n public async getAllPrinters(showAll: boolean = true): Promise<Printer[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.listAllPrinters(showAll).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Printer, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getPrintStockStickers(request: PrintStockStickers): Promise<PrintStockStickers> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getPrintStockStickers(request).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeWithRawBackendData(PrintStockStickers, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n public async getPrintPriceStickers(request: PrintPriceStickers): Promise<PrintPriceStickers> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.printPriceStickers(request).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeWithRawBackendData(PrintPriceStickers, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n // public async getStockStickerPrintLayouts(stockStickersPrintLayouts: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n // return new Promise((resolve: Function, reject: Function) => {\r\n // return this.sharedConnector.getStockStickerPrintLayouts(stockStickersPrintLayouts).then((result: DataServiceResponse) => {\r\n // if (result.validationResult && result.validationResult.success) {\r\n // if (result.resultObject) {\r\n // resolve(this._boFactory.makeWithRawBackendData(stockStickersPrintLayouts, result.resultObject));\r\n // }\r\n // } else {\r\n // reject(result.validationMessagesAsString);\r\n // }\r\n // })\r\n // })\r\n // }\r\n\r\n public async getArticleFullObject(goodId: number): Promise<ArticleExtended> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getArticleFullObject(goodId).then((result: DataServiceResponseData) => {\r\n // if (result.validationResult && result.validationResult.success) {\r\n // if (result.resultObject) {\r\n // resolve(this._boFactory.makeWithRawBackendData(ArticleExtended, result.resultObject));\r\n // }\r\n // } else {\r\n // reject(result.validationMessagesAsString);\r\n // }\r\n });\r\n });\r\n }\r\n\r\n public async getStockHistory(request: GetStockHistoryRequest): Promise<StockHistoryBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getStockHistory(request).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject && result.resultObject.hasOwnProperty(\"stockHistory\")) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockHistoryBo, result.resultObject.stockHistory));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n })\r\n })\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<ArticleStockBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getStockInformation(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleStockBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockManagementWarehouses(): Promise<StockManagementWarehouses[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getStockManagementWarehouses().then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockManagementLocations(warehouseNo: number): Promise<StockLocation[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getStockManagementLocations(warehouseNo).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockLocation, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getArticleDetails(data: ArticleStockManagement): Promise<ArticleDetailsBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getArticleDetails(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleDetailsBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async updateArticleDetails(data: ArticleDetailsBo): Promise<boolean> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.updateArticleDetails(data).then(async (result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n await this.commit();\r\n resolve(true);\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n public async lockArticleDetails(data: ArticleStockManagement): Promise<boolean> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.lockArticleDetails(data).then(async (result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n await this.commit();\r\n resolve(true);\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n public async getStockStatus(): Promise<StockStatus[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getStockState().then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStatus, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getStockStickerPrintLayouts(data).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public async getArticleTransaction(data: ArticleTransaction): Promise<ArticleTransactionBo[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.articleConnector.getArticleTransaction(data).then((result: DataServiceResponseData) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObjects) {\r\n resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleTransactionBo, result.resultObjects));\r\n }\r\n } else {\r\n reject(result.validationMessagesAsString);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public commit(): Promise<DataServiceResponseData> {\r\n return this.articleConnector.commit();\r\n }\r\n\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\nimport {DataServiceResponseData} from \"@colijnit/articleapi/build/model/data-service-response-data\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\nimport {SharedService} from \"./shared.service\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\nimport {SharedConnectorService} from \"./shared-connector.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StockService {\r\n\r\n public stockStickers: PrintStockStickers;\r\n public printSticker: PrintStockStickers = new PrintStockStickers();\r\n public printPriceSticker: PrintPriceStickers = new PrintPriceStickers();\r\n\r\n constructor(\r\n private _sharedService: SharedConnectorService,\r\n ) {\r\n }\r\n\r\n public async getPrintStockStickers(data: PrintStockStickers): Promise<void> {\r\n await this._sharedService.getPrintStockStickers(data);\r\n }\r\n\r\n public async getPrintPriceStickers(data: PrintPriceStickers): Promise<void> {\r\n await this._sharedService.getPrintPriceStickers(data);\r\n }\r\n\r\n public async getAllPrinters(showAll: boolean = true): Promise<Printer[]> {\r\n return await this._sharedService.getAllPrinters(showAll);\r\n }\r\n\r\n public async getStockHistory(data: GetStockHistoryRequest): Promise<StockHistoryBo[]> {\r\n return await this._sharedService.getStockHistory(data);\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<ArticleStockBo[]> {\r\n return await this._sharedService.getStockInformation(data);\r\n }\r\n\r\n // public async getStockStickerPrintLayouts(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n // return await this._connector.getStockStickerPrintLayouts(data);\r\n // }\r\n\r\n public async getArticleDetails(data: ArticleStockManagement): Promise<ArticleDetailsBo[]> {\r\n return await this._sharedService.getArticleDetails(data);\r\n }\r\n\r\n public async updateArticleDetails(data: ArticleDetailsBo): Promise<boolean> {\r\n return await this._sharedService.updateArticleDetails(data);\r\n }\r\n\r\n public async getStockState(): Promise<StockStatus[]> {\r\n return await this._sharedService.getStockStatus();\r\n }\r\n\r\n public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {\r\n return await this._sharedService.getStockStickerTemplates(data);\r\n }\r\n\r\n public async getStockManagementWarehouses(): Promise<StockManagementWarehouses[]> {\r\n return await this._sharedService.getStockManagementWarehouses();\r\n }\r\n\r\n public async getStockManagementLocations(warehouseNo: number): Promise<StockLocation[]> {\r\n return await this._sharedService.getStockManagementLocations(warehouseNo);\r\n }\r\n\r\n public async getArticleTransaction(data: ArticleTransaction): Promise<ArticleTransactionBo[]> {\r\n return await this._sharedService.getArticleTransaction(data);\r\n }\r\n\r\n public async lockArticleDetails(data: ArticleStockManagement): Promise<boolean> {\r\n return await this._sharedService.lockArticleDetails(data);\r\n }\r\n\r\n public commit(): Promise<DataServiceResponseData> {\r\n return this._sharedService.commit();\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input, OnDestroy,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {PrintStockStickers} from \"@colijnit/sharedapi/build/model/print-stock-stickers\";\r\nimport {GetStockHistoryRequest} from \"@colijnit/articleapi/build/model/get-stock-history-request\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {OptionsService} from \"../../service/options.service\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {DictionaryService} from \"../../service/dictionary.service\";\r\n\r\n@Component({\r\n selector: \"co-stock\",\r\n template: `\r\n <div class=\"stock-info-container\">\r\n <co-stock-information [article]=\"articleExtended\"\r\n [articleStock]=\"\"\r\n [allAvailableStockInformation]=\"allAvailableStock\"\r\n [allTechnicalStockInformation]=\"allTechnicalStock\"\r\n >\r\n </co-stock-information>\r\n <hr>\r\n <co-stock-information-grid *ngIf=\"showStockInformationGrid\"\r\n [stockLocationData]=\"stockLocationInformation\"\r\n [articleStockInformation]=\"stockInformation\"\r\n (transferIconClicked)=\"handleStockTransferClick($event)\"\r\n (historyClicked)=\"getStockHistory()\"\r\n [stockHistoryInformation]=\"stockHistory\"\r\n >\r\n </co-stock-information-grid>\r\n <co-stock-location *ngIf=\"showStockLocation\"\r\n (backToStockLines)=\"backToStockLinesClicked()\">\r\n\r\n </co-stock-location>\r\n <co-stock-transfer *ngIf=\"showStockTransfer\"\r\n (handleCancelClicked)=\"backToStock()\"\r\n [article]=\"stockTransferArticle\"\r\n [articleToTransfer]=\"stockTransferArticleDetails\"\r\n [stockSticker]=\"stockService.stockStickers\"\r\n (handleStickerClicked)=\"handleStickerClicked.emit($event)\"\r\n [articleWarehouse]=\"articleWarehouse\"\r\n [allWarehouses]=\"allWarehouses\"\r\n >\r\n </co-stock-transfer>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockComponent implements OnDestroy {\r\n\r\n @ViewChild(StockComponent)\r\n public stock: StockComponent;\r\n\r\n @Output()\r\n public handleStickerClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input()\r\n public set article(article) {\r\n this.articleExtended = article;\r\n this.getStockInformation(article);\r\n };\r\n\r\n @Input()\r\n public articleWarehouse: any[];\r\n\r\n @Input()\r\n public allWarehouses: any[];\r\n\r\n @HostBinding(\"class.co-stock\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showStockInformationGrid: boolean = true;\r\n public showStockLocation: boolean = false;\r\n public showStockTransfer: boolean = false;\r\n public stockInformation: ArticleStockBo[];\r\n public stockLocationInformation: ArticleStockBo[];\r\n public stockTransferArticle: ArticleStockBo;\r\n public stockTransferArticleDetails: ArticleDetailsBo;\r\n public articleExtended: ArticleExtended;\r\n public stockHistory: StockHistoryBo[];\r\n public allAvailableStock: number = 0;\r\n public allTechnicalStock: number = 0;\r\n private _subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n public stockService: StockService,\r\n private _optionsService: OptionsService,\r\n private _dictionary: DictionaryService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subscriptions.push(\r\n this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\r\n )\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n public backToStockLinesClicked(): void {\r\n this.showStockLocation = false;\r\n this.showStockInformationGrid = true;\r\n }\r\n\r\n public handleStockTransferClick(event): void {\r\n this.stockTransferArticleDetails = event;\r\n this.showStockTransfer = !this.showStockTransfer;\r\n this.showStockInformationGrid = !this.showStockInformationGrid;\r\n this.stockService.stockStickers = new PrintStockStickers();\r\n }\r\n\r\n public backToStock(): void {\r\n this.showStockTransfer = !this.showStockTransfer;\r\n this.showStockInformationGrid = !this.showStockInformationGrid;\r\n }\r\n\r\n public async getStockHistory(): Promise<void> {\r\n const stockHistoryInformation: GetStockHistoryRequest = new GetStockHistoryRequest();\r\n stockHistoryInformation.type = \"B\";\r\n stockHistoryInformation.goodId = this.articleExtended.goodId.toString();\r\n this.stockHistory = await this.stockService.getStockHistory(stockHistoryInformation);\r\n }\r\n\r\n public async getStockInformation(data: ArticleStock): Promise<void> {\r\n const articleData: ArticleStock = new ArticleStock();\r\n articleData.goodId = data.goodId.toString();\r\n articleData.viewKind = \"M\";\r\n this.stockInformation = await this.stockService.getStockInformation(articleData);\r\n this.stockInformation.forEach((articleStock) => this.allAvailableStock += articleStock.availableStock);\r\n this.stockInformation.forEach((articleStock) => this.allTechnicalStock += articleStock.technicalStock);\r\n\r\n }\r\n\r\n private async _handleSettingsLoaded(loaded: boolean): Promise<void> {\r\n if (loaded) {\r\n await this._initConnection().then();\r\n }\r\n }\r\n\r\n private async _initConnection(): Promise<void> {\r\n // await this._connector.connect(this._optionsService.options);\r\n\r\n if (this._optionsService.options.url) {\r\n this._dictionary.rootUrl = this._optionsService.options.url.replace(\"/ajaxservice\", \"\");\r\n }\r\n await this._dictionary.setDictionary(this._optionsService.options.languageCode);\r\n setTimeout(() => {\r\n this._changeDetector.detectChanges();\r\n });\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleExtended} from \"@colijnit/articleapi/build/model/article-extended.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-information\",\r\n template: `\r\n <div class=\"stock-info\" *ngIf=\"article\">\r\n <div class=\"stock-info-row\" >\r\n <div class=\"stock-info-row-image\">\r\n <div class=\"stock-image\">\r\n <co-image class=\"stock-image\" [source]=\"article.imageData\"></co-image>\r\n </div>\r\n </div>\r\n <div class=\"stock-good-info\">\r\n <div>\r\n <span [textContent]=\"article.description\"></span>\r\n </div>\r\n <div>\r\n <span [textContent]=\"article.articleNumber\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'STOCK_STATUS'\"></label>\r\n <span [textContent]=\"article.stockStatus\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_IN_STOCK'\"></label>\r\n <span [textContent]=\"allTechnicalStockInformation\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_AVAILABLE'\"></label>\r\n <span [textContent]=\"allAvailableStockInformation\"></span>\r\n </div>\r\n <div class=\"stock-status\">\r\n <label [textContent]=\"'AMOUNT_LATER_AVAILABLE'\"></label>\r\n <span [textContent]=\"\"></span>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockInformationComponent {\r\n\r\n public image: string;\r\n\r\n @Input()\r\n public article: ArticleExtended;\r\n\r\n @Input()\r\n public articleStock: ArticleStockBo;\r\n\r\n @Input()\r\n public allAvailableStockInformation: number;\r\n\r\n @Input()\r\n public allTechnicalStockInformation: number;\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\r\n\r\nexport const IconSvg: {[iconName: string]: string} = {\r\n \"angle_left_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path fill=\\\"#183153\\\" d=\\\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\\\"/></svg>\",\r\n \"angle_right_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path fill=\\\"#183153\\\" d=\\\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\\\"/></svg>\",\r\n \"arrow_fat_right\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><polygon points=\\\"37.5 25 25.2 12.7 25.2 20.35 12.5 20.35 12.5 29.66 25.2 29.66 25.2 37.3 37.5 25\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\"><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\r\n \"bring_forward_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path fill=\\\"#183153\\\" d=\\\"M224 464H448C456.8 464 464 456.8 464 448V224C464 215.2 456.8 208 448 208H384V160H448C483.3 160 512 188.7 512 224V448C512 483.3 483.3 512 448 512H224C188.7 512 160 483.3 160 448V384H208V448C208 456.8 215.2 464 224 464zM64 352C28.65 352 0 323.3 0 288V64C0 28.65 28.65 0 64 0H288C323.3 0 352 28.65 352 64V288C352 323.3 323.3 352 288 352H64z\\\"/></svg>\",\r\n \"delete_left_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M432.1 208.1L385.9 256L432.1 303C442.3 312.4 442.3 327.6 432.1 336.1C423.6 346.3 408.4 346.3 399 336.1L352 289.9L304.1 336.1C295.6 346.3 280.4 346.3 271 336.1C261.7 327.6 261.7 312.4 271 303L318.1 256L271 208.1C261.7 199.6 261.7 184.4 271 175C280.4 165.7 295.6 165.7 304.1 175L352 222.1L399 175C408.4 165.7 423.6 165.7 432.1 175C442.3 184.4 442.3 199.6 432.1 208.1V208.1zM512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H205.3C188.3 448 172 441.3 160 429.3L9.372 278.6C3.371 272.6 0 264.5 0 256C0 247.5 3.372 239.4 9.372 233.4L160 82.75C172 70.74 188.3 64 205.3 64L512 64zM528 128C528 119.2 520.8 112 512 112H205.3C201 112 196.9 113.7 193.9 116.7L54.63 256L193.9 395.3C196.9 398.3 201 400 205.3 400H512C520.8 400 528 392.8 528 384V128z\\\"/></svg>\",\r\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"15.35\\\" y=\\\"16.56\\\" width=\\\"15.14\\\" height=\\\"10.94\\\" transform=\\\"translate(-1.83 2.08) rotate(-5)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"7.96\\\" y=\\\"17.63\\\" width=\\\"5\\\" height=\\\"1\\\" transform=\\\"translate(-1.54 0.98) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"11.02\\\" y=\\\"29.71\\\" width=\\\"3\\\" height=\\\"1\\\" transform=\\\"translate(-2.59 1.21) rotate(-5)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"9.48\\\" y=\\\"23.53\\\" width=\\\"4\\\" height=\\\"1\\\" transform=\\\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.79,38.45A17.82,17.82,0,0,1,23.86,40,13.09,13.09,0,0,1,10.41,26.42C10.41,17.63,16.83,10,26.53,10c7.63,0,13.06,5.21,13.06,12.46,0,6.33-3.53,10.3-8.19,10.3a3.42,3.42,0,0,1-3.71-3.32h-.08A6.5,6.5,0,0,1,22,32.76c-2.75,0-4.82-2.11-4.82-5.65a9.85,9.85,0,0,1,10.13-10,12.89,12.89,0,0,1,5.13,1l-1.3,8c-.43,2.54-.13,3.71,1.08,3.75,1.85.09,4.18-2.28,4.18-7.28,0-5.65-3.62-10-10.3-10S13.73,17.76,13.73,26c0,7.25,4.57,11.3,11,11.3A14.81,14.81,0,0,0,31,36ZM28,20.65a5.34,5.34,0,0,0-1.33-.18c-2.85,0-5.09,2.81-5.09,6.12,0,1.64.73,2.68,2.16,2.68,1.59,0,3.27-2,3.66-4.53Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"pdf\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.42,40.17H13.88c-2.16,0-2.72-.56-2.72-2.72V12.88c0-2.15.56-2.71,2.72-2.71h11.6l8.66,8.88v3.43H32.8V19.6l-7.88-8.09h-11c-1.38,0-1.38,0-1.38,1.37V37.45c0,1.37,0,1.37,1.38,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M27.83,26.63v4.24h1a3.57,3.57,0,0,0,.78-.06,1.22,1.22,0,0,0,.52-.26,1.44,1.44,0,0,0,.34-.62,4.13,4.13,0,0,0,.13-1.18,3.79,3.79,0,0,0-.13-1.14,1.51,1.51,0,0,0-.37-.62,1.14,1.14,0,0,0-.6-.3,5.93,5.93,0,0,0-1.06-.06Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.86,26.63v1.82h.71a3.57,3.57,0,0,0,1-.1A.88.88,0,0,0,24,28a.84.84,0,0,0,.14-.5.8.8,0,0,0-.2-.57.88.88,0,0,0-.52-.29,6.36,6.36,0,0,0-.93,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.14,24.27v9h19.7v-9Zm6.12,4.24a1.68,1.68,0,0,1-.54.63,1.9,1.9,0,0,1-.67.3,6.57,6.57,0,0,1-1.34.1h-.85V32H20.57V25.54h2.07a7.75,7.75,0,0,1,1.54.1,1.73,1.73,0,0,1,.93.63,2,2,0,0,1,.37,1.25A2,2,0,0,1,25.26,28.51Zm6.45,1.66A2.91,2.91,0,0,1,31,31.31a2.28,2.28,0,0,1-.91.51A4,4,0,0,1,29,32H26.54V25.54H28.9a4.21,4.21,0,0,1,1.22.13,2.08,2.08,0,0,1,1,.59,2.79,2.79,0,0,1,.61,1,4.76,4.76,0,0,1,.21,1.52A4.19,4.19,0,0,1,31.71,30.17Zm5.7-3.54h-3.1v1.52H37v1.08H34.31V32H33V25.54h4.39Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"print\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,16.5H12a2,2,0,0,0-2,2v9a2,2,0,0,0,2,2h2v-5H36v5h2a2,2,0,0,0,2-2v-9A2,2,0,0,0,38,16.5ZM37,21a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,37,21Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35,11.5v5H15v-5H35m1-1H14v7H36v-7Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35,25.5v13H15v-13H35m1-1H14v15H36v-15Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"28.3\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"31.5\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17\\\" y=\\\"34.7\\\" width=\\\"16\\\" height=\\\"0.8\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"signature_field\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M20.1,25.42a1.1,1.1,0,1,1,1.27,1.45l-3.3,9.07A63.13,63.13,0,0,1,28,28.3l1.26-12-8.26-3-6.77,10A62.4,62.4,0,0,1,17,35.54l3.3-9.07A1.12,1.12,0,0,1,20.1,25.42Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"21.62\\\" y=\\\"11.43\\\" width=\\\"8.79\\\" height=\\\"2.34\\\" transform=\\\"translate(5.88 -8.14) rotate(20)\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.11,37.48c1.44,2.65,4.58,2.94,7.23,2.1,1.41-.44,2.2-1.49,3.44-2.06,2.42-1.1,3.13,1.2,5.36,1.37.42,0,2-.65,1.54-.68-2.55-.19-2.93-3.13-5.51-2.65a4.9,4.9,0,0,0-1.64.71c-.77.49-1.31,1.62-2.07,2l-4.61.56A3.38,3.38,0,0,1,20,37c-.22-.41-2,.28-1.85.5Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"xml\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M19.14,24.27v9h19.7v-9Zm5.36,7.41-1.3-2-1.3,2H20.48l2-3.06-1.81-2.8h1.38l1.18,1.88,1.15-1.88h1.37l-1.83,2.85,2,3Zm7.67,0h-1.1V27.07l-1.16,4.61H28.77l-1.16-4.61v4.61H26.52V25.82h1.76l1.07,4,1-4h1.77Zm5.33,0H33.38V25.87h1.18v4.82H37.5Z\\\" fill=\\\"#484f60\\\"/></svg>\"\r\n};","import {Injectable} from \"@angular/core\";\r\nimport {DomSanitizer, SafeHtml} from \"@angular/platform-browser\";\r\nimport {Icon} from \"../enum/icon.enum\";\r\nimport {IconSvg} from \"../model/icon-svg\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer\r\n ) {\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: Icon): SafeHtml {\r\n if (iconName) {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public getIconAsBase64(iconName: Icon): SafeHtml {\r\n const icon: string = IconSvg[iconName];\r\n const base64Data: string = window.btoa(icon);\r\n return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);\r\n }\r\n\r\n public getRawIcon(iconName: Icon): string {\r\n if (iconName) {\r\n return IconSvg[iconName.toLowerCase()];\r\n }\r\n }\r\n\r\n public setIconCache(): void {\r\n for (const key in IconSvg) {\r\n if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== \"function\") {\r\n this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);\r\n }\r\n }\r\n }\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/\r\n\r\nexport enum Icon {\r\n AngleLeftSolid = \"angle_left_solid\",\r\n AngleRightSolid = \"angle_right_solid\",\r\n ArrowFatRight = \"arrow_fat_right\",\r\n ArrowPointRight = \"arrow_point_right\",\r\n BringForwardRegular = \"bring_forward_regular\",\r\n DeleteLeftRegular = \"delete_left_regular\",\r\n DeliveryTruck = \"delivery_truck\",\r\n Email = \"email\",\r\n Pdf = \"pdf\",\r\n Print = \"print\",\r\n SignatureField = \"signature_field\",\r\n Xml = \"xml\"\r\n}","import {Component, Output, ViewChild, ViewEncapsulation, EventEmitter, Input} from \"@angular/core\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {IconCacheService} from \"../../../service/icon-cache.service\";\r\nimport {Icon} from \"../../../enum/icon.enum\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockHistoryBo} from \"@colijnit/articleapi/build/model/stock-history.bo\";\r\nimport {ArticleStockManagement} from \"@colijnit/articleapi/build/model/article-stock-management\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {CoDropDownListFields} from \"../stock-transfer/co-drop-down-list-fields.interface\";\r\nimport {ArticleTransaction} from \"@colijnit/articleapi/build/model/article-transaction\";\r\nimport {ArticleTransaction as ArticleTransactionBo} from \"@colijnit/articleapi/build/model/article-transaction.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-information-grid\",\r\n template: `\r\n <div class=\"tab-link show\" *ngIf=\"hideOrShowTabs\">\r\n <span class=\"tab-link-buttons\"\r\n *ngFor=\"let tab of tabs\"\r\n (click)=\"handleTabClick(tab)\"\r\n [textContent]=\"tab\"\r\n [class.active]=\"tab === activeTab\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"stock-line\">\r\n <div [textContent]=\"activeTabText\"></div>\r\n\r\n </div>\r\n\r\n <div class=\"stock-grid\">\r\n <co-simple-grid *ngIf=\"activeTab === tabs[0] && hideOrShowTabs\"\r\n [data]=\"articleStockInformation\"\r\n class=\"simple-grid\"\r\n [showAdd]=\"true\"\r\n [showToolbar]=\"true\"\r\n (addRow)=\"addNewRow()\"\r\n [inlineEdit]=\"true\"\r\n [rowsPerPage]=\"20\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'warehouseNo'\" [order]=\"10\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DESCRIPTION'\" [field]=\"'warehouseName'\" [order]=\"11\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'technicalStock'\" [order]=\"12\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AVAILABLE_STOCK'\" [field]=\"'availableStock'\" [order]=\"13\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'ECONOMICAL_STOCK'\" [field]=\"'economicalStock'\" [order]=\"14\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LOCATION'\" [field]=\"'locationNo'\" [order]=\"15\">\r\n <ng-template #template let-row=\"row\">\r\n <span [textContent]=\"'Bekijken'\" (click)=\"onLocationClick(row)\"></span>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n\r\n <co-simple-grid *ngIf=\"activeTab === tabs[1]\"\r\n [data]=\"inOrderInformation\"\r\n class=\"simple-grid\"\r\n [rowsPerPage]=\"20\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'IN_ORDER2'\" [field]=\"'transactionNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'CUSTOMER'\" [field]=\"'user'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DATE'\" [field]=\"'transactionDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amountInOrder'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'wareHouseNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DESCRIPTION'\" [field]=\"'locationNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'amountInStock'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSFER'\" [field]=\"'transfer'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.DeliveryTruck)\" (click)=\"handleStockTransferClick($event)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n\r\n <co-simple-grid *ngIf=\"activeTab === tabs[2]\"\r\n [data]=\"orderInformation\"\r\n class=\"simple-grid\"\r\n [rowsPerPage]=\"20\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'PURCHASE_ORDER_NR'\" [field]=\"'transactionNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DATE'\" [field]=\"'transactionDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amountInOrder'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RESERVED'\" [field]=\"'reserved'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'FREE_STOCK'\" [field]=\"'freeStock'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DELIVERY_DATE1'\" [field]=\"'deliveryDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RESERVE'\" [field]=\"'reservation'\"></co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <div class=\"stock-grid\" *ngIf=\"hideOrShowLocationTab\">\r\n <div class=\"stock-location-group\">\r\n <div class=\"stock-location-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"handleBackToStockClick()\"></span>\r\n </div>\r\n <div class=\"stock-location-right-group\">\r\n <co-drop-down-list [(model)]=\"selectedWarehouse\"\r\n [collection]=\"dataWareHouseCode\"\r\n [fields]=\"dataWareHouseFields\"\r\n [placeholder]=\"'WAREHOUSE'\"\r\n (modelChange)=\"onSelectWarehouse($event)\"\r\n [required]=\"true\"\r\n ></co-drop-down-list>\r\n </div>\r\n </div>\r\n\r\n<!-- TODO move to own component stock-location-->\r\n <co-simple-grid [data]=\"articleDetails\"\r\n class=\"simple-grid\"\r\n [rowsPerPage]=\"20\"\r\n >\r\n <div class=\"stock-location-group\">\r\n <div class=\"stock-location-left-group\">\r\n <co-button class=\"stock-lines-button\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"handleBackToStockClick()\"></co-button>\r\n </div>\r\n </div>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'warehouseDescription'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'BATCH'\" [field]=\"'batchNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'SERIAL_NO'\" [field]=\"'serialNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK'\" [field]=\"'amountInStock'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-input-number-picker (keyup.enter)=\"openDialogClick(row)\" [(model)]=\"row['amountInStock']\">\r\n\r\n </co-input-number-picker>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'ALLOCATED'\" [field]=\"'amountInStockFree'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AVAILABLE_STOCK'\" [field]=\"'perceptibleStorage'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'PHYSICAL_STOCK'\" [field]=\"'amountInStockOriginal'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'VALUTA'\" [field]=\"'currency'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'PURCHASE_PRICE'\" [field]=\"'purchasePrice'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'SUPPLIER_NUMBER'\" [field]=\"'supplierNo'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSFER'\" [field]=\"'transfer'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.DeliveryTruck)\" (click)=\"handleStockTransferClick(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <co-stock-change-amount *ngIf=\"showChangeStockDetails\"\r\n (closeStockChangeAmount)=\"showChangeStockDetails = false\"\r\n [selectedArticleDetailsData]=\"selectedArticleDetailsData\"\r\n >\r\n </co-stock-change-amount>\r\n\r\n <div class=\"stock-grid\" *ngIf=\"showStockHistory\">\r\n <div class=\"stock-button-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"backToStockInformation()\"></span>\r\n </div>\r\n <co-simple-grid [data]=\"stockHistoryInformation\"\r\n class=\"simple-grid\"\r\n [rowsPerPage]=\"20\"\r\n >\r\n <co-simple-grid-column [headerText]=\"'MUTATION_DATE'\" [field]=\"'mutationDate'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'MUTATION_TIME'\" [field]=\"'mutationTime'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'AMOUNT'\" [field]=\"'amount'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'WAREHOUSE'\" [field]=\"'wareHouseNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LOCATION'\" [field]=\"'locationNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'TRANSACTION_TYPE'\" [field]=\"'transType'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'DOCUMENT_NUMBER'\" [field]=\"'docNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'LINE'\" [field]=\"'posLineNr'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK_STATE'\" [field]=\"'stockStateId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STOCK_REMARK'\" [field]=\"'stockStateRemarkId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'VALUTA'\" [field]=\"'currencyCode'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'RELATION_ID'\" [field]=\"'relationId'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'USER'\" [field]=\"'user'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'MUTATION_TYPE'\" [field]=\"'mutationType'\"></co-simple-grid-column>\r\n <co-simple-grid-column [headerText]=\"'STICKER'\" [field]=\"'sticker'\">\r\n <ng-template #template let-row=\"row\">\r\n <co-icon class=\"menu-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\" (click)=\"openSendMethodDialog(row)\"></co-icon>\r\n </ng-template>\r\n </co-simple-grid-column>\r\n </co-simple-grid>\r\n </div>\r\n\r\n <div class=\"stock-button-toolbar\">\r\n <div class=\"stock-button-left-group\">\r\n <co-button *ngIf=\"activeTab === tabs[0]\" [label]=\"'HISTORY'\" (click)=\"handleHistoryClick()\"></co-button>\r\n </div>\r\n <div class=\"stock-button-middle-group\">\r\n <div class=\"button-left\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"onOkClick()\"></co-button>\r\n </div>\r\n <div class=\"button-right\">\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"onCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </div>\r\n <ione-send-method-dialog\r\n *ngIf=\"showSendMethodDialog\"\r\n [showDialog]=\"showSendMethodDialog\"\r\n (printButtonClicked)=\"printStockStickers()\"\r\n ></ione-send-method-dialog>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class StockInformationGridComponent {\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @ViewChild(StockInformationGridComponent)\r\n public stock: StockInformationGridComponent;\r\n\r\n @Input()\r\n public articleStockInformation: ArticleStockBo[];\r\n\r\n @Input()\r\n public stockLocationData: ArticleStockBo[];\r\n\r\n @Input()\r\n public stockHistoryInformation: StockHistoryBo[];\r\n\r\n @Output()\r\n public readonly transferIconClicked: EventEmitter<ArticleStockBo> = new EventEmitter();\r\n\r\n @Output()\r\n public readonly historyClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n public image: string;\r\n public show: boolean = false;\r\n public hideOrShowLocationTab: boolean = false;\r\n public showStockHistory: boolean = false;\r\n public showSendMethodDialog: boolean = false;\r\n\r\n public inOrderInformation: ArticleTransactionBo[];\r\n public orderInformation: ArticleTransactionBo[]\r\n public hideOrShowTabs: boolean = true;\r\n public dataWareHouseCode: StockManagementWarehouses[];\r\n public dataWareHouseFields: CoDropDownListFields = { text: \"warehouseDescription\", value: \"warehouseNo\" };\r\n public selectedWarehouse: any;\r\n public articleStockSearchInfo: ArticleStock = new ArticleStock();\r\n public articleDetails: ArticleDetailsBo[];\r\n public selectedArticleDetailsData: ArticleDetailsBo;\r\n public showChangeStockDetails: boolean = false;\r\n public articleDetailsInformation: ArticleStockManagement = new ArticleStockManagement()\r\n\r\n public tabs: string[] = [\r\n \"STOCK\",\r\n \"IN_ORDER2\",\r\n \"ORDERS1\"\r\n ];\r\n public activeTab: string = this.tabs[0];\r\n\r\n public get activeTabText(): string {\r\n switch (this.activeTab) {\r\n case this.tabs[0]:\r\n return \"Voorraadregels\";\r\n case this.tabs[1]:\r\n return \"Gevonden in order(s)\";\r\n case this.tabs[2]:\r\n return \"Gevonden in bestellingen\";\r\n default:\r\n return \"Voorraadlocatie regels\";\r\n }\r\n }\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService,\r\n private _stockService: StockService,\r\n ) {\r\n }\r\n\r\n public handleTabClick(tabData): void {\r\n this.activeTab = tabData;\r\n if (this.activeTab === \"IN_ORDER2\") {\r\n this.getInOrderData();\r\n } if (this.activeTab === \"ORDERS1\") {\r\n this.getOrderData();\r\n }\r\n }\r\n\r\n public onLocationClick(data: ArticleStockBo): void {\r\n this.articleStockSearchInfo.goodId = data.goodId.toString();\r\n this.articleStockSearchInfo.wareHouseNo = data.warehouseNo.toString();\r\n this.articleStockSearchInfo.viewKind = \"D\";\r\n this.selectedWarehouse = data.warehouseNo;\r\n if (!this.dataWareHouseCode) {\r\n this.getStockManagementWarehouses(data);\r\n }\r\n this.getArticleDetails(data);\r\n this.hideOrShowTabs = false;\r\n this.hideOrShowLocationTab = true;\r\n this._stockService.lockArticleDetails(this.articleDetailsInformation);\r\n }\r\n\r\n public handleHistoryClick(): void {\r\n this.historyClicked.emit()\r\n this.hideOrShowLocationTab = false;\r\n this.showChangeStockDetails = false;\r\n this.hideOrShowTabs = false;\r\n this.showStockHistory = true;\r\n }\r\n\r\n public backToStockInformation(): void {\r\n this.showStockHistory = false;\r\n this.hideOrShowTabs = true;\r\n }\r\n\r\n public handleStockTransferClick(event): void {\r\n this.transferIconClicked.emit(event);\r\n }\r\n\r\n public async handleBackToStockClick(): Promise<void> {\r\n this.activeTab = this.tabs[0];\r\n this.hideOrShowTabs = true;\r\n this.hideOrShowLocationTab = false;\r\n this.articleDetails = undefined;\r\n }\r\n\r\n public openSendMethodDialog(data): void {\r\n this._stockService.printSticker.goodId = data.goodId;\r\n this._stockService.printSticker.warehouse = data.warehouseNo;\r\n this.showSendMethodDialog =! this.showSendMethodDialog;\r\n }\r\n\r\n public printStockStickers(): void {\r\n this._stockService.getPrintStockStickers(this._stockService.printSticker);\r\n }\r\n\r\n public onOkClick(): void {\r\n\r\n }\r\n\r\n public onCancelClick(): void {\r\n\r\n }\r\n\r\n public openDialogClick(data): void {\r\n this.selectedArticleDetailsData = data;\r\n this.showChangeStockDetails = true;\r\n }\r\n\r\n public getArticleDetails(data: any): void {\r\n // const info = new ArticleStockManagement();\r\n this.articleDetailsInformation.goodId = data.goodId;\r\n this.articleDetailsInformation.lineId = data.lineId;\r\n this.articleDetailsInformation.warehouseNumber = data.warehouseNo;\r\n this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {\r\n this.articleDetails = details;\r\n });\r\n }\r\n\r\n public getStockManagementWarehouses(data: ArticleStockBo): void {\r\n this._stockService.getStockManagementWarehouses().then((warehouses) => {\r\n this.dataWareHouseCode = warehouses;\r\n this.selectedWarehouse = data.warehouseNo;\r\n })\r\n }\r\n\r\n public onSelectWarehouse(event): void {\r\n this.articleDetailsInformation.warehouseNumber = event;\r\n if (this.selectedWarehouse || this.selectedWarehouse === 0) {\r\n this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {\r\n this.articleDetails = details;\r\n });\r\n }\r\n }\r\n\r\n public async getInOrderData(): Promise<void> {\r\n const inOrderData: ArticleTransaction = new ArticleTransaction();\r\n inOrderData.type = \"V\";\r\n inOrderData.goodId = this.articleStockInformation[0].goodId.toString();\r\n this.inOrderInformation = await this._stockService.getArticleTransaction(inOrderData);\r\n }\r\n\r\n public async getOrderData(): Promise<void> {\r\n const orderData: ArticleTransaction = new ArticleTransaction();\r\n orderData.type = \"V\";\r\n orderData.goodId = this.articleStockInformation[0].goodId.toString();\r\n this.orderInformation = await this._stockService.getArticleTransaction(orderData);\r\n }\r\n\r\n public addNewRow(): void {\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArticleStock} from \"@colijnit/articleapi/build/model/article-stock\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\n\r\n@Component({\r\n selector: \"co-stock-location\",\r\n template: `\r\n <div class=\"stock-location-wrapper\">\r\n <div class=\"buttons-wrapper\">\r\n <div class=\"stock-button-left-group\">\r\n <span class=\"stock-button-back\" [textContent]=\"'BACK_TO_STOCK_LINES'\" (click)=\"backToStockInformation()\"></span>\r\n </div>\r\n <div class=\"dropdown-wrapper\">\r\n <co-drop-down-list\r\n [collection]=\"allWarehouses\"\r\n [placeholder]=\"'WAREHOUSES'\"\r\n (modelChange)=\"onSelectWarehouse($event)\"\r\n ></co-drop-down-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"stock-grid\">\r\n\r\n </div>\r\n <div class=\"button-wrapper\">\r\n <div class=\"button-left\">\r\n <co-button (click)=\"onOkClick()\"></co-button>\r\n </div>\r\n <div class=\"button-right\">\r\n <co-button (click)=\"onCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockLocationComponent {\r\n\r\n @Input()\r\n public stockLocationInformation: ArticleStock;\r\n\r\n @Output()\r\n public backToStockLines: EventEmitter<any> = new EventEmitter();\r\n\r\n public allWarehouses: any;\r\n\r\n public stockLocationColumns: any[] = [];\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n this.stockLocationColumns.push(\r\n {field: \"location\", headerText: \"WAREHOUSE\", editType: \"none\"},\r\n {field: \"batch\", headerText: \"BATCH\"},\r\n {field: \"serieNo\", headerText: \"SERIAL_NO\"},\r\n {field: \"amountInStock\", headerText: \"STOCK\", textAlign: \"Right\", editType: \"numericEdit\"},\r\n {field: \"allocated\", headerText: \"ALLOCATED\", textAlign: \"Right\"},\r\n {field: \"amountAvailable\", headerText: \"AVAILABLE_STOCK\", textAlign: \"Right\"},\r\n {field: \"PhysicalStock\", headerText: \"PHYSICAL_STOCK\", textAlign: \"Right\"},\r\n {field: \"Valuta\", headerText: \"VALUTA\", textAlign: \"Right\"},\r\n {field: \"PurchasePrice\", headerText: \"PURSCHASE_PRICE\", textAlign: \"Right\"},\r\n {field: \"SupplierNo\", headerText: \"SUPPLIER_NO\", textAlign: \"Right\"},\r\n {field: \"Transfer\", headerText: \"TRANSFER\"},\r\n {field: \"sticker\", headerText: \"STICKER\"},\r\n );\r\n }\r\n\r\n public backToStockInformation(): void {\r\n this.backToStockLines.emit();\r\n }\r\n\r\n public onOkClick(): void {\r\n\r\n }\r\n\r\n public onCancelClick(): void {\r\n\r\n }\r\n\r\n public onSelectWarehouse(event): void {\r\n\r\n }\r\n}\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {PrintStockStickers} from \"@colijnit/articleapi/build/model/print-stock-stickers\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {CoDropDownListFields} from \"./co-drop-down-list-fields.interface\";\r\nimport {ArticleStock as ArticleStockBo} from \"@colijnit/articleapi/build/model/article-stock.bo\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\nimport {StockManagementWarehouses} from \"@colijnit/articleapi/build/model/stock-management-warehouses.bo\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {StockLocation} from \"@colijnit/articleapi/build/model/stock-location.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-transfer\",\r\n template: `\r\n <div class=\"stock-transfer\">\r\n <div class=\"stock-transfer-columns\">\r\n <div *ngIf=\"articleToTransfer\" class=\"stock-transfer-left-column\">\r\n <co-input-text disabled\r\n [(model)]=\"articleToTransfer.warehouseDescription\"\r\n [textContent]=\"articleToTransfer.warehouseDescription\"\r\n [placeholder]=\"'Standaard magazijn'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"articleToTransfer.locationNo\"\r\n [textContent]=\"articleToTransfer.locationNo\"\r\n [placeholder]=\"'Standaard locatie'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"stockSticker.batch\"\r\n [placeholder]=\"'Batch'\">\r\n </co-input-text>\r\n <co-input-text disabled\r\n [(model)]=\"stockSticker.serial\"\r\n [placeholder]=\"'Serie'\">\r\n </co-input-text>\r\n <co-input-text\r\n [(model)]=\"articleToTransfer.amountTransfer\"\r\n [placeholder]=\"'Aantal'\">\r\n </co-input-text>\r\n </div>\r\n\r\n <div class=\"stock-transfer-right-column\">\r\n <co-drop-down-list [collection]=\"warehouses\"\r\n [fields]=\"allWarehousesDropdownFields\"\r\n (modelChange)=\"handleSelectedWarehouse($event)\"\r\n [(model)]=\"articleToTransfer.targetWarehouse\">\r\n </co-drop-down-list>\r\n <co-drop-down-list [collection]=\"locations\"\r\n [fields]=\"allLocationDropdownFields\"\r\n [(model)]=\"articleToTransfer.targetLocation\"\r\n >\r\n </co-drop-down-list>\r\n <co-drop-down-list [collection]=\"stockState\"\r\n [fields]=\"stockStateDropdownField\"\r\n [placeholder]=\"'Voorraadstatus'\"\r\n [(model)]=\"articleToTransfer.stockStateId\">\r\n </co-drop-down-list>\r\n <co-input-text [placeholder]=\"'Omschrijving'\"\r\n [(model)]=\"articleToTransfer.stockStateRemark\">\r\n </co-input-text>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ok-cancel-buttons\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"handleOkClick(articleToTransfer)\"></co-button>\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"handleCancelClick()\"></co-button>\r\n <co-button [textContent]=\"'Sticker'\" (click)=\"handleStickerClick()\"></co-button>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockTransferComponent implements AfterViewInit {\r\n\r\n @Input()\r\n public stockSticker: PrintStockStickers;\r\n\r\n @Input()\r\n public article: ArticleStockBo;\r\n\r\n @Input()\r\n public articleToTransfer: ArticleDetailsBo;\r\n\r\n @Input()\r\n public articleWarehouse: any[];\r\n\r\n @Input()\r\n public allWarehouses: any[];\r\n\r\n @Output()\r\n public handleCancelClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n @Output()\r\n public handleStickerClicked: EventEmitter<any> = new EventEmitter();\r\n\r\n public allWarehousesDropdownFields: CoDropDownListFields = {text: \"warehouseDescription\", value: \"warehouseNo\"};\r\n public allLocationDropdownFields: CoDropDownListFields = {text: \"locationNo\", value: \"locationNo\"};\r\n\r\n public showSendMethodDialog: boolean = false;\r\n public warehouses: StockManagementWarehouses[];\r\n public stockState: StockStatus[] = [];\r\n public stockStateDropdownField: CoDropDownListFields = {text: \"stateDescription\", value: \"stockStateId\"};\r\n public locations: StockLocation[];\r\n public selectedWarehouse: any;\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getStockManagementWarehouses();\r\n this.getStockState();\r\n }\r\n\r\n public async handleOkClick(data: ArticleDetailsBo): Promise<void> {\r\n data.selected = true;\r\n data.entryDate = new Date;\r\n await this._stockService.updateArticleDetails(data);\r\n }\r\n\r\n public handleCancelClick(): void {\r\n this.handleCancelClicked.emit();\r\n }\r\n\r\n public handleSelectedWarehouse(event): void {\r\n this.selectedWarehouse = event;\r\n this.getStockManagementLocations(this.selectedWarehouse);\r\n }\r\n\r\n public async handleStickerClick(): Promise<void> {\r\n this.handleStickerClicked.emit();\r\n this.showSendMethodDialog = true;\r\n }\r\n\r\n public getStockManagementWarehouses(): void {\r\n this._stockService.getStockManagementWarehouses().then((warehouses) => {\r\n this.warehouses = warehouses;\r\n })\r\n }\r\n\r\n public getStockManagementLocations(data): void {\r\n this._stockService.getStockManagementLocations(data).then((locations) => {\r\n this.locations = locations;\r\n })\r\n }\r\n\r\n public getStockState(): void {\r\n this._stockService.getStockState().then((state: StockStatus[]) => {\r\n this.stockState = state;\r\n });\r\n }\r\n\r\n}\r\n","export enum SendOption {\r\n Email,\r\n Print,\r\n Pdf,\r\n Xml\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input, OnDestroy,\r\n Output,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {Icon} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {SendOption} from \"./enums/send-option\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {Printer} from \"@colijnit/sharedapi/build/model/report/printer.bo\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {StockStickersPrintLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo\";\r\nimport {CoDropDownListFields} from \"../stock/stock-transfer/co-drop-down-list-fields.interface\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {OptionsService} from \"../../service/options.service\";\r\nimport {DictionaryService} from \"../../service/dictionary.service\";\r\n\r\n@Component({\r\n selector: \"ione-send-method-dialog\",\r\n template: `\r\n <div class=\"send-method-dialog-wrapper\">\r\n <co-dialog-wizard id=\"sendOptionsDialog\" *ngIf=\"showDialog\" [showCloseIcon]=\"showExitButton\" (closeClick)=\"closeDialogClick()\">\r\n <ng-container header>\r\n <span [textContent]=\"headerTitle\"></span>\r\n </ng-container>\r\n <div class=\"dialog-content-wrapper\">\r\n <div class=\"main-content-container\" *ngIf=\"!showPrinterSelections\">\r\n <div class=\"send-options-wrapper\">\r\n <div class=\"custom-button-wrapper\"\r\n *ngFor=\"let sendOption of sendOptions\"\r\n [class.selected-option]=\"sendOption.option === activeSendOption\"\r\n (click)=\"activeSendOption = sendOption.option\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(sendOption.iconName)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"email-option-content\" *ngIf=\"activeSendOption === sendOption.Email || activeSendOption === sendOption.Pdf\">\r\n <div class=\"emails-container\" *ngIf=\"activeSendOption === sendOption.Email\">\r\n <co-input-checkbox\r\n *ngFor=\"let email, let index of emails\"\r\n [name]=\"email\"\r\n [(model)]=\"models[index]\"\r\n [label]=\"email\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n </div>\r\n\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"selectedLayout\"\r\n [collection]=\"layouts\"\r\n [forceReadonly]=\"true\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n\r\n <div class=\"signature-button-wrapper\">\r\n <div class=\"custom-button-wrapper signature-button\" (click)=\"handleSignatureStart()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.SignatureField)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"email-option-content\" *ngIf=\"activeSendOption === sendOption.Print\" (click)=\"getPrintTemplates()\">\r\n <div *ngIf=\"showPrintPriceStickers\">\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printPriceSticker.reportId\"\r\n [collection]=\"printTemplates\"\r\n [fields]=\"printTemplatesField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n <div class=\"lov-wrapper\" *ngIf=\"priceListCodeData\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printPriceSticker.priceListCode\"\r\n [collection]=\"priceListCodeData\"\r\n [fields]=\"priceListDataField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showPrintStockStickers\">\r\n <div class=\"lov-wrapper\">\r\n <co-input-combo-box\r\n [(model)]=\"stockService.printSticker.reportId\"\r\n [collection]=\"printTemplates\"\r\n [fields]=\"printTemplatesField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"lov-wrapper clickable\" (click)=\"togglePrinterSelection()\">\r\n <div class=\"selected-printer-wrapper\">\r\n <div class=\"printer-option-list-item\">\r\n <co-icon class=\"printer-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\"></co-icon>\r\n <div class=\"printer-details\" *ngIf=\"printerList\">\r\n <span class=\"printer-name\" [textContent]=\"defaultPrinter\"></span>\r\n <span class=\"printer-status\" [textContent]=\"defaultPrinter.acceptingJobs\"></span>\r\n </div>\r\n </div>\r\n <co-icon class=\"select-printer-arrow\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <div class=\"standard-printer-wrapper\">\r\n <div class=\"standard-printer-link\" (click)=\"showStandardPrinterOptions = !showStandardPrinterOptions\">\r\n <co-icon class=\"arrow-icon\" [iconData]=\"iconCacheService.getIcon(icons.ArrowFatRight)\"></co-icon>\r\n <span class=\"standard-printer-message\" [textContent]=\"'Standaard printer voor lay-out instellen'\"></span>\r\n </div>\r\n\r\n <div class=\"standard-printer-selections\" *ngIf=\"showStandardPrinterOptions\">\r\n <co-input-checkbox\r\n [(model)]=\"models[0]\"\r\n [label]=\"'Per gebruiker instellen'\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n <co-input-checkbox\r\n [(model)]=\"models[1]\"\r\n [label]=\"'Voor alle gebruikers instellen'\"\r\n [cssClass]=\"'input-checkbox-wrapper'\"\r\n ></co-input-checkbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"print-footer-wrapper\">\r\n <div class=\"input-number-wrapper\">\r\n <co-input-number-picker class=\"number-picker\"\r\n [step]=\"1\" [(model)]=\"stockService.printSticker.amount\" [min]=\"1\"\r\n [ngModelOptions]=\"{debounce: 1}\">\r\n </co-input-number-picker>\r\n </div>\r\n <div class=\"custom-button-wrapper print-button\" (click)=\"handlePrintClicked()\">\r\n <span [textContent]=\"'Print'\"></span>\r\n </div>\r\n <div class=\"custom-button-wrapper signature-button\" (click)=\"handleSignatureStart()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.SignatureField)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"printer-content-container\" @slideInOut *ngIf=\"showPrinterSelections\">\r\n <div class=\"selected-printer-wrapper selection clickable\" *ngFor=\"let printers of printerList\" (click)=\"onPrinterClicked(printers)\">\r\n <div class=\"printer-option-list-item\">\r\n <co-icon class=\"printer-icon\" [iconData]=\"iconCacheService.getIcon(icons.Print)\"></co-icon>\r\n <div class=\"printer-details\">\r\n <span class=\"printer-name\" [textContent]=\"printers.name\"></span>\r\n <span class=\"printer-status\" [textContent]=\"printers.acceptingJobs\"></span>\r\n </div>\r\n </div>\r\n <co-icon class=\"select-printer-arrow\" *ngIf=\"!showPrinterSelections\"\r\n [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </co-dialog-wizard>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger('slideInOut', [\r\n state('*', style({transform: 'translateX(0%)', width: '100%', opacity: '1'})),\r\n state('void', style({transform: 'translateX(150%)', opacity: '0'})),\r\n transition('void => *', animate(250))\r\n ])\r\n ]\r\n})\r\n\r\nexport class SendMethodDialogComponent implements OnDestroy {\r\n public readonly icons: typeof Icon = Icon;\r\n public readonly sendOption: typeof SendOption = SendOption;\r\n\r\n @Input()\r\n public showEmailOption: boolean = true;\r\n\r\n @Input()\r\n public showPrintOption: boolean = true;\r\n\r\n @Input()\r\n public showPdfOption: boolean = true;\r\n\r\n @Input()\r\n public showXmlOption: boolean = true;\r\n\r\n @Input()\r\n public showPrintPriceStickers: boolean = false;\r\n\r\n @Input()\r\n public showPrintStockStickers: boolean = true;\r\n\r\n @Input()\r\n public priceListCodeData: any\r\n\r\n public sendOptions: {option: SendOption, iconName: Icon}[] = [\r\n { option: SendOption.Email,\r\n iconName: this.icons.Email,\r\n },\r\n { option: SendOption.Print,\r\n iconName: this.icons.Print,\r\n },\r\n { option: SendOption.Pdf,\r\n iconName: this.icons.Pdf,\r\n },\r\n { option: SendOption.Xml,\r\n iconName: this.icons.Xml,\r\n }\r\n ]\r\n\r\n public activeSendOption: SendOption = SendOption.Email;\r\n public showStandardPrinterOptions: boolean = false;\r\n public showPrinterSelections: boolean = false;\r\n public showExitButton = true;\r\n public defaultPrinter: Printer;\r\n public printTemplates: StockStickersPrintLayouts[];\r\n public printTemplatesField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public priceListDataField: CoDropDownListFields = {text: \"name\", value: \"priceListCode\"};\r\n public upAndLoaded: boolean = false;\r\n\r\n public emails: any[] = ['lars.vdv@colijn-it.nl', 'david@colijn-it.nl', 'ruben@colijn-it.nl'];\r\n public models: boolean[] = [false, false, true];\r\n\r\n public layouts: any[] = ['Layout 1', 'Layout 2', 'Layout 3'];\r\n public selectedLayout: 'Layout 1';\r\n\r\n @Input()\r\n public showDialog: boolean = false;\r\n\r\n @Input()\r\n public headerTitle: string;\r\n\r\n @Input()\r\n public printerList: Printer[];\r\n\r\n @Input()\r\n public set articleData(data: any) {\r\n this.stockService.printSticker.goodId = data.goodId;\r\n this.stockService.printSticker.warehouse = data.warehouseNo;\r\n };\r\n\r\n @Output()\r\n public startSignatureClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printButtonClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding(\"class.ione-send-method-dialog\")\r\n public showClass(): boolean {\r\n return true;\r\n }\r\n\r\n private _subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService,\r\n public stockService: StockService,\r\n private _optionsService: OptionsService,\r\n private _dictionary: DictionaryService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subscriptions.push(\r\n this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\r\n )\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n\r\n public async getPrinters(): Promise<void> {\r\n return this.stockService.getAllPrinters(true).then((list) => {\r\n this.printerList = list;\r\n });\r\n }\r\n\r\n public closeDialogClick(): void {\r\n this.showDialog = false;\r\n }\r\n\r\n public handleSignatureStart(): void {\r\n this.startSignatureClicked.emit();\r\n }\r\n\r\n public handlePrintClicked(): void {\r\n // this.printButtonClicked.emit();\r\n if (this.stockService.printSticker.printerName) {\r\n this.stockService.getPrintStockStickers(this.stockService.printSticker);\r\n }\r\n }\r\n\r\n public togglePrinterSelection(): void {\r\n this.getPrinters();\r\n if (!this.showPrinterSelections) {\r\n this.showPrinterSelections = true;\r\n this.headerTitle = 'Printer selectie';\r\n } else {\r\n this.showPrinterSelections = false;\r\n this.headerTitle = 'Verzendopties';\r\n }\r\n }\r\n\r\n public onPrinterClicked(printer): void {\r\n this.defaultPrinter = printer.name;\r\n this.stockService.printSticker.printerName = printer.name;\r\n this.showPrinterSelections =! this.showPrinterSelections;\r\n }\r\n\r\n public getPrintTemplates(): any {\r\n if (!this.printTemplates) {\r\n const data = new StockStickersPrintLayouts();\r\n this.stockService.getStockStickerTemplates(data).then((templates: StockStickersPrintLayouts[]) => {\r\n this.printTemplates = templates;\r\n });\r\n }\r\n }\r\n\r\n private async _handleSettingsLoaded(loaded: boolean): Promise<void> {\r\n if (loaded) {\r\n await this._initConnection().then();\r\n this.upAndLoaded = true;\r\n }\r\n }\r\n\r\n private async _initConnection(): Promise<void> {\r\n // await this._connector.connect(this._optionsService.options);\r\n\r\n if (this._optionsService.options.url) {\r\n this._dictionary.rootUrl = this._optionsService.options.url.replace(\"/ajaxservice\", \"\");\r\n }\r\n await this._dictionary.setDictionary(this._optionsService.options.languageCode);\r\n setTimeout(() => {\r\n this._changeDetector.detectChanges();\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ButtonModule,\r\n CoDialogPromptModule, CoDialogWizardModule, IconModule,\r\n InputCheckboxModule,\r\n InputComboBoxModule, InputNumberPickerModule\r\n} from \"@colijnit/corecomponents_v12\";\r\nimport {SendMethodDialogComponent} from \"./send-method-dialog.component\";\r\nimport {StockService} from \"../../service/stock.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n SendMethodDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n CoDialogPromptModule,\r\n InputCheckboxModule,\r\n InputComboBoxModule,\r\n IconModule,\r\n InputNumberPickerModule,\r\n CoDialogWizardModule,\r\n ButtonModule\r\n ],\r\n exports: [\r\n SendMethodDialogComponent\r\n ],\r\n providers: [\r\n StockService\r\n ]\r\n})\r\nexport class SendMethodDialogModule { }\r\n","import {AfterViewInit, Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {StockService} from \"../../../service/stock.service\";\r\nimport {StockStatus} from \"@colijnit/articleapi/build/model/stock-status.bo\";\r\nimport {CoDropDownListFields} from \"./co-drop-down-list-fields.interface\";\r\nimport {ArticleDetailsBo} from \"@colijnit/articleapi/build/model/article-details.bo\";\r\n\r\n@Component({\r\n selector: \"co-stock-change-amount\",\r\n template: `\r\n <div class=\"stock-transfer\">\r\n <co-dialog-wizard [showCloseIcon]=\"true\" (closeClick)=\"closeDialogClick()\">\r\n <ng-container header>\r\n <span [textContent]=\"'STOCK_CHANGE_REASON'\"></span>\r\n </ng-container>\r\n <div class=\"popup-wrapper\">\r\n <co-drop-down-list [collection]=\"stockState\"\r\n [fields]=\"stockStateDropdownField\"\r\n [placeholder]=\"'STOCK_STATE'\"\r\n [(model)]=\"selectedArticleDetailsData.stockStateId\"\r\n ></co-drop-down-list>\r\n\r\n <co-input-textarea [(model)]=\"selectedArticleDetailsData.stockStateRemark\"\r\n\r\n ></co-input-textarea>\r\n <div class=\"ok-cancel-buttons\">\r\n <co-button [textContent]=\"'Ok'\" (click)=\"handleOkClick(selectedArticleDetailsData)\"></co-button>\r\n <co-button [textContent]=\"'Annuleren'\" (click)=\"handleCancelClick()\"></co-button>\r\n </div>\r\n </div>\r\n </co-dialog-wizard>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StockChangeAmountComponent implements AfterViewInit {\r\n\r\n @Input()\r\n public selectedArticleDetailsData: ArticleDetailsBo;\r\n\r\n @Output()\r\n public readonly closeStockChangeAmount: EventEmitter<any> = new EventEmitter();\r\n\r\n public stockState: StockStatus[] = [];\r\n public stockStateDropdownField: CoDropDownListFields = {text: \"stateDescription\", value: \"stockStateId\"};\r\n\r\n constructor(\r\n private _stockService: StockService\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.getStockState();\r\n }\r\n\r\n public closeDialogClick(): void {\r\n this.closeStockChangeAmount.emit();\r\n }\r\n\r\n public async handleOkClick(data: ArticleDetailsBo): Promise<void> {\r\n await this._stockService.updateArticleDetails(data);\r\n }\r\n\r\n public handleCancelClick(): void {\r\n this.closeStockChangeAmount.emit();\r\n }\r\n\r\n public getStockState(): void {\r\n this._stockService.getStockState().then((state: StockStatus[]) => {\r\n this.stockState = state;\r\n });\r\n }\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {StockComponent} from \"./stock.component\";\r\nimport {\r\n ButtonModule, CoDialogWizardModule,\r\n CoGridModule,\r\n DropDownModule, IconModule, ImageModule,\r\n InputComboBoxModule, InputNumberPickerModule,\r\n InputRadioButtonModule, InputTextareaModule, InputTextModule, SimpleGridModule\r\n} from \"@colijnit/corecomponents_v12\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {StockInformationComponent} from \"./stock-information/stock-information.component\";\r\nimport {StockInformationGridComponent} from \"./stock-information-grid/stock-information-grid.component\";\r\nimport {StockLocationComponent} from \"./stock-location/stock-location.component\";\r\nimport {StockService} from \"../../service/stock.service\";\r\nimport {StockTransferComponent} from \"./stock-transfer/stock-transfer.component\";\r\nimport {SendMethodDialogModule} from \"../send-method-dialog/send-method-dialog.module\";\r\nimport {StockChangeAmountComponent} from \"./stock-transfer/stock-change-amount.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n InputComboBoxModule,\r\n CoGridModule,\r\n ButtonModule,\r\n CommonModule,\r\n InputRadioButtonModule,\r\n DropDownModule,\r\n SimpleGridModule,\r\n ImageModule,\r\n InputTextModule,\r\n SendMethodDialogModule,\r\n IconModule,\r\n InputNumberPickerModule,\r\n CoDialogWizardModule,\r\n InputTextareaModule\r\n ],\r\n declarations: [\r\n StockComponent,\r\n StockInformationComponent,\r\n StockInformationGridComponent,\r\n StockLocationComponent,\r\n StockTransferComponent,\r\n StockChangeAmountComponent\r\n ],\r\n exports: [\r\n StockComponent\r\n ],\r\n providers: [\r\n StockService\r\n ]\r\n})\r\nexport class StockModule {}\r\n","export enum KeyboardCode {\r\n Backspace = \"Backspace\",\r\n Digit0 = \"Digit0\",\r\n Digit1 = \"Digit1\",\r\n Digit2 = \"Digit2\",\r\n Digit3 = \"Digit3\",\r\n Digit4 = \"Digit4\",\r\n Digit5 = \"Digit5\",\r\n Digit6 = \"Digit6\",\r\n Digit7 = \"Digit7\",\r\n Digit8 = \"Digit8\",\r\n Digit9 = \"Digit9\",\r\n Enter = \"Enter\",\r\n Escape = \"Escape\",\r\n Minus = \"Minus\",\r\n Numpad0 = \"Numpad0\",\r\n Numpad1 = \"Numpad1\",\r\n Numpad2 = \"Numpad2\",\r\n Numpad3 = \"Numpad3\",\r\n Numpad4 = \"Numpad4\",\r\n Numpad5 = \"Numpad5\",\r\n Numpad6 = \"Numpad6\",\r\n Numpad7 = \"Numpad7\",\r\n Numpad8 = \"Numpad8\",\r\n Numpad9 = \"Numpad9\",\r\n NumpadDecimal = \"NumpadDecimal\",\r\n NumpadEnter = \"NumpadEnter\",\r\n NumpadSubtract = \"NumpadSubtract\",\r\n Period = \"Period\"\r\n}\r\n","import {Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation} from '@angular/core';\r\nimport {Icon} from '../../enum/icon.enum';\r\nimport {IconCacheService} from '../../service/icon-cache.service';\r\nimport {KeyboardCode} from '../../enum/keyboard-code.enum';\r\n\r\n@Component({\r\n selector: 'co-key-pad',\r\n template: `\r\n <div class=\"key-pad-wrapper\">\r\n <div class=\"key-pad-model-wrapper\" *ngIf=\"showValue\">\r\n <div class=\"key-pad-model\" [textContent]=\"internalModel\" [class.negative]=\"isNegative\"></div>\r\n </div>\r\n <div class=\"key-pad-button-wrapper\">\r\n <div class=\"key-pad-button button-7\" [textContent]=\"'7'\" (click)=\"handleButtonClick('7')\"></div>\r\n <div class=\"key-pad-button button-8\" [textContent]=\"'8'\" (click)=\"handleButtonClick('8')\"></div>\r\n <div class=\"key-pad-button button-9\" [textContent]=\"'9'\" (click)=\"handleButtonClick('9')\"></div>\r\n <div class=\"key-pad-button button-bs\" (click)=\"handleBsClick($event)\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.DeleteLeftRegular)\"></co-icon>\r\n </div>\r\n <div class=\"key-pad-button button-4\" [textContent]=\"'4'\" (click)=\"handleButtonClick('4')\"></div>\r\n <div class=\"key-pad-button button-5\" [textContent]=\"'5'\" (click)=\"handleButtonClick('5')\"></div>\r\n <div class=\"key-pad-button button-6\" [textContent]=\"'6'\" (click)=\"handleButtonClick('6')\"></div>\r\n <div class=\"key-pad-button button-minus\" [textContent]=\"'-'\" (click)=\"handleMinusClick($event)\"></div>\r\n <div class=\"key-pad-button button-1\" [textContent]=\"'1'\" (click)=\"handleButtonClick('1')\"></div>\r\n <div class=\"key-pad-button button-2\" [textContent]=\"'2'\" (click)=\"handleButtonClick('2')\"></div>\r\n <div class=\"key-pad-button button-3\" [textContent]=\"'3'\" (click)=\"handleButtonClick('3')\"></div>\r\n <div class=\"key-pad-button button-enter\" (click)=\"handleEnterClick($event)\">\r\n <span [textContent]=\"'enter'\"></span>\r\n </div>\r\n <div class=\"key-pad-button button-0\" [textContent]=\"'0'\" (click)=\"handleButtonClick('0')\"></div>\r\n <div class=\"key-pad-button button-dot\" [textContent]=\"'.'\" (click)=\"handleButtonClick('.')\"></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KeyPadComponent {\r\n public icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public set model(value: number) {\r\n this._model = value;\r\n this._internalModel = this._model + \"\";\r\n }\r\n\r\n public get model(): number {\r\n return this._model;\r\n }\r\n\r\n @Input()\r\n public showValue: boolean = true;\r\n\r\n @Input()\r\n public emitModelChangeOnEnter: boolean = true;\r\n\r\n @Output()\r\n public modelChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Output()\r\n public internalModelChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public enterClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding('class.co-key-pad')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n public handleKeyDown(event: KeyboardEvent) {\r\n this._keyDown(event);\r\n }\r\n\r\n private readonly _validKeyMap: Map<KeyboardCode | string, string> = new Map<KeyboardCode, string>([\r\n [KeyboardCode.Digit0, \"0\"],\r\n [KeyboardCode.Digit1, \"1\"],\r\n [KeyboardCode.Digit2, \"2\"],\r\n [KeyboardCode.Digit3, \"3\"],\r\n [KeyboardCode.Digit4, \"4\"],\r\n [KeyboardCode.Digit5, \"5\"],\r\n [KeyboardCode.Digit6, \"6\"],\r\n [KeyboardCode.Digit7, \"7\"],\r\n [KeyboardCode.Digit8, \"8\"],\r\n [KeyboardCode.Digit9, \"9\"],\r\n [KeyboardCode.Numpad0, \"0\"],\r\n [KeyboardCode.Numpad1, \"1\"],\r\n [KeyboardCode.Numpad2, \"2\"],\r\n [KeyboardCode.Numpad3, \"3\"],\r\n [KeyboardCode.Numpad4, \"4\"],\r\n [KeyboardCode.Numpad5, \"5\"],\r\n [KeyboardCode.Numpad6, \"6\"],\r\n [KeyboardCode.Numpad7, \"7\"],\r\n [KeyboardCode.Numpad8, \"8\"],\r\n [KeyboardCode.Numpad9, \"9\"],\r\n [KeyboardCode.NumpadDecimal, \".\"],\r\n [KeyboardCode.Period, \".\"]\r\n ])\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n }\r\n\r\n public set internalModel(value: string) {\r\n this._internalModel = value;\r\n this.isNegative = parseFloat(this._internalModel) < 0;\r\n this.internalModelChange.emit(this._internalModel);\r\n }\r\n\r\n public get internalModel(): string {\r\n return this._internalModel;\r\n }\r\n\r\n public isNegative: boolean = false;\r\n\r\n private _model: number = 0;\r\n private _internalModel: string = \"0\";\r\n private _maxCharacters: number = 11;\r\n\r\n public handleMinusClick(event: MouseEvent | KeyboardEvent): void {\r\n const model: number = parseFloat(this.internalModel);\r\n if (model !== 0) {\r\n if (model < 0) {\r\n this.internalModel = Math.abs(model) + \"\";\r\n } else {\r\n this.internalModel = -model + \"\";\r\n }\r\n }\r\n this._emitModelChange();\r\n }\r\n\r\n public handleClearClick(event: MouseEvent | KeyboardEvent): void {\r\n this.internalModel = \"0\";\r\n this._emitModelChange();\r\n }\r\n\r\n public handleBsClick(event: MouseEvent | KeyboardEvent): void {\r\n let wish: string = this.internalModel;\r\n wish = wish.slice(0, wish.length - 1) || \"0\";\r\n if (!isNaN(parseFloat(wish))) {\r\n this.internalModel = parseFloat(wish) + \"\";\r\n }\r\n this._emitModelChange();\r\n }\r\n\r\n public handleButtonClick(chr: string): void {\r\n this._updateModel(chr);\r\n }\r\n\r\n public handleEnterClick(event: MouseEvent | KeyboardEvent): void {\r\n this._emitModelChange(true);\r\n this.enterClick.emit();\r\n }\r\n\r\n private _updateModel(value: string): void {\r\n if (value === undefined || value === null ||\r\n (value === '.' && this.internalModel.indexOf('.') > -1) ||\r\n this.internalModel.length >= this._maxCharacters) {\r\n return;\r\n }\r\n this.internalModel = this.internalModel !== \"0\" ? this.internalModel + value : value;\r\n this._emitModelChange();\r\n }\r\n\r\n private _keyDown(event: KeyboardEvent): void {\r\n if (this._isEnter(event)) {\r\n this.handleEnterClick(event);\r\n } else if (this._isMinus(event)) {\r\n this.handleMinusClick(event);\r\n } else if (this._isEscape(event)) {\r\n this.handleClearClick(event);\r\n } else if (this._isBackspace(event)) {\r\n this.handleBsClick(event);\r\n } else {\r\n this._updateModel(this._validKeyMap.get(event.code));\r\n }\r\n }\r\n\r\n private _isEnter(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Enter || event.code === KeyboardCode.NumpadEnter;\r\n }\r\n\r\n private _isMinus(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Minus || event.code === KeyboardCode.NumpadSubtract;\r\n }\r\n\r\n private _isEscape(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Escape;\r\n }\r\n\r\n private _isBackspace(event: KeyboardEvent): boolean {\r\n return event.code === KeyboardCode.Backspace;\r\n }\r\n\r\n private _emitModelChange(enter: boolean = false): void {\r\n if ((enter && this.emitModelChangeOnEnter) || (!enter && !this.emitModelChangeOnEnter)) {\r\n const model: number = parseFloat(this.internalModel);\r\n if (!isNaN(model)) {\r\n if (enter && this.emitModelChangeOnEnter) {\r\n this.model = model;\r\n }\r\n this.modelChange.emit(model);\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {KeyPadComponent} from './key-pad.component';\r\nimport {IconModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n KeyPadComponent\r\n ],\r\n exports: [\r\n KeyPadComponent\r\n ]\r\n})\r\nexport class KeyPadModule {\r\n}\r\n","import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {Icon} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\n\r\n\r\n@Component({\r\n selector: \"layout-switcher\",\r\n template: `\r\n <div class=\"mask-wrapper\" [class.mask-wrapper-active]='showMaskSidebar' @showHideSidebar>\r\n <div class=\"icon-wrapper\" (click)=\"toggleMaskSidebar()\">\r\n <co-icon class=\"icon-mask\" [iconData]=\"iconCacheService.getIcon(icon.BringForwardRegular)\" [@positionIcon]=\"showMaskSidebar\"></co-icon>\r\n\r\n <co-icon class='icon-mask-sidebar-handle' [@positionHandle]='showMaskSidebar' [iconData]=\"showMaskSidebar ? iconCacheService.getIcon(this.icon.AngleLeftSolid) : iconCacheService.getIcon(this.icon.AngleRightSolid)\"></co-icon>\r\n </div>\r\n\r\n <div class=\"mask-content\" *ngIf=\"showMaskSidebar\" @showHideSidebar>\r\n <span *ngFor='let item of this.layoutItems' [class.active]=\"this.activeIndex === this.layoutItems.indexOf(item)\" [textContent]=\"item\" (click)='activeIndex = this.layoutItems.indexOf(item)' ></span>\r\n </div>\r\n </div>\r\n\r\n `,\r\n animations: [\r\n trigger(\"showHideSidebar\", [\r\n state(\"void\", style({\"width\": \"0\"})),\r\n state(\"*\", style({\"width\": \"*\"})),\r\n transition(\"void <=> *\", animate(200))\r\n ]),\r\n trigger(\"positionIcon\", [\r\n state(\"true\", style({\"left\": \"70px\"})),\r\n state(\"false\", style({\"left\": \"10px\"})),\r\n transition(\"true <=> false\", animate(200))\r\n ]),\r\n trigger(\"positionHandle\", [\r\n state(\"true\", style({\"left\": \"15px\"})),\r\n state(\"false\", style({\"left\": \"75px\"})),\r\n transition(\"true <=> false\", animate(200))\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LayoutSwitcherComponent {\r\n public readonly icon: typeof Icon = Icon;\r\n\r\n @HostBinding('class.layout-switcher')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n @Input()\r\n public layoutItems: string[] = [];\r\n\r\n @Output()\r\n public layoutSwitchEmit:EventEmitter<string> = new EventEmitter<string>();\r\n\r\n public get activeIndex(): number {\r\n return this._activeIndex;\r\n }\r\n\r\n public set activeIndex(index) {\r\n this._activeIndex = index;\r\n this.toggleMaskSidebar();\r\n this.layoutSwitchEmit.emit(this.layoutItems[index]);\r\n }\r\n\r\n public showMaskSidebar: boolean = false;\r\n\r\n private _activeIndex: number = 0;\r\n\r\n\r\n constructor(public iconCacheService: IconCacheService) {\r\n }\r\n\r\n public toggleMaskSidebar(): void {\r\n this.showMaskSidebar = !this.showMaskSidebar;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {LayoutSwitcherComponent} from \"./layout-switcher.component\";\r\nimport {IconModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n LayoutSwitcherComponent,\r\n ],\r\n exports: [\r\n LayoutSwitcherComponent\r\n ]\r\n})\r\nexport class LayoutSwitcherModule {\r\n\r\n}\r\n","import { Component, HostBinding, Input, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport {\r\n AxisModel,\r\n CircularGaugeComponent,\r\n} from \"@syncfusion/ej2-angular-circulargauge\";\r\nimport { AnnotationModel } from \"@syncfusion/ej2-circulargauge/src/circular-gauge/axes/axis-model\";\r\n\r\nenum GaugeColor {\r\n Low = '#E0E0E0',\r\n Medium = '#F88952',\r\n High = '#5FDCB3',\r\n}\r\n\r\n@Component({\r\n selector: \"co-circular-gauge\",\r\n template: `\r\n <div class=\"circular-gauge-wrapper\">\r\n <ejs-circulargauge\r\n class=\"circular-gauge\"\r\n [width]=\"'100%'\"\r\n [axes]=\"getAxes()\">\r\n </ejs-circulargauge>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoCircularGaugeComponent {\r\n\r\n @ViewChild('circulargauge')\r\n public circulargauge: CircularGaugeComponent;\r\n\r\n @Input()\r\n public set value(value: number) {\r\n this._value = value;\r\n this._setColor();\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public get color(): string {\r\n return this._color;\r\n }\r\n\r\n @HostBinding(\"class.co-circular-gauge\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n private _value: number;\r\n private _color: GaugeColor = GaugeColor.Low;\r\n\r\n public majorTicks: Object = {\r\n height: 0,\r\n };\r\n\r\n public minorTicks: Object = {\r\n height: 0\r\n };\r\n\r\n public labelStyle: Object = {\r\n position: 'Inside', useRangeColor: true,\r\n font: {size: '0px', fontFamily: 'inherit'}\r\n };\r\n\r\n public lineStyle: Object = {\r\n width: 0\r\n };\r\n\r\n public ranges: Object[] = [\r\n {\r\n start: 1, end: 100,\r\n radius: '13px',\r\n startWidth: 3, endWidth: 3,\r\n color: '#E0E0E0',\r\n roundedCornerRadius: 0\r\n },\r\n ];\r\n\r\n public getAxes(): AxisModel[] {\r\n return [{\r\n minimum: 0,\r\n maximum: 100,\r\n radius: '15px',\r\n startAngle: 1,\r\n endAngle: 360,\r\n majorTicks: this.majorTicks,\r\n minorTicks: this.minorTicks,\r\n labelStyle: this.labelStyle,\r\n lineStyle: this.lineStyle,\r\n ranges: this.ranges,\r\n pointers: this.getPointers(),\r\n annotations: this.getAnnotations(),\r\n }];\r\n }\r\n\r\n public getPointers(): Object[] {\r\n if (this.value) {\r\n\r\n return [{\r\n roundedCornerRadius: 0,\r\n value: this.value,\r\n type: 'RangeBar',\r\n radius: '13px',\r\n color: this.color,\r\n border: {\r\n width: 0\r\n },\r\n animation: {\r\n enable: false\r\n },\r\n pointerWidth: 3\r\n }]\r\n }\r\n };\r\n\r\n public getAnnotations(): AnnotationModel[] {\r\n if (this.value) {\r\n return [{\r\n content: '<div class=\"annotation\">' +\r\n this.value + '%</div>',\r\n angle: 90,\r\n radius: '50%',\r\n zIndex: '10',\r\n }];\r\n }\r\n }\r\n\r\n private _setColor(): void {\r\n if (this.value == 0) {\r\n this._color = GaugeColor.Low;\r\n } else if (this.value >= 0 && this.value < 100) {\r\n this._color = GaugeColor.Medium;\r\n } else if (this.value == 100) {\r\n this._color = GaugeColor.High;\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { CircularGaugeModule } from \"@syncfusion/ej2-angular-circulargauge\";\r\nimport { CoCircularGaugeComponent } from \"./co-circular-gauge.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CircularGaugeModule\r\n ],\r\n declarations: [\r\n CoCircularGaugeComponent\r\n ],\r\n exports: [\r\n CoCircularGaugeComponent\r\n ]\r\n})\r\nexport class CoCircularGaugeModule {\r\n}\r\n","import { Component, HostBinding, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\nenum GaugeColor {\r\n Low = '#E0E0E0',\r\n Medium = '#F88952',\r\n High = '#5FDCB3',\r\n}\r\n\r\n@Component({\r\n selector: \"co-linear-gauge\",\r\n template: `\r\n <div class=\"linear-gauge\"\r\n [style.background]=\"getStyle()\"\r\n [style.border-color]=\"color\"\r\n [textContent]=\"count ? count : ''\"\r\n ></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CoLinearGaugeComponent {\r\n\r\n @Input()\r\n public set value(value: number) {\r\n this._value = value;\r\n this._setColor();\r\n }\r\n\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n @Input()\r\n public count: number;\r\n\r\n @HostBinding(\"class.co-linear-gauge\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n private _value: number;\r\n public color: GaugeColor = GaugeColor.Low;\r\n\r\n public getStyle(): string {\r\n return `linear-gradient(90deg, ${this.color} 0 ${this.value}%, white ${this.value}% 100%`;\r\n }\r\n\r\n private _setColor(): void {\r\n if (this.value == 0) {\r\n this.color = GaugeColor.Low;\r\n } else if (this.value >= 0 && this.value < 100) {\r\n this.color = GaugeColor.Medium;\r\n } else if (this.value == 100) {\r\n this.color = GaugeColor.High;\r\n }\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { CoLinearGaugeComponent } from \"./co-linear-gauge.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [\r\n CoLinearGaugeComponent\r\n ],\r\n exports: [\r\n CoLinearGaugeComponent\r\n ]\r\n})\r\nexport class CoLinearGaugeModule {\r\n}\r\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\r\nimport { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from \"@angular/core\";\r\n\r\nexport interface StatusbarData {\r\n label: string,\r\n percentage: number,\r\n count?: number,\r\n totalCount?: number,\r\n}\r\n\r\n@Component({\r\n selector: \"co-statusbar\",\r\n template: `\r\n <div class=\"co-statusbar-wrapper\"\r\n *ngIf=\"statusbarData\"\r\n (mouseover)=\"onHover($event)\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onStatusbarClick()\">\r\n <div class=\"statuses\">\r\n <div *ngFor=\"let data of statusbarData; let index = index\" class=\"status\">\r\n <co-linear-gauge [value]=\"data.percentage\" [count]=\"data.count ? data.count : undefined\"></co-linear-gauge>\r\n </div>\r\n </div>\r\n <div class=status-description-popup *ngIf=\"showPopup\" @showHidePopup [ngClass]=\"popupClass\">\r\n <div class=\"status-descriptions\">\r\n <div *ngFor=\"let data of statusbarData; let index = index\" class=\"status-description\">\r\n <co-circular-gauge [value]=\"data.percentage\"></co-circular-gauge>\r\n <span [textContent]=\"data.label\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n animations: [\r\n trigger(\"showHidePopup\", [\r\n state(\"void\", style({opacity: 0})),\r\n state(\"*\", style({opacity: 1})),\r\n transition(\"void <=> *\", animate(\"250ms ease-in-out\")),\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StatusbarComponent {\r\n\r\n @Input()\r\n public set statusbarData(value: StatusbarData[]) {\r\n this._statusbarData = value;\r\n }\r\n\r\n public get statusbarData() {\r\n return this._statusbarData;\r\n }\r\n\r\n @Output()\r\n statusbarClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @HostBinding(\"class.co-statusbar\")\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public showPopup: boolean = false;\r\n public popupClass: string = 'dropdown';\r\n private _statusbarData: StatusbarData[];\r\n private _mouseY: number;\r\n private _windowHeight: number;\r\n\r\n public onHover(event): void {\r\n this.showPopup = true;\r\n\r\n this._mouseY = event.screenY;\r\n this._windowHeight = window.innerHeight;\r\n this.setPopupClass();\r\n }\r\n\r\n public onLeave(): void {\r\n this.showPopup = false;\r\n }\r\n\r\n public onStatusbarClick(): void {\r\n this.statusbarClick.emit();\r\n }\r\n\r\n public setPopupClass(): void {\r\n const popupHeight = this.statusbarData.length * 30;\r\n let dropdownInScreen = (this._mouseY + popupHeight) <= this._windowHeight;\r\n\r\n if (dropdownInScreen) {\r\n this.popupClass = 'dropdown';\r\n } else {\r\n this.popupClass = 'dropup'\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { CoCircularGaugeModule } from \"../circular-gauge/co-circular-gauge.module\";\r\nimport { CoLinearGaugeModule } from \"../linear-gauge/co-linear-gauge.module\";\r\nimport { StatusbarComponent } from \"./statusbar.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoCircularGaugeModule,\r\n CoLinearGaugeModule\r\n ],\r\n declarations: [\r\n StatusbarComponent\r\n ],\r\n exports: [\r\n StatusbarComponent\r\n ]\r\n})\r\nexport class StatusbarModule {\r\n}\r\n","import {SharedConnectorService} from \"./shared-connector.service\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {OptionsService} from \"./options.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\n\r\nexport class SharedService {\r\n\r\n constructor(\r\n protected options: OptionsService,\r\n protected connector: SharedConnectorService,\r\n ) {\r\n }\r\n\r\n public async init(options: any): Promise<void> {\r\n await this.options.initialize(options);\r\n this.connector.connect();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of sharedcomponents\r\n */\r\n\r\nexport * from './lib/components/docsign/docsign.component';\r\nexport * from './lib/components/docsign/docsign.module';\r\nexport * from './lib/components/stock/stock.component';\r\nexport * from './lib/components/stock/stock.module';\r\nexport * from './lib/components/send-method-dialog/send-method-dialog.component';\r\nexport * from './lib/components/send-method-dialog/send-method-dialog.module';\r\nexport * from './lib/components/key-pad/key-pad.component';\r\nexport * from './lib/components/key-pad/key-pad.module';\r\nexport * from './lib/components/layout-switcher/layout-switcher.component';\r\nexport * from './lib/components/layout-switcher/layout-switcher.module';\r\nexport * from './lib/components/circular-gauge/co-circular-gauge.component';\r\nexport * from './lib/components/circular-gauge/co-circular-gauge.module';\r\nexport * from './lib/components/linear-gauge/co-linear-gauge.component';\r\nexport * from './lib/components/linear-gauge/co-linear-gauge.module';\r\nexport * from './lib/components/statusbar/statusbar.component';\r\nexport * from './lib/components/statusbar/statusbar.module';\r\nexport * from './lib/service/shared.service';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SignatureComponent as ɵa} from './lib/components/docsign/component/signature/signature.component';\nexport {SignaturesComponent as ɵb} from './lib/components/docsign/component/signatures/signatures.component';\nexport {StockInformationGridComponent as ɵi} from './lib/components/stock/stock-information-grid/stock-information-grid.component';\nexport {StockInformationComponent as ɵh} from './lib/components/stock/stock-information/stock-information.component';\nexport {StockLocationComponent as ɵj} from './lib/components/stock/stock-location/stock-location.component';\nexport {StockChangeAmountComponent as ɵl} from './lib/components/stock/stock-transfer/stock-change-amount.component';\nexport {StockTransferComponent as ɵk} from './lib/components/stock/stock-transfer/stock-transfer.component';\nexport {DictionaryService as ɵf} from './lib/service/dictionary.service';\nexport {IconCacheService as ɵg} from './lib/service/icon-cache.service';\nexport {OptionsService as ɵe} from './lib/service/options.service';\nexport {SharedConnectorService as ɵd} from './lib/service/shared-connector.service';\nexport {StockService as ɵc} from './lib/service/stock.service';"],"names":["PROP_META_KEY","isNill","BooleanTextDecorator","ComplexArrayDecorator","ArticleStockBo","ArticleTransactionBo","ArticleStock","ArticleTransaction","GaugeColor"],"mappings":"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"}
|