@colijnit/sharedcomponents 1.0.28 → 1.0.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"colijnit-sharedcomponents.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../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/function/not-nill.function.ts","../../../projects/sharedcomponents/src/lib/utils/object-utils.ts","../../../projects/sharedcomponents/src/lib/utils/number-utils.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/components/date-planning/date-planning.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts","../../../projects/sharedcomponents/src/lib/enum/month.enum.ts","../../../projects/sharedcomponents/src/lib/model/constant/all-months.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts","../../../projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts","../../../projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts","../../../projects/sharedcomponents/src/lib/model/date-range.ts","../../../projects/sharedcomponents/src/lib/utils/date-utils.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts","../../../projects/sharedcomponents/src/lib/model/weekday.model.ts","../../../projects/sharedcomponents/src/lib/model/week.model.ts","../../../projects/sharedcomponents/src/lib/utils/calendar.utils.ts","../../../projects/sharedcomponents/src/lib/model/agenda-event.model.ts","../../../projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts","../../../projects/sharedcomponents/src/lib/model/month.model.ts","../../../projects/sharedcomponents/src/lib/model/day.model.ts","../../../projects/sharedcomponents/src/lib/model/agenda-null-objects.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts","../../../projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts","../../../projects/sharedcomponents/src/lib/pipe/master-pipes.ts","../../../projects/sharedcomponents/src/lib/enum/thumb-three-way-state.ts","../../../projects/sharedcomponents/src/lib/utils/map-utils.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/view-select.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-select-event.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts","../../../projects/sharedcomponents/src/lib/service/shared.service.ts","../../../projects/sharedcomponents/src/public-api.ts","../../../projects/sharedcomponents/src/colijnit-sharedcomponents.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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 {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}","// @returns true iff given value does not equals null and does not equal undefined\r\nexport function notNill(value: any): boolean {\r\n return value !== null && value !== undefined;\r\n}\r\n","import {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\n\r\n// Static utility function holder related to objects.\r\nexport class ObjectUtils {\r\n\r\n /**\r\n * Returns whether all given values exist: for all values it holds that they are not null nor undefined. Short-circuit check.\r\n * @param {any} values Rest parameters with all objects to check existence for.\r\n * @returns {boolean} True if ALL given values are not null nor undefined, otherwise false (if at least one value was null or undefined)\r\n */\r\n public static AllExist(...values: any[]): boolean {\r\n let allExist: boolean = true;\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n allExist = false;\r\n break;\r\n }\r\n }\r\n return allExist;\r\n }\r\n\r\n /**\r\n * Copies all properties from object 'from' to object 'to'. Overwrites properties on object 'to' if property already exists.\r\n * Does not copy functions, only properties.\r\n * @param {Object} from The source object from which to copy all properties of to the 'to' object.\r\n * @param {Object} to The object to which the properties of the 'from' object will be copied.\r\n * @param {boolean} [allowUndefined = true] wether the 'to' object may be assigned null or undefined values to any of its properties.\r\n */\r\n public static CopyPropertiesFrom<T>(from: Object, to: T, allowUndefined: boolean = true): T {\r\n if (!to) {\r\n to = {} as T;\r\n }\r\n if (!from) {\r\n return to;\r\n }\r\n ObjectUtils.ForOwnProperty(from, (value: any, key: string) => {\r\n if (allowUndefined || notNill(value)) {\r\n to[key] = value;\r\n }\r\n });\r\n return to;\r\n }\r\n\r\n public static DeepEquals(actual: any, expected: any): boolean {\r\n if (actual === expected) {\r\n return true;\r\n } else if (actual instanceof Date && expected instanceof Date) {\r\n return actual.getTime() === expected.getTime();\r\n } else if (!actual || !expected || typeof actual !== \"object\" && typeof expected !== \"object\") {\r\n return actual === expected;\r\n } else {\r\n return this._objEquiv(actual, expected);\r\n }\r\n }\r\n\r\n // Performs given callback function for each own property of given plain object. Also works on string enums.\r\n public static ForOwnProperty(plainObject: any, callback: (propVal: any, key: string) => any): void {\r\n if (ObjectUtils.IsPlainObject(plainObject)) {\r\n for (const key in plainObject) {\r\n if (plainObject.hasOwnProperty(key) && typeof plainObject[key] !== \"function\") {\r\n const response: boolean = callback(plainObject[key], key);\r\n if (response === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Returns the class name of given argument. The argument can be an object or a class.\r\n public static GetClassName(objectOrClass: any): string {\r\n if (!objectOrClass) {\r\n return undefined;\r\n // arg was a class (or a function..)\r\n } else if (objectOrClass.constructor === Function) {\r\n return objectOrClass.name; // .. which has its readable name stores like this\r\n // else arg was an object\r\n } else {\r\n const constructorString: string = objectOrClass.constructor.toString();\r\n return constructorString.match(/\\w+/g)[1];\r\n }\r\n }\r\n\r\n // Returns a shallow clone of the given original object. The clone is a SIMPLE OBJECT with the same properties as the original.\r\n public static GetShallowClone(originalObject: any, objectClass?: any): any {\r\n let clonedObject: any = undefined;\r\n\r\n if (objectClass) {\r\n clonedObject = new objectClass();\r\n } else {\r\n clonedObject = {};\r\n }\r\n\r\n ObjectUtils.ForOwnProperty(originalObject, (value: any, key: string) => {\r\n clonedObject[key] = value;\r\n });\r\n\r\n return clonedObject;\r\n }\r\n\r\n public static GetDeepClone(originalObject: any, circular: boolean = true): any {\r\n // First create an empty object with\r\n // same prototype of our original source\r\n\r\n let propertyIndex: number;\r\n let descriptor: PropertyDescriptor;\r\n let keys: string[];\r\n let current: any;\r\n let nextSource: any;\r\n let indexOf: number;\r\n const copies: any[] = [{\r\n source: originalObject,\r\n target: Object.create(Object.getPrototypeOf(originalObject))\r\n }];\r\n const cloneObject: any = copies[0].target;\r\n const sourceReferences: any[] = [originalObject];\r\n const targetReferences: any[] = [cloneObject];\r\n\r\n // First in, first out\r\n while (current = copies.shift()) { //NOSONAR\r\n keys = Object.getOwnPropertyNames(current.source);\r\n\r\n for (propertyIndex = 0; propertyIndex < keys.length; propertyIndex++) {\r\n // Save the source's descriptor\r\n descriptor = Object.getOwnPropertyDescriptor(current.source, keys[propertyIndex]);\r\n\r\n if (!descriptor.value || typeof descriptor.value !== \"object\") {\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n continue;\r\n }\r\n\r\n nextSource = descriptor.value;\r\n descriptor.value = Array.isArray(nextSource) ?\r\n [] :\r\n Object.create(Object.getPrototypeOf(nextSource));\r\n\r\n if (circular) {\r\n indexOf = sourceReferences.indexOf(nextSource);\r\n\r\n if (indexOf !== -1) {\r\n // The source is already referenced, just assign reference\r\n descriptor.value = targetReferences[indexOf];\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n continue;\r\n }\r\n\r\n sourceReferences.push(nextSource);\r\n targetReferences.push(descriptor.value);\r\n }\r\n\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n\r\n copies.push({source: nextSource, target: descriptor.value});\r\n }\r\n }\r\n\r\n return cloneObject;\r\n }\r\n\r\n public static IsEmpty(obj: any): boolean {\r\n return isNill(obj) || Object.getOwnPropertyNames(obj).length === 0;\r\n }\r\n\r\n // Returns whether given object is an existing, plain object. That is, it defined, its type if 'object' and it is NOT an array or func.\r\n public static IsPlainObject(object: any): boolean {\r\n return object !== null && !Array.isArray(object) && typeof object !== \"function\" && typeof object === \"object\";\r\n }\r\n\r\n /**\r\n * Returns an instance of given class with data of given dataObject. Only works if that class has a default constructor without args.\r\n * Does not actually create a new object if it alread is an instance of that class.\r\n * @param {any} clazz A class that has a default constructor\r\n * @param {any} [dataObject] The object with data to copy to the new instance of the class\r\n * @returns {any} An object that is an instance of given class, with given data applied to it.\r\n */\r\n public static MakeInstanceOf(clazz: any, dataObject?: any): any {\r\n // dont make a clone if given dataObject already instance of clazz\r\n if (dataObject instanceof clazz) {\r\n return dataObject;\r\n } else {\r\n const asClazz: any = new clazz();\r\n ObjectUtils.CopyPropertiesFrom(dataObject, asClazz);\r\n return asClazz;\r\n }\r\n }\r\n\r\n // Returns the value of a random own property of given object.\r\n public static PickRandomPropertyValue(object: any): any {\r\n if (!object) {\r\n return;\r\n }\r\n\r\n let result: any;\r\n let count: number = 0;\r\n for (const prop in object) {\r\n if (object.hasOwnProperty(prop)) {\r\n count++;\r\n if (Math.random() < 1 / count) {\r\n result = object[prop];\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n // Returns a default if given value doesn't exist, otherwise just value.\r\n public static ValueOrDefault(value: any, defaultReturnVal: any = \"\"): any {\r\n return notNill(value) ? value : defaultReturnVal;\r\n }\r\n\r\n private static _isArguments(x: any): boolean {\r\n const supportsArgsClass: boolean = this._supportsArgumentsClass();\r\n return supportsArgsClass ? this._isArgumentsWhenArgsClassSupported(x) : this._isArgumentsWhenArgsClassNotSupported(x);\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassNotSupported(object: any): boolean {\r\n return object &&\r\n typeof object === \"object\" &&\r\n typeof object.length === \"number\" &&\r\n Object.prototype.hasOwnProperty.call(object, \"callee\") &&\r\n !Object.prototype.propertyIsEnumerable.call(object, \"callee\") ||\r\n false;\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassSupported(object: any): boolean {\r\n return Object.prototype.toString.call(object) === \"[object Arguments]\";\r\n }\r\n\r\n private static _isBuffer(x: any): boolean {\r\n if (!x || typeof x !== \"object\" || typeof x.length !== \"number\") {\r\n return false;\r\n }\r\n if (typeof x.copy !== \"function\" || typeof x.slice !== \"function\") {\r\n return false;\r\n }\r\n return !(x.length > 0 && typeof x[0] !== \"number\");\r\n }\r\n\r\n private static _isUndefinedOrNull(value: any): boolean {\r\n return value === null || value === undefined;\r\n }\r\n\r\n private static _objEquiv(a: any, b: any): boolean {\r\n let i: number, key: string;\r\n if (this._isUndefinedOrNull(a) || this._isUndefinedOrNull(b)) {\r\n return false;\r\n }\r\n\r\n if (a.prototype !== b.prototype) {\r\n return false;\r\n }\r\n\r\n if (this._isArguments(a)) {\r\n if (!this._isArguments(b)) {\r\n return false;\r\n }\r\n a = Array.prototype.slice.call(a);\r\n b = Array.prototype.slice.call(b);\r\n return this.DeepEquals(a, b);\r\n }\r\n if (this._isBuffer(a)) {\r\n if (!this._isBuffer(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n let ka: string[];\r\n let kb: string[];\r\n try {\r\n ka = Object.keys(a);\r\n kb = Object.keys(b);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (ka.length !== kb.length) {\r\n return false;\r\n }\r\n\r\n ka.sort();\r\n kb.sort();\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n if (ka[i] !== kb[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n key = ka[i];\r\n if (!this.DeepEquals(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return typeof a === typeof b;\r\n }\r\n\r\n private static _supportsArgumentsClass(): boolean {\r\n return Object.prototype.toString.call(arguments) === \"[object Arguments]\";\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object-utils\";\r\nimport {CheckWithinSteppedBoundsResult} from \"./check-within-stepped-bounds-result\";\r\nimport {ArrayUtils} from \"./array-utils\";\r\nimport {CheckPrecisionAndScaleResult} from \"./check-precision-and-scale-result\";\r\nimport {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\n\r\n// Static utility function holder related to numeric variable evaluations and operations.\r\nexport class NumberUtils {\r\n // For user-typed number input; supports comma's as decimal delimiter.\r\n public static ParseIntNumberInput(arg: any): number {\r\n return NumberUtils.ParseInt(NumberUtils._NumberInputToNumberStr(arg));\r\n }\r\n\r\n // Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.\r\n public static ParseInt(arg: any): number {\r\n if (isNill(arg) || Array.isArray(arg)) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(arg, 10);\r\n }\r\n\r\n // For user-typed number input; supports comma's as decimal delimiter.\r\n public static ParseFloatNumberInput(arg: any, decimalPrecision: number = 2): number {\r\n return NumberUtils.ParseFloat(NumberUtils._NumberInputToNumberStr(arg), decimalPrecision);\r\n }\r\n\r\n public static ParseFloatNumberInputKeepPrecision(arg: any): number {\r\n const correctedInputStr: string = NumberUtils._NumberInputToNumberStr(arg);\r\n const decimalPrecision: number = this.GetDecimalPlaces(correctedInputStr);\r\n return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param {any} arg The argument to parse to a float\r\n * @param {number} decimalPrecision The number of decimals, or the precision, the parsed return float should have\r\n * @returns {number} NaN if not possible, else the parsed float value\r\n */\r\n public static ParseFloat(arg: any, decimalPrecision: number = 2): number {\r\n if (!ObjectUtils.AllExist(arg, decimalPrecision) || Array.isArray(arg)) {\r\n return NaN;\r\n }\r\n\r\n if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {\r\n decimalPrecision = 2;\r\n // toFixed() can only handle up until 20\r\n } else if (decimalPrecision > 20) {\r\n decimalPrecision = 20;\r\n }\r\n\r\n return parseFloat(parseFloat(arg).toFixed(decimalPrecision));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param arg The argument to parse to a float\r\n * @returns {number} The argument as a float with its original decimal precision intact\r\n */\r\n public static ParseFloatKeepPrecision(arg: any): number {\r\n const decimalPrecision: number = this.GetDecimalPlaces(arg);\r\n return this.ParseFloat(arg, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.\r\n * @param arg\r\n * @param {number} [defaultValue = 0]\r\n * @returns {number}\r\n */\r\n public static ParseNumberOrDefault(arg: any, defaultValue: number = 0): number {\r\n if (Array.isArray(arg)) {\r\n return defaultValue;\r\n }\r\n\r\n if (!NumberUtils.IsNumber(arg)) {\r\n arg = parseFloat(arg);\r\n arg = isNaN(arg) ? defaultValue : arg;\r\n }\r\n return arg;\r\n }\r\n\r\n // Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.\r\n public static IsInteger(arg: any): boolean {\r\n if (isNaN(arg) || Array.isArray(arg)) {\r\n return false;\r\n }\r\n const argAsFloat: number = parseFloat(arg);\r\n return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'\r\n }\r\n\r\n // Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.\r\n public static GetDecimalPlaces(arg: any, maxAnswer: number = 1000): number {\r\n const match: RegExpMatchArray = (\"\" + arg).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n let answer: number = Math.max(0,\r\n // number of digits right of decimal point.\r\n (match[1] ? match[1].length : 0)\r\n // adjust for scientific notation\r\n - (match[2] ? +match[2] : 0));\r\n\r\n if (answer > maxAnswer) {\r\n answer = maxAnswer;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.\r\n public static ParseNumberInputOrDefault(numberInput: any, defaultValue: number = 0): number {\r\n return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);\r\n }\r\n\r\n // Returns whether the type of given argument is 'number'.\r\n public static IsNumber(arg: any): boolean {\r\n return typeof arg === \"number\" && !isNaN(arg);\r\n }\r\n\r\n /**\r\n * Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number')\r\n * Our exact copy of AS Flex'es isNaN(arg) function. Always use this method for copying Flex isNaN(..) occurences into TypeScript.\r\n * @param arg\r\n * @returns {boolean}\r\n * @constructor\r\n */\r\n public static IsNaN(arg: any): boolean {\r\n return isNaN(arg) || !NumberUtils.IsNumber(arg);\r\n }\r\n\r\n // Our copy of CoMath.NaN. Returns number, or substitute if NumberUtils.IsNaN(number) holds true.\r\n public static NaN(number: any, substitute: number = 0): number {\r\n return NumberUtils.IsNaN(number) ? substitute : number;\r\n }\r\n\r\n // Returns whether the value is parasable as a number.\r\n public static IsParsableNumber(arg: any): boolean {\r\n if (Array.isArray(arg)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(arg));\r\n }\r\n\r\n public static IsParsableNumberInput(numberInput: any): boolean {\r\n return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));\r\n }\r\n\r\n /**\r\n * Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.\r\n * I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg\r\n * IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.\r\n */\r\n public static IsStringNumber(arg: string): boolean {\r\n if (!NumberUtils.IsParsableNumber(arg)) {\r\n return false;\r\n } else {\r\n return arg.toString().length === parseFloat(arg).toString().length;\r\n }\r\n }\r\n\r\n public static IsListOfNumbers(arg: string, separator: string = \",\"): boolean {\r\n const nrs: string[] = arg.split(separator);\r\n if (nrs.length === 0) {\r\n return false;\r\n }\r\n return nrs.filter(s => NumberUtils.IsStringNumber(s)).length === nrs.length;\r\n }\r\n\r\n // Returns given argument as a string representation of a number parse, e.g. \"1\" for a number parse result of arg to 1.\r\n public static ParseStringNumber(arg: string): number {\r\n if (!this.IsStringNumber(arg)) {\r\n return NaN;\r\n }\r\n\r\n return NumberUtils.ParseFloatKeepPrecision(arg);\r\n }\r\n\r\n public static ParseStringNumberDefault(arg: string | any, defaultValue: number = 0): number {\r\n return NumberUtils.NaN(NumberUtils.ParseStringNumber(arg), defaultValue);\r\n }\r\n\r\n /**\r\n * Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.\r\n * Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.\r\n */\r\n public static RandomInt(lowerBoundInt: number, upperBoundInt: number): number {\r\n if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {\r\n return NaN;\r\n }\r\n\r\n lowerBoundInt = Math.trunc(lowerBoundInt);\r\n upperBoundInt = Math.trunc(upperBoundInt);\r\n\r\n if (lowerBoundInt === upperBoundInt) {\r\n return lowerBoundInt;\r\n }\r\n\r\n const delta: number = upperBoundInt - lowerBoundInt;\r\n return (Math.round(Math.random() * delta) + lowerBoundInt);\r\n }\r\n\r\n // Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.\r\n public static AddThousandsCommasTo(value: any): string {\r\n if (isNill(value)) {\r\n return \"\";\r\n }\r\n\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n /**\r\n * Function used to check wether a given number is composed of another number, power-of-two wise.\r\n * Example usage: NumberUtils.NumIsComposedOf(articleListObject.publication, ArticlePublication.Selector).\r\n * This would return whether or not that articleListObject was publicated for selector or not, where articleListObject.publication\r\n * was possibly a 'COMPOSITE that was made out of (including)' ArticlePublication.Selector.\r\n */\r\n public static NumIsComposedOfOtherPowTwoNum(bigNrToCheck: number, powTwoNumItShouldBeComposedOf: number): boolean {\r\n if (!bigNrToCheck) {\r\n return false;\r\n } else if (!powTwoNumItShouldBeComposedOf) {\r\n return true;\r\n } else {\r\n return ((bigNrToCheck & powTwoNumItShouldBeComposedOf) === powTwoNumItShouldBeComposedOf);\r\n }\r\n }\r\n\r\n /**\r\n * Returns given nr, or the given default number (default 0) if the nr number was undefined or otherwise not a number.\r\n * Same as CoMath.NaN from AS code (used as its substitute in transaction logic)\r\n * @param nr\r\n * @param defaultNr\r\n * @returns {number}\r\n */\r\n public static NrOrDefault(nr: number, defaultNr: number = 0): number {\r\n if (notNill(nr) && NumberUtils.IsNumber(nr)) {\r\n return nr;\r\n } else {\r\n return defaultNr;\r\n }\r\n }\r\n\r\n /**\r\n * Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.\r\n * This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the\r\n * precision and scale of the number in the db declaration.\r\n *\r\n * I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.\r\n *\r\n * @param {number} nrToCheck\r\n * @param {number} precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'\r\n * @param {number} [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003\r\n * @returns {CheckPrecisionAndScaleResult} Whether given nrToCheck is ok for given precision and scale, and if not, the\r\n * nearest number that IS ok for those constraints.\r\n */\r\n public static CheckPrecisionAndScale(nrToCheck: number, precision: number, scale: number = 0): CheckPrecisionAndScaleResult {\r\n // let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision\r\n if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {\r\n return {isOk: true, nearestOkNr: NaN};\r\n }\r\n // no number can have 0 or less than 0 significant digits, in our universe\r\n if (precision < 1 || precision - scale < 1) {\r\n return {isOk: false, nearestOkNr: NaN};\r\n }\r\n // begin check\r\n const isNegative: boolean = (nrToCheck < 0);\r\n const nrParts: string[] = nrToCheck.toString().split(\".\");\r\n // remove minus sign if negative\r\n if (isNegative) {\r\n nrParts[0] = nrParts[0].slice(1);\r\n }\r\n const numCountBeforeDot: number = nrParts[0].length;\r\n const allowedNumCountBeforeDot: number = precision - scale;\r\n if (numCountBeforeDot <= allowedNumCountBeforeDot) {\r\n return {isOk: true, nearestOkNr: nrToCheck};\r\n } else {\r\n // cut a part from the \"before decimal number\" so that the number is not too big anymore\r\n const numCountToRemove: number = numCountBeforeDot - allowedNumCountBeforeDot;\r\n // remove the right-most numbers before the decimal dot\r\n nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);\r\n // add minus sign again if it was negative\r\n if (isNegative) {\r\n nrParts[0] = \"-\" + nrParts[0];\r\n }\r\n // build and return composite number again\r\n let nearestOkNr: number;\r\n if (nrParts[1]) {\r\n nearestOkNr = Number(nrParts[0] + \".\" + nrParts[1]);\r\n } else {\r\n nearestOkNr = Number(nrParts[0]);\r\n }\r\n return {isOk: false, nearestOkNr: nearestOkNr};\r\n }\r\n }\r\n\r\n /**\r\n * Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,\r\n * with N integer or 0.\r\n * @param {number} nrToCheck Number to check whether it's within the given bounds\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns {CheckWithinSteppedBounds} Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.\r\n */\r\n public static CheckWithinSteppedBounds(\r\n nrToCheck: number,\r\n min: number,\r\n max: number,\r\n stepSize: number = 1\r\n ): CheckWithinSteppedBoundsResult {\r\n if (nrToCheck < min || nrToCheck > max) {\r\n return {isOk: false, remainder: undefined};\r\n }\r\n\r\n // we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)\r\n let remainder: number = (nrToCheck - min) % stepSize;\r\n // correct float for largest precision amongst input numbers\r\n remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));\r\n return {isOk: (remainder === 0), remainder: remainder};\r\n }\r\n\r\n /**\r\n * Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that\r\n * nr = min + N * step with N integer or 0.\r\n * @param {number} originalNr Find closest answer to this number\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns {boolean} The closest OK number for bounds.\r\n */\r\n public static GetNearestNumberWithinSteppedBounds(originalNr: number, min: number, max: number, stepSize: number = 1): number {\r\n if (originalNr < min) {\r\n return min;\r\n } else if (originalNr > max) {\r\n return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);\r\n }\r\n\r\n const boundsCheck: CheckWithinSteppedBoundsResult = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);\r\n if (boundsCheck.isOk) {\r\n return originalNr;\r\n }\r\n\r\n let answer: number;\r\n\r\n const remainder: number = boundsCheck.remainder;\r\n if (remainder) {\r\n // round up or down?\r\n if ((remainder / stepSize) < 0.5) {\r\n // round down, but not below min\r\n answer = (originalNr - remainder >= min ? originalNr - remainder : min);\r\n } else {\r\n // round up, but not above max\r\n answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :\r\n NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));\r\n }\r\n } else {\r\n // is this real life, why wasn't our stepped bounds check OK?\r\n answer = originalNr;\r\n }\r\n\r\n // 'correct' float errors\r\n answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns the true maximum allowed value for the given \"stepped bounds\": min, stepSize and max, for which it holds that each allowed\r\n * value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.\r\n * @param min\r\n * @param max\r\n * @param stepSize\r\n */\r\n public static GetTrueSteppedBoundsMax(min: number, max: number, stepSize: number = 1): number {\r\n // solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X\r\n const maxSteps: number = Math.floor((max - min) / stepSize);\r\n // 'correct' float errors\r\n return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));\r\n }\r\n\r\n // Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.\r\n public static GetNearestNumberWithinBounds(originalNr: number, min: number, max: number): number {\r\n let answer: number = originalNr;\r\n\r\n if (originalNr < min) {\r\n answer = min;\r\n } else if (originalNr > max) {\r\n answer = max;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Returns the string representation of given number. If it's not a number, returns the empty string.\r\n public static ToString(nr: number): string {\r\n if (!NumberUtils.IsNaN(nr)) {\r\n return \"\" + nr;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public static DecimalsToStepIncrement(numberOfDecimals: number): number {\r\n return Math.pow(10, -1 * numberOfDecimals);\r\n }\r\n\r\n public static Round(value: number, decimals: number): number {\r\n const factor: number = Math.pow(10, decimals);\r\n return Math.round(value * factor) / factor;\r\n }\r\n\r\n // @returns The inclusive max value\r\n public static PrecisionScaleToMaxValue(precision: number, scale: number): number {\r\n const oneStep: number = this.DecimalsToStepIncrement(scale);\r\n const maxExclusive: number = Math.pow(10, precision - scale);\r\n return maxExclusive - oneStep;\r\n }\r\n\r\n // @returns the difference between given 2 numbers\r\n public static DifferenceBetweenNumbers(numberA: number, numberB: number): number {\r\n return Math.abs(numberA - numberB);\r\n }\r\n\r\n private static _GetLargestDecimalPrecisionOf(...args: number[]): number {\r\n const result = ArrayUtils.GetMaxCalculatedValue(args, (arg: number) => {\r\n return NumberUtils.GetDecimalPlaces(arg);\r\n });\r\n return result;\r\n }\r\n\r\n // Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.\r\n private static _NumberInputToNumberStr(numberInput: string): string {\r\n return (numberInput + \"\").replace(\",\", \".\");\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object-utils\";\r\nimport {NumberUtils} from \"./number-utils\";\r\nimport {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./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 * Returns max value from all resulting values from applying given itemValueFunction to all items of given array.\r\n * @param array\r\n * @param itemValueFunction The function applied to each array item that gives it a numerical value. The max num val found is returned.\r\n */\r\n public static GetMaxCalculatedValue<T>(array: T[], itemValueFunction: (item: T) => number): number {\r\n if (!array || !itemValueFunction) {\r\n return NaN;\r\n }\r\n\r\n let max: number = undefined;\r\n\r\n const len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const valueCur: number = itemValueFunction.call(this);\r\n if (valueCur > max) {\r\n max = valueCur;\r\n }\r\n }\r\n\r\n return max;\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\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.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 getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getOrderConfirmationDefaultSendMethod(relationId).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getPurchaseOrderEmailLayouts(transactionUUID).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 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 {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\nimport {SharedConnectorService} from \"./shared-connector.service\";\r\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.bo\";\r\nimport {SendMethodParams} from \"../components/send-method-dialog/send-method-params.interface\";\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 printLayoutParams: SendMethodParams;\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 getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {\r\n return await this._sharedService.getOrderConfirmationDefaultSendMethod(relationId);\r\n }\r\n\r\n public async getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {\r\n return await this._sharedService.getDefaultEmailAddressListForOrderConfirmation(transactionUUID);\r\n }\r\n\r\n public async getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {\r\n return await this._sharedService.getPurchaseOrderEmailLayouts(transactionUUID);\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 **/\n\nexport const IconSvg: {[iconName: string]: string} = {\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>\",\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>\",\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>\",\n \"arrow_point_left\": \"<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=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\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>\",\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>\",\n \"check_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10ZM23,34l-6.24-9.09,2.81-3.59L23,26.45,27.66,16h5.58Z\\\" fill=\\\"#484f60\\\"/></svg>\",\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>\",\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>\",\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>\",\n \"envelope_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\\\"/></svg>\",\n \"file_pdf_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z\\\"/></svg>\",\n \"file_pdf_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\\\"/></svg>\",\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>\",\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>\",\n \"print_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M111.1 48h254.1L400 81.94V160H448V81.94c0-12.73-5.057-24.94-14.06-33.94l-33.94-33.94C391 5.057 378.8 0 366.1 0H111.1C85.49 0 64.01 21.48 64 47.98l.002 82.28c-.002 0 .002 0 0 0L64 160h48.01L111.1 48zM440 192H72C32.3 192 0 224.3 0 264v112c0 13.25 10.75 24 24 24H80V480c0 17.67 14.33 32 32 32h288c17.67 0 32-14.33 32-32v-80h56c13.25 0 24-10.75 24-24v-112C512 224.3 479.7 192 440 192zM384 464H128v-96h256V464zM464 352h-32c0-17.67-14.33-32-32-32h-288c-17.67 0-32 14.33-32 32h-32V264c0-13.23 10.77-24 24-24h368c13.23 0 24 10.77 24 24V352z\\\"/></svg>\",\n \"print_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 192H64C28.65 192 0 220.7 0 256v96c0 17.67 14.33 32 32 32h32v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h32c17.67 0 32-14.33 32-32V256C512 220.7 483.3 192 448 192zM384 448H128v-96h256V448zM432 296c-13.25 0-24-10.75-24-24c0-13.27 10.75-24 24-24s24 10.73 24 24C456 285.3 445.3 296 432 296zM128 64h229.5L384 90.51V160h64V77.25c0-8.484-3.375-16.62-9.375-22.62l-45.25-45.25C387.4 3.375 379.2 0 370.8 0H96C78.34 0 64 14.33 64 32v128h64V64z\\\"/></svg>\",\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>\",\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>\"\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 **/\n\nexport enum Icon {\n AngleLeftSolid = \"angle_left_solid\",\n AngleRightSolid = \"angle_right_solid\",\n ArrowFatRight = \"arrow_fat_right\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n BringForwardRegular = \"bring_forward_regular\",\n CheckRound = \"check_round\",\n DeleteLeftRegular = \"delete_left_regular\",\n DeliveryTruck = \"delivery_truck\",\n Email = \"email\",\n EnvelopeRegular = \"envelope_regular\",\n FilePdfRegular = \"file_pdf_regular\",\n FilePdfSolid = \"file_pdf_solid\",\n Pdf = \"pdf\",\n Print = \"print\",\n PrintRegular = \"print_regular\",\n PrintSolid = \"print_solid\",\n SignatureField = \"signature_field\",\n Xml = \"xml\"\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\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.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 if (!(this._stockService.printLayoutParams instanceof PrintPriceStickers)) {\r\n this._stockService.printLayoutParams.goodId = data.goodId;\r\n this._stockService.printLayoutParams.warehouse = data.warehouseNo;\r\n }\r\n this.showSendMethodDialog =! this.showSendMethodDialog;\r\n }\r\n\r\n public printStockStickers(): void {\r\n this._stockService.getPrintStockStickers(this._stockService.printLayoutParams);\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, OnInit,\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\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.bo\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\nimport {SendMethodParams} from \"./send-method-params.interface\";\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 id=\"sendOptionsDialog\" [headerTemplate]=\"headerTemplate\" *ngIf=\"showDialog\" [showCloseIcon]=\"showExitButton\" (closeClick)=\"closeDialogClick()\">\r\n <ng-template #headerTemplate>\r\n <h2 [textContent]=\"headerTitle\"></h2>\r\n </ng-template>\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 of emailAdresses\"\r\n [(model)]=\"email.name\"\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\" (click)=\"getDefaultEmailLayouts()\">\r\n <co-input-combo-box\r\n [(model)]=\"sendMethodParams.reportId\"\r\n [collection]=\"emailLayouts\"\r\n [fields]=\"emailLayoutField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n\r\n <div *ngIf=\"isDocSignEnabled\" 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 class=\"custom-button-wrapper send-button\" (click)=\"sendEmail()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.Email)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <ione-docsign *ngIf=\"docSign\"></ione-docsign>\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)]=\"sendMethodParams.reportId\"\r\n [collection]=\"printLayouts\"\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)]=\"sendMethodParams.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 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.PrintRegular)\"></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)]=\"sendMethodParams.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.PrintRegular)\"></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>\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 OnInit, 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 = true;\r\n\r\n @Input()\r\n public priceListCodeData: any;\r\n\r\n @Input()\r\n public transactionUUID: string;\r\n\r\n public sendOptions: {option: SendOption, iconName: Icon}[] = [\r\n { option: SendOption.Email,\r\n iconName: this.icons.EnvelopeRegular,\r\n },\r\n { option: SendOption.Print,\r\n iconName: this.icons.PrintRegular,\r\n },\r\n { option: SendOption.Pdf,\r\n iconName: this.icons.FilePdfRegular,\r\n },\r\n { option: SendOption.Xml,\r\n iconName: this.icons.FilePdfRegular,\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: any[] = [];\r\n public printTemplatesField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public emailLayoutField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public priceListDataField: CoDropDownListFields = {text: \"name\", value: \"priceListCode\"};\r\n public upAndLoaded: boolean = false;\r\n public models: boolean[] = [false, false, true];\r\n\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 relationId: number;\r\n\r\n @Input()\r\n public emailAdresses: any[] = [];\r\n\r\n @Input()\r\n public emailLayouts: any[];\r\n\r\n @Input()\r\n public printLayouts: any[] = [];\r\n\r\n @Input()\r\n public defaultSendMethod: any;\r\n\r\n @Input()\r\n public defaultEmailAdresses: any;\r\n\r\n @Input()\r\n public isDocSignEnabled: boolean = false;\r\n\r\n @Input()\r\n public docSign: boolean = false;\r\n\r\n @Input()\r\n public set articleData(data: any) {\r\n if (!(this.printLayoutParams instanceof PrintPriceStickers)) {\r\n this.sendMethodParams.goodId = data.goodId;\r\n this.sendMethodParams.warehouse = data.warehouseNo;\r\n }\r\n };\r\n\r\n @Output()\r\n public startSignatureClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public sendEmailClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printButtonClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public emailLayoutClicked: 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 @Output()\r\n public printTemplatesClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public defaultSendMethodClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printLayoutParams: EventEmitter<SendMethodParams> = new EventEmitter<SendMethodParams>();\r\n\r\n public sendMethodParams: SendMethodParams = new class implements SendMethodParams {\r\n amount: number;\r\n batch: string;\r\n goodId: number;\r\n goodIds: number[];\r\n location: string;\r\n priceListCode: string;\r\n printerName: string;\r\n reportId: number;\r\n serial: string;\r\n warehouse: number;\r\n name: string;\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 ngOnInit() {\r\n this.getDefaultSendMethod();\r\n this.getDefaultEmailLayouts();\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.docSign = !this.docSign;\r\n this.startSignatureClicked.emit();\r\n }\r\n\r\n public sendEmail(): void {\r\n this.sendEmailClicked.emit();\r\n this.printLayoutParams.emit(this.sendMethodParams);\r\n }\r\n\r\n public handlePrintClicked(): void {\r\n if (this.sendMethodParams.printerName) {\r\n this.printButtonClicked.emit();\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.sendMethodParams.printerName = printer.name;\r\n this.showPrinterSelections =! this.showPrinterSelections;\r\n }\r\n\r\n public getPrintTemplates(): any {\r\n this.printTemplatesClicked.emit();\r\n }\r\n\r\n public getDefaultSendMethod(): void {\r\n this.defaultSendMethodClicked.emit();\r\n }\r\n\r\n public async getDefaultEmailLayouts(): Promise<void> {\r\n this.emailLayoutClicked.emit();\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, CoDialogModule,\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\nimport {DocsignModule} from \"../docsign/docsign.module\";\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 DocsignModule,\r\n CoDialogModule\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 {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {CalendarView} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\n@Component({\r\n selector: \"sc-date-planning\",\r\n template: `\r\n <div class=\"sc-agenda\">\r\n <div class=\"content-wrapper\">\r\n <calendar *ngIf=\"calendarNavigation\"\r\n [view]=\"view\"\r\n [(days)]=\"days\"\r\n [selectedDate]=\"selectedDate\" (selectedDateChange)=\"doChangeSelectedDate($event)\"></calendar>\r\n <div class=\"agenda-content-wrapper mini-scrollbar\">\r\n <div class=\"agenda-content\">\r\n <agenda-header [view]=\"view\" (viewChange)=\"doChangeView($event)\"\r\n [firstAvailableDate]=\"firstAvailableDate\"\r\n [eventsPerDay]=\"eventsPerDay\"\r\n [selectedDate]=\"selectedDate\"\r\n (selectedDateChange)=\"doChangeSelectedDate($event)\"\r\n (rangeChange)=\"doChangeSelectedDate($event, true)\"></agenda-header>\r\n <agenda-view [view]=\"view\"\r\n [selectedDate]=\"selectedDate\"\r\n [eventsPerDay]=\"eventsPerDay\"\r\n (eventChecked)=\"eventChecked.emit($event)\"></agenda-view>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <co-button *ngIf=\"showButton && eventsPerDay.length > 0\" class=\"text-only select-agenda-button\"\r\n [label]=\"buttonLabel\"\r\n (click)=\"buttonClick.emit($event)\">\r\n </co-button>\r\n `,\r\n animations: [\r\n trigger(\"showHideWindow\", [\r\n state(\"void\", style({transform: \"scaleY(0)\"})),\r\n state(\"*\", style({transform: \"scaleY(1)\"})),\r\n transition(\":enter, :leave\", [\r\n animate(\"200ms ease-in-out\")\r\n ])\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class DatePlanningComponent {\r\n\r\n @Input()\r\n public calendarNavigation: boolean = false;\r\n\r\n @Input()\r\n public showButton: boolean = false;\r\n\r\n @Input()\r\n public selectedDate: Date;\r\n\r\n @Input()\r\n public firstAvailableDate: Date;\r\n\r\n @Input()\r\n public buttonLabel: string = \"\";\r\n\r\n @Input()\r\n public eventsPerDay: any = [];\r\n\r\n @Input()\r\n public view: CalendarView;\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public readonly rangeChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public readonly viewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n @Output()\r\n public readonly buttonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @ViewChild(\"dayStart\", { static: true })\r\n public dayStart: ElementRef;\r\n\r\n public days: Date[] = [];\r\n private _selectedDate: Date = new Date();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n private renderer: Renderer2\r\n ) {\r\n }\r\n\r\n public doChangeSelectedDate(date: Date, rangeChanged: boolean = false): void {\r\n this.selectedDate = new Date(date);\r\n if (rangeChanged) {\r\n this.rangeChange.next(this.selectedDate);\r\n } else {\r\n this.selectedDateChange.next(this.selectedDate);\r\n }\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n public doChangeView(view: CalendarView): void {\r\n this.view = view;\r\n this.viewChange.next(this.view);\r\n }\r\n\r\n public scrollToDayStart(): void {\r\n if (this.dayStart !== undefined) {\r\n const dayStart: any = this.renderer.selectRootElement(\"#dayStart\");\r\n if (dayStart) {\r\n setTimeout(() => {\r\n dayStart.scrollIntoView({behavior: \"instant\", block: \"center\"});\r\n });\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"calendar-all-years\",\r\n template: `\r\n <div *ngFor=\"let currentYear of years\"\r\n [textContent]=\"currentYear\"\r\n [class.selected-year]=\"currentYear === year\"\r\n class=\"pointer-hover\"\r\n (click)=\"year = currentYear; yearChange.emit(year)\"\r\n ></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CalendarAllYearsComponent implements OnInit {\r\n\r\n @Input()\r\n public year: number;\r\n\r\n @Output()\r\n public readonly yearChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n public years: number[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.years.length = 0;\r\n let start: number = this._determineStart();\r\n const end: number = start + 11;\r\n while (start < end) {\r\n this.years.push(start);\r\n start++;\r\n }\r\n }\r\n\r\n private _determineStart(): number {\r\n if (this.year > 0) {\r\n let thisYear: number = this.year;\r\n let thisYearLastDigit: number = parseInt(thisYear.toString().split(\"\").pop());\r\n while (thisYearLastDigit > 0) {\r\n thisYear--;\r\n thisYearLastDigit = parseInt(thisYear.toString().split(\"\").pop());\r\n }\r\n return thisYear;\r\n }\r\n return 0;\r\n }\r\n\r\n}\r\n","// All the months. Values are corresponding dictionary keys in text_nl.\r\nexport enum Month {\r\n January = \"JANUARY\",\r\n Februrary = \"FEBRUARY\",\r\n March = \"MARCH\",\r\n April = \"APRIL\",\r\n May = \"MAY\",\r\n June = \"JUNE\",\r\n July = \"JULY\",\r\n August = \"AUGUST\",\r\n September = \"SEPTEMBER\",\r\n October = \"OCTOBER\",\r\n November = \"NOVEMBER\",\r\n December = \"DECEMBER\"\r\n}\r\n","import {Month} from \"../../enum/month.enum\";\r\n\r\n// All the months in a year. The order is important, and should remain January - to December!\r\nexport const ALL_MONTHS: Month[] = [\r\n Month.January,\r\n Month.Februrary,\r\n Month.March,\r\n Month.April,\r\n Month.May,\r\n Month.June,\r\n Month.July,\r\n Month.August,\r\n Month.September,\r\n Month.October,\r\n Month.November,\r\n Month.December\r\n];\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ALL_MONTHS} from \"../../../../model/constant/all-months\";\r\n\r\n@Component({\r\n selector: \"calendar-all-months\",\r\n template: `\r\n <div *ngFor=\"let currentMonth of months; let index = index\"\r\n [class.selected-month]=\"month === index\"\r\n [textContent]=\"currentMonth\"\r\n class=\"pointer-hover\"\r\n (click)=\"month = index; monthChange.emit(month)\"\r\n ></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CalendarAllMonthsComponent implements OnInit {\r\n\r\n @Input()\r\n public month: number;\r\n\r\n @Input()\r\n public shortDescriptions: boolean = false;\r\n\r\n @Output()\r\n public monthChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n public months: string[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.months.length = 0;\r\n this.months = ALL_MONTHS;\r\n }\r\n}\r\n","import {Component, DoCheck, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {ALL_MONTHS} from \"../../../../model/constant/all-months\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"calendar-header\",\r\n template: `\r\n <div #monthYearSelect class=\"calendar-header-row\">\r\n <co-icon class=\"pointer-hover\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subMonth()\"></co-icon>\r\n <div (click)=\"showMonthYearSelect = true\">\r\n <div class=\"month\" [textContent]=\"currentMonth\"></div>\r\n <div class=\"year\" [textContent]=\"currentYear\"></div>\r\n </div>\r\n <co-icon class=\"pointer-hover\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addMonth()\"></co-icon>\r\n </div>\r\n <ng-template #template>\r\n <div *ngIf=\"showMonthYearSelect\"\r\n (clickOutside)=\"hideMonthYearSelection()\"\r\n class=\"select-month-year-window\" [class.expanded]=\"expanded\" @showMonthYearSelect\r\n >\r\n <div>\r\n <calendar-all-months [month]=\"currentMonth\" (monthChange)=\"setNewMonth($event)\" shortDescriptions></calendar-all-months>\r\n <div class=\"vertical-divider\"></div>\r\n <calendar-all-years [year]=\"currentYear\" (yearChange)=\"setNewYear($event)\"></calendar-all-years>\r\n </div>\r\n<!-- <default-ok-cancel-buttons-->\r\n<!-- (okClick)=\"changeMonthYear()\"-->\r\n<!-- (cancelClick)=\"showMonthYearSelect = false\"-->\r\n<!-- >-->\r\n<!-- </default-ok-cancel-buttons>-->\r\n </div>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger(\"showMonthYearSelect\", [\r\n state(\"void\", style({\r\n \"transform-origin\": \"top center\",\r\n transform: \"scaleY(0)\"\r\n })),\r\n state(\"*\", style({\r\n \"transform-origin\": \"top center\",\r\n transform: \"scaleY(1)\"\r\n })),\r\n transition(\":enter, :leave\", [\r\n animate(\"200ms ease-in-out\")\r\n ])\r\n ])\r\n ]\r\n})\r\n\r\nexport class CalendarHeaderComponent implements DoCheck {\r\n\r\n @Input()\r\n public selectedDate: Date = new Date();\r\n\r\n @Output()\r\n public readonly selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n public showMonthYearSelect: boolean = false;\r\n\r\n public expanded: boolean = false;\r\n\r\n public currentMonth: string;\r\n\r\n public currentYear: number;\r\n\r\n public selectedMonth: number;\r\n\r\n public selectedYear: number;\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.selectedDate) {\r\n this.currentMonth = ALL_MONTHS[this.selectedDate.getMonth()];\r\n this.currentYear = this.selectedDate.getFullYear();\r\n }\r\n }\r\n\r\n public subMonth(): void {\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(newDate.getMonth() - 1);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public addMonth(): void {\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(newDate.getMonth() + 1);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public hideMonthYearSelection(): void {\r\n this.expanded = false;\r\n this.showMonthYearSelect = false;\r\n }\r\n\r\n public setNewMonth(month: number): void {\r\n this.selectedMonth = month;\r\n }\r\n\r\n public setNewYear(year: number): void {\r\n this.selectedYear = year;\r\n }\r\n\r\n public changeMonthYear(): void {\r\n this.hideMonthYearSelection();\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(this.selectedMonth);\r\n newDate.setFullYear(this.selectedYear);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n}\r\n","export enum CalendarView {\r\n DayView = \"DAY\",\r\n WeekView = \"WEEK\",\r\n WeekSelectView = \"WEEK_SELECT\",\r\n MonthView = \"MONTH\"\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\n\r\n@Component({\r\n selector: \"calendar\",\r\n template: `\r\n <div class=\"sc-calendar\">\r\n <calendar-header [selectedDate]=\"selectedDate\" (selectedDateChange)=\"changeSelectedDate($event)\"></calendar-header>\r\n <calendar-view [view]=\"view\" [selectedDate]=\"selectedDate\" (selectedDateChange)=\"changeSelectedDate($event)\"></calendar-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public selectedDate: Date = new Date();\r\n\r\n @Input()\r\n public days: Date[] = [];\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n constructor() {\r\n }\r\n\r\n public changeSelectedDate(date: Date): void {\r\n this.selectedDate = date;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\n\n@Pipe({\n name: \"arrayNumber\"\n})\nexport class ArrayNumberPipe implements PipeTransform {\n\n transform(length: number, offset: number = 0): number[] {\n if (!length || length < 0) {\n return [];\n }\n return Array.from({length: Math.round(length)}, (x, i) => i + offset);\n }\n}\n","import {TimePeriod} from \"../enum/time-period.enum\";\r\n\r\nexport class DateRange {\r\n public startDate: Date;\r\n public endDate: Date;\r\n public selectedTimePeriod: TimePeriod;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Month} from \"../enum/month.enum\";\r\nimport {ALL_MONTHS} from \"../model/constant/all-months\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\nimport * as moment from \"moment\";\r\nimport {Moment} from \"moment\";\r\nimport {DatePipe} from \"@angular/common\";\r\nimport {DateRange} from \"../model/date-range\";\r\n\r\nDate.prototype.toJSON = function() {\r\n return moment(this).format('YYYY-MM-DD[T]HH:mm:ss');\r\n}\r\n\r\n// static utility function holder related to dates\r\nexport class DateUtils {\r\n public static readonly BACKEND_DATE_FORMAT: string = 'YYYY-MM-DD[T]HH:mm:ss';\r\n public static datePipe: DatePipe = new DatePipe('shortDate');\r\n\r\n public static NowAsString(): string {\r\n return DateUtils.ParseDate(new Date(), DateUtils.BACKEND_DATE_FORMAT);\r\n }\r\n\r\n public static ParseDate(date: Date, format: string = \"d-m-y\"): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const day: string = (\"0\" + date.getDate()).slice(-2);\r\n const month: string = (\"0\" + (date.getMonth() + 1)).slice(-2);\r\n const year: string = date.getFullYear() + \"\";\r\n\r\n const formatParts: string[] = format.split(\"-\");\r\n const dateParts: string[] = [];\r\n\r\n\r\n for (let i: number = 0, l: number = formatParts.length; i < l; i++) {\r\n switch (formatParts[i]) {\r\n case \"d\" :\r\n case \"DD\" :\r\n dateParts.push(day);\r\n break;\r\n case \"m\" :\r\n case \"MM\" :\r\n dateParts.push(month);\r\n break;\r\n case \"y\" :\r\n case \"YYYY\" :\r\n dateParts.push(year);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n return dateParts.join(\"-\");\r\n }\r\n\r\n public static GetWeekNumber(date: Date): number {\r\n date = new Date(date.getTime());\r\n date.setHours(0, 0, 0, 0);\r\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\r\n return Math.ceil((((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / 8.64e7) + 1) / 7);\r\n }\r\n\r\n // Returns the number of days from now, for the given date in the future. Returns negative days if given date is in the past from now.\r\n public static GetDaysFromNow(date: Date): number {\r\n return DateUtils.GetDayDifference(new Date(Date.now()), date);\r\n }\r\n\r\n public static StringAsDate(str: string, format: string = DateUtils.BACKEND_DATE_FORMAT): Date {\r\n if (notNill(str)) {\r\n if (!isNaN(Number(str))) {\r\n return new Date(str);\r\n } else {\r\n const time: any = moment(str, format, true);\r\n return time.isValid() ? new Date(time) : undefined;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public static MomentToDate(time: Moment): Date {\r\n if (!time || !time.isValid()) {\r\n return undefined;\r\n }\r\n\r\n const d: Date = new Date(time.format(DateUtils.BACKEND_DATE_FORMAT));\r\n d.setHours(time.hours());\r\n d.setMinutes(time.minutes());\r\n d.setSeconds(time.seconds());\r\n return d;\r\n }\r\n\r\n public static GetCurrentMonth(): Month {\r\n return ALL_MONTHS[new Date().getMonth()];\r\n }\r\n\r\n // @returns e.g. [\"FEBRUARI\", \"MARCH\", ..] if it's Februari today, otherwise e.g. [\"APRIL\", \"MAY\", ...] if it's April today\r\n public static Get12MonthsArrayWithFirstMonthIsCurrentMonth(): Month[] {\r\n const answer: Month[] = [];\r\n\r\n let monthNrToAdd: number = new Date().getMonth();\r\n for (let i: number = 0; i < 12; i++) {\r\n answer.push(ALL_MONTHS[monthNrToAdd]);\r\n monthNrToAdd = (monthNrToAdd + 1) % ALL_MONTHS.length;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n public static GetFirstDayOfWeek(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n let firstDay: Date;\r\n const dayOfWeek: number = date.getDay() || 7;\r\n if (dayOfWeek === 1) {\r\n firstDay = new Date(date);\r\n } else {\r\n firstDay = new Date(date);\r\n firstDay.setHours(-24 * (dayOfWeek - 1));\r\n }\r\n return firstDay;\r\n }\r\n\r\n public static GetLastDayOfWeek(date: Date): Date {\r\n const firstDayOfWeek: Date = DateUtils.GetFirstDayOfWeek(date);\r\n const lastDayOfWeek: Date = new Date(firstDayOfWeek);\r\n lastDayOfWeek.setDate(firstDayOfWeek.getDate() + 6);\r\n return lastDayOfWeek;\r\n }\r\n\r\n public static GetFirstDayOfMonth(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n const year: number = date.getFullYear();\r\n const month: number = date.getMonth();\r\n return new Date(year, month, 1);\r\n }\r\n\r\n public static GetLastDayOfMonth(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n const year: number = date.getFullYear();\r\n const month: number = date.getMonth();\r\n return new Date(year, month + 1, 0);\r\n }\r\n\r\n public static DatesEqual(date1: Date, date2: Date): boolean {\r\n let result: boolean = false;\r\n if (DateUtils._ValidDate(date1) && DateUtils._ValidDate(date2)) {\r\n result =\r\n date1.getDate() === date2.getDate() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getFullYear() === date2.getFullYear();\r\n }\r\n return result;\r\n }\r\n\r\n public static DateRangeEqual(dates1: DateRange, dates2: DateRange): boolean {\r\n return (this.DatesEqual(dates1.startDate, dates2.startDate) &&\r\n this.DatesEqual(dates1.endDate, dates2.endDate));\r\n }\r\n\r\n public static AddMinutes(date: Date, minutes: number): Date {\r\n return new Date(date.getTime() + (minutes * 60000));\r\n }\r\n\r\n public static AddDays(date: Date, days: number): Date {\r\n const result: Date = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n public static AddMonths(date: Date, months: number): Date {\r\n const result: Date = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n }\r\n\r\n public static DetermineDSTBreakpoints(): { start: string, end: string } {\r\n const endOfYear: Date = new Date(new Date().getFullYear(), 11, 1);\r\n let checkDate: Date = new Date(new Date().getFullYear(), 0, 1);\r\n let offset: number = checkDate.getTimezoneOffset();\r\n\r\n const periodStart: Date = new Date();\r\n let periodStartSet: boolean = false;\r\n const periodEnd: Date = new Date();\r\n let periodEndSet: boolean = false;\r\n while (checkDate.getTime() < endOfYear.getTime()) {\r\n checkDate = this.AddMinutes(checkDate, 60);\r\n if (offset < checkDate.getTimezoneOffset()) {\r\n periodEnd.setTime(checkDate.getTime());\r\n periodEndSet = true;\r\n } else if (offset > checkDate.getTimezoneOffset()) {\r\n periodStart.setTime(checkDate.getTime());\r\n periodStartSet = true;\r\n }\r\n offset = checkDate.getTimezoneOffset();\r\n if (periodStartSet && periodEndSet) {\r\n break;\r\n }\r\n }\r\n\r\n if (periodStartSet && periodEndSet) {\r\n return {\r\n start: this._DateToTimeStringWithDateFormat(periodStart),\r\n end: this._DateToTimeStringWithDateFormat(periodEnd)\r\n };\r\n } else {\r\n return {start: undefined, end: undefined}; // important otherwise we return new Date() for both\r\n }\r\n }\r\n\r\n private static _ValidDate(date: Date): boolean {\r\n return date !== null && date !== undefined;\r\n }\r\n\r\n /**\r\n * Returns the difference between the two given days as the number of days, in float precision (date to - date from).\r\n * Returns negative values of the 'from' date is later than in time than the 'to' date.\r\n */\r\n public static GetDayDifference(from: Date, to: Date): number {\r\n if (!from || !to) {\r\n return NaN;\r\n }\r\n return ((to.getTime() - from.getTime()) / 1000 / 60 / 60 / 24);\r\n }\r\n\r\n public static IsSameDay(dateOne: Date, dateTwo: Date): boolean {\r\n return (dateOne && dateTwo &&\r\n dateOne.getDate() === dateTwo.getDate()\r\n && dateOne.getMonth() === dateTwo.getMonth()\r\n && dateOne.getFullYear() === dateTwo.getFullYear());\r\n }\r\n\r\n public static IsInBetween(date: Date, startDate: Date, endDate: Date, withTime: boolean = true): boolean {\r\n if (startDate && endDate) {\r\n if (withTime) {\r\n return (date > startDate && date < endDate);\r\n } else {\r\n const dateWithoutTime: number = new Date(date).setHours(0, 0, 0, 0),\r\n dateFromWithoutTime: number = new Date(startDate).setHours(0, 0, 0, 0),\r\n dateToWithoutTime: number = new Date(endDate).setHours(0, 0, 0, 0);\r\n return dateWithoutTime >= dateFromWithoutTime && dateWithoutTime <= dateToWithoutTime;\r\n }\r\n }\r\n }\r\n\r\n public static IsMonday(date: Date): boolean {\r\n return date.getDay() === 1;\r\n }\r\n\r\n public static IsSunday(date: Date): boolean {\r\n return date.getDay() === 0;\r\n }\r\n\r\n public static IsToday(date: Date): boolean {\r\n const today: Date = new Date();\r\n return DateUtils.IsSameDay(today, date);\r\n }\r\n\r\n // Returns date format like it would when using a pipe in the templete, ie: \"1 okt. 2020\"\r\n public static ParseDateInShortDateFormat(date: Date, locale: string): string {\r\n this.datePipe = new DatePipe(locale);\r\n const parsedDate: string = this.datePipe.transform(date);\r\n return parsedDate;\r\n }\r\n\r\n // Transforms a string that is formatted like \"'17-08-2014'<=?<='17-08-2021'\" into \"'17-08-2014' Untill '17-08-2021'\"\r\n public static getFormattedDateRangeString(dateRangeString: string, separator: string = \" - \"): string {\r\n let newString: string = dateRangeString;\r\n newString = newString.replace(\"<=?<=\", ` ${separator} `);\r\n newString = newString.replace(/'/g, \"\");\r\n\r\n return newString;\r\n }\r\n\r\n public static SetDateOrDateRangeObjectHoursZero(date: Date | DateRange): void {\r\n if (date instanceof DateRange) {\r\n if (date.startDate) {\r\n date.startDate.setHours(0, 0, 0);\r\n }\r\n if (date.endDate) {\r\n date.endDate.setHours(0, 0, 0);\r\n }\r\n } else if (!!date && (date instanceof Date)) {\r\n date.setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n private static _DateToTimeStringWithDateFormat(value: Date, dateFormat: string = \"d-m-y\"): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const hours: string = value.getHours() < 10 ? \"0\" + value.getHours() : \"\" + value.getHours();\r\n const minutes: string = value.getMinutes() < 10 ? \"0\" + value.getMinutes() : \"\" + value.getMinutes();\r\n return this.ParseDate(value, dateFormat) + \" \" + [hours, minutes].join(\":\");\r\n }\r\n}\r\n","import {Component, EventEmitter, Inject, Input, LOCALE_ID, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArrayNumberPipe} from \"../../../../pipe/array-number.pipe\";\r\nimport {DatePipe} from \"@angular/common\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\n\r\ntype DateStamp = { day: number, inMonth: boolean, timestamp: number, week: number, selected: boolean };\r\n\r\n@Component({\r\n selector: \"calendar-view\",\r\n template: `\r\n <div class=\"calendar-content\">\r\n <div>\r\n <div class=\"week-day-header week-row\">\r\n <div class=\"week-acronym\"></div>\r\n <div *ngFor=\"let weekDay of weekDayLabel\" [textContent]=\"weekDay | ucfirst\"\r\n class=\"week-day-label\"></div>\r\n </div>\r\n <div class=\"week-row\" *ngFor=\"let week of weeks;trackBy:trackByWeek\">\r\n <div [textContent]=\"week[0].week\" class=\"week-number\"></div>\r\n <div *ngFor=\"let date of week;trackBy:trackByStamp\" class=\"week-day\"\r\n (click)=\"onDateClick(date)\" [textContent]=\"date.day\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n//fixme we don't have a todayDayStamp field but our template references it\r\nexport class CalendarViewComponent {\r\n\r\n @Input()\r\n public set view(value: CalendarView) {\r\n this._view = value;\r\n this._selectDays();\r\n }\r\n\r\n public get view(): CalendarView {\r\n return this._view;\r\n }\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = value;\r\n this._selectedDate.setHours(0, 0, 0, 0);\r\n this._prepareWeeks();\r\n }\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public trackByStamp: Function = (index: number, stamp: DateStamp): number => {\r\n return stamp && stamp.timestamp || index;\r\n }\r\n\r\n public trackByWeek: Function = (index: number, week: DateStamp[]): number => {\r\n return week && week[0].week || index;\r\n }\r\n\r\n public weekDayLabel: string[] = [];\r\n\r\n public weeks: DateStamp[][] = [];\r\n\r\n private _selectedDate: Date = new Date();\r\n\r\n private _view: CalendarView = CalendarView.WeekView;\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode,\r\n ) {\r\n this.selectedDate.setHours(0, 0, 0, 0);\r\n this._setLabels();\r\n }\r\n\r\n public onDateClick(date: DateStamp): void {\r\n this.selectedDate = new Date(date.timestamp);\r\n this.selectedDateChange.emit(this.selectedDate);\r\n this._selectDays();\r\n }\r\n\r\n private _setLabels(): void {\r\n const datePipe: DatePipe = new DatePipe(this._locale);\r\n\r\n const currentDay: number = this.selectedDate.getDay();\r\n const startWeekDate: Date = new Date(this.selectedDate.getTime());\r\n startWeekDate.setDate(startWeekDate.getDate() - currentDay - 1);\r\n\r\n this.weekDayLabel = new ArrayNumberPipe().transform(7).map(() => {\r\n startWeekDate.setDate(startWeekDate.getDate() + 1);\r\n return datePipe.transform(startWeekDate, \"E\");\r\n });\r\n this.weekDayLabel.push(this.weekDayLabel.shift());\r\n }\r\n\r\n private _prepareWeeks(): void {\r\n this.weeks.length = 0;\r\n\r\n const date: Date = new Date(this.selectedDate.getTime());\r\n date.setHours(0, 0, 0, 0);\r\n\r\n // go to last day of month\r\n date.setMonth(date.getMonth() + 1);\r\n date.setDate(0);\r\n const monthEndDay: number = date.getDay();\r\n const monthEndDate: number = date.getDate();\r\n\r\n // days after end of month\r\n const daysAfter: number = !monthEndDay ? 0 : 7 - monthEndDay;\r\n\r\n // go to first day of month\r\n date.setDate(1);\r\n const monthBeginDay: number = date.getDay();\r\n\r\n // days before start of month\r\n const daysBefore: number = !monthBeginDay ? 6 : monthBeginDay - 1;\r\n\r\n // go to start of calendar view\r\n date.setDate(-daysBefore + 1);\r\n\r\n // amount of weeks to display\r\n const weekCount: number = Math.ceil((daysBefore + daysAfter + monthEndDate) / 7);\r\n const weekStart: number = DateUtils.GetWeekNumber(date);\r\n const weekEnd: number = weekStart + weekCount - 1;\r\n\r\n // iterate over week count\r\n for (let i: number = weekStart; i <= weekEnd; i++) {\r\n let week: number = i;\r\n\r\n // only recalculate week when it's necessary\r\n if (weekStart > 50) {\r\n week = DateUtils.GetWeekNumber(date);\r\n }\r\n const days: DateStamp[] = [];\r\n\r\n // iterate over 7 days\r\n for (let ii: number = 1; ii <= 7; ii++) {\r\n // check if we are in the current month\r\n let inMonth: boolean = true;\r\n if (i === weekStart) {\r\n inMonth = ii > daysBefore;\r\n } else if (i === weekEnd) {\r\n inMonth = ii <= 7 - daysAfter;\r\n }\r\n\r\n const timestamp: number = date.getTime();\r\n // add dateStamp to date array\r\n days.push({\r\n week: week,\r\n inMonth: inMonth,\r\n day: date.getDate(),\r\n timestamp: timestamp,\r\n selected: this.selectedDate.getTime() === timestamp\r\n });\r\n // go one day further\r\n date.setDate(date.getDate() + 1);\r\n }\r\n this.weeks.push(days);\r\n }\r\n this._selectDays();\r\n }\r\n\r\n private _selectDays(): void {\r\n this._resetSelection();\r\n if (!this.selectedDate) {\r\n return;\r\n }\r\n const weekNumber: number = DateUtils.GetWeekNumber(this.selectedDate);\r\n const len: number = this.weeks.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const leni: number = this.weeks[i].length;\r\n for (let ii: number = 0; ii < leni; ii++) {\r\n if (this.weeks[i][ii].inMonth && this.view === CalendarView.MonthView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].week === weekNumber && this.view === CalendarView.WeekView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.WeekSelectView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.DayView) {\r\n this.weeks[i][ii].selected = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _resetSelection(): void {\r\n const len: number = this.weeks.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const leni: number = this.weeks[i].length;\r\n for (let ii: number = 0; ii < leni; ii++) {\r\n this.weeks[i][ii].selected = false;\r\n }\r\n }\r\n }\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class Weekday {\r\n public inView: boolean = true;\r\n public weekdayDay: number;\r\n public weekdayMonthShort: string;\r\n public weekdayMonthLong: string;\r\n public weekdayYear: number;\r\n public date: Date;\r\n public weekdayShort: string;\r\n public weekdayLong: string;\r\n public description: string;\r\n public newMonth: boolean = false;\r\n public weekdaySelected: boolean = false;\r\n public datesByTheHour: Date[] = [];\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {Weekday} from \"./weekday.model\";\r\n\r\nexport class Week {\r\n public weekDays: Weekday[] = [];\r\n}\r\n","import {DateUtils} from \"./date-utils\";\r\nimport {Weekday} from \"../model/weekday.model\";\r\nimport {Inject, LOCALE_ID} from \"@angular/core\";\r\nimport {LanguageCode} from \"../enum/language-code.enum\";\r\nimport {Week} from \"../model/week.model\";\r\n\r\nexport class CalendarUtils {\r\n public static Locale: LanguageCode = undefined;\r\n\r\n public static Now: Date = new Date();\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode\r\n ) {\r\n CalendarUtils.Locale = _locale;\r\n }\r\n\r\n // public static GetCurrentYear(): number {\r\n // return this.Now.getFullYear();\r\n // }\r\n //\r\n // public static GetCurrentMonth(): number {\r\n // return this.Now.getUTCMonth() + 1;\r\n // }\r\n\r\n public static GetDayHours(day: Date): Date[] {\r\n const datesByTheHour: Date[] = [];\r\n if (day) {\r\n let newDate: Date = new Date(day);\r\n newDate.setHours(0, 0, 0, 0);\r\n datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n datesByTheHour.push(newDate);\r\n }\r\n }\r\n return datesByTheHour;\r\n }\r\n\r\n public static GetDaysOfWeek(date: Date): Week {\r\n let day: Date = DateUtils.GetFirstDayOfWeek(date);\r\n const daysOfWeek: Weekday[] = [];\r\n let options: any;\r\n let month: number;\r\n for (let i: number = 0; i < 7; i++) {\r\n const dayPerWeek: Weekday = new Weekday();\r\n const dayHours: Date[] = CalendarUtils.GetDayHours(day);\r\n dayPerWeek.newMonth = day.getMonth() !== month;\r\n dayPerWeek.weekdaySelected = day.getDay() === date.getDay();\r\n dayPerWeek.weekdayDay = day.getDate();\r\n options = { weekday: \"short\" };\r\n dayPerWeek.weekdayShort = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n options = { weekday: \"long\" };\r\n dayPerWeek.weekdayLong = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n\r\n options = { month: \"short\" };\r\n dayPerWeek.weekdayMonthShort = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n options = { month: \"long\" };\r\n dayPerWeek.weekdayMonthLong = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n dayPerWeek.weekdayYear = day.getFullYear();\r\n\r\n dayPerWeek.date = new Date(day);\r\n dayPerWeek.datesByTheHour = dayHours;\r\n daysOfWeek.push(dayPerWeek);\r\n month = day.getMonth();\r\n day = new Date(day);\r\n day.setDate(day.getDate() + 1);\r\n }\r\n const week: Week = new Week();\r\n week.weekDays = daysOfWeek;\r\n return week;\r\n }\r\n\r\n}\r\n","import {TimeWindow} from \"./time-window.bo\";\r\n\r\nexport class AgendaEvent {\r\n public id: number;\r\n public description: string;\r\n public checked: boolean = false;\r\n public showCheckbox: boolean = false;\r\n public draggable: boolean = false;\r\n public from: Date;\r\n public to: Date;\r\n public date: Date;\r\n public dayPartNo: number;\r\n public fromString: string;\r\n public toString: string;\r\n public fromToRepresentation: string;\r\n public timeWindow: TimeWindow;\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class AgendaEventPerDay {\r\n public date: Date;\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {Week} from \"./week.model\";\r\n\r\nexport class Month {\r\n public weeks: Week[] = [];\r\n\r\n public get firstWeek(): Week {\r\n if (this.weeks && this.weeks.length > 0) {\r\n return this.weeks[0];\r\n }\r\n }\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class Day {\r\n public day: number;\r\n public date: Date;\r\n public description: string;\r\n public datesByTheHour: Date[] = [];\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"./agenda-event-per-day.model\";\r\nimport {Month} from \"./month.model\";\r\nimport {Week} from \"./week.model\";\r\nimport {Day} from \"./day.model\";\r\n\r\nexport const NULL_AGENDA_EVENT: AgendaEvent = new AgendaEvent();\r\nexport const NULL_AGENDA_EVENT_PER_DAY: AgendaEventPerDay = new AgendaEventPerDay();\r\nexport const NULL_MONTH: Month = new Month();\r\nexport const NULL_WEEK: Week = new Week();\r\nexport const NULL_DAY: Day = new Day();\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n LOCALE_ID,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\nimport {Weekday} from \"../../../../model/weekday.model\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {NULL_DAY} from \"../../../../model/agenda-null-objects\";\r\nimport {Day} from \"../../../../model/day.model\"\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"agenda-header\",\r\n template: `\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.DayView\">\r\n <div class=\"hour-label-placeholder\">\r\n <view-select [selectedView]=\"view\" (selectedViewChange)=\"changeTheView($event)\"></view-select>\r\n </div>\r\n <div class=\"week-day-label\">\r\n <co-icon class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"day-description\" [textContent]=\"day.description\"></div>\r\n <co-icon class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.WeekView\">\r\n <div class=\"hour-label-placeholder\">\r\n <view-select [selectedView]=\"view\" (selectedViewChange)=\"changeTheView($event)\"></view-select>\r\n </div>\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\" [class.selected]=\"weekDay.weekdaySelected\" (click)=\"setUnit(weekDay)\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div *ngIf=\"weekDay.newMonth\" [textContent]=\"weekDay.weekdayMonthLong + ' ' + weekDay.weekdayYear\" class=\"month-description\"></div>\r\n <div class=\"weekday-value\" [textContent]=\"weekDay.weekdayDay\"></div>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.WeekSelectView\">\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\"\r\n [class.selected]=\"weekDay.weekdaySelected\"\r\n [class.selectable]=\"weekDay.events && weekDay.events.length > 0\"\r\n (click)=\"setUnit(weekDay)\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <div class=\"weekday-value\" [textContent]=\"weekDay.weekdayDay + ' ' + weekDay.weekdayMonthShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.MonthView\">\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHeaderComponent implements OnInit, OnDestroy, AfterContentChecked {\r\n public readonly icons: typeof Icon = Icon;\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n private readonly scrollbarWidth: number = 15;\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = new Date(value);\r\n this._prepareHeaderData();\r\n }\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekSelectView;\r\n\r\n @Input()\r\n public set firstAvailableDate(value: Date) {\r\n if (value) {\r\n this._firstAvailableDate = new Date(value);\r\n this._prepareHeaderData();\r\n }\r\n }\r\n\r\n public get firstAvailableDate(): Date {\r\n return this._firstAvailableDate;\r\n }\r\n\r\n @Input()\r\n public set eventsPerDay(value: AgendaEventPerDay[]) {\r\n this._eventsPerDay = value;\r\n this._prepareHeaderData();\r\n }\r\n\r\n @Output()\r\n public viewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public rangeChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public weekDays: Weekday[] = [];\r\n public day: Day = NULL_DAY;\r\n public showBackButton: boolean = true;\r\n\r\n private _selectedDate: Date;\r\n private _firstAvailableDate: Date;\r\n private _eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode,\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n private _ngZone: NgZone,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener(\"resize\", this._onResize);\r\n this._elementRef = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener(\"resize\", this._onResize);\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._resizeHost();\r\n }\r\n\r\n public subUnit(): void {\r\n if (this.selectedDate) {\r\n const newDate: Date = new Date(this.selectedDate);\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n newDate.setDate(this.selectedDate.getDate() - 1);\r\n break;\r\n case CalendarView.WeekView:\r\n newDate.setDate(this.selectedDate.getDate() - 7);\r\n break;\r\n case CalendarView.WeekSelectView:\r\n newDate.setDate(this.selectedDate.getDate() - 7);\r\n break;\r\n case CalendarView.MonthView:\r\n newDate.setMonth(this.selectedDate.getMonth() - 1);\r\n break;\r\n }\r\n this.selectedDate = newDate;\r\n this.rangeChange.emit(this.selectedDate);\r\n }\r\n }\r\n\r\n public addUnit(): void {\r\n if (this.selectedDate) {\r\n const newDate: Date = new Date(this.selectedDate);\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n newDate.setDate(this.selectedDate.getDate() + 1);\r\n break;\r\n case CalendarView.WeekView:\r\n newDate.setDate(this.selectedDate.getDate() + 7);\r\n break;\r\n case CalendarView.WeekSelectView:\r\n newDate.setDate(this.selectedDate.getDate() + 7);\r\n break;\r\n case CalendarView.MonthView:\r\n newDate.setMonth(this.selectedDate.getMonth() + 1);\r\n break;\r\n }\r\n this.selectedDate = newDate;\r\n this.rangeChange.emit(this.selectedDate);\r\n }\r\n }\r\n\r\n public setUnit(weekDay: Weekday): void {\r\n this.selectedDate = weekDay.date;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public changeTheView(view: CalendarView): void {\r\n this.view = view;\r\n this.viewChange.emit(view);\r\n this._prepareHeaderData();\r\n }\r\n\r\n private _onResize: EventListener = async (): Promise<void> => {\r\n this._resizeHost();\r\n }\r\n\r\n /**\r\n * Need to resize the host component to size it's fixed positioned child through css\r\n */\r\n private _resizeHost(): void {\r\n if (this._elementRef) {\r\n this._renderer.setStyle(\r\n this._elementRef.nativeElement, \"width\", this._elementRef.nativeElement.parentElement.clientWidth - this.scrollbarWidth + \"px\");\r\n }\r\n }\r\n\r\n private _prepareHeaderData(): void {\r\n if (this.selectedDate) {\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n const day: Day = new Day();\r\n day.date = new Date(this.selectedDate);\r\n const options: any = { year: \"numeric\", month: \"long\", day: \"numeric\" };\r\n day.description = this.selectedDate.toLocaleDateString(this._locale, options);\r\n this.day = day;\r\n break;\r\n case CalendarView.WeekView:\r\n const weekView: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekView.weekDays;\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n case CalendarView.WeekSelectView:\r\n const weekSelectView: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekSelectView.weekDays;\r\n this.weekDays.forEach((wd: Weekday) => {\r\n const evPerDay: AgendaEventPerDay = this._eventsPerDay && this._eventsPerDay.length > 0 ? this._eventsPerDay.find(e => DateUtils.DatesEqual(e.date, wd.date)) : null;\r\n if (evPerDay) {\r\n wd.events = evPerDay.events;\r\n } else {\r\n wd.weekdaySelected = false;\r\n }\r\n });\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n case CalendarView.MonthView:\r\n const weekOfMonth: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekOfMonth.weekDays;\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\n\r\n@Component({\r\n selector: \"agenda-view\",\r\n template: `\r\n <div class=\"view-wrapper mini-scrollbar\" [ngSwitch]=\"view\">\r\n <agenda-day-view *ngSwitchCase=\"viewTypes.DayView\"\r\n [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-day-view>\r\n <agenda-week-view *ngSwitchCase=\"viewTypes.WeekView\"\r\n [view]=\"view\" [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-week-view>\r\n <agenda-week-select-view *ngSwitchCase=\"viewTypes.WeekSelectView\"\r\n [view]=\"view\" [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-week-select-view>\r\n <agenda-month-view *ngSwitchCase=\"viewTypes.MonthView\"\r\n [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-month-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaViewComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public selectedDate: Date;\r\n\r\n @Input()\r\n public eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n}\r\n","import {Directive, EventEmitter, Inject, Input, LOCALE_ID, Output} from \"@angular/core\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Directive()\r\nexport abstract class AgendaBaseViewComponent {\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = value;\r\n this._dateIsSet();\r\n }\r\n\r\n @Input()\r\n public set eventsPerDay(value: AgendaEventPerDay[]) {\r\n this._eventsPerDay = value;\r\n this._eventsAreSet();\r\n }\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n public get eventsPerDate(): AgendaEventPerDay[] {\r\n return this._eventsPerDay;\r\n }\r\n\r\n private _selectedDate: Date;\r\n private _eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) protected readonly locale: LanguageCode,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n //overridable by descendents\r\n protected prepareViewData(): void {\r\n }\r\n\r\n protected getEventsFromDate(date: Date): AgendaEvent[] {\r\n let events: AgendaEvent[] = [];\r\n if (this.eventsPerDate) {\r\n const len: number = this.eventsPerDate.length;\r\n for (let i: number = 0; i < len; i++) {\r\n if (DateUtils.DatesEqual(date, this.eventsPerDate[i].date)) {\r\n events = this.eventsPerDate[i].events;\r\n break;\r\n }\r\n }\r\n }\r\n return events;\r\n }\r\n\r\n private _dateIsSet(): void {\r\n this.prepareViewData();\r\n }\r\n\r\n private _eventsAreSet(): void {\r\n this.prepareViewData();\r\n }\r\n}\r\n","import {Component, ViewEncapsulation} from \"@angular/core\";\r\nimport { AgendaBaseViewComponent } from \"./agenda-base-view.component\";\r\nimport {NULL_MONTH} from \"../../../../model/agenda-null-objects\";\r\nimport {Month} from \"../../../../model/month.model\";\r\nimport {Weekday} from \"../../../../model/weekday.model\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-month-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <div class=\"hour-view-labels-wrapper\"></div>\r\n <div class=\"weeks\">\r\n <div class=\"week\" *ngFor=\"let week of weeks\" fxLayout=\"row\">\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\" [class.not-in-month]=\"!weekDay.inView\">\r\n <div class=\"day\" [textContent]=\"weekDay.weekdayDay\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaMonthViewComponent extends AgendaBaseViewComponent {\r\n\r\n public month: Month = NULL_MONTH;\r\n\r\n public firstWeekDays: Weekday[] = [];\r\n\r\n public weeks: Week[] = [];\r\n\r\n protected prepareViewData(): void {\r\n const month: Month = new Month();\r\n if (this.selectedDate) {\r\n const day: Date = DateUtils.GetFirstDayOfMonth(this.selectedDate);\r\n const endOfMonth: Date = DateUtils.GetLastDayOfMonth(this.selectedDate);\r\n let oneMoreIteration: boolean = false;\r\n let continueLoop: boolean = true;\r\n\r\n while (continueLoop) {\r\n if (oneMoreIteration) {\r\n continueLoop = false;\r\n }\r\n const week: Week = CalendarUtils.GetDaysOfWeek(day);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n week.weekDays[i].inView = week.weekDays[i].date.getMonth() === this.selectedDate.getMonth();\r\n }\r\n month.weeks.push(week);\r\n day.setDate(day.getDate() + 7);\r\n if (day.getTime() >= endOfMonth.getTime()) {\r\n oneMoreIteration = true;\r\n }\r\n }\r\n this.month = month;\r\n this.firstWeekDays = this.month.firstWeek.weekDays;\r\n this.weeks = month.weeks;\r\n }\r\n }\r\n\r\n}\r\n","import {Component, ViewEncapsulation} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-day-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <agenda-hour-view-labels [date]=\"selectedDate\"></agenda-hour-view-labels>\r\n <agenda-hour-view [date]=\"selectedDate\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-events>\r\n </agenda-hour-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaDayViewComponent extends AgendaBaseViewComponent {\r\n\r\n public events: AgendaEvent[] = [];\r\n\r\n protected prepareViewData(): void {\r\n if (this.eventsPerDate && this.eventsPerDate.length > 0) {\r\n this.events = this.eventsPerDate[0].events;\r\n }\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {NULL_WEEK} from \"../../../../model/agenda-null-objects\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-week-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <agenda-hour-view-labels [date]=\"selectedDate\"></agenda-hour-view-labels>\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\">\r\n <agenda-hour-view [date]=\"weekDay.date\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"weekDay.events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n [view]=\"view\"\r\n ></agenda-events>\r\n </agenda-hour-view>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaWeekViewComponent extends AgendaBaseViewComponent /*implements OnInit, OnDestroy*/ {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n public week: Week = NULL_WEEK;\r\n\r\n protected prepareViewData(): void {\r\n if (this.selectedDate) {\r\n // get the events\r\n const week: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n }\r\n this.week = week;\r\n }\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\nimport {NULL_WEEK} from \"../../../../model/agenda-null-objects\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {Week} from \"../../../../model/week.model\";\r\n\r\n@Component({\r\n selector: \"agenda-week-select-view\",\r\n template: `\r\n <div class=\"view-wrapper week-select-view\">\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\">\r\n <div class=\"week-select-container\" *ngIf=\"weekDay.weekdaySelected\">\r\n <div class=\"week-select-left\">\r\n <h3 [textContent]=\"'AGENDA_CHOOSE_DELIVERY_PERIOD'\"></h3>\r\n <div class=\"week-select-list mini-scrollbar\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"weekDay.events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n [view]=\"view\"\r\n ></agenda-events>\r\n <div class=\"no-events-banner\" *ngIf=\"weekDay.events.length === 0\">\r\n <p [textContent]=\"'AGENDA_NO_PERIODS_AVAILABLE'\"></p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"week-select-right\">\r\n <h3 [textContent]=\"'AGENDA_FOR_EVERY_PERIOD'\"></h3>\r\n <ul>\r\n <li><co-icon [iconData]=\"iconCacheService.getIcon(icons.CheckRound)\" class=\"small action-color moment-icon\"></co-icon><span [textContent]=\"'AGENDA_FOR_EVERY_PERIOD_REASON1'\"></span></li>\r\n <li><co-icon [iconData]=\"iconCacheService.getIcon(icons.CheckRound)\" class=\"small action-color moment-icon\"></co-icon><span [textContent]=\"'AGENDA_FOR_EVERY_PERIOD_REASON2'\"></span></li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaWeekSelectViewComponent extends AgendaBaseViewComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekSelectView;\r\n\r\n public week: Week = NULL_WEEK;\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n protected prepareViewData(): void {\r\n if (this.selectedDate) {\r\n // get the events\r\n const week: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n }\r\n this.week = week;\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-view\",\r\n template: `\r\n <div class=\"row-per-hour\" *ngFor=\"let dateByTheHour of datesByTheHour\">\r\n <div fxLayout=\"row\">\r\n <agenda-hour-cell [date]=\"dateByTheHour\"></agenda-hour-cell>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourViewComponent {\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = new Date(value);\r\n this._prepareViewData();\r\n }\r\n\r\n public readonly datesByTheHour: Date[] = [];\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _date: Date = new Date();\r\n\r\n // fixme remove ctrl + c, ctrl + v code duplication with AgendaHourViewLabelsComponent._prepareViewData()\r\n private _prepareViewData(): void {\r\n this.datesByTheHour.length = 0;\r\n if (this.date) {\r\n let newDate: Date = new Date(this.date);\r\n newDate.setHours(0, 0, 0, 0);\r\n this.datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n this.datesByTheHour.push(newDate);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-cell\",\r\n template: `\r\n <div class=\"row-per-half-hour\">\r\n <agenda-half-hour-cell [date]=\"date\" [showLabel]=\"onlyLabels && !noLabels\"></agenda-half-hour-cell>\r\n <agenda-half-hour-cell [date]=\"datePlushalfHour\"></agenda-half-hour-cell>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourCellComponent {\r\n @Input()\r\n public onlyLabels: boolean = false;\r\n\r\n @Input()\r\n public noLabels: boolean = false;\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = value;\r\n this._setNextHalfHour();\r\n }\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n public datePlushalfHour: Date;\r\n\r\n private _date: Date;\r\n\r\n private _setNextHalfHour(): void {\r\n this.datePlushalfHour = new Date(this._date);\r\n this.datePlushalfHour.setMinutes(this.datePlushalfHour.getMinutes() + 30);\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-view-labels\",\r\n template: `\r\n <div class=\"row-per-hour\" *ngFor=\"let dateByTheHour of datesByTheHour\">\r\n <div>\r\n <agenda-hour-cell [date]=\"dateByTheHour\" onlyLabels [noLabels]=\"noLabels\"></agenda-hour-cell>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourViewLabelsComponent {\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = new Date(value);\r\n this._date.setDate(1);\r\n this._date.setMonth(1);\r\n this._date.setFullYear(1);\r\n this._prepareViewData();\r\n }\r\n\r\n @Input()\r\n public noLabels: boolean = false;\r\n\r\n public readonly datesByTheHour: Date[] = [];\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _date: Date = new Date();\r\n\r\n // fixme remove ctrl + c, ctrl + v code duplication with AgendaHourViewComponent._prepareViewData()\r\n private _prepareViewData(): void {\r\n this.datesByTheHour.length = 0;\r\n if (this.date) {\r\n let newDate: Date = new Date(this.date);\r\n newDate.setHours(0, 0, 0, 0);\r\n this.datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n this.datesByTheHour.push(newDate);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, Input, OnDestroy, Renderer2, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-half-hour-cell\",\r\n template: `\r\n <div id=\"{{id}}\" class=\"cell-wrapper\">\r\n <div *ngIf=\"showLabel\" [class.show]=\"showLabel\" class=\"half-hour-label\">\r\n <div [textContent]=\"date | date:'HH:mm'\"></div>\r\n </div>\r\n <div *ngIf=\"showCurrentTime\" id=\"currentTime\" class=\"current-time\" #currentTime></div>\r\n <div class=\"content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHalfHourCellComponent implements OnDestroy {\r\n\r\n @ViewChild(\"currentTime\")\r\n public currentTimeElement: ElementRef;\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = value;\r\n this._checkDate();\r\n this._checkWorkingDayStart();\r\n }\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n @Input()\r\n public showLabel: boolean = false;\r\n\r\n public showCurrentTime: boolean = false;\r\n\r\n public currentTimeTop: number = 0;\r\n\r\n public id: string;\r\n\r\n private _date: Date;\r\n private _id: string;\r\n\r\n constructor(\r\n private _renderer: Renderer2\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.currentTimeElement = undefined;\r\n }\r\n\r\n private _checkDate(): void {\r\n const checkDate: Date = new Date();\r\n const minutesFrom: number = this.date.getMinutes();\r\n const minutesTo: number = minutesFrom + 30;\r\n\r\n if (DateUtils.DatesEqual(this.date, checkDate)) {\r\n if (checkDate.getHours() === this.date.getHours() && (checkDate.getMinutes() > minutesFrom && checkDate.getMinutes() < minutesTo)) {\r\n this.currentTimeTop = (Math.max(checkDate.getMinutes(), .01) / 60) * 100;\r\n this._positionCurrentTime();\r\n this.showCurrentTime = true;\r\n }\r\n }\r\n }\r\n\r\n private _checkWorkingDayStart(): void {\r\n this.id = (this._date.getHours() === 8 && this._date.getMinutes() === 30) ? \"dayStart\" : \"\";\r\n }\r\n\r\n private _positionCurrentTime(): void {\r\n if (this.currentTimeElement) {\r\n this._renderer.setStyle(this.currentTimeElement.nativeElement, \"top\", this.currentTimeTop + \"%\");\r\n this.currentTimeElement.nativeElement.scrollIntoView();\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\n\r\n@Component({\r\n selector: \"agenda-events\",\r\n template: `\r\n <ng-container *ngIf=\"view !== viewTypes.WeekSelectView\">\r\n <agenda-event\r\n *ngFor=\"let event of events\"\r\n [halfHourHeight]=\"halfHourHeight\"\r\n [event]=\"event\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-event>\r\n </ng-container>\r\n <ng-container *ngIf=\"view === viewTypes.WeekSelectView\">\r\n <agenda-select-event\r\n *ngFor=\"let event of events\"\r\n [event]=\"event\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-select-event>\r\n </ng-container>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaEventsComponent {\r\n\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public type: string = \"\";\r\n\r\n @Input()\r\n public events: AgendaEvent[] = [];\r\n\r\n @Input()\r\n public halfHourHeight: number;\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {NULL_AGENDA_EVENT} from \"../../../../model/agenda-null-objects\";\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: \"agenda-event\",\r\n template: `\r\n <div class=\"agenda-event-wrapper\" [class.checkable]=\"event.showCheckbox\" [class.selected]=\"event.checked\" (click)=\"checkEvent($event)\">\r\n <div [textContent]=\"event.fromToRepresentation\" class=\"event-description\"></div>\r\n <co-icon *ngIf=\"event.showCheckbox\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" [class.checked]=\"event.checked\"></co-icon>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaEventComponent implements OnInit, OnDestroy {\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public event: AgendaEvent = NULL_AGENDA_EVENT;\r\n\r\n @Input()\r\n public halfHourHeight: number;\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n const hourTo: number = this.event.from.getHours();\r\n const minutesTo: number = this.event.from.getMinutes();\r\n const multiply: number = hourTo + (minutesTo / 60);\r\n const top: number = multiply * (this.halfHourHeight * 2);\r\n this._renderer.setStyle(this._elementRef.nativeElement, \"top\", top + \"px\");\r\n\r\n const hours: number = Math.abs(this.event.to.getTime() - this.event.from.getTime()) / 3600000;\r\n const height: number = hours * (this.halfHourHeight * 2) - 1;\r\n this._renderer.setStyle(this._elementRef.nativeElement, \"height\", height + \"px\");\r\n }\r\n\r\n public checkEvent(event: MouseEvent): void {\r\n this.event.checked = !this.event.checked;\r\n this.eventChecked.emit(this.event);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"ucfirst\"\r\n})\r\n// Pipe capable of transforming the first character of a string-value to upper case.\r\nexport class UCfirstPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (typeof value === \"string\") {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n return value;\r\n }\r\n}\r\n","import {ArrayNumberPipe} from \"./array-number.pipe\";\r\nimport {UCfirstPipe} from \"./ucfirst.pipe\";\r\n\r\nexport const MASTER_PIPES: any[] = [\r\n ArrayNumberPipe,\r\n UCfirstPipe\r\n]\r\n","// <b>Enum</b> Represents the different states of the three way thumb.\r\nexport enum ThumbThreeWayState {\r\n Left = 0,\r\n Middle = 1,\r\n Right = 2\r\n}\r\n\r\nexport function NextStateOfThumbThreeWay(state: ThumbThreeWayState): ThumbThreeWayState {\r\n switch (state) {\r\n case ThumbThreeWayState.Left:\r\n return ThumbThreeWayState.Middle;\r\n case ThumbThreeWayState.Middle:\r\n return ThumbThreeWayState.Right;\r\n case ThumbThreeWayState.Right:\r\n default:\r\n return ThumbThreeWayState.Left;\r\n }\r\n}\r\n","// Static utility functions holder related to Maps.\r\nexport class MapUtils {\r\n\r\n /**\r\n * Returns the first key from given map, for which the value filter holds true. Basically a reverse Map.get(key) function.\r\n * @param map\r\n * @param valueFilter For the first value that returns true for this filter functions, its key will be returned.\r\n */\r\n public static FindKeyByValue<K, V>(map: Map<K, V>, valueFilter: (value: V) => boolean): K {\r\n\r\n if (!map || !valueFilter) {\r\n return undefined;\r\n }\r\n\r\n let foundKey: K = undefined;\r\n let keyWasFound: boolean = false;\r\n map.forEach((value: V, key: K) => {\r\n if (!keyWasFound && valueFilter.call(this, value)) {\r\n foundKey = key;\r\n keyWasFound = true;\r\n }\r\n });\r\n return foundKey;\r\n }\r\n\r\n /**\r\n * Inserts given arrayEntry into given map, under given mapKey. What's special here, is that a NEW map entry is created with an array\r\n * containing the single [arrayEntry] item, if no entry yet existed.\r\n * @param map\r\n * @param mapKey\r\n * @param arrayEntry\r\n */\r\n public static InsertArrayItemIntoMap(map: Map<any, any>, mapKey: any, arrayEntry: any): void {\r\n if (!map) {\r\n return;\r\n }\r\n\r\n if (!map.has(mapKey)) {\r\n map.set(mapKey, [arrayEntry]);\r\n } else {\r\n map.get(mapKey).push(arrayEntry);\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {ThumbThreeWayState} from \"../../../../enum/thumb-three-way-state\";\r\nimport {MapUtils} from \"../../../../utils/map-utils\";\r\n\r\n@Component({\r\n selector: \"view-select\",\r\n template: `\r\n <div class=\"select-wrapper\">\r\n <div [textContent]=\"'DAY'\" class=\"label\"></div>\r\n <div [textContent]=\"'MONTH'\" class=\"label\"></div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewSelectComponent {\r\n\r\n private readonly _viewsToThumb: Map<CalendarView, ThumbThreeWayState> = new Map<CalendarView, ThumbThreeWayState>([\r\n [CalendarView.DayView, ThumbThreeWayState.Left],\r\n [CalendarView.WeekView, ThumbThreeWayState.Middle],\r\n [CalendarView.MonthView, ThumbThreeWayState.Right]\r\n ]);\r\n\r\n @Input()\r\n public selectedView: CalendarView = CalendarView.WeekView;\r\n\r\n @Output()\r\n public selectedViewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n public get modelAsThumbState(): ThumbThreeWayState {\r\n return this._viewsToThumb.get(this.selectedView);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public onThumbStateChange(thumbState: ThumbThreeWayState): void {\r\n this.selectedView = MapUtils.FindKeyByValue<CalendarView, ThumbThreeWayState>(this._viewsToThumb, (value: ThumbThreeWayState) => {\r\n return (value === thumbState);\r\n });\r\n this.selectedViewChange.emit(this.selectedView);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {NULL_AGENDA_EVENT} from \"../../../../model/agenda-null-objects\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"agenda-select-event\",\r\n template: `\r\n <div class=\"week-select-item\" (click)=\"checkEvent($event)\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" class=\"select-icon action-color\" *ngIf=\"!event.checked\"></co-icon>\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" class=\"select-icon action-color\" *ngIf=\"event.checked\"></co-icon>\r\n <div class=\"moment-name\">\r\n <small>{{ event.date | date: 'EEEE d MMMM' | uppercase }}</small>\r\n <h2>{{ event.description }}</h2>\r\n </div>\r\n </div>\r\n `\r\n})\r\nexport class AgendaSelectEventComponent {\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public event: AgendaEvent = NULL_AGENDA_EVENT;\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n public checkEvent(event: MouseEvent): void {\r\n this.event.checked = !this.event.checked;\r\n this.eventChecked.emit(this.event);\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport {DatePlanningComponent} from \"./date-planning.component\";\r\nimport {ButtonModule, IconModule, InputDatePickerModule} from \"@colijnit/corecomponents_v12\";\r\nimport {CalendarAllYearsComponent} from \"./component/calendar/calendar-all-years.component\";\r\nimport {CalendarAllMonthsComponent} from \"./component/calendar/calendar-all-months.component\";\r\nimport {CalendarHeaderComponent} from \"./component/calendar/calendar-header.component\";\r\nimport {CalendarComponent} from \"./component/calendar/calendar.component\";\r\nimport {CalendarViewComponent} from \"./component/calendar/calendar-view.component\";\r\nimport {AgendaHeaderComponent} from \"./component/agenda/agenda-header.component\";\r\nimport {AgendaViewComponent} from \"./component/agenda/agenda-view.component\";\r\nimport {AgendaMonthViewComponent} from \"./component/agenda/agenda-month-view.component\";\r\nimport {AgendaDayViewComponent} from \"./component/agenda/agenda-day-view.component\";\r\nimport {AgendaWeekViewComponent} from \"./component/agenda/agenda-week-view.component\";\r\nimport {AgendaWeekSelectViewComponent} from \"./component/agenda/agenda-week-select-view.component\";\r\nimport {AgendaHourViewComponent} from \"./component/agenda/agenda-hour-view.component\";\r\nimport {AgendaHourCellComponent} from \"./component/agenda/agenda-hour-cell.component\";\r\nimport {AgendaHourViewLabelsComponent} from \"./component/agenda/agenda-hour-view-labels.component\";\r\nimport {AgendaHalfHourCellComponent} from \"./component/agenda/agenda-half-hour-cell.component\";\r\nimport {AgendaEventsComponent} from \"./component/agenda/agenda-events.component\";\r\nimport {AgendaEventComponent} from \"./component/agenda/agenda-event.component\";\r\nimport {MASTER_PIPES} from \"../../pipe/master-pipes\";\r\nimport {ViewSelectComponent} from \"./component/agenda/view-select.component\";\r\nimport {AgendaSelectEventComponent} from \"./component/agenda/agenda-select-event.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputDatePickerModule,\r\n IconModule,\r\n ButtonModule,\r\n ],\r\n declarations: [\r\n DatePlanningComponent,\r\n CalendarAllYearsComponent,\r\n CalendarAllMonthsComponent,\r\n CalendarHeaderComponent,\r\n CalendarComponent,\r\n CalendarViewComponent,\r\n AgendaHeaderComponent,\r\n AgendaViewComponent,\r\n AgendaMonthViewComponent,\r\n AgendaDayViewComponent,\r\n AgendaWeekViewComponent,\r\n AgendaWeekSelectViewComponent,\r\n AgendaHourViewComponent,\r\n AgendaHourCellComponent,\r\n AgendaHourViewLabelsComponent,\r\n AgendaHalfHourCellComponent,\r\n AgendaEventsComponent,\r\n AgendaEventComponent,\r\n ViewSelectComponent,\r\n AgendaSelectEventComponent,\r\n MASTER_PIPES\r\n ],\r\n exports: [\r\n DatePlanningComponent\r\n ]\r\n})\r\nexport class DatePlanningModule {\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/components/date-planning/date-planning.component';\r\nexport * from './lib/components/date-planning/date-planning.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 {AgendaBaseViewComponent as ɵv} from './lib/components/date-planning/component/agenda/agenda-base-view.component';\nexport {AgendaDayViewComponent as ɵw} from './lib/components/date-planning/component/agenda/agenda-day-view.component';\nexport {AgendaEventComponent as ɵbe} from './lib/components/date-planning/component/agenda/agenda-event.component';\nexport {AgendaEventsComponent as ɵbd} from './lib/components/date-planning/component/agenda/agenda-events.component';\nexport {AgendaHalfHourCellComponent as ɵbc} from './lib/components/date-planning/component/agenda/agenda-half-hour-cell.component';\nexport {AgendaHeaderComponent as ɵs} from './lib/components/date-planning/component/agenda/agenda-header.component';\nexport {AgendaHourCellComponent as ɵba} from './lib/components/date-planning/component/agenda/agenda-hour-cell.component';\nexport {AgendaHourViewLabelsComponent as ɵbb} from './lib/components/date-planning/component/agenda/agenda-hour-view-labels.component';\nexport {AgendaHourViewComponent as ɵz} from './lib/components/date-planning/component/agenda/agenda-hour-view.component';\nexport {AgendaMonthViewComponent as ɵu} from './lib/components/date-planning/component/agenda/agenda-month-view.component';\nexport {AgendaSelectEventComponent as ɵbg} from './lib/components/date-planning/component/agenda/agenda-select-event.component';\nexport {AgendaViewComponent as ɵt} from './lib/components/date-planning/component/agenda/agenda-view.component';\nexport {AgendaWeekSelectViewComponent as ɵy} from './lib/components/date-planning/component/agenda/agenda-week-select-view.component';\nexport {AgendaWeekViewComponent as ɵx} from './lib/components/date-planning/component/agenda/agenda-week-view.component';\nexport {ViewSelectComponent as ɵbf} from './lib/components/date-planning/component/agenda/view-select.component';\nexport {CalendarAllMonthsComponent as ɵn} from './lib/components/date-planning/component/calendar/calendar-all-months.component';\nexport {CalendarAllYearsComponent as ɵm} from './lib/components/date-planning/component/calendar/calendar-all-years.component';\nexport {CalendarHeaderComponent as ɵo} from './lib/components/date-planning/component/calendar/calendar-header.component';\nexport {CalendarViewComponent as ɵq} from './lib/components/date-planning/component/calendar/calendar-view.component';\nexport {CalendarComponent as ɵp} from './lib/components/date-planning/component/calendar/calendar.component';\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 {LanguageCode as ɵr} from './lib/enum/language-code.enum';\nexport {ArrayNumberPipe as ɵbi} from './lib/pipe/array-number.pipe';\nexport {MASTER_PIPES as ɵbh} from './lib/pipe/master-pipes';\nexport {UCfirstPipe as ɵbj} from './lib/pipe/ucfirst.pipe';\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":["EventEmitter","PDFDocument","pdfjsWorker","PDFJS","Component","trigger","state","style","transition","animate","ViewEncapsulation","ViewChild","ElementRef","Input","Output","HostBinding","SignaturePad","NgModule","CommonModule","PROP_META_KEY","ObjectUtils","notNill","GetLogicalBooleanValue","GetYesNoDbBooleanValue","GetTrueFalseDbBooleanValue","GetOneZeroDbBooleanValue","DateUtils","NumberUtils","MapPropertyDecorator","BooleanTextDecorator","JsonFieldFieldDecorator","ComplexArrayDecorator","LanguageCode","Injectable","BehaviorSubject","Articles","Sharedapi","Printer","PrintStockStickers","PrintPriceStickers","StockHistoryBo","ArticleStockBo","StockManagementWarehouses","StockLocation","ArticleDetailsBo","StockStatus","StockStickersPrintLayouts","ArticleTransactionBo","GetStockHistoryRequest","ArticleStock","ChangeDetectorRef","DomSanitizer","ArticleStockManagement","ArticleTransaction","CoDialogPromptModule","InputCheckboxModule","InputComboBoxModule","IconModule","InputNumberPickerModule","CoDialogWizardModule","ButtonModule","CoDialogModule","CoGridModule","InputRadioButtonModule","DropDownModule","SimpleGridModule","ImageModule","InputTextModule","InputTextareaModule","HostListener","GaugeColor","CircularGaugeModule","Renderer2","Month","Pipe","moment","DatePipe","Inject","LOCALE_ID","NgZone","Directive","InputDatePickerModule"],"mappings":"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"}
1
+ {"version":3,"file":"colijnit-sharedcomponents.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../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/function/not-nill.function.ts","../../../projects/sharedcomponents/src/lib/utils/object-utils.ts","../../../projects/sharedcomponents/src/lib/utils/number-utils.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/components/date-planning/date-planning.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts","../../../projects/sharedcomponents/src/lib/enum/month.enum.ts","../../../projects/sharedcomponents/src/lib/model/constant/all-months.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts","../../../projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts","../../../projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts","../../../projects/sharedcomponents/src/lib/model/date-range.ts","../../../projects/sharedcomponents/src/lib/utils/date-utils.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts","../../../projects/sharedcomponents/src/lib/model/weekday.model.ts","../../../projects/sharedcomponents/src/lib/model/week.model.ts","../../../projects/sharedcomponents/src/lib/utils/calendar.utils.ts","../../../projects/sharedcomponents/src/lib/model/agenda-event.model.ts","../../../projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts","../../../projects/sharedcomponents/src/lib/model/month.model.ts","../../../projects/sharedcomponents/src/lib/model/day.model.ts","../../../projects/sharedcomponents/src/lib/model/agenda-null-objects.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts","../../../projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts","../../../projects/sharedcomponents/src/lib/pipe/master-pipes.ts","../../../projects/sharedcomponents/src/lib/enum/thumb-three-way-state.ts","../../../projects/sharedcomponents/src/lib/utils/map-utils.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/view-select.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-select-event.component.ts","../../../projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts","../../../projects/sharedcomponents/src/lib/service/shared.service.ts","../../../projects/sharedcomponents/src/public-api.ts","../../../projects/sharedcomponents/src/colijnit-sharedcomponents.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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 {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}","// @returns true iff given value does not equals null and does not equal undefined\r\nexport function notNill(value: any): boolean {\r\n return value !== null && value !== undefined;\r\n}\r\n","import {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\n\r\n// Static utility function holder related to objects.\r\nexport class ObjectUtils {\r\n\r\n /**\r\n * Returns whether all given values exist: for all values it holds that they are not null nor undefined. Short-circuit check.\r\n * @param {any} values Rest parameters with all objects to check existence for.\r\n * @returns {boolean} True if ALL given values are not null nor undefined, otherwise false (if at least one value was null or undefined)\r\n */\r\n public static AllExist(...values: any[]): boolean {\r\n let allExist: boolean = true;\r\n for (let i: number = 0, len: number = values.length; i < len; i++) {\r\n if (isNill(values[i])) {\r\n allExist = false;\r\n break;\r\n }\r\n }\r\n return allExist;\r\n }\r\n\r\n /**\r\n * Copies all properties from object 'from' to object 'to'. Overwrites properties on object 'to' if property already exists.\r\n * Does not copy functions, only properties.\r\n * @param {Object} from The source object from which to copy all properties of to the 'to' object.\r\n * @param {Object} to The object to which the properties of the 'from' object will be copied.\r\n * @param {boolean} [allowUndefined = true] wether the 'to' object may be assigned null or undefined values to any of its properties.\r\n */\r\n public static CopyPropertiesFrom<T>(from: Object, to: T, allowUndefined: boolean = true): T {\r\n if (!to) {\r\n to = {} as T;\r\n }\r\n if (!from) {\r\n return to;\r\n }\r\n ObjectUtils.ForOwnProperty(from, (value: any, key: string) => {\r\n if (allowUndefined || notNill(value)) {\r\n to[key] = value;\r\n }\r\n });\r\n return to;\r\n }\r\n\r\n public static DeepEquals(actual: any, expected: any): boolean {\r\n if (actual === expected) {\r\n return true;\r\n } else if (actual instanceof Date && expected instanceof Date) {\r\n return actual.getTime() === expected.getTime();\r\n } else if (!actual || !expected || typeof actual !== \"object\" && typeof expected !== \"object\") {\r\n return actual === expected;\r\n } else {\r\n return this._objEquiv(actual, expected);\r\n }\r\n }\r\n\r\n // Performs given callback function for each own property of given plain object. Also works on string enums.\r\n public static ForOwnProperty(plainObject: any, callback: (propVal: any, key: string) => any): void {\r\n if (ObjectUtils.IsPlainObject(plainObject)) {\r\n for (const key in plainObject) {\r\n if (plainObject.hasOwnProperty(key) && typeof plainObject[key] !== \"function\") {\r\n const response: boolean = callback(plainObject[key], key);\r\n if (response === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Returns the class name of given argument. The argument can be an object or a class.\r\n public static GetClassName(objectOrClass: any): string {\r\n if (!objectOrClass) {\r\n return undefined;\r\n // arg was a class (or a function..)\r\n } else if (objectOrClass.constructor === Function) {\r\n return objectOrClass.name; // .. which has its readable name stores like this\r\n // else arg was an object\r\n } else {\r\n const constructorString: string = objectOrClass.constructor.toString();\r\n return constructorString.match(/\\w+/g)[1];\r\n }\r\n }\r\n\r\n // Returns a shallow clone of the given original object. The clone is a SIMPLE OBJECT with the same properties as the original.\r\n public static GetShallowClone(originalObject: any, objectClass?: any): any {\r\n let clonedObject: any = undefined;\r\n\r\n if (objectClass) {\r\n clonedObject = new objectClass();\r\n } else {\r\n clonedObject = {};\r\n }\r\n\r\n ObjectUtils.ForOwnProperty(originalObject, (value: any, key: string) => {\r\n clonedObject[key] = value;\r\n });\r\n\r\n return clonedObject;\r\n }\r\n\r\n public static GetDeepClone(originalObject: any, circular: boolean = true): any {\r\n // First create an empty object with\r\n // same prototype of our original source\r\n\r\n let propertyIndex: number;\r\n let descriptor: PropertyDescriptor;\r\n let keys: string[];\r\n let current: any;\r\n let nextSource: any;\r\n let indexOf: number;\r\n const copies: any[] = [{\r\n source: originalObject,\r\n target: Object.create(Object.getPrototypeOf(originalObject))\r\n }];\r\n const cloneObject: any = copies[0].target;\r\n const sourceReferences: any[] = [originalObject];\r\n const targetReferences: any[] = [cloneObject];\r\n\r\n // First in, first out\r\n while (current = copies.shift()) { //NOSONAR\r\n keys = Object.getOwnPropertyNames(current.source);\r\n\r\n for (propertyIndex = 0; propertyIndex < keys.length; propertyIndex++) {\r\n // Save the source's descriptor\r\n descriptor = Object.getOwnPropertyDescriptor(current.source, keys[propertyIndex]);\r\n\r\n if (!descriptor.value || typeof descriptor.value !== \"object\") {\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n continue;\r\n }\r\n\r\n nextSource = descriptor.value;\r\n descriptor.value = Array.isArray(nextSource) ?\r\n [] :\r\n Object.create(Object.getPrototypeOf(nextSource));\r\n\r\n if (circular) {\r\n indexOf = sourceReferences.indexOf(nextSource);\r\n\r\n if (indexOf !== -1) {\r\n // The source is already referenced, just assign reference\r\n descriptor.value = targetReferences[indexOf];\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n continue;\r\n }\r\n\r\n sourceReferences.push(nextSource);\r\n targetReferences.push(descriptor.value);\r\n }\r\n\r\n Object.defineProperty(current.target, keys[propertyIndex], descriptor);\r\n\r\n copies.push({source: nextSource, target: descriptor.value});\r\n }\r\n }\r\n\r\n return cloneObject;\r\n }\r\n\r\n public static IsEmpty(obj: any): boolean {\r\n return isNill(obj) || Object.getOwnPropertyNames(obj).length === 0;\r\n }\r\n\r\n // Returns whether given object is an existing, plain object. That is, it defined, its type if 'object' and it is NOT an array or func.\r\n public static IsPlainObject(object: any): boolean {\r\n return object !== null && !Array.isArray(object) && typeof object !== \"function\" && typeof object === \"object\";\r\n }\r\n\r\n /**\r\n * Returns an instance of given class with data of given dataObject. Only works if that class has a default constructor without args.\r\n * Does not actually create a new object if it alread is an instance of that class.\r\n * @param {any} clazz A class that has a default constructor\r\n * @param {any} [dataObject] The object with data to copy to the new instance of the class\r\n * @returns {any} An object that is an instance of given class, with given data applied to it.\r\n */\r\n public static MakeInstanceOf(clazz: any, dataObject?: any): any {\r\n // dont make a clone if given dataObject already instance of clazz\r\n if (dataObject instanceof clazz) {\r\n return dataObject;\r\n } else {\r\n const asClazz: any = new clazz();\r\n ObjectUtils.CopyPropertiesFrom(dataObject, asClazz);\r\n return asClazz;\r\n }\r\n }\r\n\r\n // Returns the value of a random own property of given object.\r\n public static PickRandomPropertyValue(object: any): any {\r\n if (!object) {\r\n return;\r\n }\r\n\r\n let result: any;\r\n let count: number = 0;\r\n for (const prop in object) {\r\n if (object.hasOwnProperty(prop)) {\r\n count++;\r\n if (Math.random() < 1 / count) {\r\n result = object[prop];\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n // Returns a default if given value doesn't exist, otherwise just value.\r\n public static ValueOrDefault(value: any, defaultReturnVal: any = \"\"): any {\r\n return notNill(value) ? value : defaultReturnVal;\r\n }\r\n\r\n private static _isArguments(x: any): boolean {\r\n const supportsArgsClass: boolean = this._supportsArgumentsClass();\r\n return supportsArgsClass ? this._isArgumentsWhenArgsClassSupported(x) : this._isArgumentsWhenArgsClassNotSupported(x);\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassNotSupported(object: any): boolean {\r\n return object &&\r\n typeof object === \"object\" &&\r\n typeof object.length === \"number\" &&\r\n Object.prototype.hasOwnProperty.call(object, \"callee\") &&\r\n !Object.prototype.propertyIsEnumerable.call(object, \"callee\") ||\r\n false;\r\n }\r\n\r\n private static _isArgumentsWhenArgsClassSupported(object: any): boolean {\r\n return Object.prototype.toString.call(object) === \"[object Arguments]\";\r\n }\r\n\r\n private static _isBuffer(x: any): boolean {\r\n if (!x || typeof x !== \"object\" || typeof x.length !== \"number\") {\r\n return false;\r\n }\r\n if (typeof x.copy !== \"function\" || typeof x.slice !== \"function\") {\r\n return false;\r\n }\r\n return !(x.length > 0 && typeof x[0] !== \"number\");\r\n }\r\n\r\n private static _isUndefinedOrNull(value: any): boolean {\r\n return value === null || value === undefined;\r\n }\r\n\r\n private static _objEquiv(a: any, b: any): boolean {\r\n let i: number, key: string;\r\n if (this._isUndefinedOrNull(a) || this._isUndefinedOrNull(b)) {\r\n return false;\r\n }\r\n\r\n if (a.prototype !== b.prototype) {\r\n return false;\r\n }\r\n\r\n if (this._isArguments(a)) {\r\n if (!this._isArguments(b)) {\r\n return false;\r\n }\r\n a = Array.prototype.slice.call(a);\r\n b = Array.prototype.slice.call(b);\r\n return this.DeepEquals(a, b);\r\n }\r\n if (this._isBuffer(a)) {\r\n if (!this._isBuffer(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (i = 0; i < a.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n let ka: string[];\r\n let kb: string[];\r\n try {\r\n ka = Object.keys(a);\r\n kb = Object.keys(b);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n if (ka.length !== kb.length) {\r\n return false;\r\n }\r\n\r\n ka.sort();\r\n kb.sort();\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n if (ka[i] !== kb[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n for (i = ka.length - 1; i >= 0; i--) {\r\n key = ka[i];\r\n if (!this.DeepEquals(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return typeof a === typeof b;\r\n }\r\n\r\n private static _supportsArgumentsClass(): boolean {\r\n return Object.prototype.toString.call(arguments) === \"[object Arguments]\";\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object-utils\";\r\nimport {CheckWithinSteppedBoundsResult} from \"./check-within-stepped-bounds-result\";\r\nimport {ArrayUtils} from \"./array-utils\";\r\nimport {CheckPrecisionAndScaleResult} from \"./check-precision-and-scale-result\";\r\nimport {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\n\r\n// Static utility function holder related to numeric variable evaluations and operations.\r\nexport class NumberUtils {\r\n // For user-typed number input; supports comma's as decimal delimiter.\r\n public static ParseIntNumberInput(arg: any): number {\r\n return NumberUtils.ParseInt(NumberUtils._NumberInputToNumberStr(arg));\r\n }\r\n\r\n // Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.\r\n public static ParseInt(arg: any): number {\r\n if (isNill(arg) || Array.isArray(arg)) {\r\n return undefined;\r\n }\r\n\r\n return parseInt(arg, 10);\r\n }\r\n\r\n // For user-typed number input; supports comma's as decimal delimiter.\r\n public static ParseFloatNumberInput(arg: any, decimalPrecision: number = 2): number {\r\n return NumberUtils.ParseFloat(NumberUtils._NumberInputToNumberStr(arg), decimalPrecision);\r\n }\r\n\r\n public static ParseFloatNumberInputKeepPrecision(arg: any): number {\r\n const correctedInputStr: string = NumberUtils._NumberInputToNumberStr(arg);\r\n const decimalPrecision: number = this.GetDecimalPlaces(correctedInputStr);\r\n return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param {any} arg The argument to parse to a float\r\n * @param {number} decimalPrecision The number of decimals, or the precision, the parsed return float should have\r\n * @returns {number} NaN if not possible, else the parsed float value\r\n */\r\n public static ParseFloat(arg: any, decimalPrecision: number = 2): number {\r\n if (!ObjectUtils.AllExist(arg, decimalPrecision) || Array.isArray(arg)) {\r\n return NaN;\r\n }\r\n\r\n if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {\r\n decimalPrecision = 2;\r\n // toFixed() can only handle up until 20\r\n } else if (decimalPrecision > 20) {\r\n decimalPrecision = 20;\r\n }\r\n\r\n return parseFloat(parseFloat(arg).toFixed(decimalPrecision));\r\n }\r\n\r\n /**\r\n * Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.\r\n *\r\n * @param arg The argument to parse to a float\r\n * @returns {number} The argument as a float with its original decimal precision intact\r\n */\r\n public static ParseFloatKeepPrecision(arg: any): number {\r\n const decimalPrecision: number = this.GetDecimalPlaces(arg);\r\n return this.ParseFloat(arg, decimalPrecision);\r\n }\r\n\r\n /**\r\n * Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.\r\n * @param arg\r\n * @param {number} [defaultValue = 0]\r\n * @returns {number}\r\n */\r\n public static ParseNumberOrDefault(arg: any, defaultValue: number = 0): number {\r\n if (Array.isArray(arg)) {\r\n return defaultValue;\r\n }\r\n\r\n if (!NumberUtils.IsNumber(arg)) {\r\n arg = parseFloat(arg);\r\n arg = isNaN(arg) ? defaultValue : arg;\r\n }\r\n return arg;\r\n }\r\n\r\n // Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.\r\n public static IsInteger(arg: any): boolean {\r\n if (isNaN(arg) || Array.isArray(arg)) {\r\n return false;\r\n }\r\n const argAsFloat: number = parseFloat(arg);\r\n return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'\r\n }\r\n\r\n // Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.\r\n public static GetDecimalPlaces(arg: any, maxAnswer: number = 1000): number {\r\n const match: RegExpMatchArray = (\"\" + arg).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\r\n if (!match) {\r\n return 0;\r\n }\r\n\r\n let answer: number = Math.max(0,\r\n // number of digits right of decimal point.\r\n (match[1] ? match[1].length : 0)\r\n // adjust for scientific notation\r\n - (match[2] ? +match[2] : 0));\r\n\r\n if (answer > maxAnswer) {\r\n answer = maxAnswer;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.\r\n public static ParseNumberInputOrDefault(numberInput: any, defaultValue: number = 0): number {\r\n return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);\r\n }\r\n\r\n // Returns whether the type of given argument is 'number'.\r\n public static IsNumber(arg: any): boolean {\r\n return typeof arg === \"number\" && !isNaN(arg);\r\n }\r\n\r\n /**\r\n * Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number')\r\n * Our exact copy of AS Flex'es isNaN(arg) function. Always use this method for copying Flex isNaN(..) occurences into TypeScript.\r\n * @param arg\r\n * @returns {boolean}\r\n * @constructor\r\n */\r\n public static IsNaN(arg: any): boolean {\r\n return isNaN(arg) || !NumberUtils.IsNumber(arg);\r\n }\r\n\r\n // Our copy of CoMath.NaN. Returns number, or substitute if NumberUtils.IsNaN(number) holds true.\r\n public static NaN(number: any, substitute: number = 0): number {\r\n return NumberUtils.IsNaN(number) ? substitute : number;\r\n }\r\n\r\n // Returns whether the value is parasable as a number.\r\n public static IsParsableNumber(arg: any): boolean {\r\n if (Array.isArray(arg)) {\r\n return false;\r\n }\r\n\r\n return !isNaN(parseFloat(arg));\r\n }\r\n\r\n public static IsParsableNumberInput(numberInput: any): boolean {\r\n return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));\r\n }\r\n\r\n /**\r\n * Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.\r\n * I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg\r\n * IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.\r\n */\r\n public static IsStringNumber(arg: string): boolean {\r\n if (!NumberUtils.IsParsableNumber(arg)) {\r\n return false;\r\n } else {\r\n return arg.toString().length === parseFloat(arg).toString().length;\r\n }\r\n }\r\n\r\n public static IsListOfNumbers(arg: string, separator: string = \",\"): boolean {\r\n const nrs: string[] = arg.split(separator);\r\n if (nrs.length === 0) {\r\n return false;\r\n }\r\n return nrs.filter(s => NumberUtils.IsStringNumber(s)).length === nrs.length;\r\n }\r\n\r\n // Returns given argument as a string representation of a number parse, e.g. \"1\" for a number parse result of arg to 1.\r\n public static ParseStringNumber(arg: string): number {\r\n if (!this.IsStringNumber(arg)) {\r\n return NaN;\r\n }\r\n\r\n return NumberUtils.ParseFloatKeepPrecision(arg);\r\n }\r\n\r\n public static ParseStringNumberDefault(arg: string | any, defaultValue: number = 0): number {\r\n return NumberUtils.NaN(NumberUtils.ParseStringNumber(arg), defaultValue);\r\n }\r\n\r\n /**\r\n * Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.\r\n * Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.\r\n */\r\n public static RandomInt(lowerBoundInt: number, upperBoundInt: number): number {\r\n if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {\r\n return NaN;\r\n }\r\n\r\n lowerBoundInt = Math.trunc(lowerBoundInt);\r\n upperBoundInt = Math.trunc(upperBoundInt);\r\n\r\n if (lowerBoundInt === upperBoundInt) {\r\n return lowerBoundInt;\r\n }\r\n\r\n const delta: number = upperBoundInt - lowerBoundInt;\r\n return (Math.round(Math.random() * delta) + lowerBoundInt);\r\n }\r\n\r\n // Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.\r\n public static AddThousandsCommasTo(value: any): string {\r\n if (isNill(value)) {\r\n return \"\";\r\n }\r\n\r\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n /**\r\n * Function used to check wether a given number is composed of another number, power-of-two wise.\r\n * Example usage: NumberUtils.NumIsComposedOf(articleListObject.publication, ArticlePublication.Selector).\r\n * This would return whether or not that articleListObject was publicated for selector or not, where articleListObject.publication\r\n * was possibly a 'COMPOSITE that was made out of (including)' ArticlePublication.Selector.\r\n */\r\n public static NumIsComposedOfOtherPowTwoNum(bigNrToCheck: number, powTwoNumItShouldBeComposedOf: number): boolean {\r\n if (!bigNrToCheck) {\r\n return false;\r\n } else if (!powTwoNumItShouldBeComposedOf) {\r\n return true;\r\n } else {\r\n return ((bigNrToCheck & powTwoNumItShouldBeComposedOf) === powTwoNumItShouldBeComposedOf);\r\n }\r\n }\r\n\r\n /**\r\n * Returns given nr, or the given default number (default 0) if the nr number was undefined or otherwise not a number.\r\n * Same as CoMath.NaN from AS code (used as its substitute in transaction logic)\r\n * @param nr\r\n * @param defaultNr\r\n * @returns {number}\r\n */\r\n public static NrOrDefault(nr: number, defaultNr: number = 0): number {\r\n if (notNill(nr) && NumberUtils.IsNumber(nr)) {\r\n return nr;\r\n } else {\r\n return defaultNr;\r\n }\r\n }\r\n\r\n /**\r\n * Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.\r\n * This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the\r\n * precision and scale of the number in the db declaration.\r\n *\r\n * I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.\r\n *\r\n * @param {number} nrToCheck\r\n * @param {number} precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'\r\n * @param {number} [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003\r\n * @returns {CheckPrecisionAndScaleResult} Whether given nrToCheck is ok for given precision and scale, and if not, the\r\n * nearest number that IS ok for those constraints.\r\n */\r\n public static CheckPrecisionAndScale(nrToCheck: number, precision: number, scale: number = 0): CheckPrecisionAndScaleResult {\r\n // let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision\r\n if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {\r\n return {isOk: true, nearestOkNr: NaN};\r\n }\r\n // no number can have 0 or less than 0 significant digits, in our universe\r\n if (precision < 1 || precision - scale < 1) {\r\n return {isOk: false, nearestOkNr: NaN};\r\n }\r\n // begin check\r\n const isNegative: boolean = (nrToCheck < 0);\r\n const nrParts: string[] = nrToCheck.toString().split(\".\");\r\n // remove minus sign if negative\r\n if (isNegative) {\r\n nrParts[0] = nrParts[0].slice(1);\r\n }\r\n const numCountBeforeDot: number = nrParts[0].length;\r\n const allowedNumCountBeforeDot: number = precision - scale;\r\n if (numCountBeforeDot <= allowedNumCountBeforeDot) {\r\n return {isOk: true, nearestOkNr: nrToCheck};\r\n } else {\r\n // cut a part from the \"before decimal number\" so that the number is not too big anymore\r\n const numCountToRemove: number = numCountBeforeDot - allowedNumCountBeforeDot;\r\n // remove the right-most numbers before the decimal dot\r\n nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);\r\n // add minus sign again if it was negative\r\n if (isNegative) {\r\n nrParts[0] = \"-\" + nrParts[0];\r\n }\r\n // build and return composite number again\r\n let nearestOkNr: number;\r\n if (nrParts[1]) {\r\n nearestOkNr = Number(nrParts[0] + \".\" + nrParts[1]);\r\n } else {\r\n nearestOkNr = Number(nrParts[0]);\r\n }\r\n return {isOk: false, nearestOkNr: nearestOkNr};\r\n }\r\n }\r\n\r\n /**\r\n * Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,\r\n * with N integer or 0.\r\n * @param {number} nrToCheck Number to check whether it's within the given bounds\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns {CheckWithinSteppedBounds} Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.\r\n */\r\n public static CheckWithinSteppedBounds(\r\n nrToCheck: number,\r\n min: number,\r\n max: number,\r\n stepSize: number = 1\r\n ): CheckWithinSteppedBoundsResult {\r\n if (nrToCheck < min || nrToCheck > max) {\r\n return {isOk: false, remainder: undefined};\r\n }\r\n\r\n // we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)\r\n let remainder: number = (nrToCheck - min) % stepSize;\r\n // correct float for largest precision amongst input numbers\r\n remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));\r\n return {isOk: (remainder === 0), remainder: remainder};\r\n }\r\n\r\n /**\r\n * Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that\r\n * nr = min + N * step with N integer or 0.\r\n * @param {number} originalNr Find closest answer to this number\r\n * @param min Inclusive\r\n * @param max Inclusive\r\n * @param stepSize\r\n * @returns {boolean} The closest OK number for bounds.\r\n */\r\n public static GetNearestNumberWithinSteppedBounds(originalNr: number, min: number, max: number, stepSize: number = 1): number {\r\n if (originalNr < min) {\r\n return min;\r\n } else if (originalNr > max) {\r\n return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);\r\n }\r\n\r\n const boundsCheck: CheckWithinSteppedBoundsResult = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);\r\n if (boundsCheck.isOk) {\r\n return originalNr;\r\n }\r\n\r\n let answer: number;\r\n\r\n const remainder: number = boundsCheck.remainder;\r\n if (remainder) {\r\n // round up or down?\r\n if ((remainder / stepSize) < 0.5) {\r\n // round down, but not below min\r\n answer = (originalNr - remainder >= min ? originalNr - remainder : min);\r\n } else {\r\n // round up, but not above max\r\n answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :\r\n NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));\r\n }\r\n } else {\r\n // is this real life, why wasn't our stepped bounds check OK?\r\n answer = originalNr;\r\n }\r\n\r\n // 'correct' float errors\r\n answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));\r\n return answer;\r\n }\r\n\r\n /**\r\n * Returns the true maximum allowed value for the given \"stepped bounds\": min, stepSize and max, for which it holds that each allowed\r\n * value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.\r\n * @param min\r\n * @param max\r\n * @param stepSize\r\n */\r\n public static GetTrueSteppedBoundsMax(min: number, max: number, stepSize: number = 1): number {\r\n // solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X\r\n const maxSteps: number = Math.floor((max - min) / stepSize);\r\n // 'correct' float errors\r\n return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));\r\n }\r\n\r\n // Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.\r\n public static GetNearestNumberWithinBounds(originalNr: number, min: number, max: number): number {\r\n let answer: number = originalNr;\r\n\r\n if (originalNr < min) {\r\n answer = min;\r\n } else if (originalNr > max) {\r\n answer = max;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n // Returns the string representation of given number. If it's not a number, returns the empty string.\r\n public static ToString(nr: number): string {\r\n if (!NumberUtils.IsNaN(nr)) {\r\n return \"\" + nr;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public static DecimalsToStepIncrement(numberOfDecimals: number): number {\r\n return Math.pow(10, -1 * numberOfDecimals);\r\n }\r\n\r\n public static Round(value: number, decimals: number): number {\r\n const factor: number = Math.pow(10, decimals);\r\n return Math.round(value * factor) / factor;\r\n }\r\n\r\n // @returns The inclusive max value\r\n public static PrecisionScaleToMaxValue(precision: number, scale: number): number {\r\n const oneStep: number = this.DecimalsToStepIncrement(scale);\r\n const maxExclusive: number = Math.pow(10, precision - scale);\r\n return maxExclusive - oneStep;\r\n }\r\n\r\n // @returns the difference between given 2 numbers\r\n public static DifferenceBetweenNumbers(numberA: number, numberB: number): number {\r\n return Math.abs(numberA - numberB);\r\n }\r\n\r\n private static _GetLargestDecimalPrecisionOf(...args: number[]): number {\r\n const result = ArrayUtils.GetMaxCalculatedValue(args, (arg: number) => {\r\n return NumberUtils.GetDecimalPlaces(arg);\r\n });\r\n return result;\r\n }\r\n\r\n // Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.\r\n private static _NumberInputToNumberStr(numberInput: string): string {\r\n return (numberInput + \"\").replace(\",\", \".\");\r\n }\r\n}\r\n","import {ObjectUtils} from \"./object-utils\";\r\nimport {NumberUtils} from \"./number-utils\";\r\nimport {isNill} from \"./is-nill.function\";\r\nimport {notNill} from \"./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 * Returns max value from all resulting values from applying given itemValueFunction to all items of given array.\r\n * @param array\r\n * @param itemValueFunction The function applied to each array item that gives it a numerical value. The max num val found is returned.\r\n */\r\n public static GetMaxCalculatedValue<T>(array: T[], itemValueFunction: (item: T) => number): number {\r\n if (!array || !itemValueFunction) {\r\n return NaN;\r\n }\r\n\r\n let max: number = undefined;\r\n\r\n const len: number = array.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const valueCur: number = itemValueFunction.call(this);\r\n if (valueCur > max) {\r\n max = valueCur;\r\n }\r\n }\r\n\r\n return max;\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\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.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 getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getOrderConfirmationDefaultSendMethod(relationId).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {\r\n return new Promise((resolve: Function, reject: Function) => {\r\n return this.sharedConnector.getPurchaseOrderEmailLayouts(transactionUUID).then((result: DataServiceResponse) => {\r\n if (result.validationResult && result.validationResult.success) {\r\n if (result.resultObject) {\r\n resolve (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 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 {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\nimport {SharedConnectorService} from \"./shared-connector.service\";\r\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.bo\";\r\nimport {SendMethodParams} from \"../components/send-method-dialog/send-method-params.interface\";\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 printLayoutParams: SendMethodParams;\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 getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {\r\n return await this._sharedService.getOrderConfirmationDefaultSendMethod(relationId);\r\n }\r\n\r\n public async getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {\r\n return await this._sharedService.getDefaultEmailAddressListForOrderConfirmation(transactionUUID);\r\n }\r\n\r\n public async getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {\r\n return await this._sharedService.getPurchaseOrderEmailLayouts(transactionUUID);\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_left\": \"<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=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></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 \"check_round\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,10A15,15,0,1,0,40,25,15,15,0,0,0,25,10ZM23,34l-6.24-9.09,2.81-3.59L23,26.45,27.66,16h5.58Z\\\" fill=\\\"#484f60\\\"/></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 \"envelope_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\\\"/></svg>\",\r\n \"file_pdf_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z\\\"/></svg>\",\r\n \"file_pdf_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 224H88c30.9 0 56 25.1 56 56s-25.1 56-56 56H80v32c0 8.8-7.2 16-16 16s-16-7.2-16-16V320 240c0-8.8 7.2-16 16-16zm24 80c13.3 0 24-10.7 24-24s-10.7-24-24-24H80v48h8zm72-64c0-8.8 7.2-16 16-16h24c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H176c-8.8 0-16-7.2-16-16V240zm32 112h8c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16h-8v96zm96-128h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v32h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H304v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V304 240c0-8.8 7.2-16 16-16z\\\"/></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 \"print_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M111.1 48h254.1L400 81.94V160H448V81.94c0-12.73-5.057-24.94-14.06-33.94l-33.94-33.94C391 5.057 378.8 0 366.1 0H111.1C85.49 0 64.01 21.48 64 47.98l.002 82.28c-.002 0 .002 0 0 0L64 160h48.01L111.1 48zM440 192H72C32.3 192 0 224.3 0 264v112c0 13.25 10.75 24 24 24H80V480c0 17.67 14.33 32 32 32h288c17.67 0 32-14.33 32-32v-80h56c13.25 0 24-10.75 24-24v-112C512 224.3 479.7 192 440 192zM384 464H128v-96h256V464zM464 352h-32c0-17.67-14.33-32-32-32h-288c-17.67 0-32 14.33-32 32h-32V264c0-13.23 10.77-24 24-24h368c13.23 0 24 10.77 24 24V352z\\\"/></svg>\",\r\n \"print_solid\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 192H64C28.65 192 0 220.7 0 256v96c0 17.67 14.33 32 32 32h32v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h32c17.67 0 32-14.33 32-32V256C512 220.7 483.3 192 448 192zM384 448H128v-96h256V448zM432 296c-13.25 0-24-10.75-24-24c0-13.27 10.75-24 24-24s24 10.73 24 24C456 285.3 445.3 296 432 296zM128 64h229.5L384 90.51V160h64V77.25c0-8.484-3.375-16.62-9.375-22.62l-45.25-45.25C387.4 3.375 379.2 0 370.8 0H96C78.34 0 64 14.33 64 32v128h64V64z\\\"/></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 ArrowPointLeft = \"arrow_point_left\",\r\n ArrowPointRight = \"arrow_point_right\",\r\n BringForwardRegular = \"bring_forward_regular\",\r\n CheckRound = \"check_round\",\r\n DeleteLeftRegular = \"delete_left_regular\",\r\n DeliveryTruck = \"delivery_truck\",\r\n Email = \"email\",\r\n EnvelopeRegular = \"envelope_regular\",\r\n FilePdfRegular = \"file_pdf_regular\",\r\n FilePdfSolid = \"file_pdf_solid\",\r\n Pdf = \"pdf\",\r\n Print = \"print\",\r\n PrintRegular = \"print_regular\",\r\n PrintSolid = \"print_solid\",\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\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.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 if (!(this._stockService.printLayoutParams instanceof PrintPriceStickers)) {\r\n this._stockService.printLayoutParams.goodId = data.goodId;\r\n this._stockService.printLayoutParams.warehouse = data.warehouseNo;\r\n }\r\n this.showSendMethodDialog =! this.showSendMethodDialog;\r\n }\r\n\r\n public printStockStickers(): void {\r\n this._stockService.getPrintStockStickers(this._stockService.printLayoutParams);\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, OnInit,\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\nimport {StockStickersEmailLayouts} from \"@colijnit/sharedapi/build/model/report/stock-stickers-email-layouts.bo\";\r\nimport {PrintPriceStickers} from \"@colijnit/sharedapi/build/model/print-price-stickers.bo\";\r\nimport {SendMethodParams} from \"./send-method-params.interface\";\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 id=\"sendOptionsDialog\" [headerTemplate]=\"headerTemplate\" *ngIf=\"showDialog\" [showCloseIcon]=\"showExitButton\" (closeClick)=\"closeDialogClick()\">\r\n <ng-template #headerTemplate>\r\n <h2 [textContent]=\"headerTitle\"></h2>\r\n </ng-template>\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 of emailAdresses\"\r\n [(model)]=\"email.name\"\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\" (click)=\"getDefaultEmailLayouts()\">\r\n <co-input-combo-box\r\n [(model)]=\"sendMethodParams.reportId\"\r\n [collection]=\"emailLayouts\"\r\n [fields]=\"emailLayoutField\"\r\n placeholder=\"Layout\"\r\n ></co-input-combo-box>\r\n </div>\r\n\r\n <div *ngIf=\"isDocSignEnabled\" 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 class=\"custom-button-wrapper send-button\" (click)=\"sendEmail()\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.Email)\"></co-icon>\r\n </div>\r\n </div>\r\n\r\n <ione-docsign *ngIf=\"docSign\"></ione-docsign>\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)]=\"sendMethodParams.reportId\"\r\n [collection]=\"printLayouts\"\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)]=\"sendMethodParams.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 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.PrintRegular)\"></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)]=\"sendMethodParams.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.PrintRegular)\"></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>\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 OnInit, 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 = true;\r\n\r\n @Input()\r\n public priceListCodeData: any;\r\n\r\n @Input()\r\n public transactionUUID: string;\r\n\r\n public sendOptions: {option: SendOption, iconName: Icon}[] = [\r\n { option: SendOption.Email,\r\n iconName: this.icons.EnvelopeRegular,\r\n },\r\n { option: SendOption.Print,\r\n iconName: this.icons.PrintRegular,\r\n },\r\n { option: SendOption.Pdf,\r\n iconName: this.icons.FilePdfRegular,\r\n },\r\n { option: SendOption.Xml,\r\n iconName: this.icons.FilePdfRegular,\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: any[] = [];\r\n public printTemplatesField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public emailLayoutField: CoDropDownListFields = {text: \"name\", value: \"reportId\"};\r\n public priceListDataField: CoDropDownListFields = {text: \"name\", value: \"priceListCode\"};\r\n public upAndLoaded: boolean = false;\r\n public models: boolean[] = [false, false, true];\r\n\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 relationId: number;\r\n\r\n @Input()\r\n public emailAdresses: any[] = [];\r\n\r\n @Input()\r\n public emailLayouts: any[];\r\n\r\n @Input()\r\n public printLayouts: any[] = [];\r\n\r\n @Input()\r\n public defaultSendMethod: any;\r\n\r\n @Input()\r\n public defaultEmailAdresses: any;\r\n\r\n @Input()\r\n public isDocSignEnabled: boolean = false;\r\n\r\n @Input()\r\n public docSign: boolean = false;\r\n\r\n @Input()\r\n public set articleData(data: any) {\r\n if (!(this.printLayoutParams instanceof PrintPriceStickers)) {\r\n this.sendMethodParams.goodId = data.goodId;\r\n this.sendMethodParams.warehouse = data.warehouseNo;\r\n }\r\n };\r\n\r\n @Output()\r\n public startSignatureClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public sendEmailClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printButtonClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public emailLayoutClicked: 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 @Output()\r\n public printTemplatesClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public defaultSendMethodClicked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public printLayoutParams: EventEmitter<SendMethodParams> = new EventEmitter<SendMethodParams>();\r\n\r\n public sendMethodParams: SendMethodParams = new class implements SendMethodParams {\r\n amount: number;\r\n batch: string;\r\n goodId: number;\r\n goodIds: number[];\r\n location: string;\r\n priceListCode: string;\r\n printerName: string;\r\n reportId: number;\r\n serial: string;\r\n warehouse: number;\r\n name: string;\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 ngOnInit() {\r\n this.getDefaultSendMethod();\r\n this.getDefaultEmailLayouts();\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.docSign = !this.docSign;\r\n this.startSignatureClicked.emit();\r\n }\r\n\r\n public sendEmail(): void {\r\n this.sendEmailClicked.emit();\r\n this.printLayoutParams.emit(this.sendMethodParams);\r\n }\r\n\r\n public handlePrintClicked(): void {\r\n if (this.sendMethodParams.printerName) {\r\n this.printButtonClicked.emit();\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.sendMethodParams.printerName = printer.name;\r\n this.showPrinterSelections =! this.showPrinterSelections;\r\n }\r\n\r\n public getPrintTemplates(): any {\r\n this.printTemplatesClicked.emit();\r\n }\r\n\r\n public getDefaultSendMethod(): void {\r\n this.defaultSendMethodClicked.emit();\r\n }\r\n\r\n public async getDefaultEmailLayouts(): Promise<void> {\r\n this.emailLayoutClicked.emit();\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, CoDialogModule,\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\nimport {DocsignModule} from \"../docsign/docsign.module\";\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 DocsignModule,\r\n CoDialogModule\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 [class.focused-status]=\"focusedStatusIndex !== undefined && focusedStatusIndex === index\"\r\n [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 @Input()\r\n public focusedStatusIndex: number;\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 {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {CalendarView} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\n@Component({\r\n selector: \"sc-date-planning\",\r\n template: `\r\n <div class=\"sc-agenda\">\r\n <div class=\"content-wrapper\">\r\n <calendar *ngIf=\"calendarNavigation\"\r\n [view]=\"view\"\r\n [(days)]=\"days\"\r\n [selectedDate]=\"selectedDate\" (selectedDateChange)=\"doChangeSelectedDate($event)\"></calendar>\r\n <div class=\"agenda-content-wrapper mini-scrollbar\">\r\n <div class=\"agenda-content\">\r\n <agenda-header [view]=\"view\" (viewChange)=\"doChangeView($event)\"\r\n [firstAvailableDate]=\"firstAvailableDate\"\r\n [eventsPerDay]=\"eventsPerDay\"\r\n [selectedDate]=\"selectedDate\"\r\n (selectedDateChange)=\"doChangeSelectedDate($event)\"\r\n (rangeChange)=\"doChangeSelectedDate($event, true)\"></agenda-header>\r\n <agenda-view [view]=\"view\"\r\n [selectedDate]=\"selectedDate\"\r\n [eventsPerDay]=\"eventsPerDay\"\r\n (eventChecked)=\"eventChecked.emit($event)\"></agenda-view>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <co-button *ngIf=\"showButton && eventsPerDay.length > 0\" class=\"text-only select-agenda-button\"\r\n [label]=\"buttonLabel\"\r\n (click)=\"buttonClick.emit($event)\">\r\n </co-button>\r\n `,\r\n animations: [\r\n trigger(\"showHideWindow\", [\r\n state(\"void\", style({transform: \"scaleY(0)\"})),\r\n state(\"*\", style({transform: \"scaleY(1)\"})),\r\n transition(\":enter, :leave\", [\r\n animate(\"200ms ease-in-out\")\r\n ])\r\n ])\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class DatePlanningComponent {\r\n\r\n @Input()\r\n public calendarNavigation: boolean = false;\r\n\r\n @Input()\r\n public showButton: boolean = false;\r\n\r\n @Input()\r\n public selectedDate: Date;\r\n\r\n @Input()\r\n public firstAvailableDate: Date;\r\n\r\n @Input()\r\n public buttonLabel: string = \"\";\r\n\r\n @Input()\r\n public eventsPerDay: any = [];\r\n\r\n @Input()\r\n public view: CalendarView;\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n public readonly selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public readonly rangeChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public readonly viewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n @Output()\r\n public readonly buttonClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n @ViewChild(\"dayStart\", { static: true })\r\n public dayStart: ElementRef;\r\n\r\n public days: Date[] = [];\r\n private _selectedDate: Date = new Date();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n private renderer: Renderer2\r\n ) {\r\n }\r\n\r\n public doChangeSelectedDate(date: Date, rangeChanged: boolean = false): void {\r\n this.selectedDate = new Date(date);\r\n if (rangeChanged) {\r\n this.rangeChange.next(this.selectedDate);\r\n } else {\r\n this.selectedDateChange.next(this.selectedDate);\r\n }\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n public doChangeView(view: CalendarView): void {\r\n this.view = view;\r\n this.viewChange.next(this.view);\r\n }\r\n\r\n public scrollToDayStart(): void {\r\n if (this.dayStart !== undefined) {\r\n const dayStart: any = this.renderer.selectRootElement(\"#dayStart\");\r\n if (dayStart) {\r\n setTimeout(() => {\r\n dayStart.scrollIntoView({behavior: \"instant\", block: \"center\"});\r\n });\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"calendar-all-years\",\r\n template: `\r\n <div *ngFor=\"let currentYear of years\"\r\n [textContent]=\"currentYear\"\r\n [class.selected-year]=\"currentYear === year\"\r\n class=\"pointer-hover\"\r\n (click)=\"year = currentYear; yearChange.emit(year)\"\r\n ></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CalendarAllYearsComponent implements OnInit {\r\n\r\n @Input()\r\n public year: number;\r\n\r\n @Output()\r\n public readonly yearChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n public years: number[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.years.length = 0;\r\n let start: number = this._determineStart();\r\n const end: number = start + 11;\r\n while (start < end) {\r\n this.years.push(start);\r\n start++;\r\n }\r\n }\r\n\r\n private _determineStart(): number {\r\n if (this.year > 0) {\r\n let thisYear: number = this.year;\r\n let thisYearLastDigit: number = parseInt(thisYear.toString().split(\"\").pop());\r\n while (thisYearLastDigit > 0) {\r\n thisYear--;\r\n thisYearLastDigit = parseInt(thisYear.toString().split(\"\").pop());\r\n }\r\n return thisYear;\r\n }\r\n return 0;\r\n }\r\n\r\n}\r\n","// All the months. Values are corresponding dictionary keys in text_nl.\r\nexport enum Month {\r\n January = \"JANUARY\",\r\n Februrary = \"FEBRUARY\",\r\n March = \"MARCH\",\r\n April = \"APRIL\",\r\n May = \"MAY\",\r\n June = \"JUNE\",\r\n July = \"JULY\",\r\n August = \"AUGUST\",\r\n September = \"SEPTEMBER\",\r\n October = \"OCTOBER\",\r\n November = \"NOVEMBER\",\r\n December = \"DECEMBER\"\r\n}\r\n","import {Month} from \"../../enum/month.enum\";\r\n\r\n// All the months in a year. The order is important, and should remain January - to December!\r\nexport const ALL_MONTHS: Month[] = [\r\n Month.January,\r\n Month.Februrary,\r\n Month.March,\r\n Month.April,\r\n Month.May,\r\n Month.June,\r\n Month.July,\r\n Month.August,\r\n Month.September,\r\n Month.October,\r\n Month.November,\r\n Month.December\r\n];\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ALL_MONTHS} from \"../../../../model/constant/all-months\";\r\n\r\n@Component({\r\n selector: \"calendar-all-months\",\r\n template: `\r\n <div *ngFor=\"let currentMonth of months; let index = index\"\r\n [class.selected-month]=\"month === index\"\r\n [textContent]=\"currentMonth\"\r\n class=\"pointer-hover\"\r\n (click)=\"month = index; monthChange.emit(month)\"\r\n ></div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CalendarAllMonthsComponent implements OnInit {\r\n\r\n @Input()\r\n public month: number;\r\n\r\n @Input()\r\n public shortDescriptions: boolean = false;\r\n\r\n @Output()\r\n public monthChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n public months: string[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.months.length = 0;\r\n this.months = ALL_MONTHS;\r\n }\r\n}\r\n","import {Component, DoCheck, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {ALL_MONTHS} from \"../../../../model/constant/all-months\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"calendar-header\",\r\n template: `\r\n <div #monthYearSelect class=\"calendar-header-row\">\r\n <co-icon class=\"pointer-hover\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subMonth()\"></co-icon>\r\n <div (click)=\"showMonthYearSelect = true\">\r\n <div class=\"month\" [textContent]=\"currentMonth\"></div>\r\n <div class=\"year\" [textContent]=\"currentYear\"></div>\r\n </div>\r\n <co-icon class=\"pointer-hover\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addMonth()\"></co-icon>\r\n </div>\r\n <ng-template #template>\r\n <div *ngIf=\"showMonthYearSelect\"\r\n (clickOutside)=\"hideMonthYearSelection()\"\r\n class=\"select-month-year-window\" [class.expanded]=\"expanded\" @showMonthYearSelect\r\n >\r\n <div>\r\n <calendar-all-months [month]=\"currentMonth\" (monthChange)=\"setNewMonth($event)\" shortDescriptions></calendar-all-months>\r\n <div class=\"vertical-divider\"></div>\r\n <calendar-all-years [year]=\"currentYear\" (yearChange)=\"setNewYear($event)\"></calendar-all-years>\r\n </div>\r\n<!-- <default-ok-cancel-buttons-->\r\n<!-- (okClick)=\"changeMonthYear()\"-->\r\n<!-- (cancelClick)=\"showMonthYearSelect = false\"-->\r\n<!-- >-->\r\n<!-- </default-ok-cancel-buttons>-->\r\n </div>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [\r\n trigger(\"showMonthYearSelect\", [\r\n state(\"void\", style({\r\n \"transform-origin\": \"top center\",\r\n transform: \"scaleY(0)\"\r\n })),\r\n state(\"*\", style({\r\n \"transform-origin\": \"top center\",\r\n transform: \"scaleY(1)\"\r\n })),\r\n transition(\":enter, :leave\", [\r\n animate(\"200ms ease-in-out\")\r\n ])\r\n ])\r\n ]\r\n})\r\n\r\nexport class CalendarHeaderComponent implements DoCheck {\r\n\r\n @Input()\r\n public selectedDate: Date = new Date();\r\n\r\n @Output()\r\n public readonly selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n public showMonthYearSelect: boolean = false;\r\n\r\n public expanded: boolean = false;\r\n\r\n public currentMonth: string;\r\n\r\n public currentYear: number;\r\n\r\n public selectedMonth: number;\r\n\r\n public selectedYear: number;\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.selectedDate) {\r\n this.currentMonth = ALL_MONTHS[this.selectedDate.getMonth()];\r\n this.currentYear = this.selectedDate.getFullYear();\r\n }\r\n }\r\n\r\n public subMonth(): void {\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(newDate.getMonth() - 1);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public addMonth(): void {\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(newDate.getMonth() + 1);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public hideMonthYearSelection(): void {\r\n this.expanded = false;\r\n this.showMonthYearSelect = false;\r\n }\r\n\r\n public setNewMonth(month: number): void {\r\n this.selectedMonth = month;\r\n }\r\n\r\n public setNewYear(year: number): void {\r\n this.selectedYear = year;\r\n }\r\n\r\n public changeMonthYear(): void {\r\n this.hideMonthYearSelection();\r\n const newDate: Date = new Date(this.selectedDate);\r\n newDate.setMonth(this.selectedMonth);\r\n newDate.setFullYear(this.selectedYear);\r\n this.selectedDate = newDate;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n}\r\n","export enum CalendarView {\r\n DayView = \"DAY\",\r\n WeekView = \"WEEK\",\r\n WeekSelectView = \"WEEK_SELECT\",\r\n MonthView = \"MONTH\"\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\n\r\n@Component({\r\n selector: \"calendar\",\r\n template: `\r\n <div class=\"sc-calendar\">\r\n <calendar-header [selectedDate]=\"selectedDate\" (selectedDateChange)=\"changeSelectedDate($event)\"></calendar-header>\r\n <calendar-view [view]=\"view\" [selectedDate]=\"selectedDate\" (selectedDateChange)=\"changeSelectedDate($event)\"></calendar-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public selectedDate: Date = new Date();\r\n\r\n @Input()\r\n public days: Date[] = [];\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n constructor() {\r\n }\r\n\r\n public changeSelectedDate(date: Date): void {\r\n this.selectedDate = date;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"arrayNumber\"\r\n})\r\nexport class ArrayNumberPipe implements PipeTransform {\r\n\r\n transform(length: number, offset: number = 0): number[] {\r\n if (!length || length < 0) {\r\n return [];\r\n }\r\n return Array.from({length: Math.round(length)}, (x, i) => i + offset);\r\n }\r\n}\r\n","import {TimePeriod} from \"../enum/time-period.enum\";\r\n\r\nexport class DateRange {\r\n public startDate: Date;\r\n public endDate: Date;\r\n public selectedTimePeriod: TimePeriod;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Month} from \"../enum/month.enum\";\r\nimport {ALL_MONTHS} from \"../model/constant/all-months\";\r\nimport {notNill} from \"./function/not-nill.function\";\r\nimport * as moment from \"moment\";\r\nimport {Moment} from \"moment\";\r\nimport {DatePipe} from \"@angular/common\";\r\nimport {DateRange} from \"../model/date-range\";\r\n\r\nDate.prototype.toJSON = function() {\r\n return moment(this).format('YYYY-MM-DD[T]HH:mm:ss');\r\n}\r\n\r\n// static utility function holder related to dates\r\nexport class DateUtils {\r\n public static readonly BACKEND_DATE_FORMAT: string = 'YYYY-MM-DD[T]HH:mm:ss';\r\n public static datePipe: DatePipe = new DatePipe('shortDate');\r\n\r\n public static NowAsString(): string {\r\n return DateUtils.ParseDate(new Date(), DateUtils.BACKEND_DATE_FORMAT);\r\n }\r\n\r\n public static ParseDate(date: Date, format: string = \"d-m-y\"): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const day: string = (\"0\" + date.getDate()).slice(-2);\r\n const month: string = (\"0\" + (date.getMonth() + 1)).slice(-2);\r\n const year: string = date.getFullYear() + \"\";\r\n\r\n const formatParts: string[] = format.split(\"-\");\r\n const dateParts: string[] = [];\r\n\r\n\r\n for (let i: number = 0, l: number = formatParts.length; i < l; i++) {\r\n switch (formatParts[i]) {\r\n case \"d\" :\r\n case \"DD\" :\r\n dateParts.push(day);\r\n break;\r\n case \"m\" :\r\n case \"MM\" :\r\n dateParts.push(month);\r\n break;\r\n case \"y\" :\r\n case \"YYYY\" :\r\n dateParts.push(year);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n return dateParts.join(\"-\");\r\n }\r\n\r\n public static GetWeekNumber(date: Date): number {\r\n date = new Date(date.getTime());\r\n date.setHours(0, 0, 0, 0);\r\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\r\n return Math.ceil((((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / 8.64e7) + 1) / 7);\r\n }\r\n\r\n // Returns the number of days from now, for the given date in the future. Returns negative days if given date is in the past from now.\r\n public static GetDaysFromNow(date: Date): number {\r\n return DateUtils.GetDayDifference(new Date(Date.now()), date);\r\n }\r\n\r\n public static StringAsDate(str: string, format: string = DateUtils.BACKEND_DATE_FORMAT): Date {\r\n if (notNill(str)) {\r\n if (!isNaN(Number(str))) {\r\n return new Date(str);\r\n } else {\r\n const time: any = moment(str, format, true);\r\n return time.isValid() ? new Date(time) : undefined;\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public static MomentToDate(time: Moment): Date {\r\n if (!time || !time.isValid()) {\r\n return undefined;\r\n }\r\n\r\n const d: Date = new Date(time.format(DateUtils.BACKEND_DATE_FORMAT));\r\n d.setHours(time.hours());\r\n d.setMinutes(time.minutes());\r\n d.setSeconds(time.seconds());\r\n return d;\r\n }\r\n\r\n public static GetCurrentMonth(): Month {\r\n return ALL_MONTHS[new Date().getMonth()];\r\n }\r\n\r\n // @returns e.g. [\"FEBRUARI\", \"MARCH\", ..] if it's Februari today, otherwise e.g. [\"APRIL\", \"MAY\", ...] if it's April today\r\n public static Get12MonthsArrayWithFirstMonthIsCurrentMonth(): Month[] {\r\n const answer: Month[] = [];\r\n\r\n let monthNrToAdd: number = new Date().getMonth();\r\n for (let i: number = 0; i < 12; i++) {\r\n answer.push(ALL_MONTHS[monthNrToAdd]);\r\n monthNrToAdd = (monthNrToAdd + 1) % ALL_MONTHS.length;\r\n }\r\n\r\n return answer;\r\n }\r\n\r\n public static GetFirstDayOfWeek(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n let firstDay: Date;\r\n const dayOfWeek: number = date.getDay() || 7;\r\n if (dayOfWeek === 1) {\r\n firstDay = new Date(date);\r\n } else {\r\n firstDay = new Date(date);\r\n firstDay.setHours(-24 * (dayOfWeek - 1));\r\n }\r\n return firstDay;\r\n }\r\n\r\n public static GetLastDayOfWeek(date: Date): Date {\r\n const firstDayOfWeek: Date = DateUtils.GetFirstDayOfWeek(date);\r\n const lastDayOfWeek: Date = new Date(firstDayOfWeek);\r\n lastDayOfWeek.setDate(firstDayOfWeek.getDate() + 6);\r\n return lastDayOfWeek;\r\n }\r\n\r\n public static GetFirstDayOfMonth(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n const year: number = date.getFullYear();\r\n const month: number = date.getMonth();\r\n return new Date(year, month, 1);\r\n }\r\n\r\n public static GetLastDayOfMonth(date: Date): Date {\r\n if (!DateUtils._ValidDate(date)) {\r\n return null;\r\n }\r\n const year: number = date.getFullYear();\r\n const month: number = date.getMonth();\r\n return new Date(year, month + 1, 0);\r\n }\r\n\r\n public static DatesEqual(date1: Date, date2: Date): boolean {\r\n let result: boolean = false;\r\n if (DateUtils._ValidDate(date1) && DateUtils._ValidDate(date2)) {\r\n result =\r\n date1.getDate() === date2.getDate() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getFullYear() === date2.getFullYear();\r\n }\r\n return result;\r\n }\r\n\r\n public static DateRangeEqual(dates1: DateRange, dates2: DateRange): boolean {\r\n return (this.DatesEqual(dates1.startDate, dates2.startDate) &&\r\n this.DatesEqual(dates1.endDate, dates2.endDate));\r\n }\r\n\r\n public static AddMinutes(date: Date, minutes: number): Date {\r\n return new Date(date.getTime() + (minutes * 60000));\r\n }\r\n\r\n public static AddDays(date: Date, days: number): Date {\r\n const result: Date = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n public static AddMonths(date: Date, months: number): Date {\r\n const result: Date = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n }\r\n\r\n public static DetermineDSTBreakpoints(): { start: string, end: string } {\r\n const endOfYear: Date = new Date(new Date().getFullYear(), 11, 1);\r\n let checkDate: Date = new Date(new Date().getFullYear(), 0, 1);\r\n let offset: number = checkDate.getTimezoneOffset();\r\n\r\n const periodStart: Date = new Date();\r\n let periodStartSet: boolean = false;\r\n const periodEnd: Date = new Date();\r\n let periodEndSet: boolean = false;\r\n while (checkDate.getTime() < endOfYear.getTime()) {\r\n checkDate = this.AddMinutes(checkDate, 60);\r\n if (offset < checkDate.getTimezoneOffset()) {\r\n periodEnd.setTime(checkDate.getTime());\r\n periodEndSet = true;\r\n } else if (offset > checkDate.getTimezoneOffset()) {\r\n periodStart.setTime(checkDate.getTime());\r\n periodStartSet = true;\r\n }\r\n offset = checkDate.getTimezoneOffset();\r\n if (periodStartSet && periodEndSet) {\r\n break;\r\n }\r\n }\r\n\r\n if (periodStartSet && periodEndSet) {\r\n return {\r\n start: this._DateToTimeStringWithDateFormat(periodStart),\r\n end: this._DateToTimeStringWithDateFormat(periodEnd)\r\n };\r\n } else {\r\n return {start: undefined, end: undefined}; // important otherwise we return new Date() for both\r\n }\r\n }\r\n\r\n private static _ValidDate(date: Date): boolean {\r\n return date !== null && date !== undefined;\r\n }\r\n\r\n /**\r\n * Returns the difference between the two given days as the number of days, in float precision (date to - date from).\r\n * Returns negative values of the 'from' date is later than in time than the 'to' date.\r\n */\r\n public static GetDayDifference(from: Date, to: Date): number {\r\n if (!from || !to) {\r\n return NaN;\r\n }\r\n return ((to.getTime() - from.getTime()) / 1000 / 60 / 60 / 24);\r\n }\r\n\r\n public static IsSameDay(dateOne: Date, dateTwo: Date): boolean {\r\n return (dateOne && dateTwo &&\r\n dateOne.getDate() === dateTwo.getDate()\r\n && dateOne.getMonth() === dateTwo.getMonth()\r\n && dateOne.getFullYear() === dateTwo.getFullYear());\r\n }\r\n\r\n public static IsInBetween(date: Date, startDate: Date, endDate: Date, withTime: boolean = true): boolean {\r\n if (startDate && endDate) {\r\n if (withTime) {\r\n return (date > startDate && date < endDate);\r\n } else {\r\n const dateWithoutTime: number = new Date(date).setHours(0, 0, 0, 0),\r\n dateFromWithoutTime: number = new Date(startDate).setHours(0, 0, 0, 0),\r\n dateToWithoutTime: number = new Date(endDate).setHours(0, 0, 0, 0);\r\n return dateWithoutTime >= dateFromWithoutTime && dateWithoutTime <= dateToWithoutTime;\r\n }\r\n }\r\n }\r\n\r\n public static IsMonday(date: Date): boolean {\r\n return date.getDay() === 1;\r\n }\r\n\r\n public static IsSunday(date: Date): boolean {\r\n return date.getDay() === 0;\r\n }\r\n\r\n public static IsToday(date: Date): boolean {\r\n const today: Date = new Date();\r\n return DateUtils.IsSameDay(today, date);\r\n }\r\n\r\n // Returns date format like it would when using a pipe in the templete, ie: \"1 okt. 2020\"\r\n public static ParseDateInShortDateFormat(date: Date, locale: string): string {\r\n this.datePipe = new DatePipe(locale);\r\n const parsedDate: string = this.datePipe.transform(date);\r\n return parsedDate;\r\n }\r\n\r\n // Transforms a string that is formatted like \"'17-08-2014'<=?<='17-08-2021'\" into \"'17-08-2014' Untill '17-08-2021'\"\r\n public static getFormattedDateRangeString(dateRangeString: string, separator: string = \" - \"): string {\r\n let newString: string = dateRangeString;\r\n newString = newString.replace(\"<=?<=\", ` ${separator} `);\r\n newString = newString.replace(/'/g, \"\");\r\n\r\n return newString;\r\n }\r\n\r\n public static SetDateOrDateRangeObjectHoursZero(date: Date | DateRange): void {\r\n if (date instanceof DateRange) {\r\n if (date.startDate) {\r\n date.startDate.setHours(0, 0, 0);\r\n }\r\n if (date.endDate) {\r\n date.endDate.setHours(0, 0, 0);\r\n }\r\n } else if (!!date && (date instanceof Date)) {\r\n date.setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n private static _DateToTimeStringWithDateFormat(value: Date, dateFormat: string = \"d-m-y\"): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const hours: string = value.getHours() < 10 ? \"0\" + value.getHours() : \"\" + value.getHours();\r\n const minutes: string = value.getMinutes() < 10 ? \"0\" + value.getMinutes() : \"\" + value.getMinutes();\r\n return this.ParseDate(value, dateFormat) + \" \" + [hours, minutes].join(\":\");\r\n }\r\n}\r\n","import {Component, EventEmitter, Inject, Input, LOCALE_ID, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {ArrayNumberPipe} from \"../../../../pipe/array-number.pipe\";\r\nimport {DatePipe} from \"@angular/common\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\n\r\ntype DateStamp = { day: number, inMonth: boolean, timestamp: number, week: number, selected: boolean };\r\n\r\n@Component({\r\n selector: \"calendar-view\",\r\n template: `\r\n <div class=\"calendar-content\">\r\n <div>\r\n <div class=\"week-day-header week-row\">\r\n <div class=\"week-acronym\"></div>\r\n <div *ngFor=\"let weekDay of weekDayLabel\" [textContent]=\"weekDay | ucfirst\"\r\n class=\"week-day-label\"></div>\r\n </div>\r\n <div class=\"week-row\" *ngFor=\"let week of weeks;trackBy:trackByWeek\">\r\n <div [textContent]=\"week[0].week\" class=\"week-number\"></div>\r\n <div *ngFor=\"let date of week;trackBy:trackByStamp\" class=\"week-day\"\r\n (click)=\"onDateClick(date)\" [textContent]=\"date.day\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n//fixme we don't have a todayDayStamp field but our template references it\r\nexport class CalendarViewComponent {\r\n\r\n @Input()\r\n public set view(value: CalendarView) {\r\n this._view = value;\r\n this._selectDays();\r\n }\r\n\r\n public get view(): CalendarView {\r\n return this._view;\r\n }\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = value;\r\n this._selectedDate.setHours(0, 0, 0, 0);\r\n this._prepareWeeks();\r\n }\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public trackByStamp: Function = (index: number, stamp: DateStamp): number => {\r\n return stamp && stamp.timestamp || index;\r\n }\r\n\r\n public trackByWeek: Function = (index: number, week: DateStamp[]): number => {\r\n return week && week[0].week || index;\r\n }\r\n\r\n public weekDayLabel: string[] = [];\r\n\r\n public weeks: DateStamp[][] = [];\r\n\r\n private _selectedDate: Date = new Date();\r\n\r\n private _view: CalendarView = CalendarView.WeekView;\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode,\r\n ) {\r\n this.selectedDate.setHours(0, 0, 0, 0);\r\n this._setLabels();\r\n }\r\n\r\n public onDateClick(date: DateStamp): void {\r\n this.selectedDate = new Date(date.timestamp);\r\n this.selectedDateChange.emit(this.selectedDate);\r\n this._selectDays();\r\n }\r\n\r\n private _setLabels(): void {\r\n const datePipe: DatePipe = new DatePipe(this._locale);\r\n\r\n const currentDay: number = this.selectedDate.getDay();\r\n const startWeekDate: Date = new Date(this.selectedDate.getTime());\r\n startWeekDate.setDate(startWeekDate.getDate() - currentDay - 1);\r\n\r\n this.weekDayLabel = new ArrayNumberPipe().transform(7).map(() => {\r\n startWeekDate.setDate(startWeekDate.getDate() + 1);\r\n return datePipe.transform(startWeekDate, \"E\");\r\n });\r\n this.weekDayLabel.push(this.weekDayLabel.shift());\r\n }\r\n\r\n private _prepareWeeks(): void {\r\n this.weeks.length = 0;\r\n\r\n const date: Date = new Date(this.selectedDate.getTime());\r\n date.setHours(0, 0, 0, 0);\r\n\r\n // go to last day of month\r\n date.setMonth(date.getMonth() + 1);\r\n date.setDate(0);\r\n const monthEndDay: number = date.getDay();\r\n const monthEndDate: number = date.getDate();\r\n\r\n // days after end of month\r\n const daysAfter: number = !monthEndDay ? 0 : 7 - monthEndDay;\r\n\r\n // go to first day of month\r\n date.setDate(1);\r\n const monthBeginDay: number = date.getDay();\r\n\r\n // days before start of month\r\n const daysBefore: number = !monthBeginDay ? 6 : monthBeginDay - 1;\r\n\r\n // go to start of calendar view\r\n date.setDate(-daysBefore + 1);\r\n\r\n // amount of weeks to display\r\n const weekCount: number = Math.ceil((daysBefore + daysAfter + monthEndDate) / 7);\r\n const weekStart: number = DateUtils.GetWeekNumber(date);\r\n const weekEnd: number = weekStart + weekCount - 1;\r\n\r\n // iterate over week count\r\n for (let i: number = weekStart; i <= weekEnd; i++) {\r\n let week: number = i;\r\n\r\n // only recalculate week when it's necessary\r\n if (weekStart > 50) {\r\n week = DateUtils.GetWeekNumber(date);\r\n }\r\n const days: DateStamp[] = [];\r\n\r\n // iterate over 7 days\r\n for (let ii: number = 1; ii <= 7; ii++) {\r\n // check if we are in the current month\r\n let inMonth: boolean = true;\r\n if (i === weekStart) {\r\n inMonth = ii > daysBefore;\r\n } else if (i === weekEnd) {\r\n inMonth = ii <= 7 - daysAfter;\r\n }\r\n\r\n const timestamp: number = date.getTime();\r\n // add dateStamp to date array\r\n days.push({\r\n week: week,\r\n inMonth: inMonth,\r\n day: date.getDate(),\r\n timestamp: timestamp,\r\n selected: this.selectedDate.getTime() === timestamp\r\n });\r\n // go one day further\r\n date.setDate(date.getDate() + 1);\r\n }\r\n this.weeks.push(days);\r\n }\r\n this._selectDays();\r\n }\r\n\r\n private _selectDays(): void {\r\n this._resetSelection();\r\n if (!this.selectedDate) {\r\n return;\r\n }\r\n const weekNumber: number = DateUtils.GetWeekNumber(this.selectedDate);\r\n const len: number = this.weeks.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const leni: number = this.weeks[i].length;\r\n for (let ii: number = 0; ii < leni; ii++) {\r\n if (this.weeks[i][ii].inMonth && this.view === CalendarView.MonthView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].week === weekNumber && this.view === CalendarView.WeekView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.WeekSelectView) {\r\n this.weeks[i][ii].selected = true;\r\n } else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.DayView) {\r\n this.weeks[i][ii].selected = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _resetSelection(): void {\r\n const len: number = this.weeks.length;\r\n for (let i: number = 0; i < len; i++) {\r\n const leni: number = this.weeks[i].length;\r\n for (let ii: number = 0; ii < leni; ii++) {\r\n this.weeks[i][ii].selected = false;\r\n }\r\n }\r\n }\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class Weekday {\r\n public inView: boolean = true;\r\n public weekdayDay: number;\r\n public weekdayMonthShort: string;\r\n public weekdayMonthLong: string;\r\n public weekdayYear: number;\r\n public date: Date;\r\n public weekdayShort: string;\r\n public weekdayLong: string;\r\n public description: string;\r\n public newMonth: boolean = false;\r\n public weekdaySelected: boolean = false;\r\n public datesByTheHour: Date[] = [];\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {Weekday} from \"./weekday.model\";\r\n\r\nexport class Week {\r\n public weekDays: Weekday[] = [];\r\n}\r\n","import {DateUtils} from \"./date-utils\";\r\nimport {Weekday} from \"../model/weekday.model\";\r\nimport {Inject, LOCALE_ID} from \"@angular/core\";\r\nimport {LanguageCode} from \"../enum/language-code.enum\";\r\nimport {Week} from \"../model/week.model\";\r\n\r\nexport class CalendarUtils {\r\n public static Locale: LanguageCode = undefined;\r\n\r\n public static Now: Date = new Date();\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode\r\n ) {\r\n CalendarUtils.Locale = _locale;\r\n }\r\n\r\n // public static GetCurrentYear(): number {\r\n // return this.Now.getFullYear();\r\n // }\r\n //\r\n // public static GetCurrentMonth(): number {\r\n // return this.Now.getUTCMonth() + 1;\r\n // }\r\n\r\n public static GetDayHours(day: Date): Date[] {\r\n const datesByTheHour: Date[] = [];\r\n if (day) {\r\n let newDate: Date = new Date(day);\r\n newDate.setHours(0, 0, 0, 0);\r\n datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n datesByTheHour.push(newDate);\r\n }\r\n }\r\n return datesByTheHour;\r\n }\r\n\r\n public static GetDaysOfWeek(date: Date): Week {\r\n let day: Date = DateUtils.GetFirstDayOfWeek(date);\r\n const daysOfWeek: Weekday[] = [];\r\n let options: any;\r\n let month: number;\r\n for (let i: number = 0; i < 7; i++) {\r\n const dayPerWeek: Weekday = new Weekday();\r\n const dayHours: Date[] = CalendarUtils.GetDayHours(day);\r\n dayPerWeek.newMonth = day.getMonth() !== month;\r\n dayPerWeek.weekdaySelected = day.getDay() === date.getDay();\r\n dayPerWeek.weekdayDay = day.getDate();\r\n options = { weekday: \"short\" };\r\n dayPerWeek.weekdayShort = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n options = { weekday: \"long\" };\r\n dayPerWeek.weekdayLong = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n\r\n options = { month: \"short\" };\r\n dayPerWeek.weekdayMonthShort = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n options = { month: \"long\" };\r\n dayPerWeek.weekdayMonthLong = day.toLocaleDateString(CalendarUtils.Locale, options);\r\n dayPerWeek.weekdayYear = day.getFullYear();\r\n\r\n dayPerWeek.date = new Date(day);\r\n dayPerWeek.datesByTheHour = dayHours;\r\n daysOfWeek.push(dayPerWeek);\r\n month = day.getMonth();\r\n day = new Date(day);\r\n day.setDate(day.getDate() + 1);\r\n }\r\n const week: Week = new Week();\r\n week.weekDays = daysOfWeek;\r\n return week;\r\n }\r\n\r\n}\r\n","import {TimeWindow} from \"./time-window.bo\";\r\n\r\nexport class AgendaEvent {\r\n public id: number;\r\n public description: string;\r\n public checked: boolean = false;\r\n public showCheckbox: boolean = false;\r\n public draggable: boolean = false;\r\n public from: Date;\r\n public to: Date;\r\n public date: Date;\r\n public dayPartNo: number;\r\n public fromString: string;\r\n public toString: string;\r\n public fromToRepresentation: string;\r\n public timeWindow: TimeWindow;\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class AgendaEventPerDay {\r\n public date: Date;\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {Week} from \"./week.model\";\r\n\r\nexport class Month {\r\n public weeks: Week[] = [];\r\n\r\n public get firstWeek(): Week {\r\n if (this.weeks && this.weeks.length > 0) {\r\n return this.weeks[0];\r\n }\r\n }\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\n\r\nexport class Day {\r\n public day: number;\r\n public date: Date;\r\n public description: string;\r\n public datesByTheHour: Date[] = [];\r\n public events: AgendaEvent[] = [];\r\n}\r\n","import {AgendaEvent} from \"./agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"./agenda-event-per-day.model\";\r\nimport {Month} from \"./month.model\";\r\nimport {Week} from \"./week.model\";\r\nimport {Day} from \"./day.model\";\r\n\r\nexport const NULL_AGENDA_EVENT: AgendaEvent = new AgendaEvent();\r\nexport const NULL_AGENDA_EVENT_PER_DAY: AgendaEventPerDay = new AgendaEventPerDay();\r\nexport const NULL_MONTH: Month = new Month();\r\nexport const NULL_WEEK: Week = new Week();\r\nexport const NULL_DAY: Day = new Day();\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n LOCALE_ID,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\nimport {Weekday} from \"../../../../model/weekday.model\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {NULL_DAY} from \"../../../../model/agenda-null-objects\";\r\nimport {Day} from \"../../../../model/day.model\"\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"agenda-header\",\r\n template: `\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.DayView\">\r\n <div class=\"hour-label-placeholder\">\r\n <view-select [selectedView]=\"view\" (selectedViewChange)=\"changeTheView($event)\"></view-select>\r\n </div>\r\n <div class=\"week-day-label\">\r\n <co-icon class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"day-description\" [textContent]=\"day.description\"></div>\r\n <co-icon class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.WeekView\">\r\n <div class=\"hour-label-placeholder\">\r\n <view-select [selectedView]=\"view\" (selectedViewChange)=\"changeTheView($event)\"></view-select>\r\n </div>\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\" [class.selected]=\"weekDay.weekdaySelected\" (click)=\"setUnit(weekDay)\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div *ngIf=\"weekDay.newMonth\" [textContent]=\"weekDay.weekdayMonthLong + ' ' + weekDay.weekdayYear\" class=\"month-description\"></div>\r\n <div class=\"weekday-value\" [textContent]=\"weekDay.weekdayDay\"></div>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.WeekSelectView\">\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\"\r\n [class.selected]=\"weekDay.weekdaySelected\"\r\n [class.selectable]=\"weekDay.events && weekDay.events.length > 0\"\r\n (click)=\"setUnit(weekDay)\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <div class=\"weekday-value\" [textContent]=\"weekDay.weekdayDay + ' ' + weekDay.weekdayMonthShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"agenda-header-wrapper\" *ngIf=\"view === viewTypes.MonthView\">\r\n <div class=\"week-day-label\" *ngFor=\"let weekDay of weekDays; let index = index\">\r\n <co-icon *ngIf=\"index === 0 && showBackButton\" class=\"pointer-hover no-user-select sub-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointLeft)\" (click)=\"subUnit()\"></co-icon>\r\n <div class=\"weekday-description\" [textContent]=\"weekDay.weekdayShort\"></div>\r\n <co-icon *ngIf=\"index === 6\" class=\"pointer-hover no-user-select add-unit-icon dark\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" (click)=\"addUnit()\"></co-icon>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHeaderComponent implements OnInit, OnDestroy, AfterContentChecked {\r\n public readonly icons: typeof Icon = Icon;\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n private readonly scrollbarWidth: number = 15;\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = new Date(value);\r\n this._prepareHeaderData();\r\n }\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekSelectView;\r\n\r\n @Input()\r\n public set firstAvailableDate(value: Date) {\r\n if (value) {\r\n this._firstAvailableDate = new Date(value);\r\n this._prepareHeaderData();\r\n }\r\n }\r\n\r\n public get firstAvailableDate(): Date {\r\n return this._firstAvailableDate;\r\n }\r\n\r\n @Input()\r\n public set eventsPerDay(value: AgendaEventPerDay[]) {\r\n this._eventsPerDay = value;\r\n this._prepareHeaderData();\r\n }\r\n\r\n @Output()\r\n public viewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n @Output()\r\n public selectedDateChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n @Output()\r\n public rangeChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n public weekDays: Weekday[] = [];\r\n public day: Day = NULL_DAY;\r\n public showBackButton: boolean = true;\r\n\r\n private _selectedDate: Date;\r\n private _firstAvailableDate: Date;\r\n private _eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private readonly _locale: LanguageCode,\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n private _ngZone: NgZone,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n window.removeEventListener(\"resize\", this._onResize);\r\n this._elementRef = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener(\"resize\", this._onResize);\r\n });\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._resizeHost();\r\n }\r\n\r\n public subUnit(): void {\r\n if (this.selectedDate) {\r\n const newDate: Date = new Date(this.selectedDate);\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n newDate.setDate(this.selectedDate.getDate() - 1);\r\n break;\r\n case CalendarView.WeekView:\r\n newDate.setDate(this.selectedDate.getDate() - 7);\r\n break;\r\n case CalendarView.WeekSelectView:\r\n newDate.setDate(this.selectedDate.getDate() - 7);\r\n break;\r\n case CalendarView.MonthView:\r\n newDate.setMonth(this.selectedDate.getMonth() - 1);\r\n break;\r\n }\r\n this.selectedDate = newDate;\r\n this.rangeChange.emit(this.selectedDate);\r\n }\r\n }\r\n\r\n public addUnit(): void {\r\n if (this.selectedDate) {\r\n const newDate: Date = new Date(this.selectedDate);\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n newDate.setDate(this.selectedDate.getDate() + 1);\r\n break;\r\n case CalendarView.WeekView:\r\n newDate.setDate(this.selectedDate.getDate() + 7);\r\n break;\r\n case CalendarView.WeekSelectView:\r\n newDate.setDate(this.selectedDate.getDate() + 7);\r\n break;\r\n case CalendarView.MonthView:\r\n newDate.setMonth(this.selectedDate.getMonth() + 1);\r\n break;\r\n }\r\n this.selectedDate = newDate;\r\n this.rangeChange.emit(this.selectedDate);\r\n }\r\n }\r\n\r\n public setUnit(weekDay: Weekday): void {\r\n this.selectedDate = weekDay.date;\r\n this.selectedDateChange.emit(this.selectedDate);\r\n }\r\n\r\n public changeTheView(view: CalendarView): void {\r\n this.view = view;\r\n this.viewChange.emit(view);\r\n this._prepareHeaderData();\r\n }\r\n\r\n private _onResize: EventListener = async (): Promise<void> => {\r\n this._resizeHost();\r\n }\r\n\r\n /**\r\n * Need to resize the host component to size it's fixed positioned child through css\r\n */\r\n private _resizeHost(): void {\r\n if (this._elementRef) {\r\n this._renderer.setStyle(\r\n this._elementRef.nativeElement, \"width\", this._elementRef.nativeElement.parentElement.clientWidth - this.scrollbarWidth + \"px\");\r\n }\r\n }\r\n\r\n private _prepareHeaderData(): void {\r\n if (this.selectedDate) {\r\n switch (this.view) {\r\n case CalendarView.DayView:\r\n const day: Day = new Day();\r\n day.date = new Date(this.selectedDate);\r\n const options: any = { year: \"numeric\", month: \"long\", day: \"numeric\" };\r\n day.description = this.selectedDate.toLocaleDateString(this._locale, options);\r\n this.day = day;\r\n break;\r\n case CalendarView.WeekView:\r\n const weekView: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekView.weekDays;\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n case CalendarView.WeekSelectView:\r\n const weekSelectView: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekSelectView.weekDays;\r\n this.weekDays.forEach((wd: Weekday) => {\r\n const evPerDay: AgendaEventPerDay = this._eventsPerDay && this._eventsPerDay.length > 0 ? this._eventsPerDay.find(e => DateUtils.DatesEqual(e.date, wd.date)) : null;\r\n if (evPerDay) {\r\n wd.events = evPerDay.events;\r\n } else {\r\n wd.weekdaySelected = false;\r\n }\r\n });\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n case CalendarView.MonthView:\r\n const weekOfMonth: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n this.weekDays = weekOfMonth.weekDays;\r\n if (this.firstAvailableDate) {\r\n this.showBackButton = this.weekDays.find(wd => DateUtils.DatesEqual(this.firstAvailableDate, wd.date)) === undefined;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\n\r\n@Component({\r\n selector: \"agenda-view\",\r\n template: `\r\n <div class=\"view-wrapper mini-scrollbar\" [ngSwitch]=\"view\">\r\n <agenda-day-view *ngSwitchCase=\"viewTypes.DayView\"\r\n [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-day-view>\r\n <agenda-week-view *ngSwitchCase=\"viewTypes.WeekView\"\r\n [view]=\"view\" [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-week-view>\r\n <agenda-week-select-view *ngSwitchCase=\"viewTypes.WeekSelectView\"\r\n [view]=\"view\" [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-week-select-view>\r\n <agenda-month-view *ngSwitchCase=\"viewTypes.MonthView\"\r\n [selectedDate]=\"selectedDate\" [eventsPerDay]=\"eventsPerDay\" (eventChecked)=\"eventChecked.emit($event)\"></agenda-month-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaViewComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public selectedDate: Date;\r\n\r\n @Input()\r\n public eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n}\r\n","import {Directive, EventEmitter, Inject, Input, LOCALE_ID, Output} from \"@angular/core\";\r\nimport {LanguageCode} from \"../../../../enum/language-code.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaEventPerDay} from \"../../../../model/agenda-event-per-day.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Directive()\r\nexport abstract class AgendaBaseViewComponent {\r\n\r\n @Input()\r\n public set selectedDate(value: Date) {\r\n this._selectedDate = value;\r\n this._dateIsSet();\r\n }\r\n\r\n @Input()\r\n public set eventsPerDay(value: AgendaEventPerDay[]) {\r\n this._eventsPerDay = value;\r\n this._eventsAreSet();\r\n }\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n public get selectedDate(): Date {\r\n return this._selectedDate;\r\n }\r\n\r\n public get eventsPerDate(): AgendaEventPerDay[] {\r\n return this._eventsPerDay;\r\n }\r\n\r\n private _selectedDate: Date;\r\n private _eventsPerDay: AgendaEventPerDay[] = [];\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) protected readonly locale: LanguageCode,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n //overridable by descendents\r\n protected prepareViewData(): void {\r\n }\r\n\r\n protected getEventsFromDate(date: Date): AgendaEvent[] {\r\n let events: AgendaEvent[] = [];\r\n if (this.eventsPerDate) {\r\n const len: number = this.eventsPerDate.length;\r\n for (let i: number = 0; i < len; i++) {\r\n if (DateUtils.DatesEqual(date, this.eventsPerDate[i].date)) {\r\n events = this.eventsPerDate[i].events;\r\n break;\r\n }\r\n }\r\n }\r\n return events;\r\n }\r\n\r\n private _dateIsSet(): void {\r\n this.prepareViewData();\r\n }\r\n\r\n private _eventsAreSet(): void {\r\n this.prepareViewData();\r\n }\r\n}\r\n","import {Component, ViewEncapsulation} from \"@angular/core\";\r\nimport { AgendaBaseViewComponent } from \"./agenda-base-view.component\";\r\nimport {NULL_MONTH} from \"../../../../model/agenda-null-objects\";\r\nimport {Month} from \"../../../../model/month.model\";\r\nimport {Weekday} from \"../../../../model/weekday.model\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-month-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <div class=\"hour-view-labels-wrapper\"></div>\r\n <div class=\"weeks\">\r\n <div class=\"week\" *ngFor=\"let week of weeks\" fxLayout=\"row\">\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\" [class.not-in-month]=\"!weekDay.inView\">\r\n <div class=\"day\" [textContent]=\"weekDay.weekdayDay\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaMonthViewComponent extends AgendaBaseViewComponent {\r\n\r\n public month: Month = NULL_MONTH;\r\n\r\n public firstWeekDays: Weekday[] = [];\r\n\r\n public weeks: Week[] = [];\r\n\r\n protected prepareViewData(): void {\r\n const month: Month = new Month();\r\n if (this.selectedDate) {\r\n const day: Date = DateUtils.GetFirstDayOfMonth(this.selectedDate);\r\n const endOfMonth: Date = DateUtils.GetLastDayOfMonth(this.selectedDate);\r\n let oneMoreIteration: boolean = false;\r\n let continueLoop: boolean = true;\r\n\r\n while (continueLoop) {\r\n if (oneMoreIteration) {\r\n continueLoop = false;\r\n }\r\n const week: Week = CalendarUtils.GetDaysOfWeek(day);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n week.weekDays[i].inView = week.weekDays[i].date.getMonth() === this.selectedDate.getMonth();\r\n }\r\n month.weeks.push(week);\r\n day.setDate(day.getDate() + 7);\r\n if (day.getTime() >= endOfMonth.getTime()) {\r\n oneMoreIteration = true;\r\n }\r\n }\r\n this.month = month;\r\n this.firstWeekDays = this.month.firstWeek.weekDays;\r\n this.weeks = month.weeks;\r\n }\r\n }\r\n\r\n}\r\n","import {Component, ViewEncapsulation} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-day-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <agenda-hour-view-labels [date]=\"selectedDate\"></agenda-hour-view-labels>\r\n <agenda-hour-view [date]=\"selectedDate\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-events>\r\n </agenda-hour-view>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaDayViewComponent extends AgendaBaseViewComponent {\r\n\r\n public events: AgendaEvent[] = [];\r\n\r\n protected prepareViewData(): void {\r\n if (this.eventsPerDate && this.eventsPerDate.length > 0) {\r\n this.events = this.eventsPerDate[0].events;\r\n }\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {NULL_WEEK} from \"../../../../model/agenda-null-objects\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {Week} from \"../../../../model/week.model\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-week-view\",\r\n template: `\r\n <div class=\"view-wrapper\">\r\n <agenda-hour-view-labels [date]=\"selectedDate\"></agenda-hour-view-labels>\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\">\r\n <agenda-hour-view [date]=\"weekDay.date\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"weekDay.events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n [view]=\"view\"\r\n ></agenda-events>\r\n </agenda-hour-view>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaWeekViewComponent extends AgendaBaseViewComponent /*implements OnInit, OnDestroy*/ {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n public week: Week = NULL_WEEK;\r\n\r\n protected prepareViewData(): void {\r\n if (this.selectedDate) {\r\n // get the events\r\n const week: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n }\r\n this.week = week;\r\n }\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\nimport {AgendaBaseViewComponent} from \"./agenda-base-view.component\";\r\nimport {NULL_WEEK} from \"../../../../model/agenda-null-objects\";\r\nimport {CalendarUtils} from \"../../../../utils/calendar.utils\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {Week} from \"../../../../model/week.model\";\r\n\r\n@Component({\r\n selector: \"agenda-week-select-view\",\r\n template: `\r\n <div class=\"view-wrapper week-select-view\">\r\n <div class=\"week-day\" *ngFor=\"let weekDay of week.weekDays\">\r\n <div class=\"week-select-container\" *ngIf=\"weekDay.weekdaySelected\">\r\n <div class=\"week-select-left\">\r\n <h3 [textContent]=\"'AGENDA_CHOOSE_DELIVERY_PERIOD'\"></h3>\r\n <div class=\"week-select-list mini-scrollbar\">\r\n <agenda-events\r\n [halfHourHeight]=\"40\"\r\n [events]=\"weekDay.events\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n [view]=\"view\"\r\n ></agenda-events>\r\n <div class=\"no-events-banner\" *ngIf=\"weekDay.events.length === 0\">\r\n <p [textContent]=\"'AGENDA_NO_PERIODS_AVAILABLE'\"></p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"week-select-right\">\r\n <h3 [textContent]=\"'AGENDA_FOR_EVERY_PERIOD'\"></h3>\r\n <ul>\r\n <li><co-icon [iconData]=\"iconCacheService.getIcon(icons.CheckRound)\" class=\"small action-color moment-icon\"></co-icon><span [textContent]=\"'AGENDA_FOR_EVERY_PERIOD_REASON1'\"></span></li>\r\n <li><co-icon [iconData]=\"iconCacheService.getIcon(icons.CheckRound)\" class=\"small action-color moment-icon\"></co-icon><span [textContent]=\"'AGENDA_FOR_EVERY_PERIOD_REASON2'\"></span></li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaWeekSelectViewComponent extends AgendaBaseViewComponent {\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekSelectView;\r\n\r\n public week: Week = NULL_WEEK;\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n protected prepareViewData(): void {\r\n if (this.selectedDate) {\r\n // get the events\r\n const week: Week = CalendarUtils.GetDaysOfWeek(this.selectedDate);\r\n const len: number = week.weekDays.length;\r\n for (let i: number = 0; i < len; i++) {\r\n week.weekDays[i].events = this.getEventsFromDate(week.weekDays[i].date);\r\n }\r\n this.week = week;\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-view\",\r\n template: `\r\n <div class=\"row-per-hour\" *ngFor=\"let dateByTheHour of datesByTheHour\">\r\n <div fxLayout=\"row\">\r\n <agenda-hour-cell [date]=\"dateByTheHour\"></agenda-hour-cell>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourViewComponent {\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = new Date(value);\r\n this._prepareViewData();\r\n }\r\n\r\n public readonly datesByTheHour: Date[] = [];\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _date: Date = new Date();\r\n\r\n // fixme remove ctrl + c, ctrl + v code duplication with AgendaHourViewLabelsComponent._prepareViewData()\r\n private _prepareViewData(): void {\r\n this.datesByTheHour.length = 0;\r\n if (this.date) {\r\n let newDate: Date = new Date(this.date);\r\n newDate.setHours(0, 0, 0, 0);\r\n this.datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n this.datesByTheHour.push(newDate);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-cell\",\r\n template: `\r\n <div class=\"row-per-half-hour\">\r\n <agenda-half-hour-cell [date]=\"date\" [showLabel]=\"onlyLabels && !noLabels\"></agenda-half-hour-cell>\r\n <agenda-half-hour-cell [date]=\"datePlushalfHour\"></agenda-half-hour-cell>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourCellComponent {\r\n @Input()\r\n public onlyLabels: boolean = false;\r\n\r\n @Input()\r\n public noLabels: boolean = false;\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = value;\r\n this._setNextHalfHour();\r\n }\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n public datePlushalfHour: Date;\r\n\r\n private _date: Date;\r\n\r\n private _setNextHalfHour(): void {\r\n this.datePlushalfHour = new Date(this._date);\r\n this.datePlushalfHour.setMinutes(this.datePlushalfHour.getMinutes() + 30);\r\n }\r\n}\r\n","import {Component, Input, ViewEncapsulation} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"agenda-hour-view-labels\",\r\n template: `\r\n <div class=\"row-per-hour\" *ngFor=\"let dateByTheHour of datesByTheHour\">\r\n <div>\r\n <agenda-hour-cell [date]=\"dateByTheHour\" onlyLabels [noLabels]=\"noLabels\"></agenda-hour-cell>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHourViewLabelsComponent {\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = new Date(value);\r\n this._date.setDate(1);\r\n this._date.setMonth(1);\r\n this._date.setFullYear(1);\r\n this._prepareViewData();\r\n }\r\n\r\n @Input()\r\n public noLabels: boolean = false;\r\n\r\n public readonly datesByTheHour: Date[] = [];\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n private _date: Date = new Date();\r\n\r\n // fixme remove ctrl + c, ctrl + v code duplication with AgendaHourViewComponent._prepareViewData()\r\n private _prepareViewData(): void {\r\n this.datesByTheHour.length = 0;\r\n if (this.date) {\r\n let newDate: Date = new Date(this.date);\r\n newDate.setHours(0, 0, 0, 0);\r\n this.datesByTheHour.push(newDate);\r\n for (let i: number = 0; i < 23; i++) {\r\n newDate = new Date(newDate);\r\n newDate.setHours(newDate.getHours() + 1);\r\n this.datesByTheHour.push(newDate);\r\n }\r\n }\r\n }\r\n}\r\n","import {Component, ElementRef, Input, OnDestroy, Renderer2, ViewChild, ViewEncapsulation} from \"@angular/core\";\r\nimport {DateUtils} from \"../../../../utils/date-utils\";\r\n\r\n\r\n@Component({\r\n selector: \"agenda-half-hour-cell\",\r\n template: `\r\n <div id=\"{{id}}\" class=\"cell-wrapper\">\r\n <div *ngIf=\"showLabel\" [class.show]=\"showLabel\" class=\"half-hour-label\">\r\n <div [textContent]=\"date | date:'HH:mm'\"></div>\r\n </div>\r\n <div *ngIf=\"showCurrentTime\" id=\"currentTime\" class=\"current-time\" #currentTime></div>\r\n <div class=\"content-wrapper\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaHalfHourCellComponent implements OnDestroy {\r\n\r\n @ViewChild(\"currentTime\")\r\n public currentTimeElement: ElementRef;\r\n\r\n @Input()\r\n public set date(value: Date) {\r\n this._date = value;\r\n this._checkDate();\r\n this._checkWorkingDayStart();\r\n }\r\n\r\n public get date(): Date {\r\n return this._date;\r\n }\r\n\r\n @Input()\r\n public showLabel: boolean = false;\r\n\r\n public showCurrentTime: boolean = false;\r\n\r\n public currentTimeTop: number = 0;\r\n\r\n public id: string;\r\n\r\n private _date: Date;\r\n private _id: string;\r\n\r\n constructor(\r\n private _renderer: Renderer2\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.currentTimeElement = undefined;\r\n }\r\n\r\n private _checkDate(): void {\r\n const checkDate: Date = new Date();\r\n const minutesFrom: number = this.date.getMinutes();\r\n const minutesTo: number = minutesFrom + 30;\r\n\r\n if (DateUtils.DatesEqual(this.date, checkDate)) {\r\n if (checkDate.getHours() === this.date.getHours() && (checkDate.getMinutes() > minutesFrom && checkDate.getMinutes() < minutesTo)) {\r\n this.currentTimeTop = (Math.max(checkDate.getMinutes(), .01) / 60) * 100;\r\n this._positionCurrentTime();\r\n this.showCurrentTime = true;\r\n }\r\n }\r\n }\r\n\r\n private _checkWorkingDayStart(): void {\r\n this.id = (this._date.getHours() === 8 && this._date.getMinutes() === 30) ? \"dayStart\" : \"\";\r\n }\r\n\r\n private _positionCurrentTime(): void {\r\n if (this.currentTimeElement) {\r\n this._renderer.setStyle(this.currentTimeElement.nativeElement, \"top\", this.currentTimeTop + \"%\");\r\n this.currentTimeElement.nativeElement.scrollIntoView();\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\n\r\n@Component({\r\n selector: \"agenda-events\",\r\n template: `\r\n <ng-container *ngIf=\"view !== viewTypes.WeekSelectView\">\r\n <agenda-event\r\n *ngFor=\"let event of events\"\r\n [halfHourHeight]=\"halfHourHeight\"\r\n [event]=\"event\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-event>\r\n </ng-container>\r\n <ng-container *ngIf=\"view === viewTypes.WeekSelectView\">\r\n <agenda-select-event\r\n *ngFor=\"let event of events\"\r\n [event]=\"event\"\r\n (eventChecked)=\"eventChecked.emit($event)\"\r\n ></agenda-select-event>\r\n </ng-container>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaEventsComponent {\r\n\r\n public readonly viewTypes: typeof CalendarView = CalendarView;\r\n\r\n @Input()\r\n public view: CalendarView = CalendarView.WeekView;\r\n\r\n @Input()\r\n public type: string = \"\";\r\n\r\n @Input()\r\n public events: AgendaEvent[] = [];\r\n\r\n @Input()\r\n public halfHourHeight: number;\r\n\r\n @Output()\r\n public readonly eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {NULL_AGENDA_EVENT} from \"../../../../model/agenda-null-objects\";\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: \"agenda-event\",\r\n template: `\r\n <div class=\"agenda-event-wrapper\" [class.checkable]=\"event.showCheckbox\" [class.selected]=\"event.checked\" (click)=\"checkEvent($event)\">\r\n <div [textContent]=\"event.fromToRepresentation\" class=\"event-description\"></div>\r\n <co-icon *ngIf=\"event.showCheckbox\" [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" [class.checked]=\"event.checked\"></co-icon>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AgendaEventComponent implements OnInit, OnDestroy {\r\n\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public event: AgendaEvent = NULL_AGENDA_EVENT;\r\n\r\n @Input()\r\n public halfHourHeight: number;\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._elementRef = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n const hourTo: number = this.event.from.getHours();\r\n const minutesTo: number = this.event.from.getMinutes();\r\n const multiply: number = hourTo + (minutesTo / 60);\r\n const top: number = multiply * (this.halfHourHeight * 2);\r\n this._renderer.setStyle(this._elementRef.nativeElement, \"top\", top + \"px\");\r\n\r\n const hours: number = Math.abs(this.event.to.getTime() - this.event.from.getTime()) / 3600000;\r\n const height: number = hours * (this.halfHourHeight * 2) - 1;\r\n this._renderer.setStyle(this._elementRef.nativeElement, \"height\", height + \"px\");\r\n }\r\n\r\n public checkEvent(event: MouseEvent): void {\r\n this.event.checked = !this.event.checked;\r\n this.eventChecked.emit(this.event);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"ucfirst\"\r\n})\r\n// Pipe capable of transforming the first character of a string-value to upper case.\r\nexport class UCfirstPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (typeof value === \"string\") {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n return value;\r\n }\r\n}\r\n","import {ArrayNumberPipe} from \"./array-number.pipe\";\r\nimport {UCfirstPipe} from \"./ucfirst.pipe\";\r\n\r\nexport const MASTER_PIPES: any[] = [\r\n ArrayNumberPipe,\r\n UCfirstPipe\r\n]\r\n","// <b>Enum</b> Represents the different states of the three way thumb.\r\nexport enum ThumbThreeWayState {\r\n Left = 0,\r\n Middle = 1,\r\n Right = 2\r\n}\r\n\r\nexport function NextStateOfThumbThreeWay(state: ThumbThreeWayState): ThumbThreeWayState {\r\n switch (state) {\r\n case ThumbThreeWayState.Left:\r\n return ThumbThreeWayState.Middle;\r\n case ThumbThreeWayState.Middle:\r\n return ThumbThreeWayState.Right;\r\n case ThumbThreeWayState.Right:\r\n default:\r\n return ThumbThreeWayState.Left;\r\n }\r\n}\r\n","// Static utility functions holder related to Maps.\r\nexport class MapUtils {\r\n\r\n /**\r\n * Returns the first key from given map, for which the value filter holds true. Basically a reverse Map.get(key) function.\r\n * @param map\r\n * @param valueFilter For the first value that returns true for this filter functions, its key will be returned.\r\n */\r\n public static FindKeyByValue<K, V>(map: Map<K, V>, valueFilter: (value: V) => boolean): K {\r\n\r\n if (!map || !valueFilter) {\r\n return undefined;\r\n }\r\n\r\n let foundKey: K = undefined;\r\n let keyWasFound: boolean = false;\r\n map.forEach((value: V, key: K) => {\r\n if (!keyWasFound && valueFilter.call(this, value)) {\r\n foundKey = key;\r\n keyWasFound = true;\r\n }\r\n });\r\n return foundKey;\r\n }\r\n\r\n /**\r\n * Inserts given arrayEntry into given map, under given mapKey. What's special here, is that a NEW map entry is created with an array\r\n * containing the single [arrayEntry] item, if no entry yet existed.\r\n * @param map\r\n * @param mapKey\r\n * @param arrayEntry\r\n */\r\n public static InsertArrayItemIntoMap(map: Map<any, any>, mapKey: any, arrayEntry: any): void {\r\n if (!map) {\r\n return;\r\n }\r\n\r\n if (!map.has(mapKey)) {\r\n map.set(mapKey, [arrayEntry]);\r\n } else {\r\n map.get(mapKey).push(arrayEntry);\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {CalendarView} from \"../../../../enum/calendar-view.enum\";\r\nimport {ThumbThreeWayState} from \"../../../../enum/thumb-three-way-state\";\r\nimport {MapUtils} from \"../../../../utils/map-utils\";\r\n\r\n@Component({\r\n selector: \"view-select\",\r\n template: `\r\n <div class=\"select-wrapper\">\r\n <div [textContent]=\"'DAY'\" class=\"label\"></div>\r\n <div [textContent]=\"'MONTH'\" class=\"label\"></div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewSelectComponent {\r\n\r\n private readonly _viewsToThumb: Map<CalendarView, ThumbThreeWayState> = new Map<CalendarView, ThumbThreeWayState>([\r\n [CalendarView.DayView, ThumbThreeWayState.Left],\r\n [CalendarView.WeekView, ThumbThreeWayState.Middle],\r\n [CalendarView.MonthView, ThumbThreeWayState.Right]\r\n ]);\r\n\r\n @Input()\r\n public selectedView: CalendarView = CalendarView.WeekView;\r\n\r\n @Output()\r\n public selectedViewChange: EventEmitter<CalendarView> = new EventEmitter<CalendarView>();\r\n\r\n public get modelAsThumbState(): ThumbThreeWayState {\r\n return this._viewsToThumb.get(this.selectedView);\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public onThumbStateChange(thumbState: ThumbThreeWayState): void {\r\n this.selectedView = MapUtils.FindKeyByValue<CalendarView, ThumbThreeWayState>(this._viewsToThumb, (value: ThumbThreeWayState) => {\r\n return (value === thumbState);\r\n });\r\n this.selectedViewChange.emit(this.selectedView);\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\r\nimport {AgendaEvent} from \"../../../../model/agenda-event.model\";\r\nimport {NULL_AGENDA_EVENT} from \"../../../../model/agenda-null-objects\";\r\nimport {Icon} from \"../../../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../../../service/icon-cache.service\";\r\n\r\n@Component({\r\n selector: \"agenda-select-event\",\r\n template: `\r\n <div class=\"week-select-item\" (click)=\"checkEvent($event)\">\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" class=\"select-icon action-color\" *ngIf=\"!event.checked\"></co-icon>\r\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.ArrowPointRight)\" class=\"select-icon action-color\" *ngIf=\"event.checked\"></co-icon>\r\n <div class=\"moment-name\">\r\n <small>{{ event.date | date: 'EEEE d MMMM' | uppercase }}</small>\r\n <h2>{{ event.description }}</h2>\r\n </div>\r\n </div>\r\n `\r\n})\r\nexport class AgendaSelectEventComponent {\r\n public readonly icons: typeof Icon = Icon;\r\n\r\n @Input()\r\n public event: AgendaEvent = NULL_AGENDA_EVENT;\r\n\r\n @Output()\r\n public eventChecked: EventEmitter<AgendaEvent> = new EventEmitter<AgendaEvent>();\r\n\r\n constructor(\r\n public iconCacheService: IconCacheService\r\n ) {\r\n }\r\n\r\n public checkEvent(event: MouseEvent): void {\r\n this.event.checked = !this.event.checked;\r\n this.eventChecked.emit(this.event);\r\n }\r\n\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport {DatePlanningComponent} from \"./date-planning.component\";\r\nimport {ButtonModule, IconModule, InputDatePickerModule} from \"@colijnit/corecomponents_v12\";\r\nimport {CalendarAllYearsComponent} from \"./component/calendar/calendar-all-years.component\";\r\nimport {CalendarAllMonthsComponent} from \"./component/calendar/calendar-all-months.component\";\r\nimport {CalendarHeaderComponent} from \"./component/calendar/calendar-header.component\";\r\nimport {CalendarComponent} from \"./component/calendar/calendar.component\";\r\nimport {CalendarViewComponent} from \"./component/calendar/calendar-view.component\";\r\nimport {AgendaHeaderComponent} from \"./component/agenda/agenda-header.component\";\r\nimport {AgendaViewComponent} from \"./component/agenda/agenda-view.component\";\r\nimport {AgendaMonthViewComponent} from \"./component/agenda/agenda-month-view.component\";\r\nimport {AgendaDayViewComponent} from \"./component/agenda/agenda-day-view.component\";\r\nimport {AgendaWeekViewComponent} from \"./component/agenda/agenda-week-view.component\";\r\nimport {AgendaWeekSelectViewComponent} from \"./component/agenda/agenda-week-select-view.component\";\r\nimport {AgendaHourViewComponent} from \"./component/agenda/agenda-hour-view.component\";\r\nimport {AgendaHourCellComponent} from \"./component/agenda/agenda-hour-cell.component\";\r\nimport {AgendaHourViewLabelsComponent} from \"./component/agenda/agenda-hour-view-labels.component\";\r\nimport {AgendaHalfHourCellComponent} from \"./component/agenda/agenda-half-hour-cell.component\";\r\nimport {AgendaEventsComponent} from \"./component/agenda/agenda-events.component\";\r\nimport {AgendaEventComponent} from \"./component/agenda/agenda-event.component\";\r\nimport {MASTER_PIPES} from \"../../pipe/master-pipes\";\r\nimport {ViewSelectComponent} from \"./component/agenda/view-select.component\";\r\nimport {AgendaSelectEventComponent} from \"./component/agenda/agenda-select-event.component\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputDatePickerModule,\r\n IconModule,\r\n ButtonModule,\r\n ],\r\n declarations: [\r\n DatePlanningComponent,\r\n CalendarAllYearsComponent,\r\n CalendarAllMonthsComponent,\r\n CalendarHeaderComponent,\r\n CalendarComponent,\r\n CalendarViewComponent,\r\n AgendaHeaderComponent,\r\n AgendaViewComponent,\r\n AgendaMonthViewComponent,\r\n AgendaDayViewComponent,\r\n AgendaWeekViewComponent,\r\n AgendaWeekSelectViewComponent,\r\n AgendaHourViewComponent,\r\n AgendaHourCellComponent,\r\n AgendaHourViewLabelsComponent,\r\n AgendaHalfHourCellComponent,\r\n AgendaEventsComponent,\r\n AgendaEventComponent,\r\n ViewSelectComponent,\r\n AgendaSelectEventComponent,\r\n MASTER_PIPES\r\n ],\r\n exports: [\r\n DatePlanningComponent\r\n ]\r\n})\r\nexport class DatePlanningModule {\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/components/date-planning/date-planning.component';\r\nexport * from './lib/components/date-planning/date-planning.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 {AgendaBaseViewComponent as ɵv} from './lib/components/date-planning/component/agenda/agenda-base-view.component';\nexport {AgendaDayViewComponent as ɵw} from './lib/components/date-planning/component/agenda/agenda-day-view.component';\nexport {AgendaEventComponent as ɵbe} from './lib/components/date-planning/component/agenda/agenda-event.component';\nexport {AgendaEventsComponent as ɵbd} from './lib/components/date-planning/component/agenda/agenda-events.component';\nexport {AgendaHalfHourCellComponent as ɵbc} from './lib/components/date-planning/component/agenda/agenda-half-hour-cell.component';\nexport {AgendaHeaderComponent as ɵs} from './lib/components/date-planning/component/agenda/agenda-header.component';\nexport {AgendaHourCellComponent as ɵba} from './lib/components/date-planning/component/agenda/agenda-hour-cell.component';\nexport {AgendaHourViewLabelsComponent as ɵbb} from './lib/components/date-planning/component/agenda/agenda-hour-view-labels.component';\nexport {AgendaHourViewComponent as ɵz} from './lib/components/date-planning/component/agenda/agenda-hour-view.component';\nexport {AgendaMonthViewComponent as ɵu} from './lib/components/date-planning/component/agenda/agenda-month-view.component';\nexport {AgendaSelectEventComponent as ɵbg} from './lib/components/date-planning/component/agenda/agenda-select-event.component';\nexport {AgendaViewComponent as ɵt} from './lib/components/date-planning/component/agenda/agenda-view.component';\nexport {AgendaWeekSelectViewComponent as ɵy} from './lib/components/date-planning/component/agenda/agenda-week-select-view.component';\nexport {AgendaWeekViewComponent as ɵx} from './lib/components/date-planning/component/agenda/agenda-week-view.component';\nexport {ViewSelectComponent as ɵbf} from './lib/components/date-planning/component/agenda/view-select.component';\nexport {CalendarAllMonthsComponent as ɵn} from './lib/components/date-planning/component/calendar/calendar-all-months.component';\nexport {CalendarAllYearsComponent as ɵm} from './lib/components/date-planning/component/calendar/calendar-all-years.component';\nexport {CalendarHeaderComponent as ɵo} from './lib/components/date-planning/component/calendar/calendar-header.component';\nexport {CalendarViewComponent as ɵq} from './lib/components/date-planning/component/calendar/calendar-view.component';\nexport {CalendarComponent as ɵp} from './lib/components/date-planning/component/calendar/calendar.component';\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 {LanguageCode as ɵr} from './lib/enum/language-code.enum';\nexport {ArrayNumberPipe as ɵbi} from './lib/pipe/array-number.pipe';\nexport {MASTER_PIPES as ɵbh} from './lib/pipe/master-pipes';\nexport {UCfirstPipe as ɵbj} from './lib/pipe/ucfirst.pipe';\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":["EventEmitter","PDFDocument","pdfjsWorker","PDFJS","Component","trigger","state","style","transition","animate","ViewEncapsulation","ViewChild","ElementRef","Input","Output","HostBinding","SignaturePad","NgModule","CommonModule","PROP_META_KEY","ObjectUtils","notNill","GetLogicalBooleanValue","GetYesNoDbBooleanValue","GetTrueFalseDbBooleanValue","GetOneZeroDbBooleanValue","DateUtils","NumberUtils","MapPropertyDecorator","BooleanTextDecorator","JsonFieldFieldDecorator","ComplexArrayDecorator","LanguageCode","Injectable","BehaviorSubject","Articles","Sharedapi","Printer","PrintStockStickers","PrintPriceStickers","StockHistoryBo","ArticleStockBo","StockManagementWarehouses","StockLocation","ArticleDetailsBo","StockStatus","StockStickersPrintLayouts","ArticleTransactionBo","GetStockHistoryRequest","ArticleStock","ChangeDetectorRef","DomSanitizer","ArticleStockManagement","ArticleTransaction","CoDialogPromptModule","InputCheckboxModule","InputComboBoxModule","IconModule","InputNumberPickerModule","CoDialogWizardModule","ButtonModule","CoDialogModule","CoGridModule","InputRadioButtonModule","DropDownModule","SimpleGridModule","ImageModule","InputTextModule","InputTextareaModule","HostListener","GaugeColor","CircularGaugeModule","Renderer2","Month","Pipe","moment","DatePipe","Inject","LOCALE_ID","NgZone","Directive","InputDatePickerModule"],"mappings":"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"}