1import define1 from "./[email protected]"; 2import define2 from "./[email protected]"; 3 4function _1(md){return( 5md`# Konjunkturampel 6## Entwicklung des Konjunkturklimaindex` 7)} 8 9function _title(htl,farbeAktuell,monat,jahr,econclimateDiff,econclimate,econclimateLag,aktuellDiff,aktuell,erwartetDiff,erwartet){return( 10htl.html` 11<h2> WIFO-Konjunkturampel zeigt "${farbeAktuell}"</h2> 12<p> Die Ergebnisse des WIFO-Konjunkturtests vom ${monat} ${jahr} zeigen eine ${econclimateDiff > 0 ? "Verbesserung" : "Verschlechterung"} der unternehmerischen Konjunktureinschätzungen, die weiterhin mehrheitlich ${econclimate > 0 ? "optimistisch" : "pessimistisch"} ausfallen. Der WIFO-Konjunkturklimaindex notierte mit ${econclimate.toString().replace(".", ",")} Punkten (saisonbereinigt) um ${econclimateDiff.toString().replace(".", ",")} Punkte ${econclimateDiff > 0 ? "über" : "unter"} dem Wert des Vormonats (${econclimateLag.toString().replace(".", ",")} Punkte). Die gesamtwirtschaftlichen Lagebeurteilungen ${aktuellDiff > 1 ? "verbesserten sich" : aktuellDiff < -1 ? "verschlechterten sich" : "stagnierten"} (${aktuellDiff.toString().replace(".", ",")} Punkte) und blieben mit ${aktuell.toString().replace(".", ",")} Punkten unter der Nulllinie. Die Konjunkturerwartungen ${erwartetDiff > 0 ? "verbesserten" : "verschlechterten"} sich (${erwartetDiff.toString().replace(".", ",")} Punkte) und notierten mit ${erwartet.toString().replace(".", ",")} Punkten im ${erwartet > 0 ? "positiven" : "negativem"} Bereich. Das ${econclimateDiff > 0 ? "opimistische" : "skeptische"} Konjunkturbild wird nach wie vor von der schwachen Industriekonjunktur bestimmt. Die WIFO-Konjunkturampel zeigt "${farbeAktuell}" und signalisiert damit eine ${econclimateDiff > 0 ? "Verbesserung" : "Verschlechterung"} der unternehmerischen Konjunktureinschätzungen. </p> 13<a class="tag dark hollow" style="max-width: fit-content; margin-bottom: 12px;" href="https://www.wifo.ac.at/wp-content/uploads/upload-8948/WIFO-Konjunkturampel.pdf" target="_blank" rel="noopener">PDF-Download</a> 14` 15)} 16 17function _timeLabel(htl,d3,formatDate,start,slider){return( 18htl.html`<label style="margin-left: 12px;"> ${d3.timeFormat(formatDate(d3.timeMonth.offset(start, slider[0])))} â¶ ${formatDate(d3.timeMonth.offset(start, slider[1] +1))} <label>` 19)} 20 21function _slider(rangeSlider,d3,start,end,formatDate,makeWidth,width){return( 22rangeSlider({ 23 min: 0, 24 max: d3.timeMonth.count(start, end - 1), 25 step: 1, 26 format: d => formatDate(d3.timeMonth.offset(start, d)), 27 value: [ 28 d3.timeMonth.count(start, end) - 36, 29 d3.timeMonth.count(start, end) 30 ], 31 width: makeWidth(width) * 1.2, 32 title: "", 33 separator: " â ", 34 color: "#2d5b5e", 35}) 36)} 37 38function _view(vl,bars,lines,quantiles,heatmap,makeWidth,width,boxplot,dummyLayer1,dummyLayer2,dummyLayer3,dummyLayer4,points,data,config){return( 39vl.hconcat( 40 vl.layer( 41 bars, 42 lines, 43 quantiles, 44 heatmap 45 ) 46 .width(makeWidth(width)) 47 .height(300), 48 vl.layer( 49 boxplot, 50 dummyLayer1, 51 dummyLayer2, 52 dummyLayer3, 53 dummyLayer4, 54 points, 55 ) 56 .width(50), 57 ) 58 .data(data) 59 .config(config) 60 .render({ renderer: "svg" }) 61)} 62 63function _6(md){return( 64md`--- 65# Appendix` 66)} 67 68async function _formatDateYMD(d3) 69{ 70 const locale = await d3.json("https://data-science.wifo.ac.at/observable/libs/de-DE.json"); 71 d3.timeFormatDefaultLocale(locale); 72 return d3.timeFormat("%Y-%m-%d") 73} 74 75 76async function _formatDate(d3) 77{ 78 const locale = await d3.json("https://data-science.wifo.ac.at/observable/libs/de-DE.json"); 79 d3.timeFormatDefaultLocale(locale); 80 return d3.timeFormat("%b %Y") 81} 82 83 84function _timeStartPlusOne(parseDate,formatDateYMD,d3,start,slider){return( 85parseDate(formatDateYMD(d3.timeMonth.offset(start, slider[0] + 1))) 86)} 87 88function _timeStartMinusOne(parseDate,formatDateYMD,d3,start,slider){return( 89parseDate(formatDateYMD(d3.timeMonth.offset(start, slider[0] - 2))) 90)} 91 92function _timeEndPlusOne(parseDate,formatDateYMD,d3,start,slider){return( 93parseDate(formatDateYMD(d3.timeMonth.offset(start, slider[1] + 2))) 94)} 95 96function _timeStart(parseDate,formatDateYMD,d3,start,slider){return( 97parseDate(formatDateYMD(d3.timeMonth.offset(start, slider[0] - 1))) 98)} 99 100function _timeEnd(parseDate,formatDateYMD,d3,start,slider){return( 101parseDate(formatDateYMD(d3.timeMonth.offset(start, slider[1] + 1))) 102)} 103 104function _end(parseDate,inputData){return( 105parseDate(inputData.map(d => d.date)[[inputData.map(d => d.date).length - 1]].substring(0, 10)) 106)} 107 108function _start(parseDate,inputData){return( 109parseDate(inputData.map(d => d.date)[0].substring(0, 10)) 110)} 111 112function _parseDate(d3){return( 113d3.timeParse("%Y-%m-%d") 114)} 115 116function _dummyLayer4(vl,data){return( 117vl.markPoint({ 118 fill: "transparent", 119 stroke: "transparent", 120 shape: "square", 121 size: 5500, 122 yOffset: -110 123}) 124.encode( 125 vl.tooltip([ 126 null 127 ]), 128 ) 129.data(data) 130)} 131 132function _dummyLayer3(vl,data){return( 133vl.markPoint({ 134 fill: "transparent", 135 stroke: "transparent", 136 shape: "square", 137 size: 5500, 138 yOffset: -35 139}) 140.encode( 141 vl.tooltip([ 142 null 143 ]), 144 ) 145.data(data) 146)} 147 148function _dummyLayer2(vl,data){return( 149vl.markPoint({ 150 fill: "transparent", 151 stroke: "transparent", 152 shape: "square", 153 size: 5500, 154 yOffset: 35 155}) 156.encode( 157 vl.tooltip([ 158 null 159 ]), 160 ) 161.data(data) 162)} 163 164function _dummyLayer1(vl,data){return( 165vl.markPoint({ 166 fill: "transparent", 167 stroke: "transparent", 168 shape: "square", 169 size: 5500, 170 yOffset: 110 171}) 172.encode( 173 vl.tooltip([ 174 null 175 ]), 176 ) 177.data(data) 178)} 179 180function _title_en(htl,farbeAktuell,monat,jahr,econclimateDiff,econclimate,econclimateLag,aktuellDiff,aktuell,erwartetDiff,erwartet){return( 181htl.html` 182<h2>WIFO Economic Climate Index Shows "${farbeAktuell}"</h2> 183<p>The results of the WIFO Economic Survey from ${monat} ${jahr} indicate a ${econclimateDiff > 0 ? "improvement" : "deterioration"} in business economic assessments, which remain predominantly ${econclimate > 0 ? "optimistic" : "pessimistic"}. The WIFO Economic Climate Index recorded ${econclimate.toString().replace(".", ",")} points (seasonally adjusted), which is ${econclimateDiff.toString().replace(".", ",")} points ${econclimateDiff > 0 ? "above" : "below"} the previous month's value (${econclimateLag.toString().replace(".", ",")} points). Overall economic assessments ${aktuellDiff > 1 ? "improved" : aktuellDiff < -1 ? "deteriorated" : "stagnated"} (${aktuellDiff.toString().replace(".", ",")} points) and remained below the zero line at ${aktuell.toString().replace(".", ",")} points. Economic expectations ${erwartetDiff > 0 ? "improved" : "deteriorated"} (${erwartetDiff.toString().replace(".", ",")} points) and recorded ${erwartet.toString().replace(".", ",")} points in the ${erwartet > 0 ? "positive" : "negative"} range. The ${econclimateDiff > 0 ? "optimistic" : "skeptical"} economic outlook continues to be influenced by the weak industrial economy. The WIFO Economic Climate Index shows "${farbeAktuell}" and thus signals a ${econclimateDiff > 0 ? "improvement" : "deterioration"} in business economic assessments.</p> 184<a class="tag dark hollow" style="max-width: fit-content; margin-bottom: 12px;" href="https://www.wifo.ac.at/wp-content/uploads/upload-8948/WIFO-Konjunkturampel.pdf" target="_blank" rel="noopener">PDF Download</a> 185` 186)} 187
188function _data(inputData,parseDate,slider,timeStartMinusOne,timeEndPlusOne,timeEnd){return( 189inputData 190 .map(d => ({...d , ampelColor: 191 d.ampel >= 0.66 ? 192 "Grün" : 193 d.ampel >= 0.33 ? 194 "Gelb" : 195 "Rot" 196 })) 197 .map(d => ({...d , ampelHex: 198 d.ampel >= 0.66 ? 199 "#72bb6f" : 200 d.ampel >= 0.33 ? 201 "#f3d039" : 202 "#c3423f" 203 })) 204 .map(d => ({...d , date: d.date.substr(0, 10)})) 205 .map(d => ({...d , date15: d.date.substr(0, 8) + "15"})) 206 .map(d => ({...d , month: parseDate(d.date.substring(0, 10))})) 207 .map(d => ({...d , econclimate: +d.econclimate})) 208 .filter(d => slider[0] == slider[1] ? d.month >= timeStartMinusOne: d.month >= timeStartMinusOne) 209 .filter(d => slider[0] == slider[1] ? d.month <= timeEndPlusOne : d.month <= timeEnd) 210 // .filter(d => d.date.substr(0,4) >= range[0]) 211 // .filter(d => d.date.substr(0,4) <= range[1]) 212 .map(d => ({...d , zero: -20})) 213)} 214 215function _bars(vl,brush){return( 216vl.markRect({ 217 strokeWidth: 0, 218 stroke: "black", 219 opacity: 1, 220 clip: true, 221}) 222 .params(brush) 223 .transform( 224 vl.window(vl.lag("date15").as("dateLag")).frame([-1,0]), 225 ) 226 .encode( 227 vl.x() 228 .fieldT("date15") 229 .axis({ 230 title: null, 231 format: "%b %y", 232 grid: false, 233 }), 234 vl.x2() 235 .fieldT("dateLag"), 236 vl.fill() 237 .fieldN("ampelColor") 238 .scale({ 239 range: ["#72bb6f", "#f3d039", "#c3423f"], 240 domain: ["Grün", "Gelb", "Rot"], 241 }) 242 .legend({ 243 padding: 6, 244 title: null, // "Prognostizierte Entwicklung", 245 titleOffset: 10, 246 symbolOffset: 16, 247 labelOffset: 4, 248 symbolStrokeWidth: 0, 249 symbolOpacity: 1, 250 orient: "none", 251 legendX: -70, 252 legendY: -40, 253 direction: "horizontal", 254 labelExpr: "{'Grün': 'Grün: Verbesserung', 'Gelb': 'Gelb: Indifferenzbereich', 'Rot': 'Rot: Verschlechterung'}[datum.value]" 255 }), 256 vl.opacity() 257 .if(brush, 0.2) 258 .value(0.5), 259 vl.tooltip([ 260 {field: "econclimate", title: "Index", format: ",.1~f" }, 261 {field: "date", type: "temporal", title: "Monat", format: "%b %Y" } 262 ]) 263 ) 264)} 265 266function _brush(vl){return( 267vl.selectPoint("brush") 268 .encodings("x") 269 .on("mouseover") 270 .nearest(true) 271 .value([""]) 272)} 273 274function _quantiles(vl,d3,data){return( 275vl.markRule({ 276 strokeDash: [5, 5] 277}) 278 .encode( 279 vl.y() 280 .fieldQ("quantile") 281 ) 282 .data([ 283 {quantile: d3.quantile(data.map(d => d.econclimate), 0.75)}, 284 {quantile: d3.quantile(data.map(d => d.econclimate), 0.50)}, 285 {quantile: d3.quantile(data.map(d => d.econclimate), 0.25)}, 286 ]) 287)} 288 289function _points(vl,brush){return( 290vl.markPoint({ 291 fill: "gray", 292 stroke: "black", 293 opacity: 0.5, 294 size: 30, 295 strokeWidth: 5, 296 strokeOpacity: 1, 297}) 298 .transform( 299 vl.calculate('random()').as('jitter') 300 ) 301 .encode( 302 vl.y() 303 .fieldQ("econclimate") 304 .scale({ 305 padding: 25 306 }), 307 vl.x() 308 .fieldQ("jitter") 309 .axis(null), 310 vl.tooltip(null), 311 // vl.stroke() 312 // .if(brush, "black") 313 // .value("transparent"), 314 vl.strokeWidth() 315 .if(brush, 5) 316 .value(0) 317 ) 318)} 319 320function _heatmap(vl,lengthData,brush){return( 321vl.markPoint({ 322 // y: -20, 323 yOffset: -30, 324 clip: true, 325 stroke: "black", 326 strokeWidth: 1.25, 327 size: 600, 328 xOffset: - (1 / lengthData) * 380, 329 opacity: 1, 330 shape: "arrow" 331}) 332// .params(brush) 333 .encode( 334 vl.x() 335 .fieldT("date15"), 336 vl.y() 337 .fieldQ("econclimate"), 338 vl.fill() 339 .fieldN("ampelColor") 340 .scale({ 341 range: ["#72bb6f", "#f3d039", "#c3423f"], 342 domain: ["Grün", "Gelb", "Rot"], 343 }), 344 vl.opacity() 345 .if(brush) 346 .value(0), 347 vl.angle() 348 .fieldN("ampelColor") 349 .scale({ 350 range: [30, 150], 351 domain: ["Grün", "Gelb", "Rot"], 352 }), 353 ) 354)} 355 356function _aktuell(inputData,lengthInputData){return( 357Math.round(inputData.map(d => d.aktuell)[lengthInputData - 1] * 10) / 10 358)} 359 360function _aktuellDiff(inputData,lengthInputData){return( 361Math.round(inputData.map(d => d.aktuell)[lengthInputData - 1] * 10 - inputData.map(d => d.aktuell)[lengthInputData - 2] * 10) / 10 362)} 363 364function _erwartet(inputData,lengthInputData){return( 365Math.round(inputData.map(d => d.erwartet)[lengthInputData - 1] * 10) / 10 366)} 367 368function _erwartetDiff(inputData,lengthInputData){return( 369Math.round(inputData.map(d => d.erwartet)[lengthInputData - 1] * 10 - inputData.map(d => d.erwartet)[lengthInputData - 2] * 10) / 10 370)} 371 372function _econclimate(inputData,lengthInputData){return( 373Math.round(inputData.map(d => d.econclimate)[lengthInputData - 1] * 10) / 10 374)} 375 376function _econclimateDiff(inputData,lengthInputData){return( 377Math.round(inputData.map(d => d.econclimate)[lengthInputData - 1] * 10 - inputData.map(d => d.econclimate)[lengthInputData - 2] * 10) / 10 378)} 379 380function _econclimateLag(inputData,lengthInputData){return( 381Math.round(inputData.map(d => d.econclimate)[lengthInputData - 2] * 10) / 10 382)} 383 384function _farbeAktuell(inputData){return( 385inputData[inputData.length - 1].ampel >= 0.66 ? 386 "Grün" : 387 inputData[inputData.length - 1].ampel > 0.33 ? 388 "Gelb" : 389 "Rot" 390)} 391 392function _monat(monate,inputData,lengthInputData){return( 393monate[Number(inputData.map(d => d.date)[lengthInputData - 1].substr(5, 2))-1] 394)} 395 396function _jahr(inputData,lengthInputData){return( 397Number(inputData.map(d => d.date)[lengthInputData - 1].substr(0,4)) 398)} 399 400function _39(end){return( 401new Date(end - 600000000000) 402)} 403 404function _ticks(lengthData,data){return( 405lengthData < 60 ? 406 data.filter((d, i) => i % 3 == 2).map(d => d.date) : 407 data.filter((d, i) => i % 6 == 2).map(d => d.date) 408)} 409 410function _41(slider){return( 411slider[0] + (slider[1] - slider[0]) 412)} 413 414function _lines(vl,formatDateYMD,timeStart,ticks){return( 415vl.markLine({ 416 stroke: "black", 417 clip: true, 418}) 419 .transform( 420 vl.window(vl.lag("date").as("dateLead")).frame([1,0]), 421 ) 422 .encode( 423 vl.x() 424 .fieldT("date") 425 .scale({ 426 domainMin: formatDateYMD(timeStart), 427 }) 428 .axis({ 429 title: null, 430 format: "%b %y", 431 grid: false, 432 labelPadding: 10, 433 labelAngle: -90, 434 // labelFlush: true, 435 // labelFlushOffset: -100, 436 labelSeparation: 6, 437 values: ticks, 438 minExtent: 60, 439 }), 440 vl.y() 441 .fieldQ("econclimate") 442 .axis({ 443 title: "WIFO-Konjunkturklimaindex (Gesamtwirtschaft)",
444 domain: false, 445 ticks: false, 446 labelPadding: 10, 447 minExtent: 40, 448 }) 449 .scale({ 450 padding: 25, 451 }) 452 ) 453)} 454 455function _boxplot(vl){return( 456vl.markBoxplot({ 457 ticks: { 458 stroke: "black", 459 size: 25 460 }, 461 stroke: "black", 462 outliers: {opacity: 0}, 463 color: "gray", 464 median: { 465 stroke: "black", 466 size: 25 467 }, 468 box: { 469 stroke: "black", 470 strokeWidth: 1, 471 fillOpacity: 0.25, 472 size: 25, 473 }, 474}) 475 .encode( 476 vl.y() 477 .fieldQ("econclimate") 478 .axis(null), 479 vl.tooltip(null), 480 // vl.tooltip([ 481 // {"field": "econclimate", "type": "quantitative", aggregate: "values", title: "test"}, 482 // {"field": "aktuell", "type": "quantitative", aggregate: "valid", title: "hello"} 483 // ]), 484 // vl.tooltip({ 485 // field: "econclimate", 486 // aggregate: "values", 487 // }) 488 ) 489)} 490 491function _monate(){return( 492[ 493 "Jänner", 494 "Februar", 495 "März", 496 "April", 497 "Mai", 498 "Juni", 499 "Juli", 500 "August", 501 "September", 502 "Oktober", 503 "November", 504 "Dezember" 505] 506)} 507 508function _heatmapBrush(vl,brush){return( 509vl.markPoint({ 510 // y: 300- 20, 511 stroke: "black", 512 strokeWidth: 1.25, 513 size: 300, 514 opacity: 0.8 515}) 516 .encode( 517 vl.x() 518 .fieldT("date"), 519 vl.y() 520 .fieldQ("zero"), 521 vl.fill() 522 .fieldN("ampelColor") 523 .scale({ 524 range: ["#00FF00", "#FF0000"], 525 }) 526 .legend({ 527 title: null 528 }) 529 ) 530 .transform( 531 vl.filter(brush) 532 ) 533)} 534 535function _makeWidth(){return( 536function(inputWidth) { 537 if (inputWidth>1000) { 538 return 800 539 } 540 else { 541 return inputWidth / 1.6 542 } 543} 544)} 545 546function _lengthInputData(inputData){return( 547[... new Set(inputData.map(d => d.date))].length 548)} 549 550function _lengthData(data){return( 551[... new Set(data.map(d => d.date))].length 552)} 553 554function _config(){return( 555{ 556 mark: { tooltip: null }, 557 view: {stroke: null}, 558 font: "FFDaxPro", 559 background: "transparent", 560 fontSize: 14, 561 concat: { spacing: 20 }, 562 title: { 563 offset: 0, 564 fontSize: 16, 565 subtitleFontSize: 14, 566 }, 567 axis: { 568 labelFontSize: 14, 569 titleFontSize: 14, 570 titleFontWeight: "normal", 571 }, 572 legend: { 573 labelFontSize: 14, 574 titleFontSize: 14, 575 titleFontWeight: "normal", 576 }, 577 mark: { 578 fontSize: 14 579 }, 580 locale: { 581 number: { 582 decimal: ",", 583 thousands: ".", 584 grouping: [3] 585 }, 586 time: { 587 dateTime: "%A %e %B %Y, %X", 588 date: "%d/%m/%Y", 589 time: "%H:%M:%S", 590 periods: ["AM", "PM"], 591 days: [ 592 "Montag", 593 "Dienstag", 594 "Mittwoch", 595 "Donnerstag", 596 "Freitag", 597 "Samstag", 598 "Sonntag" 599 ], 600 shortDays: [ 601 "Mo", 602 "Di", 603 "Mi", 604 "Do", 605 "Fr", 606 "Sa", 607 "So" 608 ], 609 months: [ 610 "Jänner", 611 "Februar", 612 "März", 613 "April", 614 "Mai", 615 "Juni", 616 "Juli", 617 "August", 618 "September", 619 "Oktober", 620 "November", 621 "Dezember" 622 ], 623 shortMonths: [ 624 "Jän", 625 "Feb", 626 "Mrz", 627 "Apr", 628 "Mai", 629 "Jun", 630 "Jul", 631 "Aug", 632 "Sep", 633 "Okt", 634 "Nov", 635 "Dez" 636 ] 637 } 638 }, 639} 640)} 641 642function _inputData(d3){return( 643d3.csv("https://data-science.wifo.ac.at/kt-data/data_ka.csv") 644)} 645 646function _52(htl){return( 647htl.html`<style> 648 text, label, body { 649 font-family: "Century Gothic"; 650 } 651 select { 652 font-family: "Century Gothic" !important; 653 font-size: 14px; 654 } 655 option { 656 font-family: "Century Gothic"; 657 font-size: 12px; 658 } 659 button { 660 font-family: "Century Gothic" !important; 661 font-size: 12px; 662 } 663 output[name="output"] { 664 font-family: "Century Gothic" !important; 665 } 666/* tooltip: */ 667 table { 668 font-family: "Century Gothic"; 669 font-Size: 11px; 670 margin: 0px 0px 0px 0px; 671 } 672/* #vg-tooltip-element { 673 display: none; 674 } */ 675</style>` 676)} 677 678export default function define(runtime, observer) { 679 const main = runtime.module(); 680 main.variable(observer()).define(["md"], _1); 681 main.variable(observer("title")).define("title", ["htl","farbeAktuell","monat","jahr","econclimateDiff","econclimate","econclimateLag","aktuellDiff","aktuell","er
681wartetDiff","erwartet"], _title); 682 main.variable(observer("timeLabel")).define("timeLabel", ["htl","d3","formatDate","start","slider"], _timeLabel); 683 main.variable(observer("viewof slider")).define("viewof slider", ["rangeSlider","d3","start","end","formatDate","makeWidth","width"], _slider); 684 main.variable(observer("slider")).define("slider", ["Generators", "viewof slider"], (G, _) => G.input(_)); 685 main.variable(observer("view")).define("view", ["vl","bars","lines","quantiles","heatmap","makeWidth","width","boxplot","dummyLayer1","dummyLayer2","dummyLayer3","dummyLayer4","points","data","config"], _view); 686 main.variable(observer()).define(["md"], _6); 687 main.variable(observer("formatDateYMD")).define("formatDateYMD", ["d3"], _formatDateYMD); 688 main.variable(observer("formatDate")).define("formatDate", ["d3"], _formatDate); 689 main.variable(observer("timeStartPlusOne")).define("timeStartPlusOne", ["parseDate","formatDateYMD","d3","start","slider"], _timeStartPlusOne); 690 main.variable(observer("timeStartMinusOne")).define("timeStartMinusOne", ["parseDate","formatDateYMD","d3","start","slider"], _timeStartMinusOne); 691 main.variable(observer("timeEndPlusOne")).define("timeEndPlusOne", ["parseDate","formatDateYMD","d3","start","slider"], _timeEndPlusOne); 692 main.variable(observer("timeStart")).define("timeStart", ["parseDate","formatDateYMD","d3","start","slider"], _timeStart); 693 main.variable(observer("timeEnd")).define("timeEnd", ["parseDate","formatDateYMD","d3","start","slider"], _timeEnd); 694 main.variable(observer("end")).define("end", ["parseDate","inputData"], _end); 695 main.variable(observer("start")).define("start", ["parseDate","inputData"], _start); 696 main.variable(observer("parseDate")).define("parseDate", ["d3"], _parseDate); 697 main.variable(observer("dummyLayer4")).define("dummyLayer4", ["vl","data"], _dummyLayer4); 698 main.variable(observer("dummyLayer3")).define("dummyLayer3", ["vl","data"], _dummyLayer3); 699 main.variable(observer("dummyLayer2")).define("dummyLayer2", ["vl","data"], _dummyLayer2); 700 main.variable(observer("dummyLayer1")).define("dummyLayer1", ["vl","data"], _dummyLayer1); 701 main.variable(observer("title_en")).define("title_en", ["htl","farbeAktuell","monat","jahr","econclimateDiff","econclimate","econclimateLag","aktuellDiff","aktuell","erwartetDiff","erwartet"], _title_en); 702 main.variable(observer("data")).define("data", ["inputData","parseDate","slider","timeStartMinusOne","timeEndPlusOne","timeEnd"], _data); 703 const child1 = runtime.module(define1); 704 main.import("vl", child1); 705 main.variable(observer("bars")).define("bars", ["vl","brush"], _bars); 706 main.variable(observer("brush")).define("brush", ["vl"], _brush); 707 main.variable(observer("quantiles")).define("quantiles", ["vl","d3","data"], _quantiles); 708 main.variable(observer("points")).define("points", ["vl","brush"], _points); 709 main.variable(observer("heatmap")).define("heatmap", ["vl","lengthData","brush"], _heatmap); 710 main.variable(observer("aktuell")).define("aktuell", ["inputData","lengthInputData"], _aktuell); 711 main.variable(observer("aktuellDiff")).define("aktuellDiff", ["inputData","lengthInputData"], _aktuellDiff); 712 main.variable(observer("erwartet")).define("erwartet", ["inputData","lengthInputData"], _erwartet); 713 main.variable(observer("erwartetDiff")).define("erwartetDiff", ["inputData","lengthInputData"], _erwartetDiff); 714 main.variable(observer("econclimate")).define("econclimate", ["inputData","lengthInputData"], _econclimate); 715 main.variable(observer("econclimateDiff")).define("econclimateDiff", ["inputData","lengthInputData"], _econclimateDiff); 716 main.variable(observer("econclimateLag")).define("econclimateLag", ["inputData","lengthInputData"], _econclimateLag); 717 main.variable(observer("farbeAktuell")).define("farbeAktuell", ["inputData"], _farbeAktuell); 718 main.variable(observer("monat")).define("monat", ["monate","inputData","lengthInputData"], _monat); 719 main.variable(observer("jahr")).define("jahr", ["inputData","lengthInputData"], _jahr); 720 main.variable(observer()).define(["end"], _39); 721 main.variable(observer("ticks")).define("ticks", ["lengthData","data"], _ticks); 722 main.variable(observer()).define(["slider"], _41); 723 main.variable(observer("lines")).define("lines", ["vl","formatDateYMD","timeStart","ticks"], _lines); 724 main.variable(observer("boxplot")).define("boxplot", ["vl"], _boxplot); 725 main.variable(observer("monate")).define("monate", _monate); 726 main.variable(observer("heatmapBrush")).define("heatmapBrush", ["vl","brush"], _heatmapBrush); 727 main.variable(observer("makeWidth")).define("makeWidth", _makeWidth);
728 main.variable(observer("lengthInputData")).define("lengthInputData", ["inputData"], _lengthInputData); 729 main.variable(observer("lengthData")).define("lengthData", ["data"], _lengthData); 730 main.variable(observer("config")).define("config", _config); 731 const child2 = runtime.module(define2); 732 main.import("rangeInput", "rangeSlider", child2); 733 main.variable(observer("inputData")).define("inputData", ["d3"], _inputData); 734 main.variable(observer()).define(["htl"], _52); 735 return main; 736}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.