@duckcodeailabs/dql-runtime 0.1.0
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/LICENSE +123 -0
- package/dist/breadcrumb.d.ts +2 -0
- package/dist/breadcrumb.d.ts.map +1 -0
- package/dist/breadcrumb.js +17 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/dashboard-layout.d.ts +6 -0
- package/dist/dashboard-layout.d.ts.map +1 -0
- package/dist/dashboard-layout.js +14 -0
- package/dist/dashboard-layout.js.map +1 -0
- package/dist/data-fetcher.d.ts +16 -0
- package/dist/data-fetcher.d.ts.map +1 -0
- package/dist/data-fetcher.js +18 -0
- package/dist/data-fetcher.js.map +1 -0
- package/dist/dql-runtime.browser.js +571 -0
- package/dist/dql-runtime.browser.min.js +1 -0
- package/dist/dql-runtime.esm.js +549 -0
- package/dist/dql-runtime.esm.js.map +7 -0
- package/dist/filter-manager.d.ts +25 -0
- package/dist/filter-manager.d.ts.map +1 -0
- package/dist/filter-manager.js +140 -0
- package/dist/filter-manager.js.map +1 -0
- package/dist/hot-reload-client.d.ts +2 -0
- package/dist/hot-reload-client.d.ts.map +1 -0
- package/dist/hot-reload-client.js +27 -0
- package/dist/hot-reload-client.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/interactions.d.ts +49 -0
- package/dist/interactions.d.ts.map +1 -0
- package/dist/interactions.js +251 -0
- package/dist/interactions.js.map +1 -0
- package/dist/kpi-renderer.d.ts +4 -0
- package/dist/kpi-renderer.d.ts.map +1 -0
- package/dist/kpi-renderer.js +17 -0
- package/dist/kpi-renderer.js.map +1 -0
- package/dist/table-renderer.d.ts +4 -0
- package/dist/table-renderer.d.ts.map +1 -0
- package/dist/table-renderer.js +39 -0
- package/dist/table-renderer.js.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +29 -0
- package/dist/utils.js.map +1 -0
- package/dist/vega-renderer.d.ts +4 -0
- package/dist/vega-renderer.d.ts.map +1 -0
- package/dist/vega-renderer.js +15 -0
- package/dist/vega-renderer.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAO/C;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKzF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAK7E"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function escapeHTML(str) {
|
|
2
|
+
if (str === null || str === undefined)
|
|
3
|
+
return '';
|
|
4
|
+
return String(str)
|
|
5
|
+
.replace(/&/g, '&')
|
|
6
|
+
.replace(/</g, '<')
|
|
7
|
+
.replace(/>/g, '>')
|
|
8
|
+
.replace(/"/g, '"');
|
|
9
|
+
}
|
|
10
|
+
export function interpolateDatum(template, datum) {
|
|
11
|
+
return template.replace(/\{(\w+)\}/g, (_match, key) => {
|
|
12
|
+
const val = datum[key];
|
|
13
|
+
return val === null || val === undefined ? '' : String(val);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function cleanDatum(datum) {
|
|
17
|
+
const clean = {};
|
|
18
|
+
for (const [k, v] of Object.entries(datum)) {
|
|
19
|
+
if (k !== '_vgsid_' && !k.startsWith('__')) {
|
|
20
|
+
clean[k] = v;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return clean;
|
|
24
|
+
}
|
|
25
|
+
export function getClickedLabel(datum) {
|
|
26
|
+
const keys = Object.keys(datum).filter((k) => k !== '_vgsid_' && !k.startsWith('__') && typeof datum[k] === 'string');
|
|
27
|
+
return keys.length > 0 ? String(datum[keys[0]]) : null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjD,OAAO,MAAM,CAAC,GAAG,CAAC;SACf,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,KAA8B;IAC/E,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAA8B;IACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA8B;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC9E,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vega-renderer.d.ts","sourceRoot":"","sources":["../src/vega-renderer.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IACjB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBjG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class VegaRenderer {
|
|
2
|
+
async render(containerId, spec, data) {
|
|
3
|
+
const fullSpec = { ...spec, data: { values: data } };
|
|
4
|
+
// vegaEmbed is loaded globally from CDN
|
|
5
|
+
const vegaEmbed = globalThis.vegaEmbed;
|
|
6
|
+
if (!vegaEmbed) {
|
|
7
|
+
throw new Error('vega-embed not loaded. Include the Vega-Lite CDN scripts.');
|
|
8
|
+
}
|
|
9
|
+
await vegaEmbed(`#${containerId}`, fullSpec, {
|
|
10
|
+
actions: false,
|
|
11
|
+
renderer: 'svg',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=vega-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vega-renderer.js","sourceRoot":"","sources":["../src/vega-renderer.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACvB,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,IAA6B,EAAE,IAAe;QAC9E,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACrD,wCAAwC;QACxC,MAAM,SAAS,GAAI,UAAiD,CAAC,SAExD,CAAC;QAEd,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,SAAS,CAAC,IAAI,WAAW,EAAE,EAAE,QAAQ,EAAE;YAC3C,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@duckcodeailabs/dql-runtime",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DQL browser runtime: data fetching, Vega rendering, hot-reload client",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./browser": "./dist/dql-runtime.browser.js",
|
|
15
|
+
"./browser/min": "./dist/dql-runtime.browser.min.js",
|
|
16
|
+
"./esm": "./dist/dql-runtime.esm.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/duckcode-ai/dql.git",
|
|
24
|
+
"directory": "packages/dql-runtime"
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"esbuild": "^0.24.0",
|
|
31
|
+
"vitest": "^3.0.0",
|
|
32
|
+
"typescript": "^5.7.0",
|
|
33
|
+
"@types/node": "^22.0.0"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18.0.0"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "rm -rf dist tsconfig.tsbuildinfo && tsc && node build.mjs",
|
|
40
|
+
"build:types": "tsc",
|
|
41
|
+
"build:bundle": "node build.mjs",
|
|
42
|
+
"test": "vitest run --passWithNoTests",
|
|
43
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
44
|
+
}
|
|
45
|
+
}
|