Scrollbar in Vega-Lite for Gantt-Chart - Data Studio - google-data-studio

I'm using Vega-Lite for Data Studio and I've created an interactive Gantt-Chart
Like in the image below :
[gantt-chart sample] https://i.stack.imgur.com/xZ4RA.png
However, I have a lot of data and my chart is limited by fixed height and width. Like this :
[gantt-chart-lots-of-data] https://i.stack.imgur.com/2fFhQ.png
So my question is, how can I add a vertical scrollbar ? Or do I have the possibility to zoom-in/out on y-axis ?
I've already setup the possibility to interact with data (drag, zoom-in/out) by using "selection interval" parameter. I would like to do the same with "tasks" (see example below)
For the example, I've fixed the height to illustrate the fact that my data are tightly packed together.
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Gantt Chart.",
"background" : "#fbfbfb",
"height" : 80,
"data": {
"values": [
{"task": "A", "start": "2021-01-01", "end": "2021-05-01", "landing": "2021-04-01", "metric" : 1},
{"task": "B", "start": "2021-03-01", "end": "2021-08-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "C", "start": "2021-05-01", "end": "2021-07-01", "landing": "2021-04-01", "metric" : 0.7},
{"task": "D", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.3},
{"task": "E", "start": "2021-07-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.2},
{"task": "F", "start": "2021-08-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.1},
{"task": "G", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "H", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "I", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "J", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "K", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "L", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "M", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "N", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "O", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "P", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1},
{"task": "Q", "start": "2021-01-01", "end": "2021-05-01", "landing": "2021-04-01", "metric" : 1},
{"task": "R", "start": "2021-03-01", "end": "2021-08-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "S", "start": "2021-05-01", "end": "2021-07-01", "landing": "2021-04-01", "metric" : 0.7},
{"task": "T", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.3},
{"task": "U", "start": "2021-07-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.2},
{"task": "V", "start": "2021-08-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.1},
{"task": "W", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "X", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "Y", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "Z", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "ZA", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "ZB", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "ZC", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "ZD", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "ZE", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZF", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1}
]
},
"layer": [
{
"mark": {"type": "bar", "tooltip": true},
"encoding": {
"y": {
"title":"task",
"field": "task",
"type": "nominal"
},
"x": {
"timeUnit": "yearmonthdate",
"field": "start",
"type" : "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"x2": {
"timeUnit": "yearmonthdate",
"field": "end",
"type" : "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"color": {
"aggregate": "sum",
"field": "metric",
"type": "quantitative",
"format" : ".2%",
"title":["metric"],
"scale":{
"range": [
"#e57373",
"#ffd54f",
"#81c784"
],
"domain": [0,1]
},
"values" : [0,1],
"legend": {"labelExpr": "[datum.label]*100+\"%\""},
"condition": [
{
"selection": "hover",
"value": "#17c5e8"
}
]
}
},
"selection": {
"hover": {
"type": "single",
"empty": "none",
"on": "mouseover",
"clear": "mouseout"
},
"grid": {
"type": "interval",
"bind": "scales"
}
}
},{
"mark": {
"type": "rule",
"color": "red",
"size": 1,
"tooltip" : true
},
"transform": [
{
"calculate": "now()",
"as": "Today"
}
],
"encoding": {
"x": {
"field": "Today",
"type": "temporal"
}
}
}
]
}
EDIT : I tried the following config, but it doesn't work correctly...
{
"$schema": "https://vega.github.io/schema/vega-lite/v4.json",
"description": "Gantt Chart.",
"background" : "#fbfbfb",
"data": {
"values": [
{"task": "A", "start": "2021-01-01", "end": "2021-05-01", "landing": "2021-04-01", "metric" : 1},
{"task": "B", "start": "2021-03-01", "end": "2021-08-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "C", "start": "2021-05-01", "end": "2021-07-01", "landing": "2021-04-01", "metric" : 0.7},
{"task": "D", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.3},
{"task": "E", "start": "2021-07-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.2},
{"task": "F", "start": "2021-08-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.1},
{"task": "G", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "H", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "I", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "J", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "K", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "L", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "M", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "N", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "O", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "P", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1},
{"task": "Q", "start": "2021-01-01", "end": "2021-05-01", "landing": "2021-04-01", "metric" : 1},
{"task": "R", "start": "2021-03-01", "end": "2021-08-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "S", "start": "2021-05-01", "end": "2021-07-01", "landing": "2021-04-01", "metric" : 0.7},
{"task": "T", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.3},
{"task": "U", "start": "2021-07-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.2},
{"task": "V", "start": "2021-08-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.1},
{"task": "W", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "X", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "Y", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "Z", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "ZA", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "ZB", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "ZC", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "ZD", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "ZE", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZF", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1},
{"task": "ZG", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZH", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "ZI", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "ZJ", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "ZK", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "ZL", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "ZM", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "ZN", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "ZO", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZP", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1},
{"task": "ZQ", "start": "2021-01-01", "end": "2021-05-01", "landing": "2021-04-01", "metric" : 1},
{"task": "ZR", "start": "2021-03-01", "end": "2021-08-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "ZS", "start": "2021-05-01", "end": "2021-07-01", "landing": "2021-04-01", "metric" : 0.7},
{"task": "ZT", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.3},
{"task": "ZU", "start": "2021-07-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.2},
{"task": "ZV", "start": "2021-08-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.1},
{"task": "ZW", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZX", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.5},
{"task": "ZY", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.8},
{"task": "ZZ", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.9},
{"task": "ZZA", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 1},
{"task": "ZZB", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.4},
{"task": "ZZC", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0.3},
{"task": "ZZD", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 0.2},
{"task": "ZZE", "start": "2021-01-01", "end": "2021-03-01", "landing": "2021-04-01", "metric" : 0},
{"task": "ZZF", "start": "2021-02-01", "end": "2021-05-01", "landing": "2021-06-01", "metric" : 1}
]
},
"hconcat": [
{
"width" : 50,
"height" : 150,
"mark": {"type": "bar", "fill": "lightgray"},
"params": [
{
"name": "brush",
"select": {
"type": "interval",
"encodings": ["y"]
}
}
],
"encoding": {
"y": {"field": "task", "type": "nominal"},
"x": {
"field": "start",
"type": "temporal",
"axis": {"tickCount": 3, "grid": false}
},
"x2": {
"field": "end",
"type": "temporal"
}
}
},
{
"width" : 300,
"height" : 150,
"mark": {"type" : "bar", "tooltip" : true},
"encoding": {
"y": {
"field": "task",
"scale": {"domain": {"param": "brush"}},
"axis": {"title": ""}
},
"x": {
"timeUnit": "yearmonthdate",
"field": "start",
"type" : "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"x2": {
"timeUnit": "yearmonthdate",
"field": "end",
"type" : "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"color": {
"aggregate": "sum",
"field": "metric",
"type": "quantitative",
"format" : ".2%",
"title":["metric"],
"scale":{
"range": [
"#e57373",
"#ffd54f",
"#81c784"
],
"domain": [0,1]
},
"values" : [0,1],
"legend": {"labelExpr": "[datum.label]*100+\"%\""},
"condition": [
{
"selection": "hover",
"value": "#17c5e8"
}
]
}
},
"selection": {
"hover": {
"type": "single",
"empty": "none",
"on": "mouseover",
"clear": "mouseout"
},
"grid": {
"type": "interval",
"bind": "scales"
}
}
}
]
}
As the picture in the link below shows, there're overlaping bars... https://i.stack.imgur.com/q75O1.png

Instead of using scale with param, you can provide filter transform and use the params to filter out the 2nd chart data.
Refer the below code or editor:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Gantt Chart.",
"background": "#fbfbfb",
"data": {
"values": [
{
"task": "A",
"start": "2021-01-01",
"end": "2021-05-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "B",
"start": "2021-03-01",
"end": "2021-08-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "C",
"start": "2021-05-01",
"end": "2021-07-01",
"landing": "2021-04-01",
"metric": 0.7
},
{
"task": "D",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.3
},
{
"task": "E",
"start": "2021-07-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.2
},
{
"task": "F",
"start": "2021-08-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.1
},
{
"task": "G",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "H",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "I",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.8
},
{
"task": "J",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.9
},
{
"task": "K",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "L",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.4
},
{
"task": "M",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.3
},
{
"task": "N",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.2
},
{
"task": "O",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "P",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 1
},
{
"task": "Q",
"start": "2021-01-01",
"end": "2021-05-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "R",
"start": "2021-03-01",
"end": "2021-08-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "S",
"start": "2021-05-01",
"end": "2021-07-01",
"landing": "2021-04-01",
"metric": 0.7
},
{
"task": "T",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.3
},
{
"task": "U",
"start": "2021-07-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.2
},
{
"task": "V",
"start": "2021-08-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.1
},
{
"task": "W",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "X",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "Y",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.8
},
{
"task": "Z",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.9
},
{
"task": "ZA",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "ZB",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.4
},
{
"task": "ZC",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.3
},
{
"task": "ZD",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.2
},
{
"task": "ZE",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "ZF",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 1
},
{
"task": "ZG",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "ZH",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "ZI",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.8
},
{
"task": "ZJ",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.9
},
{
"task": "ZK",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "ZL",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.4
},
{
"task": "ZM",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.3
},
{
"task": "ZN",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.2
},
{
"task": "ZO",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "ZP",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 1
},
{
"task": "ZQ",
"start": "2021-01-01",
"end": "2021-05-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "ZR",
"start": "2021-03-01",
"end": "2021-08-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "ZS",
"start": "2021-05-01",
"end": "2021-07-01",
"landing": "2021-04-01",
"metric": 0.7
},
{
"task": "ZT",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.3
},
{
"task": "ZU",
"start": "2021-07-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.2
},
{
"task": "ZV",
"start": "2021-08-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.1
},
{
"task": "ZW",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "ZX",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.5
},
{
"task": "ZY",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.8
},
{
"task": "ZZ",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.9
},
{
"task": "ZZA",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 1
},
{
"task": "ZZB",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.4
},
{
"task": "ZZC",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0.3
},
{
"task": "ZZD",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 0.2
},
{
"task": "ZZE",
"start": "2021-01-01",
"end": "2021-03-01",
"landing": "2021-04-01",
"metric": 0
},
{
"task": "ZZF",
"start": "2021-02-01",
"end": "2021-05-01",
"landing": "2021-06-01",
"metric": 1
}
]
},
"transform": [
{"window": [{"field": "task", "op": "row_number", "as": "taskRow"}]}
],
"hconcat": [
{
"width": 50,
"height": 150,
"mark": {"type": "bar", "fill": "lightgray"},
"params": [
{"name": "brush", "select": {"type": "interval", "encodings": ["y"]}}
],
"encoding": {
"y": {"field": "task", "type": "nominal"},
"x": {
"field": "start",
"type": "temporal",
"axis": {"tickCount": 3, "grid": false}
},
"x2": {"field": "end", "type": "temporal"}
}
},
{
"width": 300,
"height": 150,
"mark": {"type": "bar", "tooltip": true},
"transform": [
{
"filter": "brush.task ? indexof(slice(brush.task,0,5), datum.task) > -1 : datum.taskRow < 6"
}
],
"encoding": {
"y": {"field": "task", "axis": {"title": ""}},
"x": {
"timeUnit": "yearmonthdate",
"field": "start",
"type": "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"x2": {
"timeUnit": "yearmonthdate",
"field": "end",
"type": "temporal",
"axis": {
"tickCount": 12,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%d %b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
},
"tickDash": {
"condition": {
"test": {"field": "value", "timeUnit": "month", "equal": 1},
"value": []
},
"value": [2, 2]
}
}
},
"color": {
"aggregate": "sum",
"field": "metric",
"type": "quantitative",
"format": ".2%",
"title": ["metric"],
"scale": {
"range": ["#e57373", "#ffd54f", "#81c784"],
"domain": [0, 1]
},
"values": [0, 1],
"legend": {"labelExpr": "[datum.label]*100+\"%\""},
"condition": [{"selection": "hover", "value": "#17c5e8"}]
}
},
"selection": {
"hover": {
"type": "single",
"empty": "none",
"on": "mouseover",
"clear": "mouseout"
},
"grid": {"type": "interval", "bind": "scales"}
}
}
]
}
If 5 selections are not required then change the filter to:
{
"filter": "brush.task ? indexof(brush.task, datum.task) > -1 : datum.taskRow < 6"
}

Related

PowerShell --- Get Unique Values from PSCustomObject Array

[{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1#test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
},
{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1#test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
},
{
"UserDisplayName": "Test2 User2",
"UserPrincipalName": "TestUser2#test.com",
"License": "Basic",
"UserEmail": "TestUser2#test.com",
},
{
"UserDisplayName": "Test3 User3",
"UserPrincipalName": "TestUser3#test.com",
"License": "Basic",
"UserEmail": "TestUser3#test.com",
},
{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1#test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
},
{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1#test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
},
{
"UserDisplayName": "Test2 User2",
"UserPrincipalName": "TestUser2#test.com",
"License": "Basic",
"UserEmail": "TestUser2#test.com",
},
{
"UserDisplayName": "Test3 User3",
"UserPrincipalName": "TestUser3#test.com",
"License": "Basic",
"UserEmail": "TestUser3#test.com",
},
{
"UserDisplayName": "Test2 User2",
"UserPrincipalName": "TestUser2#test.com",
"License": "Basic",
"UserEmail": "TestUser2#test.com",
},
{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1#test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
}]
Here the PSCustomObject array and i want to get list of unique objects in PSCustomObject array, can any one helpme on this?
Here is my expected Output
{
"UserDisplayName": "Test1 User1",
"UserPrincipalName": "TestUser1test.com",
"License": "Basic",
"UserEmail": "TestUser1#test.com",
},
{
"UserDisplayName": "Test2 User2",
"UserPrincipalName": "TestUser2#test.com",
"License": "Basic",
"UserEmail": "TestUser2#test.com",
},
{
"UserDisplayName": "Test3 User3",
"UserPrincipalName": "TestUser3#test.com",
"License": "Basic",
"UserEmail": "TestUser3#test.com",
},
You can use Sort-Object -Unique to sort the data according to some property and only keep objects with distinct values (for that property):
$sortedUnique = $array |Sort-Object UserPrincipalName -Unique

Nx shared asset library

I want my React app in my Nx monorepo to retrieve all the assets in my asset library called common-assets.
I managed to do it with my NextJS app like so :
project.json of my NextJS app
{
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/clients",
"projectType": "application",
"implicitDependencies": ["common-assets"],
"targets": {
"build": {
"executor": "#nrwl/next:build",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"root": "apps/clients",
"outputPath": "dist/apps/clients",
"assets": [
{
"input": "libs/common/assets/src/lib",
"glob": "**/*",
"output": "assets"
}
]
},
...
}
I tried to do the exact same thing for my react App by modifying the asset key in the project.json
project.json of my React app :
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/sellers/src",
"projectType": "application",
"implicitDependencies": ["common-assets"],
"targets": {
"build": {
"executor": "#nrwl/web:webpack",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"compiler": "babel",
"outputPath": "dist/apps/sellers",
"index": "apps/sellers/src/index.html",
"baseHref": "/",
"main": "apps/sellers/src/main.tsx",
"polyfills": "apps/sellers/src/polyfills.ts",
"tsConfig": "apps/sellers/tsconfig.app.json",
"assets": [
"apps/sellers/src/favicon.ico",
"apps/sellers/src/assets",
{
"input": "libs/common/assets/src/lib",
"glob": "**/*",
"output": "src/assets"
}
],
"styles": ["apps/sellers/src/styles.scss"],
"scripts": [],
"webpackConfig": "#nrwl/react/plugins/webpack"
},
"configurations": {
"development": {
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true
},
"production": {
"fileReplacements": [
{
"replace": "apps/sellers/src/environments/environment.ts",
"with": "apps/sellers/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false
}
}
},
"serve": {
"executor": "#nrwl/web:dev-server",
"defaultConfiguration": "development",
"options": {
"buildTarget": "sellers:build",
"hmr": true
},
"configurations": {
"development": {
"buildTarget": "sellers:build:development"
},
"production": {
"buildTarget": "sellers:build:production",
"hmr": false
}
}
},
"lint": {
"executor": "#nrwl/linter:eslint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/sellers/**/*.{ts,tsx,js,jsx}"]
}
},
"test": {
"executor": "#nrwl/jest:jest",
"outputs": ["coverage/apps/sellers"],
"options": {
"jestConfig": "apps/sellers/jest.config.ts",
"passWithNoTests": true
}
}
},
"tags": []
}
But it's not working...
I kept assets into image folder and
"assets": [
"apps/boost/src/favicon.ico",
"apps/boost/src/assets",
{
"input": "libs/common-assets/assets/src/lib/images",
"glob": "**/*",
"output": "assets"
}
],
I'm able to use it into other project as well
<img alt="logo" src="/assets/logo.png" />
Do this:
{
"input": "./libs/common-assets/src/lib/images",
"glob": "**/*",
"output": "/assets/"
}
Then access it with:
<img alt="logo" src="assets/logo.png" />

expo build failed ENOENT

Facing this error after calling expo build:android.
Can anyone check what's the issue ? I'm using windows 8 OS and yarn.
app.json
"expo": {
"name": "GTechApp",
"slug": "GTechApp",
"version": "1.0.0",
"icon": "./assets/images/icons/logo.png",
"platforms": [
"ios",
"android",
"web"
],
"assetBundlePatterns": [
"**/*"
],
"ios": {
"bundleIdentifier": "com.gtech.gtechapp",
"buildNumber": "1.0.0",
},
"android": {
"package": "com.gtech.gtechapp",
"versionCode": 1,
"icon": "./assets/images/icons/logo.png"
}
}
Thanks for the help.

Split large json file by arrays

I have a large JSON file aprox 30 GB, the schema can be observed below.
{
"AdresseList": {
"type": "array",
"items": {
"description": "EAID_6043F4D9_C4CA_44d0_BE88_027166A8B008",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"adressebetegnelse": {
"description": "EAID_BB398854_F92E_4372_A20A_D7136BB5CD9C",
"type": ["string",
"null"]
},
"dørbetegnelse": {
"description": "EAID_16B39B2F_0D4D_45ca_8164_8E1D78D202FC",
"type": ["string",
"null"]
},
"dørpunkt": {
"description": "EAID_2E77B0C3_49AF_47b0_AD4E_DD653B99FD0B",
"type": ["string",
"null"]
},
"etagebetegnelse": {
"description": "EAID_805BB835_641D_49d5_93E6_80C8E3FFD91C",
"type": ["string",
"null"]
},
"bygning": {
"description": "EAID_dst4A2C09_8035_4ca8_8AA0_CBAAB89AF135",
"type": ["string",
"null"]
},
"husnummer": {
"description": "EAID_src6919CB_1734_44ef_BE5B_C115B637B2CD",
"type": ["string",
"null"]
}
}
}
},
"AdressepunktList": {
"type": "array",
"items": {
"description": "EAID_00A7AF01_C512_4a85_ADB5_98FB15541948",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"id_lokalId
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"oprindelse_kilde": {
"description": "EAID_B9AAE6C5_974D_4d20_BABA_C62874774F4B.EAID_FD77FC95_714B_4779_B7FA_F9BBAB41758D",
"type": ["string",
"null"]
},
"oprindelse_nøjagtighedsklasse": {
"description": "EAID_B9AAE6C5_974D_4d20_BABA_C62874774F4B.EAID_B8A27494_DF27_4aa9_B1F4_EBD68D2479A5",
"type": ["string",
"null"]
},
"oprindelse_registrering": {
"description": "EAID_B9AAE6C5_974D_4d20_BABA_C62874774F4B.EAID_10DCC555_0BE9_4991_AD8C_DEA595CB08A0",
"type": ["string",
"null"],
"format": "date-time"
},
"oprindelse_tekniskStandard": {
"description": "EAID_B9AAE6C5_974D_4d20_BABA_C62874774F4B.EAID_181528AD_2DA3_4e9d_BF38_81916A924D2A",
"type": ["string",
"null"]
},
"position": {
"description": "EAID_4B062EDE_CE8C_414b_AB85_B5A1FD72AA78",
"type": ["string",
"null"]
}
}
}
},
"HusnummerList": {
"type": "array",
"items": {
"description": "EAID_D0A626FC_CCAE_4209_B2F6_AC919B74A528",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"adgangsadressebetegnelse": {
"description": "EAID_EDCC14FC_63ED_4ebe_8B52_3E406831A148",
"type": ["string",
"null"]
},
"adgangspunkt": {
"description": "EAID_E3A37E0C_D0D8_4c30_BBD5_2F26F7A24591",
"type": ["string",
"null"]
},
"husnummerretning": {
"description": "EAID_1A906922_EFAC_4182_AA8C_08332D52C6EE",
"type": ["string",
"null"]
},
"husnummertekst": {
"description": "EAID_83A4C230_5C5A_4ffb_B136_0315DD9F8DBE",
"type": ["string",
"null"]
},
"vejpunkt": {
"description": "EAID_F6BAEBD6_0306_4641_9DEA_C1441D986AFB",
"type": ["string",
"null"]
},
"jordstykke": {
"description": "EAID_dst052F4B_D60C_4ccd_BAE5_6BCED78FE40C",
"type": ["string",
"null"]
},
"placeretPåForeløbigtJordstykke": {
"description": "EAID_dstC82C82_CC9D_4d7d_9B8A_8F4A1ADFB5AE",
"type": ["string",
"null"]
},
"geoDanmarkBygning": {
"description": "EAID_dst3C28C5_D640_4bc0_9014_FDC7CBF30581",
"type": ["string",
"null"]
},
"adgangTilBygning": {
"description": "EAID_dst3E4349_6115_4191_AF4F_243CCE561C41",
"type": ["string",
"null"]
},
"adgangTilTekniskAnlæg": {
"description": "EAID_dst79A4C1_23B2_4c0c_85CC_60C6E2EA5AE0",
"type": ["string",
"null"]
},
"vejmidte": {
"description": "EAID_dstC9842D_CF82_4dc5_8114_3FF7AEF90C17",
"type": ["string",
"null"]
},
"afstemningsområde": {
"description": "EAID_dstB6088D_EE9E_451c_8070_088AA4520FA6",
"type": ["string",
"null"]
},
"kommuneinddeling": {
"description": "EAID_dst714AB4_FE21_446f_BEE5_7AE65691A45B",
"type": ["string",
"null"]
},
"menighedsrådsafstemningsområde": {
"description": "EAID_dst08DF20_7055_4542_8D3D_F8FCCD9A7125",
"type": ["string",
"null"]
},
"sogneinddeling": {
"description": "EAID_dst0864F0_E380_4aa6_A644_25974107FC47",
"type": ["string",
"null"]
},
"supplerendeBynavn": {
"description": "EAID_dstF5C960_23DB_454c_A8A8_41B231DF61C7",
"type": ["string",
"null"]
},
"navngivenVej": {
"description": "EAID_dst74C4B5_0F0F_4a51_B317_BA74938B605F",
"type": ["string",
"null"]
},
"postnummer": {
"description": "EAID_dst3F5BA7_EB6C_47a2_AC4B_90C72D4F3585",
"type": ["string",
"null"]
}
}
}
},
"NavngivenVejList": {
"type": "array",
"items": {
"description": "EAID_0CB629B5_8D1F_486c_A319_717EDF879B82",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"administreresAfKommune": {
"description": "EAID_31D3BE04_2F70_4092_8381_5517A5543634",
"type": ["string",
"null"]
},
"beskrivelse": {
"description": "EAID_C132D872_7F07_4ebf_BC6B_37049F2E5EB8",
"type": ["string",
"null"]
},
"udtaltVejnavn": {
"description": "EAID_788F8478_A747_412d_9DE6_FEE0DB4C1BFA",
"type": ["string",
"null"]
},
"vejadresseringsnavn": {
"description": "EAID_9621DD9D_50E3_4426_AB5A_A5E43DED4B05",
"type": ["string",
"null"]
},
"vejnavn": {
"description": "EAID_CA00150C_5B5C_4c32_AE72_A7EE5AEDE015",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_oprindelse_kilde": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_7F8EB510_AD02_4fd5_844B_C9AB17FB1798.EAID_FD77FC95_714B_4779_B7FA_F9BBAB41758D",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_oprindelse_nøjagtighedsklasse": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_7F8EB510_AD02_4fd5_844B_C9AB17FB1798.EAID_B8A27494_DF27_4aa9_B1F4_EBD68D2479A5",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_oprindelse_registrering": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_7F8EB510_AD02_4fd5_844B_C9AB17FB1798.EAID_10DCC555_0BE9_4991_AD8C_DEA595CB08A0",
"type": ["string",
"null"],
"format": "date-time"
},
"vejnavnebeliggenhed_oprindelse_tekniskStandard": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_7F8EB510_AD02_4fd5_844B_C9AB17FB1798.EAID_181528AD_2DA3_4e9d_BF38_81916A924D2A",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_vejnavnelinje": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_93C24B4D_0641_4073_B260_1EC7F2024CF4",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_vejnavneområde": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_1C496CD9_4541_4574_974D_B641F186077F",
"type": ["string",
"null"]
},
"vejnavnebeliggenhed_vejtilslutningspunkter": {
"description": "EAID_4C594A8E_797B_40bb_B60D_0E5C9159DCD3.EAID_C3E042F2_A66E_40f4_92A1_7C7024A30D16",
"type": ["string",
"null"]
}
}
}
},
"NavngivenVejKommunedelList": {
"type": "array",
"items": {
"description": "EAID_34D070E5_DD89_4984_8054_16BA70936EA0",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"kommune": {
"description": "EAID_0A04B5E9_9F12_49cb_B2AF_AFEE0315AE2B",
"type": ["string",
"null"]
},
"vejkode": {
"description": "EAID_852A683F_3E30_4009_A003_B3C8F6F76930",
"type": ["string",
"null"]
},
"navngivenVej": {
"description": "EAID_dstE87A3E_ECA3_4f38_A586_117287E4754A",
"type": ["string",
"null"]
}
}
}
},
"NavngivenVejPostnummerList": {
"type": "array",
"items": {
"description": "EAID_EA75B9ED_59CD_4d67_A340_A1CB578CC1B7",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"navngivenVej": {
"description": "EAID_1B3CAEB0_80FA_486f_ABD1_818B332C905C",
"type": ["string",
"null"]
},
"postnummer": {
"description": "EAID_AD2844E3_7F05_4d8d_967E_44BA3D12C4B4",
"type": ["string",
"null"]
}
}
}
},
"NavngivenVejSupplerendeBynavnList": {
"type": "array",
"items": {
"description": "EAID_5F14BDC8_7D97_433b_B28D_F8A56A1B9F13",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"navngivenVej": {
"description": "EAID_7CF789EC_31C0_4af3_B75B_77674A26DECD",
"type": ["string",
"null"]
},
"supplerendeBynavn": {
"description": "EAID_21C0B8C7_8B67_406c_BDC1_21ADBA284867",
"type": ["string",
"null"]
}
}
}
},
"PostnummerList": {
"type": "array",
"items": {
"description": "EAID_449B3570_F0F7_494e_9756_D49E60644CD0",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"navn": {
"description": "EAID_9E7FA46D_52D9_4615_B24C_599BB28D1923",
"type": ["string",
"null"]
},
"postnr": {
"description": "EAID_8F8BACBF_E985_4dc1_BCF4_27F5C3FD0BB1",
"type": ["string",
"null"]
},
"postnummerinddeling": {
"description": "EAID_E5F5DDF9_3CF4_4304_B02D_E67AB0CDD619",
"type": ["string",
"null"]
}
}
}
},
"SupplerendeBynavnList": {
"type": "array",
"items": {
"description": "EAID_9D39B21D_E73C_4f1b_9C6C_B75412DAAD77",
"type": "object",
"properties": {
"forretningshændelse": {
"description": "EAID_1CE948DD_FC3D_4638_8913_A2D35A00F64D",
"type": ["string",
"null"]
},
"forretningsområde": {
"description": "EAID_C955CFEC_E2A0_47da_9F76_6452FCC9E4E2",
"type": ["string",
"null"]
},
"forretningsproces": {
"description": "EAID_A9A40479_E58D_4c7a_A0EA_F8EC4829ECAC",
"type": ["string",
"null"]
},
"id_namespace": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_6CEB0356_5CBF_4159_B96B_A2489DD2DAC8",
"type": ["string",
"null"]
},
"id_lokalId": {
"description": "EAID_D273E3D8_A3F4_41bc_AF9C_E67B4A29C008.EAID_9AB90AE0_9F85_4164_9B25_8EB2139D65A5",
"type": ["string",
"null"]
},
"registreringFra": {
"description": "EAID_96862BAA_95CA_46aa_A6A0_757327A10BF7",
"type": ["string",
"null"],
"format": "date-time"
},
"registreringsaktør": {
"description": "EAID_9F724D2B_7763_4997_8C85_580610BABC1F",
"type": ["string",
"null"]
},
"registreringTil": {
"description": "EAID_301BF58F_26E7_4d1f_B7B6_3881F8C1B0A5",
"type": ["string",
"null"],
"format": "date-time"
},
"status": {
"description": "EAID_22AF1E6A_73A8_4c89_96EB_C307235DFD19",
"type": ["string",
"null"]
},
"virkningFra": {
"description": "EAID_AB768062_FD24_4960_8AA1_C6BFF90C00C5",
"type": ["string",
"null"],
"format": "date-time"
},
"virkningsaktør": {
"description": "EAID_8E60197F_D857_47c6_8611_75B63D0940FD",
"type": ["string",
"null"]
},
"virkningTil": {
"description": "EAID_3058C5FD_9824_48ba_B62C_C24587BF6537",
"type": ["string",
"null"],
"format": "date-time"
},
"navn": {
"description": "EAID_8359992A_59C4_48c4_981D_7A42F20CA168",
"type": ["string",
"null"]
},
"supplerendeBynavn": {
"description": "EAID_C6722E9B_EF6C_425d_9373_A933C01A6A64",
"type": ["string",
"null"]
}
}
}
}
}
I would like to split this large document into a file for each array but I couldn't find a method, I tried to make a bash script using jq but with no succes, the script can also be seen below
for f in $(jq -r 'keys[]') ; do
jq ".[\"$f\"]" < input.json > "$f.json"
done < input.json
Does somebody know a way for spliting the file with bash or any other methods?
You can use a simple python3 script:
import json
json_file = open('file.json')
parsed = json.load(json_file)
for key, value in parsed.items():
new_json = open(key + '.json', 'a')
new_json.write(json.dumps(value))
new_json.close()
json_file.close()

Chrome-debugger requires authorization after launching

I used create-react-app to create new react application. I have not changed absolutely anything except for adding configuration "Chrome-launch" into launch.json. After debug launching it always requires some authorization. According to chrome.debugger documentation I added to manifest.json this:
"permissions": [ "debugger"]
But it did not help. Now I have no idea how to get through it. Please, could someone give me a hint how to launch chrome-debugger without any authorization?
I have used this debugger many times in the past and it never required authorization, I have no idea what has changed.
Behaviour in the browser:
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
manifest.json:
{
"short_name": "React App",
"name": "Create React App Sample",
"permissions": [
"debugger"
],
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
package.json:
{
"name": "kinosal",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-scripts": "3.1.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

Resources