@colijnit/sharedcomponents 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -11
- package/bundles/colijnit-sharedcomponents.umd.js +2140 -0
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -0
- package/colijnit-sharedcomponents.d.ts +13 -0
- package/colijnit-sharedcomponents.metadata.json +1 -0
- package/esm2015/colijnit-sharedcomponents.js +14 -0
- package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -0
- package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -0
- package/esm2015/lib/components/docsign/docsign.component.js +225 -0
- package/esm2015/lib/components/docsign/docsign.module.js +23 -0
- package/esm2015/lib/components/send-method-dialog/enums/send-option.js +8 -0
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +203 -0
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +26 -0
- package/esm2015/lib/components/stock/stock-information/stock-information.component.js +57 -0
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +254 -0
- package/esm2015/lib/components/stock/stock-location/stock-location.component.js +62 -0
- package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -0
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +98 -0
- package/esm2015/lib/components/stock/stock.component.js +67 -0
- package/esm2015/lib/components/stock/stock.module.js +44 -0
- package/esm2015/lib/enum/icon.enum.js +23 -0
- package/esm2015/lib/factory/business-object-factory.js +120 -0
- package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
- package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
- package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
- package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
- package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
- package/esm2015/lib/model/business-object.js +81 -0
- package/esm2015/lib/model/icon-svg.js +22 -0
- package/esm2015/lib/service/icon-cache.service.js +51 -0
- package/esm2015/lib/service/ione-connector-adapter.service.js +117 -0
- package/esm2015/lib/service/stock.service.js +33 -0
- package/esm2015/lib/utils/array-utils.js +183 -0
- package/esm2015/lib/utils/is-nill.function.js +5 -0
- package/esm2015/public-api.js +10 -0
- package/fesm2015/colijnit-sharedcomponents.js +2066 -0
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -0
- package/lib/components/docsign/component/signature/signature.component.d.ts +16 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_layout.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_theme.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/material.scss +0 -0
- package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/material.scss +0 -0
- package/lib/components/docsign/docsign.component.d.ts +92 -0
- package/lib/components/docsign/docsign.module.d.ts +2 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_layout.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_material-definition.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_theme.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/material.scss +0 -0
- package/lib/components/send-method-dialog/enums/send-option.d.ts +6 -0
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +37 -0
- package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_layout.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_theme.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/material.scss +0 -0
- package/lib/components/stock/stock-information/stock-information.component.d.ts +8 -0
- package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +43 -0
- package/lib/components/stock/stock-location/stock-location.component.d.ts +12 -0
- package/{projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts → lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts} +2 -2
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +20 -0
- package/lib/components/stock/stock.component.d.ts +19 -0
- package/lib/components/stock/stock.module.d.ts +2 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_layout.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_material-definition.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_theme.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/material.scss +0 -0
- package/{projects/sharedcomponents/src/lib/enum/icon.enum.ts → lib/enum/icon.enum.d.ts} +1 -2
- package/lib/factory/business-object-factory.d.ts +23 -0
- package/lib/factory/decorators/boolean.decorator.d.ts +43 -0
- package/lib/factory/decorators/complex-array.decorator.d.ts +25 -0
- package/lib/factory/decorators/complex-field.decorator.d.ts +25 -0
- package/lib/factory/decorators/date-field.decorator.d.ts +17 -0
- package/lib/factory/decorators/string-number.decorator.d.ts +22 -0
- package/lib/model/business-object.d.ts +7 -0
- package/lib/model/icon-svg.d.ts +4 -0
- package/lib/service/icon-cache.service.d.ts +18 -0
- package/lib/service/ione-connector-adapter.service.d.ts +21 -0
- package/lib/service/stock.service.d.ts +13 -0
- package/{projects/sharedcomponents/src/lib → lib}/style/_mixin.scss +0 -0
- package/{projects/sharedcomponents/src/lib → lib}/style/_variables.scss +0 -0
- package/lib/utils/array-utils.d.ts +57 -0
- package/lib/utils/is-nill.function.d.ts +1 -0
- package/package.json +26 -70
- package/{projects/sharedcomponents/src/public-api.ts → public-api.d.ts} +0 -4
- package/.browserslistrc +0 -16
- package/.editorconfig +0 -16
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/Sharedcomponents.iml +0 -11
- package/angular.json +0 -133
- package/colijnit-sharedcomponents-1.0.6.tgz +0 -0
- package/karma.conf.js +0 -44
- package/move-assets.js +0 -14
- package/projects/sharedcomponents/.browserslistrc +0 -16
- package/projects/sharedcomponents/README.md +0 -24
- package/projects/sharedcomponents/karma.conf.js +0 -44
- package/projects/sharedcomponents/ng-package.json +0 -17
- package/projects/sharedcomponents/package.json +0 -15
- package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +0 -82
- package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +0 -50
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +0 -252
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +0 -22
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts +0 -6
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +0 -215
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +0 -27
- package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +0 -59
- package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +0 -278
- package/projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts +0 -82
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +0 -111
- package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +0 -78
- package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +0 -47
- package/projects/sharedcomponents/src/lib/factory/business-object-factory.ts +0 -120
- package/projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts +0 -113
- package/projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts +0 -61
- package/projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts +0 -63
- package/projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts +0 -41
- package/projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts +0 -48
- package/projects/sharedcomponents/src/lib/model/business-object.ts +0 -85
- package/projects/sharedcomponents/src/lib/model/icon-svg.ts +0 -22
- package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +0 -51
- package/projects/sharedcomponents/src/lib/service/ione-connector-adapter.service.ts +0 -113
- package/projects/sharedcomponents/src/lib/service/stock.service.ts +0 -35
- package/projects/sharedcomponents/src/lib/utils/array-utils.ts +0 -202
- package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +0 -4
- package/projects/sharedcomponents/src/test.ts +0 -27
- package/projects/sharedcomponents/tsconfig.lib.json +0 -18
- package/projects/sharedcomponents/tsconfig.lib.prod.json +0 -10
- package/projects/sharedcomponents/tsconfig.spec.json +0 -17
- package/src/app/app.component.scss +0 -8
- package/src/app/app.component.spec.ts +0 -31
- package/src/app/app.component.ts +0 -97
- package/src/app/app.module.ts +0 -24
- package/src/assets/.gitkeep +0 -0
- package/src/environments/environment.prod.ts +0 -3
- package/src/environments/environment.ts +0 -16
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -13
- package/src/main.ts +0 -12
- package/src/polyfills.ts +0 -53
- package/src/styles.scss +0 -28
- package/src/test.ts +0 -26
- package/tsconfig.app.json +0 -15
- package/tsconfig.json +0 -65
- package/tsconfig.spec.json +0 -18
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import {ComplexFieldDecorator} from "./decorators/complex-field.decorator";
|
|
2
|
-
import {ComplexArrayDecorator} from "./decorators/complex-array.decorator";
|
|
3
|
-
import {BooleanTextDecorator} from "./decorators/boolean.decorator";
|
|
4
|
-
import {DateFieldFieldDecorator} from "./decorators/date-field.decorator";
|
|
5
|
-
import {StringNumberDecorator} from "./decorators/string-number.decorator";
|
|
6
|
-
import {isNill} from "../utils/is-nill.function";
|
|
7
|
-
import {ArrayUtils} from "../utils/array-utils";
|
|
8
|
-
import {BusinessObject} from "../model/business-object";
|
|
9
|
-
|
|
10
|
-
// Factory service creates businessobjects, using their decorators in the process.
|
|
11
|
-
export class BusinessObjectFactory {
|
|
12
|
-
constructor() {
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Creates and returns a new business data object instance of given class, with all given data properties applied to it in a
|
|
17
|
-
* complex-aware style. That is, all properties on given class that are decorated with @ComplexField(..) or @ComplexArray(..) decorators
|
|
18
|
-
* become strongly typed business objects, with methods that are usable and such.
|
|
19
|
-
*
|
|
20
|
-
* @param modelClass
|
|
21
|
-
* @param {Object} rawData The object with all (possibly raw/flat/not alive) data to be applied to the created model object
|
|
22
|
-
*/
|
|
23
|
-
public makeWithRawBackendData(modelClass: any, rawData: Object): BusinessObject {
|
|
24
|
-
if (!modelClass) {
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
if (typeof modelClass !== typeof BusinessObject) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const model: BusinessObject = new modelClass();
|
|
32
|
-
this._copyAllPropertiesDecoratorProcessedFrom(rawData, model);
|
|
33
|
-
return model;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// see makeWithRawBackendData, this is a loop-wrapper around that method
|
|
37
|
-
public makeBOArrayFromRawBackendDataArray(modelClass: any, arrayOfRawDatas: Object[]): BusinessObject[] {
|
|
38
|
-
if (!modelClass) {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const trueClientBos: BusinessObject[] = [];
|
|
43
|
-
if (arrayOfRawDatas) {
|
|
44
|
-
for (let i: number = 0, len: number = arrayOfRawDatas.length; i < len; i++) {
|
|
45
|
-
trueClientBos.push(this.makeWithRawBackendData(modelClass, arrayOfRawDatas[i]));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return trueClientBos;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public instantiateNewBo(modelClass: any): BusinessObject {
|
|
52
|
-
return this.makeWithRawBackendData(modelClass, {});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Applies all properties of given 'source' object to the given 'destination' businessobject, if destination has that property.
|
|
57
|
-
* Works with the @ComplexField(), @ComplexArray, @BooleanText, @CoInject and @DateField annotations of given destination model.
|
|
58
|
-
*
|
|
59
|
-
* @param sourceData Raw data to copy to destination model
|
|
60
|
-
* @param {BusinessObject} destinationModel InOut: The annotated businessobject to apply source properties to
|
|
61
|
-
*/
|
|
62
|
-
private _copyAllPropertiesDecoratorProcessedFrom(sourceData: any, destinationModel: BusinessObject): void {
|
|
63
|
-
if (!sourceData || !destinationModel) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// process all source data into destinationModel
|
|
68
|
-
for (const srcPropKey in sourceData) {
|
|
69
|
-
if (!sourceData.hasOwnProperty(srcPropKey)) {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const srcPropVal: any = sourceData[srcPropKey];
|
|
74
|
-
|
|
75
|
-
if (ComplexFieldDecorator.IsComplexField(destinationModel, srcPropKey)) {
|
|
76
|
-
const classOfField: any = ComplexFieldDecorator.GetComplexFieldType(destinationModel, srcPropKey);
|
|
77
|
-
destinationModel[srcPropKey] = this.makeWithRawBackendData(classOfField, srcPropVal);
|
|
78
|
-
} else if (ComplexArrayDecorator.IsComplexArray(destinationModel, srcPropKey)) {
|
|
79
|
-
const sourceArray: any[] = srcPropVal;
|
|
80
|
-
if (!sourceArray) {
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
const classOfArrayItems: any = ComplexArrayDecorator.GetComplexArrayType(destinationModel, srcPropKey);
|
|
84
|
-
const tempArray: any[] = [];
|
|
85
|
-
for (let i: number = 0, len: number = sourceArray.length; i < len; i++) {
|
|
86
|
-
tempArray.push(this.makeWithRawBackendData(classOfArrayItems, sourceArray[i]));
|
|
87
|
-
}
|
|
88
|
-
destinationModel[srcPropKey] = tempArray;
|
|
89
|
-
} else if (BooleanTextDecorator.IsBooleanTextField(destinationModel, srcPropKey)) {
|
|
90
|
-
// logical 'true' and 'false' also allowed as incoming values for @BooleanText() properties: then just copy their value
|
|
91
|
-
if (typeof srcPropVal === "boolean") {
|
|
92
|
-
destinationModel[srcPropKey] = srcPropVal;
|
|
93
|
-
// here, it should be a 'J' or 'N' (or 'T' or 'F'): assign the associated boolean value
|
|
94
|
-
} else {
|
|
95
|
-
destinationModel[srcPropKey] = BooleanTextDecorator.GetLogicalBooleanValue(srcPropVal);
|
|
96
|
-
}
|
|
97
|
-
} else if (DateFieldFieldDecorator.IsDateField(destinationModel, srcPropKey)) {
|
|
98
|
-
destinationModel[srcPropKey] = DateFieldFieldDecorator.StringAsDate(srcPropVal);
|
|
99
|
-
} else if (StringNumberDecorator.IsStringNumber(destinationModel, srcPropKey)) {
|
|
100
|
-
destinationModel[srcPropKey] = StringNumberDecorator.StringAsNumber(srcPropVal);
|
|
101
|
-
}
|
|
102
|
-
// non-decorated prop
|
|
103
|
-
else {
|
|
104
|
-
if (isNill(srcPropVal)) {
|
|
105
|
-
destinationModel[srcPropKey] = undefined;
|
|
106
|
-
} else if (Array.isArray(srcPropVal)) {
|
|
107
|
-
destinationModel[srcPropKey] = ArrayUtils.CloneArray(srcPropVal);
|
|
108
|
-
} else if (typeof srcPropVal === "object") {
|
|
109
|
-
if (srcPropVal instanceof Map) { //just copy the value in case of maps
|
|
110
|
-
destinationModel[srcPropKey] = srcPropVal;
|
|
111
|
-
} else {
|
|
112
|
-
destinationModel[srcPropKey] = Object.assign({}, srcPropVal);
|
|
113
|
-
}
|
|
114
|
-
} else {
|
|
115
|
-
destinationModel[srcPropKey] = srcPropVal;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import {GetYesNoDbBooleanValue} from "@colijnit/articleapi/build/enum/yes-no-db-type.enum";
|
|
2
|
-
import {GetTrueFalseDbBooleanValue} from "@colijnit/articleapi/build/enum/true-false-db-type.enum";
|
|
3
|
-
import {GetOneZeroDbBooleanValue} from "@colijnit/articleapi/build/enum/one-zero-bool-db-type.enum";
|
|
4
|
-
import {DbBooleanValueType, GetLogicalBooleanValue} from "@colijnit/articleapi/build/enum/db-boolean-value-type.enum";
|
|
5
|
-
|
|
6
|
-
const PROP_META_KEY_JN: string = "booleanTextJN";
|
|
7
|
-
const PROP_META_KEY_TF: string = "booleanTextTF";
|
|
8
|
-
const PROP_META_KEY_10: string = "booleanText10";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 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
|
|
12
|
-
* our client application.
|
|
13
|
-
*
|
|
14
|
-
* The values 'J' and 'N' seem to be most commonly used. This is the default setting when using this decorator.
|
|
15
|
-
* You can pass 'T' or 1 for the other variants as follows:
|
|
16
|
-
*
|
|
17
|
-
* Usage:
|
|
18
|
-
*
|
|
19
|
-
* @BooleanText() or @BooleanText("J") (the default, uses YesNoDbType char values)
|
|
20
|
-
* public foo: boolean // 'J' and 'N' become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
21
|
-
*
|
|
22
|
-
* @BooleanText('T') (uses TrueFalseDbType char values)
|
|
23
|
-
* public bar: boolean // 'T' and 'F' become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
24
|
-
*
|
|
25
|
-
* @BooleanText(1)
|
|
26
|
-
* public baz: boolean // 1 and 0 become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
27
|
-
*/
|
|
28
|
-
export function BooleanText(type?: "J" | "T" | 1): PropertyDecorator {
|
|
29
|
-
return function (target: any, propertyKey: string): void {
|
|
30
|
-
if (!target || !propertyKey) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
// by default, it's a J N boolean text
|
|
34
|
-
if (!type || type === "J") {
|
|
35
|
-
Reflect.defineMetadata(PROP_META_KEY_JN, true, target, propertyKey);
|
|
36
|
-
} else if (type === "T") {
|
|
37
|
-
Reflect.defineMetadata(PROP_META_KEY_TF, true, target, propertyKey);
|
|
38
|
-
} else if (type === 1) {
|
|
39
|
-
Reflect.defineMetadata(PROP_META_KEY_10, true, target, propertyKey);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Utility function holder of the BooleanTextDecorator decorator.
|
|
45
|
-
export class BooleanTextDecorator {
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Returns whether given property (as a string) on given object is a boolean text field. That is, it's a field that is decorated
|
|
49
|
-
* with the @BooleanText decorator.
|
|
50
|
-
*/
|
|
51
|
-
public static IsBooleanTextField(target: Object, propertyKey: string): boolean {
|
|
52
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
return (
|
|
56
|
-
Reflect.getMetadata(PROP_META_KEY_JN, target, propertyKey) === true
|
|
57
|
-
||
|
|
58
|
-
Reflect.getMetadata(PROP_META_KEY_TF, target, propertyKey) === true
|
|
59
|
-
||
|
|
60
|
-
Reflect.getMetadata(PROP_META_KEY_10, target, propertyKey) === true
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Returns the logical true or false value of given character ('J', 'N', 'T' or 'F') or number (0 or 1).
|
|
66
|
-
* Returns UNDEFINED if given boolChar was not recognised as a boolean text.
|
|
67
|
-
*/
|
|
68
|
-
public static GetLogicalBooleanValue(dbBoolChar: DbBooleanValueType | string): boolean {
|
|
69
|
-
return GetLogicalBooleanValue(dbBoolChar);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Returns the boolean character / number of given logical bool property on target object. Uses its @BooleanText() annotation to decide
|
|
74
|
-
* what character / number to return.
|
|
75
|
-
* Used in BusinessObjectSerializerServiceService to convert logical bools to their original boolean character.
|
|
76
|
-
* @returns {string|number} The original, reverse-engineered boolean character (or number) of given object property, or undefined.
|
|
77
|
-
*/
|
|
78
|
-
public static GetDbBooleanValue(target: Object, propertyKey: string): DbBooleanValueType {
|
|
79
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
let dbBoolVal: any = undefined;
|
|
84
|
-
|
|
85
|
-
const curBoolVal: boolean = target[propertyKey];
|
|
86
|
-
|
|
87
|
-
if (BooleanTextDecorator._IsJaNeeProp(target, propertyKey)) {
|
|
88
|
-
dbBoolVal = GetYesNoDbBooleanValue(curBoolVal);
|
|
89
|
-
} else if (BooleanTextDecorator._IsTrueFalseProp(target, propertyKey)) {
|
|
90
|
-
dbBoolVal = GetTrueFalseDbBooleanValue(curBoolVal);
|
|
91
|
-
} else if (BooleanTextDecorator._IsZeroOneProp(target, propertyKey)) {
|
|
92
|
-
dbBoolVal = GetOneZeroDbBooleanValue(curBoolVal);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return dbBoolVal as any as DbBooleanValueType;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
private static _IsJaNeeProp(target: Object, propertyKey: string): boolean {
|
|
99
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_JN, target, propertyKey);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
private static _IsTrueFalseProp(target: Object, propertyKey: string): boolean {
|
|
103
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_TF, target, propertyKey);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
private static _IsZeroOneProp(target: Object, propertyKey: string): boolean {
|
|
107
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_10, target, propertyKey);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
private static _IsProp(prop: string, target: Object, propertyKey: string): boolean {
|
|
111
|
-
return !!target && !!propertyKey && typeof target === "object" && Reflect.hasMetadata(prop, target, propertyKey);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import {notNill} from "@colijnit/articleapi/build/utils/function/not-nill.function";
|
|
2
|
-
import {ObjectUtils} from "@colijnit/articleapi/build/utils/object-utils";
|
|
3
|
-
|
|
4
|
-
const PROP_META_KEY: string = "complexArray";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Property decorator for properties of businessobject classes that are an array of other strongly typed businessobjects.
|
|
12
|
-
* Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
|
|
13
|
-
* to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
*
|
|
17
|
-
* @ComplexArray(TransactionLine)
|
|
18
|
-
* public transactionLines: TransactionLine[]
|
|
19
|
-
*/
|
|
20
|
-
export function ComplexArray(type: any): PropertyDecorator {
|
|
21
|
-
return function (target: any, propertyKey: string): void {
|
|
22
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
// warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
|
|
26
|
-
// to be immediately processed when a class is first imported
|
|
27
|
-
if (!type) {
|
|
28
|
-
console.warn(`@ComplexArray(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
|
|
29
|
-
`Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
|
|
30
|
-
`where both classes and their dependencies are used, e.g. factory, repository or models..`);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Utility function holder of the ComplexArrayDecorator decorator.
|
|
38
|
-
export class ComplexArrayDecorator {
|
|
39
|
-
/**
|
|
40
|
-
* Returns whether given property (as a string) on given object is a complex array. A complex array is an array field that is decorated
|
|
41
|
-
* with the @ComplexArray decorator.
|
|
42
|
-
*/
|
|
43
|
-
public static IsComplexArray(target: Object, propertyKey: string): boolean {
|
|
44
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Returns the VALUE of the @ComplexArray(VALUE) property decorator on the given propertyKey on the given modelobject.
|
|
53
|
-
*/
|
|
54
|
-
public static GetComplexArrayType(target: Object, propertyKey: string): any {
|
|
55
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import {notNill} from "@colijnit/articleapi/build/utils/function/not-nill.function";
|
|
2
|
-
import {ObjectUtils} from "@colijnit/articleapi/build/utils/object-utils";
|
|
3
|
-
|
|
4
|
-
const PROP_META_KEY: string = "complexField";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Property decorator for properties of businessobject classes that are other strongly typed businessobjects.
|
|
12
|
-
* Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
|
|
13
|
-
* to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
*
|
|
17
|
-
* @ComplexField(Transaction)
|
|
18
|
-
* public transaction: Transaction
|
|
19
|
-
*
|
|
20
|
-
* Also keeps track of a "complexFieldProps" metadata on the class-level, as a reflect-metadata workaround to be able to
|
|
21
|
-
* retrieve all properties that have the @ComplexField(..) decorator (impossible with current Reflect API).
|
|
22
|
-
*/
|
|
23
|
-
export function ComplexField(type: any): PropertyDecorator {
|
|
24
|
-
return function (target: any, propertyKey: string): void {
|
|
25
|
-
if (!target || !propertyKey) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
|
|
30
|
-
// to be immediately processed when a class is first imported
|
|
31
|
-
if (!type) {
|
|
32
|
-
// eslint-disable-next-line no-console
|
|
33
|
-
console.warn(`@ComplexField(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
|
|
34
|
-
`Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
|
|
35
|
-
`where both classes and their dependencies are used, e.g. factory, repository or models..`);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Utility function holder of the ComplexFieldDecorator decorator.
|
|
43
|
-
export class ComplexFieldDecorator {
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Returns whether given property (as a string) on given object is a complex field. A complex field is a field that is decorated
|
|
47
|
-
* with the @ComplexField decorator.
|
|
48
|
-
*/
|
|
49
|
-
public static IsComplexField(target: Object, propertyKey: string): boolean {
|
|
50
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Returns the VALUE of the @ComplexField(VALUE) property decorator on the given propertyKey on the given modelObject.
|
|
57
|
-
public static GetComplexFieldType(target: Object, propertyKey: string): any {
|
|
58
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import {DateUtils} from "@colijnit/articleapi/build/utils/date-utils";
|
|
2
|
-
|
|
3
|
-
const PROP_META_KEY: string = "dateField";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Property decorator for properties of businessobject classes that are of type Date, but are sent to us as strings.
|
|
11
|
-
* Ensures that the BusinessObjectFactory makes proper JavaScript Date objects from incoming strings for @DateField() decorated properties.
|
|
12
|
-
*
|
|
13
|
-
* Usage:
|
|
14
|
-
*
|
|
15
|
-
* @DateField()
|
|
16
|
-
* public expectedDeliveryDate: Date
|
|
17
|
-
*/
|
|
18
|
-
export function DateField(): PropertyDecorator {
|
|
19
|
-
return function (target: any, propertyKey: string): void {
|
|
20
|
-
if (!target || !propertyKey) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Utility function holder of the @DateField() decorator.
|
|
28
|
-
export class DateFieldFieldDecorator {
|
|
29
|
-
|
|
30
|
-
// Returns whether given property (as a string) on given object is decorated with @DateField().
|
|
31
|
-
public static IsDateField(target: Object, propertyKey: string): boolean {
|
|
32
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public static StringAsDate(str: string): Date {
|
|
39
|
-
return DateUtils.StringAsDate(str);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {NumberUtils} from "@colijnit/articleapi/build/utils/number-utils";
|
|
2
|
-
|
|
3
|
-
const PROP_META_KEY: string = "stringNumber";
|
|
4
|
-
/**
|
|
5
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* 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.
|
|
10
|
-
*
|
|
11
|
-
* Can be handy for incongruent backend api cases, where id data types are communicated wrongly via strings instead of numbers
|
|
12
|
-
* (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...)
|
|
13
|
-
*
|
|
14
|
-
* Used by business object factory and -serializer.
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
*
|
|
18
|
-
* @StringNumber()
|
|
19
|
-
* public rights: UserRightType
|
|
20
|
-
*/
|
|
21
|
-
export function StringNumber(): PropertyDecorator {
|
|
22
|
-
return function (target: any, propertyKey: string): void {
|
|
23
|
-
if (!target || !propertyKey) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Utility function holder of the @StringNumber() decorator.
|
|
31
|
-
export class StringNumberDecorator {
|
|
32
|
-
|
|
33
|
-
// Returns whether given property (as a string) on given object is decorated with @StringNumber().
|
|
34
|
-
public static IsStringNumber(target: Object, propertyKey: string): boolean {
|
|
35
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public static StringAsNumber(str: string): number {
|
|
42
|
-
return NumberUtils.ParseFloatKeepPrecision(str);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public static NumberAsString(nr: number): string {
|
|
46
|
-
return "" + nr;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 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
|
|
3
|
-
* object for a composite key.
|
|
4
|
-
*
|
|
5
|
-
* Simply to prevent type declarations of 'number | string | Object' for BO ID data all over the application.
|
|
6
|
-
*/
|
|
7
|
-
import {MapPropertyDecorator} from "@colijnit/articleapi/build/factory/decorators/map-property.decorator";
|
|
8
|
-
import {BooleanTextDecorator} from "@colijnit/articleapi/build/factory/decorators/boolean.decorator";
|
|
9
|
-
import {JsonFieldFieldDecorator} from "@colijnit/articleapi/build/factory/decorators/json.decorator";
|
|
10
|
-
import {ComplexArrayDecorator} from "@colijnit/articleapi/build/factory/decorators/complex-array.decorator";
|
|
11
|
-
|
|
12
|
-
export type BusinessObjectIDType = number | string | Object;
|
|
13
|
-
|
|
14
|
-
export abstract class BusinessObject {
|
|
15
|
-
// The ID of the model.
|
|
16
|
-
public id: BusinessObjectIDType;
|
|
17
|
-
|
|
18
|
-
// Overridable. Returns the ID of the model. Concrete model classes often override this method to provide their specific ID getter.
|
|
19
|
-
public getId(): BusinessObjectIDType {
|
|
20
|
-
return this.id;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
constructor() {
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
protected setOwnMappedPropsFromRawData(rawData: any = {}): void {
|
|
27
|
-
if (!rawData) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
Object.keys(this).forEach((key) => {
|
|
31
|
-
// check if property needs to be mapped
|
|
32
|
-
if (MapPropertyDecorator.IsMapProperty(this, key)) {
|
|
33
|
-
const mapKeys: string[] = MapPropertyDecorator.GetMapProperty(this, key).split(",");
|
|
34
|
-
const len: number = mapKeys.length;
|
|
35
|
-
for (let i: number = 0; i < len; i++) {
|
|
36
|
-
// eslint-disable-next-line
|
|
37
|
-
const mapKey = mapKeys[i].trim();
|
|
38
|
-
const objProp: any = rawData[mapKey];
|
|
39
|
-
let decorated: boolean = false;
|
|
40
|
-
if (rawData.hasOwnProperty(mapKey)) {
|
|
41
|
-
if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
|
|
42
|
-
this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
|
|
43
|
-
decorated = true;
|
|
44
|
-
}
|
|
45
|
-
if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
|
|
46
|
-
this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
|
|
47
|
-
decorated = true;
|
|
48
|
-
}
|
|
49
|
-
if (ComplexArrayDecorator.IsComplexArray(this, key)) {
|
|
50
|
-
const arrayClass: any = ComplexArrayDecorator.GetComplexArrayType(this, key);
|
|
51
|
-
// eslint-disable-next-line
|
|
52
|
-
const origArray = this[key];
|
|
53
|
-
// eslint-disable-next-line
|
|
54
|
-
const newArray = [];
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
56
|
-
for (let j = 0; j < origArray.length; j++) {
|
|
57
|
-
// eslint-disable-next-line
|
|
58
|
-
const item = new arrayClass(origArray[j]);
|
|
59
|
-
newArray.push(item);
|
|
60
|
-
}
|
|
61
|
-
this[key] = newArray;
|
|
62
|
-
} else {
|
|
63
|
-
if (!decorated) {
|
|
64
|
-
this[key] = objProp;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
} else {
|
|
71
|
-
if (rawData.hasOwnProperty(key)) {
|
|
72
|
-
const objProp: any = rawData[key];
|
|
73
|
-
if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
|
|
74
|
-
this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
|
|
75
|
-
} else if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
|
|
76
|
-
this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
|
|
77
|
-
} else {
|
|
78
|
-
this[key] = objProp;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
|
|
2
|
-
|
|
3
|
-
export const IconSvg: {[iconName: string]: string} = {
|
|
4
|
-
"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>",
|
|
5
|
-
"arrow_point_down": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-280 371 51 51\" enable-background=\"new -280 371 51 51\" ><path fill=\"#29363E\" d=\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\"/></svg>",
|
|
6
|
-
"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>",
|
|
7
|
-
"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>",
|
|
8
|
-
"calendar_day": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><g><path fill=\"#022D42\" d=\"M35.4,13.7H14.6c-0.6,0-1,0.5-1,1V20h22.9v-5.2C36.4,14.2,36,13.7,35.4,13.7z M19,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8c1,0,1.8,0.8,1.8,1.8C20.8,18,20,18.8,19,18.8z M31,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8C32.7,18,32,18.8,31,18.8z\"/><path fill=\"#022D42\" d=\"M35.4,22.3v12.6L31.3,39H14.6c0,0,0,0,0,0V22.3H35.4 M36.4,21.3H13.6V39c0,0.6,0.5,1,1,1h17.2l4.7-4.7V21.3L36.4,21.3z\"/><rect x=\"18.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"30.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"18.6\" y=\"30.5\" fill=\"#022D42\" width=\"3.4\" height=\"3.4\"/><rect x=\"19.1\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/></g></svg>",
|
|
9
|
-
"cancel": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\" fill=\"#484f60\"/><polygon points=\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\" fill=\"#484f60\"/></svg>",
|
|
10
|
-
"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>",
|
|
11
|
-
"edit_pencil": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\" fill=\"#484f60\"/><rect x=\"16.33\" y=\"20.52\" width=\"17.99\" height=\"8.64\" transform=\"translate(-10.15 25.18) rotate(-45)\" fill=\"#484f60\"/><path d=\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\" fill=\"#484f60\"/></svg>",
|
|
12
|
-
"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>",
|
|
13
|
-
"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>",
|
|
14
|
-
"plus_round": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-288 379 35 35\" enable-background=\"new -288 379 35 35\" ><path fill=\"#29363E\" d=\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15s15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-261.1,397.3c0,0.9-0.7,1.6-1.6,1.6h-5.5v5.5c0,0.9-0.7,1.6-1.6,1.6h-1.6c-0.9,0-1.6-0.7-1.6-1.6v-5.5h-5.5c-0.9,0-1.6-0.7-1.6-1.6v-1.6c0-0.9,0.7-1.6,1.6-1.6h5.5v-5.5c0-0.9,0.7-1.6,1.6-1.6h1.6c0.9,0,1.6,0.7,1.6,1.6v5.5h5.5c0.9,0,1.6,0.7,1.6,1.6V397.3z\"/></svg>",
|
|
15
|
-
"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>",
|
|
16
|
-
"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>",
|
|
17
|
-
"tag": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M40,29.15v-.68a5.28,5.28,0,0,0-1.34-3.25L24.78,11.34A5.34,5.34,0,0,0,21.53,10H11.9A1.91,1.91,0,0,0,10,11.9v9.63a5.28,5.28,0,0,0,1.34,3.25L25.22,38.66A5.28,5.28,0,0,0,28.47,40h.68a5.28,5.28,0,0,0,3.24-1.34l6.27-6.27A5.28,5.28,0,0,0,40,29.15ZM13.13,16.72a2.54,2.54,0,1,1,3.59,0A2.55,2.55,0,0,1,13.13,16.72Zm15.9,19L17.84,24.55l1.34-1.34L30.37,34.4Zm2.69-2.69L20.52,21.87l1.35-1.35,11.19,11.2Zm2.68-2.69L23.21,19.18l1.34-1.34L35.75,29Z\" fill=\"#484f60\"/></svg>",
|
|
18
|
-
"thick_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"12.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"21.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"30.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/></svg>",
|
|
19
|
-
"thin_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"14.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"20.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"26.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"32.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/></svg>",
|
|
20
|
-
"txt": "<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-9Zm6.68,2.36h-1.9V32h-1.3V26.63h-1.9V25.54h5.1ZM30.4,32,29,29.74,27.55,32H26l2.19-3.34-2-3.07h1.52L29,27.6l1.26-2.06h1.5l-2,3.12L32,32Zm6.86-5.32h-1.9V32H34.07V26.63H32.16V25.54h5.1Z\" fill=\"#484f60\"/></svg>",
|
|
21
|
-
"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>"
|
|
22
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import {Injectable} from "@angular/core";
|
|
2
|
-
import {DomSanitizer, SafeHtml} from "@angular/platform-browser";
|
|
3
|
-
import {Icon} from "../enum/icon.enum";
|
|
4
|
-
import {IconSvg} from "../model/icon-svg";
|
|
5
|
-
|
|
6
|
-
@Injectable({
|
|
7
|
-
providedIn: "root"
|
|
8
|
-
})
|
|
9
|
-
export class IconCacheService {
|
|
10
|
-
/**
|
|
11
|
-
* All the icons as a large JSON object, from the all-icons.json file.
|
|
12
|
-
* The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
|
|
13
|
-
*/
|
|
14
|
-
public get iconCache(): { [iconName: string]: SafeHtml } {
|
|
15
|
-
return this._iconCache;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private _iconCache: { [iconName: string]: SafeHtml } = {};
|
|
19
|
-
|
|
20
|
-
constructor(
|
|
21
|
-
private _sanitizer: DomSanitizer
|
|
22
|
-
) {
|
|
23
|
-
this.setIconCache();
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public getIcon(iconName: Icon): SafeHtml {
|
|
27
|
-
if (iconName) {
|
|
28
|
-
return this._iconCache[iconName.toLowerCase()];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public getIconAsBase64(iconName: Icon): SafeHtml {
|
|
33
|
-
const icon: string = IconSvg[iconName];
|
|
34
|
-
const base64Data: string = window.btoa(icon);
|
|
35
|
-
return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public getRawIcon(iconName: Icon): string {
|
|
39
|
-
if (iconName) {
|
|
40
|
-
return IconSvg[iconName.toLowerCase()];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public setIconCache(): void {
|
|
45
|
-
for (const key in IconSvg) {
|
|
46
|
-
if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== "function") {
|
|
47
|
-
this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|