(
fileCache: CachedMetadata,
query: Query,
renderInfo: RenderInfo,
dataMap: DataMap,
xValueMap: XValueMap
)
| 581 | |
| 582 | // In form 'key: value', target used to identify 'frontmatter key' |
| 583 | export function collectDataFromFrontmatterKey( |
| 584 | fileCache: CachedMetadata, |
| 585 | query: Query, |
| 586 | renderInfo: RenderInfo, |
| 587 | dataMap: DataMap, |
| 588 | xValueMap: XValueMap |
| 589 | ): boolean { |
| 590 | // console.log("collectDataFromFrontmatterKey"); |
| 591 | |
| 592 | let frontMatter = fileCache.frontmatter; |
| 593 | if (frontMatter) { |
| 594 | // console.log(frontMatter); |
| 595 | // console.log(query.getTarget()); |
| 596 | let deepValue = helper.deepValue(frontMatter, query.getTarget()); |
| 597 | // console.log(deepValue); |
| 598 | if (deepValue) { |
| 599 | let retParse = helper.parseFloatFromAny( |
| 600 | deepValue, |
| 601 | renderInfo.textValueMap |
| 602 | ); |
| 603 | // console.log(retParse); |
| 604 | if (retParse.value === null) { |
| 605 | // Try parsing as a boolean: true means 1, false means 0. |
| 606 | if (deepValue === "true" || deepValue === "false") { |
| 607 | retParse.type = ValueType.Number; |
| 608 | retParse.value = deepValue === "true" ? 1 : 0; |
| 609 | } |
| 610 | } |
| 611 | if (retParse.value !== null) { |
| 612 | if (retParse.type === ValueType.Time) { |
| 613 | query.valueType = ValueType.Time; |
| 614 | } |
| 615 | query.addNumTargets(); |
| 616 | let xValue = xValueMap.get(renderInfo.xDataset[query.getId()]); |
| 617 | addToDataMap(dataMap, xValue, query, retParse.value); |
| 618 | return true; |
| 619 | } |
| 620 | } else if ( |
| 621 | query.getParentTarget() && |
| 622 | helper.deepValue(frontMatter, query.getParentTarget()) |
| 623 | ) { |
| 624 | // console.log("multiple values"); |
| 625 | // console.log(query.getTarget()); |
| 626 | // console.log(query.getParentTarget()); |
| 627 | // console.log(query.getSubId()); |
| 628 | // console.log( |
| 629 | // frontMatter[query.getParentTarget()] |
| 630 | // ); |
| 631 | let toParse = helper.deepValue( |
| 632 | frontMatter, |
| 633 | query.getParentTarget() |
| 634 | ); |
| 635 | let splitted = null; |
| 636 | if (Array.isArray(toParse)) { |
| 637 | splitted = toParse.map((p) => { |
| 638 | return p.toString(); |
| 639 | }); |
| 640 | } else if (typeof toParse === "string") { |
nothing calls this directly
no test coverage detected