@vc-shell/framework 1.0.45 → 1.0.48
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/core/plugins/index.ts +2 -1
- package/core/plugins/moment/humanize.ts +77 -0
- package/core/plugins/moment/index.ts +1 -0
- package/core/plugins/moment/moment.ts +29 -0
- package/core/types/index.ts +11 -6
- package/dist/core/plugins/index.d.ts +2 -1
- package/dist/core/plugins/index.d.ts.map +1 -1
- package/dist/core/plugins/moment/humanize.d.ts +3 -0
- package/dist/core/plugins/moment/humanize.d.ts.map +1 -0
- package/dist/core/plugins/moment/index.d.ts +2 -0
- package/dist/core/plugins/moment/index.d.ts.map +1 -0
- package/dist/core/plugins/moment/moment.d.ts +13 -0
- package/dist/core/plugins/moment/moment.d.ts.map +1 -0
- package/dist/core/types/index.d.ts +13 -7
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/framework.js +96 -81
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/index.d.ts +0 -1
- package/dist/ui/components/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-input/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input-model.d.ts +1 -5
- package/dist/ui/components/molecules/vc-input/vc-input-model.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency-model.d.ts +4 -10
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency-model.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select-model.d.ts +6 -13
- package/dist/ui/components/molecules/vc-select/vc-select-model.d.ts.map +1 -1
- package/dist/ui/types/index.d.ts +6 -6
- package/dist/ui/types/index.d.ts.map +1 -1
- package/dist/ui/types/ts-helpers.d.ts +4 -5
- package/dist/ui/types/ts-helpers.d.ts.map +1 -1
- package/dist/vite.config.d.ts.map +1 -1
- package/package.json +7 -7
- package/shared/assets/components/assets-details/assets-details.vue +9 -10
- package/ui/components/atoms/vc-col/vc-col.vue +10 -6
- package/ui/components/atoms/vc-icon/vc-icon.vue +1 -1
- package/ui/components/index.ts +0 -1
- package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +12 -5
- package/ui/components/molecules/vc-input/index.ts +1 -1
- package/ui/components/molecules/vc-input/vc-input-model.ts +2 -5
- package/ui/components/molecules/vc-input/vc-input.vue +2 -2
- package/ui/components/molecules/vc-input-currency/vc-input-currency-model.ts +4 -10
- package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +2 -5
- package/ui/components/molecules/vc-select/index.ts +1 -0
- package/ui/components/molecules/vc-select/vc-select-model.ts +16 -22
- package/ui/components/molecules/vc-select/vc-select.vue +3 -2
- package/ui/components/molecules/vc-slider/vc-slider.vue +10 -6
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +1 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +3 -3
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +6 -8
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +2 -0
- package/ui/components/organisms/vc-app/vc-app.vue +5 -1
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +22 -36
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +7 -5
- package/ui/components/organisms/vc-blade/vc-blade.vue +5 -2
- package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +20 -15
- package/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue +12 -11
- package/ui/components/organisms/vc-table/vc-table.vue +92 -141
- package/ui/types/index.ts +5 -17
- package/ui/types/ts-helpers.ts +7 -21
- package/dist/framework.js.map +0 -1
- package/ui/components/molecules/vc-currency-input/vc-input.vue +0 -436
- package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +0 -447
package/core/plugins/index.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./validation";
|
|
2
|
+
export * from "./moment";
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import { default as moment, Duration, RelativeTimeKey } from "moment";
|
|
3
|
+
|
|
4
|
+
type momentUnit = Extract<
|
|
5
|
+
moment.RelativeTimeKey,
|
|
6
|
+
"s" | "m" | "h" | "d" | "w" | "M" | "y"
|
|
7
|
+
>;
|
|
8
|
+
|
|
9
|
+
const momentUnits: momentUnit[] = ["s", "m", "h", "d", "w", "M", "y"];
|
|
10
|
+
|
|
11
|
+
const intlUnits = ["second", "minute", "hour", "day", "week", "month", "year"];
|
|
12
|
+
|
|
13
|
+
const intlNumberFormats = intlUnits.map((intlUnit) =>
|
|
14
|
+
Intl?.NumberFormat(moment.locale(), {
|
|
15
|
+
style: "unit",
|
|
16
|
+
unit: intlUnit,
|
|
17
|
+
unitDisplay: "long",
|
|
18
|
+
})
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
const getIntlNumberFormat = (unit: momentUnit) => {
|
|
22
|
+
return intlNumberFormats[momentUnits.indexOf(unit)];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Workaround because of lacking precise (1 hour 42 minutes 35 seconds)
|
|
26
|
+
// duration formatting in moment and Intl
|
|
27
|
+
export function humanize(this: Duration & number, withSuffix: boolean): string {
|
|
28
|
+
const localeData = moment.localeData();
|
|
29
|
+
|
|
30
|
+
const units = _.clone(momentUnits);
|
|
31
|
+
const lastUnit = units.pop();
|
|
32
|
+
|
|
33
|
+
// format string as "value unit" (e.g. "35", "ss" => "35 seconds", "1", "dd" => "1 day")
|
|
34
|
+
const humanize = (unit: momentUnit, value: number) => {
|
|
35
|
+
// Use Intl if available to get proper formatting and pluralization:
|
|
36
|
+
// Intl: 1 day, 2 days
|
|
37
|
+
// moment: a day, 2 days
|
|
38
|
+
return Intl
|
|
39
|
+
? getIntlNumberFormat(unit).format(value)
|
|
40
|
+
: localeData.relativeTime(
|
|
41
|
+
value,
|
|
42
|
+
true,
|
|
43
|
+
value === 1 ? unit : ((unit + unit) as RelativeTimeKey), // pluralize
|
|
44
|
+
this > 0
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// convert duration to the map
|
|
49
|
+
// "1:42:35" => [{ key: "ss", value: 35 }, { key: "mm", value: 42 }, { key: "hh", value: 1 }]
|
|
50
|
+
let map = units.map((unit) => ({
|
|
51
|
+
unit,
|
|
52
|
+
value: this.get(unit),
|
|
53
|
+
}));
|
|
54
|
+
// add value of last unit as double-precision float, if it's greater than 0
|
|
55
|
+
map.push({
|
|
56
|
+
unit: lastUnit,
|
|
57
|
+
value: this.get(lastUnit) > 0 ? this.as(lastUnit) : 0,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// drop zero values from the beginning and the end of the array
|
|
61
|
+
// [{ y: 0 }, { m: 0 }, { d: 0 }, { h: 1 }, { m: 42 }, { s: 0 }] => [{ h: 1 }, { m: 42 }]
|
|
62
|
+
const isZeroValue = (item: { value: number }) => item.value === 0;
|
|
63
|
+
map = _.chain(map).dropWhile(isZeroValue).dropRightWhile(isZeroValue).value();
|
|
64
|
+
|
|
65
|
+
// convert map to array of formatted strings
|
|
66
|
+
// [{ key: "mm", value: 42 }, { key: "hh", value: 1 }] => ["42 minutes", "1 hour"]
|
|
67
|
+
const values = map.map((entry) => humanize(entry.unit, entry.value));
|
|
68
|
+
|
|
69
|
+
// ["42 minutes", "1 hour"] => "1 hour 42 minutes"
|
|
70
|
+
let result = values.reverse().join(" ");
|
|
71
|
+
|
|
72
|
+
if (withSuffix) {
|
|
73
|
+
result = localeData.pastFuture(this, result);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as moment } from "./moment";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { default as moment } from "moment";
|
|
2
|
+
import { humanize } from "./humanize";
|
|
3
|
+
|
|
4
|
+
declare module "moment" {
|
|
5
|
+
export type argAccuracy = "auto" | "precise";
|
|
6
|
+
|
|
7
|
+
interface Duration {
|
|
8
|
+
humanize(argWithSuffix?: boolean, argAccuracy?: argAccuracy): string;
|
|
9
|
+
|
|
10
|
+
humanize(argAccuracy?: argAccuracy): string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
14
|
+
namespace duration {
|
|
15
|
+
// eslint-disable-next-line no-var
|
|
16
|
+
export var fn: moment.Duration;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const humanizeOriginal = moment.duration.fn.humanize;
|
|
21
|
+
moment.duration.fn.humanize = function (...args: unknown[]): string {
|
|
22
|
+
if (args.includes("precise")) {
|
|
23
|
+
return humanize.apply(this, args);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return humanizeOriginal.apply(this, args);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default moment;
|
package/core/types/index.ts
CHANGED
|
@@ -22,15 +22,15 @@ export type IValidationRules = {
|
|
|
22
22
|
|
|
23
23
|
export interface IBladeToolbar {
|
|
24
24
|
id?: string;
|
|
25
|
-
icon?: string;
|
|
26
|
-
title?: string |
|
|
25
|
+
icon?: string | (() => string);
|
|
26
|
+
title?: string | unknown;
|
|
27
27
|
isVisible?: boolean | unknown;
|
|
28
28
|
isAccent?: boolean | ComputedRef<boolean>;
|
|
29
29
|
component?: ExtendedComponent;
|
|
30
|
-
bladeOptions?: Record<string, unknown
|
|
30
|
+
bladeOptions?: Record<string, unknown>;
|
|
31
31
|
disabled?: boolean | ComputedRef<boolean>;
|
|
32
32
|
dropdownItems?: IBladeDropdownItem[];
|
|
33
|
-
clickHandler?(app
|
|
33
|
+
clickHandler?(app?: Record<string, unknown> | IBladeElement): void;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export interface IBladeDropdownItem {
|
|
@@ -49,11 +49,14 @@ export interface IActionBuilderResult {
|
|
|
49
49
|
title: string;
|
|
50
50
|
variant: string;
|
|
51
51
|
leftActions?: boolean;
|
|
52
|
-
clickHandler(): void;
|
|
52
|
+
clickHandler(item?: { id: string; }): void;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export interface IImage {
|
|
56
56
|
sortOrder?: number;
|
|
57
|
+
title: string;
|
|
58
|
+
name: string;
|
|
59
|
+
url: string;
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
export interface AuthData {
|
|
@@ -77,7 +80,7 @@ export interface RequestPasswordResult {
|
|
|
77
80
|
errorCode?: string;
|
|
78
81
|
}
|
|
79
82
|
|
|
80
|
-
export
|
|
83
|
+
export type ITableColumns = {
|
|
81
84
|
id: string;
|
|
82
85
|
title: string | ComputedRef<string>;
|
|
83
86
|
width?: number;
|
|
@@ -90,3 +93,5 @@ export interface ITableColumns {
|
|
|
90
93
|
format?: string;
|
|
91
94
|
align?: string;
|
|
92
95
|
}
|
|
96
|
+
|
|
97
|
+
export type { ExtendedComponent }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humanize.d.ts","sourceRoot":"","sources":["../../../../core/plugins/moment/humanize.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAmB,MAAM,QAAQ,CAAC;AAyBtE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAkD7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/plugins/moment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as moment } from "moment";
|
|
2
|
+
declare module "moment" {
|
|
3
|
+
type argAccuracy = "auto" | "precise";
|
|
4
|
+
interface Duration {
|
|
5
|
+
humanize(argWithSuffix?: boolean, argAccuracy?: argAccuracy): string;
|
|
6
|
+
humanize(argAccuracy?: argAccuracy): string;
|
|
7
|
+
}
|
|
8
|
+
namespace duration {
|
|
9
|
+
var fn: moment.Duration;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export default moment;
|
|
13
|
+
//# sourceMappingURL=moment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moment.d.ts","sourceRoot":"","sources":["../../../../core/plugins/moment/moment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,QAAQ,QAAQ,CAAC;IACtB,KAAY,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAE7C,UAAU,QAAQ;QAChB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;QAErE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KAC7C;IAGD,UAAU,QAAQ,CAAC;QAEV,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;KAChC;CACF;AAWD,eAAe,MAAM,CAAC"}
|
|
@@ -15,15 +15,15 @@ export type IValidationRules = {
|
|
|
15
15
|
};
|
|
16
16
|
export interface IBladeToolbar {
|
|
17
17
|
id?: string;
|
|
18
|
-
icon?: string;
|
|
19
|
-
title?: string |
|
|
18
|
+
icon?: string | (() => string);
|
|
19
|
+
title?: string | unknown;
|
|
20
20
|
isVisible?: boolean | unknown;
|
|
21
21
|
isAccent?: boolean | ComputedRef<boolean>;
|
|
22
22
|
component?: ExtendedComponent;
|
|
23
|
-
bladeOptions?: Record<string, unknown
|
|
23
|
+
bladeOptions?: Record<string, unknown>;
|
|
24
24
|
disabled?: boolean | ComputedRef<boolean>;
|
|
25
25
|
dropdownItems?: IBladeDropdownItem[];
|
|
26
|
-
clickHandler?(app
|
|
26
|
+
clickHandler?(app?: Record<string, unknown> | IBladeElement): void;
|
|
27
27
|
}
|
|
28
28
|
export interface IBladeDropdownItem {
|
|
29
29
|
id: number;
|
|
@@ -39,10 +39,15 @@ export interface IActionBuilderResult {
|
|
|
39
39
|
title: string;
|
|
40
40
|
variant: string;
|
|
41
41
|
leftActions?: boolean;
|
|
42
|
-
clickHandler(
|
|
42
|
+
clickHandler(item?: {
|
|
43
|
+
id: string;
|
|
44
|
+
}): void;
|
|
43
45
|
}
|
|
44
46
|
export interface IImage {
|
|
45
47
|
sortOrder?: number;
|
|
48
|
+
title: string;
|
|
49
|
+
name: string;
|
|
50
|
+
url: string;
|
|
46
51
|
}
|
|
47
52
|
export interface AuthData {
|
|
48
53
|
accessToken?: string;
|
|
@@ -61,7 +66,7 @@ export interface RequestPasswordResult {
|
|
|
61
66
|
error?: string;
|
|
62
67
|
errorCode?: string;
|
|
63
68
|
}
|
|
64
|
-
export
|
|
69
|
+
export type ITableColumns = {
|
|
65
70
|
id: string;
|
|
66
71
|
title: string | ComputedRef<string>;
|
|
67
72
|
width?: number;
|
|
@@ -73,5 +78,6 @@ export interface ITableColumns {
|
|
|
73
78
|
class?: string;
|
|
74
79
|
format?: string;
|
|
75
80
|
align?: string;
|
|
76
|
-
}
|
|
81
|
+
};
|
|
82
|
+
export type { ExtendedComponent };
|
|
77
83
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,WAAW,EAAE,MAAM,KAAK,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAO5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/types/index.ts"],"names":[],"mappings":"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"}
|