@rosettadash/vue 0.1.2 → 0.1.3
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/package.json +8 -2
- package/src/domain/role-gate/role-gate.d.ts +21 -0
- package/src/domain/role-gate/role-gate.js +32 -4
- package/src/domain/role-gate/role-gate.js.map +1 -1
- package/src/domain/time-preset/time-preset.d.ts +4 -2
- package/src/domain/time-preset/time-preset.js +12 -2
- package/src/domain/time-preset/time-preset.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/layout/scroll-region/index.d.ts +2 -0
- package/src/layout/scroll-region/index.js +2 -0
- package/src/layout/scroll-region/index.js.map +1 -0
- package/src/layout/scroll-region/scroll-region.d.ts +53 -0
- package/src/layout/scroll-region/scroll-region.js +28 -0
- package/src/layout/scroll-region/scroll-region.js.map +1 -0
- package/src/lib/custom-element-host.js +6 -2
- package/src/lib/custom-element-host.js.map +1 -1
- package/src/visual/chart/bar/bar-chart.d.ts +34 -0
- package/src/visual/chart/bar/bar-chart.js +71 -7
- package/src/visual/chart/bar/bar-chart.js.map +1 -1
- package/src/visual/chart/line/line-chart.d.ts +44 -0
- package/src/visual/chart/line/line-chart.js +104 -7
- package/src/visual/chart/line/line-chart.js.map +1 -1
- package/src/visual/display/3d-geo-globe/three-geo-globe.d.ts +18 -29
- package/src/visual/display/3d-geo-globe/three-geo-globe.js +19 -20
- package/src/visual/display/3d-geo-globe/three-geo-globe.js.map +1 -1
- package/src/visual/input/date-range/date-range-filter.d.ts +32 -2
- package/src/visual/input/date-range/date-range-filter.js +38 -6
- package/src/visual/input/date-range/date-range-filter.js.map +1 -1
- package/src/visual/input/number/number-input.d.ts +24 -2
- package/src/visual/input/number/number-input.js +31 -5
- package/src/visual/input/number/number-input.js.map +1 -1
- package/src/visual/input/select/select-input.d.ts +14 -2
- package/src/visual/input/select/select-input.js +25 -7
- package/src/visual/input/select/select-input.js.map +1 -1
- package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.d.ts +205 -0
- package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.js +576 -0
- package/src/visual/media/equirect-sphere-viewport/equirect-sphere-viewport.js.map +1 -0
- package/src/visual/media/equirect-sphere-viewport/index.d.ts +2 -0
- package/src/visual/media/equirect-sphere-viewport/index.js +2 -0
- package/src/visual/media/equirect-sphere-viewport/index.js.map +1 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.d.ts +6 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.js +69 -0
- package/src/visual/media/equirect-sphere-viewport/planet-shader.js.map +1 -0
- package/src/visual/media/flat-video-viewport/flat-video-viewport.d.ts +160 -0
- package/src/visual/media/flat-video-viewport/flat-video-viewport.js +370 -0
- package/src/visual/media/flat-video-viewport/flat-video-viewport.js.map +1 -0
- package/src/visual/media/flat-video-viewport/index.d.ts +2 -0
- package/src/visual/media/flat-video-viewport/index.js +2 -0
- package/src/visual/media/flat-video-viewport/index.js.map +1 -0
- package/src/visual/news/language-select/news-language-select.js +4 -4
- package/src/visual/news/language-select/news-language-select.js.map +1 -1
- package/src/visual/news/region-select/news-region-select.js +4 -4
- package/src/visual/news/region-select/news-region-select.js.map +1 -1
- package/src/visual/news/type-select/news-type-select.js +4 -4
- package/src/visual/news/type-select/news-type-select.js.map +1 -1
- package/src/visual/table/data-table.d.ts +25 -3
- package/src/visual/table/data-table.js +38 -10
- package/src/visual/table/data-table.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosettadash/vue",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "RosettaDash Vue 3 runtime — same import paths as @rosettadash/web-components. Storybook: github.com/KevinEverywhere/rosettadash (port 6008).",
|
|
5
5
|
"author": "Kevin Ready <kevin@planetkevin.com>",
|
|
6
6
|
"type": "module",
|
|
@@ -119,6 +119,11 @@
|
|
|
119
119
|
"import": "./src/layout/modal/index.js",
|
|
120
120
|
"default": "./src/layout/modal/index.js"
|
|
121
121
|
},
|
|
122
|
+
"./layout/scroll-region": {
|
|
123
|
+
"types": "./src/layout/scroll-region/index.d.ts",
|
|
124
|
+
"import": "./src/layout/scroll-region/index.js",
|
|
125
|
+
"default": "./src/layout/scroll-region/index.js"
|
|
126
|
+
},
|
|
122
127
|
"./layout/tabs": {
|
|
123
128
|
"types": "./src/layout/tabs/index.d.ts",
|
|
124
129
|
"import": "./src/layout/tabs/index.js",
|
|
@@ -341,6 +346,7 @@
|
|
|
341
346
|
"./layout/flex/index": "./src/layout/flex/index.js",
|
|
342
347
|
"./layout/grid/index": "./src/layout/grid/index.js",
|
|
343
348
|
"./layout/modal/index": "./src/layout/modal/index.js",
|
|
349
|
+
"./layout/scroll-region/index": "./src/layout/scroll-region/index.js",
|
|
344
350
|
"./layout/tabs/index": "./src/layout/tabs/index.js",
|
|
345
351
|
"./logic/timer/index": "./src/logic/timer/index.js",
|
|
346
352
|
"./visual/chart/bar/index": "./src/visual/chart/bar/index.js",
|
|
@@ -388,7 +394,7 @@
|
|
|
388
394
|
"LICENSE"
|
|
389
395
|
],
|
|
390
396
|
"dependencies": {
|
|
391
|
-
"@rosettadash/web-components": "0.1.
|
|
397
|
+
"@rosettadash/web-components": "0.1.3",
|
|
392
398
|
"tslib": "^2.3.0"
|
|
393
399
|
},
|
|
394
400
|
"peerDependencies": {
|
|
@@ -2,7 +2,10 @@ import { type PropType, type SlotsType, type VNode } from 'vue';
|
|
|
2
2
|
export interface RoleGateProps {
|
|
3
3
|
label?: string;
|
|
4
4
|
allowedRoles?: string[];
|
|
5
|
+
/** Active session role — when omitted, content is always shown (builder/demo mode). */
|
|
6
|
+
currentRole?: string;
|
|
5
7
|
statusText?: string;
|
|
8
|
+
hiddenStatusText?: string;
|
|
6
9
|
className?: string;
|
|
7
10
|
}
|
|
8
11
|
/** @rosettadash/vue/domain/role-gate — domain.role-gate */
|
|
@@ -19,10 +22,18 @@ export declare const RoleGate: import("vue").DefineComponent<import("vue").Extra
|
|
|
19
22
|
type: PropType<string[] | undefined>;
|
|
20
23
|
default: undefined;
|
|
21
24
|
};
|
|
25
|
+
currentRole: {
|
|
26
|
+
type: PropType<string | undefined>;
|
|
27
|
+
default: undefined;
|
|
28
|
+
};
|
|
22
29
|
statusText: {
|
|
23
30
|
type: PropType<string | undefined>;
|
|
24
31
|
default: undefined;
|
|
25
32
|
};
|
|
33
|
+
hiddenStatusText: {
|
|
34
|
+
type: PropType<string | undefined>;
|
|
35
|
+
default: undefined;
|
|
36
|
+
};
|
|
26
37
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
27
38
|
[key: string]: any;
|
|
28
39
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -38,15 +49,25 @@ export declare const RoleGate: import("vue").DefineComponent<import("vue").Extra
|
|
|
38
49
|
type: PropType<string[] | undefined>;
|
|
39
50
|
default: undefined;
|
|
40
51
|
};
|
|
52
|
+
currentRole: {
|
|
53
|
+
type: PropType<string | undefined>;
|
|
54
|
+
default: undefined;
|
|
55
|
+
};
|
|
41
56
|
statusText: {
|
|
42
57
|
type: PropType<string | undefined>;
|
|
43
58
|
default: undefined;
|
|
44
59
|
};
|
|
60
|
+
hiddenStatusText: {
|
|
61
|
+
type: PropType<string | undefined>;
|
|
62
|
+
default: undefined;
|
|
63
|
+
};
|
|
45
64
|
}>> & Readonly<{}>, {
|
|
46
65
|
className: string | undefined;
|
|
47
66
|
label: string | undefined;
|
|
48
67
|
allowedRoles: string[] | undefined;
|
|
68
|
+
currentRole: string | undefined;
|
|
49
69
|
statusText: string | undefined;
|
|
70
|
+
hiddenStatusText: string | undefined;
|
|
50
71
|
}, SlotsType<{
|
|
51
72
|
default?: () => VNode[];
|
|
52
73
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { defineComponent, h } from 'vue';
|
|
2
|
+
function roleGateAllowsRole(allowedRoles, roleId) {
|
|
3
|
+
const normalizedRole = roleId.trim();
|
|
4
|
+
if (!normalizedRole) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
return allowedRoles.some((allowed) => allowed === normalizedRole);
|
|
8
|
+
}
|
|
2
9
|
/** @rosettadash/vue/domain/role-gate — domain.role-gate */
|
|
3
10
|
export const RoleGate = defineComponent({
|
|
4
11
|
name: 'RdRoleGate',
|
|
@@ -6,17 +13,38 @@ export const RoleGate = defineComponent({
|
|
|
6
13
|
className: { type: String, default: undefined },
|
|
7
14
|
label: { type: String, default: undefined },
|
|
8
15
|
allowedRoles: { type: Array, default: undefined },
|
|
16
|
+
currentRole: { type: String, default: undefined },
|
|
9
17
|
statusText: { type: String, default: undefined },
|
|
18
|
+
hiddenStatusText: { type: String, default: undefined },
|
|
10
19
|
},
|
|
11
20
|
slots: Object,
|
|
12
21
|
setup(props, { slots, attrs }) {
|
|
13
22
|
return () => {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
const
|
|
23
|
+
var _a, _b, _c, _d, _e;
|
|
24
|
+
const allowedRoles = (_a = props.allowedRoles) !== null && _a !== void 0 ? _a : [];
|
|
25
|
+
const hasRoleContext = props.currentRole !== undefined && props.currentRole !== '';
|
|
26
|
+
const visible = !hasRoleContext ||
|
|
27
|
+
allowedRoles.length === 0 ||
|
|
28
|
+
roleGateAllowsRole(allowedRoles, (_b = props.currentRole) !== null && _b !== void 0 ? _b : '');
|
|
29
|
+
const rootClass = [
|
|
30
|
+
'rd-role-gate',
|
|
31
|
+
visible ? 'rd-role-gate--visible' : 'rd-role-gate--hidden',
|
|
32
|
+
props.className,
|
|
33
|
+
typeof attrs.class === 'string' ? attrs.class : '',
|
|
34
|
+
]
|
|
35
|
+
.filter(Boolean)
|
|
36
|
+
.join(' ');
|
|
16
37
|
return h('section', { class: rootClass, 'data-testid': 'rd-role-gate' }, [
|
|
17
38
|
props.label ? h('span', { class: 'rd-field__label' }, props.label) : null,
|
|
18
|
-
|
|
19
|
-
|
|
39
|
+
visible
|
|
40
|
+
? [
|
|
41
|
+
h('p', { class: 'rd-role-gate__status', 'data-testid': 'rd-role-gate-visible' }, (_c = props.statusText) !== null && _c !== void 0 ? _c : 'Visible'),
|
|
42
|
+
(_d = slots.default) === null || _d === void 0 ? void 0 : _d.call(slots),
|
|
43
|
+
]
|
|
44
|
+
: h('p', {
|
|
45
|
+
class: 'rd-role-gate__status rd-role-gate__status--hidden',
|
|
46
|
+
'data-testid': 'rd-role-gate-hidden',
|
|
47
|
+
}, (_e = props.hiddenStatusText) !== null && _e !== void 0 ? _e : 'Hidden for current role'),
|
|
20
48
|
]);
|
|
21
49
|
};
|
|
22
50
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-gate.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/role-gate/role-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"role-gate.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/role-gate/role-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAYpF,SAAS,kBAAkB,CAAC,YAAsB,EAAE,MAAc;IAChE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC;AACpE,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,YAAY,EAAE,EAAE,IAAI,EAAE,KAAuC,EAAE,OAAO,EAAE,SAAS,EAAE;QACnF,WAAW,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QACjF,UAAU,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAChF,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACvF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;;YACV,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC;YACnF,MAAM,OAAO,GACX,CAAC,cAAc;gBACf,YAAY,CAAC,MAAM,KAAK,CAAC;gBACzB,kBAAkB,CAAC,YAAY,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;YAC5D,MAAM,SAAS,GAAG;gBAChB,cAAc;gBACd,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB;gBAC1D,KAAK,CAAC,SAAS;gBACf,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;aACnD;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE;gBACvE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,OAAO;oBACL,CAAC,CAAC;wBACE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,CAAC;wBAC/G,MAAA,KAAK,CAAC,OAAO,qDAAI;qBAClB;oBACH,CAAC,CAAC,CAAC,CACC,GAAG,EACH;wBACE,KAAK,EAAE,mDAAmD;wBAC1D,aAAa,EAAE,qBAAqB;qBACrC,EACD,MAAA,KAAK,CAAC,gBAAgB,mCAAI,yBAAyB,CACpD;aACN,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -30,7 +30,7 @@ export declare const TimePreset: import("vue").DefineComponent<import("vue").Ext
|
|
|
30
30
|
};
|
|
31
31
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
32
32
|
[key: string]: any;
|
|
33
|
-
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin,
|
|
33
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "presetChange"[], "presetChange", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
34
34
|
className: {
|
|
35
35
|
type: PropType<string | undefined>;
|
|
36
36
|
default: undefined;
|
|
@@ -47,7 +47,9 @@ export declare const TimePreset: import("vue").DefineComponent<import("vue").Ext
|
|
|
47
47
|
type: PropType<string | undefined>;
|
|
48
48
|
default: undefined;
|
|
49
49
|
};
|
|
50
|
-
}>> & Readonly<{
|
|
50
|
+
}>> & Readonly<{
|
|
51
|
+
onPresetChange?: ((...args: any[]) => any) | undefined;
|
|
52
|
+
}>, {
|
|
51
53
|
className: string | undefined;
|
|
52
54
|
label: string | undefined;
|
|
53
55
|
presets: TimePresetPreset[] | undefined;
|
|
@@ -9,7 +9,8 @@ export const TimePreset = defineComponent({
|
|
|
9
9
|
activePresetId: { type: String, default: undefined },
|
|
10
10
|
},
|
|
11
11
|
slots: Object,
|
|
12
|
-
|
|
12
|
+
emits: ['presetChange'],
|
|
13
|
+
setup(props, { slots, attrs, emit }) {
|
|
13
14
|
function presetButtonClass(id) {
|
|
14
15
|
return ['rd-time-preset__button', props.activePresetId === id ? 'rd-time-preset__button--active' : ''].filter(Boolean).join(' ');
|
|
15
16
|
}
|
|
@@ -18,7 +19,16 @@ export const TimePreset = defineComponent({
|
|
|
18
19
|
const rootClass = ['rd-time-preset', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
|
|
19
20
|
return h('section', { class: rootClass, 'data-testid': 'rd-time-preset' }, [
|
|
20
21
|
props.label ? h('span', { class: 'rd-field__label' }, props.label) : null,
|
|
21
|
-
h('div', { class: 'rd-time-preset__buttons', role: 'group' }, ((_a = props.presets) !== null && _a !== void 0 ? _a : []).map((p) => h('button', {
|
|
22
|
+
h('div', { class: 'rd-time-preset__buttons', role: 'group' }, ((_a = props.presets) !== null && _a !== void 0 ? _a : []).map((p) => h('button', {
|
|
23
|
+
type: 'button',
|
|
24
|
+
key: p.id,
|
|
25
|
+
class: presetButtonClass(p.id),
|
|
26
|
+
onClick: () => {
|
|
27
|
+
var _a;
|
|
28
|
+
emit('presetChange', p.id);
|
|
29
|
+
(_a = props.onPresetChange) === null || _a === void 0 ? void 0 : _a.call(props, p.id);
|
|
30
|
+
},
|
|
31
|
+
}, p.label))),
|
|
22
32
|
(_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots),
|
|
23
33
|
]);
|
|
24
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-preset.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/time-preset/time-preset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAepF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,KAAiD,EAAE,OAAO,EAAE,SAAS,EAAE;QACxF,cAAc,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACrF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"time-preset.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/domain/time-preset/time-preset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AAepF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,KAAiD,EAAE,OAAO,EAAE,SAAS,EAAE;QACxF,cAAc,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;KACrF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,EAAE,CAAC,cAAc,CAAC;IACvB,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QACjC,SAAS,iBAAiB,CAAC,EAAU;YACnC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnI,CAAC;QACD,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpI,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE;gBAC3E,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,QAAQ,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,CAAC,CAAC,EAAE;oBACT,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9B,OAAO,EAAE,GAAG,EAAE;;wBACZ,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC3B,MAAA,KAAK,CAAC,cAAc,sDAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/B,CAAC;iBACF,EAAE,CAAC,CAAC,KAAK,CAAC,CACZ,CAAC;gBACF,MAAA,KAAK,CAAC,OAAO,qDAAI;aAClB,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/src/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from './layout/collapsible/index.js';
|
|
|
19
19
|
export * from './layout/flex/index.js';
|
|
20
20
|
export * from './layout/grid/index.js';
|
|
21
21
|
export * from './layout/modal/index.js';
|
|
22
|
+
export * from './layout/scroll-region/index.js';
|
|
22
23
|
export * from './layout/tabs/index.js';
|
|
23
24
|
export * from './logic/timer/index.js';
|
|
24
25
|
export * from './visual/chart/bar/index.js';
|
package/src/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export * from './layout/collapsible/index.js';
|
|
|
19
19
|
export * from './layout/flex/index.js';
|
|
20
20
|
export * from './layout/grid/index.js';
|
|
21
21
|
export * from './layout/modal/index.js';
|
|
22
|
+
export * from './layout/scroll-region/index.js';
|
|
22
23
|
export * from './layout/tabs/index.js';
|
|
23
24
|
export * from './logic/timer/index.js';
|
|
24
25
|
export * from './visual/chart/bar/index.js';
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vue/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vue/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/layout/scroll-region/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type PropType, type SlotsType, type VNode } from 'vue';
|
|
2
|
+
export interface ScrollRegionProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
maxHeight?: string;
|
|
5
|
+
overlayScrollbar?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/** @rosettadash/vue/layout/scroll-region — layout.scroll-region */
|
|
9
|
+
export declare const ScrollRegion: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
10
|
+
className: {
|
|
11
|
+
type: PropType<string | undefined>;
|
|
12
|
+
default: undefined;
|
|
13
|
+
};
|
|
14
|
+
title: {
|
|
15
|
+
type: PropType<string | undefined>;
|
|
16
|
+
default: undefined;
|
|
17
|
+
};
|
|
18
|
+
maxHeight: {
|
|
19
|
+
type: PropType<string | undefined>;
|
|
20
|
+
default: undefined;
|
|
21
|
+
};
|
|
22
|
+
overlayScrollbar: {
|
|
23
|
+
type: PropType<boolean | undefined>;
|
|
24
|
+
default: undefined;
|
|
25
|
+
};
|
|
26
|
+
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
29
|
+
className: {
|
|
30
|
+
type: PropType<string | undefined>;
|
|
31
|
+
default: undefined;
|
|
32
|
+
};
|
|
33
|
+
title: {
|
|
34
|
+
type: PropType<string | undefined>;
|
|
35
|
+
default: undefined;
|
|
36
|
+
};
|
|
37
|
+
maxHeight: {
|
|
38
|
+
type: PropType<string | undefined>;
|
|
39
|
+
default: undefined;
|
|
40
|
+
};
|
|
41
|
+
overlayScrollbar: {
|
|
42
|
+
type: PropType<boolean | undefined>;
|
|
43
|
+
default: undefined;
|
|
44
|
+
};
|
|
45
|
+
}>> & Readonly<{}>, {
|
|
46
|
+
className: string | undefined;
|
|
47
|
+
title: string | undefined;
|
|
48
|
+
maxHeight: string | undefined;
|
|
49
|
+
overlayScrollbar: boolean | undefined;
|
|
50
|
+
}, SlotsType<{
|
|
51
|
+
default?: () => VNode[];
|
|
52
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
53
|
+
export type ScrollRegionComponent = typeof ScrollRegion;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { defineComponent, h } from 'vue';
|
|
2
|
+
/** @rosettadash/vue/layout/scroll-region — layout.scroll-region */
|
|
3
|
+
export const ScrollRegion = defineComponent({
|
|
4
|
+
name: 'RdScrollRegion',
|
|
5
|
+
props: {
|
|
6
|
+
className: { type: String, default: undefined },
|
|
7
|
+
title: { type: String, default: undefined },
|
|
8
|
+
maxHeight: { type: String, default: undefined },
|
|
9
|
+
overlayScrollbar: { type: Boolean, default: undefined },
|
|
10
|
+
},
|
|
11
|
+
slots: Object,
|
|
12
|
+
setup(props, { slots, attrs }) {
|
|
13
|
+
return () => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const rootClass = ['rd-scroll-region', props.className, typeof attrs.class === 'string' ? attrs.class : ''].filter(Boolean).join(' ');
|
|
16
|
+
return h('section', {
|
|
17
|
+
class: [rootClass, props.overlayScrollbar === false ? '' : 'rd-scroll-region--overlay-scrollbar'].filter(Boolean).join(' '),
|
|
18
|
+
'data-testid': 'rd-scroll-region',
|
|
19
|
+
'aria-label': (_a = props.title) !== null && _a !== void 0 ? _a : 'Scrollable content',
|
|
20
|
+
style: props.maxHeight ? { maxHeight: props.maxHeight } : undefined,
|
|
21
|
+
}, [
|
|
22
|
+
props.title ? h('header', { class: 'rd-scroll-region__header' }, props.title) : null,
|
|
23
|
+
h('div', { class: 'rd-scroll-region__body' }, (_b = slots.default) === null || _b === void 0 ? void 0 : _b.call(slots)),
|
|
24
|
+
]);
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=scroll-region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-region.js","sourceRoot":"","sources":["../../../../../../packages/vue/src/layout/scroll-region/scroll-region.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;AASpF,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC3E,SAAS,EAAE,EAAE,IAAI,EAAE,MAAsC,EAAE,OAAO,EAAE,SAAS,EAAE;QAC/E,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAwC,EAAE,OAAO,EAAE,SAAS,EAAE;KACzF;IACD,KAAK,EAAE,MAAgD;IACvD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3B,OAAO,GAAG,EAAE;;YACV,MAAM,SAAS,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtI,OAAO,CAAC,CAAC,SAAS,EAAE;gBACpB,KAAK,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3H,aAAa,EAAE,kBAAkB;gBACjC,YAAY,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,oBAAoB;gBACjD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;aACpE,EAAE;gBACD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpF,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAC;aACjE,CAAC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -45,7 +45,7 @@ export function defineCustomElementHost(options, propDefs) {
|
|
|
45
45
|
type: String,
|
|
46
46
|
default: undefined,
|
|
47
47
|
} }, propDefs),
|
|
48
|
-
emits: Object.values(eventMap),
|
|
48
|
+
emits: [...new Set([...Object.keys(eventMap), ...Object.values(eventMap)])],
|
|
49
49
|
setup(props, { emit, attrs }) {
|
|
50
50
|
options.register();
|
|
51
51
|
const host = ref(null);
|
|
@@ -64,7 +64,11 @@ export function defineCustomElementHost(options, propDefs) {
|
|
|
64
64
|
applyAttrs();
|
|
65
65
|
for (const [domEvent, vueEvent] of Object.entries(eventMap)) {
|
|
66
66
|
const handler = (event) => {
|
|
67
|
-
|
|
67
|
+
const detail = event.detail;
|
|
68
|
+
emit(vueEvent, detail);
|
|
69
|
+
if (domEvent !== vueEvent) {
|
|
70
|
+
emit(domEvent, detail);
|
|
71
|
+
}
|
|
68
72
|
};
|
|
69
73
|
el.addEventListener(domEvent, handler);
|
|
70
74
|
listeners.push([domEvent, handler]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-element-host.js","sourceRoot":"","sources":["../../../../../packages/vue/src/lib/custom-element-host.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,CAAC,EACD,eAAe,EACf,SAAS,EACT,GAAG,EACH,KAAK,GAEN,MAAM,KAAK,CAAC;AAgBb,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CACrB,EAAe,EACf,KAAgC,EAChC,QAAkB,EAClB,OAA+B;;IAE/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,mCAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YAC7D,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,EAAe,EACf,KAA8B,EAC9B,YAAsB;IAEtB,MAAM,WAAW,GAAI,EAA+D;SACjF,WAAW,CAAC;IACf,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAiC,EACjC,QAAiC;;IAEjC,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,EAAE,CAAC;IAE9C,OAAO,eAAe,CAAC;QACrB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,kBACH,SAAS,EAAE;gBACT,IAAI,EAAE,MAAsC;gBAC5C,OAAO,EAAE,SAAS;aACnB,IACE,QAAQ,CACZ;QACD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-element-host.js","sourceRoot":"","sources":["../../../../../packages/vue/src/lib/custom-element-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNode } from 'vue';
|
|
2
|
+
export interface BarChartBar {
|
|
3
|
+
label: string;
|
|
4
|
+
value: number;
|
|
5
|
+
}
|
|
2
6
|
export interface BarChartProps {
|
|
3
7
|
title?: string;
|
|
8
|
+
bars?: BarChartBar[];
|
|
9
|
+
yAxisLabel?: string;
|
|
10
|
+
valueFormat?: (value: number) => string;
|
|
4
11
|
className?: string;
|
|
5
12
|
}
|
|
6
13
|
/** @rosettadash/vue/visual/chart/bar — visual.chart.bar */
|
|
@@ -13,6 +20,18 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
|
|
|
13
20
|
type: PropType<string | undefined>;
|
|
14
21
|
default: undefined;
|
|
15
22
|
};
|
|
23
|
+
bars: {
|
|
24
|
+
type: PropType<BarChartBar[] | undefined>;
|
|
25
|
+
default: undefined;
|
|
26
|
+
};
|
|
27
|
+
yAxisLabel: {
|
|
28
|
+
type: PropType<string | undefined>;
|
|
29
|
+
default: undefined;
|
|
30
|
+
};
|
|
31
|
+
valueFormat: {
|
|
32
|
+
type: PropType<((value: number) => string) | undefined>;
|
|
33
|
+
default: undefined;
|
|
34
|
+
};
|
|
16
35
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
17
36
|
[key: string]: any;
|
|
18
37
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -24,9 +43,24 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
|
|
|
24
43
|
type: PropType<string | undefined>;
|
|
25
44
|
default: undefined;
|
|
26
45
|
};
|
|
46
|
+
bars: {
|
|
47
|
+
type: PropType<BarChartBar[] | undefined>;
|
|
48
|
+
default: undefined;
|
|
49
|
+
};
|
|
50
|
+
yAxisLabel: {
|
|
51
|
+
type: PropType<string | undefined>;
|
|
52
|
+
default: undefined;
|
|
53
|
+
};
|
|
54
|
+
valueFormat: {
|
|
55
|
+
type: PropType<((value: number) => string) | undefined>;
|
|
56
|
+
default: undefined;
|
|
57
|
+
};
|
|
27
58
|
}>> & Readonly<{}>, {
|
|
28
59
|
className: string | undefined;
|
|
29
60
|
title: string | undefined;
|
|
61
|
+
bars: BarChartBar[] | undefined;
|
|
62
|
+
yAxisLabel: string | undefined;
|
|
63
|
+
valueFormat: ((value: number) => string) | undefined;
|
|
30
64
|
}, SlotsType<{
|
|
31
65
|
default?: () => VNode[];
|
|
32
66
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,21 +1,85 @@
|
|
|
1
1
|
import { defineComponent, h } from 'vue';
|
|
2
|
+
const FALLBACK_BARS = [
|
|
3
|
+
{ label: 'A', value: 40 },
|
|
4
|
+
{ label: 'B', value: 65 },
|
|
5
|
+
{ label: 'C', value: 55 },
|
|
6
|
+
{ label: 'D', value: 80 },
|
|
7
|
+
{ label: 'E', value: 48 },
|
|
8
|
+
];
|
|
9
|
+
function defaultFormat(value) {
|
|
10
|
+
if (value >= 1000000) {
|
|
11
|
+
return `${(value / 1000000).toFixed(1)}M`;
|
|
12
|
+
}
|
|
13
|
+
if (value >= 1000) {
|
|
14
|
+
return `${(value / 1000).toFixed(0)}K`;
|
|
15
|
+
}
|
|
16
|
+
return String(Math.round(value));
|
|
17
|
+
}
|
|
18
|
+
function buildTicks(max, count = 4) {
|
|
19
|
+
if (max <= 0) {
|
|
20
|
+
return [0];
|
|
21
|
+
}
|
|
22
|
+
const step = max / (count - 1);
|
|
23
|
+
return Array.from({ length: count }, (_, index) => step * index);
|
|
24
|
+
}
|
|
2
25
|
/** @rosettadash/vue/visual/chart/bar — visual.chart.bar */
|
|
3
26
|
export const BarChart = defineComponent({
|
|
4
27
|
name: 'RdBarChart',
|
|
5
28
|
props: {
|
|
6
29
|
className: { type: String, default: undefined },
|
|
7
30
|
title: { type: String, default: undefined },
|
|
31
|
+
bars: { type: Array, default: undefined },
|
|
32
|
+
yAxisLabel: { type: String, default: undefined },
|
|
33
|
+
valueFormat: { type: Function, default: undefined },
|
|
8
34
|
},
|
|
9
35
|
slots: Object,
|
|
10
36
|
setup(props, { slots, attrs }) {
|
|
11
|
-
const barHeights = [40, 65, 55, 80, 48];
|
|
12
37
|
return () => {
|
|
13
|
-
var _a, _b;
|
|
14
|
-
const rootClass = ['rd-chart-bar', props.className, typeof attrs.class === 'string' ? attrs.class : '']
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
38
|
+
var _a, _b, _c, _d, _e;
|
|
39
|
+
const rootClass = ['rd-chart-bar', props.className, typeof attrs.class === 'string' ? attrs.class : '']
|
|
40
|
+
.filter(Boolean)
|
|
41
|
+
.join(' ');
|
|
42
|
+
const bars = ((_a = props.bars) === null || _a === void 0 ? void 0 : _a.length) ? props.bars : FALLBACK_BARS;
|
|
43
|
+
const format = (_b = props.valueFormat) !== null && _b !== void 0 ? _b : defaultFormat;
|
|
44
|
+
const maxValue = Math.max(...bars.map((bar) => bar.value), 1);
|
|
45
|
+
const ticks = buildTicks(maxValue);
|
|
46
|
+
return h('section', {
|
|
47
|
+
class: rootClass,
|
|
48
|
+
'data-testid': 'rd-chart-bar',
|
|
49
|
+
role: 'img',
|
|
50
|
+
'aria-label': (_c = props.title) !== null && _c !== void 0 ? _c : 'Bar chart',
|
|
51
|
+
}, [
|
|
52
|
+
h('header', { class: 'rd-chart-bar__header' }, h('span', null, (_d = props.title) !== null && _d !== void 0 ? _d : 'Bar chart')),
|
|
53
|
+
h('div', { class: 'rd-chart-bar__body' }, [
|
|
54
|
+
h('div', { class: 'rd-chart-bar__y-axis', 'aria-hidden': 'true' }, [
|
|
55
|
+
h('div', { class: 'rd-chart-bar__y-ticks' }, [...ticks]
|
|
56
|
+
.reverse()
|
|
57
|
+
.map((tick) => h('span', { key: tick, class: 'rd-chart-bar__y-tick' }, format(tick)))),
|
|
58
|
+
props.yAxisLabel ? h('span', { class: 'rd-chart-bar__y-label' }, props.yAxisLabel) : null,
|
|
59
|
+
]),
|
|
60
|
+
h('div', { class: 'rd-chart-bar__plot' }, [
|
|
61
|
+
h('div', { class: 'rd-chart-bar__grid-lines', 'aria-hidden': 'true' }, ticks.map((tick) => h('span', {
|
|
62
|
+
key: tick,
|
|
63
|
+
class: 'rd-chart-bar__grid-line',
|
|
64
|
+
style: { bottom: `${(tick / maxValue) * 100}%` },
|
|
65
|
+
}))),
|
|
66
|
+
h('div', { class: 'rd-chart-bar__bars' }, bars.map((bar) => {
|
|
67
|
+
const heightPct = (bar.value / maxValue) * 100;
|
|
68
|
+
return h('div', { key: bar.label, class: 'rd-chart-bar__bar-group' }, [
|
|
69
|
+
h('div', { class: 'rd-chart-bar__bar-wrap' }, [
|
|
70
|
+
h('div', {
|
|
71
|
+
class: 'rd-chart-bar__bar',
|
|
72
|
+
style: { height: `${heightPct}%` },
|
|
73
|
+
title: `${bar.label}: ${format(bar.value)}`,
|
|
74
|
+
}),
|
|
75
|
+
]),
|
|
76
|
+
h('span', { class: 'rd-chart-bar__x-label' }, bar.label),
|
|
77
|
+
h('span', { class: 'rd-chart-bar__value' }, format(bar.value)),
|
|
78
|
+
]);
|
|
79
|
+
})),
|
|
80
|
+
]),
|
|
81
|
+
]),
|
|
82
|
+
(_e = slots.default) === null || _e === void 0 ? void 0 : _e.call(slots),
|
|
19
83
|
]);
|
|
20
84
|
};
|
|
21
85
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../../../../../../packages/vue/src/visual/chart/bar/bar-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAA6C,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"bar-chart.js","sourceRoot":"","sources":["../../../../../../../packages/vue/src/visual/chart/bar/bar-chart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNode } from 'vue';
|
|
2
|
+
export interface LineChartPoint {
|
|
3
|
+
x: string | number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
2
6
|
export interface LineChartProps {
|
|
3
7
|
title?: string;
|
|
8
|
+
points?: LineChartPoint[];
|
|
9
|
+
xAxisLabel?: string;
|
|
10
|
+
yAxisLabel?: string;
|
|
11
|
+
valueFormat?: (value: number) => string;
|
|
4
12
|
className?: string;
|
|
5
13
|
}
|
|
6
14
|
/** @rosettadash/vue/visual/chart/line — visual.chart.line */
|
|
@@ -13,6 +21,22 @@ export declare const LineChart: import("vue").DefineComponent<import("vue").Extr
|
|
|
13
21
|
type: PropType<string | undefined>;
|
|
14
22
|
default: undefined;
|
|
15
23
|
};
|
|
24
|
+
points: {
|
|
25
|
+
type: PropType<LineChartPoint[] | undefined>;
|
|
26
|
+
default: undefined;
|
|
27
|
+
};
|
|
28
|
+
xAxisLabel: {
|
|
29
|
+
type: PropType<string | undefined>;
|
|
30
|
+
default: undefined;
|
|
31
|
+
};
|
|
32
|
+
yAxisLabel: {
|
|
33
|
+
type: PropType<string | undefined>;
|
|
34
|
+
default: undefined;
|
|
35
|
+
};
|
|
36
|
+
valueFormat: {
|
|
37
|
+
type: PropType<((value: number) => string) | undefined>;
|
|
38
|
+
default: undefined;
|
|
39
|
+
};
|
|
16
40
|
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
17
41
|
[key: string]: any;
|
|
18
42
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -24,9 +48,29 @@ export declare const LineChart: import("vue").DefineComponent<import("vue").Extr
|
|
|
24
48
|
type: PropType<string | undefined>;
|
|
25
49
|
default: undefined;
|
|
26
50
|
};
|
|
51
|
+
points: {
|
|
52
|
+
type: PropType<LineChartPoint[] | undefined>;
|
|
53
|
+
default: undefined;
|
|
54
|
+
};
|
|
55
|
+
xAxisLabel: {
|
|
56
|
+
type: PropType<string | undefined>;
|
|
57
|
+
default: undefined;
|
|
58
|
+
};
|
|
59
|
+
yAxisLabel: {
|
|
60
|
+
type: PropType<string | undefined>;
|
|
61
|
+
default: undefined;
|
|
62
|
+
};
|
|
63
|
+
valueFormat: {
|
|
64
|
+
type: PropType<((value: number) => string) | undefined>;
|
|
65
|
+
default: undefined;
|
|
66
|
+
};
|
|
27
67
|
}>> & Readonly<{}>, {
|
|
28
68
|
className: string | undefined;
|
|
29
69
|
title: string | undefined;
|
|
70
|
+
yAxisLabel: string | undefined;
|
|
71
|
+
valueFormat: ((value: number) => string) | undefined;
|
|
72
|
+
points: LineChartPoint[] | undefined;
|
|
73
|
+
xAxisLabel: string | undefined;
|
|
30
74
|
}, SlotsType<{
|
|
31
75
|
default?: () => VNode[];
|
|
32
76
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|