@thisisagile/easy 8.13.0 → 8.15.1
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/dist/domain/structs/Box.d.ts +15 -0
- package/dist/domain/structs/Box.js +52 -0
- package/dist/domain/structs/Box.js.map +1 -0
- package/dist/domain/structs/Dimension.d.ts +5 -6
- package/dist/domain/structs/Dimension.js +6 -15
- package/dist/domain/structs/Dimension.js.map +1 -1
- package/dist/domain/structs/Weight.d.ts +1 -1
- package/dist/domain/structs/Weight.js +1 -1
- package/dist/domain/structs/index.d.ts +1 -0
- package/dist/domain/structs/index.js +1 -0
- package/dist/domain/structs/index.js.map +1 -1
- package/dist/domain/values/DateTime.d.ts +4 -0
- package/dist/domain/values/DateTime.js +7 -1
- package/dist/domain/values/DateTime.js.map +1 -1
- package/dist/types/Enum.d.ts +1 -0
- package/dist/types/Enum.js +1 -0
- package/dist/types/Enum.js.map +1 -1
- package/package.json +2 -2
- package/src/domain/structs/Box.ts +31 -0
- package/src/domain/structs/Dimension.ts +9 -8
- package/src/domain/structs/Weight.ts +1 -1
- package/src/domain/structs/index.ts +1 -0
- package/src/domain/values/DateTime.ts +15 -2
- package/src/types/Enum.ts +2 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Struct } from '../Struct';
|
|
2
|
+
import { Dimension } from './Dimension';
|
|
3
|
+
export declare class Box extends Struct {
|
|
4
|
+
readonly l: Dimension;
|
|
5
|
+
readonly w: Dimension;
|
|
6
|
+
readonly h: Dimension;
|
|
7
|
+
private sorted;
|
|
8
|
+
lowestDim: Dimension;
|
|
9
|
+
medianDim: Dimension;
|
|
10
|
+
maxDim: Dimension;
|
|
11
|
+
get isValid(): boolean;
|
|
12
|
+
static with: (l: Dimension, w: Dimension, h: Dimension) => Box;
|
|
13
|
+
stack: (qty: number) => Box;
|
|
14
|
+
fits: (contents: Box, qty?: number) => boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Box = void 0;
|
|
13
|
+
const Struct_1 = require("../Struct");
|
|
14
|
+
const validation_1 = require("../../validation");
|
|
15
|
+
const Dimension_1 = require("./Dimension");
|
|
16
|
+
class Box extends Struct_1.Struct {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.l = new Dimension_1.Dimension(this.state.l);
|
|
20
|
+
this.w = new Dimension_1.Dimension(this.state.w);
|
|
21
|
+
this.h = new Dimension_1.Dimension(this.state.h);
|
|
22
|
+
this.sorted = [this.l, this.w, this.h].sort((n1, n2) => n1.sizeInMM() - n2.sizeInMM());
|
|
23
|
+
this.lowestDim = this.sorted[0];
|
|
24
|
+
this.medianDim = this.sorted[1];
|
|
25
|
+
this.maxDim = this.sorted[2];
|
|
26
|
+
this.stack = (qty) => Box.with(this.maxDim, this.medianDim, Dimension_1.Dimension.with(this.lowestDim.value * qty, this.lowestDim.uom));
|
|
27
|
+
this.fits = (contents, qty = 1) => {
|
|
28
|
+
const stackedContent = contents.stack(qty);
|
|
29
|
+
return this.lowestDim.gte(stackedContent.lowestDim) &&
|
|
30
|
+
this.medianDim.gte(stackedContent.medianDim) &&
|
|
31
|
+
this.maxDim.gte(stackedContent.maxDim);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
get isValid() {
|
|
35
|
+
return super.isValid && this.l.isValid && this.w.isValid && this.h.isValid;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
Box.with = (l, w, h) => new Box({ l, w, h });
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, validation_1.required)(),
|
|
41
|
+
__metadata("design:type", Dimension_1.Dimension)
|
|
42
|
+
], Box.prototype, "l", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, validation_1.required)(),
|
|
45
|
+
__metadata("design:type", Dimension_1.Dimension)
|
|
46
|
+
], Box.prototype, "w", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, validation_1.required)(),
|
|
49
|
+
__metadata("design:type", Dimension_1.Dimension)
|
|
50
|
+
], Box.prototype, "h", void 0);
|
|
51
|
+
exports.Box = Box;
|
|
52
|
+
//# sourceMappingURL=Box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.js","sourceRoot":"","sources":["../../../src/domain/structs/Box.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAmC;AACnC,iDAA4C;AAC5C,2CAAwC;AAExC,MAAa,GAAI,SAAQ,eAAM;IAA/B;;QACuB,MAAC,GAAc,IAAI,qBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAC,GAAc,IAAI,qBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAC,GAAc,IAAI,qBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExD,WAAM,GAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvG,cAAS,GAAc,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,cAAS,GAAc,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,WAAM,GAAc,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAQnC,UAAK,GAAG,CAAC,GAAW,EAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,qBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAEpI,SAAI,GAAG,CAAC,QAAa,EAAE,GAAG,GAAG,CAAC,EAAW,EAAE;YACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,cAAc,CAAC,SAAS,CAAC;gBAClD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC,CAAC;IAGJ,CAAC;IAhBC,IAAI,OAAO;QACT,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,CAAC;;AAEM,QAAI,GAAG,CAAC,CAAY,EAAE,CAAY,EAAE,CAAY,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAbrE;IAAX,IAAA,qBAAQ,GAAE;8BAAa,qBAAS;8BAA+B;AACpD;IAAX,IAAA,qBAAQ,GAAE;8BAAa,qBAAS;8BAA+B;AACpD;IAAX,IAAA,qBAAQ,GAAE;8BAAa,qBAAS;8BAA+B;AAHlE,kBA0BC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Struct } from '../Struct';
|
|
2
2
|
import { UnitOfMeasurement } from '../enums';
|
|
3
3
|
export declare class Dimension extends Struct {
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
readonly heightUOM: UnitOfMeasurement;
|
|
4
|
+
readonly value: number;
|
|
5
|
+
readonly uom: UnitOfMeasurement;
|
|
6
|
+
static with: (value: number, uom?: UnitOfMeasurement) => Dimension;
|
|
7
|
+
sizeInMM: () => number;
|
|
8
|
+
gte: (dim: Dimension) => boolean;
|
|
10
9
|
}
|
|
@@ -16,25 +16,16 @@ const enums_1 = require("../enums");
|
|
|
16
16
|
class Dimension extends Struct_1.Struct {
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.height = this.state.height;
|
|
24
|
-
this.heightUOM = enums_1.UnitOfMeasurement.byId(this.state.heightUOM, enums_1.UnitOfMeasurement.MM);
|
|
19
|
+
this.value = this.state.value;
|
|
20
|
+
this.uom = enums_1.UnitOfMeasurement.byId(this.state.uom, enums_1.UnitOfMeasurement.MM);
|
|
21
|
+
this.sizeInMM = () => this.value * this.uom.mmMultiplier;
|
|
22
|
+
this.gte = (dim) => this.sizeInMM() >= dim.sizeInMM();
|
|
25
23
|
}
|
|
26
24
|
}
|
|
25
|
+
Dimension.with = (value, uom = enums_1.UnitOfMeasurement.MM) => new Dimension({ value, uom });
|
|
27
26
|
__decorate([
|
|
28
27
|
(0, validation_1.required)(),
|
|
29
28
|
__metadata("design:type", Number)
|
|
30
|
-
], Dimension.prototype, "
|
|
31
|
-
__decorate([
|
|
32
|
-
(0, validation_1.required)(),
|
|
33
|
-
__metadata("design:type", Number)
|
|
34
|
-
], Dimension.prototype, "width", void 0);
|
|
35
|
-
__decorate([
|
|
36
|
-
(0, validation_1.required)(),
|
|
37
|
-
__metadata("design:type", Number)
|
|
38
|
-
], Dimension.prototype, "height", void 0);
|
|
29
|
+
], Dimension.prototype, "value", void 0);
|
|
39
30
|
exports.Dimension = Dimension;
|
|
40
31
|
//# sourceMappingURL=Dimension.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dimension.js","sourceRoot":"","sources":["../../../src/domain/structs/Dimension.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAmC;AACnC,iDAA4C;AAC5C,oCAA6C;AAE7C,MAAa,SAAU,SAAQ,eAAM;IAArC;;QACuB,
|
|
1
|
+
{"version":3,"file":"Dimension.js","sourceRoot":"","sources":["../../../src/domain/structs/Dimension.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAmC;AACnC,iDAA4C;AAC5C,oCAA6C;AAE7C,MAAa,SAAU,SAAQ,eAAM;IAArC;;QACuB,UAAK,GAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7C,QAAG,GAAsB,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,yBAAiB,CAAC,EAAE,CAAC,CAAC;QAI/F,aAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAE5D,QAAG,GAAG,CAAC,GAAc,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvE,CAAC;;AALQ,cAAI,GAAG,CAAC,KAAa,EAAE,MAAyB,yBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAHlG;IAAX,IAAA,qBAAQ,GAAE;;wCAA2C;AADxD,8BASC"}
|
|
@@ -17,7 +17,7 @@ class Weight extends Struct_1.Struct {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
19
|
this.value = this.state.value;
|
|
20
|
-
this.
|
|
20
|
+
this.uow = enums_1.UnitOfWeight.byId(this.state.uow, enums_1.UnitOfWeight.G);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
__decorate([
|
|
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./Address"), exports);
|
|
14
|
+
__exportStar(require("./Box"), exports);
|
|
14
15
|
__exportStar(require("./Dimension"), exports);
|
|
15
16
|
__exportStar(require("./Money"), exports);
|
|
16
17
|
__exportStar(require("./Weight"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/structs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/structs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,wCAAsB;AACtB,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { Value } from '../../types';
|
|
2
2
|
import { Moment } from 'moment';
|
|
3
|
+
import 'moment/min/locales';
|
|
3
4
|
export declare type DateTimeUnit = 'year' | 'years' | 'y' | 'quarter' | 'quarters' | 'Q' | 'month' | 'months' | 'M' | 'week' | 'weeks' | 'w' | 'day' | 'days' | 'd' | 'hour' | 'hours' | 'h' | 'minute' | 'minutes' | 'm' | 'second' | 'seconds' | 's' | 'millisecond' | 'milliseconds' | 'ms';
|
|
4
5
|
export declare class DateTime extends Value<string | undefined> {
|
|
5
6
|
constructor(value?: string | number | Date, format?: string);
|
|
6
7
|
static get now(): DateTime;
|
|
7
8
|
get isValid(): boolean;
|
|
8
9
|
get fromNow(): string;
|
|
10
|
+
from(date?: DateTime): string;
|
|
11
|
+
from(locales?: string | string[]): string;
|
|
12
|
+
from(date?: DateTime, locales?: string | string[]): string;
|
|
9
13
|
protected get utc(): Moment;
|
|
10
14
|
isAfter(dt: DateTime): boolean;
|
|
11
15
|
isBefore(dt: DateTime): boolean;
|
|
@@ -7,6 +7,7 @@ exports.DateTime = void 0;
|
|
|
7
7
|
const types_1 = require("../../types");
|
|
8
8
|
const moment_1 = __importDefault(require("moment"));
|
|
9
9
|
const utils_1 = require("../../utils");
|
|
10
|
+
require("moment/min/locales");
|
|
10
11
|
class DateTime extends types_1.Value {
|
|
11
12
|
constructor(value, format) {
|
|
12
13
|
super((0, types_1.tryTo)(value).is.defined().map(v => moment_1.default.utc(v, format, true).toISOString()).orElse());
|
|
@@ -25,7 +26,12 @@ class DateTime extends types_1.Value {
|
|
|
25
26
|
return (0, types_1.isDefined)(this.value) && this.utc.isValid();
|
|
26
27
|
}
|
|
27
28
|
get fromNow() {
|
|
28
|
-
return this.
|
|
29
|
+
return this.from();
|
|
30
|
+
}
|
|
31
|
+
from(param, other) {
|
|
32
|
+
const date = (0, types_1.isA)(param) ? param : undefined;
|
|
33
|
+
const locales = (0, types_1.isString)(param) || (0, types_1.isArray)(param) ? param : ((0, types_1.isString)(other) || (0, types_1.isArray)(other) ? other : 'en');
|
|
34
|
+
return (0, types_1.isDefined)(date) ? this.utc.locale(locales).from(date.utc) : this.utc.locale(locales).fromNow();
|
|
29
35
|
}
|
|
30
36
|
get utc() {
|
|
31
37
|
return moment_1.default.utc(this.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../src/domain/values/DateTime.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../../src/domain/values/DateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Enum.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare abstract class Enum implements Validatable {
|
|
|
14
14
|
static byIds<T extends Enum>(ids?: Id[]): List<T>;
|
|
15
15
|
static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E>;
|
|
16
16
|
equals<E extends Enum | Id>(other: E): boolean;
|
|
17
|
+
isIn<E extends Enum>(...items: E[]): boolean;
|
|
17
18
|
toJSON(): JsonValue;
|
|
18
19
|
toString(): string;
|
|
19
20
|
}
|
package/dist/types/Enum.js
CHANGED
package/dist/types/Enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.js","sourceRoot":"","sources":["../../src/types/Enum.ts"],"names":[],"mappings":";;;AAEA,+BAA6B;AAC7B,iCAA8B;AAC9B,6BAAiC;AAGjC,+BAAmC;AAEnC,MAAsB,IAAI;IACxB,YAA+B,IAAY,EAAW,KAAS,IAAI,CAAC,WAAW,EAAE,EAAW,OAAe,EAAE,CAAC,QAAQ,EAAE;QAAzF,SAAI,GAAJ,IAAI,CAAQ;QAAW,OAAE,GAAF,EAAE,CAAyB;QAAW,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE5H,IAAI,OAAO;QACT,OAAO,IAAA,cAAS,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC;aACd,MAAM,EAAK;aACX,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAiB,EAAM,EAAE,GAAqB;QACvD,OAAO,CACL,IAAA,WAAI,EAAC,IAAI,CAAC;aACP,MAAM,EAAK;aACX,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAA,WAAK,EAAC,GAAG,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAiB,GAAU;QACrC,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC;aACd,MAAM,EAAK;aACX,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,MAAM,CAAiB,CAAmD,EAAE,MAAgB;QACjG,OAAO,IAAI,CAAC,GAAG,EAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAsB,KAAQ;QAClC,OAAO,IAAI,CAAC,EAAE,KAAK,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"Enum.js","sourceRoot":"","sources":["../../src/types/Enum.ts"],"names":[],"mappings":";;;AAEA,+BAA6B;AAC7B,iCAA8B;AAC9B,6BAAiC;AAGjC,+BAAmC;AAEnC,MAAsB,IAAI;IACxB,YAA+B,IAAY,EAAW,KAAS,IAAI,CAAC,WAAW,EAAE,EAAW,OAAe,EAAE,CAAC,QAAQ,EAAE;QAAzF,SAAI,GAAJ,IAAI,CAAQ;QAAW,OAAE,GAAF,EAAE,CAAyB;QAAW,SAAI,GAAJ,IAAI,CAAwB;IAAG,CAAC;IAE5H,IAAI,OAAO;QACT,OAAO,IAAA,cAAS,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC;aACd,MAAM,EAAK;aACX,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAiB,EAAM,EAAE,GAAqB;QACvD,OAAO,CACL,IAAA,WAAI,EAAC,IAAI,CAAC;aACP,MAAM,EAAK;aACX,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAA,WAAK,EAAC,GAAG,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAiB,GAAU;QACrC,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC;aACd,MAAM,EAAK;aACX,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,MAAM,CAAiB,CAAmD,EAAE,MAAgB;QACjG,OAAO,IAAI,CAAC,GAAG,EAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAsB,KAAQ;QAClC,OAAO,IAAI,CAAC,EAAE,KAAK,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAiB,GAAG,KAAU,IAAa,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAExF,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;CACF;AA5CD,oBA4CC;AAEM,MAAM,MAAM,GAAG,CAAC,CAAW,EAAa,EAAE,CAAC,IAAA,cAAS,EAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,IAAA,UAAI,EAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAA9G,QAAA,MAAM,UAAwG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.15.1",
|
|
4
4
|
"description": "Straightforward library for building domain-driven microservice architectures",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "8.
|
|
34
|
+
"@thisisagile/easy-test": "8.15.1",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.6",
|
|
37
37
|
"@types/validator": "^13.7.0"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Struct } from '../Struct';
|
|
2
|
+
import { required } from '../../validation';
|
|
3
|
+
import { Dimension } from './Dimension';
|
|
4
|
+
|
|
5
|
+
export class Box extends Struct {
|
|
6
|
+
@required() readonly l: Dimension = new Dimension(this.state.l);
|
|
7
|
+
@required() readonly w: Dimension = new Dimension(this.state.w);
|
|
8
|
+
@required() readonly h: Dimension = new Dimension(this.state.h);
|
|
9
|
+
|
|
10
|
+
private sorted: Dimension[] = [this.l, this.w, this.h].sort((n1, n2) => n1.sizeInMM() - n2.sizeInMM());
|
|
11
|
+
lowestDim: Dimension = this.sorted[0];
|
|
12
|
+
medianDim: Dimension = this.sorted[1];
|
|
13
|
+
maxDim: Dimension = this.sorted[2];
|
|
14
|
+
|
|
15
|
+
get isValid(): boolean {
|
|
16
|
+
return super.isValid && this.l.isValid && this.w.isValid && this.h.isValid;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static with = (l: Dimension, w: Dimension, h: Dimension) => new Box({ l, w, h });
|
|
20
|
+
|
|
21
|
+
stack = (qty: number): Box => Box.with(this.maxDim, this.medianDim, Dimension.with(this.lowestDim.value * qty, this.lowestDim.uom));
|
|
22
|
+
|
|
23
|
+
fits = (contents: Box, qty = 1): boolean => {
|
|
24
|
+
const stackedContent = contents.stack(qty);
|
|
25
|
+
return this.lowestDim.gte( stackedContent.lowestDim) &&
|
|
26
|
+
this.medianDim.gte(stackedContent.medianDim) &&
|
|
27
|
+
this.maxDim.gte( stackedContent.maxDim);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
}
|
|
@@ -3,11 +3,12 @@ import { required } from '../../validation';
|
|
|
3
3
|
import { UnitOfMeasurement } from '../enums';
|
|
4
4
|
|
|
5
5
|
export class Dimension extends Struct {
|
|
6
|
-
@required() readonly
|
|
7
|
-
readonly
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
@required() readonly value: number = this.state.value;
|
|
7
|
+
readonly uom: UnitOfMeasurement = UnitOfMeasurement.byId(this.state.uom, UnitOfMeasurement.MM);
|
|
8
|
+
|
|
9
|
+
static with = (value: number, uom: UnitOfMeasurement = UnitOfMeasurement.MM) => new Dimension({ value, uom });
|
|
10
|
+
|
|
11
|
+
sizeInMM = (): number => this.value * this.uom.mmMultiplier;
|
|
12
|
+
|
|
13
|
+
gte = (dim: Dimension): boolean => this.sizeInMM() >= dim.sizeInMM();
|
|
14
|
+
}
|
|
@@ -4,5 +4,5 @@ import { Struct } from '../Struct';
|
|
|
4
4
|
|
|
5
5
|
export class Weight extends Struct {
|
|
6
6
|
@required() readonly value: number = this.state.value;
|
|
7
|
-
readonly
|
|
7
|
+
readonly uow: UnitOfWeight = UnitOfWeight.byId(this.state.uow, UnitOfWeight.G);
|
|
8
8
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { isDefined, tryTo, Value } from '../../types';
|
|
1
|
+
import { isA, isArray, isDefined, isString, tryTo, Value } from '../../types';
|
|
2
2
|
import moment, { Moment } from 'moment';
|
|
3
3
|
import { ifNotEmpty } from '../../utils';
|
|
4
|
+
import 'moment/min/locales';
|
|
4
5
|
|
|
5
6
|
export type DateTimeUnit =
|
|
6
7
|
'year' | 'years' | 'y' |
|
|
@@ -27,8 +28,20 @@ export class DateTime extends Value<string | undefined> {
|
|
|
27
28
|
return isDefined(this.value) && this.utc.isValid();
|
|
28
29
|
}
|
|
29
30
|
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Deprecated in favor for DateTime.from as that also accepts locales and another DateTime
|
|
33
|
+
*/
|
|
30
34
|
get fromNow(): string {
|
|
31
|
-
return this.
|
|
35
|
+
return this.from();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
from(date?: DateTime): string;
|
|
39
|
+
from(locales?: string | string[]): string;
|
|
40
|
+
from(date?: DateTime, locales?: string | string[]): string;
|
|
41
|
+
from(param?: string | string[] | DateTime, other?: string | string[]): string {
|
|
42
|
+
const date: DateTime | undefined = isA<DateTime>(param) ? param : undefined;
|
|
43
|
+
const locales: string | string[] = isString(param) || isArray<string>(param) ? param : (isString(other) || isArray<string>(other) ? other : 'en');
|
|
44
|
+
return isDefined(date) ? this.utc.locale(locales).from(date.utc) : this.utc.locale(locales).fromNow();
|
|
32
45
|
}
|
|
33
46
|
|
|
34
47
|
protected get utc(): Moment {
|
package/src/types/Enum.ts
CHANGED
|
@@ -42,6 +42,8 @@ export abstract class Enum implements Validatable {
|
|
|
42
42
|
return this.id === (isEnum(other) ? other.id : other);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
isIn<E extends Enum>(...items: E[]): boolean { return items.some(i => i.equals(this)); }
|
|
46
|
+
|
|
45
47
|
toJSON(): JsonValue {
|
|
46
48
|
return this.id;
|
|
47
49
|
}
|