diff --git a/refs/pull/1117/merge/coverage/clover.xml b/refs/pull/1117/merge/coverage/clover.xml new file mode 100644 index 0000000000..c803957508 --- /dev/null +++ b/refs/pull/1117/merge/coverage/clover.xml @@ -0,0 +1,2461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refs/pull/1117/merge/coverage/coverage-final.json b/refs/pull/1117/merge/coverage/coverage-final.json new file mode 100644 index 0000000000..a796ec3c38 --- /dev/null +++ b/refs/pull/1117/merge/coverage/coverage-final.json @@ -0,0 +1,168 @@ +{"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/index.js","statementMap":{"0":{"start":{"line":1,"column":7},"end":{"line":1,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.js","statementMap":{"0":{"start":{"line":8,"column":16},"end":{"line":8,"column":29}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":26},"end":{"line":3,"column":null}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":null}},"5":{"start":{"line":13,"column":4},"end":{"line":13,"column":null}},"6":{"start":{"line":15,"column":4},"end":{"line":15,"column":null}},"7":{"start":{"line":17,"column":4},"end":{"line":17,"column":null}},"8":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"9":{"start":{"line":21,"column":4},"end":{"line":21,"column":null}},"10":{"start":{"line":24,"column":4},"end":{"line":36,"column":null}},"11":{"start":{"line":39,"column":2},"end":{"line":49,"column":null}},"12":{"start":{"line":40,"column":15},"end":{"line":40,"column":null}},"13":{"start":{"line":41,"column":4},"end":{"line":48,"column":null}},"14":{"start":{"line":42,"column":6},"end":{"line":47,"column":null}},"15":{"start":{"line":43,"column":8},"end":{"line":46,"column":null}},"16":{"start":{"line":44,"column":10},"end":{"line":44,"column":null}},"17":{"start":{"line":45,"column":10},"end":{"line":45,"column":null}},"18":{"start":{"line":118,"column":0},"end":{"line":248,"column":null}}},"fnMap":{"0":{"name":"ActionButton","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":34},"end":{"line":116,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":39,"column":12},"end":{"line":39,"column":null}},"loc":{"start":{"line":39,"column":12},"end":{"line":49,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":42,"column":39},"end":{"line":42,"column":40}},"loc":{"start":{"line":42,"column":40},"end":{"line":47,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":4},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":25,"column":8},"end":{"line":25,"column":null}},{"start":{"line":26,"column":8},"end":{"line":36,"column":null}}]},"1":{"loc":{"start":{"line":26,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},{"start":{"line":28,"column":8},"end":{"line":36,"column":null}}]},"2":{"loc":{"start":{"line":28,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":36,"column":null}}]},"3":{"loc":{"start":{"line":30,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":null}},{"start":{"line":32,"column":8},"end":{"line":36,"column":null}}]},"4":{"loc":{"start":{"line":32,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":null}},{"start":{"line":34,"column":8},"end":{"line":36,"column":null}}]},"5":{"loc":{"start":{"line":34,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":null}},{"start":{"line":36,"column":8},"end":{"line":36,"column":null}}]},"6":{"loc":{"start":{"line":41,"column":4},"end":{"line":48,"column":null}},"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":48,"column":null}}]},"7":{"loc":{"start":{"line":43,"column":8},"end":{"line":46,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":46,"column":null}}]},"8":{"loc":{"start":{"line":43,"column":12},"end":{"line":43,"column":59}},"type":"binary-expr","locations":[{"start":{"line":43,"column":12},"end":{"line":43,"column":40}},{"start":{"line":43,"column":40},"end":{"line":43,"column":59}}]},"9":{"loc":{"start":{"line":52,"column":4},"end":{"line":79,"column":5}},"type":"cond-expr","locations":[{"start":{"line":52,"column":4},"end":{"line":79,"column":5}}]},"10":{"loc":{"start":{"line":54,"column":21},"end":{"line":54,"column":67}},"type":"cond-expr","locations":[{"start":{"line":54,"column":39},"end":{"line":54,"column":54}},{"start":{"line":54,"column":57},"end":{"line":54,"column":67}}]},"11":{"loc":{"start":{"line":59,"column":15},"end":{"line":59,"column":39}},"type":"binary-expr","locations":[{"start":{"line":59,"column":15},"end":{"line":59,"column":27}},{"start":{"line":59,"column":31},"end":{"line":59,"column":39}}]},"12":{"loc":{"start":{"line":66,"column":7},"end":{"line":68,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":8},"end":{"line":68,"column":null}},{"start":{"line":68,"column":10},"end":{"line":68,"column":null}}]},"13":{"loc":{"start":{"line":66,"column":7},"end":{"line":66,"column":35}},"type":"binary-expr","locations":[{"start":{"line":66,"column":7},"end":{"line":66,"column":17}},{"start":{"line":66,"column":21},"end":{"line":66,"column":35}}]},"14":{"loc":{"start":{"line":71,"column":7},"end":{"line":76,"column":null}},"type":"cond-expr","locations":[{"start":{"line":72,"column":8},"end":{"line":76,"column":null}},{"start":{"line":76,"column":10},"end":{"line":76,"column":null}}]},"15":{"loc":{"start":{"line":71,"column":7},"end":{"line":71,"column":34}},"type":"binary-expr","locations":[{"start":{"line":71,"column":7},"end":{"line":71,"column":17}},{"start":{"line":71,"column":21},"end":{"line":71,"column":34}}]},"16":{"loc":{"start":{"line":80,"column":24},"end":{"line":80,"column":76}},"type":"cond-expr","locations":[{"start":{"line":80,"column":45},"end":{"line":80,"column":63}},{"start":{"line":80,"column":66},"end":{"line":80,"column":76}}]},"17":{"loc":{"start":{"line":81,"column":21},"end":{"line":81,"column":67}},"type":"cond-expr","locations":[{"start":{"line":81,"column":39},"end":{"line":81,"column":54}},{"start":{"line":81,"column":57},"end":{"line":81,"column":67}}]},"18":{"loc":{"start":{"line":87,"column":15},"end":{"line":87,"column":39}},"type":"binary-expr","locations":[{"start":{"line":87,"column":15},"end":{"line":87,"column":27}},{"start":{"line":87,"column":31},"end":{"line":87,"column":39}}]},"19":{"loc":{"start":{"line":90,"column":32},"end":{"line":90,"column":null}},"type":"cond-expr","locations":[{"start":{"line":90,"column":58},"end":{"line":90,"column":69}},{"start":{"line":90,"column":69},"end":{"line":90,"column":null}}]},"20":{"loc":{"start":{"line":92,"column":7},"end":{"line":94,"column":null}},"type":"cond-expr","locations":[{"start":{"line":93,"column":8},"end":{"line":94,"column":null}},{"start":{"line":94,"column":10},"end":{"line":94,"column":null}}]},"21":{"loc":{"start":{"line":92,"column":7},"end":{"line":92,"column":35}},"type":"binary-expr","locations":[{"start":{"line":92,"column":7},"end":{"line":92,"column":17}},{"start":{"line":92,"column":21},"end":{"line":92,"column":35}}]},"22":{"loc":{"start":{"line":95,"column":7},"end":{"line":102,"column":null}},"type":"cond-expr","locations":[{"start":{"line":96,"column":8},"end":{"line":102,"column":null}},{"start":{"line":102,"column":10},"end":{"line":102,"column":null}}]},"23":{"loc":{"start":{"line":95,"column":7},"end":{"line":95,"column":42}},"type":"binary-expr","locations":[{"start":{"line":95,"column":7},"end":{"line":95,"column":24}},{"start":{"line":95,"column":28},"end":{"line":95,"column":42}}]},"24":{"loc":{"start":{"line":108,"column":7},"end":{"line":113,"column":null}},"type":"cond-expr","locations":[{"start":{"line":109,"column":8},"end":{"line":113,"column":null}},{"start":{"line":113,"column":10},"end":{"line":113,"column":null}}]},"25":{"loc":{"start":{"line":108,"column":7},"end":{"line":108,"column":34}},"type":"binary-expr","locations":[{"start":{"line":108,"column":7},"end":{"line":108,"column":17}},{"start":{"line":108,"column":21},"end":{"line":108,"column":34}}]}},"s":{"0":78,"1":25,"2":25,"3":25,"4":76,"5":76,"6":76,"7":76,"8":76,"9":76,"10":76,"11":71,"12":71,"13":71,"14":63,"15":1,"16":1,"17":1,"18":25},"f":{"0":76,"1":71,"2":1},"b":{"0":[10,61],"1":[5,56],"2":[3,53],"3":[1,52],"4":[1,51],"5":[2,49],"6":[63],"7":[1],"8":[1,0],"9":[28],"10":[6,22],"11":[28,20],"12":[0,28],"13":[28,3],"14":[3,25],"15":[28,3],"16":[0,43],"17":[12,31],"18":[43,15],"19":[13,30],"20":[0,43],"21":[43,0],"22":[6,37],"23":[43,6],"24":[0,43],"25":[43,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ActionButton.stories.js","statementMap":{"0":{"start":{"line":13,"column":13},"end":{"line":13,"column":19}},"1":{"start":{"line":14,"column":13},"end":{"line":14,"column":17}},"2":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"3":{"start":{"line":11,"column":13},"end":{"line":11,"column":22}},"4":{"start":{"line":12,"column":13},"end":{"line":12,"column":22}},"5":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"6":{"start":{"line":1,"column":29},"end":{"line":1,"column":null}},"7":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"8":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"9":{"start":{"line":11,"column":25},"end":{"line":11,"column":null}},"10":{"start":{"line":12,"column":25},"end":{"line":12,"column":null}},"11":{"start":{"line":13,"column":22},"end":{"line":13,"column":null}},"12":{"start":{"line":14,"column":20},"end":{"line":14,"column":null}},"13":{"start":{"line":16,"column":0},"end":{"line":20,"column":null}},"14":{"start":{"line":22,"column":0},"end":{"line":27,"column":null}},"15":{"start":{"line":29,"column":0},"end":{"line":34,"column":null}},"16":{"start":{"line":36,"column":0},"end":{"line":41,"column":null}},"17":{"start":{"line":43,"column":0},"end":{"line":48,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":5,"2":5,"3":3,"4":3,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.js","statementMap":{"0":{"start":{"line":11,"column":16},"end":{"line":11,"column":22}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":32},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":29},"end":{"line":3,"column":null}},"4":{"start":{"line":41,"column":0},"end":{"line":50,"column":null}}},"fnMap":{"0":{"name":"Alert","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":22}},"loc":{"start":{"line":11,"column":27},"end":{"line":39,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":10},"end":{"line":16,"column":null}},"type":"cond-expr","locations":[{"start":{"line":16,"column":27},"end":{"line":16,"column":48}},{"start":{"line":16,"column":48},"end":{"line":16,"column":null}}]},"1":{"loc":{"start":{"line":21,"column":12},"end":{"line":27,"column":13}},"type":"cond-expr","locations":[{"start":{"line":21,"column":12},"end":{"line":27,"column":13}}]}},"s":{"0":3,"1":1,"2":1,"3":1,"4":1},"f":{"0":2},"b":{"0":[0,2],"1":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Alert.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"4":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"5":{"start":{"line":12,"column":0},"end":{"line":15,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.js","statementMap":{"0":{"start":{"line":8,"column":13},"end":{"line":8,"column":19}},"1":{"start":{"line":40,"column":0},"end":{"line":40,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"4":{"start":{"line":8,"column":22},"end":{"line":26,"column":null}},"5":{"start":{"line":28,"column":0},"end":{"line":38,"column":null}},"6":{"start":{"line":40,"column":15},"end":{"line":40,"column":22}}},"fnMap":{"0":{"name":"(anonymous_4)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":46},"end":{"line":26,"column":null}}}},"branchMap":{},"s":{"0":2,"1":3,"2":9,"3":9,"4":9,"5":9,"6":9},"f":{"0":4},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Banner.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":19},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":16,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":27}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":32},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":31},"end":{"line":4,"column":null}},"5":{"start":{"line":24,"column":14},"end":{"line":26,"column":null}},"6":{"start":{"line":50,"column":0},"end":{"line":67,"column":null}}},"fnMap":{"0":{"name":"Breadcrumb","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":27}},"loc":{"start":{"line":9,"column":32},"end":{"line":48,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":28},"end":{"line":23,"column":29}},"loc":{"start":{"line":23,"column":35},"end":{"line":43,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":9},"end":{"line":44,"column":null}},"type":"cond-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":43,"column":null}},{"start":{"line":44,"column":12},"end":{"line":44,"column":null}}]}},"s":{"0":16,"1":9,"2":9,"3":9,"4":9,"5":9,"6":9},"f":{"0":16,"1":9},"b":{"0":[7,8]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Breadcrumb.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":11,"column":13},"end":{"line":11,"column":22}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"3":{"start":{"line":1,"column":27},"end":{"line":1,"column":null}},"4":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"5":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"6":{"start":{"line":11,"column":25},"end":{"line":11,"column":null}},"7":{"start":{"line":13,"column":0},"end":{"line":19,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":3,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":12,"column":28},"end":{"line":16,"column":null}},"3":{"start":{"line":30,"column":10},"end":{"line":33,"column":null}},"4":{"start":{"line":59,"column":0},"end":{"line":128,"column":null}}},"fnMap":{"0":{"name":"CheckBox","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"loc":{"start":{"line":11,"column":1},"end":{"line":57,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":18},"end":{"line":29,"column":19}},"loc":{"start":{"line":30,"column":10},"end":{"line":33,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":17}},"type":"default-arg","locations":[{"start":{"line":7,"column":12},"end":{"line":7,"column":17}}]},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":16}},"type":"default-arg","locations":[{"start":{"line":8,"column":10},"end":{"line":8,"column":16}}]},"2":{"loc":{"start":{"line":9,"column":2},"end":{"line":9,"column":27}},"type":"default-arg","locations":[{"start":{"line":9,"column":22},"end":{"line":9,"column":27}}]},"3":{"loc":{"start":{"line":12,"column":28},"end":{"line":16,"column":null}},"type":"cond-expr","locations":[{"start":{"line":13,"column":6},"end":{"line":15,"column":null}},{"start":{"line":16,"column":6},"end":{"line":16,"column":null}}]},"4":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":null}},"type":"cond-expr","locations":[{"start":{"line":20,"column":26},"end":{"line":20,"column":47}},{"start":{"line":20,"column":50},"end":{"line":20,"column":null}}]},"5":{"loc":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":33},"end":{"line":31,"column":57}},{"start":{"line":31,"column":60},"end":{"line":31,"column":null}}]},"6":{"loc":{"start":{"line":37,"column":22},"end":{"line":37,"column":null}},"type":"cond-expr","locations":[{"start":{"line":37,"column":36},"end":{"line":37,"column":45}},{"start":{"line":37,"column":45},"end":{"line":37,"column":null}}]},"7":{"loc":{"start":{"line":44,"column":10},"end":{"line":44,"column":null}},"type":"cond-expr","locations":[{"start":{"line":44,"column":25},"end":{"line":44,"column":43}},{"start":{"line":44,"column":43},"end":{"line":44,"column":null}}]},"8":{"loc":{"start":{"line":45,"column":21},"end":{"line":45,"column":72}},"type":"cond-expr","locations":[{"start":{"line":45,"column":35},"end":{"line":45,"column":62}},{"start":{"line":45,"column":62},"end":{"line":45,"column":72}}]},"9":{"loc":{"start":{"line":48,"column":9},"end":{"line":52,"column":23}},"type":"cond-expr","locations":[{"start":{"line":49,"column":10},"end":{"line":52,"column":23}},{"start":{"line":52,"column":12},"end":{"line":52,"column":23}}]}},"s":{"0":72,"1":4,"2":68,"3":6,"4":4},"f":{"0":68,"1":6},"b":{"0":[64],"1":[8],"2":[68],"3":[12,56],"4":[50,18],"5":[4,2],"6":[0,68],"7":[0,68],"8":[0,68],"9":[0,68]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/CheckBox.stories.js","statementMap":{"0":{"start":{"line":29,"column":13},"end":{"line":29,"column":20}},"1":{"start":{"line":49,"column":13},"end":{"line":49,"column":21}},"2":{"start":{"line":20,"column":13},"end":{"line":20,"column":22}},"3":{"start":{"line":39,"column":13},"end":{"line":39,"column":25}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"5":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"6":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"7":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"8":{"start":{"line":20,"column":25},"end":{"line":20,"column":null}},"9":{"start":{"line":21,"column":0},"end":{"line":27,"column":null}},"10":{"start":{"line":29,"column":23},"end":{"line":29,"column":null}},"11":{"start":{"line":30,"column":0},"end":{"line":37,"column":null}},"12":{"start":{"line":39,"column":28},"end":{"line":39,"column":null}},"13":{"start":{"line":40,"column":0},"end":{"line":47,"column":null}},"14":{"start":{"line":49,"column":24},"end":{"line":49,"column":null}},"15":{"start":{"line":50,"column":0},"end":{"line":57,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":6,"1":0,"2":7,"3":0,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DSButton.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DSButton.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":null}},"4":{"start":{"line":17,"column":4},"end":{"line":17,"column":null}},"5":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"6":{"start":{"line":21,"column":4},"end":{"line":21,"column":null}},"7":{"start":{"line":23,"column":4},"end":{"line":23,"column":null}},"8":{"start":{"line":25,"column":2},"end":{"line":36,"column":null}},"9":{"start":{"line":100,"column":0},"end":{"line":179,"column":null}}},"fnMap":{"0":{"name":"DSButton","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"loc":{"start":{"line":12,"column":1},"end":{"line":98,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":13}},"type":"default-arg","locations":[{"start":{"line":7,"column":7},"end":{"line":7,"column":13}}]},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":23}},"type":"default-arg","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":23}}]},"2":{"loc":{"start":{"line":9,"column":2},"end":{"line":9,"column":18}},"type":"default-arg","locations":[{"start":{"line":9,"column":9},"end":{"line":9,"column":18}}]},"3":{"loc":{"start":{"line":10,"column":2},"end":{"line":10,"column":17}},"type":"default-arg","locations":[{"start":{"line":10,"column":9},"end":{"line":10,"column":17}}]},"4":{"loc":{"start":{"line":26,"column":4},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},{"start":{"line":28,"column":8},"end":{"line":36,"column":null}}]},"5":{"loc":{"start":{"line":28,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":36,"column":null}}]},"6":{"loc":{"start":{"line":30,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":null}},{"start":{"line":32,"column":8},"end":{"line":36,"column":null}}]},"7":{"loc":{"start":{"line":32,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":null}},{"start":{"line":34,"column":8},"end":{"line":36,"column":null}}]},"8":{"loc":{"start":{"line":34,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":null}},{"start":{"line":36,"column":8},"end":{"line":36,"column":null}}]},"9":{"loc":{"start":{"line":39,"column":4},"end":{"line":68,"column":5}},"type":"cond-expr","locations":[{"start":{"line":39,"column":4},"end":{"line":68,"column":5}}]},"10":{"loc":{"start":{"line":48,"column":7},"end":{"line":52,"column":null}},"type":"cond-expr","locations":[{"start":{"line":49,"column":8},"end":{"line":52,"column":null}},{"start":{"line":52,"column":10},"end":{"line":52,"column":null}}]},"11":{"loc":{"start":{"line":48,"column":7},"end":{"line":48,"column":35}},"type":"binary-expr","locations":[{"start":{"line":48,"column":7},"end":{"line":48,"column":17}},{"start":{"line":48,"column":21},"end":{"line":48,"column":35}}]},"12":{"loc":{"start":{"line":55,"column":10},"end":{"line":55,"column":null}},"type":"cond-expr","locations":[{"start":{"line":55,"column":36},"end":{"line":55,"column":44}},{"start":{"line":55,"column":44},"end":{"line":55,"column":null}}]},"13":{"loc":{"start":{"line":61,"column":7},"end":{"line":65,"column":null}},"type":"cond-expr","locations":[{"start":{"line":62,"column":8},"end":{"line":65,"column":null}},{"start":{"line":65,"column":10},"end":{"line":65,"column":null}}]},"14":{"loc":{"start":{"line":61,"column":7},"end":{"line":61,"column":34}},"type":"binary-expr","locations":[{"start":{"line":61,"column":7},"end":{"line":61,"column":17}},{"start":{"line":61,"column":21},"end":{"line":61,"column":34}}]},"15":{"loc":{"start":{"line":71,"column":8},"end":{"line":71,"column":null}},"type":"cond-expr","locations":[{"start":{"line":71,"column":29},"end":{"line":71,"column":42}},{"start":{"line":71,"column":42},"end":{"line":71,"column":null}}]},"16":{"loc":{"start":{"line":78,"column":7},"end":{"line":84,"column":null}},"type":"cond-expr","locations":[{"start":{"line":79,"column":8},"end":{"line":84,"column":null}},{"start":{"line":84,"column":10},"end":{"line":84,"column":null}}]},"17":{"loc":{"start":{"line":78,"column":7},"end":{"line":78,"column":35}},"type":"binary-expr","locations":[{"start":{"line":78,"column":7},"end":{"line":78,"column":17}},{"start":{"line":78,"column":21},"end":{"line":78,"column":35}}]},"18":{"loc":{"start":{"line":87,"column":7},"end":{"line":95,"column":null}},"type":"cond-expr","locations":[{"start":{"line":88,"column":8},"end":{"line":95,"column":null}},{"start":{"line":95,"column":10},"end":{"line":95,"column":null}}]},"19":{"loc":{"start":{"line":87,"column":7},"end":{"line":87,"column":34}},"type":"binary-expr","locations":[{"start":{"line":87,"column":7},"end":{"line":87,"column":17}},{"start":{"line":87,"column":21},"end":{"line":87,"column":34}}]}},"s":{"0":11,"1":13,"2":13,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":13},"f":{"0":10},"b":{"0":[4],"1":[0],"2":[0],"3":[8],"4":[6,4],"5":[1,3],"6":[1,2],"7":[1,1],"8":[1,0],"9":[8],"10":[0,8],"11":[8,0],"12":[0,8],"13":[0,8],"14":[8,0],"15":[2,0],"16":[0,2],"17":[2,0],"18":[0,2],"19":[2,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DSButton.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DSButton.stories.js","statementMap":{"0":{"start":{"line":14,"column":13},"end":{"line":14,"column":19}},"1":{"start":{"line":15,"column":13},"end":{"line":15,"column":17}},"2":{"start":{"line":12,"column":13},"end":{"line":12,"column":20}},"3":{"start":{"line":13,"column":13},"end":{"line":13,"column":22}},"4":{"start":{"line":10,"column":13},"end":{"line":10,"column":22}},"5":{"start":{"line":11,"column":13},"end":{"line":11,"column":26}},"6":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"7":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"8":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"9":{"start":{"line":10,"column":25},"end":{"line":10,"column":null}},"10":{"start":{"line":11,"column":29},"end":{"line":11,"column":null}},"11":{"start":{"line":12,"column":23},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":25},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":22},"end":{"line":14,"column":null}},"14":{"start":{"line":15,"column":20},"end":{"line":15,"column":null}},"15":{"start":{"line":17,"column":0},"end":{"line":22,"column":null}},"16":{"start":{"line":24,"column":0},"end":{"line":31,"column":null}},"17":{"start":{"line":33,"column":0},"end":{"line":38,"column":null}},"18":{"start":{"line":40,"column":0},"end":{"line":46,"column":null}},"19":{"start":{"line":48,"column":0},"end":{"line":53,"column":null}},"20":{"start":{"line":55,"column":0},"end":{"line":61,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":0,"6":0,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":4,"column":29}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":null}},"4":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"5":{"start":{"line":8,"column":2},"end":{"line":12,"column":null}},"6":{"start":{"line":9,"column":4},"end":{"line":11,"column":null}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":null}},"8":{"start":{"line":11,"column":11},"end":{"line":11,"column":null}},"9":{"start":{"line":28,"column":0},"end":{"line":31,"column":null}}},"fnMap":{"0":{"name":"DateModified","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":29}},"loc":{"start":{"line":4,"column":74},"end":{"line":26,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":31},"end":{"line":4,"column":72}},"type":"default-arg","locations":[{"start":{"line":4,"column":38},"end":{"line":4,"column":72}}]},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":12,"column":null}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":12,"column":null}}]},"2":{"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":null}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":11,"column":null}},{"start":{"line":11,"column":11},"end":{"line":11,"column":null}}]},"3":{"loc":{"start":{"line":19,"column":10},"end":{"line":21,"column":11}},"type":"cond-expr","locations":[{"start":{"line":19,"column":10},"end":{"line":21,"column":11}}]}},"s":{"0":16,"1":9,"2":9,"3":15,"4":15,"5":15,"6":8,"7":2,"8":6,"9":9},"f":{"0":15},"b":{"0":[6],"1":[8],"2":[2,6],"3":[7]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/DateModified.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":1,"column":29},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"4":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"5":{"start":{"line":12,"column":0},"end":{"line":14,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":16,"column":0},"end":{"line":23,"column":null}}},"fnMap":{"0":{"name":"ErrorLabel","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":32},"end":{"line":14,"column":null}}}},"branchMap":{},"s":{"0":7,"1":16,"2":16},"f":{"0":5},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ErrorLabel.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":0},"end":{"line":14,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/HTMList.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/HTMList.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":24}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":20},"end":{"line":9,"column":null}},"3":{"start":{"line":5,"column":4},"end":{"line":9,"column":null}},"4":{"start":{"line":7,"column":24},"end":{"line":7,"column":30}},"5":{"start":{"line":9,"column":8},"end":{"line":9,"column":null}},"6":{"start":{"line":21,"column":0},"end":{"line":26,"column":null}}},"fnMap":{"0":{"name":"HTMList","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":24}},"loc":{"start":{"line":3,"column":75},"end":{"line":19,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":20},"end":{"line":4,"column":21}},"loc":{"start":{"line":5,"column":4},"end":{"line":9,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":7,"column":14},"end":{"line":7,"column":15}},"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":30}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":9,"column":8},"end":{"line":9,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":36}},"type":"default-arg","locations":[{"start":{"line":3,"column":32},"end":{"line":3,"column":36}}]},"1":{"loc":{"start":{"line":15,"column":4},"end":{"line":17,"column":5}},"type":"cond-expr","locations":[{"start":{"line":15,"column":4},"end":{"line":17,"column":5}}]}},"s":{"0":7,"1":1,"2":7,"3":7,"4":18,"5":13,"6":1},"f":{"0":7,"1":7,"2":18,"3":13},"b":{"0":[5],"1":[6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Image.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Image.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":22}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":53},"end":{"line":4,"column":null}},"3":{"start":{"line":13,"column":0},"end":{"line":38,"column":null}}},"fnMap":{"0":{"name":"Image","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":22}},"loc":{"start":{"line":3,"column":27},"end":{"line":11,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":20},"end":{"line":4,"column":32}},"type":"default-arg","locations":[{"start":{"line":4,"column":30},"end":{"line":4,"column":32}}]},"1":{"loc":{"start":{"line":4,"column":34},"end":{"line":4,"column":48}},"type":"default-arg","locations":[{"start":{"line":4,"column":46},"end":{"line":4,"column":48}}]}},"s":{"0":23,"1":16,"2":23,"3":16},"f":{"0":23},"b":{"0":[20],"1":[4]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Image.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Image.stories.js","statementMap":{"0":{"start":{"line":12,"column":13},"end":{"line":12,"column":20}},"1":{"start":{"line":14,"column":13},"end":{"line":14,"column":31}},"2":{"start":{"line":13,"column":13},"end":{"line":13,"column":19}},"3":{"start":{"line":15,"column":13},"end":{"line":15,"column":30}},"4":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"5":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"6":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"7":{"start":{"line":8,"column":23},"end":{"line":8,"column":null}},"8":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"9":{"start":{"line":12,"column":23},"end":{"line":12,"column":null}},"10":{"start":{"line":13,"column":22},"end":{"line":13,"column":null}},"11":{"start":{"line":14,"column":34},"end":{"line":14,"column":null}},"12":{"start":{"line":15,"column":33},"end":{"line":15,"column":null}},"13":{"start":{"line":17,"column":0},"end":{"line":21,"column":null}},"14":{"start":{"line":23,"column":0},"end":{"line":28,"column":null}},"15":{"start":{"line":30,"column":0},"end":{"line":34,"column":null}},"16":{"start":{"line":36,"column":0},"end":{"line":41,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Link.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Link.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"1":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"2":{"start":{"line":8,"column":19},"end":{"line":8,"column":null}},"3":{"start":{"line":9,"column":2},"end":{"line":38,"column":null}},"4":{"start":{"line":11,"column":6},"end":{"line":12,"column":null}},"5":{"start":{"line":13,"column":6},"end":{"line":13,"column":null}},"6":{"start":{"line":15,"column":6},"end":{"line":16,"column":null}},"7":{"start":{"line":17,"column":6},"end":{"line":17,"column":null}},"8":{"start":{"line":19,"column":6},"end":{"line":20,"column":null}},"9":{"start":{"line":21,"column":6},"end":{"line":21,"column":null}},"10":{"start":{"line":23,"column":6},"end":{"line":24,"column":null}},"11":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"12":{"start":{"line":27,"column":6},"end":{"line":28,"column":null}},"13":{"start":{"line":29,"column":6},"end":{"line":29,"column":null}},"14":{"start":{"line":31,"column":6},"end":{"line":32,"column":null}},"15":{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},"16":{"start":{"line":35,"column":6},"end":{"line":36,"column":null}},"17":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"18":{"start":{"line":40,"column":20},"end":{"line":40,"column":null}},"19":{"start":{"line":43,"column":4},"end":{"line":43,"column":null}},"20":{"start":{"line":76,"column":0},"end":{"line":120,"column":null}}},"fnMap":{"0":{"name":"Link","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":63},"end":{"line":74,"column":null}}},"1":{"name":"onKeyDown","decl":{"start":{"line":42,"column":11},"end":{"line":42,"column":null}},"loc":{"start":{"line":42,"column":11},"end":{"line":44,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":23},"end":{"line":6,"column":39}},"type":"default-arg","locations":[{"start":{"line":6,"column":32},"end":{"line":6,"column":39}}]},"1":{"loc":{"start":{"line":6,"column":41},"end":{"line":6,"column":51}},"type":"default-arg","locations":[{"start":{"line":6,"column":48},"end":{"line":6,"column":51}}]},"2":{"loc":{"start":{"line":9,"column":2},"end":{"line":38,"column":null}},"type":"switch","locations":[{"start":{"line":10,"column":4},"end":{"line":13,"column":null}},{"start":{"line":14,"column":4},"end":{"line":17,"column":null}},{"start":{"line":18,"column":4},"end":{"line":21,"column":null}},{"start":{"line":22,"column":4},"end":{"line":25,"column":null}},{"start":{"line":26,"column":4},"end":{"line":29,"column":null}},{"start":{"line":30,"column":4},"end":{"line":33,"column":null}},{"start":{"line":34,"column":4},"end":{"line":37,"column":null}}]},"3":{"loc":{"start":{"line":40,"column":20},"end":{"line":40,"column":null}},"type":"binary-expr","locations":[{"start":{"line":40,"column":20},"end":{"line":40,"column":35}},{"start":{"line":40,"column":39},"end":{"line":40,"column":null}}]},"4":{"loc":{"start":{"line":47,"column":4},"end":{"line":59,"column":5}},"type":"cond-expr","locations":[{"start":{"line":47,"column":4},"end":{"line":59,"column":5}}]},"5":{"loc":{"start":{"line":52,"column":18},"end":{"line":52,"column":47}},"type":"binary-expr","locations":[{"start":{"line":52,"column":18},"end":{"line":52,"column":33}},{"start":{"line":52,"column":37},"end":{"line":52,"column":47}}]},"6":{"loc":{"start":{"line":66,"column":18},"end":{"line":66,"column":47}},"type":"binary-expr","locations":[{"start":{"line":66,"column":18},"end":{"line":66,"column":33}},{"start":{"line":66,"column":37},"end":{"line":66,"column":47}}]},"7":{"loc":{"start":{"line":68,"column":15},"end":{"line":68,"column":null}},"type":"cond-expr","locations":[{"start":{"line":68,"column":31},"end":{"line":68,"column":44}},{"start":{"line":68,"column":47},"end":{"line":68,"column":null}}]}},"s":{"0":357,"1":14,"2":356,"3":356,"4":1,"5":1,"6":1,"7":1,"8":66,"9":66,"10":273,"11":273,"12":1,"13":1,"14":1,"15":1,"16":13,"17":13,"18":356,"19":0,"20":14},"f":{"0":356,"1":0},"b":{"0":[330],"1":[3],"2":[1,1,66,273,1,1,13],"3":[356,348],"4":[8],"5":[8,8],"6":[348,348],"7":[0,348]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Link.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/Link.stories.js","statementMap":{"0":{"start":{"line":14,"column":13},"end":{"line":14,"column":28}},"1":{"start":{"line":15,"column":13},"end":{"line":15,"column":27}},"2":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"3":{"start":{"line":13,"column":13},"end":{"line":13,"column":27}},"4":{"start":{"line":11,"column":13},"end":{"line":11,"column":36}},"5":{"start":{"line":12,"column":13},"end":{"line":12,"column":22}},"6":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"7":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"8":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"9":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"10":{"start":{"line":11,"column":39},"end":{"line":11,"column":null}},"11":{"start":{"line":12,"column":25},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":30},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":31},"end":{"line":14,"column":null}},"14":{"start":{"line":15,"column":30},"end":{"line":15,"column":null}},"15":{"start":{"line":17,"column":0},"end":{"line":21,"column":null}},"16":{"start":{"line":23,"column":0},"end":{"line":28,"column":null}},"17":{"start":{"line":30,"column":0},"end":{"line":35,"column":null}},"18":{"start":{"line":37,"column":0},"end":{"line":42,"column":null}},"19":{"start":{"line":44,"column":0},"end":{"line":49,"column":null}},"20":{"start":{"line":51,"column":0},"end":{"line":56,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":3,"2":5,"3":3,"4":3,"5":3,"6":0,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiSelectField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiSelectField.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":33}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":35},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":25},"end":{"line":4,"column":null}},"5":{"start":{"line":7,"column":16},"end":{"line":7,"column":null}},"6":{"start":{"line":9,"column":21},"end":{"line":14,"column":null}},"7":{"start":{"line":10,"column":24},"end":{"line":12,"column":null}},"8":{"start":{"line":11,"column":6},"end":{"line":11,"column":null}},"9":{"start":{"line":13,"column":4},"end":{"line":13,"column":null}},"10":{"start":{"line":16,"column":17},"end":{"line":33,"column":null}},"11":{"start":{"line":25,"column":28},"end":{"line":25,"column":null}},"12":{"start":{"line":35,"column":31},"end":{"line":62,"column":null}},"13":{"start":{"line":37,"column":33},"end":{"line":37,"column":null}},"14":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"15":{"start":{"line":38,"column":43},"end":{"line":38,"column":null}},"16":{"start":{"line":39,"column":6},"end":{"line":39,"column":null}},"17":{"start":{"line":42,"column":6},"end":{"line":44,"column":null}},"18":{"start":{"line":96,"column":43},"end":{"line":102,"column":null}},"19":{"start":{"line":103,"column":46},"end":{"line":106,"column":null}},"20":{"start":{"line":107,"column":47},"end":{"line":110,"column":null}},"21":{"start":{"line":111,"column":43},"end":{"line":115,"column":null}},"22":{"start":{"line":116,"column":40},"end":{"line":120,"column":null}},"23":{"start":{"line":121,"column":33},"end":{"line":127,"column":null}},"24":{"start":{"line":128,"column":42},"end":{"line":134,"column":null}},"25":{"start":{"line":135,"column":44},"end":{"line":139,"column":null}},"26":{"start":{"line":140,"column":45},"end":{"line":145,"column":null}},"27":{"start":{"line":155,"column":0},"end":{"line":157,"column":null}},"28":{"start":{"line":159,"column":0},"end":{"line":237,"column":null}}},"fnMap":{"0":{"name":"MultiSelectField","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":33}},"loc":{"start":{"line":6,"column":38},"end":{"line":153,"column":null}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":9,"column":21},"end":{"line":9,"column":22}},"loc":{"start":{"line":9,"column":22},"end":{"line":14,"column":null}}},"2":{"name":"(anonymous_7)","decl":{"start":{"line":10,"column":53},"end":{"line":10,"column":54}},"loc":{"start":{"line":10,"column":54},"end":{"line":12,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":16,"column":17},"end":{"line":16,"column":18}},"loc":{"start":{"line":16,"column":18},"end":{"line":33,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":25,"column":22},"end":{"line":25,"column":28}},"loc":{"start":{"line":25,"column":28},"end":{"line":25,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":36,"column":12},"end":{"line":36,"column":13}},"loc":{"start":{"line":36,"column":13},"end":{"line":40,"column":null}}},"6":{"name":"(anonymous_11)","decl":{"start":{"line":38,"column":36},"end":{"line":38,"column":37}},"loc":{"start":{"line":38,"column":43},"end":{"line":38,"column":null}}},"7":{"name":"(anonymous_12)","decl":{"start":{"line":41,"column":9},"end":{"line":41,"column":10}},"loc":{"start":{"line":41,"column":10},"end":{"line":62,"column":null}}},"8":{"name":"(anonymous_13)","decl":{"start":{"line":96,"column":19},"end":{"line":96,"column":20}},"loc":{"start":{"line":96,"column":43},"end":{"line":102,"column":null}}},"9":{"name":"(anonymous_14)","decl":{"start":{"line":103,"column":29},"end":{"line":103,"column":30}},"loc":{"start":{"line":103,"column":46},"end":{"line":106,"column":null}}},"10":{"name":"(anonymous_15)","decl":{"start":{"line":107,"column":30},"end":{"line":107,"column":31}},"loc":{"start":{"line":107,"column":47},"end":{"line":110,"column":null}}},"11":{"name":"(anonymous_16)","decl":{"start":{"line":111,"column":26},"end":{"line":111,"column":27}},"loc":{"start":{"line":111,"column":43},"end":{"line":115,"column":null}}},"12":{"name":"(anonymous_17)","decl":{"start":{"line":116,"column":23},"end":{"line":116,"column":24}},"loc":{"start":{"line":116,"column":40},"end":{"line":120,"column":null}}},"13":{"name":"(anonymous_18)","decl":{"start":{"line":121,"column":16},"end":{"line":121,"column":17}},"loc":{"start":{"line":121,"column":33},"end":{"line":127,"column":null}}},"14":{"name":"(anonymous_19)","decl":{"start":{"line":128,"column":18},"end":{"line":128,"column":19}},"loc":{"start":{"line":128,"column":42},"end":{"line":134,"column":null}}},"15":{"name":"(anonymous_20)","decl":{"start":{"line":135,"column":27},"end":{"line":135,"column":28}},"loc":{"start":{"line":135,"column":44},"end":{"line":139,"column":null}}},"16":{"name":"(anonymous_21)","decl":{"start":{"line":140,"column":28},"end":{"line":140,"column":29}},"loc":{"start":{"line":140,"column":45},"end":{"line":145,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":67,"column":8},"end":{"line":67,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":26},"end":{"line":67,"column":47}},{"start":{"line":67,"column":50},"end":{"line":67,"column":null}}]},"1":{"loc":{"start":{"line":73,"column":10},"end":{"line":73,"column":null}},"type":"cond-expr","locations":[{"start":{"line":73,"column":28},"end":{"line":73,"column":46}},{"start":{"line":73,"column":46},"end":{"line":73,"column":null}}]},"2":{"loc":{"start":{"line":101,"column":23},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":101,"column":41},"end":{"line":101,"column":63}},{"start":{"line":101,"column":63},"end":{"line":101,"column":null}}]},"3":{"loc":{"start":{"line":133,"column":29},"end":{"line":133,"column":null}},"type":"cond-expr","locations":[{"start":{"line":133,"column":47},"end":{"line":133,"column":59}},{"start":{"line":133,"column":59},"end":{"line":133,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiSelectField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiSelectField.stories.js","statementMap":{"0":{"start":{"line":20,"column":13},"end":{"line":20,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":33},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"5":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"6":{"start":{"line":21,"column":0},"end":{"line":55,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.js","statementMap":{"0":{"start":{"line":8,"column":16},"end":{"line":8,"column":31}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"4":{"start":{"line":9,"column":16},"end":{"line":9,"column":null}},"5":{"start":{"line":41,"column":25},"end":{"line":41,"column":null}},"6":{"start":{"line":57,"column":0},"end":{"line":141,"column":null}}},"fnMap":{"0":{"name":"MultiTextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":31}},"loc":{"start":{"line":8,"column":77},"end":{"line":55,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":19}},"loc":{"start":{"line":41,"column":25},"end":{"line":41,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":33},"end":{"line":8,"column":50}},"type":"default-arg","locations":[{"start":{"line":8,"column":46},"end":{"line":8,"column":50}}]},"1":{"loc":{"start":{"line":8,"column":52},"end":{"line":8,"column":65}},"type":"default-arg","locations":[{"start":{"line":8,"column":59},"end":{"line":8,"column":65}}]},"2":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":null}},"type":"cond-expr","locations":[{"start":{"line":14,"column":26},"end":{"line":14,"column":47}},{"start":{"line":14,"column":50},"end":{"line":14,"column":null}}]},"3":{"loc":{"start":{"line":19,"column":10},"end":{"line":19,"column":null}},"type":"cond-expr","locations":[{"start":{"line":19,"column":28},"end":{"line":19,"column":42}},{"start":{"line":19,"column":42},"end":{"line":19,"column":null}}]},"4":{"loc":{"start":{"line":23,"column":9},"end":{"line":27,"column":23}},"type":"cond-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":27,"column":23}},{"start":{"line":27,"column":12},"end":{"line":27,"column":23}}]},"5":{"loc":{"start":{"line":33,"column":7},"end":{"line":33,"column":null}},"type":"cond-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":null}},{"start":{"line":33,"column":60},"end":{"line":33,"column":null}}]},"6":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":36,"column":24},"end":{"line":36,"column":52}},{"start":{"line":36,"column":52},"end":{"line":36,"column":null}}]}},"s":{"0":5,"1":3,"2":3,"3":3,"4":4,"5":1,"6":3},"f":{"0":4,"1":1},"b":{"0":[4],"1":[3],"2":[0,4],"3":[1,3],"4":[0,4],"5":[0,4],"6":[0,4]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/MultiTextField.stories.js","statementMap":{"0":{"start":{"line":29,"column":13},"end":{"line":29,"column":22}},"1":{"start":{"line":39,"column":13},"end":{"line":39,"column":21}},"2":{"start":{"line":20,"column":13},"end":{"line":20,"column":20}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"4":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"5":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"6":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"7":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"8":{"start":{"line":21,"column":0},"end":{"line":27,"column":null}},"9":{"start":{"line":29,"column":25},"end":{"line":29,"column":null}},"10":{"start":{"line":30,"column":0},"end":{"line":37,"column":null}},"11":{"start":{"line":39,"column":24},"end":{"line":39,"column":null}},"12":{"start":{"line":40,"column":0},"end":{"line":49,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0,"2":4,"3":0,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":4,"column":28}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"3":{"start":{"line":44,"column":0},"end":{"line":51,"column":null}}},"fnMap":{"0":{"name":"ProjectInfo","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":28}},"loc":{"start":{"line":4,"column":33},"end":{"line":42,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":11},"end":{"line":12,"column":null}},"type":"binary-expr","locations":[{"start":{"line":12,"column":11},"end":{"line":12,"column":28}},{"start":{"line":12,"column":32},"end":{"line":12,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":11},"end":{"line":18,"column":null}},"type":"binary-expr","locations":[{"start":{"line":18,"column":11},"end":{"line":18,"column":26}},{"start":{"line":18,"column":30},"end":{"line":18,"column":null}}]}},"s":{"0":9,"1":7,"2":7,"3":7},"f":{"0":8},"b":{"0":[8,8],"1":[8,2]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/ProjectInfo.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":1,"column":28},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"4":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"5":{"start":{"line":12,"column":0},"end":{"line":17,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":28}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":7,"column":28},"end":{"line":13,"column":null}},"3":{"start":{"line":23,"column":10},"end":{"line":23,"column":null}},"4":{"start":{"line":26,"column":10},"end":{"line":32,"column":null}},"5":{"start":{"line":27,"column":12},"end":{"line":27,"column":null}},"6":{"start":{"line":28,"column":12},"end":{"line":30,"column":null}},"7":{"start":{"line":29,"column":14},"end":{"line":29,"column":null}},"8":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"9":{"start":{"line":51,"column":0},"end":{"line":111,"column":null}}},"fnMap":{"0":{"name":"RadioButton","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":57},"end":{"line":49,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":19},"end":{"line":24,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":25,"column":17},"end":{"line":25,"column":18}},"loc":{"start":{"line":25,"column":18},"end":{"line":33,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":30},"end":{"line":6,"column":45}},"type":"default-arg","locations":[{"start":{"line":6,"column":40},"end":{"line":6,"column":45}}]},"1":{"loc":{"start":{"line":7,"column":28},"end":{"line":13,"column":null}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":null}},{"start":{"line":11,"column":6},"end":{"line":13,"column":null}}]},"2":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":null}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":35}},{"start":{"line":12,"column":35},"end":{"line":12,"column":null}}]},"3":{"loc":{"start":{"line":26,"column":10},"end":{"line":32,"column":null}},"type":"if","locations":[{"start":{"line":26,"column":10},"end":{"line":32,"column":null}}]},"4":{"loc":{"start":{"line":28,"column":12},"end":{"line":30,"column":null}},"type":"if","locations":[{"start":{"line":28,"column":12},"end":{"line":30,"column":null}}]},"5":{"loc":{"start":{"line":41,"column":10},"end":{"line":41,"column":null}},"type":"cond-expr","locations":[{"start":{"line":41,"column":31},"end":{"line":41,"column":49}},{"start":{"line":41,"column":49},"end":{"line":41,"column":null}}]},"6":{"loc":{"start":{"line":42,"column":11},"end":{"line":42,"column":52}},"type":"cond-expr","locations":[{"start":{"line":42,"column":31},"end":{"line":42,"column":49}},{"start":{"line":42,"column":49},"end":{"line":42,"column":52}}]}},"s":{"0":17,"1":2,"2":16,"3":3,"4":1,"5":1,"6":1,"7":0,"8":1,"9":2},"f":{"0":16,"1":3,"2":1},"b":{"0":[6],"1":[15,1],"2":[1,1],"3":[1],"4":[0],"5":[4,12],"6":[4,12]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioButton.stories.js","statementMap":{"0":{"start":{"line":20,"column":13},"end":{"line":20,"column":20}},"1":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"2":{"start":{"line":50,"column":13},"end":{"line":50,"column":24}},"3":{"start":{"line":40,"column":13},"end":{"line":40,"column":25}},"4":{"start":{"line":30,"column":13},"end":{"line":30,"column":25}},"5":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"6":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"7":{"start":{"line":2,"column":28},"end":{"line":2,"column":null}},"8":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"9":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"10":{"start":{"line":12,"column":0},"end":{"line":18,"column":null}},"11":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"12":{"start":{"line":21,"column":0},"end":{"line":28,"column":null}},"13":{"start":{"line":30,"column":28},"end":{"line":30,"column":null}},"14":{"start":{"line":31,"column":0},"end":{"line":38,"column":null}},"15":{"start":{"line":40,"column":28},"end":{"line":40,"column":null}},"16":{"start":{"line":41,"column":0},"end":{"line":48,"column":null}},"17":{"start":{"line":50,"column":27},"end":{"line":50,"column":null}},"18":{"start":{"line":51,"column":0},"end":{"line":58,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":12,"2":3,"3":3,"4":3,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":7,"column":28},"end":{"line":11,"column":null}},"3":{"start":{"line":25,"column":10},"end":{"line":28,"column":null}},"4":{"start":{"line":42,"column":23},"end":{"line":42,"column":null}},"5":{"start":{"line":50,"column":0},"end":{"line":109,"column":null}}},"fnMap":{"0":{"name":"RadioField","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":72},"end":{"line":48,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":18},"end":{"line":24,"column":19}},"loc":{"start":{"line":25,"column":10},"end":{"line":28,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":42,"column":17},"end":{"line":42,"column":23}},"loc":{"start":{"line":42,"column":23},"end":{"line":42,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":29},"end":{"line":6,"column":44}},"type":"default-arg","locations":[{"start":{"line":6,"column":39},"end":{"line":6,"column":44}}]},"1":{"loc":{"start":{"line":6,"column":46},"end":{"line":6,"column":60}},"type":"default-arg","locations":[{"start":{"line":6,"column":54},"end":{"line":6,"column":60}}]},"2":{"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":null}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":null}},{"start":{"line":11,"column":6},"end":{"line":11,"column":null}}]},"3":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"type":"cond-expr","locations":[{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},{"start":{"line":15,"column":50},"end":{"line":15,"column":null}}]},"4":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":null}},"type":"cond-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":57}},{"start":{"line":26,"column":60},"end":{"line":26,"column":null}}]},"5":{"loc":{"start":{"line":32,"column":22},"end":{"line":32,"column":null}},"type":"cond-expr","locations":[{"start":{"line":32,"column":36},"end":{"line":32,"column":45}},{"start":{"line":32,"column":45},"end":{"line":32,"column":null}}]},"6":{"loc":{"start":{"line":39,"column":10},"end":{"line":39,"column":null}},"type":"cond-expr","locations":[{"start":{"line":39,"column":24},"end":{"line":39,"column":51}},{"start":{"line":39,"column":51},"end":{"line":39,"column":null}}]}},"s":{"0":10,"1":4,"2":8,"3":1,"4":0,"5":4},"f":{"0":8,"1":1,"2":0},"b":{"0":[4],"1":[2],"2":[8,0],"3":[0,8],"4":[0,1],"5":[0,8],"6":[0,8]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/RadioField.stories.js","statementMap":{"0":{"start":{"line":29,"column":13},"end":{"line":29,"column":20}},"1":{"start":{"line":20,"column":13},"end":{"line":20,"column":22}},"2":{"start":{"line":39,"column":13},"end":{"line":39,"column":25}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"4":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"5":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"6":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"7":{"start":{"line":20,"column":25},"end":{"line":20,"column":null}},"8":{"start":{"line":21,"column":0},"end":{"line":27,"column":null}},"9":{"start":{"line":29,"column":23},"end":{"line":29,"column":null}},"10":{"start":{"line":30,"column":0},"end":{"line":37,"column":null}},"11":{"start":{"line":39,"column":28},"end":{"line":39,"column":null}},"12":{"start":{"line":40,"column":0},"end":{"line":47,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":7,"2":0,"3":0,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":33,"column":0},"end":{"line":53,"column":null}}},"fnMap":{"0":{"name":"SearchBar","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":31},"end":{"line":31,"column":null}}}},"branchMap":{},"s":{"0":3,"1":1,"2":1},"f":{"0":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SearchBar.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":1,"column":26},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"4":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"5":{"start":{"line":12,"column":0},"end":{"line":14,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":28}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"4":{"start":{"line":6,"column":16},"end":{"line":6,"column":null}},"5":{"start":{"line":8,"column":28},"end":{"line":12,"column":null}},"6":{"start":{"line":14,"column":2},"end":{"line":19,"column":null}},"7":{"start":{"line":15,"column":4},"end":{"line":18,"column":null}},"8":{"start":{"line":16,"column":21},"end":{"line":16,"column":null}},"9":{"start":{"line":17,"column":6},"end":{"line":17,"column":null}},"10":{"start":{"line":49,"column":25},"end":{"line":49,"column":null}},"11":{"start":{"line":61,"column":10},"end":{"line":62,"column":29}},"12":{"start":{"line":84,"column":0},"end":{"line":162,"column":null}}},"fnMap":{"0":{"name":"SelectField","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":28}},"loc":{"start":{"line":5,"column":52},"end":{"line":82,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":23},"end":{"line":15,"column":33}},"loc":{"start":{"line":15,"column":37},"end":{"line":18,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":49,"column":18},"end":{"line":49,"column":19}},"loc":{"start":{"line":49,"column":25},"end":{"line":49,"column":null}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":60,"column":27},"end":{"line":60,"column":28}},"loc":{"start":{"line":60,"column":47},"end":{"line":66,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":30},"end":{"line":5,"column":40}},"type":"default-arg","locations":[{"start":{"line":5,"column":38},"end":{"line":5,"column":40}}]},"1":{"loc":{"start":{"line":8,"column":28},"end":{"line":12,"column":null}},"type":"cond-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":11,"column":null}},{"start":{"line":12,"column":6},"end":{"line":12,"column":null}}]},"2":{"loc":{"start":{"line":14,"column":2},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":19,"column":null}}]},"3":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":null}},"type":"cond-expr","locations":[{"start":{"line":24,"column":26},"end":{"line":24,"column":47}},{"start":{"line":24,"column":50},"end":{"line":24,"column":null}}]},"4":{"loc":{"start":{"line":29,"column":10},"end":{"line":29,"column":null}},"type":"cond-expr","locations":[{"start":{"line":29,"column":28},"end":{"line":29,"column":42}},{"start":{"line":29,"column":42},"end":{"line":29,"column":null}}]},"5":{"loc":{"start":{"line":33,"column":9},"end":{"line":37,"column":23}},"type":"cond-expr","locations":[{"start":{"line":34,"column":10},"end":{"line":37,"column":23}},{"start":{"line":37,"column":12},"end":{"line":37,"column":23}}]},"6":{"loc":{"start":{"line":40,"column":7},"end":{"line":40,"column":null}},"type":"cond-expr","locations":[{"start":{"line":40,"column":21},"end":{"line":40,"column":null}},{"start":{"line":40,"column":60},"end":{"line":40,"column":null}}]},"7":{"loc":{"start":{"line":43,"column":10},"end":{"line":43,"column":null}},"type":"cond-expr","locations":[{"start":{"line":43,"column":24},"end":{"line":43,"column":52}},{"start":{"line":43,"column":52},"end":{"line":43,"column":null}}]},"8":{"loc":{"start":{"line":48,"column":22},"end":{"line":48,"column":null}},"type":"cond-expr","locations":[{"start":{"line":48,"column":36},"end":{"line":48,"column":45}},{"start":{"line":48,"column":45},"end":{"line":48,"column":null}}]},"9":{"loc":{"start":{"line":67,"column":9},"end":{"line":77,"column":null}},"type":"cond-expr","locations":[{"start":{"line":68,"column":10},"end":{"line":69,"column":null}},{"start":{"line":77,"column":10},"end":{"line":77,"column":null}}]}},"s":{"0":4,"1":1,"2":1,"3":1,"4":2,"5":2,"6":2,"7":2,"8":6,"9":6,"10":0,"11":8,"12":1},"f":{"0":2,"1":6,"2":0,"3":8},"b":{"0":[2],"1":[0,2],"2":[2],"3":[0,2],"4":[0,2],"5":[0,2],"6":[0,2],"7":[0,2],"8":[0,2],"9":[0,2]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/SelectField.stories.js","statementMap":{"0":{"start":{"line":20,"column":13},"end":{"line":20,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":28},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"5":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"6":{"start":{"line":21,"column":0},"end":{"line":49,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":32}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":10,"column":12},"end":{"line":10,"column":null}},"3":{"start":{"line":25,"column":0},"end":{"line":34,"column":null}}},"fnMap":{"0":{"name":"TableOfContents","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":37},"end":{"line":23,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":10,"column":12},"end":{"line":10,"column":null}}}},"branchMap":{},"s":{"0":3,"1":1,"2":2,"3":1},"f":{"0":2,"1":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TableOfContents.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":1,"column":32},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"4":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"5":{"start":{"line":12,"column":0},"end":{"line":15,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.js","statementMap":{"0":{"start":{"line":8,"column":16},"end":{"line":8,"column":26}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"4":{"start":{"line":9,"column":16},"end":{"line":9,"column":null}},"5":{"start":{"line":11,"column":28},"end":{"line":15,"column":null}},"6":{"start":{"line":61,"column":25},"end":{"line":61,"column":null}},"7":{"start":{"line":70,"column":0},"end":{"line":170,"column":null}}},"fnMap":{"0":{"name":"TextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":26}},"loc":{"start":{"line":8,"column":65},"end":{"line":69,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":61,"column":18},"end":{"line":61,"column":19}},"loc":{"start":{"line":61,"column":25},"end":{"line":61,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":28},"end":{"line":8,"column":38}},"type":"default-arg","locations":[{"start":{"line":8,"column":36},"end":{"line":8,"column":38}}]},"1":{"loc":{"start":{"line":8,"column":40},"end":{"line":8,"column":53}},"type":"default-arg","locations":[{"start":{"line":8,"column":47},"end":{"line":8,"column":53}}]},"2":{"loc":{"start":{"line":11,"column":28},"end":{"line":15,"column":null}},"type":"cond-expr","locations":[{"start":{"line":12,"column":6},"end":{"line":14,"column":null}},{"start":{"line":15,"column":6},"end":{"line":15,"column":null}}]},"3":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":null}},"type":"cond-expr","locations":[{"start":{"line":19,"column":26},"end":{"line":19,"column":47}},{"start":{"line":19,"column":50},"end":{"line":19,"column":null}}]},"4":{"loc":{"start":{"line":24,"column":10},"end":{"line":24,"column":null}},"type":"cond-expr","locations":[{"start":{"line":24,"column":28},"end":{"line":24,"column":42}},{"start":{"line":24,"column":42},"end":{"line":24,"column":null}}]},"5":{"loc":{"start":{"line":28,"column":9},"end":{"line":32,"column":23}},"type":"cond-expr","locations":[{"start":{"line":29,"column":10},"end":{"line":32,"column":23}},{"start":{"line":32,"column":12},"end":{"line":32,"column":23}}]},"6":{"loc":{"start":{"line":35,"column":7},"end":{"line":43,"column":null}},"type":"cond-expr","locations":[{"start":{"line":36,"column":8},"end":{"line":43,"column":null}},{"start":{"line":43,"column":8},"end":{"line":43,"column":null}}]},"7":{"loc":{"start":{"line":46,"column":7},"end":{"line":46,"column":null}},"type":"cond-expr","locations":[{"start":{"line":46,"column":21},"end":{"line":46,"column":null}},{"start":{"line":46,"column":60},"end":{"line":46,"column":null}}]},"8":{"loc":{"start":{"line":49,"column":10},"end":{"line":49,"column":null}},"type":"cond-expr","locations":[{"start":{"line":49,"column":24},"end":{"line":49,"column":52}},{"start":{"line":49,"column":52},"end":{"line":49,"column":null}}]},"9":{"loc":{"start":{"line":50,"column":12},"end":{"line":50,"column":43}},"type":"cond-expr","locations":[{"start":{"line":50,"column":28},"end":{"line":50,"column":40}},{"start":{"line":50,"column":40},"end":{"line":50,"column":43}}]},"10":{"loc":{"start":{"line":60,"column":22},"end":{"line":60,"column":null}},"type":"cond-expr","locations":[{"start":{"line":60,"column":36},"end":{"line":60,"column":45}},{"start":{"line":60,"column":45},"end":{"line":60,"column":null}}]}},"s":{"0":7,"1":3,"2":3,"3":3,"4":6,"5":6,"6":2,"7":3},"f":{"0":6,"1":2},"b":{"0":[6],"1":[6],"2":[3,3],"3":[0,6],"4":[1,5],"5":[0,6],"6":[0,6],"7":[0,6],"8":[0,6],"9":[0,6],"10":[0,6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/TextField.stories.js","statementMap":{"0":{"start":{"line":39,"column":13},"end":{"line":39,"column":22}},"1":{"start":{"line":20,"column":13},"end":{"line":20,"column":20}},"2":{"start":{"line":29,"column":13},"end":{"line":29,"column":25}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"4":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"5":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"6":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"7":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"8":{"start":{"line":21,"column":0},"end":{"line":27,"column":null}},"9":{"start":{"line":29,"column":28},"end":{"line":29,"column":null}},"10":{"start":{"line":30,"column":0},"end":{"line":37,"column":null}},"11":{"start":{"line":39,"column":25},"end":{"line":39,"column":null}},"12":{"start":{"line":40,"column":0},"end":{"line":48,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":4,"2":2,"3":0,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/UpdateInfo.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/atoms/UpdateInfo.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":4,"column":27}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":21},"end":{"line":2,"column":null}},"3":{"start":{"line":32,"column":0},"end":{"line":40,"column":null}}},"fnMap":{"0":{"name":"UpdateInfo","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":27}},"loc":{"start":{"line":4,"column":32},"end":{"line":30,"column":null}}}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/FragmentRender.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/FragmentRender.js","statementMap":{"0":{"start":{"line":185,"column":24},"end":{"line":185,"column":39}},"1":{"start":{"line":1,"column":27},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":24},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":19},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":23},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":37},"end":{"line":6,"column":null}},"7":{"start":{"line":7,"column":30},"end":{"line":7,"column":null}},"8":{"start":{"line":8,"column":23},"end":{"line":8,"column":null}},"9":{"start":{"line":10,"column":18},"end":{"line":17,"column":null}},"10":{"start":{"line":19,"column":28},"end":{"line":183,"column":null}},"11":{"start":{"line":20,"column":2},"end":{"line":182,"column":null}},"12":{"start":{"line":22,"column":6},"end":{"line":45,"column":null}},"13":{"start":{"line":48,"column":6},"end":{"line":107,"column":null}},"14":{"start":{"line":50,"column":10},"end":{"line":68,"column":null}},"15":{"start":{"line":70,"column":10},"end":{"line":104,"column":null}},"16":{"start":{"line":106,"column":10},"end":{"line":106,"column":null}},"17":{"start":{"line":110,"column":6},"end":{"line":119,"column":null}},"18":{"start":{"line":122,"column":6},"end":{"line":127,"column":null}},"19":{"start":{"line":130,"column":6},"end":{"line":138,"column":null}},"20":{"start":{"line":141,"column":6},"end":{"line":179,"column":null}},"21":{"start":{"line":181,"column":6},"end":{"line":181,"column":null}},"22":{"start":{"line":188,"column":24},"end":{"line":204,"column":null}},"23":{"start":{"line":189,"column":21},"end":{"line":189,"column":58}},"24":{"start":{"line":190,"column":4},"end":{"line":192,"column":null}},"25":{"start":{"line":191,"column":6},"end":{"line":191,"column":null}},"26":{"start":{"line":193,"column":4},"end":{"line":195,"column":null}},"27":{"start":{"line":206,"column":2},"end":{"line":206,"column":null}}},"fnMap":{"0":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":28},"end":{"line":19,"column":29}},"loc":{"start":{"line":19,"column":65},"end":{"line":183,"column":null}}},"1":{"name":"FragmentRender","decl":{"start":{"line":185,"column":24},"end":{"line":185,"column":39}},"loc":{"start":{"line":185,"column":44},"end":{"line":207,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":188,"column":44},"end":{"line":188,"column":45}},"loc":{"start":{"line":188,"column":45},"end":{"line":204,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":2},"end":{"line":182,"column":null}},"type":"switch","locations":[{"start":{"line":21,"column":4},"end":{"line":45,"column":null}},{"start":{"line":47,"column":4},"end":{"line":107,"column":null}},{"start":{"line":109,"column":4},"end":{"line":119,"column":null}},{"start":{"line":121,"column":4},"end":{"line":127,"column":null}},{"start":{"line":129,"column":4},"end":{"line":138,"column":null}},{"start":{"line":140,"column":4},"end":{"line":179,"column":null}},{"start":{"line":180,"column":4},"end":{"line":181,"column":null}}]},"1":{"loc":{"start":{"line":24,"column":10},"end":{"line":24,"column":75}},"type":"cond-expr","locations":[{"start":{"line":24,"column":28},"end":{"line":24,"column":50}},{"start":{"line":24,"column":53},"end":{"line":24,"column":75}}]},"2":{"loc":{"start":{"line":28,"column":14},"end":{"line":30,"column":47}},"type":"cond-expr","locations":[{"start":{"line":29,"column":18},"end":{"line":29,"column":47}},{"start":{"line":30,"column":18},"end":{"line":30,"column":47}}]},"3":{"loc":{"start":{"line":37,"column":12},"end":{"line":39,"column":54}},"type":"cond-expr","locations":[{"start":{"line":38,"column":16},"end":{"line":38,"column":54}},{"start":{"line":39,"column":16},"end":{"line":39,"column":54}}]},"4":{"loc":{"start":{"line":41,"column":12},"end":{"line":43,"column":63}},"type":"cond-expr","locations":[{"start":{"line":42,"column":16},"end":{"line":42,"column":63}},{"start":{"line":43,"column":16},"end":{"line":43,"column":63}}]},"5":{"loc":{"start":{"line":48,"column":6},"end":{"line":107,"column":null}},"type":"switch","locations":[{"start":{"line":49,"column":8},"end":{"line":68,"column":null}},{"start":{"line":69,"column":8},"end":{"line":104,"column":null}},{"start":{"line":105,"column":8},"end":{"line":106,"column":null}}]},"6":{"loc":{"start":{"line":52,"column":14},"end":{"line":54,"column":63}},"type":"cond-expr","locations":[{"start":{"line":53,"column":18},"end":{"line":53,"column":63}},{"start":{"line":54,"column":18},"end":{"line":54,"column":63}}]},"7":{"loc":{"start":{"line":55,"column":17},"end":{"line":59,"column":null}},"type":"cond-expr","locations":[{"start":{"line":56,"column":16},"end":{"line":58,"column":58}},{"start":{"line":59,"column":16},"end":{"line":59,"column":null}}]},"8":{"loc":{"start":{"line":56,"column":16},"end":{"line":58,"column":58}},"type":"cond-expr","locations":[{"start":{"line":57,"column":18},"end":{"line":57,"column":58}},{"start":{"line":58,"column":18},"end":{"line":58,"column":58}}]},"9":{"loc":{"start":{"line":63,"column":14},"end":{"line":65,"column":63}},"type":"cond-expr","locations":[{"start":{"line":64,"column":18},"end":{"line":64,"column":63}},{"start":{"line":65,"column":18},"end":{"line":65,"column":63}}]},"10":{"loc":{"start":{"line":72,"column":14},"end":{"line":74,"column":63}},"type":"cond-expr","locations":[{"start":{"line":73,"column":18},"end":{"line":73,"column":63}},{"start":{"line":74,"column":18},"end":{"line":74,"column":63}}]},"11":{"loc":{"start":{"line":75,"column":17},"end":{"line":79,"column":null}},"type":"cond-expr","locations":[{"start":{"line":76,"column":16},"end":{"line":78,"column":58}},{"start":{"line":79,"column":16},"end":{"line":79,"column":null}}]},"12":{"loc":{"start":{"line":76,"column":16},"end":{"line":78,"column":58}},"type":"cond-expr","locations":[{"start":{"line":77,"column":18},"end":{"line":77,"column":58}},{"start":{"line":78,"column":18},"end":{"line":78,"column":58}}]},"13":{"loc":{"start":{"line":83,"column":14},"end":{"line":85,"column":63}},"type":"cond-expr","locations":[{"start":{"line":84,"column":18},"end":{"line":84,"column":63}},{"start":{"line":85,"column":18},"end":{"line":85,"column":63}}]},"14":{"loc":{"start":{"line":88,"column":14},"end":{"line":90,"column":61}},"type":"cond-expr","locations":[{"start":{"line":89,"column":18},"end":{"line":89,"column":61}},{"start":{"line":90,"column":18},"end":{"line":90,"column":61}}]},"15":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":54}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":54}},{"start":{"line":94,"column":18},"end":{"line":94,"column":54}}]},"16":{"loc":{"start":{"line":98,"column":18},"end":{"line":100,"column":null}},"type":"cond-expr","locations":[{"start":{"line":99,"column":22},"end":{"line":99,"column":null}},{"start":{"line":100,"column":22},"end":{"line":100,"column":null}}]},"17":{"loc":{"start":{"line":112,"column":10},"end":{"line":114,"column":59}},"type":"cond-expr","locations":[{"start":{"line":113,"column":14},"end":{"line":113,"column":59}},{"start":{"line":114,"column":14},"end":{"line":114,"column":59}}]},"18":{"loc":{"start":{"line":116,"column":10},"end":{"line":118,"column":59}},"type":"cond-expr","locations":[{"start":{"line":117,"column":14},"end":{"line":117,"column":59}},{"start":{"line":118,"column":14},"end":{"line":118,"column":59}}]},"19":{"loc":{"start":{"line":124,"column":10},"end":{"line":126,"column":43}},"type":"cond-expr","locations":[{"start":{"line":125,"column":14},"end":{"line":125,"column":43}},{"start":{"line":126,"column":14},"end":{"line":126,"column":43}}]},"20":{"loc":{"start":{"line":134,"column":10},"end":{"line":136,"column":45}},"type":"cond-expr","locations":[{"start":{"line":135,"column":14},"end":{"line":135,"column":45}},{"start":{"line":136,"column":14},"end":{"line":136,"column":45}}]},"21":{"loc":{"start":{"line":137,"column":14},"end":{"line":137,"column":79}},"type":"cond-expr","locations":[{"start":{"line":137,"column":32},"end":{"line":137,"column":54}},{"start":{"line":137,"column":57},"end":{"line":137,"column":79}}]},"22":{"loc":{"start":{"line":144,"column":10},"end":{"line":146,"column":48}},"type":"cond-expr","locations":[{"start":{"line":145,"column":14},"end":{"line":145,"column":48}},{"start":{"line":146,"column":14},"end":{"line":146,"column":48}}]},"23":{"loc":{"start":{"line":148,"column":10},"end":{"line":150,"column":43}},"type":"cond-expr","locations":[{"start":{"line":149,"column":14},"end":{"line":149,"column":43}},{"start":{"line":150,"column":14},"end":{"line":150,"column":43}}]},"24":{"loc":{"start":{"line":156,"column":14},"end":{"line":158,"column":52}},"type":"cond-expr","locations":[{"start":{"line":157,"column":18},"end":{"line":157,"column":52}},{"start":{"line":158,"column":18},"end":{"line":158,"column":52}}]},"25":{"loc":{"start":{"line":163,"column":10},"end":{"line":165,"column":46}},"type":"cond-expr","locations":[{"start":{"line":164,"column":14},"end":{"line":164,"column":46}},{"start":{"line":165,"column":14},"end":{"line":165,"column":46}}]},"26":{"loc":{"start":{"line":167,"column":10},"end":{"line":169,"column":39}},"type":"cond-expr","locations":[{"start":{"line":168,"column":14},"end":{"line":168,"column":39}},{"start":{"line":169,"column":14},"end":{"line":169,"column":39}}]},"27":{"loc":{"start":{"line":173,"column":14},"end":{"line":175,"column":48}},"type":"cond-expr","locations":[{"start":{"line":174,"column":18},"end":{"line":174,"column":48}},{"start":{"line":175,"column":18},"end":{"line":175,"column":48}}]},"28":{"loc":{"start":{"line":190,"column":4},"end":{"line":192,"column":null}},"type":"if","locations":[{"start":{"line":190,"column":4},"end":{"line":192,"column":null}}]}},"s":{"0":11,"1":4,"2":4,"3":4,"4":4,"5":4,"6":4,"7":4,"8":4,"9":4,"10":4,"11":17,"12":1,"13":3,"14":2,"15":1,"16":0,"17":1,"18":6,"19":5,"20":1,"21":0,"22":11,"23":17,"24":17,"25":0,"26":17,"27":10},"f":{"0":17,"1":11,"2":17},"b":{"0":[1,3,1,6,5,1,0],"1":[1,0],"2":[1,0],"3":[1,0],"4":[1,0],"5":[2,1,0],"6":[1,1],"7":[1,1],"8":[1,0],"9":[1,1],"10":[1,0],"11":[1,0],"12":[1,0],"13":[1,0],"14":[1,0],"15":[1,0],"16":[1,0],"17":[1,0],"18":[1,0],"19":[1,5],"20":[1,4],"21":[1,4],"22":[1,0],"23":[1,0],"24":[1,0],"25":[1,0],"26":[1,0],"27":[1,0],"28":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/FragmentRender.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/FragmentRender.stories.js","statementMap":{"0":{"start":{"line":13,"column":13},"end":{"line":13,"column":23}},"1":{"start":{"line":18,"column":13},"end":{"line":18,"column":19}},"2":{"start":{"line":19,"column":13},"end":{"line":19,"column":30}},"3":{"start":{"line":16,"column":13},"end":{"line":16,"column":37}},"4":{"start":{"line":17,"column":13},"end":{"line":17,"column":24}},"5":{"start":{"line":14,"column":13},"end":{"line":14,"column":26}},"6":{"start":{"line":15,"column":13},"end":{"line":15,"column":34}},"7":{"start":{"line":5,"column":0},"end":{"line":5,"column":15}},"8":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"9":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"10":{"start":{"line":3,"column":29},"end":{"line":3,"column":null}},"11":{"start":{"line":5,"column":15},"end":{"line":9,"column":2}},"12":{"start":{"line":13,"column":26},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":29},"end":{"line":14,"column":null}},"14":{"start":{"line":15,"column":37},"end":{"line":15,"column":null}},"15":{"start":{"line":16,"column":40},"end":{"line":16,"column":null}},"16":{"start":{"line":17,"column":27},"end":{"line":17,"column":null}},"17":{"start":{"line":18,"column":22},"end":{"line":18,"column":null}},"18":{"start":{"line":19,"column":33},"end":{"line":19,"column":null}},"19":{"start":{"line":21,"column":0},"end":{"line":87,"column":null}},"20":{"start":{"line":89,"column":0},"end":{"line":680,"column":null}},"21":{"start":{"line":682,"column":0},"end":{"line":1212,"column":null}},"22":{"start":{"line":1214,"column":0},"end":{"line":1270,"column":null}},"23":{"start":{"line":1272,"column":0},"end":{"line":1327,"column":null}},"24":{"start":{"line":1329,"column":0},"end":{"line":1346,"column":null}},"25":{"start":{"line":1348,"column":0},"end":{"line":1425,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/PageHead.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/PageHead.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"1":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}}},"fnMap":{"0":{"name":"PageHead","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":38},"end":{"line":161,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":9},"end":{"line":10,"column":74}},"type":"cond-expr","locations":[{"start":{"line":9,"column":12},"end":{"line":9,"column":63}},{"start":{"line":10,"column":12},"end":{"line":10,"column":74}}]},"1":{"loc":{"start":{"line":15,"column":10},"end":{"line":17,"column":69}},"type":"cond-expr","locations":[{"start":{"line":16,"column":14},"end":{"line":16,"column":69}},{"start":{"line":17,"column":14},"end":{"line":17,"column":69}}]},"2":{"loc":{"start":{"line":26,"column":10},"end":{"line":28,"column":41}},"type":"cond-expr","locations":[{"start":{"line":27,"column":14},"end":{"line":27,"column":41}},{"start":{"line":28,"column":14},"end":{"line":28,"column":41}}]},"3":{"loc":{"start":{"line":36,"column":10},"end":{"line":38,"column":38}},"type":"cond-expr","locations":[{"start":{"line":37,"column":14},"end":{"line":37,"column":38}},{"start":{"line":38,"column":14},"end":{"line":38,"column":38}}]},"4":{"loc":{"start":{"line":43,"column":17},"end":{"line":43,"column":null}},"type":"cond-expr","locations":[{"start":{"line":43,"column":41},"end":{"line":43,"column":49}},{"start":{"line":43,"column":49},"end":{"line":43,"column":null}}]},"5":{"loc":{"start":{"line":49,"column":10},"end":{"line":51,"column":null}},"type":"cond-expr","locations":[{"start":{"line":50,"column":14},"end":{"line":50,"column":null}},{"start":{"line":51,"column":14},"end":{"line":51,"column":null}}]},"6":{"loc":{"start":{"line":62,"column":10},"end":{"line":64,"column":38}},"type":"cond-expr","locations":[{"start":{"line":63,"column":14},"end":{"line":63,"column":38}},{"start":{"line":64,"column":14},"end":{"line":64,"column":38}}]},"7":{"loc":{"start":{"line":82,"column":12},"end":{"line":84,"column":43}},"type":"cond-expr","locations":[{"start":{"line":83,"column":16},"end":{"line":83,"column":43}},{"start":{"line":84,"column":16},"end":{"line":84,"column":43}}]},"8":{"loc":{"start":{"line":91,"column":10},"end":{"line":93,"column":38}},"type":"cond-expr","locations":[{"start":{"line":92,"column":14},"end":{"line":92,"column":38}},{"start":{"line":93,"column":14},"end":{"line":93,"column":38}}]},"9":{"loc":{"start":{"line":99,"column":10},"end":{"line":101,"column":38}},"type":"cond-expr","locations":[{"start":{"line":100,"column":14},"end":{"line":100,"column":38}},{"start":{"line":101,"column":14},"end":{"line":101,"column":38}}]},"10":{"loc":{"start":{"line":111,"column":10},"end":{"line":113,"column":38}},"type":"cond-expr","locations":[{"start":{"line":112,"column":14},"end":{"line":112,"column":38}},{"start":{"line":113,"column":14},"end":{"line":113,"column":38}}]},"11":{"loc":{"start":{"line":124,"column":12},"end":{"line":126,"column":43}},"type":"cond-expr","locations":[{"start":{"line":125,"column":16},"end":{"line":125,"column":43}},{"start":{"line":126,"column":16},"end":{"line":126,"column":43}}]},"12":{"loc":{"start":{"line":133,"column":10},"end":{"line":135,"column":38}},"type":"cond-expr","locations":[{"start":{"line":134,"column":14},"end":{"line":134,"column":38}},{"start":{"line":135,"column":14},"end":{"line":135,"column":38}}]},"13":{"loc":{"start":{"line":142,"column":10},"end":{"line":144,"column":38}},"type":"cond-expr","locations":[{"start":{"line":143,"column":14},"end":{"line":143,"column":38}},{"start":{"line":144,"column":14},"end":{"line":144,"column":38}}]},"14":{"loc":{"start":{"line":154,"column":10},"end":{"line":156,"column":38}},"type":"cond-expr","locations":[{"start":{"line":155,"column":14},"end":{"line":155,"column":38}},{"start":{"line":156,"column":14},"end":{"line":156,"column":38}}]}},"s":{"0":0,"1":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ArticleCTA.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ArticleCTA.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"1":{"start":{"line":1,"column":20},"end":{"line":1,"column":null}}},"fnMap":{"0":{"name":"ArticleCTA","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":76},"end":{"line":13,"column":null}}}},"branchMap":{},"s":{"0":6,"1":5},"f":{"0":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ArticleCTA.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ArticleCTA.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":0},"end":{"line":22,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/BasicTextWithImage.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/BasicTextWithImage.js","statementMap":{"0":{"start":{"line":4,"column":24},"end":{"line":4,"column":43}},"1":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}}},"fnMap":{"0":{"name":"BasicTextWithImage","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":43}},"loc":{"start":{"line":11,"column":1},"end":{"line":33,"column":null}}}},"branchMap":{},"s":{"0":5,"1":6,"2":6},"f":{"0":4},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":0},"end":{"line":29,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/Button.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/Button.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"1":{"start":{"line":1,"column":29},"end":{"line":1,"column":null}},"2":{"start":{"line":5,"column":4},"end":{"line":11,"column":null}}},"fnMap":{"0":{"name":"Button","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":61},"end":{"line":23,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":11,"column":null}},"type":"cond-expr","locations":[{"start":{"line":6,"column":8},"end":{"line":6,"column":null}},{"start":{"line":7,"column":8},"end":{"line":11,"column":null}}]},"1":{"loc":{"start":{"line":7,"column":8},"end":{"line":11,"column":null}},"type":"cond-expr","locations":[{"start":{"line":8,"column":8},"end":{"line":8,"column":null}},{"start":{"line":9,"column":8},"end":{"line":11,"column":null}}]},"2":{"loc":{"start":{"line":9,"column":8},"end":{"line":11,"column":null}},"type":"cond-expr","locations":[{"start":{"line":10,"column":8},"end":{"line":10,"column":null}},{"start":{"line":11,"column":8},"end":{"line":11,"column":null}}]}},"s":{"0":7,"1":5,"2":7},"f":{"0":7},"b":{"0":[0,7],"1":[4,3],"2":[3,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/Button.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/Button.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":12,"column":13},"end":{"line":12,"column":22}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"3":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":19},"end":{"line":2,"column":null}},"5":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"6":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"7":{"start":{"line":12,"column":25},"end":{"line":12,"column":null}},"8":{"start":{"line":13,"column":0},"end":{"line":18,"column":null}},"9":{"start":{"line":20,"column":0},"end":{"line":25,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageFragment.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageFragment.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"1":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}}},"fnMap":{"0":{"name":"ImageFragment","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":43},"end":{"line":31,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":10},"end":{"line":11,"column":54}},"type":"cond-expr","locations":[{"start":{"line":10,"column":14},"end":{"line":10,"column":54}},{"start":{"line":11,"column":14},"end":{"line":11,"column":54}}]},"1":{"loc":{"start":{"line":14,"column":10},"end":{"line":16,"column":49}},"type":"cond-expr","locations":[{"start":{"line":15,"column":14},"end":{"line":15,"column":49}},{"start":{"line":16,"column":14},"end":{"line":16,"column":49}}]},"2":{"loc":{"start":{"line":25,"column":9},"end":{"line":27,"column":72}},"type":"cond-expr","locations":[{"start":{"line":26,"column":12},"end":{"line":26,"column":72}},{"start":{"line":27,"column":12},"end":{"line":27,"column":72}}]}},"s":{"0":0,"1":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageFragment.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageFragment.stories.js","statementMap":{"0":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"1":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"3":{"start":{"line":4,"column":15},"end":{"line":7,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageVerticalLineContent.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageVerticalLineContent.js","statementMap":{"0":{"start":{"line":5,"column":24},"end":{"line":5,"column":49}},"1":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":null}}},"fnMap":{"0":{"name":"ImageVerticalLineContent","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":49}},"loc":{"start":{"line":14,"column":1},"end":{"line":43,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":33,"column":9},"end":{"line":38,"column":null}},"type":"cond-expr","locations":[{"start":{"line":34,"column":10},"end":{"line":38,"column":null}},{"start":{"line":38,"column":10},"end":{"line":38,"column":null}}]}},"s":{"0":6,"1":6,"2":6,"3":6},"f":{"0":5},"b":{"0":[3,2]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js","statementMap":{"0":{"start":{"line":21,"column":13},"end":{"line":21,"column":20}},"1":{"start":{"line":22,"column":13},"end":{"line":22,"column":25}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":15}},"3":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":37},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"7":{"start":{"line":6,"column":15},"end":{"line":17,"column":2}},"8":{"start":{"line":21,"column":23},"end":{"line":21,"column":null}},"9":{"start":{"line":22,"column":28},"end":{"line":22,"column":null}},"10":{"start":{"line":23,"column":0},"end":{"line":74,"column":null}},"11":{"start":{"line":76,"column":0},"end":{"line":130,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageWithCollapse.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageWithCollapse.js","statementMap":{"0":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"1":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":18},"end":{"line":2,"column":null}}},"fnMap":{"0":{"name":"ImageWithCollapse","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"loc":{"start":{"line":14,"column":1},"end":{"line":43,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":7},"end":{"line":32,"column":null}},"type":"cond-expr","locations":[{"start":{"line":28,"column":8},"end":{"line":32,"column":null}},{"start":{"line":32,"column":8},"end":{"line":32,"column":null}}]},"1":{"loc":{"start":{"line":34,"column":7},"end":{"line":39,"column":null}},"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":39,"column":null}},{"start":{"line":39,"column":8},"end":{"line":39,"column":null}}]}},"s":{"0":7,"1":5,"2":5},"f":{"0":3},"b":{"0":[3,0],"1":[3,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js","statementMap":{"0":{"start":{"line":13,"column":13},"end":{"line":13,"column":20}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":15}},"2":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":30},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":6,"column":15},"end":{"line":9,"column":2}},"7":{"start":{"line":13,"column":23},"end":{"line":13,"column":null}},"8":{"start":{"line":14,"column":0},"end":{"line":24,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":49}},"1":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}}},"fnMap":{"0":{"name":"QuoteVerticalLineContent","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":49}},"loc":{"start":{"line":6,"column":1},"end":{"line":23,"column":null}}}},"branchMap":{},"s":{"0":6,"1":5},"f":{"0":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js","statementMap":{"0":{"start":{"line":12,"column":13},"end":{"line":12,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":37},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":8,"column":2}},"5":{"start":{"line":12,"column":23},"end":{"line":12,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":37,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextContent.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextContent.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"1":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}}},"fnMap":{"0":{"name":"TextContent","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":44},"end":{"line":11,"column":null}}}},"branchMap":{},"s":{"0":6,"1":5},"f":{"0":7},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextContent.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextContent.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":24},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":26,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextWithImage.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextWithImage.js","statementMap":{"0":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"1":{"start":{"line":1,"column":31},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":37},"end":{"line":2,"column":null}},"3":{"start":{"line":16,"column":2},"end":{"line":44,"column":null}},"4":{"start":{"line":43,"column":6},"end":{"line":43,"column":null}}},"fnMap":{"0":{"name":"TextWithImage","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":15,"column":1},"end":{"line":45,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":2},"end":{"line":44,"column":null}},"type":"switch","locations":[{"start":{"line":42,"column":4},"end":{"line":43,"column":null}}]}},"s":{"0":8,"1":5,"2":5,"3":6,"4":0},"f":{"0":6},"b":{"0":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextWithImage.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/fragment_renderer/fragment_components/TextWithImage.stories.js","statementMap":{"0":{"start":{"line":13,"column":13},"end":{"line":13,"column":20}},"1":{"start":{"line":14,"column":13},"end":{"line":14,"column":21}},"2":{"start":{"line":15,"column":13},"end":{"line":15,"column":33}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":15}},"4":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"5":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"6":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"7":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"8":{"start":{"line":6,"column":15},"end":{"line":9,"column":2}},"9":{"start":{"line":13,"column":23},"end":{"line":13,"column":null}},"10":{"start":{"line":14,"column":24},"end":{"line":14,"column":null}},"11":{"start":{"line":15,"column":36},"end":{"line":15,"column":null}},"12":{"start":{"line":17,"column":0},"end":{"line":35,"column":null}},"13":{"start":{"line":37,"column":0},"end":{"line":88,"column":null}},"14":{"start":{"line":90,"column":0},"end":{"line":144,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CTA.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CTA.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":20}},"1":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":21},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":22},"end":{"line":3,"column":null}},"4":{"start":{"line":13,"column":17},"end":{"line":13,"column":null}},"5":{"start":{"line":13,"column":26},"end":{"line":13,"column":null}}},"fnMap":{"0":{"name":"CTA","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":20}},"loc":{"start":{"line":11,"column":1},"end":{"line":41,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":17},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":26},"end":{"line":13,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":10,"column":21}},"type":"default-arg","locations":[{"start":{"line":10,"column":19},"end":{"line":10,"column":21}}]},"1":{"loc":{"start":{"line":29,"column":26},"end":{"line":29,"column":33}},"type":"cond-expr","locations":[{"start":{"line":29,"column":26},"end":{"line":29,"column":33}}]},"2":{"loc":{"start":{"line":36,"column":11},"end":{"line":36,"column":24}},"type":"binary-expr","locations":[{"start":{"line":36,"column":11},"end":{"line":36,"column":24}}]}},"s":{"0":7,"1":6,"2":6,"3":6,"4":5,"5":5},"f":{"0":5,"1":5},"b":{"0":[3],"1":[0],"2":[5]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CTA.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CTA.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":23,"column":13},"end":{"line":23,"column":24}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"3":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":20},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"6":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"7":{"start":{"line":11,"column":0},"end":{"line":21,"column":null}},"8":{"start":{"line":23,"column":27},"end":{"line":23,"column":null}},"9":{"start":{"line":24,"column":0},"end":{"line":30,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":2,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":17}},"1":{"start":{"line":172,"column":0},"end":{"line":172,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":17},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":18},"end":{"line":5,"column":null}},"7":{"start":{"line":11,"column":20},"end":{"line":103,"column":null}},"8":{"start":{"line":12,"column":21},"end":{"line":17,"column":null}},"9":{"start":{"line":19,"column":20},"end":{"line":19,"column":null}},"10":{"start":{"line":105,"column":0},"end":{"line":170,"column":null}},"11":{"start":{"line":172,"column":15},"end":{"line":172,"column":20}}},"fnMap":{"0":{"name":"(anonymous_4)","decl":{"start":{"line":11,"column":20},"end":{"line":11,"column":21}},"loc":{"start":{"line":11,"column":21},"end":{"line":103,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":20},"end":{"line":19,"column":null}},"type":"binary-expr","locations":[{"start":{"line":19,"column":20},"end":{"line":19,"column":41}},{"start":{"line":19,"column":45},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":30,"column":9},"end":{"line":44,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":10},"end":{"line":44,"column":null}},{"start":{"line":44,"column":10},"end":{"line":44,"column":null}}]},"2":{"loc":{"start":{"line":54,"column":13},"end":{"line":63,"column":null}},"type":"cond-expr","locations":[{"start":{"line":55,"column":14},"end":{"line":60,"column":null}},{"start":{"line":63,"column":14},"end":{"line":63,"column":null}}]},"3":{"loc":{"start":{"line":55,"column":14},"end":{"line":60,"column":null}},"type":"cond-expr","locations":[{"start":{"line":56,"column":16},"end":{"line":60,"column":null}},{"start":{"line":60,"column":16},"end":{"line":60,"column":null}}]},"4":{"loc":{"start":{"line":66,"column":11},"end":{"line":74,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":12},"end":{"line":74,"column":null}},{"start":{"line":74,"column":12},"end":{"line":74,"column":null}}]},"5":{"loc":{"start":{"line":77,"column":9},"end":{"line":82,"column":null}},"type":"cond-expr","locations":[{"start":{"line":78,"column":10},"end":{"line":82,"column":null}},{"start":{"line":82,"column":10},"end":{"line":82,"column":null}}]},"6":{"loc":{"start":{"line":85,"column":10},"end":{"line":85,"column":24}},"type":"cond-expr","locations":[{"start":{"line":85,"column":10},"end":{"line":85,"column":24}}]},"7":{"loc":{"start":{"line":89,"column":9},"end":{"line":98,"column":null}},"type":"cond-expr","locations":[{"start":{"line":90,"column":10},"end":{"line":98,"column":null}},{"start":{"line":98,"column":10},"end":{"line":98,"column":null}}]}},"s":{"0":0,"1":31,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":32,"9":32,"10":10,"11":10},"f":{"0":32},"b":{"0":[32,29],"1":[15,15],"2":[0,30],"3":[0,0],"4":[1,29],"5":[0,30],"6":[12],"7":[0,30]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Card.stories.js","statementMap":{"0":{"start":{"line":12,"column":13},"end":{"line":12,"column":20}},"1":{"start":{"line":16,"column":13},"end":{"line":16,"column":23}},"2":{"start":{"line":15,"column":13},"end":{"line":15,"column":21}},"3":{"start":{"line":14,"column":13},"end":{"line":14,"column":22}},"4":{"start":{"line":13,"column":13},"end":{"line":13,"column":20}},"5":{"start":{"line":5,"column":0},"end":{"line":5,"column":15}},"6":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"7":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"8":{"start":{"line":3,"column":18},"end":{"line":3,"column":null}},"9":{"start":{"line":5,"column":15},"end":{"line":8,"column":2}},"10":{"start":{"line":12,"column":23},"end":{"line":12,"column":null}},"11":{"start":{"line":13,"column":23},"end":{"line":13,"column":null}},"12":{"start":{"line":14,"column":25},"end":{"line":14,"column":null}},"13":{"start":{"line":15,"column":24},"end":{"line":15,"column":null}},"14":{"start":{"line":16,"column":26},"end":{"line":16,"column":null}},"15":{"start":{"line":18,"column":0},"end":{"line":24,"column":null}},"16":{"start":{"line":26,"column":0},"end":{"line":33,"column":null}},"17":{"start":{"line":35,"column":0},"end":{"line":42,"column":null}},"18":{"start":{"line":44,"column":0},"end":{"line":50,"column":null}},"19":{"start":{"line":52,"column":0},"end":{"line":59,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":0,"3":0,"4":2,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Collapse.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Collapse.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":25}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":30},"end":{"line":4,"column":null}},"3":{"start":{"line":5,"column":2},"end":{"line":7,"column":null}},"4":{"start":{"line":26,"column":0},"end":{"line":50,"column":null}}},"fnMap":{"0":{"name":"Collapse","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":25}},"loc":{"start":{"line":3,"column":62},"end":{"line":24,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":27},"end":{"line":3,"column":50}},"type":"default-arg","locations":[{"start":{"line":3,"column":32},"end":{"line":3,"column":50}}]}},"s":{"0":12,"1":9,"2":11,"3":11,"4":9},"f":{"0":11},"b":{"0":[6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Collapse.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Collapse.stories.js","statementMap":{"0":{"start":{"line":19,"column":13},"end":{"line":19,"column":28}},"1":{"start":{"line":11,"column":13},"end":{"line":11,"column":28}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"3":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"5":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"6":{"start":{"line":11,"column":31},"end":{"line":11,"column":null}},"7":{"start":{"line":12,"column":0},"end":{"line":17,"column":null}},"8":{"start":{"line":19,"column":31},"end":{"line":19,"column":null}},"9":{"start":{"line":20,"column":0},"end":{"line":36,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ContextualAlert.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ContextualAlert.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":32}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":22},"end":{"line":4,"column":null}},"3":{"start":{"line":5,"column":21},"end":{"line":5,"column":null}},"4":{"start":{"line":6,"column":19},"end":{"line":6,"column":null}},"5":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"6":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"7":{"start":{"line":21,"column":4},"end":{"line":27,"column":null}},"8":{"start":{"line":30,"column":4},"end":{"line":36,"column":null}},"9":{"start":{"line":38,"column":17},"end":{"line":38,"column":null}},"10":{"start":{"line":77,"column":0},"end":{"line":121,"column":null}}},"fnMap":{"0":{"name":"ContextualAlert","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":37},"end":{"line":75,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":4},"end":{"line":27,"column":null}},"type":"cond-expr","locations":[{"start":{"line":22,"column":8},"end":{"line":22,"column":null}},{"start":{"line":23,"column":8},"end":{"line":27,"column":null}}]},"1":{"loc":{"start":{"line":23,"column":8},"end":{"line":27,"column":null}},"type":"cond-expr","locations":[{"start":{"line":24,"column":8},"end":{"line":24,"column":null}},{"start":{"line":25,"column":8},"end":{"line":27,"column":null}}]},"2":{"loc":{"start":{"line":25,"column":8},"end":{"line":27,"column":null}},"type":"cond-expr","locations":[{"start":{"line":26,"column":8},"end":{"line":26,"column":null}},{"start":{"line":27,"column":8},"end":{"line":27,"column":null}}]},"3":{"loc":{"start":{"line":30,"column":4},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":null}},{"start":{"line":32,"column":8},"end":{"line":36,"column":null}}]},"4":{"loc":{"start":{"line":32,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":33,"column":8},"end":{"line":33,"column":null}},{"start":{"line":34,"column":8},"end":{"line":36,"column":null}}]},"5":{"loc":{"start":{"line":34,"column":8},"end":{"line":36,"column":null}},"type":"cond-expr","locations":[{"start":{"line":35,"column":8},"end":{"line":35,"column":null}},{"start":{"line":36,"column":8},"end":{"line":36,"column":null}}]},"6":{"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":null}},"type":"cond-expr","locations":[{"start":{"line":38,"column":27},"end":{"line":38,"column":55}},{"start":{"line":38,"column":55},"end":{"line":38,"column":null}}]},"7":{"loc":{"start":{"line":53,"column":10},"end":{"line":58,"column":11}},"type":"cond-expr","locations":[{"start":{"line":53,"column":10},"end":{"line":58,"column":11}}]},"8":{"loc":{"start":{"line":63,"column":10},"end":{"line":68,"column":11}},"type":"cond-expr","locations":[{"start":{"line":63,"column":10},"end":{"line":68,"column":11}}]}},"s":{"0":9,"1":3,"2":9,"3":9,"4":9,"5":9,"6":9,"7":7,"8":7,"9":7,"10":3},"f":{"0":9},"b":{"0":[2,5],"1":[1,4],"2":[2,2],"3":[2,5],"4":[1,4],"5":[2,2],"6":[0,7],"7":[0],"8":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ContextualAlert.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ContextualAlert.stories.js","statementMap":{"0":{"start":{"line":12,"column":13},"end":{"line":12,"column":19}},"1":{"start":{"line":10,"column":13},"end":{"line":10,"column":17}},"2":{"start":{"line":9,"column":13},"end":{"line":9,"column":20}},"3":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"4":{"start":{"line":2,"column":0},"end":{"line":2,"column":15}},"5":{"start":{"line":1,"column":32},"end":{"line":1,"column":null}},"6":{"start":{"line":2,"column":15},"end":{"line":5,"column":2}},"7":{"start":{"line":9,"column":23},"end":{"line":9,"column":null}},"8":{"start":{"line":10,"column":20},"end":{"line":10,"column":null}},"9":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"10":{"start":{"line":12,"column":22},"end":{"line":12,"column":null}},"11":{"start":{"line":14,"column":0},"end":{"line":31,"column":null}},"12":{"start":{"line":33,"column":0},"end":{"line":41,"column":null}},"13":{"start":{"line":43,"column":0},"end":{"line":51,"column":null}},"14":{"start":{"line":53,"column":0},"end":{"line":70,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":4,"3":2,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":32}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":29},"end":{"line":3,"column":null}},"4":{"start":{"line":6,"column":28},"end":{"line":10,"column":null}},"5":{"start":{"line":20,"column":25},"end":{"line":20,"column":null}},"6":{"start":{"line":39,"column":0},"end":{"line":131,"column":null}}},"fnMap":{"0":{"name":"CopyToClipboard","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":71},"end":{"line":37,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":18},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":25},"end":{"line":20,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":44}},"type":"default-arg","locations":[{"start":{"line":5,"column":42},"end":{"line":5,"column":44}}]},"1":{"loc":{"start":{"line":5,"column":46},"end":{"line":5,"column":59}},"type":"default-arg","locations":[{"start":{"line":5,"column":53},"end":{"line":5,"column":59}}]},"2":{"loc":{"start":{"line":6,"column":28},"end":{"line":10,"column":null}},"type":"cond-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":9,"column":null}},{"start":{"line":10,"column":6},"end":{"line":10,"column":null}}]}},"s":{"0":5,"1":2,"2":2,"3":2,"4":4,"5":1,"6":2},"f":{"0":4,"1":1},"b":{"0":[2],"1":[4],"2":[4,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CopyToClipboard.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":32},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":22,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":24}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":19,"column":0},"end":{"line":44,"column":null}}},"fnMap":{"0":{"name":"Details","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":29},"end":{"line":17,"column":null}}}},"branchMap":{},"s":{"0":11,"1":2,"2":2},"f":{"0":11},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Details.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":24},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":0},"end":{"line":17,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":6,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":25}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":29},"end":{"line":2,"column":null}},"3":{"start":{"line":24,"column":10},"end":{"line":25,"column":38}},"4":{"start":{"line":29,"column":31},"end":{"line":29,"column":null}},"5":{"start":{"line":43,"column":0},"end":{"line":65,"column":null}}},"fnMap":{"0":{"name":"ErrorBox","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":25}},"loc":{"start":{"line":7,"column":50},"end":{"line":41,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":23,"column":20},"end":{"line":23,"column":21}},"loc":{"start":{"line":23,"column":33},"end":{"line":37,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":29,"column":25},"end":{"line":29,"column":31}},"loc":{"start":{"line":29,"column":31},"end":{"line":29,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":27},"end":{"line":7,"column":38}},"type":"default-arg","locations":[{"start":{"line":7,"column":36},"end":{"line":7,"column":38}}]}},"s":{"0":4,"1":1,"2":1,"3":9,"4":1,"5":1},"f":{"0":3,"1":9,"2":1},"b":{"0":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/ErrorBox.stories.js","statementMap":{"0":{"start":{"line":23,"column":13},"end":{"line":23,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":19,"column":2}},"5":{"start":{"line":23,"column":23},"end":{"line":23,"column":null}},"6":{"start":{"line":25,"column":0},"end":{"line":41,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":11,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.js","statementMap":{"0":{"start":{"line":15,"column":13},"end":{"line":15,"column":27}},"1":{"start":{"line":307,"column":0},"end":{"line":307,"column":15}},"2":{"start":{"line":1,"column":51},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":16},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":27},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":23},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":30},"end":{"line":9,"column":null}},"11":{"start":{"line":15,"column":30},"end":{"line":298,"column":null}},"12":{"start":{"line":21,"column":36},"end":{"line":21,"column":null}},"13":{"start":{"line":22,"column":44},"end":{"line":22,"column":null}},"14":{"start":{"line":23,"column":16},"end":{"line":23,"column":null}},"15":{"start":{"line":24,"column":34},"end":{"line":24,"column":null}},"16":{"start":{"line":25,"column":16},"end":{"line":25,"column":69}},"17":{"start":{"line":26,"column":28},"end":{"line":26,"column":null}},"18":{"start":{"line":27,"column":18},"end":{"line":27,"column":null}},"19":{"start":{"line":29,"column":2},"end":{"line":29,"column":null}},"20":{"start":{"line":31,"column":2},"end":{"line":36,"column":null}},"21":{"start":{"line":32,"column":4},"end":{"line":35,"column":null}},"22":{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},"23":{"start":{"line":34,"column":6},"end":{"line":34,"column":null}},"24":{"start":{"line":39,"column":21},"end":{"line":55,"column":null}},"25":{"start":{"line":43,"column":8},"end":{"line":52,"column":null}},"26":{"start":{"line":44,"column":10},"end":{"line":51,"column":null}},"27":{"start":{"line":46,"column":14},"end":{"line":46,"column":null}},"28":{"start":{"line":47,"column":14},"end":{"line":47,"column":null}},"29":{"start":{"line":49,"column":14},"end":{"line":49,"column":null}},"30":{"start":{"line":50,"column":14},"end":{"line":50,"column":null}},"31":{"start":{"line":53,"column":8},"end":{"line":53,"column":null}},"32":{"start":{"line":58,"column":4},"end":{"line":58,"column":null}},"33":{"start":{"line":61,"column":34},"end":{"line":61,"column":null}},"34":{"start":{"line":62,"column":44},"end":{"line":62,"column":null}},"35":{"start":{"line":63,"column":25},"end":{"line":69,"column":null}},"36":{"start":{"line":71,"column":24},"end":{"line":119,"column":null}},"37":{"start":{"line":73,"column":4},"end":{"line":73,"column":null}},"38":{"start":{"line":75,"column":4},"end":{"line":75,"column":null}},"39":{"start":{"line":77,"column":21},"end":{"line":77,"column":null}},"40":{"start":{"line":79,"column":26},"end":{"line":79,"column":null}},"41":{"start":{"line":81,"column":4},"end":{"line":85,"column":null}},"42":{"start":{"line":88,"column":22},"end":{"line":91,"column":null}},"43":{"start":{"line":92,"column":18},"end":{"line":92,"column":null}},"44":{"start":{"line":94,"column":4},"end":{"line":118,"column":null}},"45":{"start":{"line":96,"column":23},"end":{"line":102,"column":null}},"46":{"start":{"line":105,"column":6},"end":{"line":111,"column":null}},"47":{"start":{"line":106,"column":8},"end":{"line":106,"column":null}},"48":{"start":{"line":107,"column":8},"end":{"line":107,"column":null}},"49":{"start":{"line":108,"column":8},"end":{"line":108,"column":null}},"50":{"start":{"line":110,"column":8},"end":{"line":110,"column":null}},"51":{"start":{"line":113,"column":6},"end":{"line":113,"column":null}},"52":{"start":{"line":114,"column":6},"end":{"line":114,"column":null}},"53":{"start":{"line":115,"column":6},"end":{"line":115,"column":null}},"54":{"start":{"line":117,"column":6},"end":{"line":117,"column":null}},"55":{"start":{"line":176,"column":43},"end":{"line":176,"column":null}},"56":{"start":{"line":202,"column":22},"end":{"line":202,"column":null}},"57":{"start":{"line":203,"column":22},"end":{"line":203,"column":null}},"58":{"start":{"line":272,"column":37},"end":{"line":272,"column":null}},"59":{"start":{"line":274,"column":22},"end":{"line":274,"column":null}},"60":{"start":{"line":300,"column":0},"end":{"line":305,"column":null}},"61":{"start":{"line":307,"column":15},"end":{"line":307,"column":30}}},"fnMap":{"0":{"name":"(anonymous_7)","decl":{"start":{"line":15,"column":30},"end":{"line":15,"column":31}},"loc":{"start":{"line":20,"column":1},"end":{"line":298,"column":null}}},"1":{"name":"(anonymous_8)","decl":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"loc":{"start":{"line":31,"column":12},"end":{"line":36,"column":5}}},"2":{"name":"(anonymous_9)","decl":{"start":{"line":42,"column":13},"end":{"line":42,"column":14}},"loc":{"start":{"line":42,"column":14},"end":{"line":54,"column":null}}},"3":{"name":"(anonymous_10)","decl":{"start":{"line":43,"column":23},"end":{"line":43,"column":24}},"loc":{"start":{"line":43,"column":24},"end":{"line":52,"column":null}}},"4":{"name":"setFocusAfterSubmit","decl":{"start":{"line":57,"column":11},"end":{"line":57,"column":null}},"loc":{"start":{"line":57,"column":11},"end":{"line":59,"column":null}}},"5":{"name":"(anonymous_12)","decl":{"start":{"line":71,"column":24},"end":{"line":71,"column":31}},"loc":{"start":{"line":71,"column":31},"end":{"line":119,"column":null}}},"6":{"name":"(anonymous_13)","decl":{"start":{"line":176,"column":37},"end":{"line":176,"column":43}},"loc":{"start":{"line":176,"column":43},"end":{"line":176,"column":null}}},"7":{"name":"(anonymous_14)","decl":{"start":{"line":201,"column":29},"end":{"line":201,"column":null}},"loc":{"start":{"line":201,"column":29},"end":{"line":204,"column":null}}},"8":{"name":"(anonymous_15)","decl":{"start":{"line":272,"column":30},"end":{"line":272,"column":31}},"loc":{"start":{"line":272,"column":37},"end":{"line":272,"column":null}}},"9":{"name":"(anonymous_16)","decl":{"start":{"line":273,"column":29},"end":{"line":273,"column":30}},"loc":{"start":{"line":274,"column":22},"end":{"line":274,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":32,"column":4},"end":{"line":35,"column":null}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":35,"column":null}}]},"1":{"loc":{"start":{"line":44,"column":10},"end":{"line":51,"column":null}},"type":"switch","locations":[{"start":{"line":45,"column":12},"end":{"line":47,"column":null}},{"start":{"line":48,"column":12},"end":{"line":50,"column":null}}]},"2":{"loc":{"start":{"line":94,"column":4},"end":{"line":118,"column":null}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":118,"column":null}},{"start":{"line":116,"column":11},"end":{"line":118,"column":null}}]},"3":{"loc":{"start":{"line":105,"column":6},"end":{"line":111,"column":null}},"type":"if","locations":[{"start":{"line":105,"column":6},"end":{"line":111,"column":null}},{"start":{"line":109,"column":13},"end":{"line":111,"column":null}}]},"4":{"loc":{"start":{"line":105,"column":10},"end":{"line":105,"column":62}},"type":"binary-expr","locations":[{"start":{"line":105,"column":10},"end":{"line":105,"column":37}},{"start":{"line":105,"column":37},"end":{"line":105,"column":62}}]},"5":{"loc":{"start":{"line":123,"column":7},"end":{"line":294,"column":null}},"type":"cond-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":294,"column":null}},{"start":{"line":294,"column":8},"end":{"line":294,"column":null}}]},"6":{"loc":{"start":{"line":138,"column":15},"end":{"line":187,"column":null}},"type":"cond-expr","locations":[{"start":{"line":139,"column":16},"end":{"line":187,"column":null}},{"start":{"line":187,"column":16},"end":{"line":187,"column":null}}]},"7":{"loc":{"start":{"line":140,"column":19},"end":{"line":183,"column":null}},"type":"cond-expr","locations":[{"start":{"line":141,"column":20},"end":{"line":183,"column":null}},{"start":{"line":183,"column":20},"end":{"line":183,"column":null}}]},"8":{"loc":{"start":{"line":143,"column":24},"end":{"line":145,"column":null}},"type":"cond-expr","locations":[{"start":{"line":144,"column":28},"end":{"line":144,"column":null}},{"start":{"line":145,"column":28},"end":{"line":145,"column":null}}]},"9":{"loc":{"start":{"line":151,"column":27},"end":{"line":162,"column":null}},"type":"cond-expr","locations":[{"start":{"line":152,"column":28},"end":{"line":162,"column":null}},{"start":{"line":162,"column":28},"end":{"line":162,"column":null}}]},"10":{"loc":{"start":{"line":256,"column":19},"end":{"line":261,"column":null}},"type":"cond-expr","locations":[{"start":{"line":257,"column":20},"end":{"line":261,"column":null}},{"start":{"line":261,"column":22},"end":{"line":261,"column":null}}]}},"s":{"0":3,"1":6,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":10,"10":10,"11":10,"12":10,"13":10,"14":10,"15":10,"16":10,"17":10,"18":10,"19":10,"20":10,"21":7,"22":2,"23":2,"24":10,"25":1,"26":1,"27":0,"28":0,"29":1,"30":1,"31":1,"32":0,"33":10,"34":10,"35":10,"36":10,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":1,"55":0,"56":0,"57":0,"58":0,"59":0,"60":10,"61":10},"f":{"0":10,"1":7,"2":1,"3":1,"4":0,"5":1,"6":0,"7":0,"8":0,"9":0},"b":{"0":[2],"1":[0,1],"2":[0,1],"3":[0,0],"4":[0,0],"5":[8,2],"6":[0,8],"7":[0,0],"8":[0,0],"9":[0,0],"10":[2,6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/FeedbackWidget.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":15,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":8,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":23}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":28},"end":{"line":2,"column":null}},"3":{"start":{"line":20,"column":12},"end":{"line":21,"column":null}},"4":{"start":{"line":40,"column":0},"end":{"line":71,"column":null}}},"fnMap":{"0":{"name":"Filter","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":23}},"loc":{"start":{"line":7,"column":28},"end":{"line":38,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":29},"end":{"line":19,"column":30}},"loc":{"start":{"line":20,"column":12},"end":{"line":21,"column":null}}}},"branchMap":{},"s":{"0":4,"1":1,"2":1,"3":9,"4":1},"f":{"0":3,"1":9},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Filter.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":32,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":12,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Heading.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Heading.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":3,"column":24}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":55},"end":{"line":4,"column":null}},"3":{"start":{"line":27,"column":0},"end":{"line":52,"column":null}}},"fnMap":{"0":{"name":"Heading","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":24}},"loc":{"start":{"line":3,"column":29},"end":{"line":25,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":7},"end":{"line":12,"column":19}},"type":"binary-expr","locations":[{"start":{"line":12,"column":7},"end":{"line":12,"column":19}},{"start":{"line":12,"column":19},"end":{"line":12,"column":null}}]}},"s":{"0":12,"1":15,"2":11,"3":15},"f":{"0":11},"b":{"0":[11,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Heading.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Heading.stories.js","statementMap":{"0":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":15}},"2":{"start":{"line":11,"column":13},"end":{"line":11,"column":25}},"3":{"start":{"line":1,"column":24},"end":{"line":1,"column":null}},"4":{"start":{"line":3,"column":15},"end":{"line":6,"column":2}},"5":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"6":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"7":{"start":{"line":13,"column":0},"end":{"line":16,"column":null}},"8":{"start":{"line":18,"column":0},"end":{"line":23,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":7,"column":16},"end":{"line":7,"column":null}},"3":{"start":{"line":12,"column":10},"end":{"line":14,"column":null}},"4":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"5":{"start":{"line":15,"column":27},"end":{"line":15,"column":null}},"6":{"start":{"line":16,"column":8},"end":{"line":17,"column":24}},"7":{"start":{"line":31,"column":0},"end":{"line":41,"column":null}}},"fnMap":{"0":{"name":"List","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":26},"end":{"line":29,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":10,"column":23},"end":{"line":10,"column":24}},"loc":{"start":{"line":10,"column":30},"end":{"line":26,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":null}}]}},"s":{"0":3,"1":1,"2":2,"3":8,"4":8,"5":6,"6":8,"7":1},"f":{"0":2,"1":8},"b":{"0":[6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/List.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":21},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":15,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/MainBand.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/MainBand.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":4,"column":25}},"1":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"3":{"start":{"line":5,"column":16},"end":{"line":5,"column":null}},"4":{"start":{"line":22,"column":12},"end":{"line":24,"column":null}}},"fnMap":{"0":{"name":"MainBand","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":25}},"loc":{"start":{"line":4,"column":30},"end":{"line":43,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":36},"end":{"line":21,"column":37}},"loc":{"start":{"line":21,"column":42},"end":{"line":38,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":18},"end":{"line":26,"column":null}},"type":"cond-expr","locations":[{"start":{"line":26,"column":32},"end":{"line":26,"column":66}},{"start":{"line":26,"column":66},"end":{"line":26,"column":null}}]}},"s":{"0":13,"1":9,"2":9,"3":13,"4":273},"f":{"0":13,"1":273},"b":{"0":[13,260]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":21}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":26},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":25},"end":{"line":4,"column":null}},"5":{"start":{"line":11,"column":21},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":17},"end":{"line":12,"column":null}},"7":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"8":{"start":{"line":29,"column":25},"end":{"line":29,"column":null}},"9":{"start":{"line":44,"column":25},"end":{"line":44,"column":null}},"10":{"start":{"line":64,"column":27},"end":{"line":64,"column":47}},"11":{"start":{"line":65,"column":30},"end":{"line":65,"column":58}},"12":{"start":{"line":67,"column":10},"end":{"line":69,"column":null}},"13":{"start":{"line":94,"column":0},"end":{"line":121,"column":null}}},"fnMap":{"0":{"name":"Menu","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":26},"end":{"line":92,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":19},"end":{"line":29,"column":25}},"loc":{"start":{"line":29,"column":25},"end":{"line":29,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":44,"column":19},"end":{"line":44,"column":25}},"loc":{"start":{"line":44,"column":25},"end":{"line":44,"column":null}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":63,"column":25},"end":{"line":63,"column":26}},"loc":{"start":{"line":63,"column":32},"end":{"line":88,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":46,"column":12},"end":{"line":46,"column":null}},"type":"cond-expr","locations":[{"start":{"line":46,"column":23},"end":{"line":46,"column":28}},{"start":{"line":46,"column":28},"end":{"line":46,"column":null}}]},"1":{"loc":{"start":{"line":59,"column":40},"end":{"line":59,"column":65}},"type":"cond-expr","locations":[{"start":{"line":59,"column":51},"end":{"line":59,"column":62}},{"start":{"line":59,"column":62},"end":{"line":59,"column":65}}]},"2":{"loc":{"start":{"line":72,"column":28},"end":{"line":72,"column":null}},"type":"cond-expr","locations":[{"start":{"line":72,"column":39},"end":{"line":72,"column":48}},{"start":{"line":72,"column":48},"end":{"line":72,"column":null}}]},"3":{"loc":{"start":{"line":77,"column":18},"end":{"line":81,"column":null}},"type":"cond-expr","locations":[{"start":{"line":78,"column":22},"end":{"line":80,"column":null}},{"start":{"line":81,"column":22},"end":{"line":81,"column":null}}]},"4":{"loc":{"start":{"line":78,"column":22},"end":{"line":80,"column":null}},"type":"cond-expr","locations":[{"start":{"line":79,"column":24},"end":{"line":79,"column":null}},{"start":{"line":80,"column":24},"end":{"line":80,"column":null}}]}},"s":{"0":4,"1":1,"2":1,"3":1,"4":1,"5":4,"6":4,"7":4,"8":1,"9":0,"10":12,"11":12,"12":12,"13":1},"f":{"0":4,"1":1,"2":0,"3":12},"b":{"0":[1,3],"1":[1,3],"2":[0,12],"3":[0,12],"4":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Menu.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":21},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":30,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":6,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.js","statementMap":{"0":{"start":{"line":9,"column":16},"end":{"line":9,"column":34}},"1":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":27},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":22},"end":{"line":4,"column":null}},"5":{"start":{"line":10,"column":42},"end":{"line":10,"column":null}},"6":{"start":{"line":11,"column":26},"end":{"line":21,"column":null}},"7":{"start":{"line":12,"column":4},"end":{"line":16,"column":null}},"8":{"start":{"line":13,"column":6},"end":{"line":13,"column":null}},"9":{"start":{"line":15,"column":6},"end":{"line":15,"column":null}},"10":{"start":{"line":18,"column":4},"end":{"line":20,"column":null}},"11":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"12":{"start":{"line":22,"column":23},"end":{"line":30,"column":null}},"13":{"start":{"line":23,"column":4},"end":{"line":25,"column":null}},"14":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"15":{"start":{"line":26,"column":4},"end":{"line":28,"column":null}},"16":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"17":{"start":{"line":29,"column":4},"end":{"line":29,"column":null}},"18":{"start":{"line":79,"column":0},"end":{"line":148,"column":null}}},"fnMap":{"0":{"name":"OptionalListField","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":34}},"loc":{"start":{"line":9,"column":72},"end":{"line":77,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":26},"end":{"line":11,"column":27}},"loc":{"start":{"line":11,"column":45},"end":{"line":21,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":48},"end":{"line":22,"column":49}},"loc":{"start":{"line":22,"column":52},"end":{"line":30,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":36},"end":{"line":9,"column":60}},"type":"default-arg","locations":[{"start":{"line":9,"column":50},"end":{"line":9,"column":60}}]},"1":{"loc":{"start":{"line":10,"column":51},"end":{"line":10,"column":null}},"type":"binary-expr","locations":[{"start":{"line":10,"column":51},"end":{"line":10,"column":64}},{"start":{"line":10,"column":68},"end":{"line":10,"column":null}}]},"2":{"loc":{"start":{"line":12,"column":4},"end":{"line":16,"column":null}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":16,"column":null}},{"start":{"line":14,"column":11},"end":{"line":16,"column":null}}]},"3":{"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":null}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":20,"column":null}}]},"4":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":null}}]},"5":{"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":null}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":null}}]},"6":{"loc":{"start":{"line":34,"column":8},"end":{"line":47,"column":9}},"type":"cond-expr","locations":[{"start":{"line":34,"column":8},"end":{"line":47,"column":9}}]},"7":{"loc":{"start":{"line":60,"column":8},"end":{"line":74,"column":null}},"type":"cond-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":74,"column":null}},{"start":{"line":74,"column":10},"end":{"line":74,"column":null}}]},"8":{"loc":{"start":{"line":60,"column":8},"end":{"line":60,"column":61}},"type":"binary-expr","locations":[{"start":{"line":60,"column":8},"end":{"line":60,"column":26}},{"start":{"line":60,"column":30},"end":{"line":60,"column":48}},{"start":{"line":60,"column":48},"end":{"line":60,"column":61}}]},"9":{"loc":{"start":{"line":63,"column":13},"end":{"line":68,"column":null}},"type":"cond-expr","locations":[{"start":{"line":64,"column":14},"end":{"line":68,"column":null}},{"start":{"line":68,"column":14},"end":{"line":68,"column":null}}]}},"s":{"0":5,"1":1,"2":1,"3":1,"4":1,"5":5,"6":5,"7":1,"8":0,"9":1,"10":1,"11":0,"12":5,"13":5,"14":0,"15":5,"16":5,"17":0,"18":1},"f":{"0":5,"1":1,"2":5},"b":{"0":[4],"1":[5,2],"2":[0,1],"3":[0],"4":[0],"5":[5],"6":[4],"7":[4,1],"8":[5,2,4],"9":[0,4]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalListField.stories.js","statementMap":{"0":{"start":{"line":48,"column":13},"end":{"line":48,"column":30}},"1":{"start":{"line":76,"column":13},"end":{"line":76,"column":31}},"2":{"start":{"line":104,"column":13},"end":{"line":104,"column":18}},"3":{"start":{"line":133,"column":13},"end":{"line":133,"column":25}},"4":{"start":{"line":22,"column":13},"end":{"line":22,"column":21}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":15}},"6":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"7":{"start":{"line":2,"column":34},"end":{"line":2,"column":null}},"8":{"start":{"line":3,"column":25},"end":{"line":3,"column":null}},"9":{"start":{"line":4,"column":27},"end":{"line":4,"column":null}},"10":{"start":{"line":6,"column":15},"end":{"line":18,"column":2}},"11":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"12":{"start":{"line":23,"column":0},"end":{"line":46,"column":null}},"13":{"start":{"line":48,"column":33},"end":{"line":48,"column":null}},"14":{"start":{"line":49,"column":0},"end":{"line":74,"column":null}},"15":{"start":{"line":76,"column":34},"end":{"line":76,"column":null}},"16":{"start":{"line":77,"column":0},"end":{"line":102,"column":null}},"17":{"start":{"line":104,"column":21},"end":{"line":104,"column":null}},"18":{"start":{"line":105,"column":0},"end":{"line":131,"column":null}},"19":{"start":{"line":133,"column":28},"end":{"line":133,"column":null}},"20":{"start":{"line":134,"column":0},"end":{"line":159,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":0,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.js","statementMap":{"0":{"start":{"line":12,"column":16},"end":{"line":12,"column":34}},"1":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":26},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":31},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":27},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"7":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"8":{"start":{"line":13,"column":42},"end":{"line":13,"column":null}},"9":{"start":{"line":14,"column":40},"end":{"line":14,"column":null}},"10":{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},"11":{"start":{"line":16,"column":26},"end":{"line":28,"column":null}},"12":{"start":{"line":17,"column":4},"end":{"line":23,"column":null}},"13":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"14":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"15":{"start":{"line":21,"column":6},"end":{"line":21,"column":null}},"16":{"start":{"line":22,"column":6},"end":{"line":22,"column":null}},"17":{"start":{"line":25,"column":4},"end":{"line":27,"column":null}},"18":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"19":{"start":{"line":106,"column":0},"end":{"line":260,"column":null}}},"fnMap":{"0":{"name":"OptionalTextField","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":34}},"loc":{"start":{"line":12,"column":72},"end":{"line":104,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":26},"end":{"line":16,"column":27}},"loc":{"start":{"line":16,"column":45},"end":{"line":28,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":76,"column":66},"end":{"line":76,"column":73}},"loc":{"start":{"line":76,"column":66},"end":{"line":76,"column":null}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":94,"column":66},"end":{"line":94,"column":73}},"loc":{"start":{"line":94,"column":66},"end":{"line":94,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":36},"end":{"line":12,"column":60}},"type":"default-arg","locations":[{"start":{"line":12,"column":50},"end":{"line":12,"column":60}}]},"1":{"loc":{"start":{"line":13,"column":51},"end":{"line":13,"column":null}},"type":"binary-expr","locations":[{"start":{"line":13,"column":51},"end":{"line":13,"column":64}},{"start":{"line":13,"column":68},"end":{"line":13,"column":null}}]},"2":{"loc":{"start":{"line":17,"column":4},"end":{"line":23,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":23,"column":null}},{"start":{"line":20,"column":11},"end":{"line":23,"column":null}}]},"3":{"loc":{"start":{"line":25,"column":4},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":27,"column":null}}]},"4":{"loc":{"start":{"line":31,"column":7},"end":{"line":31,"column":null}},"type":"binary-expr","locations":[{"start":{"line":31,"column":7},"end":{"line":31,"column":null}}]},"5":{"loc":{"start":{"line":47,"column":7},"end":{"line":47,"column":null}},"type":"binary-expr","locations":[{"start":{"line":47,"column":7},"end":{"line":47,"column":null}}]},"6":{"loc":{"start":{"line":61,"column":8},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":62,"column":8},"end":{"line":101,"column":null}},{"start":{"line":101,"column":10},"end":{"line":101,"column":null}}]},"7":{"loc":{"start":{"line":61,"column":8},"end":{"line":61,"column":61}},"type":"binary-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":26}},{"start":{"line":61,"column":30},"end":{"line":61,"column":48}},{"start":{"line":61,"column":48},"end":{"line":61,"column":61}}]},"8":{"loc":{"start":{"line":62,"column":8},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":63,"column":10},"end":{"line":84,"column":11}},{"start":{"line":84,"column":10},"end":{"line":101,"column":null}}]},"9":{"loc":{"start":{"line":76,"column":14},"end":{"line":76,"column":null}},"type":"cond-expr","locations":[{"start":{"line":76,"column":40},"end":{"line":76,"column":63}},{"start":{"line":76,"column":66},"end":{"line":76,"column":null}}]},"10":{"loc":{"start":{"line":94,"column":14},"end":{"line":94,"column":null}},"type":"cond-expr","locations":[{"start":{"line":94,"column":40},"end":{"line":94,"column":63}},{"start":{"line":94,"column":66},"end":{"line":94,"column":null}}]}},"s":{"0":54,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":55,"9":55,"10":55,"11":55,"12":3,"13":0,"14":0,"15":3,"16":3,"17":3,"18":0,"19":2},"f":{"0":55,"1":3,"2":0,"3":0},"b":{"0":[54],"1":[55,54],"2":[0,3],"3":[0],"4":[55],"5":[55],"6":[4,51],"7":[55,54,52],"8":[2,2],"9":[0,2],"10":[0,2]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/OptionalTextField.stories.js","statementMap":{"0":{"start":{"line":72,"column":13},"end":{"line":72,"column":22}},"1":{"start":{"line":32,"column":13},"end":{"line":32,"column":19}},"2":{"start":{"line":45,"column":13},"end":{"line":45,"column":18}},"3":{"start":{"line":59,"column":13},"end":{"line":59,"column":25}},"4":{"start":{"line":20,"column":13},"end":{"line":20,"column":21}},"5":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"6":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"7":{"start":{"line":2,"column":34},"end":{"line":2,"column":null}},"8":{"start":{"line":4,"column":15},"end":{"line":16,"column":2}},"9":{"start":{"line":20,"column":24},"end":{"line":20,"column":null}},"10":{"start":{"line":21,"column":0},"end":{"line":30,"column":null}},"11":{"start":{"line":32,"column":22},"end":{"line":32,"column":null}},"12":{"start":{"line":33,"column":0},"end":{"line":43,"column":null}},"13":{"start":{"line":45,"column":21},"end":{"line":45,"column":null}},"14":{"start":{"line":46,"column":0},"end":{"line":57,"column":null}},"15":{"start":{"line":59,"column":28},"end":{"line":59,"column":null}},"16":{"start":{"line":60,"column":0},"end":{"line":70,"column":null}},"17":{"start":{"line":72,"column":25},"end":{"line":72,"column":null}},"18":{"start":{"line":73,"column":0},"end":{"line":85,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":0,"2":2,"3":2,"4":0,"5":0,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":22}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":21,"column":0},"end":{"line":36,"column":null}}},"fnMap":{"0":{"name":"Quote","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":27},"end":{"line":19,"column":null}}}},"branchMap":{},"s":{"0":3,"1":1,"2":1},"f":{"0":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/Quote.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":16,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SubFooterBand.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SubFooterBand.js","statementMap":{"0":{"start":{"line":54,"column":16},"end":{"line":54,"column":30}},"1":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"3":{"start":{"line":4,"column":28},"end":{"line":25,"column":null}},"4":{"start":{"line":27,"column":28},"end":{"line":48,"column":null}},"5":{"start":{"line":50,"column":27},"end":{"line":52,"column":null}},"6":{"start":{"line":51,"column":2},"end":{"line":51,"column":null}},"7":{"start":{"line":79,"column":22},"end":{"line":81,"column":null}},"8":{"start":{"line":99,"column":24},"end":{"line":101,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":50,"column":27},"end":{"line":50,"column":28}},"loc":{"start":{"line":50,"column":28},"end":{"line":52,"column":null}}},"1":{"name":"SubFooterBand","decl":{"start":{"line":54,"column":16},"end":{"line":54,"column":30}},"loc":{"start":{"line":54,"column":35},"end":{"line":142,"column":null}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":78,"column":41},"end":{"line":78,"column":42}},"loc":{"start":{"line":78,"column":67},"end":{"line":96,"column":null}}},"3":{"name":"(anonymous_4)","decl":{"start":{"line":98,"column":22},"end":{"line":98,"column":23}},"loc":{"start":{"line":98,"column":39},"end":{"line":118,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":51,"column":9},"end":{"line":51,"column":null}},"type":"cond-expr","locations":[{"start":{"line":51,"column":27},"end":{"line":51,"column":49}},{"start":{"line":51,"column":49},"end":{"line":51,"column":null}}]},"1":{"loc":{"start":{"line":59,"column":10},"end":{"line":59,"column":null}},"type":"cond-expr","locations":[{"start":{"line":59,"column":34},"end":{"line":59,"column":51}},{"start":{"line":59,"column":51},"end":{"line":59,"column":null}}]},"2":{"loc":{"start":{"line":60,"column":12},"end":{"line":60,"column":46}},"type":"cond-expr","locations":[{"start":{"line":60,"column":26},"end":{"line":60,"column":43}},{"start":{"line":60,"column":43},"end":{"line":60,"column":46}}]},"3":{"loc":{"start":{"line":63,"column":10},"end":{"line":74,"column":11}},"type":"cond-expr","locations":[{"start":{"line":63,"column":10},"end":{"line":74,"column":11}}]},"4":{"loc":{"start":{"line":77,"column":17},"end":{"line":118,"column":null}},"type":"cond-expr","locations":[{"start":{"line":78,"column":20},"end":{"line":96,"column":null}},{"start":{"line":97,"column":20},"end":{"line":118,"column":null}}]},"5":{"loc":{"start":{"line":83,"column":28},"end":{"line":83,"column":null}},"type":"cond-expr","locations":[{"start":{"line":83,"column":42},"end":{"line":83,"column":47}},{"start":{"line":83,"column":47},"end":{"line":83,"column":null}}]},"6":{"loc":{"start":{"line":87,"column":37},"end":{"line":87,"column":null}},"type":"cond-expr","locations":[{"start":{"line":87,"column":47},"end":{"line":87,"column":57}},{"start":{"line":87,"column":57},"end":{"line":87,"column":null}}]},"7":{"loc":{"start":{"line":103,"column":30},"end":{"line":103,"column":null}},"type":"cond-expr","locations":[{"start":{"line":103,"column":44},"end":{"line":103,"column":49}},{"start":{"line":103,"column":49},"end":{"line":103,"column":null}}]},"8":{"loc":{"start":{"line":108,"column":32},"end":{"line":108,"column":null}},"type":"cond-expr","locations":[{"start":{"line":108,"column":48},"end":{"line":108,"column":61}},{"start":{"line":108,"column":64},"end":{"line":108,"column":null}}]},"9":{"loc":{"start":{"line":126,"column":12},"end":{"line":126,"column":null}},"type":"cond-expr","locations":[{"start":{"line":126,"column":26},"end":{"line":126,"column":43}},{"start":{"line":126,"column":43},"end":{"line":126,"column":null}}]},"10":{"loc":{"start":{"line":131,"column":14},"end":{"line":133,"column":null}},"type":"cond-expr","locations":[{"start":{"line":132,"column":18},"end":{"line":132,"column":null}},{"start":{"line":133,"column":18},"end":{"line":133,"column":null}}]}},"s":{"0":13,"1":9,"2":9,"3":9,"4":9,"5":9,"6":13,"7":0,"8":65},"f":{"0":13,"1":13,"2":0,"3":65},"b":{"0":[0,13],"1":[0,13],"2":[0,13],"3":[0],"4":[0,13],"5":[0,0],"6":[0,0],"7":[13,52],"8":[0,65],"9":[0,13],"10":[0,13]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SurveyCTA.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SurveyCTA.js","statementMap":{"0":{"start":{"line":3,"column":13},"end":{"line":3,"column":25}},"1":{"start":{"line":1,"column":29},"end":{"line":1,"column":null}},"2":{"start":{"line":3,"column":25},"end":{"line":27,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":25},"end":{"line":3,"column":26}},"loc":{"start":{"line":10,"column":1},"end":{"line":27,"column":null}}}},"branchMap":{},"s":{"0":5,"1":2,"2":2},"f":{"0":3},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SurveyCTA.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/SurveyCTA.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":19,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":4,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":32}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":29},"end":{"line":2,"column":null}},"3":{"start":{"line":10,"column":2},"end":{"line":13,"column":null}},"4":{"start":{"line":11,"column":4},"end":{"line":13,"column":null}},"5":{"start":{"line":44,"column":0},"end":{"line":98,"column":null}}},"fnMap":{"0":{"name":"TextButtonField","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":32}},"loc":{"start":{"line":7,"column":37},"end":{"line":42,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":13,"column":null}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":13,"column":null}}]},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":13,"column":36}},"type":"cond-expr","locations":[{"start":{"line":12,"column":9},"end":{"line":12,"column":null}},{"start":{"line":13,"column":9},"end":{"line":13,"column":36}}]},"2":{"loc":{"start":{"line":18,"column":8},"end":{"line":20,"column":9}},"type":"cond-expr","locations":[{"start":{"line":18,"column":8},"end":{"line":20,"column":9}}]},"3":{"loc":{"start":{"line":26,"column":7},"end":{"line":38,"column":null}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":38,"column":null}},{"start":{"line":38,"column":8},"end":{"line":38,"column":null}}]}},"s":{"0":7,"1":1,"2":1,"3":6,"4":5,"5":1},"f":{"0":6},"b":{"0":[5],"1":[2,3],"2":[0],"3":[6,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TextButtonField.stories.js","statementMap":{"0":{"start":{"line":14,"column":13},"end":{"line":14,"column":19}},"1":{"start":{"line":13,"column":13},"end":{"line":13,"column":21}},"2":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"3":{"start":{"line":12,"column":13},"end":{"line":12,"column":22}},"4":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"5":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"6":{"start":{"line":2,"column":32},"end":{"line":2,"column":null}},"7":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"8":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"9":{"start":{"line":12,"column":25},"end":{"line":12,"column":null}},"10":{"start":{"line":13,"column":24},"end":{"line":13,"column":null}},"11":{"start":{"line":14,"column":22},"end":{"line":14,"column":null}},"12":{"start":{"line":16,"column":0},"end":{"line":22,"column":null}},"13":{"start":{"line":24,"column":0},"end":{"line":29,"column":null}},"14":{"start":{"line":31,"column":0},"end":{"line":37,"column":null}},"15":{"start":{"line":39,"column":0},"end":{"line":45,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":3,"2":8,"3":3,"4":0,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TopNavBar.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TopNavBar.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":4,"column":26}},"1":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":32},"end":{"line":2,"column":null}},"3":{"start":{"line":14,"column":30},"end":{"line":14,"column":null}},"4":{"start":{"line":15,"column":60},"end":{"line":15,"column":null}},"5":{"start":{"line":18,"column":22},"end":{"line":20,"column":null}},"6":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"7":{"start":{"line":22,"column":27},"end":{"line":28,"column":null}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":null}},"9":{"start":{"line":24,"column":4},"end":{"line":27,"column":null}},"10":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"11":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}}},"fnMap":{"0":{"name":"TopNavBar","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":26}},"loc":{"start":{"line":13,"column":1},"end":{"line":145,"column":null}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":18,"column":22},"end":{"line":18,"column":null}},"loc":{"start":{"line":18,"column":22},"end":{"line":20,"column":null}}},"2":{"name":"(anonymous_7)","decl":{"start":{"line":22,"column":27},"end":{"line":22,"column":null}},"loc":{"start":{"line":22,"column":27},"end":{"line":28,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":24,"column":15},"end":{"line":24,"column":null}},"loc":{"start":{"line":24,"column":15},"end":{"line":27,"column":7}}}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"type":"cond-expr","locations":[{"start":{"line":19,"column":13},"end":{"line":19,"column":34}},{"start":{"line":19,"column":34},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":57,"column":25},"end":{"line":57,"column":null}},"type":"cond-expr","locations":[{"start":{"line":57,"column":34},"end":{"line":57,"column":43}},{"start":{"line":57,"column":43},"end":{"line":57,"column":null}}]},"2":{"loc":{"start":{"line":63,"column":12},"end":{"line":80,"column":13}},"type":"cond-expr","locations":[{"start":{"line":63,"column":12},"end":{"line":80,"column":13}}]},"3":{"loc":{"start":{"line":65,"column":16},"end":{"line":65,"column":null}},"type":"cond-expr","locations":[{"start":{"line":65,"column":40},"end":{"line":65,"column":53}},{"start":{"line":65,"column":53},"end":{"line":65,"column":null}}]},"4":{"loc":{"start":{"line":80,"column":31},"end":{"line":80,"column":70}},"type":"cond-expr","locations":[{"start":{"line":80,"column":55},"end":{"line":80,"column":67}},{"start":{"line":80,"column":67},"end":{"line":80,"column":70}}]},"5":{"loc":{"start":{"line":110,"column":9},"end":{"line":140,"column":null}},"type":"cond-expr","locations":[{"start":{"line":111,"column":10},"end":{"line":140,"column":null}},{"start":{"line":140,"column":10},"end":{"line":140,"column":null}}]},"6":{"loc":{"start":{"line":114,"column":14},"end":{"line":114,"column":null}},"type":"cond-expr","locations":[{"start":{"line":114,"column":38},"end":{"line":114,"column":51}},{"start":{"line":114,"column":51},"end":{"line":114,"column":null}}]},"7":{"loc":{"start":{"line":119,"column":16},"end":{"line":119,"column":null}},"type":"cond-expr","locations":[{"start":{"line":119,"column":40},"end":{"line":119,"column":60}},{"start":{"line":119,"column":60},"end":{"line":119,"column":null}}]},"8":{"loc":{"start":{"line":126,"column":16},"end":{"line":126,"column":null}},"type":"cond-expr","locations":[{"start":{"line":126,"column":40},"end":{"line":126,"column":60}},{"start":{"line":126,"column":60},"end":{"line":126,"column":null}}]},"9":{"loc":{"start":{"line":133,"column":16},"end":{"line":133,"column":null}},"type":"cond-expr","locations":[{"start":{"line":133,"column":40},"end":{"line":133,"column":60}},{"start":{"line":133,"column":60},"end":{"line":133,"column":null}}]}},"s":{"0":17,"1":9,"2":9,"3":15,"4":15,"5":15,"6":0,"7":15,"8":0,"9":0,"10":0,"11":0},"f":{"0":15,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,15],"2":[0],"3":[0,0],"4":[0,15],"5":[0,15],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TopNavBar.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/TopNavBar.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":22,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":6,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreProjects.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreProjects.js","statementMap":{"0":{"start":{"line":37,"column":16},"end":{"line":37,"column":32}},"1":{"start":{"line":1,"column":33},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"3":{"start":{"line":5,"column":19},"end":{"line":35,"column":null}},"4":{"start":{"line":6,"column":2},"end":{"line":8,"column":null}},"5":{"start":{"line":39,"column":40},"end":{"line":39,"column":null}},"6":{"start":{"line":41,"column":33},"end":{"line":42,"column":null}},"7":{"start":{"line":42,"column":4},"end":{"line":42,"column":null}}},"fnMap":{"0":{"name":"(anonymous_5)","decl":{"start":{"line":5,"column":19},"end":{"line":5,"column":20}},"loc":{"start":{"line":5,"column":28},"end":{"line":35,"column":null}}},"1":{"name":"ExploreProjects","decl":{"start":{"line":37,"column":16},"end":{"line":37,"column":32}},"loc":{"start":{"line":37,"column":37},"end":{"line":56,"column":null}}},"2":{"name":"(anonymous_7)","decl":{"start":{"line":41,"column":46},"end":{"line":41,"column":47}},"loc":{"start":{"line":42,"column":4},"end":{"line":42,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":10},"end":{"line":16,"column":75}},"type":"cond-expr","locations":[{"start":{"line":15,"column":14},"end":{"line":15,"column":75}},{"start":{"line":16,"column":14},"end":{"line":16,"column":75}}]},"1":{"loc":{"start":{"line":19,"column":10},"end":{"line":21,"column":49}},"type":"cond-expr","locations":[{"start":{"line":20,"column":14},"end":{"line":20,"column":49}},{"start":{"line":21,"column":14},"end":{"line":21,"column":49}}]},"2":{"loc":{"start":{"line":25,"column":15},"end":{"line":25,"column":70}},"type":"cond-expr","locations":[{"start":{"line":25,"column":33},"end":{"line":25,"column":50}},{"start":{"line":25,"column":53},"end":{"line":25,"column":70}}]},"3":{"loc":{"start":{"line":26,"column":14},"end":{"line":26,"column":75}},"type":"cond-expr","locations":[{"start":{"line":26,"column":32},"end":{"line":26,"column":52}},{"start":{"line":26,"column":55},"end":{"line":26,"column":75}}]},"4":{"loc":{"start":{"line":28,"column":10},"end":{"line":30,"column":62}},"type":"cond-expr","locations":[{"start":{"line":29,"column":14},"end":{"line":29,"column":62}},{"start":{"line":30,"column":14},"end":{"line":30,"column":62}}]}},"s":{"0":10,"1":7,"2":7,"3":7,"4":14,"5":10,"6":9,"7":14},"f":{"0":14,"1":10,"2":14},"b":{"0":[9,5],"1":[9,5],"2":[9,5],"3":[9,5],"4":[9,5]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreProjects.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreProjects.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":32},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":99,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreUpdates.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreUpdates.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":31}},"1":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":36},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":17},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":34},"end":{"line":4,"column":null}},"5":{"start":{"line":14,"column":23},"end":{"line":45,"column":null}},"6":{"start":{"line":15,"column":4},"end":{"line":16,"column":28}}},"fnMap":{"0":{"name":"ExploreUpdates","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":31}},"loc":{"start":{"line":13,"column":1},"end":{"line":68,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":39},"end":{"line":14,"column":40}},"loc":{"start":{"line":14,"column":40},"end":{"line":45,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":17},"end":{"line":20,"column":70}},"type":"cond-expr","locations":[{"start":{"line":20,"column":35},"end":{"line":20,"column":51}},{"start":{"line":20,"column":54},"end":{"line":20,"column":70}}]},"1":{"loc":{"start":{"line":21,"column":16},"end":{"line":21,"column":75}},"type":"cond-expr","locations":[{"start":{"line":21,"column":34},"end":{"line":21,"column":53}},{"start":{"line":21,"column":56},"end":{"line":21,"column":75}}]},"2":{"loc":{"start":{"line":26,"column":19},"end":{"line":26,"column":null}},"type":"cond-expr","locations":[{"start":{"line":26,"column":37},"end":{"line":26,"column":50}},{"start":{"line":26,"column":50},"end":{"line":26,"column":null}}]},"3":{"loc":{"start":{"line":29,"column":19},"end":{"line":31,"column":50}},"type":"cond-expr","locations":[{"start":{"line":30,"column":22},"end":{"line":30,"column":50}},{"start":{"line":31,"column":22},"end":{"line":31,"column":50}}]}},"s":{"0":8,"1":8,"2":8,"3":8,"4":8,"5":7,"6":12},"f":{"0":7,"1":12},"b":{"0":[2,10],"1":[2,10],"2":[2,10],"3":[2,10]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreUpdates.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ExploreUpdates.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"6":{"start":{"line":13,"column":0},"end":{"line":263,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Feedback.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Feedback.js","statementMap":{"0":{"start":{"line":147,"column":0},"end":{"line":147,"column":15}},"1":{"start":{"line":1,"column":33},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":18},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":26},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":31},"end":{"line":4,"column":null}},"5":{"start":{"line":7,"column":40},"end":{"line":7,"column":null}},"6":{"start":{"line":8,"column":56},"end":{"line":8,"column":null}},"7":{"start":{"line":9,"column":22},"end":{"line":9,"column":null}},"8":{"start":{"line":11,"column":17},"end":{"line":11,"column":null}},"9":{"start":{"line":12,"column":16},"end":{"line":12,"column":null}},"10":{"start":{"line":15,"column":4},"end":{"line":15,"column":null}},"11":{"start":{"line":16,"column":4},"end":{"line":28,"column":null}},"12":{"start":{"line":17,"column":6},"end":{"line":23,"column":null}},"13":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"14":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"15":{"start":{"line":32,"column":4},"end":{"line":32,"column":null}},"16":{"start":{"line":33,"column":4},"end":{"line":33,"column":null}},"17":{"start":{"line":37,"column":4},"end":{"line":41,"column":null}},"18":{"start":{"line":38,"column":6},"end":{"line":40,"column":null}},"19":{"start":{"line":39,"column":8},"end":{"line":39,"column":null}},"20":{"start":{"line":127,"column":29},"end":{"line":127,"column":null}},"21":{"start":{"line":134,"column":29},"end":{"line":134,"column":null}},"22":{"start":{"line":147,"column":15},"end":{"line":147,"column":null}}},"fnMap":{"0":{"name":"Feedback","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":null}},"loc":{"start":{"line":6,"column":9},"end":{"line":145,"column":null}}},"1":{"name":"handleSubmit","decl":{"start":{"line":14,"column":17},"end":{"line":14,"column":30}},"loc":{"start":{"line":14,"column":31},"end":{"line":29,"column":null}}},"2":{"name":"onYesClick","decl":{"start":{"line":31,"column":11},"end":{"line":31,"column":null}},"loc":{"start":{"line":31,"column":11},"end":{"line":34,"column":null}}},"3":{"name":"setFocus","decl":{"start":{"line":36,"column":11},"end":{"line":36,"column":20}},"loc":{"start":{"line":36,"column":23},"end":{"line":42,"column":null}}},"4":{"name":"(anonymous_6)","decl":{"start":{"line":37,"column":15},"end":{"line":37,"column":null}},"loc":{"start":{"line":37,"column":15},"end":{"line":41,"column":7}}},"5":{"name":"(anonymous_7)","decl":{"start":{"line":127,"column":23},"end":{"line":127,"column":29}},"loc":{"start":{"line":127,"column":29},"end":{"line":127,"column":null}}},"6":{"name":"(anonymous_8)","decl":{"start":{"line":134,"column":23},"end":{"line":134,"column":29}},"loc":{"start":{"line":134,"column":29},"end":{"line":134,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":38,"column":6},"end":{"line":40,"column":null}},"type":"if","locations":[{"start":{"line":38,"column":6},"end":{"line":40,"column":null}}]},"1":{"loc":{"start":{"line":46,"column":7},"end":{"line":46,"column":null}},"type":"binary-expr","locations":[{"start":{"line":46,"column":7},"end":{"line":46,"column":null}}]},"2":{"loc":{"start":{"line":62,"column":7},"end":{"line":62,"column":30}},"type":"binary-expr","locations":[{"start":{"line":62,"column":7},"end":{"line":62,"column":30}},{"start":{"line":62,"column":30},"end":{"line":62,"column":null}}]},"3":{"loc":{"start":{"line":122,"column":7},"end":{"line":122,"column":23}},"type":"binary-expr","locations":[{"start":{"line":122,"column":7},"end":{"line":122,"column":23}},{"start":{"line":122,"column":23},"end":{"line":122,"column":null}}]}},"s":{"0":12,"1":8,"2":8,"3":8,"4":8,"5":12,"6":12,"7":12,"8":12,"9":12,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":8},"f":{"0":12,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[0],"1":[12],"2":[12,0],"3":[12,12]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.js","statementMap":{"0":{"start":{"line":31,"column":13},"end":{"line":31,"column":22}},"1":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"2":{"start":{"line":3,"column":25},"end":{"line":3,"column":null}},"3":{"start":{"line":4,"column":30},"end":{"line":4,"column":null}},"4":{"start":{"line":5,"column":21},"end":{"line":5,"column":null}},"5":{"start":{"line":7,"column":26},"end":{"line":29,"column":null}},"6":{"start":{"line":31,"column":22},"end":{"line":86,"column":null}},"7":{"start":{"line":88,"column":0},"end":{"line":142,"column":null}}},"fnMap":{"0":{"name":"(anonymous_2)","decl":{"start":{"line":31,"column":22},"end":{"line":31,"column":23}},"loc":{"start":{"line":44,"column":1},"end":{"line":86,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":2},"end":{"line":41,"column":55}},"type":"default-arg","locations":[{"start":{"line":41,"column":16},"end":{"line":41,"column":55}}]},"1":{"loc":{"start":{"line":43,"column":2},"end":{"line":43,"column":21}},"type":"default-arg","locations":[{"start":{"line":43,"column":17},"end":{"line":43,"column":21}}]},"2":{"loc":{"start":{"line":47,"column":7},"end":{"line":62,"column":null}},"type":"cond-expr","locations":[{"start":{"line":48,"column":8},"end":{"line":62,"column":null}},{"start":{"line":62,"column":8},"end":{"line":62,"column":null}}]},"3":{"loc":{"start":{"line":47,"column":7},"end":{"line":47,"column":null}},"type":"binary-expr","locations":[{"start":{"line":47,"column":7},"end":{"line":47,"column":25}},{"start":{"line":47,"column":25},"end":{"line":47,"column":null}}]}},"s":{"0":14,"1":9,"2":9,"3":9,"4":9,"5":9,"6":9,"7":9},"f":{"0":13},"b":{"0":[13],"1":[13],"2":[0,13],"3":[13,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Footer.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":26}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":29},"end":{"line":11,"column":null}},"6":{"start":{"line":12,"column":0},"end":{"line":16,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/HelpIcon.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/HelpIcon.js","statementMap":{"0":{"start":{"line":5,"column":13},"end":{"line":5,"column":24}},"1":{"start":{"line":1,"column":25},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":null}},"4":{"start":{"line":5,"column":24},"end":{"line":76,"column":null}},"5":{"start":{"line":6,"column":36},"end":{"line":6,"column":null}},"6":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"7":{"start":{"line":7,"column":28},"end":{"line":7,"column":null}},"8":{"start":{"line":8,"column":21},"end":{"line":8,"column":null}},"9":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":25}},"loc":{"start":{"line":5,"column":46},"end":{"line":76,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":28},"end":{"line":7,"column":null}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":21},"end":{"line":8,"column":27}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":30,"column":7},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":30,"column":7},"end":{"line":30,"column":null}}]},"1":{"loc":{"start":{"line":43,"column":28},"end":{"line":43,"column":null}},"type":"cond-expr","locations":[{"start":{"line":43,"column":44},"end":{"line":43,"column":54}},{"start":{"line":43,"column":54},"end":{"line":43,"column":null}}]},"2":{"loc":{"start":{"line":67,"column":22},"end":{"line":67,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":38},"end":{"line":67,"column":48}},{"start":{"line":67,"column":48},"end":{"line":67,"column":null}}]}},"s":{"0":10,"1":8,"2":8,"3":8,"4":8,"5":9,"6":9,"7":0,"8":9,"9":0},"f":{"0":9,"1":0,"2":0},"b":{"0":[9],"1":[0,0],"2":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/HelpIcon.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/HelpIcon.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":12,"column":13},"end":{"line":12,"column":21}},"2":{"start":{"line":13,"column":13},"end":{"line":13,"column":21}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"4":{"start":{"line":1,"column":23},"end":{"line":1,"column":null}},"5":{"start":{"line":2,"column":25},"end":{"line":2,"column":null}},"6":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"7":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"8":{"start":{"line":12,"column":24},"end":{"line":12,"column":null}},"9":{"start":{"line":13,"column":24},"end":{"line":13,"column":null}},"10":{"start":{"line":15,"column":0},"end":{"line":19,"column":null}},"11":{"start":{"line":21,"column":0},"end":{"line":25,"column":null}},"12":{"start":{"line":27,"column":0},"end":{"line":31,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":0,"2":0,"3":0,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.js","statementMap":{"0":{"start":{"line":15,"column":13},"end":{"line":15,"column":22}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":28},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":17},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":29},"end":{"line":6,"column":null}},"7":{"start":{"line":7,"column":27},"end":{"line":7,"column":null}},"8":{"start":{"line":8,"column":23},"end":{"line":8,"column":null}},"9":{"start":{"line":9,"column":21},"end":{"line":9,"column":null}},"10":{"start":{"line":10,"column":26},"end":{"line":10,"column":null}},"11":{"start":{"line":15,"column":22},"end":{"line":155,"column":null}},"12":{"start":{"line":32,"column":16},"end":{"line":32,"column":null}},"13":{"start":{"line":33,"column":19},"end":{"line":33,"column":null}},"14":{"start":{"line":34,"column":2},"end":{"line":37,"column":null}},"15":{"start":{"line":157,"column":0},"end":{"line":240,"column":null}}},"fnMap":{"0":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":22},"end":{"line":15,"column":23}},"loc":{"start":{"line":31,"column":1},"end":{"line":155,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":33,"column":19},"end":{"line":33,"column":null}},"type":"cond-expr","locations":[{"start":{"line":33,"column":37},"end":{"line":33,"column":44}},{"start":{"line":33,"column":44},"end":{"line":33,"column":null}}]},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":37,"column":null}},"type":"cond-expr","locations":[{"start":{"line":36,"column":8},"end":{"line":36,"column":28}},{"start":{"line":37,"column":8},"end":{"line":37,"column":null}}]},"2":{"loc":{"start":{"line":35,"column":4},"end":{"line":35,"column":59}},"type":"binary-expr","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":37}},{"start":{"line":35,"column":37},"end":{"line":35,"column":59}}]},"3":{"loc":{"start":{"line":55,"column":9},"end":{"line":64,"column":null}},"type":"cond-expr","locations":[{"start":{"line":56,"column":10},"end":{"line":64,"column":null}},{"start":{"line":64,"column":10},"end":{"line":64,"column":null}}]},"4":{"loc":{"start":{"line":77,"column":21},"end":{"line":77,"column":null}},"type":"cond-expr","locations":[{"start":{"line":77,"column":41},"end":{"line":77,"column":61}},{"start":{"line":77,"column":61},"end":{"line":77,"column":null}}]},"5":{"loc":{"start":{"line":92,"column":15},"end":{"line":92,"column":null}},"type":"cond-expr","locations":[{"start":{"line":92,"column":35},"end":{"line":92,"column":42}},{"start":{"line":92,"column":42},"end":{"line":92,"column":null}}]},"6":{"loc":{"start":{"line":105,"column":15},"end":{"line":105,"column":null}},"type":"cond-expr","locations":[{"start":{"line":105,"column":35},"end":{"line":105,"column":47}},{"start":{"line":105,"column":47},"end":{"line":105,"column":null}}]},"7":{"loc":{"start":{"line":126,"column":9},"end":{"line":128,"column":null}},"type":"cond-expr","locations":[{"start":{"line":127,"column":10},"end":{"line":128,"column":null}},{"start":{"line":128,"column":12},"end":{"line":128,"column":null}}]},"8":{"loc":{"start":{"line":126,"column":9},"end":{"line":126,"column":null}},"type":"binary-expr","locations":[{"start":{"line":126,"column":9},"end":{"line":126,"column":23}},{"start":{"line":126,"column":23},"end":{"line":126,"column":null}}]},"9":{"loc":{"start":{"line":132,"column":11},"end":{"line":137,"column":null}},"type":"cond-expr","locations":[{"start":{"line":133,"column":12},"end":{"line":137,"column":null}},{"start":{"line":137,"column":12},"end":{"line":137,"column":null}}]}},"s":{"0":15,"1":8,"2":8,"3":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"10":8,"11":8,"12":12,"13":12,"14":12,"15":8},"f":{"0":12},"b":{"0":[0,12],"1":[12,0],"2":[12,12],"3":[0,12],"4":[12,0],"5":[12,0],"6":[12,0],"7":[2,10],"8":[12,2],"9":[12,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/Layout.stories.js","statementMap":{"0":{"start":{"line":27,"column":13},"end":{"line":27,"column":21}},"1":{"start":{"line":28,"column":13},"end":{"line":28,"column":23}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"3":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"5":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"6":{"start":{"line":9,"column":19},"end":{"line":23,"column":null}},"7":{"start":{"line":27,"column":24},"end":{"line":27,"column":null}},"8":{"start":{"line":28,"column":26},"end":{"line":28,"column":null}},"9":{"start":{"line":30,"column":0},"end":{"line":33,"column":null}},"10":{"start":{"line":35,"column":0},"end":{"line":40,"column":null}}},"fnMap":{"0":{"name":"(anonymous_5)","decl":{"start":{"line":9,"column":19},"end":{"line":9,"column":null}},"loc":{"start":{"line":9,"column":19},"end":{"line":23,"column":null}}}},"branchMap":{},"s":{"0":6,"1":4,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":7},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.js","statementMap":{"0":{"start":{"line":12,"column":13},"end":{"line":12,"column":24}},"1":{"start":{"line":135,"column":0},"end":{"line":135,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":22},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"5":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":29},"end":{"line":6,"column":null}},"7":{"start":{"line":12,"column":27},"end":{"line":110,"column":null}},"8":{"start":{"line":20,"column":42},"end":{"line":20,"column":null}},"9":{"start":{"line":21,"column":16},"end":{"line":21,"column":null}},"10":{"start":{"line":22,"column":17},"end":{"line":22,"column":null}},"11":{"start":{"line":24,"column":2},"end":{"line":32,"column":null}},"12":{"start":{"line":25,"column":4},"end":{"line":29,"column":null}},"13":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"14":{"start":{"line":28,"column":6},"end":{"line":28,"column":null}},"15":{"start":{"line":31,"column":4},"end":{"line":31,"column":null}},"16":{"start":{"line":112,"column":0},"end":{"line":133,"column":null}},"17":{"start":{"line":135,"column":15},"end":{"line":135,"column":27}}},"fnMap":{"0":{"name":"(anonymous_7)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":19,"column":1},"end":{"line":110,"column":null}}},"1":{"name":"(anonymous_8)","decl":{"start":{"line":24,"column":15},"end":{"line":24,"column":22}},"loc":{"start":{"line":24,"column":22},"end":{"line":32,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":29,"column":null}},{"start":{"line":27,"column":11},"end":{"line":29,"column":null}}]},"1":{"loc":{"start":{"line":40,"column":14},"end":{"line":40,"column":null}},"type":"cond-expr","locations":[{"start":{"line":40,"column":31},"end":{"line":40,"column":40}},{"start":{"line":40,"column":40},"end":{"line":40,"column":null}}]},"2":{"loc":{"start":{"line":49,"column":13},"end":{"line":59,"column":null}},"type":"cond-expr","locations":[{"start":{"line":50,"column":14},"end":{"line":59,"column":null}},{"start":{"line":59,"column":14},"end":{"line":59,"column":null}}]},"3":{"loc":{"start":{"line":68,"column":9},"end":{"line":98,"column":null}},"type":"cond-expr","locations":[{"start":{"line":69,"column":10},"end":{"line":98,"column":null}},{"start":{"line":98,"column":10},"end":{"line":98,"column":null}}]}},"s":{"0":0,"1":4,"2":9,"3":9,"4":9,"5":9,"6":9,"7":9,"8":3,"9":3,"10":3,"11":3,"12":1,"13":0,"14":1,"15":1,"16":9,"17":9},"f":{"0":3,"1":1},"b":{"0":[0,1],"1":[2,1],"2":[2,1],"3":[2,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/PhaseBanner.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":12,"column":13},"end":{"line":12,"column":25}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"3":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":24},"end":{"line":2,"column":null}},"5":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"6":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}},"7":{"start":{"line":12,"column":28},"end":{"line":12,"column":null}},"8":{"start":{"line":14,"column":0},"end":{"line":17,"column":null}},"9":{"start":{"line":19,"column":0},"end":{"line":23,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2,"2":0,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.js","statementMap":{"0":{"start":{"line":14,"column":16},"end":{"line":14,"column":31}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":25},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":31},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":34},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":24},"end":{"line":6,"column":null}},"7":{"start":{"line":7,"column":29},"end":{"line":7,"column":null}},"8":{"start":{"line":8,"column":30},"end":{"line":8,"column":null}},"9":{"start":{"line":9,"column":27},"end":{"line":9,"column":null}},"10":{"start":{"line":15,"column":36},"end":{"line":15,"column":null}},"11":{"start":{"line":16,"column":22},"end":{"line":16,"column":null}},"12":{"start":{"line":18,"column":44},"end":{"line":18,"column":null}},"13":{"start":{"line":20,"column":24},"end":{"line":96,"column":null}},"14":{"start":{"line":22,"column":27},"end":{"line":22,"column":null}},"15":{"start":{"line":25,"column":24},"end":{"line":25,"column":null}},"16":{"start":{"line":26,"column":4},"end":{"line":32,"column":null}},"17":{"start":{"line":26,"column":21},"end":{"line":26,"column":24}},"18":{"start":{"line":27,"column":6},"end":{"line":31,"column":null}},"19":{"start":{"line":28,"column":8},"end":{"line":30,"column":null}},"20":{"start":{"line":29,"column":10},"end":{"line":29,"column":null}},"21":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"22":{"start":{"line":37,"column":21},"end":{"line":37,"column":null}},"23":{"start":{"line":40,"column":4},"end":{"line":43,"column":null}},"24":{"start":{"line":41,"column":28},"end":{"line":41,"column":null}},"25":{"start":{"line":42,"column":6},"end":{"line":42,"column":null}},"26":{"start":{"line":46,"column":23},"end":{"line":46,"column":null}},"27":{"start":{"line":47,"column":20},"end":{"line":47,"column":null}},"28":{"start":{"line":51,"column":4},"end":{"line":71,"column":null}},"29":{"start":{"line":52,"column":6},"end":{"line":60,"column":null}},"30":{"start":{"line":62,"column":6},"end":{"line":70,"column":null}},"31":{"start":{"line":73,"column":4},"end":{"line":75,"column":null}},"32":{"start":{"line":74,"column":6},"end":{"line":74,"column":null}},"33":{"start":{"line":78,"column":4},"end":{"line":89,"column":null}},"34":{"start":{"line":88,"column":6},"end":{"line":88,"column":null}},"35":{"start":{"line":91,"column":4},"end":{"line":93,"column":null}},"36":{"start":{"line":92,"column":6},"end":{"line":92,"column":null}},"37":{"start":{"line":95,"column":4},"end":{"line":95,"column":null}},"38":{"start":{"line":373,"column":0},"end":{"line":378,"column":null}}},"fnMap":{"0":{"name":"ReportAProblem","decl":{"start":{"line":14,"column":16},"end":{"line":14,"column":31}},"loc":{"start":{"line":14,"column":36},"end":{"line":371,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":25}},"loc":{"start":{"line":20,"column":25},"end":{"line":96,"column":null}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":84,"column":13},"end":{"line":84,"column":14}},"loc":{"start":{"line":84,"column":14},"end":{"line":89,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":6},"end":{"line":31,"column":null}},"type":"if","locations":[{"start":{"line":27,"column":6},"end":{"line":31,"column":null}}]},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":null}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":30,"column":null}}]},"2":{"loc":{"start":{"line":51,"column":4},"end":{"line":71,"column":null}},"type":"if","locations":[{"start":{"line":51,"column":4},"end":{"line":71,"column":null}},{"start":{"line":61,"column":11},"end":{"line":71,"column":null}}]},"3":{"loc":{"start":{"line":91,"column":4},"end":{"line":93,"column":null}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":93,"column":null}}]},"4":{"loc":{"start":{"line":105,"column":9},"end":{"line":121,"column":null}},"type":"cond-expr","locations":[{"start":{"line":106,"column":10},"end":{"line":121,"column":null}},{"start":{"line":121,"column":10},"end":{"line":121,"column":null}}]},"5":{"loc":{"start":{"line":125,"column":8},"end":{"line":125,"column":null}},"type":"cond-expr","locations":[{"start":{"line":125,"column":8},"end":{"line":125,"column":null}}]},"6":{"loc":{"start":{"line":350,"column":15},"end":{"line":354,"column":null}},"type":"cond-expr","locations":[{"start":{"line":351,"column":16},"end":{"line":354,"column":null}},{"start":{"line":354,"column":18},"end":{"line":354,"column":null}}]}},"s":{"0":7,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":9,"11":8,"12":8,"13":8,"14":3,"15":3,"16":3,"17":3,"18":24,"19":21,"20":1,"21":3,"22":3,"23":3,"24":5,"25":5,"26":3,"27":3,"28":3,"29":0,"30":3,"31":3,"32":21,"33":3,"34":0,"35":3,"36":1,"37":3,"38":1},"f":{"0":9,"1":3,"2":0},"b":{"0":[21],"1":[1],"2":[0,3],"3":[1],"4":[1,7],"5":[1],"6":[2,5]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/organisms/ReportAProblem.stories.js","statementMap":{"0":{"start":{"line":11,"column":13},"end":{"line":11,"column":20}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}},"2":{"start":{"line":1,"column":18},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":4,"column":15},"end":{"line":7,"column":2}},"5":{"start":{"line":11,"column":23},"end":{"line":11,"column":null}}},"fnMap":{},"branchMap":{},"s":{"0":10,"1":0,"2":1,"3":1,"4":1,"5":1},"f":{},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/TextRecur.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/TextRecur.jsx","statementMap":{"0":{"start":{"line":26,"column":24},"end":{"line":26,"column":34}},"1":{"start":{"line":1,"column":27},"end":{"line":1,"column":null}},"2":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"3":{"start":{"line":4,"column":22},"end":{"line":4,"column":null}},"4":{"start":{"line":5,"column":21},"end":{"line":5,"column":null}},"5":{"start":{"line":6,"column":24},"end":{"line":6,"column":null}},"6":{"start":{"line":7,"column":22},"end":{"line":7,"column":null}},"7":{"start":{"line":8,"column":17},"end":{"line":8,"column":null}},"8":{"start":{"line":9,"column":17},"end":{"line":9,"column":null}},"9":{"start":{"line":10,"column":26},"end":{"line":10,"column":null}},"10":{"start":{"line":11,"column":17},"end":{"line":11,"column":null}},"11":{"start":{"line":14,"column":14},"end":{"line":24,"column":null}},"12":{"start":{"line":27,"column":15},"end":{"line":27,"column":42}},"13":{"start":{"line":28,"column":16},"end":{"line":28,"column":null}},"14":{"start":{"line":30,"column":2},"end":{"line":37,"column":null}},"15":{"start":{"line":36,"column":4},"end":{"line":36,"column":null}},"16":{"start":{"line":44,"column":12},"end":{"line":44,"column":36}}},"fnMap":{"0":{"name":"TextRecur","decl":{"start":{"line":26,"column":24},"end":{"line":26,"column":34}},"loc":{"start":{"line":26,"column":39},"end":{"line":52,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":23},"end":{"line":43,"column":24}},"loc":{"start":{"line":44,"column":12},"end":{"line":44,"column":36}}}},"branchMap":{"0":{"loc":{"start":{"line":30,"column":2},"end":{"line":37,"column":null}},"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":37,"column":null}}]},"1":{"loc":{"start":{"line":31,"column":4},"end":{"line":34,"column":null}},"type":"binary-expr","locations":[{"start":{"line":31,"column":4},"end":{"line":31,"column":null}},{"start":{"line":32,"column":5},"end":{"line":32,"column":20}},{"start":{"line":33,"column":6},"end":{"line":33,"column":null}},{"start":{"line":34,"column":6},"end":{"line":34,"column":null}}]},"2":{"loc":{"start":{"line":41,"column":7},"end":{"line":48,"column":27}},"type":"cond-expr","locations":[{"start":{"line":42,"column":8},"end":{"line":42,"column":27}},{"start":{"line":48,"column":8},"end":{"line":48,"column":27}}]},"3":{"loc":{"start":{"line":41,"column":7},"end":{"line":41,"column":32}},"type":"binary-expr","locations":[{"start":{"line":41,"column":7},"end":{"line":41,"column":18}},{"start":{"line":41,"column":18},"end":{"line":41,"column":32}}]}},"s":{"0":106,"1":12,"2":12,"3":12,"4":12,"5":12,"6":12,"7":12,"8":12,"9":12,"10":12,"11":12,"12":516,"13":515,"14":515,"15":0,"16":411},"f":{"0":516,"1":411},"b":{"0":[0],"1":[515,515,28,6],"2":[267,248],"3":[515,289]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/TextRender.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/TextRender.jsx","statementMap":{"0":{"start":{"line":4,"column":24},"end":{"line":4,"column":35}},"1":{"start":{"line":1,"column":22},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":27},"end":{"line":2,"column":null}},"3":{"start":{"line":8,"column":8},"end":{"line":10,"column":null}}},"fnMap":{"0":{"name":"TextRender","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":35}},"loc":{"start":{"line":4,"column":40},"end":{"line":19,"column":null}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":23}},"loc":{"start":{"line":7,"column":29},"end":{"line":16,"column":null}}}},"branchMap":{},"s":{"0":35,"1":12,"2":12,"3":106},"f":{"0":37,"1":106},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/HeaderText.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/HeaderText.jsx","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"1":{"start":{"line":1,"column":24},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":2},"end":{"line":31,"column":null}}},"fnMap":{"0":{"name":"HeaderText","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":40},"end":{"line":32,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":21},"end":{"line":9,"column":null}},"type":"cond-expr","locations":[{"start":{"line":9,"column":41},"end":{"line":9,"column":50}},{"start":{"line":9,"column":50},"end":{"line":9,"column":null}}]},"1":{"loc":{"start":{"line":15,"column":40},"end":{"line":15,"column":null}},"type":"cond-expr","locations":[{"start":{"line":15,"column":60},"end":{"line":15,"column":69}},{"start":{"line":15,"column":69},"end":{"line":15,"column":null}}]},"2":{"loc":{"start":{"line":21,"column":40},"end":{"line":21,"column":null}},"type":"cond-expr","locations":[{"start":{"line":21,"column":60},"end":{"line":21,"column":69}},{"start":{"line":21,"column":69},"end":{"line":21,"column":null}}]}},"s":{"0":12,"1":12,"2":21},"f":{"0":21},"b":{"0":[2,0],"1":[4,6],"2":[8,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/LineBreak.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/LineBreak.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":null}},"1":{"start":{"line":2,"column":2},"end":{"line":2,"column":null}}},"fnMap":{"0":{"name":"LineBreak","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":null}},"loc":{"start":{"line":1,"column":24},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12,"1":22},"f":{"0":22},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Link.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Link.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}}},"fnMap":{"0":{"name":"Link","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":34},"end":{"line":10,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":3},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/ListItem.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/ListItem.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}}},"fnMap":{"0":{"name":"ListItem","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":38},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":137},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/OrderedList.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/OrderedList.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":38}}},"fnMap":{"0":{"name":"UnorderedList","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":38}},"loc":{"start":{"line":1,"column":43},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":2},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Paragraph.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Paragraph.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}}},"fnMap":{"0":{"name":"Paragraph","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":39},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":63},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Span.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Span.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}}},"fnMap":{"0":{"name":"Span","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":34},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Text.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/Text.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}},"1":{"start":{"line":3,"column":2},"end":{"line":10,"column":null}}},"fnMap":{"0":{"name":"Text","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":34},"end":{"line":11,"column":null}}}},"branchMap":{},"s":{"0":12,"1":223},"f":{"0":223},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/UnorderedList.jsx": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/text_node_renderer/nodes/UnorderedList.jsx","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":1,"column":38}}},"fnMap":{"0":{"name":"UnorderedList","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":38}},"loc":{"start":{"line":1,"column":43},"end":{"line":3,"column":null}}}},"branchMap":{},"s":{"0":12},"f":{"0":45},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/postFeedbackToGcNotify.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/postFeedbackToGcNotify.js","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":1,"column":45}},"1":{"start":{"line":2,"column":2},"end":{"line":17,"column":null}}},"fnMap":{"0":{"name":"postFeedbackToGcNotify","decl":{"start":{"line":1,"column":22},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":49},"end":{"line":19,"column":null}}}},"branchMap":{},"s":{"0":1,"1":0},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/submitEmail.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/notify/submitEmail.js","statementMap":{"0":{"start":{"line":3,"column":13},"end":{"line":3,"column":24}},"1":{"start":{"line":32,"column":13},"end":{"line":32,"column":38}},"2":{"start":{"line":1,"column":7},"end":{"line":1,"column":null}},"3":{"start":{"line":3,"column":27},"end":{"line":30,"column":null}},"4":{"start":{"line":11,"column":25},"end":{"line":27,"column":null}},"5":{"start":{"line":29,"column":2},"end":{"line":29,"column":null}},"6":{"start":{"line":32,"column":41},"end":{"line":65,"column":null}},"7":{"start":{"line":42,"column":25},"end":{"line":63,"column":null}},"8":{"start":{"line":64,"column":2},"end":{"line":64,"column":null}}},"fnMap":{"0":{"name":"(anonymous_3)","decl":{"start":{"line":3,"column":27},"end":{"line":3,"column":null}},"loc":{"start":{"line":9,"column":2},"end":{"line":30,"column":null}}},"1":{"name":"(anonymous_4)","decl":{"start":{"line":32,"column":41},"end":{"line":32,"column":null}},"loc":{"start":{"line":40,"column":2},"end":{"line":65,"column":null}}}},"branchMap":{},"s":{"0":2,"1":1,"2":2,"3":2,"4":1,"5":1,"6":2,"7":0,"8":0},"f":{"0":1,"1":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/createBreadcrumbs.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/createBreadcrumbs.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":33}},"1":{"start":{"line":1,"column":33},"end":{"line":12,"column":null}},"2":{"start":{"line":2,"column":2},"end":{"line":11,"column":null}},"3":{"start":{"line":3,"column":4},"end":{"line":10,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":33},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":51},"end":{"line":12,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":2,"column":29},"end":{"line":2,"column":30}},"loc":{"start":{"line":2,"column":30},"end":{"line":11,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":8},"end":{"line":5,"column":77}},"type":"cond-expr","locations":[{"start":{"line":5,"column":26},"end":{"line":5,"column":50}},{"start":{"line":5,"column":53},"end":{"line":5,"column":77}}]},"1":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":39}},"type":"cond-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":39}},{"start":{"line":9,"column":12},"end":{"line":9,"column":39}}]}},"s":{"0":6,"1":6,"2":6,"3":6},"f":{"0":6,"1":6},"b":{"0":[0,6],"1":[0,6]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/filterItems.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/filterItems.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":27}},"1":{"start":{"line":1,"column":27},"end":{"line":7,"column":null}},"2":{"start":{"line":3,"column":27},"end":{"line":5,"column":null}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":null}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":27},"end":{"line":1,"column":28}},"loc":{"start":{"line":1,"column":35},"end":{"line":7,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":40},"end":{"line":3,"column":41}},"loc":{"start":{"line":3,"column":41},"end":{"line":5,"column":null}}}},"branchMap":{},"s":{"0":6,"1":6,"2":6,"3":6,"4":6},"f":{"0":6,"1":6},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/generateCollapseElements.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/generateCollapseElements.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":40}},"1":{"start":{"line":1,"column":40},"end":{"line":43,"column":null}},"2":{"start":{"line":2,"column":19},"end":{"line":2,"column":21}},"3":{"start":{"line":4,"column":2},"end":{"line":40,"column":null}},"4":{"start":{"line":5,"column":4},"end":{"line":39,"column":null}},"5":{"start":{"line":6,"column":6},"end":{"line":7,"column":34}},"6":{"start":{"line":9,"column":11},"end":{"line":39,"column":null}},"7":{"start":{"line":10,"column":24},"end":{"line":11,"column":24}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":24}},"9":{"start":{"line":15,"column":6},"end":{"line":16,"column":34}},"10":{"start":{"line":20,"column":11},"end":{"line":39,"column":null}},"11":{"start":{"line":21,"column":24},"end":{"line":22,"column":24}},"12":{"start":{"line":22,"column":8},"end":{"line":22,"column":24}},"13":{"start":{"line":26,"column":6},"end":{"line":27,"column":34}},"14":{"start":{"line":31,"column":11},"end":{"line":39,"column":null}},"15":{"start":{"line":32,"column":6},"end":{"line":33,"column":34}},"16":{"start":{"line":37,"column":11},"end":{"line":39,"column":null}},"17":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"18":{"start":{"line":42,"column":2},"end":{"line":42,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":40},"end":{"line":1,"column":41}},"loc":{"start":{"line":1,"column":41},"end":{"line":43,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":41},"end":{"line":10,"column":42}},"loc":{"start":{"line":11,"column":8},"end":{"line":11,"column":24}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":41},"end":{"line":21,"column":42}},"loc":{"start":{"line":22,"column":8},"end":{"line":22,"column":24}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":39,"column":null}},{"start":{"line":9,"column":11},"end":{"line":39,"column":null}}]},"1":{"loc":{"start":{"line":9,"column":11},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":9,"column":11},"end":{"line":39,"column":null}},{"start":{"line":20,"column":11},"end":{"line":39,"column":null}}]},"2":{"loc":{"start":{"line":20,"column":11},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":20,"column":11},"end":{"line":39,"column":null}},{"start":{"line":31,"column":11},"end":{"line":39,"column":null}}]},"3":{"loc":{"start":{"line":31,"column":11},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":11},"end":{"line":39,"column":null}},{"start":{"line":37,"column":11},"end":{"line":39,"column":null}}]},"4":{"loc":{"start":{"line":37,"column":11},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":37,"column":11},"end":{"line":39,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getAllUpdateIds.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getAllUpdateIds.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":32}},"1":{"start":{"line":2,"column":2},"end":{"line":15,"column":null}},"2":{"start":{"line":2,"column":33},"end":{"line":15,"column":null}}},"fnMap":{"0":{"name":"getAllUpdateIds","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":32}},"loc":{"start":{"line":1,"column":37},"end":{"line":16,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":2,"column":23},"end":{"line":2,"column":24}},"loc":{"start":{"line":2,"column":33},"end":{"line":15,"column":null}}}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getDictionaryTerm.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/getDictionaryTerm.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":33}},"1":{"start":{"line":1,"column":33},"end":{"line":4,"column":null}},"2":{"start":{"line":2,"column":26},"end":{"line":2,"column":null}},"3":{"start":{"line":2,"column":51},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":2},"end":{"line":3,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":33},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":55},"end":{"line":4,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":2,"column":42},"end":{"line":2,"column":43}},"loc":{"start":{"line":2,"column":51},"end":{"line":2,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":78}},"type":"cond-expr","locations":[{"start":{"line":3,"column":27},"end":{"line":3,"column":51}},{"start":{"line":3,"column":54},"end":{"line":3,"column":78}}]}},"s":{"0":28,"1":8,"2":28,"3":358,"4":28},"f":{"0":28,"1":358},"b":{"0":[2,26]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/maskEmail.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/maskEmail.js","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":2,"column":26}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":null}},"2":{"start":{"line":4,"column":10},"end":{"line":4,"column":null}},"3":{"start":{"line":6,"column":2},"end":{"line":16,"column":null}},"4":{"start":{"line":6,"column":15},"end":{"line":6,"column":18}},"5":{"start":{"line":7,"column":4},"end":{"line":15,"column":null}},"6":{"start":{"line":8,"column":6},"end":{"line":8,"column":null}},"7":{"start":{"line":9,"column":11},"end":{"line":15,"column":null}},"8":{"start":{"line":10,"column":6},"end":{"line":10,"column":null}},"9":{"start":{"line":11,"column":6},"end":{"line":11,"column":null}},"10":{"start":{"line":13,"column":6},"end":{"line":13,"column":null}},"11":{"start":{"line":14,"column":6},"end":{"line":14,"column":null}},"12":{"start":{"line":18,"column":2},"end":{"line":18,"column":null}}},"fnMap":{"0":{"name":"maskEmail","decl":{"start":{"line":2,"column":16},"end":{"line":2,"column":26}},"loc":{"start":{"line":2,"column":31},"end":{"line":19,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":15,"column":null}},{"start":{"line":9,"column":11},"end":{"line":15,"column":null}}]},"1":{"loc":{"start":{"line":9,"column":11},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":9,"column":11},"end":{"line":15,"column":null}},{"start":{"line":12,"column":11},"end":{"line":15,"column":null}}]},"2":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":63}},"type":"binary-expr","locations":[{"start":{"line":9,"column":15},"end":{"line":9,"column":35}},{"start":{"line":9,"column":35},"end":{"line":9,"column":55}},{"start":{"line":9,"column":55},"end":{"line":9,"column":63}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":14,"6":1,"7":13,"8":10,"9":10,"10":3,"11":3,"12":1},"f":{"0":1},"b":{"0":[1,13],"1":[10,3],"2":[13,12,11]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/shuffle.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/shuffle.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":23}},"1":{"start":{"line":1,"column":23},"end":{"line":8,"column":null}},"2":{"start":{"line":3,"column":2},"end":{"line":6,"column":null}},"3":{"start":{"line":3,"column":15},"end":{"line":3,"column":36}},"4":{"start":{"line":4,"column":14},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":4},"end":{"line":5,"column":null}},"6":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":23},"end":{"line":1,"column":24}},"loc":{"start":{"line":1,"column":24},"end":{"line":8,"column":null}}}},"branchMap":{},"s":{"0":1,"1":6,"2":1,"3":1,"4":0,"5":0,"6":1},"f":{"0":1},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/sortUpdatesByDate.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/sortUpdatesByDate.js","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":33}},"1":{"start":{"line":1,"column":33},"end":{"line":5,"column":null}},"2":{"start":{"line":2,"column":2},"end":{"line":4,"column":null}},"3":{"start":{"line":3,"column":4},"end":{"line":3,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":1,"column":33},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":34},"end":{"line":5,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":2,"column":25},"end":{"line":2,"column":26}},"loc":{"start":{"line":2,"column":29},"end":{"line":4,"column":null}}}},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":5},"f":{"0":7,"1":5},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/stripFeedback.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/lib/utils/stripFeedback.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":30}},"1":{"start":{"line":3,"column":2},"end":{"line":5,"column":null}},"2":{"start":{"line":9,"column":2},"end":{"line":11,"column":null}},"3":{"start":{"line":15,"column":2},"end":{"line":17,"column":null}},"4":{"start":{"line":21,"column":2},"end":{"line":23,"column":null}},"5":{"start":{"line":25,"column":2},"end":{"line":27,"column":null}},"6":{"start":{"line":30,"column":2},"end":{"line":30,"column":null}}},"fnMap":{"0":{"name":"stripFeedback","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":30}},"loc":{"start":{"line":1,"column":45},"end":{"line":31,"column":null}}}},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":7,"4":7,"5":7,"6":7},"f":{"0":7},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/initMiddleware.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/initMiddleware.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":3,"column":39}},"1":{"start":{"line":4,"column":2},"end":{"line":12,"column":null}},"2":{"start":{"line":5,"column":4},"end":{"line":12,"column":null}},"3":{"start":{"line":6,"column":6},"end":{"line":11,"column":null}},"4":{"start":{"line":7,"column":8},"end":{"line":9,"column":null}},"5":{"start":{"line":8,"column":10},"end":{"line":8,"column":null}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":null}}},"fnMap":{"0":{"name":"initMiddleware","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":39}},"loc":{"start":{"line":3,"column":49},"end":{"line":13,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":10}},"loc":{"start":{"line":5,"column":4},"end":{"line":12,"column":null}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":26},"end":{"line":12,"column":null}}},"3":{"name":"(anonymous_4)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":28},"end":{"line":11,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":null}},"type":"if","locations":[{"start":{"line":7,"column":8},"end":{"line":9,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/joi.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/middlewares/joi.js","statementMap":{"0":{"start":{"line":11,"column":24},"end":{"line":11,"column":33}},"1":{"start":{"line":1,"column":42},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"3":{"start":{"line":12,"column":2},"end":{"line":24,"column":null}},"4":{"start":{"line":13,"column":22},"end":{"line":13,"column":null}},"5":{"start":{"line":14,"column":18},"end":{"line":14,"column":null}},"6":{"start":{"line":15,"column":4},"end":{"line":23,"column":null}},"7":{"start":{"line":16,"column":6},"end":{"line":16,"column":null}},"8":{"start":{"line":18,"column":26},"end":{"line":18,"column":null}},"9":{"start":{"line":19,"column":22},"end":{"line":21,"column":null}},"10":{"start":{"line":20,"column":8},"end":{"line":20,"column":null}},"11":{"start":{"line":22,"column":6},"end":{"line":22,"column":null}}},"fnMap":{"0":{"name":"validate","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":33}},"loc":{"start":{"line":11,"column":62},"end":{"line":25,"column":null}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":16}},"loc":{"start":{"line":12,"column":21},"end":{"line":24,"column":null}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":34},"end":{"line":19,"column":35}},"loc":{"start":{"line":19,"column":35},"end":{"line":21,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":50},"end":{"line":11,"column":62}},"type":"default-arg","locations":[{"start":{"line":11,"column":60},"end":{"line":11,"column":62}}]},"1":{"loc":{"start":{"line":15,"column":4},"end":{"line":23,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":23,"column":null}},{"start":{"line":17,"column":11},"end":{"line":23,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":0,"8":1,"9":1,"10":2,"11":1},"f":{"0":1,"1":1,"2":2},"b":{"0":[0],"1":[0,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/404.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/404.js","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":33}},"1":{"start":{"line":233,"column":13},"end":{"line":233,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":39},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":17},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":29},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":36},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":31},"end":{"line":8,"column":null}},"10":{"start":{"line":11,"column":16},"end":{"line":11,"column":null}},"11":{"start":{"line":12,"column":30},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":17},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":21},"end":{"line":14,"column":null}},"14":{"start":{"line":16,"column":2},"end":{"line":28,"column":null}},"15":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"16":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"17":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"18":{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},"19":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"20":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"21":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"22":{"start":{"line":32,"column":4},"end":{"line":32,"column":null}},"23":{"start":{"line":233,"column":30},"end":{"line":245,"column":null}},"24":{"start":{"line":234,"column":19},"end":{"line":234,"column":null}},"25":{"start":{"line":236,"column":2},"end":{"line":244,"column":null}}},"fnMap":{"0":{"name":"error404","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":38},"end":{"line":231,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":null}},"loc":{"start":{"line":16,"column":12},"end":{"line":28,"column":5}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":233,"column":30},"end":{"line":233,"column":37}},"loc":{"start":{"line":233,"column":47},"end":{"line":245,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}]},"2":{"loc":{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},{"start":{"line":25,"column":11},"end":{"line":27,"column":null}}]},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":33,"column":null}}]},"4":{"loc":{"start":{"line":52,"column":19},"end":{"line":52,"column":null}},"type":"cond-expr","locations":[{"start":{"line":52,"column":43},"end":{"line":52,"column":51}},{"start":{"line":52,"column":51},"end":{"line":52,"column":null}}]},"5":{"loc":{"start":{"line":67,"column":12},"end":{"line":69,"column":null}},"type":"cond-expr","locations":[{"start":{"line":68,"column":16},"end":{"line":68,"column":null}},{"start":{"line":69,"column":16},"end":{"line":69,"column":null}}]},"6":{"loc":{"start":{"line":118,"column":18},"end":{"line":120,"column":60}},"type":"cond-expr","locations":[{"start":{"line":119,"column":22},"end":{"line":119,"column":60}},{"start":{"line":120,"column":22},"end":{"line":120,"column":60}}]},"7":{"loc":{"start":{"line":123,"column":18},"end":{"line":125,"column":61}},"type":"cond-expr","locations":[{"start":{"line":124,"column":22},"end":{"line":124,"column":61}},{"start":{"line":125,"column":22},"end":{"line":125,"column":61}}]},"8":{"loc":{"start":{"line":162,"column":22},"end":{"line":164,"column":65}},"type":"cond-expr","locations":[{"start":{"line":163,"column":26},"end":{"line":163,"column":65}},{"start":{"line":164,"column":26},"end":{"line":164,"column":65}}]},"9":{"loc":{"start":{"line":214,"column":20},"end":{"line":216,"column":62}},"type":"cond-expr","locations":[{"start":{"line":215,"column":24},"end":{"line":215,"column":62}},{"start":{"line":216,"column":24},"end":{"line":216,"column":62}}]},"10":{"loc":{"start":{"line":219,"column":20},"end":{"line":221,"column":63}},"type":"cond-expr","locations":[{"start":{"line":220,"column":24},"end":{"line":220,"column":63}},{"start":{"line":221,"column":24},"end":{"line":221,"column":63}}]},"11":{"loc":{"start":{"line":239,"column":25},"end":{"line":239,"column":null}},"type":"binary-expr","locations":[{"start":{"line":239,"column":25},"end":{"line":239,"column":56}},{"start":{"line":239,"column":60},"end":{"line":239,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"16":0,"17":0,"18":1,"19":0,"20":1,"21":2,"22":1,"23":1,"24":0,"25":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,1],"3":[1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/500.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/500.js","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":33}},"1":{"start":{"line":262,"column":13},"end":{"line":262,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":39},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":17},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":29},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":36},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":31},"end":{"line":8,"column":null}},"10":{"start":{"line":11,"column":16},"end":{"line":11,"column":null}},"11":{"start":{"line":12,"column":30},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":17},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":21},"end":{"line":14,"column":null}},"14":{"start":{"line":16,"column":2},"end":{"line":28,"column":null}},"15":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"16":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"17":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"18":{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},"19":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"20":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"21":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"22":{"start":{"line":32,"column":4},"end":{"line":32,"column":null}},"23":{"start":{"line":262,"column":30},"end":{"line":274,"column":null}},"24":{"start":{"line":263,"column":19},"end":{"line":263,"column":null}},"25":{"start":{"line":265,"column":2},"end":{"line":273,"column":null}}},"fnMap":{"0":{"name":"error500","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":38},"end":{"line":260,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":null}},"loc":{"start":{"line":16,"column":12},"end":{"line":28,"column":5}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":262,"column":30},"end":{"line":262,"column":37}},"loc":{"start":{"line":262,"column":47},"end":{"line":274,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}]},"2":{"loc":{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":27,"column":null}},{"start":{"line":25,"column":11},"end":{"line":27,"column":null}}]},"3":{"loc":{"start":{"line":31,"column":2},"end":{"line":33,"column":null}},"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":33,"column":null}}]},"4":{"loc":{"start":{"line":66,"column":19},"end":{"line":66,"column":null}},"type":"cond-expr","locations":[{"start":{"line":66,"column":43},"end":{"line":66,"column":51}},{"start":{"line":66,"column":51},"end":{"line":66,"column":null}}]},"5":{"loc":{"start":{"line":147,"column":18},"end":{"line":149,"column":60}},"type":"cond-expr","locations":[{"start":{"line":148,"column":22},"end":{"line":148,"column":60}},{"start":{"line":149,"column":22},"end":{"line":149,"column":60}}]},"6":{"loc":{"start":{"line":152,"column":18},"end":{"line":154,"column":61}},"type":"cond-expr","locations":[{"start":{"line":153,"column":22},"end":{"line":153,"column":61}},{"start":{"line":154,"column":22},"end":{"line":154,"column":61}}]},"7":{"loc":{"start":{"line":191,"column":22},"end":{"line":193,"column":65}},"type":"cond-expr","locations":[{"start":{"line":192,"column":26},"end":{"line":192,"column":65}},{"start":{"line":193,"column":26},"end":{"line":193,"column":65}}]},"8":{"loc":{"start":{"line":243,"column":20},"end":{"line":245,"column":62}},"type":"cond-expr","locations":[{"start":{"line":244,"column":24},"end":{"line":244,"column":62}},{"start":{"line":245,"column":24},"end":{"line":245,"column":62}}]},"9":{"loc":{"start":{"line":248,"column":20},"end":{"line":250,"column":63}},"type":"cond-expr","locations":[{"start":{"line":249,"column":24},"end":{"line":249,"column":63}},{"start":{"line":250,"column":24},"end":{"line":250,"column":63}}]},"10":{"loc":{"start":{"line":268,"column":25},"end":{"line":268,"column":null}},"type":"binary-expr","locations":[{"start":{"line":268,"column":25},"end":{"line":268,"column":56}},{"start":{"line":268,"column":60},"end":{"line":268,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":2,"11":2,"12":2,"13":2,"14":2,"15":1,"16":0,"17":0,"18":1,"19":0,"20":1,"21":2,"22":1,"23":1,"24":0,"25":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,1],"3":[1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/_app.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/_app.js","statementMap":{"0":{"start":{"line":37,"column":0},"end":{"line":37,"column":15}},"1":{"start":{"line":1,"column":35},"end":{"line":1,"column":null}},"2":{"start":{"line":2,"column":7},"end":{"line":2,"column":null}},"3":{"start":{"line":3,"column":7},"end":{"line":3,"column":null}},"4":{"start":{"line":4,"column":7},"end":{"line":4,"column":null}},"5":{"start":{"line":5,"column":17},"end":{"line":5,"column":null}},"6":{"start":{"line":6,"column":23},"end":{"line":6,"column":null}},"7":{"start":{"line":7,"column":7},"end":{"line":7,"column":null}},"8":{"start":{"line":8,"column":32},"end":{"line":8,"column":null}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":null}},"10":{"start":{"line":12,"column":17},"end":{"line":16,"column":null}},"11":{"start":{"line":17,"column":13},"end":{"line":21,"column":null}},"12":{"start":{"line":37,"column":15},"end":{"line":37,"column":null}}},"fnMap":{"0":{"name":"MyApp","decl":{"start":{"line":23,"column":9},"end":{"line":23,"column":15}},"loc":{"start":{"line":23,"column":39},"end":{"line":35,"column":null}}}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/cdcp-apply.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/cdcp-apply.js","statementMap":{"0":{"start":{"line":9,"column":24},"end":{"line":9,"column":36}},"1":{"start":{"line":135,"column":13},"end":{"line":135,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":39},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":23},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":29},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":34},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"9":{"start":{"line":10,"column":16},"end":{"line":10,"column":null}},"10":{"start":{"line":12,"column":22},"end":{"line":34,"column":null}},"11":{"start":{"line":36,"column":2},"end":{"line":41,"column":null}},"12":{"start":{"line":37,"column":4},"end":{"line":40,"column":null}},"13":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"14":{"start":{"line":39,"column":6},"end":{"line":39,"column":null}},"15":{"start":{"line":135,"column":30},"end":{"line":143,"column":null}},"16":{"start":{"line":136,"column":2},"end":{"line":142,"column":null}}},"fnMap":{"0":{"name":"CDCPLanding","decl":{"start":{"line":9,"column":24},"end":{"line":9,"column":36}},"loc":{"start":{"line":9,"column":41},"end":{"line":133,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":36,"column":12},"end":{"line":36,"column":null}},"loc":{"start":{"line":36,"column":12},"end":{"line":41,"column":5}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":135,"column":30},"end":{"line":135,"column":37}},"loc":{"start":{"line":135,"column":47},"end":{"line":143,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":37,"column":4},"end":{"line":40,"column":null}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":40,"column":null}}]},"1":{"loc":{"start":{"line":38,"column":30},"end":{"line":38,"column":57}},"type":"binary-expr","locations":[{"start":{"line":38,"column":30},"end":{"line":38,"column":51}},{"start":{"line":38,"column":55},"end":{"line":38,"column":57}}]},"2":{"loc":{"start":{"line":46,"column":15},"end":{"line":46,"column":null}},"type":"cond-expr","locations":[{"start":{"line":46,"column":39},"end":{"line":46,"column":58}},{"start":{"line":46,"column":58},"end":{"line":46,"column":null}}]},"3":{"loc":{"start":{"line":63,"column":19},"end":{"line":63,"column":null}},"type":"cond-expr","locations":[{"start":{"line":63,"column":43},"end":{"line":63,"column":51}},{"start":{"line":63,"column":51},"end":{"line":63,"column":null}}]},"4":{"loc":{"start":{"line":69,"column":12},"end":{"line":71,"column":null}},"type":"cond-expr","locations":[{"start":{"line":70,"column":16},"end":{"line":70,"column":null}},{"start":{"line":71,"column":16},"end":{"line":71,"column":null}}]},"5":{"loc":{"start":{"line":139,"column":25},"end":{"line":139,"column":null}},"type":"binary-expr","locations":[{"start":{"line":139,"column":25},"end":{"line":139,"column":56}},{"start":{"line":139,"column":60},"end":{"line":139,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/error.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/error.js","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":34}},"1":{"start":{"line":439,"column":13},"end":{"line":439,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":17},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":29},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":39},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":26},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":36},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":31},"end":{"line":8,"column":null}},"10":{"start":{"line":11,"column":16},"end":{"line":11,"column":null}},"11":{"start":{"line":12,"column":20},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":21},"end":{"line":13,"column":null}},"13":{"start":{"line":15,"column":21},"end":{"line":15,"column":null}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":69}},"15":{"start":{"line":19,"column":4},"end":{"line":19,"column":71}},"16":{"start":{"line":21,"column":4},"end":{"line":21,"column":71}},"17":{"start":{"line":23,"column":4},"end":{"line":23,"column":73}},"18":{"start":{"line":25,"column":2},"end":{"line":30,"column":null}},"19":{"start":{"line":26,"column":4},"end":{"line":29,"column":null}},"20":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"21":{"start":{"line":28,"column":6},"end":{"line":28,"column":null}},"22":{"start":{"line":439,"column":30},"end":{"line":451,"column":null}},"23":{"start":{"line":440,"column":19},"end":{"line":440,"column":null}},"24":{"start":{"line":442,"column":2},"end":{"line":450,"column":null}}},"fnMap":{"0":{"name":"ErrorPage","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":34}},"loc":{"start":{"line":10,"column":39},"end":{"line":437,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":25,"column":12},"end":{"line":25,"column":null}},"loc":{"start":{"line":25,"column":12},"end":{"line":30,"column":5}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":439,"column":30},"end":{"line":439,"column":37}},"loc":{"start":{"line":439,"column":47},"end":{"line":451,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":21},"end":{"line":15,"column":null}},"type":"binary-expr","locations":[{"start":{"line":15,"column":21},"end":{"line":15,"column":37}},{"start":{"line":15,"column":41},"end":{"line":15,"column":null}}]},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":17,"column":69}},"type":"binary-expr","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":20}},{"start":{"line":17,"column":24},"end":{"line":17,"column":69}}]},"2":{"loc":{"start":{"line":19,"column":4},"end":{"line":19,"column":71}},"type":"binary-expr","locations":[{"start":{"line":19,"column":4},"end":{"line":19,"column":22}},{"start":{"line":19,"column":26},"end":{"line":19,"column":71}}]},"3":{"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":71}},"type":"binary-expr","locations":[{"start":{"line":21,"column":4},"end":{"line":21,"column":22}},{"start":{"line":21,"column":26},"end":{"line":21,"column":71}}]},"4":{"loc":{"start":{"line":23,"column":4},"end":{"line":23,"column":73}},"type":"binary-expr","locations":[{"start":{"line":23,"column":4},"end":{"line":23,"column":24}},{"start":{"line":23,"column":28},"end":{"line":23,"column":73}}]},"5":{"loc":{"start":{"line":26,"column":4},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":29,"column":null}}]},"6":{"loc":{"start":{"line":27,"column":30},"end":{"line":27,"column":57}},"type":"binary-expr","locations":[{"start":{"line":27,"column":30},"end":{"line":27,"column":51}},{"start":{"line":27,"column":55},"end":{"line":27,"column":57}}]},"7":{"loc":{"start":{"line":45,"column":12},"end":{"line":47,"column":55}},"type":"cond-expr","locations":[{"start":{"line":46,"column":16},"end":{"line":46,"column":51}},{"start":{"line":47,"column":16},"end":{"line":47,"column":55}}]},"8":{"loc":{"start":{"line":67,"column":19},"end":{"line":67,"column":null}},"type":"cond-expr","locations":[{"start":{"line":67,"column":43},"end":{"line":67,"column":51}},{"start":{"line":67,"column":51},"end":{"line":67,"column":null}}]},"9":{"loc":{"start":{"line":98,"column":12},"end":{"line":100,"column":null}},"type":"cond-expr","locations":[{"start":{"line":99,"column":16},"end":{"line":99,"column":null}},{"start":{"line":100,"column":16},"end":{"line":100,"column":null}}]},"10":{"loc":{"start":{"line":132,"column":12},"end":{"line":134,"column":55}},"type":"cond-expr","locations":[{"start":{"line":133,"column":16},"end":{"line":133,"column":51}},{"start":{"line":134,"column":16},"end":{"line":134,"column":55}}]},"11":{"loc":{"start":{"line":156,"column":12},"end":{"line":158,"column":55}},"type":"cond-expr","locations":[{"start":{"line":157,"column":16},"end":{"line":157,"column":51}},{"start":{"line":158,"column":16},"end":{"line":158,"column":55}}]},"12":{"loc":{"start":{"line":170,"column":18},"end":{"line":172,"column":60}},"type":"cond-expr","locations":[{"start":{"line":171,"column":22},"end":{"line":171,"column":60}},{"start":{"line":172,"column":22},"end":{"line":172,"column":60}}]},"13":{"loc":{"start":{"line":175,"column":18},"end":{"line":177,"column":61}},"type":"cond-expr","locations":[{"start":{"line":176,"column":22},"end":{"line":176,"column":61}},{"start":{"line":177,"column":22},"end":{"line":177,"column":61}}]},"14":{"loc":{"start":{"line":193,"column":19},"end":{"line":202,"column":null}},"type":"cond-expr","locations":[{"start":{"line":194,"column":20},"end":{"line":202,"column":null}},{"start":{"line":202,"column":20},"end":{"line":202,"column":null}}]},"15":{"loc":{"start":{"line":211,"column":20},"end":{"line":244,"column":39}},"type":"cond-expr","locations":[{"start":{"line":211,"column":20},"end":{"line":244,"column":39}}]},"16":{"loc":{"start":{"line":245,"column":20},"end":{"line":270,"column":53}},"type":"cond-expr","locations":[{"start":{"line":245,"column":20},"end":{"line":270,"column":53}}]},"17":{"loc":{"start":{"line":291,"column":22},"end":{"line":293,"column":65}},"type":"cond-expr","locations":[{"start":{"line":292,"column":26},"end":{"line":292,"column":65}},{"start":{"line":293,"column":26},"end":{"line":293,"column":65}}]},"18":{"loc":{"start":{"line":311,"column":19},"end":{"line":320,"column":null}},"type":"cond-expr","locations":[{"start":{"line":312,"column":20},"end":{"line":320,"column":null}},{"start":{"line":320,"column":20},"end":{"line":320,"column":null}}]},"19":{"loc":{"start":{"line":329,"column":20},"end":{"line":362,"column":41}},"type":"cond-expr","locations":[{"start":{"line":329,"column":20},"end":{"line":362,"column":41}}]},"20":{"loc":{"start":{"line":363,"column":20},"end":{"line":388,"column":52}},"type":"cond-expr","locations":[{"start":{"line":363,"column":20},"end":{"line":388,"column":52}}]},"21":{"loc":{"start":{"line":421,"column":18},"end":{"line":423,"column":60}},"type":"cond-expr","locations":[{"start":{"line":422,"column":22},"end":{"line":422,"column":60}},{"start":{"line":423,"column":22},"end":{"line":423,"column":60}}]},"22":{"loc":{"start":{"line":426,"column":18},"end":{"line":428,"column":61}},"type":"cond-expr","locations":[{"start":{"line":427,"column":22},"end":{"line":427,"column":61}},{"start":{"line":428,"column":22},"end":{"line":428,"column":61}}]},"23":{"loc":{"start":{"line":445,"column":25},"end":{"line":445,"column":null}},"type":"binary-expr","locations":[{"start":{"line":445,"column":25},"end":{"line":445,"column":56}},{"start":{"line":445,"column":60},"end":{"line":445,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0],"16":[0],"17":[0,0],"18":[0,0],"19":[0],"20":[0],"21":[0,0],"22":[0,0],"23":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/home.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/home.js","statementMap":{"0":{"start":{"line":15,"column":24},"end":{"line":15,"column":29}},"1":{"start":{"line":419,"column":13},"end":{"line":419,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":26},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":17},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":32},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":36},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":17},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":31},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":27},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":34},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":26},"end":{"line":13,"column":null}},"15":{"start":{"line":16,"column":19},"end":{"line":16,"column":null}},"16":{"start":{"line":17,"column":26},"end":{"line":17,"column":47}},"17":{"start":{"line":18,"column":21},"end":{"line":18,"column":37}},"18":{"start":{"line":19,"column":22},"end":{"line":19,"column":39}},"19":{"start":{"line":21,"column":26},"end":{"line":26,"column":null}},"20":{"start":{"line":22,"column":4},"end":{"line":24,"column":null}},"21":{"start":{"line":28,"column":25},"end":{"line":51,"column":null}},"22":{"start":{"line":30,"column":22},"end":{"line":38,"column":null}},"23":{"start":{"line":40,"column":23},"end":{"line":40,"column":null}},"24":{"start":{"line":41,"column":4},"end":{"line":43,"column":null}},"25":{"start":{"line":41,"column":17},"end":{"line":41,"column":20}},"26":{"start":{"line":42,"column":6},"end":{"line":42,"column":null}},"27":{"start":{"line":46,"column":19},"end":{"line":48,"column":null}},"28":{"start":{"line":47,"column":6},"end":{"line":47,"column":null}},"29":{"start":{"line":50,"column":4},"end":{"line":50,"column":null}},"30":{"start":{"line":53,"column":33},"end":{"line":55,"column":29}},"31":{"start":{"line":55,"column":6},"end":{"line":55,"column":29}},"32":{"start":{"line":100,"column":2},"end":{"line":105,"column":null}},"33":{"start":{"line":101,"column":4},"end":{"line":104,"column":null}},"34":{"start":{"line":102,"column":6},"end":{"line":102,"column":null}},"35":{"start":{"line":103,"column":6},"end":{"line":103,"column":null}},"36":{"start":{"line":419,"column":30},"end":{"line":449,"column":null}},"37":{"start":{"line":420,"column":29},"end":{"line":422,"column":null}},"38":{"start":{"line":422,"column":18},"end":{"line":422,"column":null}},"39":{"start":{"line":424,"column":36},"end":{"line":425,"column":null}},"40":{"start":{"line":428,"column":32},"end":{"line":430,"column":null}},"41":{"start":{"line":430,"column":18},"end":{"line":430,"column":null}},"42":{"start":{"line":433,"column":31},"end":{"line":434,"column":null}},"43":{"start":{"line":437,"column":2},"end":{"line":448,"column":null}}},"fnMap":{"0":{"name":"Home","decl":{"start":{"line":15,"column":24},"end":{"line":15,"column":29}},"loc":{"start":{"line":15,"column":34},"end":{"line":417,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":21,"column":49},"end":{"line":21,"column":50}},"loc":{"start":{"line":21,"column":50},"end":{"line":26,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":28,"column":25},"end":{"line":28,"column":26}},"loc":{"start":{"line":28,"column":26},"end":{"line":51,"column":null}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":46,"column":32},"end":{"line":46,"column":33}},"loc":{"start":{"line":46,"column":36},"end":{"line":48,"column":null}}},"4":{"name":"(anonymous_8)","decl":{"start":{"line":54,"column":4},"end":{"line":54,"column":5}},"loc":{"start":{"line":55,"column":6},"end":{"line":55,"column":29}}},"5":{"name":"(anonymous_9)","decl":{"start":{"line":100,"column":12},"end":{"line":100,"column":null}},"loc":{"start":{"line":100,"column":12},"end":{"line":105,"column":5}}},"6":{"name":"(anonymous_10)","decl":{"start":{"line":419,"column":30},"end":{"line":419,"column":37}},"loc":{"start":{"line":419,"column":47},"end":{"line":449,"column":null}}},"7":{"name":"(anonymous_11)","decl":{"start":{"line":422,"column":9},"end":{"line":422,"column":10}},"loc":{"start":{"line":422,"column":18},"end":{"line":422,"column":null}}},"8":{"name":"(anonymous_12)","decl":{"start":{"line":430,"column":9},"end":{"line":430,"column":10}},"loc":{"start":{"line":430,"column":18},"end":{"line":430,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":59,"column":12},"end":{"line":60,"column":null}},"type":"binary-expr","locations":[{"start":{"line":59,"column":12},"end":{"line":59,"column":39}},{"start":{"line":60,"column":12},"end":{"line":60,"column":null}}]},"1":{"loc":{"start":{"line":63,"column":12},"end":{"line":63,"column":null}},"type":"cond-expr","locations":[{"start":{"line":63,"column":36},"end":{"line":63,"column":51}},{"start":{"line":63,"column":51},"end":{"line":63,"column":null}}]},"2":{"loc":{"start":{"line":67,"column":12},"end":{"line":69,"column":56}},"type":"cond-expr","locations":[{"start":{"line":68,"column":16},"end":{"line":68,"column":56}},{"start":{"line":69,"column":16},"end":{"line":69,"column":56}}]},"3":{"loc":{"start":{"line":72,"column":12},"end":{"line":74,"column":51}},"type":"cond-expr","locations":[{"start":{"line":73,"column":16},"end":{"line":73,"column":51}},{"start":{"line":74,"column":16},"end":{"line":74,"column":51}}]},"4":{"loc":{"start":{"line":77,"column":12},"end":{"line":79,"column":null}},"type":"cond-expr","locations":[{"start":{"line":78,"column":16},"end":{"line":78,"column":51}},{"start":{"line":79,"column":16},"end":{"line":79,"column":null}}]},"5":{"loc":{"start":{"line":82,"column":12},"end":{"line":84,"column":null}},"type":"cond-expr","locations":[{"start":{"line":83,"column":16},"end":{"line":83,"column":50}},{"start":{"line":84,"column":16},"end":{"line":84,"column":null}}]},"6":{"loc":{"start":{"line":86,"column":17},"end":{"line":86,"column":78}},"type":"cond-expr","locations":[{"start":{"line":86,"column":41},"end":{"line":86,"column":58}},{"start":{"line":86,"column":61},"end":{"line":86,"column":78}}]},"7":{"loc":{"start":{"line":88,"column":12},"end":{"line":88,"column":79}},"type":"cond-expr","locations":[{"start":{"line":88,"column":36},"end":{"line":88,"column":56}},{"start":{"line":88,"column":59},"end":{"line":88,"column":79}}]},"8":{"loc":{"start":{"line":91,"column":12},"end":{"line":93,"column":64}},"type":"cond-expr","locations":[{"start":{"line":92,"column":16},"end":{"line":92,"column":64}},{"start":{"line":93,"column":16},"end":{"line":93,"column":64}}]},"9":{"loc":{"start":{"line":101,"column":4},"end":{"line":104,"column":null}},"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":104,"column":null}}]},"10":{"loc":{"start":{"line":102,"column":30},"end":{"line":102,"column":57}},"type":"binary-expr","locations":[{"start":{"line":102,"column":30},"end":{"line":102,"column":51}},{"start":{"line":102,"column":55},"end":{"line":102,"column":57}}]},"11":{"loc":{"start":{"line":112,"column":10},"end":{"line":112,"column":79}},"type":"cond-expr","locations":[{"start":{"line":112,"column":34},"end":{"line":112,"column":55}},{"start":{"line":112,"column":58},"end":{"line":112,"column":79}}]},"12":{"loc":{"start":{"line":119,"column":13},"end":{"line":119,"column":76}},"type":"cond-expr","locations":[{"start":{"line":119,"column":37},"end":{"line":119,"column":55}},{"start":{"line":119,"column":58},"end":{"line":119,"column":76}}]},"13":{"loc":{"start":{"line":124,"column":14},"end":{"line":126,"column":67}},"type":"cond-expr","locations":[{"start":{"line":125,"column":18},"end":{"line":125,"column":67}},{"start":{"line":126,"column":18},"end":{"line":126,"column":67}}]},"14":{"loc":{"start":{"line":135,"column":14},"end":{"line":137,"column":39}},"type":"cond-expr","locations":[{"start":{"line":136,"column":18},"end":{"line":136,"column":39}},{"start":{"line":137,"column":18},"end":{"line":137,"column":39}}]},"15":{"loc":{"start":{"line":145,"column":14},"end":{"line":145,"column":77}},"type":"cond-expr","locations":[{"start":{"line":145,"column":38},"end":{"line":145,"column":56}},{"start":{"line":145,"column":59},"end":{"line":145,"column":77}}]},"16":{"loc":{"start":{"line":150,"column":21},"end":{"line":150,"column":null}},"type":"cond-expr","locations":[{"start":{"line":150,"column":45},"end":{"line":150,"column":53}},{"start":{"line":150,"column":53},"end":{"line":150,"column":null}}]},"17":{"loc":{"start":{"line":156,"column":14},"end":{"line":158,"column":67}},"type":"cond-expr","locations":[{"start":{"line":157,"column":18},"end":{"line":157,"column":67}},{"start":{"line":158,"column":18},"end":{"line":158,"column":67}}]},"18":{"loc":{"start":{"line":169,"column":14},"end":{"line":171,"column":null}},"type":"cond-expr","locations":[{"start":{"line":170,"column":18},"end":{"line":170,"column":null}},{"start":{"line":171,"column":18},"end":{"line":171,"column":null}}]},"19":{"loc":{"start":{"line":191,"column":16},"end":{"line":193,"column":41}},"type":"cond-expr","locations":[{"start":{"line":192,"column":20},"end":{"line":192,"column":41}},{"start":{"line":193,"column":20},"end":{"line":193,"column":41}}]},"20":{"loc":{"start":{"line":200,"column":14},"end":{"line":200,"column":77}},"type":"cond-expr","locations":[{"start":{"line":200,"column":38},"end":{"line":200,"column":56}},{"start":{"line":200,"column":59},"end":{"line":200,"column":77}}]},"21":{"loc":{"start":{"line":206,"column":14},"end":{"line":208,"column":67}},"type":"cond-expr","locations":[{"start":{"line":207,"column":18},"end":{"line":207,"column":67}},{"start":{"line":208,"column":18},"end":{"line":208,"column":67}}]},"22":{"loc":{"start":{"line":218,"column":14},"end":{"line":218,"column":77}},"type":"cond-expr","locations":[{"start":{"line":218,"column":38},"end":{"line":218,"column":56}},{"start":{"line":218,"column":59},"end":{"line":218,"column":77}}]},"23":{"loc":{"start":{"line":229,"column":16},"end":{"line":231,"column":41}},"type":"cond-expr","locations":[{"start":{"line":230,"column":20},"end":{"line":230,"column":41}},{"start":{"line":231,"column":20},"end":{"line":231,"column":41}}]},"24":{"loc":{"start":{"line":238,"column":14},"end":{"line":238,"column":77}},"type":"cond-expr","locations":[{"start":{"line":238,"column":38},"end":{"line":238,"column":56}},{"start":{"line":238,"column":59},"end":{"line":238,"column":77}}]},"25":{"loc":{"start":{"line":245,"column":14},"end":{"line":247,"column":67}},"type":"cond-expr","locations":[{"start":{"line":246,"column":18},"end":{"line":246,"column":67}},{"start":{"line":247,"column":18},"end":{"line":247,"column":67}}]},"26":{"loc":{"start":{"line":257,"column":14},"end":{"line":257,"column":77}},"type":"cond-expr","locations":[{"start":{"line":257,"column":38},"end":{"line":257,"column":56}},{"start":{"line":257,"column":59},"end":{"line":257,"column":77}}]},"27":{"loc":{"start":{"line":270,"column":14},"end":{"line":272,"column":51}},"type":"cond-expr","locations":[{"start":{"line":271,"column":18},"end":{"line":271,"column":51}},{"start":{"line":272,"column":18},"end":{"line":272,"column":51}}]},"28":{"loc":{"start":{"line":275,"column":14},"end":{"line":277,"column":78}},"type":"cond-expr","locations":[{"start":{"line":276,"column":18},"end":{"line":276,"column":78}},{"start":{"line":277,"column":18},"end":{"line":277,"column":78}}]},"29":{"loc":{"start":{"line":280,"column":14},"end":{"line":282,"column":64}},"type":"cond-expr","locations":[{"start":{"line":281,"column":18},"end":{"line":281,"column":62}},{"start":{"line":282,"column":18},"end":{"line":282,"column":64}}]},"30":{"loc":{"start":{"line":285,"column":14},"end":{"line":287,"column":67}},"type":"cond-expr","locations":[{"start":{"line":286,"column":18},"end":{"line":286,"column":67}},{"start":{"line":287,"column":18},"end":{"line":287,"column":67}}]},"31":{"loc":{"start":{"line":290,"column":14},"end":{"line":292,"column":76}},"type":"cond-expr","locations":[{"start":{"line":291,"column":18},"end":{"line":291,"column":76}},{"start":{"line":292,"column":18},"end":{"line":292,"column":76}}]},"32":{"loc":{"start":{"line":296,"column":13},"end":{"line":299,"column":24}},"type":"cond-expr","locations":[{"start":{"line":297,"column":16},"end":{"line":297,"column":76}},{"start":{"line":298,"column":16},"end":{"line":299,"column":24}}]},"33":{"loc":{"start":{"line":308,"column":16},"end":{"line":310,"column":53}},"type":"cond-expr","locations":[{"start":{"line":309,"column":20},"end":{"line":309,"column":53}},{"start":{"line":310,"column":20},"end":{"line":310,"column":53}}]},"34":{"loc":{"start":{"line":314,"column":18},"end":{"line":337,"column":null}},"type":"cond-expr","locations":[{"start":{"line":314,"column":18},"end":{"line":337,"column":null}}]},"35":{"loc":{"start":{"line":372,"column":18},"end":{"line":376,"column":34}},"type":"cond-expr","locations":[{"start":{"line":373,"column":22},"end":{"line":374,"column":34}},{"start":{"line":375,"column":22},"end":{"line":376,"column":34}}]},"36":{"loc":{"start":{"line":380,"column":18},"end":{"line":384,"column":30}},"type":"cond-expr","locations":[{"start":{"line":381,"column":22},"end":{"line":382,"column":30}},{"start":{"line":383,"column":22},"end":{"line":384,"column":30}}]},"37":{"loc":{"start":{"line":396,"column":14},"end":{"line":398,"column":78}},"type":"cond-expr","locations":[{"start":{"line":397,"column":18},"end":{"line":397,"column":78}},{"start":{"line":398,"column":18},"end":{"line":398,"column":78}}]},"38":{"loc":{"start":{"line":401,"column":14},"end":{"line":403,"column":78}},"type":"cond-expr","locations":[{"start":{"line":402,"column":18},"end":{"line":402,"column":78}},{"start":{"line":403,"column":18},"end":{"line":403,"column":78}}]},"39":{"loc":{"start":{"line":406,"column":14},"end":{"line":410,"column":25}},"type":"cond-expr","locations":[{"start":{"line":407,"column":18},"end":{"line":408,"column":25}},{"start":{"line":409,"column":18},"end":{"line":410,"column":25}}]},"40":{"loc":{"start":{"line":440,"column":25},"end":{"line":440,"column":null}},"type":"binary-expr","locations":[{"start":{"line":440,"column":25},"end":{"line":440,"column":56}},{"start":{"line":440,"column":60},"end":{"line":440,"column":null}}]},"41":{"loc":{"start":{"line":447,"column":16},"end":{"line":447,"column":null}},"type":"cond-expr","locations":[{"start":{"line":447,"column":53},"end":{"line":447,"column":58}},{"start":{"line":447,"column":58},"end":{"line":447,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":2,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":7,"27":1,"28":0,"29":1,"30":1,"31":1,"32":1,"33":1,"34":0,"35":0,"36":1,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0},"f":{"0":2,"1":1,"2":1,"3":0,"4":1,"5":1,"6":0,"7":0,"8":0},"b":{"0":[1,0],"1":[0,1],"2":[0,1],"3":[0,1],"4":[1,0],"5":[1,0],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0],"10":[0,0],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1],"40":[0,0],"41":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/index.js","statementMap":{"0":{"start":{"line":8,"column":24},"end":{"line":8,"column":30}},"1":{"start":{"line":190,"column":13},"end":{"line":190,"column":31}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":31},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":17},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":26},"end":{"line":6,"column":null}},"8":{"start":{"line":9,"column":16},"end":{"line":9,"column":null}},"9":{"start":{"line":11,"column":2},"end":{"line":17,"column":null}},"10":{"start":{"line":12,"column":4},"end":{"line":15,"column":null}},"11":{"start":{"line":13,"column":6},"end":{"line":13,"column":null}},"12":{"start":{"line":14,"column":6},"end":{"line":14,"column":null}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":null}},"14":{"start":{"line":190,"column":34},"end":{"line":196,"column":null}},"15":{"start":{"line":190,"column":57},"end":{"line":196,"column":null}}},"fnMap":{"0":{"name":"Index","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":30}},"loc":{"start":{"line":8,"column":35},"end":{"line":188,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":null}},"loc":{"start":{"line":11,"column":12},"end":{"line":17,"column":5}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":190,"column":34},"end":{"line":190,"column":41}},"loc":{"start":{"line":190,"column":57},"end":{"line":196,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":15,"column":null}}]},"1":{"loc":{"start":{"line":13,"column":30},"end":{"line":13,"column":57}},"type":"binary-expr","locations":[{"start":{"line":13,"column":30},"end":{"line":13,"column":51}},{"start":{"line":13,"column":55},"end":{"line":13,"column":57}}]},"2":{"loc":{"start":{"line":47,"column":19},"end":{"line":47,"column":null}},"type":"cond-expr","locations":[{"start":{"line":47,"column":43},"end":{"line":47,"column":51}},{"start":{"line":47,"column":51},"end":{"line":47,"column":null}}]},"3":{"loc":{"start":{"line":192,"column":12},"end":{"line":192,"column":null}},"type":"binary-expr","locations":[{"start":{"line":192,"column":12},"end":{"line":192,"column":22}},{"start":{"line":192,"column":22},"end":{"line":192,"column":null}}]},"4":{"loc":{"start":{"line":193,"column":23},"end":{"line":193,"column":null}},"type":"binary-expr","locations":[{"start":{"line":193,"column":23},"end":{"line":193,"column":54}},{"start":{"line":193,"column":58},"end":{"line":193,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":0,"13":1,"14":1,"15":0},"f":{"0":1,"1":1,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,1],"3":[0,0],"4":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/notsupported.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/notsupported.js","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":37}},"1":{"start":{"line":472,"column":13},"end":{"line":472,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":39},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":26},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"8":{"start":{"line":8,"column":31},"end":{"line":8,"column":null}},"9":{"start":{"line":11,"column":16},"end":{"line":11,"column":null}},"10":{"start":{"line":12,"column":34},"end":{"line":12,"column":null}},"11":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"12":{"start":{"line":14,"column":21},"end":{"line":14,"column":null}},"13":{"start":{"line":16,"column":2},"end":{"line":21,"column":null}},"14":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"15":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"16":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"17":{"start":{"line":24,"column":4},"end":{"line":24,"column":null}},"18":{"start":{"line":25,"column":4},"end":{"line":25,"column":null}},"19":{"start":{"line":29,"column":4},"end":{"line":29,"column":null}},"20":{"start":{"line":30,"column":4},"end":{"line":30,"column":null}},"21":{"start":{"line":472,"column":30},"end":{"line":484,"column":null}},"22":{"start":{"line":473,"column":19},"end":{"line":473,"column":null}},"23":{"start":{"line":475,"column":2},"end":{"line":483,"column":null}}},"fnMap":{"0":{"name":"notSupported","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":37}},"loc":{"start":{"line":10,"column":42},"end":{"line":470,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":null}},"loc":{"start":{"line":16,"column":12},"end":{"line":21,"column":5}}},"2":{"name":"onClickEn","decl":{"start":{"line":23,"column":11},"end":{"line":23,"column":null}},"loc":{"start":{"line":23,"column":11},"end":{"line":26,"column":null}}},"3":{"name":"onClickFr","decl":{"start":{"line":28,"column":11},"end":{"line":28,"column":null}},"loc":{"start":{"line":28,"column":11},"end":{"line":31,"column":null}}},"4":{"name":"(anonymous_8)","decl":{"start":{"line":472,"column":30},"end":{"line":472,"column":37}},"loc":{"start":{"line":472,"column":47},"end":{"line":484,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}]},"2":{"loc":{"start":{"line":72,"column":19},"end":{"line":72,"column":null}},"type":"cond-expr","locations":[{"start":{"line":72,"column":43},"end":{"line":72,"column":51}},{"start":{"line":72,"column":51},"end":{"line":72,"column":null}}]},"3":{"loc":{"start":{"line":78,"column":12},"end":{"line":80,"column":null}},"type":"cond-expr","locations":[{"start":{"line":79,"column":16},"end":{"line":79,"column":null}},{"start":{"line":80,"column":16},"end":{"line":80,"column":null}}]},"4":{"loc":{"start":{"line":154,"column":18},"end":{"line":156,"column":60}},"type":"cond-expr","locations":[{"start":{"line":155,"column":22},"end":{"line":155,"column":60}},{"start":{"line":156,"column":22},"end":{"line":156,"column":60}}]},"5":{"loc":{"start":{"line":159,"column":18},"end":{"line":161,"column":61}},"type":"cond-expr","locations":[{"start":{"line":160,"column":22},"end":{"line":160,"column":61}},{"start":{"line":161,"column":22},"end":{"line":161,"column":61}}]},"6":{"loc":{"start":{"line":182,"column":22},"end":{"line":184,"column":65}},"type":"cond-expr","locations":[{"start":{"line":183,"column":26},"end":{"line":183,"column":65}},{"start":{"line":184,"column":26},"end":{"line":184,"column":65}}]},"7":{"loc":{"start":{"line":210,"column":20},"end":{"line":212,"column":63}},"type":"cond-expr","locations":[{"start":{"line":211,"column":24},"end":{"line":211,"column":63}},{"start":{"line":212,"column":24},"end":{"line":212,"column":63}}]},"8":{"loc":{"start":{"line":215,"column":20},"end":{"line":217,"column":64}},"type":"cond-expr","locations":[{"start":{"line":216,"column":24},"end":{"line":216,"column":64}},{"start":{"line":217,"column":24},"end":{"line":217,"column":64}}]},"9":{"loc":{"start":{"line":229,"column":20},"end":{"line":231,"column":63}},"type":"cond-expr","locations":[{"start":{"line":230,"column":24},"end":{"line":230,"column":63}},{"start":{"line":231,"column":24},"end":{"line":231,"column":63}}]},"10":{"loc":{"start":{"line":234,"column":20},"end":{"line":236,"column":64}},"type":"cond-expr","locations":[{"start":{"line":235,"column":24},"end":{"line":235,"column":64}},{"start":{"line":236,"column":24},"end":{"line":236,"column":64}}]},"11":{"loc":{"start":{"line":248,"column":20},"end":{"line":250,"column":63}},"type":"cond-expr","locations":[{"start":{"line":249,"column":24},"end":{"line":249,"column":63}},{"start":{"line":250,"column":24},"end":{"line":250,"column":63}}]},"12":{"loc":{"start":{"line":253,"column":20},"end":{"line":255,"column":64}},"type":"cond-expr","locations":[{"start":{"line":254,"column":24},"end":{"line":254,"column":64}},{"start":{"line":255,"column":24},"end":{"line":255,"column":64}}]},"13":{"loc":{"start":{"line":267,"column":20},"end":{"line":269,"column":63}},"type":"cond-expr","locations":[{"start":{"line":268,"column":24},"end":{"line":268,"column":63}},{"start":{"line":269,"column":24},"end":{"line":269,"column":63}}]},"14":{"loc":{"start":{"line":272,"column":20},"end":{"line":274,"column":64}},"type":"cond-expr","locations":[{"start":{"line":273,"column":24},"end":{"line":273,"column":64}},{"start":{"line":274,"column":24},"end":{"line":274,"column":64}}]},"15":{"loc":{"start":{"line":293,"column":30},"end":{"line":293,"column":null}},"type":"cond-expr","locations":[{"start":{"line":293,"column":41},"end":{"line":293,"column":53}},{"start":{"line":293,"column":53},"end":{"line":293,"column":null}}]},"16":{"loc":{"start":{"line":294,"column":31},"end":{"line":294,"column":null}},"type":"cond-expr","locations":[{"start":{"line":294,"column":42},"end":{"line":294,"column":61}},{"start":{"line":294,"column":61},"end":{"line":294,"column":null}}]},"17":{"loc":{"start":{"line":369,"column":32},"end":{"line":369,"column":null}},"type":"cond-expr","locations":[{"start":{"line":369,"column":43},"end":{"line":369,"column":54}},{"start":{"line":369,"column":54},"end":{"line":369,"column":null}}]},"18":{"loc":{"start":{"line":371,"column":33},"end":{"line":371,"column":null}},"type":"cond-expr","locations":[{"start":{"line":371,"column":44},"end":{"line":371,"column":63}},{"start":{"line":371,"column":63},"end":{"line":371,"column":null}}]},"19":{"loc":{"start":{"line":453,"column":20},"end":{"line":455,"column":62}},"type":"cond-expr","locations":[{"start":{"line":454,"column":24},"end":{"line":454,"column":62}},{"start":{"line":455,"column":24},"end":{"line":455,"column":62}}]},"20":{"loc":{"start":{"line":458,"column":20},"end":{"line":460,"column":63}},"type":"cond-expr","locations":[{"start":{"line":459,"column":24},"end":{"line":459,"column":63}},{"start":{"line":460,"column":24},"end":{"line":460,"column":63}}]},"21":{"loc":{"start":{"line":478,"column":25},"end":{"line":478,"column":null}},"type":"binary-expr","locations":[{"start":{"line":478,"column":25},"end":{"line":478,"column":56}},{"start":{"line":478,"column":60},"end":{"line":478,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":1,"22":0,"23":0},"f":{"0":1,"1":1,"2":0,"3":0,"4":0},"b":{"0":[0],"1":[0,0],"2":[0,1],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects.js","statementMap":{"0":{"start":{"line":11,"column":24},"end":{"line":11,"column":37}},"1":{"start":{"line":158,"column":13},"end":{"line":158,"column":27}},"2":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":36},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":17},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":21},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":33},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":31},"end":{"line":9,"column":null}},"11":{"start":{"line":12,"column":19},"end":{"line":12,"column":null}},"12":{"start":{"line":13,"column":23},"end":{"line":13,"column":41}},"13":{"start":{"line":14,"column":21},"end":{"line":14,"column":37}},"14":{"start":{"line":15,"column":48},"end":{"line":15,"column":null}},"15":{"start":{"line":16,"column":16},"end":{"line":16,"column":null}},"16":{"start":{"line":18,"column":43},"end":{"line":35,"column":null}},"17":{"start":{"line":19,"column":17},"end":{"line":19,"column":null}},"18":{"start":{"line":20,"column":23},"end":{"line":26,"column":null}},"19":{"start":{"line":21,"column":6},"end":{"line":24,"column":null}},"20":{"start":{"line":22,"column":8},"end":{"line":22,"column":null}},"21":{"start":{"line":23,"column":8},"end":{"line":23,"column":null}},"22":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"23":{"start":{"line":27,"column":23},"end":{"line":33,"column":null}},"24":{"start":{"line":28,"column":6},"end":{"line":32,"column":null}},"25":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"26":{"start":{"line":37,"column":25},"end":{"line":43,"column":null}},"27":{"start":{"line":38,"column":4},"end":{"line":38,"column":null}},"28":{"start":{"line":38,"column":38},"end":{"line":38,"column":null}},"29":{"start":{"line":39,"column":24},"end":{"line":39,"column":null}},"30":{"start":{"line":39,"column":64},"end":{"line":39,"column":73}},"31":{"start":{"line":40,"column":4},"end":{"line":41,"column":null}},"32":{"start":{"line":41,"column":6},"end":{"line":41,"column":null}},"33":{"start":{"line":45,"column":24},"end":{"line":90,"column":null}},"34":{"start":{"line":47,"column":6},"end":{"line":49,"column":null}},"35":{"start":{"line":93,"column":2},"end":{"line":98,"column":null}},"36":{"start":{"line":94,"column":4},"end":{"line":97,"column":null}},"37":{"start":{"line":95,"column":6},"end":{"line":95,"column":null}},"38":{"start":{"line":96,"column":6},"end":{"line":96,"column":null}},"39":{"start":{"line":158,"column":30},"end":{"line":183,"column":null}},"40":{"start":{"line":160,"column":29},"end":{"line":162,"column":null}},"41":{"start":{"line":162,"column":18},"end":{"line":162,"column":null}},"42":{"start":{"line":164,"column":33},"end":{"line":166,"column":null}},"43":{"start":{"line":166,"column":18},"end":{"line":166,"column":null}},"44":{"start":{"line":168,"column":31},"end":{"line":170,"column":null}},"45":{"start":{"line":170,"column":18},"end":{"line":170,"column":null}},"46":{"start":{"line":172,"column":2},"end":{"line":182,"column":null}}},"fnMap":{"0":{"name":"ProjectsPage","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":37}},"loc":{"start":{"line":11,"column":42},"end":{"line":156,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":18,"column":43},"end":{"line":18,"column":44}},"loc":{"start":{"line":18,"column":44},"end":{"line":35,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":20,"column":34},"end":{"line":20,"column":35}},"loc":{"start":{"line":20,"column":40},"end":{"line":26,"column":7}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":27,"column":40},"end":{"line":27,"column":41}},"loc":{"start":{"line":27,"column":41},"end":{"line":33,"column":null}}},"4":{"name":"(anonymous_8)","decl":{"start":{"line":37,"column":25},"end":{"line":37,"column":26}},"loc":{"start":{"line":37,"column":36},"end":{"line":43,"column":null}}},"5":{"name":"(anonymous_9)","decl":{"start":{"line":39,"column":52},"end":{"line":39,"column":53}},"loc":{"start":{"line":39,"column":64},"end":{"line":39,"column":73}}},"6":{"name":"(anonymous_10)","decl":{"start":{"line":40,"column":27},"end":{"line":40,"column":28}},"loc":{"start":{"line":41,"column":6},"end":{"line":41,"column":null}}},"7":{"name":"(anonymous_11)","decl":{"start":{"line":46,"column":4},"end":{"line":46,"column":5}},"loc":{"start":{"line":46,"column":5},"end":{"line":90,"column":null}}},"8":{"name":"(anonymous_12)","decl":{"start":{"line":93,"column":12},"end":{"line":93,"column":null}},"loc":{"start":{"line":93,"column":12},"end":{"line":98,"column":5}}},"9":{"name":"(anonymous_13)","decl":{"start":{"line":158,"column":30},"end":{"line":158,"column":37}},"loc":{"start":{"line":158,"column":47},"end":{"line":183,"column":null}}},"10":{"name":"(anonymous_14)","decl":{"start":{"line":162,"column":9},"end":{"line":162,"column":10}},"loc":{"start":{"line":162,"column":18},"end":{"line":162,"column":null}}},"11":{"name":"(anonymous_15)","decl":{"start":{"line":166,"column":9},"end":{"line":166,"column":10}},"loc":{"start":{"line":166,"column":18},"end":{"line":166,"column":null}}},"12":{"name":"(anonymous_16)","decl":{"start":{"line":170,"column":9},"end":{"line":170,"column":10}},"loc":{"start":{"line":170,"column":18},"end":{"line":170,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":6},"end":{"line":24,"column":null}},"type":"if","locations":[{"start":{"line":21,"column":6},"end":{"line":24,"column":null}}]},"1":{"loc":{"start":{"line":38,"column":4},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":38,"column":4},"end":{"line":38,"column":null}}]},"2":{"loc":{"start":{"line":54,"column":14},"end":{"line":54,"column":75}},"type":"cond-expr","locations":[{"start":{"line":54,"column":38},"end":{"line":54,"column":55}},{"start":{"line":54,"column":58},"end":{"line":54,"column":75}}]},"3":{"loc":{"start":{"line":57,"column":14},"end":{"line":59,"column":38}},"type":"cond-expr","locations":[{"start":{"line":58,"column":18},"end":{"line":58,"column":38}},{"start":{"line":59,"column":18},"end":{"line":59,"column":38}}]},"4":{"loc":{"start":{"line":63,"column":14},"end":{"line":65,"column":58}},"type":"cond-expr","locations":[{"start":{"line":64,"column":18},"end":{"line":64,"column":58}},{"start":{"line":65,"column":18},"end":{"line":65,"column":58}}]},"5":{"loc":{"start":{"line":68,"column":14},"end":{"line":70,"column":53}},"type":"cond-expr","locations":[{"start":{"line":69,"column":18},"end":{"line":69,"column":53}},{"start":{"line":70,"column":18},"end":{"line":70,"column":53}}]},"6":{"loc":{"start":{"line":73,"column":14},"end":{"line":75,"column":null}},"type":"cond-expr","locations":[{"start":{"line":74,"column":18},"end":{"line":74,"column":53}},{"start":{"line":75,"column":18},"end":{"line":75,"column":null}}]},"7":{"loc":{"start":{"line":78,"column":14},"end":{"line":80,"column":null}},"type":"cond-expr","locations":[{"start":{"line":79,"column":18},"end":{"line":79,"column":52}},{"start":{"line":80,"column":18},"end":{"line":80,"column":null}}]},"8":{"loc":{"start":{"line":83,"column":14},"end":{"line":85,"column":66}},"type":"cond-expr","locations":[{"start":{"line":84,"column":18},"end":{"line":84,"column":66}},{"start":{"line":85,"column":18},"end":{"line":85,"column":66}}]},"9":{"loc":{"start":{"line":94,"column":4},"end":{"line":97,"column":null}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":97,"column":null}}]},"10":{"loc":{"start":{"line":95,"column":30},"end":{"line":95,"column":57}},"type":"binary-expr","locations":[{"start":{"line":95,"column":30},"end":{"line":95,"column":51}},{"start":{"line":95,"column":55},"end":{"line":95,"column":57}}]},"11":{"loc":{"start":{"line":105,"column":10},"end":{"line":105,"column":79}},"type":"cond-expr","locations":[{"start":{"line":105,"column":34},"end":{"line":105,"column":55}},{"start":{"line":105,"column":58},"end":{"line":105,"column":79}}]},"12":{"loc":{"start":{"line":124,"column":15},"end":{"line":126,"column":78}},"type":"cond-expr","locations":[{"start":{"line":125,"column":18},"end":{"line":125,"column":78}},{"start":{"line":126,"column":18},"end":{"line":126,"column":78}}]},"13":{"loc":{"start":{"line":130,"column":15},"end":{"line":132,"column":78}},"type":"cond-expr","locations":[{"start":{"line":131,"column":18},"end":{"line":131,"column":78}},{"start":{"line":132,"column":18},"end":{"line":132,"column":78}}]},"14":{"loc":{"start":{"line":175,"column":25},"end":{"line":175,"column":null}},"type":"binary-expr","locations":[{"start":{"line":175,"column":25},"end":{"line":175,"column":56}},{"start":{"line":175,"column":60},"end":{"line":175,"column":null}}]},"15":{"loc":{"start":{"line":181,"column":16},"end":{"line":181,"column":null}},"type":"cond-expr","locations":[{"start":{"line":181,"column":53},"end":{"line":181,"column":58}},{"start":{"line":181,"column":58},"end":{"line":181,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"b":{"0":[0],"1":[0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/updates.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/updates.js","statementMap":{"0":{"start":{"line":12,"column":24},"end":{"line":12,"column":36}},"1":{"start":{"line":164,"column":13},"end":{"line":164,"column":27}},"2":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":23},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":36},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":17},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":34},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":21},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":33},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":34},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":26},"end":{"line":10,"column":null}},"12":{"start":{"line":13,"column":17},"end":{"line":13,"column":null}},"13":{"start":{"line":14,"column":19},"end":{"line":14,"column":null}},"14":{"start":{"line":15,"column":22},"end":{"line":15,"column":39}},"15":{"start":{"line":16,"column":21},"end":{"line":16,"column":37}},"16":{"start":{"line":17,"column":48},"end":{"line":17,"column":null}},"17":{"start":{"line":19,"column":41},"end":{"line":39,"column":null}},"18":{"start":{"line":20,"column":17},"end":{"line":20,"column":null}},"19":{"start":{"line":21,"column":23},"end":{"line":27,"column":null}},"20":{"start":{"line":22,"column":6},"end":{"line":25,"column":null}},"21":{"start":{"line":23,"column":8},"end":{"line":23,"column":null}},"22":{"start":{"line":24,"column":8},"end":{"line":24,"column":null}},"23":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"24":{"start":{"line":28,"column":23},"end":{"line":37,"column":null}},"25":{"start":{"line":29,"column":6},"end":{"line":36,"column":null}},"26":{"start":{"line":38,"column":4},"end":{"line":38,"column":null}},"27":{"start":{"line":41,"column":24},"end":{"line":47,"column":null}},"28":{"start":{"line":42,"column":4},"end":{"line":42,"column":null}},"29":{"start":{"line":42,"column":38},"end":{"line":42,"column":null}},"30":{"start":{"line":43,"column":24},"end":{"line":43,"column":null}},"31":{"start":{"line":43,"column":64},"end":{"line":43,"column":73}},"32":{"start":{"line":44,"column":4},"end":{"line":45,"column":null}},"33":{"start":{"line":45,"column":6},"end":{"line":45,"column":null}},"34":{"start":{"line":49,"column":23},"end":{"line":85,"column":null}},"35":{"start":{"line":53,"column":4},"end":{"line":54,"column":28}},"36":{"start":{"line":87,"column":2},"end":{"line":106,"column":null}},"37":{"start":{"line":88,"column":4},"end":{"line":91,"column":null}},"38":{"start":{"line":89,"column":6},"end":{"line":89,"column":null}},"39":{"start":{"line":90,"column":6},"end":{"line":90,"column":null}},"40":{"start":{"line":92,"column":20},"end":{"line":92,"column":null}},"41":{"start":{"line":93,"column":4},"end":{"line":105,"column":null}},"42":{"start":{"line":95,"column":8},"end":{"line":95,"column":74}},"43":{"start":{"line":96,"column":45},"end":{"line":97,"column":null}},"44":{"start":{"line":97,"column":20},"end":{"line":97,"column":null}},"45":{"start":{"line":99,"column":6},"end":{"line":101,"column":null}},"46":{"start":{"line":103,"column":6},"end":{"line":103,"column":null}},"47":{"start":{"line":104,"column":6},"end":{"line":104,"column":null}},"48":{"start":{"line":164,"column":30},"end":{"line":189,"column":null}},"49":{"start":{"line":166,"column":29},"end":{"line":168,"column":null}},"50":{"start":{"line":168,"column":18},"end":{"line":168,"column":null}},"51":{"start":{"line":170,"column":32},"end":{"line":172,"column":null}},"52":{"start":{"line":172,"column":18},"end":{"line":172,"column":null}},"53":{"start":{"line":174,"column":31},"end":{"line":176,"column":null}},"54":{"start":{"line":176,"column":18},"end":{"line":176,"column":null}},"55":{"start":{"line":178,"column":2},"end":{"line":188,"column":null}}},"fnMap":{"0":{"name":"UpdatesPage","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":36}},"loc":{"start":{"line":12,"column":41},"end":{"line":162,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":19,"column":41},"end":{"line":19,"column":42}},"loc":{"start":{"line":19,"column":42},"end":{"line":39,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":21,"column":34},"end":{"line":21,"column":35}},"loc":{"start":{"line":21,"column":40},"end":{"line":27,"column":7}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":28,"column":40},"end":{"line":28,"column":41}},"loc":{"start":{"line":28,"column":41},"end":{"line":37,"column":null}}},"4":{"name":"(anonymous_8)","decl":{"start":{"line":41,"column":24},"end":{"line":41,"column":25}},"loc":{"start":{"line":41,"column":34},"end":{"line":47,"column":null}}},"5":{"name":"(anonymous_9)","decl":{"start":{"line":43,"column":52},"end":{"line":43,"column":53}},"loc":{"start":{"line":43,"column":64},"end":{"line":43,"column":73}}},"6":{"name":"(anonymous_10)","decl":{"start":{"line":44,"column":26},"end":{"line":44,"column":27}},"loc":{"start":{"line":45,"column":6},"end":{"line":45,"column":null}}},"7":{"name":"(anonymous_11)","decl":{"start":{"line":52,"column":8},"end":{"line":52,"column":9}},"loc":{"start":{"line":52,"column":9},"end":{"line":85,"column":null}}},"8":{"name":"(anonymous_12)","decl":{"start":{"line":87,"column":12},"end":{"line":87,"column":null}},"loc":{"start":{"line":87,"column":12},"end":{"line":106,"column":5}}},"9":{"name":"(anonymous_13)","decl":{"start":{"line":97,"column":8},"end":{"line":97,"column":9}},"loc":{"start":{"line":97,"column":20},"end":{"line":97,"column":null}}},"10":{"name":"(anonymous_14)","decl":{"start":{"line":164,"column":30},"end":{"line":164,"column":37}},"loc":{"start":{"line":164,"column":47},"end":{"line":189,"column":null}}},"11":{"name":"(anonymous_15)","decl":{"start":{"line":168,"column":9},"end":{"line":168,"column":10}},"loc":{"start":{"line":168,"column":18},"end":{"line":168,"column":null}}},"12":{"name":"(anonymous_16)","decl":{"start":{"line":172,"column":9},"end":{"line":172,"column":10}},"loc":{"start":{"line":172,"column":18},"end":{"line":172,"column":null}}},"13":{"name":"(anonymous_17)","decl":{"start":{"line":176,"column":9},"end":{"line":176,"column":10}},"loc":{"start":{"line":176,"column":18},"end":{"line":176,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":6},"end":{"line":25,"column":null}},"type":"if","locations":[{"start":{"line":22,"column":6},"end":{"line":25,"column":null}}]},"1":{"loc":{"start":{"line":32,"column":10},"end":{"line":34,"column":42}},"type":"cond-expr","locations":[{"start":{"line":33,"column":14},"end":{"line":33,"column":42}},{"start":{"line":34,"column":14},"end":{"line":34,"column":42}}]},"2":{"loc":{"start":{"line":42,"column":4},"end":{"line":42,"column":null}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":null}}]},"3":{"loc":{"start":{"line":58,"column":17},"end":{"line":58,"column":76}},"type":"cond-expr","locations":[{"start":{"line":58,"column":41},"end":{"line":58,"column":57}},{"start":{"line":58,"column":60},"end":{"line":58,"column":76}}]},"4":{"loc":{"start":{"line":60,"column":12},"end":{"line":60,"column":77}},"type":"cond-expr","locations":[{"start":{"line":60,"column":36},"end":{"line":60,"column":55}},{"start":{"line":60,"column":58},"end":{"line":60,"column":77}}]},"5":{"loc":{"start":{"line":66,"column":19},"end":{"line":66,"column":null}},"type":"cond-expr","locations":[{"start":{"line":66,"column":43},"end":{"line":66,"column":56}},{"start":{"line":66,"column":56},"end":{"line":66,"column":null}}]},"6":{"loc":{"start":{"line":69,"column":19},"end":{"line":71,"column":50}},"type":"cond-expr","locations":[{"start":{"line":70,"column":22},"end":{"line":70,"column":50}},{"start":{"line":71,"column":22},"end":{"line":71,"column":50}}]},"7":{"loc":{"start":{"line":88,"column":4},"end":{"line":91,"column":null}},"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":91,"column":null}}]},"8":{"loc":{"start":{"line":89,"column":30},"end":{"line":89,"column":57}},"type":"binary-expr","locations":[{"start":{"line":89,"column":30},"end":{"line":89,"column":51}},{"start":{"line":89,"column":55},"end":{"line":89,"column":57}}]},"9":{"loc":{"start":{"line":93,"column":4},"end":{"line":105,"column":null}},"type":"if","locations":[{"start":{"line":93,"column":4},"end":{"line":105,"column":null}}]},"10":{"loc":{"start":{"line":95,"column":8},"end":{"line":95,"column":74}},"type":"cond-expr","locations":[{"start":{"line":95,"column":32},"end":{"line":95,"column":52}},{"start":{"line":95,"column":55},"end":{"line":95,"column":74}}]},"11":{"loc":{"start":{"line":113,"column":10},"end":{"line":113,"column":79}},"type":"cond-expr","locations":[{"start":{"line":113,"column":34},"end":{"line":113,"column":55}},{"start":{"line":113,"column":58},"end":{"line":113,"column":79}}]},"12":{"loc":{"start":{"line":132,"column":15},"end":{"line":134,"column":78}},"type":"cond-expr","locations":[{"start":{"line":133,"column":18},"end":{"line":133,"column":78}},{"start":{"line":134,"column":18},"end":{"line":134,"column":78}}]},"13":{"loc":{"start":{"line":138,"column":15},"end":{"line":140,"column":78}},"type":"cond-expr","locations":[{"start":{"line":139,"column":18},"end":{"line":139,"column":78}},{"start":{"line":140,"column":18},"end":{"line":140,"column":78}}]},"14":{"loc":{"start":{"line":181,"column":25},"end":{"line":181,"column":null}},"type":"binary-expr","locations":[{"start":{"line":181,"column":25},"end":{"line":181,"column":56}},{"start":{"line":181,"column":60},"end":{"line":181,"column":null}}]},"15":{"loc":{"start":{"line":187,"column":16},"end":{"line":187,"column":null}},"type":"cond-expr","locations":[{"start":{"line":187,"column":53},"end":{"line":187,"column":58}},{"start":{"line":187,"column":58},"end":{"line":187,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0},"b":{"0":[0],"1":[0,0],"2":[0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0],"8":[0,0],"9":[0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/healthcheck.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/healthcheck.js","statementMap":{"0":{"start":{"line":2,"column":24},"end":{"line":2,"column":32}},"1":{"start":{"line":3,"column":2},"end":{"line":3,"column":null}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":2,"column":24},"end":{"line":2,"column":32}},"loc":{"start":{"line":2,"column":40},"end":{"line":4,"column":null}}}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/report-a-problem.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/report-a-problem.js","statementMap":{"0":{"start":{"line":63,"column":0},"end":{"line":63,"column":15}},"1":{"start":{"line":1,"column":28},"end":{"line":1,"column":null}},"2":{"start":{"line":8,"column":2},"end":{"line":60,"column":null}},"3":{"start":{"line":10,"column":4},"end":{"line":56,"column":null}},"4":{"start":{"line":14,"column":6},"end":{"line":14,"column":null}},"5":{"start":{"line":16,"column":6},"end":{"line":55,"column":null}},"6":{"start":{"line":17,"column":31},"end":{"line":43,"column":null}},"7":{"start":{"line":46,"column":8},"end":{"line":51,"column":null}},"8":{"start":{"line":47,"column":10},"end":{"line":47,"column":null}},"9":{"start":{"line":49,"column":10},"end":{"line":49,"column":null}},"10":{"start":{"line":50,"column":10},"end":{"line":50,"column":null}},"11":{"start":{"line":53,"column":8},"end":{"line":53,"column":null}},"12":{"start":{"line":54,"column":8},"end":{"line":54,"column":null}},"13":{"start":{"line":58,"column":4},"end":{"line":58,"column":null}},"14":{"start":{"line":59,"column":4},"end":{"line":59,"column":null}},"15":{"start":{"line":63,"column":15},"end":{"line":63,"column":null}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":15},"end":{"line":7,"column":23}},"loc":{"start":{"line":7,"column":31},"end":{"line":61,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":60,"column":null}},{"start":{"line":57,"column":9},"end":{"line":60,"column":null}}]},"1":{"loc":{"start":{"line":10,"column":4},"end":{"line":56,"column":null}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":56,"column":null}},{"start":{"line":15,"column":11},"end":{"line":56,"column":null}}]},"2":{"loc":{"start":{"line":11,"column":6},"end":{"line":12,"column":43}},"type":"binary-expr","locations":[{"start":{"line":11,"column":6},"end":{"line":11,"column":null}},{"start":{"line":12,"column":6},"end":{"line":12,"column":43}}]},"3":{"loc":{"start":{"line":20,"column":23},"end":{"line":20,"column":null}},"type":"binary-expr","locations":[{"start":{"line":20,"column":23},"end":{"line":20,"column":42}},{"start":{"line":20,"column":46},"end":{"line":20,"column":null}}]},"4":{"loc":{"start":{"line":46,"column":8},"end":{"line":51,"column":null}},"type":"if","locations":[{"start":{"line":46,"column":8},"end":{"line":51,"column":null}},{"start":{"line":48,"column":15},"end":{"line":51,"column":null}}]}},"s":{"0":5,"1":1,"2":5,"3":5,"4":2,"5":3,"6":3,"7":2,"8":1,"9":1,"10":1,"11":1,"12":1,"13":0,"14":0,"15":1},"f":{"0":5},"b":{"0":[5,0],"1":[2,3],"2":[5,4],"3":[3,0],"4":[1,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/robots.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/robots.js","statementMap":{"0":{"start":{"line":7,"column":30},"end":{"line":7,"column":38}},"1":{"start":{"line":8,"column":2},"end":{"line":18,"column":null}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":null}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":null}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":null}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":null}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":null}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":null}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":null}},"9":{"start":{"line":17,"column":4},"end":{"line":17,"column":null}},"10":{"start":{"line":19,"column":2},"end":{"line":19,"column":null}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":30},"end":{"line":7,"column":38}},"loc":{"start":{"line":7,"column":46},"end":{"line":20,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":18,"column":null}},{"start":{"line":15,"column":9},"end":{"line":18,"column":null}}]}},"s":{"0":2,"1":2,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":2},"f":{"0":2},"b":{"0":[1,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/submit-feedback.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/api/submit-feedback.js","statementMap":{"0":{"start":{"line":3,"column":30},"end":{"line":3,"column":38}},"1":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"2":{"start":{"line":4,"column":15},"end":{"line":4,"column":23}},"3":{"start":{"line":5,"column":2},"end":{"line":19,"column":null}},"4":{"start":{"line":6,"column":4},"end":{"line":6,"column":null}},"5":{"start":{"line":8,"column":4},"end":{"line":18,"column":null}},"6":{"start":{"line":9,"column":14},"end":{"line":9,"column":null}},"7":{"start":{"line":10,"column":6},"end":{"line":14,"column":null}},"8":{"start":{"line":11,"column":8},"end":{"line":11,"column":null}},"9":{"start":{"line":13,"column":8},"end":{"line":13,"column":null}},"10":{"start":{"line":16,"column":6},"end":{"line":16,"column":null}},"11":{"start":{"line":17,"column":6},"end":{"line":17,"column":null}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":3,"column":30},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":46},"end":{"line":20,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":2},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":5,"column":2},"end":{"line":19,"column":null}},{"start":{"line":7,"column":9},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":10,"column":6},"end":{"line":14,"column":null}},"type":"if","locations":[{"start":{"line":10,"column":6},"end":{"line":14,"column":null}},{"start":{"line":12,"column":13},"end":{"line":14,"column":null}}]}},"s":{"0":3,"1":1,"2":3,"3":3,"4":1,"5":2,"6":2,"7":2,"8":1,"9":1,"10":1,"11":1},"f":{"0":3},"b":{"0":[1,2],"1":[1,1]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-finder/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-finder/[id].js","statementMap":{"0":{"start":{"line":12,"column":24},"end":{"line":12,"column":46}},"1":{"start":{"line":83,"column":22},"end":{"line":83,"column":36}},"2":{"start":{"line":97,"column":13},"end":{"line":97,"column":27}},"3":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":34},"end":{"line":10,"column":null}},"13":{"start":{"line":13,"column":21},"end":{"line":13,"column":null}},"14":{"start":{"line":14,"column":23},"end":{"line":14,"column":null}},"15":{"start":{"line":16,"column":2},"end":{"line":21,"column":null}},"16":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"17":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"18":{"start":{"line":19,"column":6},"end":{"line":19,"column":null}},"19":{"start":{"line":85,"column":19},"end":{"line":86,"column":null}},"20":{"start":{"line":89,"column":16},"end":{"line":89,"column":null}},"21":{"start":{"line":90,"column":2},"end":{"line":90,"column":null}},"22":{"start":{"line":90,"column":23},"end":{"line":90,"column":null}},"23":{"start":{"line":91,"column":2},"end":{"line":94,"column":null}},"24":{"start":{"line":97,"column":30},"end":{"line":133,"column":null}},"25":{"start":{"line":99,"column":19},"end":{"line":100,"column":null}},"26":{"start":{"line":103,"column":31},"end":{"line":104,"column":null}},"27":{"start":{"line":106,"column":16},"end":{"line":106,"column":43}},"28":{"start":{"line":108,"column":19},"end":{"line":114,"column":null}},"29":{"start":{"line":109,"column":4},"end":{"line":112,"column":null}},"30":{"start":{"line":116,"column":2},"end":{"line":120,"column":null}},"31":{"start":{"line":117,"column":4},"end":{"line":119,"column":null}},"32":{"start":{"line":122,"column":2},"end":{"line":132,"column":null}}},"fnMap":{"0":{"name":"BenefitFinderArticles","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":46}},"loc":{"start":{"line":12,"column":63},"end":{"line":81,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":null}},"loc":{"start":{"line":16,"column":12},"end":{"line":21,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":83,"column":22},"end":{"line":83,"column":36}},"loc":{"start":{"line":83,"column":22},"end":{"line":95,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":90,"column":12},"end":{"line":90,"column":13}},"loc":{"start":{"line":90,"column":23},"end":{"line":90,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":97,"column":30},"end":{"line":97,"column":37}},"loc":{"start":{"line":97,"column":55},"end":{"line":133,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":108,"column":32},"end":{"line":108,"column":33}},"loc":{"start":{"line":108,"column":33},"end":{"line":114,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":null}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":null}}]},"1":{"loc":{"start":{"line":18,"column":30},"end":{"line":18,"column":57}},"type":"binary-expr","locations":[{"start":{"line":18,"column":30},"end":{"line":18,"column":51}},{"start":{"line":18,"column":55},"end":{"line":18,"column":57}}]},"2":{"loc":{"start":{"line":28,"column":10},"end":{"line":28,"column":79}},"type":"cond-expr","locations":[{"start":{"line":28,"column":34},"end":{"line":28,"column":55}},{"start":{"line":28,"column":58},"end":{"line":28,"column":79}}]},"3":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":79}},"type":"cond-expr","locations":[{"start":{"line":43,"column":40},"end":{"line":43,"column":58}},{"start":{"line":43,"column":61},"end":{"line":43,"column":79}}]},"4":{"loc":{"start":{"line":49,"column":18},"end":{"line":49,"column":null}},"type":"cond-expr","locations":[{"start":{"line":49,"column":42},"end":{"line":49,"column":60}},{"start":{"line":49,"column":60},"end":{"line":49,"column":null}}]},"5":{"loc":{"start":{"line":59,"column":18},"end":{"line":59,"column":null}},"type":"cond-expr","locations":[{"start":{"line":59,"column":42},"end":{"line":59,"column":60}},{"start":{"line":59,"column":60},"end":{"line":59,"column":null}}]},"6":{"loc":{"start":{"line":110,"column":7},"end":{"line":110,"column":61}},"type":"cond-expr","locations":[{"start":{"line":110,"column":25},"end":{"line":110,"column":42}},{"start":{"line":110,"column":45},"end":{"line":110,"column":61}}]},"7":{"loc":{"start":{"line":116,"column":2},"end":{"line":120,"column":null}},"type":"if","locations":[{"start":{"line":116,"column":2},"end":{"line":120,"column":null}}]},"8":{"loc":{"start":{"line":116,"column":6},"end":{"line":116,"column":35}},"type":"binary-expr","locations":[{"start":{"line":116,"column":6},"end":{"line":116,"column":19}},{"start":{"line":116,"column":19},"end":{"line":116,"column":35}}]},"9":{"loc":{"start":{"line":128,"column":25},"end":{"line":128,"column":null}},"type":"binary-expr","locations":[{"start":{"line":128,"column":25},"end":{"line":128,"column":56}},{"start":{"line":128,"column":60},"end":{"line":128,"column":null}}]},"10":{"loc":{"start":{"line":131,"column":16},"end":{"line":131,"column":null}},"type":"cond-expr","locations":[{"start":{"line":131,"column":53},"end":{"line":131,"column":58}},{"start":{"line":131,"column":58},"end":{"line":131,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0],"8":[0,0],"9":[0,0],"10":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-finder/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-finder/index.js","statementMap":{"0":{"start":{"line":20,"column":24},"end":{"line":20,"column":47}},"1":{"start":{"line":371,"column":13},"end":{"line":371,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":17},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":18},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":34},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":27},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":32},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":31},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":34},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":28},"end":{"line":17,"column":null}},"19":{"start":{"line":18,"column":24},"end":{"line":18,"column":null}},"20":{"start":{"line":21,"column":21},"end":{"line":21,"column":null}},"21":{"start":{"line":22,"column":22},"end":{"line":22,"column":null}},"22":{"start":{"line":23,"column":22},"end":{"line":23,"column":39}},"23":{"start":{"line":24,"column":31},"end":{"line":30,"column":null}},"24":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"25":{"start":{"line":34,"column":2},"end":{"line":39,"column":null}},"26":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"27":{"start":{"line":36,"column":6},"end":{"line":36,"column":null}},"28":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"29":{"start":{"line":371,"column":30},"end":{"line":397,"column":null}},"30":{"start":{"line":373,"column":29},"end":{"line":374,"column":null}},"31":{"start":{"line":377,"column":31},"end":{"line":378,"column":null}},"32":{"start":{"line":381,"column":32},"end":{"line":382,"column":null}},"33":{"start":{"line":385,"column":2},"end":{"line":396,"column":null}}},"fnMap":{"0":{"name":"BenefitsFinderOverview","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":47}},"loc":{"start":{"line":20,"column":52},"end":{"line":369,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":6},"end":{"line":26,"column":7}},"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":34,"column":12},"end":{"line":34,"column":null}},"loc":{"start":{"line":34,"column":12},"end":{"line":39,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":371,"column":30},"end":{"line":371,"column":37}},"loc":{"start":{"line":371,"column":47},"end":{"line":397,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":30,"column":null}}]},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":38,"column":null}}]},"2":{"loc":{"start":{"line":36,"column":30},"end":{"line":36,"column":57}},"type":"binary-expr","locations":[{"start":{"line":36,"column":30},"end":{"line":36,"column":51}},{"start":{"line":36,"column":55},"end":{"line":36,"column":57}}]},"3":{"loc":{"start":{"line":46,"column":10},"end":{"line":46,"column":79}},"type":"cond-expr","locations":[{"start":{"line":46,"column":34},"end":{"line":46,"column":55}},{"start":{"line":46,"column":58},"end":{"line":46,"column":79}}]},"4":{"loc":{"start":{"line":57,"column":13},"end":{"line":59,"column":72}},"type":"cond-expr","locations":[{"start":{"line":58,"column":16},"end":{"line":58,"column":61}},{"start":{"line":59,"column":16},"end":{"line":59,"column":72}}]},"5":{"loc":{"start":{"line":64,"column":14},"end":{"line":66,"column":67}},"type":"cond-expr","locations":[{"start":{"line":65,"column":18},"end":{"line":65,"column":67}},{"start":{"line":66,"column":18},"end":{"line":66,"column":67}}]},"6":{"loc":{"start":{"line":76,"column":16},"end":{"line":78,"column":41}},"type":"cond-expr","locations":[{"start":{"line":77,"column":20},"end":{"line":77,"column":41}},{"start":{"line":78,"column":20},"end":{"line":78,"column":41}}]},"7":{"loc":{"start":{"line":86,"column":14},"end":{"line":88,"column":39}},"type":"cond-expr","locations":[{"start":{"line":87,"column":18},"end":{"line":87,"column":39}},{"start":{"line":88,"column":18},"end":{"line":88,"column":39}}]},"8":{"loc":{"start":{"line":96,"column":14},"end":{"line":96,"column":77}},"type":"cond-expr","locations":[{"start":{"line":96,"column":38},"end":{"line":96,"column":56}},{"start":{"line":96,"column":59},"end":{"line":96,"column":77}}]},"9":{"loc":{"start":{"line":101,"column":21},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":101,"column":45},"end":{"line":101,"column":53}},{"start":{"line":101,"column":53},"end":{"line":101,"column":null}}]},"10":{"loc":{"start":{"line":107,"column":14},"end":{"line":109,"column":null}},"type":"cond-expr","locations":[{"start":{"line":108,"column":18},"end":{"line":108,"column":null}},{"start":{"line":109,"column":18},"end":{"line":109,"column":null}}]},"11":{"loc":{"start":{"line":123,"column":14},"end":{"line":125,"column":67}},"type":"cond-expr","locations":[{"start":{"line":124,"column":18},"end":{"line":124,"column":67}},{"start":{"line":125,"column":18},"end":{"line":125,"column":67}}]},"12":{"loc":{"start":{"line":143,"column":16},"end":{"line":145,"column":41}},"type":"cond-expr","locations":[{"start":{"line":144,"column":20},"end":{"line":144,"column":41}},{"start":{"line":145,"column":20},"end":{"line":145,"column":41}}]},"13":{"loc":{"start":{"line":152,"column":14},"end":{"line":152,"column":77}},"type":"cond-expr","locations":[{"start":{"line":152,"column":38},"end":{"line":152,"column":56}},{"start":{"line":152,"column":59},"end":{"line":152,"column":77}}]},"14":{"loc":{"start":{"line":158,"column":14},"end":{"line":160,"column":67}},"type":"cond-expr","locations":[{"start":{"line":159,"column":18},"end":{"line":159,"column":67}},{"start":{"line":160,"column":18},"end":{"line":160,"column":67}}]},"15":{"loc":{"start":{"line":170,"column":14},"end":{"line":172,"column":58}},"type":"cond-expr","locations":[{"start":{"line":171,"column":18},"end":{"line":171,"column":58}},{"start":{"line":172,"column":18},"end":{"line":172,"column":58}}]},"16":{"loc":{"start":{"line":183,"column":16},"end":{"line":185,"column":41}},"type":"cond-expr","locations":[{"start":{"line":184,"column":20},"end":{"line":184,"column":41}},{"start":{"line":185,"column":20},"end":{"line":185,"column":41}}]},"17":{"loc":{"start":{"line":192,"column":14},"end":{"line":192,"column":77}},"type":"cond-expr","locations":[{"start":{"line":192,"column":38},"end":{"line":192,"column":56}},{"start":{"line":192,"column":59},"end":{"line":192,"column":77}}]},"18":{"loc":{"start":{"line":199,"column":14},"end":{"line":201,"column":67}},"type":"cond-expr","locations":[{"start":{"line":200,"column":18},"end":{"line":200,"column":67}},{"start":{"line":201,"column":18},"end":{"line":201,"column":67}}]},"19":{"loc":{"start":{"line":211,"column":14},"end":{"line":213,"column":58}},"type":"cond-expr","locations":[{"start":{"line":212,"column":18},"end":{"line":212,"column":58}},{"start":{"line":213,"column":18},"end":{"line":213,"column":58}}]},"20":{"loc":{"start":{"line":226,"column":20},"end":{"line":228,"column":42}},"type":"cond-expr","locations":[{"start":{"line":227,"column":24},"end":{"line":227,"column":42}},{"start":{"line":228,"column":24},"end":{"line":228,"column":42}}]},"21":{"loc":{"start":{"line":237,"column":24},"end":{"line":239,"column":73}},"type":"cond-expr","locations":[{"start":{"line":238,"column":28},"end":{"line":238,"column":73}},{"start":{"line":239,"column":28},"end":{"line":239,"column":73}}]},"22":{"loc":{"start":{"line":242,"column":24},"end":{"line":244,"column":68}},"type":"cond-expr","locations":[{"start":{"line":243,"column":28},"end":{"line":243,"column":68}},{"start":{"line":244,"column":28},"end":{"line":244,"column":68}}]},"23":{"loc":{"start":{"line":256,"column":17},"end":{"line":259,"column":28}},"type":"cond-expr","locations":[{"start":{"line":257,"column":20},"end":{"line":257,"column":80}},{"start":{"line":258,"column":20},"end":{"line":259,"column":28}}]},"24":{"loc":{"start":{"line":265,"column":20},"end":{"line":267,"column":54}},"type":"cond-expr","locations":[{"start":{"line":266,"column":24},"end":{"line":266,"column":54}},{"start":{"line":267,"column":24},"end":{"line":267,"column":54}}]},"25":{"loc":{"start":{"line":270,"column":20},"end":{"line":272,"column":54}},"type":"cond-expr","locations":[{"start":{"line":271,"column":24},"end":{"line":271,"column":54}},{"start":{"line":272,"column":24},"end":{"line":272,"column":54}}]},"26":{"loc":{"start":{"line":275,"column":20},"end":{"line":277,"column":54}},"type":"cond-expr","locations":[{"start":{"line":276,"column":24},"end":{"line":276,"column":54}},{"start":{"line":277,"column":24},"end":{"line":277,"column":54}}]},"27":{"loc":{"start":{"line":283,"column":20},"end":{"line":287,"column":null}},"type":"cond-expr","locations":[{"start":{"line":284,"column":24},"end":{"line":285,"column":null}},{"start":{"line":286,"column":24},"end":{"line":287,"column":null}}]},"28":{"loc":{"start":{"line":290,"column":20},"end":{"line":294,"column":32}},"type":"cond-expr","locations":[{"start":{"line":291,"column":24},"end":{"line":292,"column":32}},{"start":{"line":293,"column":24},"end":{"line":294,"column":32}}]},"29":{"loc":{"start":{"line":297,"column":20},"end":{"line":299,"column":57}},"type":"cond-expr","locations":[{"start":{"line":298,"column":24},"end":{"line":298,"column":57}},{"start":{"line":299,"column":24},"end":{"line":299,"column":57}}]},"30":{"loc":{"start":{"line":302,"column":20},"end":{"line":304,"column":70}},"type":"cond-expr","locations":[{"start":{"line":303,"column":24},"end":{"line":303,"column":70}},{"start":{"line":304,"column":24},"end":{"line":304,"column":70}}]},"31":{"loc":{"start":{"line":307,"column":20},"end":{"line":309,"column":79}},"type":"cond-expr","locations":[{"start":{"line":308,"column":24},"end":{"line":308,"column":79}},{"start":{"line":309,"column":24},"end":{"line":309,"column":79}}]},"32":{"loc":{"start":{"line":314,"column":17},"end":{"line":317,"column":28}},"type":"cond-expr","locations":[{"start":{"line":315,"column":20},"end":{"line":315,"column":80}},{"start":{"line":316,"column":20},"end":{"line":317,"column":28}}]},"33":{"loc":{"start":{"line":327,"column":9},"end":{"line":356,"column":null}},"type":"cond-expr","locations":[{"start":{"line":328,"column":10},"end":{"line":356,"column":null}},{"start":{"line":356,"column":12},"end":{"line":356,"column":null}}]},"34":{"loc":{"start":{"line":333,"column":14},"end":{"line":343,"column":43}},"type":"cond-expr","locations":[{"start":{"line":334,"column":18},"end":{"line":338,"column":21}},{"start":{"line":339,"column":18},"end":{"line":343,"column":43}}]},"35":{"loc":{"start":{"line":351,"column":14},"end":{"line":353,"column":65}},"type":"cond-expr","locations":[{"start":{"line":352,"column":18},"end":{"line":352,"column":61}},{"start":{"line":353,"column":18},"end":{"line":353,"column":65}}]},"36":{"loc":{"start":{"line":388,"column":25},"end":{"line":388,"column":null}},"type":"binary-expr","locations":[{"start":{"line":388,"column":25},"end":{"line":388,"column":56}},{"start":{"line":388,"column":60},"end":{"line":388,"column":null}}]},"37":{"loc":{"start":{"line":395,"column":16},"end":{"line":395,"column":null}},"type":"cond-expr","locations":[{"start":{"line":395,"column":53},"end":{"line":395,"column":58}},{"start":{"line":395,"column":58},"end":{"line":395,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":21,"25":1,"26":1,"27":0,"28":0,"29":1,"30":0,"31":0,"32":0,"33":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[1,0],"34":[0,1],"35":[0,1],"36":[0,0],"37":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/[id].js","statementMap":{"0":{"start":{"line":17,"column":24},"end":{"line":17,"column":49}},"1":{"start":{"line":136,"column":22},"end":{"line":136,"column":36}},"2":{"start":{"line":150,"column":13},"end":{"line":150,"column":27}},"3":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":31},"end":{"line":10,"column":null}},"13":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"14":{"start":{"line":12,"column":34},"end":{"line":12,"column":null}},"15":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"16":{"start":{"line":14,"column":27},"end":{"line":14,"column":null}},"17":{"start":{"line":15,"column":32},"end":{"line":15,"column":null}},"18":{"start":{"line":18,"column":21},"end":{"line":18,"column":null}},"19":{"start":{"line":19,"column":23},"end":{"line":19,"column":null}},"20":{"start":{"line":20,"column":22},"end":{"line":20,"column":39}},"21":{"start":{"line":22,"column":2},"end":{"line":27,"column":null}},"22":{"start":{"line":23,"column":4},"end":{"line":26,"column":null}},"23":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"24":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"25":{"start":{"line":138,"column":19},"end":{"line":139,"column":null}},"26":{"start":{"line":142,"column":16},"end":{"line":142,"column":null}},"27":{"start":{"line":143,"column":2},"end":{"line":143,"column":null}},"28":{"start":{"line":143,"column":23},"end":{"line":143,"column":null}},"29":{"start":{"line":144,"column":2},"end":{"line":147,"column":null}},"30":{"start":{"line":150,"column":30},"end":{"line":191,"column":null}},"31":{"start":{"line":152,"column":32},"end":{"line":153,"column":null}},"32":{"start":{"line":155,"column":32},"end":{"line":156,"column":null}},"33":{"start":{"line":159,"column":31},"end":{"line":160,"column":null}},"34":{"start":{"line":162,"column":16},"end":{"line":162,"column":50}},"35":{"start":{"line":164,"column":19},"end":{"line":170,"column":null}},"36":{"start":{"line":165,"column":4},"end":{"line":168,"column":null}},"37":{"start":{"line":172,"column":2},"end":{"line":176,"column":null}},"38":{"start":{"line":173,"column":4},"end":{"line":175,"column":null}},"39":{"start":{"line":178,"column":2},"end":{"line":190,"column":null}}},"fnMap":{"0":{"name":"BenefitNavigatorArticles","decl":{"start":{"line":17,"column":24},"end":{"line":17,"column":49}},"loc":{"start":{"line":17,"column":66},"end":{"line":134,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":22,"column":12},"end":{"line":22,"column":null}},"loc":{"start":{"line":22,"column":12},"end":{"line":27,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":136,"column":22},"end":{"line":136,"column":36}},"loc":{"start":{"line":136,"column":22},"end":{"line":148,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":143,"column":12},"end":{"line":143,"column":13}},"loc":{"start":{"line":143,"column":23},"end":{"line":143,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":150,"column":30},"end":{"line":150,"column":37}},"loc":{"start":{"line":150,"column":55},"end":{"line":191,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":164,"column":32},"end":{"line":164,"column":33}},"loc":{"start":{"line":164,"column":33},"end":{"line":170,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":4},"end":{"line":26,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":26,"column":null}}]},"1":{"loc":{"start":{"line":24,"column":30},"end":{"line":24,"column":57}},"type":"binary-expr","locations":[{"start":{"line":24,"column":30},"end":{"line":24,"column":51}},{"start":{"line":24,"column":55},"end":{"line":24,"column":57}}]},"2":{"loc":{"start":{"line":34,"column":10},"end":{"line":34,"column":79}},"type":"cond-expr","locations":[{"start":{"line":34,"column":34},"end":{"line":34,"column":55}},{"start":{"line":34,"column":58},"end":{"line":34,"column":79}}]},"3":{"loc":{"start":{"line":49,"column":16},"end":{"line":49,"column":79}},"type":"cond-expr","locations":[{"start":{"line":49,"column":40},"end":{"line":49,"column":58}},{"start":{"line":49,"column":61},"end":{"line":49,"column":79}}]},"4":{"loc":{"start":{"line":59,"column":16},"end":{"line":61,"column":50}},"type":"cond-expr","locations":[{"start":{"line":60,"column":20},"end":{"line":60,"column":50}},{"start":{"line":61,"column":20},"end":{"line":61,"column":50}}]},"5":{"loc":{"start":{"line":64,"column":16},"end":{"line":66,"column":60}},"type":"cond-expr","locations":[{"start":{"line":65,"column":20},"end":{"line":65,"column":60}},{"start":{"line":66,"column":20},"end":{"line":66,"column":60}}]},"6":{"loc":{"start":{"line":92,"column":9},"end":{"line":121,"column":null}},"type":"cond-expr","locations":[{"start":{"line":93,"column":10},"end":{"line":121,"column":null}},{"start":{"line":121,"column":12},"end":{"line":121,"column":null}}]},"7":{"loc":{"start":{"line":98,"column":14},"end":{"line":108,"column":46}},"type":"cond-expr","locations":[{"start":{"line":99,"column":18},"end":{"line":103,"column":21}},{"start":{"line":104,"column":18},"end":{"line":108,"column":46}}]},"8":{"loc":{"start":{"line":116,"column":14},"end":{"line":118,"column":77}},"type":"cond-expr","locations":[{"start":{"line":117,"column":18},"end":{"line":117,"column":73}},{"start":{"line":118,"column":18},"end":{"line":118,"column":77}}]},"9":{"loc":{"start":{"line":166,"column":7},"end":{"line":166,"column":61}},"type":"cond-expr","locations":[{"start":{"line":166,"column":25},"end":{"line":166,"column":42}},{"start":{"line":166,"column":45},"end":{"line":166,"column":61}}]},"10":{"loc":{"start":{"line":172,"column":2},"end":{"line":176,"column":null}},"type":"if","locations":[{"start":{"line":172,"column":2},"end":{"line":176,"column":null}}]},"11":{"loc":{"start":{"line":172,"column":6},"end":{"line":172,"column":35}},"type":"binary-expr","locations":[{"start":{"line":172,"column":6},"end":{"line":172,"column":19}},{"start":{"line":172,"column":19},"end":{"line":172,"column":35}}]},"12":{"loc":{"start":{"line":186,"column":25},"end":{"line":186,"column":null}},"type":"binary-expr","locations":[{"start":{"line":186,"column":25},"end":{"line":186,"column":56}},{"start":{"line":186,"column":60},"end":{"line":186,"column":null}}]},"13":{"loc":{"start":{"line":189,"column":16},"end":{"line":189,"column":null}},"type":"cond-expr","locations":[{"start":{"line":189,"column":53},"end":{"line":189,"column":58}},{"start":{"line":189,"column":58},"end":{"line":189,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0],"11":[0,0],"12":[0,0],"13":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/benefits-navigator/index.js","statementMap":{"0":{"start":{"line":21,"column":24},"end":{"line":21,"column":50}},"1":{"start":{"line":636,"column":13},"end":{"line":636,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":24},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":25},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":18},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":32},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":23},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":31},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":24},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":28},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":34},"end":{"line":17,"column":null}},"19":{"start":{"line":18,"column":34},"end":{"line":18,"column":null}},"20":{"start":{"line":19,"column":32},"end":{"line":19,"column":null}},"21":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"22":{"start":{"line":23,"column":21},"end":{"line":23,"column":null}},"23":{"start":{"line":24,"column":22},"end":{"line":24,"column":39}},"24":{"start":{"line":25,"column":31},"end":{"line":31,"column":null}},"25":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}},"26":{"start":{"line":35,"column":2},"end":{"line":40,"column":null}},"27":{"start":{"line":36,"column":4},"end":{"line":39,"column":null}},"28":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"29":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"30":{"start":{"line":636,"column":30},"end":{"line":662,"column":null}},"31":{"start":{"line":638,"column":29},"end":{"line":639,"column":null}},"32":{"start":{"line":642,"column":31},"end":{"line":643,"column":null}},"33":{"start":{"line":646,"column":32},"end":{"line":647,"column":null}},"34":{"start":{"line":650,"column":2},"end":{"line":661,"column":null}}},"fnMap":{"0":{"name":"BenefitsNavigatorOverview","decl":{"start":{"line":21,"column":24},"end":{"line":21,"column":50}},"loc":{"start":{"line":21,"column":55},"end":{"line":634,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":6},"end":{"line":27,"column":7}},"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":35,"column":12},"end":{"line":35,"column":null}},"loc":{"start":{"line":35,"column":12},"end":{"line":40,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":636,"column":30},"end":{"line":636,"column":37}},"loc":{"start":{"line":636,"column":47},"end":{"line":662,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}},"type":"binary-expr","locations":[{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":30,"column":null}},{"start":{"line":31,"column":8},"end":{"line":31,"column":null}}]},"1":{"loc":{"start":{"line":36,"column":4},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":39,"column":null}}]},"2":{"loc":{"start":{"line":37,"column":30},"end":{"line":37,"column":57}},"type":"binary-expr","locations":[{"start":{"line":37,"column":30},"end":{"line":37,"column":51}},{"start":{"line":37,"column":55},"end":{"line":37,"column":57}}]},"3":{"loc":{"start":{"line":47,"column":10},"end":{"line":47,"column":79}},"type":"cond-expr","locations":[{"start":{"line":47,"column":34},"end":{"line":47,"column":55}},{"start":{"line":47,"column":58},"end":{"line":47,"column":79}}]},"4":{"loc":{"start":{"line":58,"column":13},"end":{"line":60,"column":72}},"type":"cond-expr","locations":[{"start":{"line":59,"column":16},"end":{"line":59,"column":61}},{"start":{"line":60,"column":16},"end":{"line":60,"column":72}}]},"5":{"loc":{"start":{"line":65,"column":14},"end":{"line":67,"column":67}},"type":"cond-expr","locations":[{"start":{"line":66,"column":18},"end":{"line":66,"column":67}},{"start":{"line":67,"column":18},"end":{"line":67,"column":67}}]},"6":{"loc":{"start":{"line":77,"column":16},"end":{"line":79,"column":41}},"type":"cond-expr","locations":[{"start":{"line":78,"column":20},"end":{"line":78,"column":41}},{"start":{"line":79,"column":20},"end":{"line":79,"column":41}}]},"7":{"loc":{"start":{"line":87,"column":14},"end":{"line":89,"column":39}},"type":"cond-expr","locations":[{"start":{"line":88,"column":18},"end":{"line":88,"column":39}},{"start":{"line":89,"column":18},"end":{"line":89,"column":39}}]},"8":{"loc":{"start":{"line":97,"column":14},"end":{"line":97,"column":77}},"type":"cond-expr","locations":[{"start":{"line":97,"column":38},"end":{"line":97,"column":56}},{"start":{"line":97,"column":59},"end":{"line":97,"column":77}}]},"9":{"loc":{"start":{"line":102,"column":21},"end":{"line":102,"column":null}},"type":"cond-expr","locations":[{"start":{"line":102,"column":45},"end":{"line":102,"column":53}},{"start":{"line":102,"column":53},"end":{"line":102,"column":null}}]},"10":{"loc":{"start":{"line":108,"column":14},"end":{"line":110,"column":null}},"type":"cond-expr","locations":[{"start":{"line":109,"column":18},"end":{"line":109,"column":null}},{"start":{"line":110,"column":18},"end":{"line":110,"column":null}}]},"11":{"loc":{"start":{"line":124,"column":14},"end":{"line":126,"column":67}},"type":"cond-expr","locations":[{"start":{"line":125,"column":18},"end":{"line":125,"column":67}},{"start":{"line":126,"column":18},"end":{"line":126,"column":67}}]},"12":{"loc":{"start":{"line":144,"column":16},"end":{"line":146,"column":41}},"type":"cond-expr","locations":[{"start":{"line":145,"column":20},"end":{"line":145,"column":41}},{"start":{"line":146,"column":20},"end":{"line":146,"column":41}}]},"13":{"loc":{"start":{"line":153,"column":14},"end":{"line":153,"column":77}},"type":"cond-expr","locations":[{"start":{"line":153,"column":38},"end":{"line":153,"column":56}},{"start":{"line":153,"column":59},"end":{"line":153,"column":77}}]},"14":{"loc":{"start":{"line":159,"column":14},"end":{"line":161,"column":67}},"type":"cond-expr","locations":[{"start":{"line":160,"column":18},"end":{"line":160,"column":67}},{"start":{"line":161,"column":18},"end":{"line":161,"column":67}}]},"15":{"loc":{"start":{"line":171,"column":14},"end":{"line":173,"column":58}},"type":"cond-expr","locations":[{"start":{"line":172,"column":18},"end":{"line":172,"column":58}},{"start":{"line":173,"column":18},"end":{"line":173,"column":58}}]},"16":{"loc":{"start":{"line":184,"column":16},"end":{"line":186,"column":41}},"type":"cond-expr","locations":[{"start":{"line":185,"column":20},"end":{"line":185,"column":41}},{"start":{"line":186,"column":20},"end":{"line":186,"column":41}}]},"17":{"loc":{"start":{"line":193,"column":14},"end":{"line":193,"column":77}},"type":"cond-expr","locations":[{"start":{"line":193,"column":38},"end":{"line":193,"column":56}},{"start":{"line":193,"column":59},"end":{"line":193,"column":77}}]},"18":{"loc":{"start":{"line":200,"column":14},"end":{"line":202,"column":67}},"type":"cond-expr","locations":[{"start":{"line":201,"column":18},"end":{"line":201,"column":67}},{"start":{"line":202,"column":18},"end":{"line":202,"column":67}}]},"19":{"loc":{"start":{"line":212,"column":14},"end":{"line":214,"column":58}},"type":"cond-expr","locations":[{"start":{"line":213,"column":18},"end":{"line":213,"column":58}},{"start":{"line":214,"column":18},"end":{"line":214,"column":58}}]},"20":{"loc":{"start":{"line":227,"column":20},"end":{"line":229,"column":42}},"type":"cond-expr","locations":[{"start":{"line":228,"column":24},"end":{"line":228,"column":42}},{"start":{"line":229,"column":24},"end":{"line":229,"column":42}}]},"21":{"loc":{"start":{"line":237,"column":22},"end":{"line":239,"column":59}},"type":"cond-expr","locations":[{"start":{"line":238,"column":26},"end":{"line":238,"column":59}},{"start":{"line":239,"column":26},"end":{"line":239,"column":59}}]},"22":{"loc":{"start":{"line":244,"column":26},"end":{"line":246,"column":70}},"type":"cond-expr","locations":[{"start":{"line":245,"column":30},"end":{"line":245,"column":70}},{"start":{"line":246,"column":30},"end":{"line":246,"column":70}}]},"23":{"loc":{"start":{"line":260,"column":24},"end":{"line":262,"column":73}},"type":"cond-expr","locations":[{"start":{"line":261,"column":28},"end":{"line":261,"column":73}},{"start":{"line":262,"column":28},"end":{"line":262,"column":73}}]},"24":{"loc":{"start":{"line":265,"column":24},"end":{"line":267,"column":68}},"type":"cond-expr","locations":[{"start":{"line":266,"column":28},"end":{"line":266,"column":68}},{"start":{"line":267,"column":28},"end":{"line":267,"column":68}}]},"25":{"loc":{"start":{"line":279,"column":17},"end":{"line":282,"column":28}},"type":"cond-expr","locations":[{"start":{"line":280,"column":20},"end":{"line":280,"column":80}},{"start":{"line":281,"column":20},"end":{"line":282,"column":28}}]},"26":{"loc":{"start":{"line":288,"column":20},"end":{"line":290,"column":54}},"type":"cond-expr","locations":[{"start":{"line":289,"column":24},"end":{"line":289,"column":54}},{"start":{"line":290,"column":24},"end":{"line":290,"column":54}}]},"27":{"loc":{"start":{"line":293,"column":20},"end":{"line":295,"column":54}},"type":"cond-expr","locations":[{"start":{"line":294,"column":24},"end":{"line":294,"column":54}},{"start":{"line":295,"column":24},"end":{"line":295,"column":54}}]},"28":{"loc":{"start":{"line":298,"column":20},"end":{"line":300,"column":54}},"type":"cond-expr","locations":[{"start":{"line":299,"column":24},"end":{"line":299,"column":54}},{"start":{"line":300,"column":24},"end":{"line":300,"column":54}}]},"29":{"loc":{"start":{"line":306,"column":20},"end":{"line":310,"column":null}},"type":"cond-expr","locations":[{"start":{"line":307,"column":24},"end":{"line":308,"column":null}},{"start":{"line":309,"column":24},"end":{"line":310,"column":null}}]},"30":{"loc":{"start":{"line":313,"column":20},"end":{"line":317,"column":32}},"type":"cond-expr","locations":[{"start":{"line":314,"column":24},"end":{"line":315,"column":32}},{"start":{"line":316,"column":24},"end":{"line":317,"column":32}}]},"31":{"loc":{"start":{"line":320,"column":20},"end":{"line":322,"column":57}},"type":"cond-expr","locations":[{"start":{"line":321,"column":24},"end":{"line":321,"column":57}},{"start":{"line":322,"column":24},"end":{"line":322,"column":57}}]},"32":{"loc":{"start":{"line":325,"column":20},"end":{"line":327,"column":70}},"type":"cond-expr","locations":[{"start":{"line":326,"column":24},"end":{"line":326,"column":70}},{"start":{"line":327,"column":24},"end":{"line":327,"column":70}}]},"33":{"loc":{"start":{"line":330,"column":20},"end":{"line":334,"column":32}},"type":"cond-expr","locations":[{"start":{"line":331,"column":24},"end":{"line":332,"column":32}},{"start":{"line":333,"column":24},"end":{"line":334,"column":32}}]},"34":{"loc":{"start":{"line":342,"column":15},"end":{"line":344,"column":78}},"type":"cond-expr","locations":[{"start":{"line":343,"column":18},"end":{"line":343,"column":78}},{"start":{"line":344,"column":18},"end":{"line":344,"column":78}}]},"35":{"loc":{"start":{"line":347,"column":15},"end":{"line":349,"column":78}},"type":"cond-expr","locations":[{"start":{"line":348,"column":18},"end":{"line":348,"column":78}},{"start":{"line":349,"column":18},"end":{"line":349,"column":78}}]},"36":{"loc":{"start":{"line":352,"column":15},"end":{"line":354,"column":78}},"type":"cond-expr","locations":[{"start":{"line":353,"column":18},"end":{"line":353,"column":78}},{"start":{"line":354,"column":18},"end":{"line":354,"column":78}}]},"37":{"loc":{"start":{"line":358,"column":17},"end":{"line":362,"column":39}},"type":"cond-expr","locations":[{"start":{"line":359,"column":20},"end":{"line":360,"column":39}},{"start":{"line":361,"column":20},"end":{"line":362,"column":39}}]},"38":{"loc":{"start":{"line":365,"column":17},"end":{"line":369,"column":39}},"type":"cond-expr","locations":[{"start":{"line":366,"column":20},"end":{"line":367,"column":39}},{"start":{"line":368,"column":20},"end":{"line":369,"column":39}}]},"39":{"loc":{"start":{"line":372,"column":17},"end":{"line":376,"column":39}},"type":"cond-expr","locations":[{"start":{"line":373,"column":20},"end":{"line":374,"column":39}},{"start":{"line":375,"column":20},"end":{"line":376,"column":39}}]},"40":{"loc":{"start":{"line":380,"column":15},"end":{"line":382,"column":78}},"type":"cond-expr","locations":[{"start":{"line":381,"column":18},"end":{"line":381,"column":78}},{"start":{"line":382,"column":18},"end":{"line":382,"column":78}}]},"41":{"loc":{"start":{"line":386,"column":17},"end":{"line":389,"column":28}},"type":"cond-expr","locations":[{"start":{"line":387,"column":20},"end":{"line":387,"column":80}},{"start":{"line":388,"column":20},"end":{"line":389,"column":28}}]},"42":{"loc":{"start":{"line":395,"column":22},"end":{"line":399,"column":50}},"type":"cond-expr","locations":[{"start":{"line":396,"column":26},"end":{"line":397,"column":50}},{"start":{"line":398,"column":26},"end":{"line":399,"column":50}}]},"43":{"loc":{"start":{"line":402,"column":22},"end":{"line":406,"column":45}},"type":"cond-expr","locations":[{"start":{"line":403,"column":26},"end":{"line":404,"column":45}},{"start":{"line":405,"column":26},"end":{"line":406,"column":45}}]},"44":{"loc":{"start":{"line":424,"column":24},"end":{"line":428,"column":35}},"type":"cond-expr","locations":[{"start":{"line":425,"column":28},"end":{"line":426,"column":35}},{"start":{"line":427,"column":28},"end":{"line":428,"column":35}}]},"45":{"loc":{"start":{"line":437,"column":22},"end":{"line":441,"column":48}},"type":"cond-expr","locations":[{"start":{"line":438,"column":26},"end":{"line":439,"column":48}},{"start":{"line":440,"column":26},"end":{"line":441,"column":48}}]},"46":{"loc":{"start":{"line":446,"column":26},"end":{"line":450,"column":65}},"type":"cond-expr","locations":[{"start":{"line":447,"column":30},"end":{"line":448,"column":65}},{"start":{"line":449,"column":30},"end":{"line":450,"column":65}}]},"47":{"loc":{"start":{"line":461,"column":22},"end":{"line":465,"column":50}},"type":"cond-expr","locations":[{"start":{"line":462,"column":26},"end":{"line":463,"column":50}},{"start":{"line":464,"column":26},"end":{"line":465,"column":50}}]},"48":{"loc":{"start":{"line":468,"column":22},"end":{"line":472,"column":45}},"type":"cond-expr","locations":[{"start":{"line":469,"column":26},"end":{"line":470,"column":45}},{"start":{"line":471,"column":26},"end":{"line":472,"column":45}}]},"49":{"loc":{"start":{"line":490,"column":24},"end":{"line":494,"column":35}},"type":"cond-expr","locations":[{"start":{"line":491,"column":28},"end":{"line":492,"column":35}},{"start":{"line":493,"column":28},"end":{"line":494,"column":35}}]},"50":{"loc":{"start":{"line":503,"column":22},"end":{"line":507,"column":48}},"type":"cond-expr","locations":[{"start":{"line":504,"column":26},"end":{"line":505,"column":48}},{"start":{"line":506,"column":26},"end":{"line":507,"column":48}}]},"51":{"loc":{"start":{"line":512,"column":26},"end":{"line":516,"column":65}},"type":"cond-expr","locations":[{"start":{"line":513,"column":30},"end":{"line":514,"column":65}},{"start":{"line":515,"column":30},"end":{"line":516,"column":65}}]},"52":{"loc":{"start":{"line":527,"column":22},"end":{"line":531,"column":50}},"type":"cond-expr","locations":[{"start":{"line":528,"column":26},"end":{"line":529,"column":50}},{"start":{"line":530,"column":26},"end":{"line":531,"column":50}}]},"53":{"loc":{"start":{"line":534,"column":22},"end":{"line":538,"column":45}},"type":"cond-expr","locations":[{"start":{"line":535,"column":26},"end":{"line":536,"column":45}},{"start":{"line":537,"column":26},"end":{"line":538,"column":45}}]},"54":{"loc":{"start":{"line":556,"column":24},"end":{"line":560,"column":35}},"type":"cond-expr","locations":[{"start":{"line":557,"column":28},"end":{"line":558,"column":35}},{"start":{"line":559,"column":28},"end":{"line":560,"column":35}}]},"55":{"loc":{"start":{"line":569,"column":22},"end":{"line":573,"column":48}},"type":"cond-expr","locations":[{"start":{"line":570,"column":26},"end":{"line":571,"column":48}},{"start":{"line":572,"column":26},"end":{"line":573,"column":48}}]},"56":{"loc":{"start":{"line":578,"column":26},"end":{"line":582,"column":65}},"type":"cond-expr","locations":[{"start":{"line":579,"column":30},"end":{"line":580,"column":65}},{"start":{"line":581,"column":30},"end":{"line":582,"column":65}}]},"57":{"loc":{"start":{"line":592,"column":9},"end":{"line":621,"column":null}},"type":"cond-expr","locations":[{"start":{"line":593,"column":10},"end":{"line":621,"column":null}},{"start":{"line":621,"column":12},"end":{"line":621,"column":null}}]},"58":{"loc":{"start":{"line":598,"column":14},"end":{"line":608,"column":43}},"type":"cond-expr","locations":[{"start":{"line":599,"column":18},"end":{"line":603,"column":21}},{"start":{"line":604,"column":18},"end":{"line":608,"column":43}}]},"59":{"loc":{"start":{"line":616,"column":14},"end":{"line":618,"column":65}},"type":"cond-expr","locations":[{"start":{"line":617,"column":18},"end":{"line":617,"column":61}},{"start":{"line":618,"column":18},"end":{"line":618,"column":65}}]},"60":{"loc":{"start":{"line":653,"column":25},"end":{"line":653,"column":null}},"type":"binary-expr","locations":[{"start":{"line":653,"column":25},"end":{"line":653,"column":56}},{"start":{"line":653,"column":60},"end":{"line":653,"column":null}}]},"61":{"loc":{"start":{"line":660,"column":16},"end":{"line":660,"column":null}},"type":"cond-expr","locations":[{"start":{"line":660,"column":53},"end":{"line":660,"column":58}},{"start":{"line":660,"column":58},"end":{"line":660,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":21,"26":1,"27":1,"28":0,"29":0,"30":1,"31":0,"32":0,"33":0,"34":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1],"40":[0,1],"41":[0,1],"42":[0,1],"43":[0,1],"44":[0,1],"45":[0,1],"46":[0,1],"47":[0,1],"48":[0,1],"49":[0,1],"50":[0,1],"51":[0,1],"52":[0,1],"53":[0,1],"54":[0,1],"55":[0,1],"56":[0,1],"57":[1,0],"58":[0,1],"59":[0,1],"60":[0,0],"61":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/[id].js","statementMap":{"0":{"start":{"line":17,"column":24},"end":{"line":17,"column":46}},"1":{"start":{"line":136,"column":22},"end":{"line":136,"column":36}},"2":{"start":{"line":150,"column":13},"end":{"line":150,"column":27}},"3":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":28},"end":{"line":10,"column":null}},"13":{"start":{"line":11,"column":31},"end":{"line":11,"column":null}},"14":{"start":{"line":12,"column":34},"end":{"line":12,"column":null}},"15":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"16":{"start":{"line":14,"column":27},"end":{"line":14,"column":null}},"17":{"start":{"line":15,"column":32},"end":{"line":15,"column":null}},"18":{"start":{"line":18,"column":21},"end":{"line":18,"column":null}},"19":{"start":{"line":19,"column":23},"end":{"line":19,"column":null}},"20":{"start":{"line":20,"column":24},"end":{"line":20,"column":null}},"21":{"start":{"line":22,"column":2},"end":{"line":27,"column":null}},"22":{"start":{"line":23,"column":4},"end":{"line":26,"column":null}},"23":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"24":{"start":{"line":25,"column":6},"end":{"line":25,"column":null}},"25":{"start":{"line":138,"column":19},"end":{"line":139,"column":null}},"26":{"start":{"line":142,"column":16},"end":{"line":142,"column":null}},"27":{"start":{"line":143,"column":2},"end":{"line":143,"column":null}},"28":{"start":{"line":143,"column":23},"end":{"line":143,"column":null}},"29":{"start":{"line":144,"column":2},"end":{"line":147,"column":null}},"30":{"start":{"line":150,"column":30},"end":{"line":191,"column":null}},"31":{"start":{"line":152,"column":32},"end":{"line":153,"column":null}},"32":{"start":{"line":155,"column":32},"end":{"line":156,"column":null}},"33":{"start":{"line":159,"column":31},"end":{"line":160,"column":null}},"34":{"start":{"line":162,"column":16},"end":{"line":162,"column":50}},"35":{"start":{"line":164,"column":19},"end":{"line":170,"column":null}},"36":{"start":{"line":165,"column":4},"end":{"line":168,"column":null}},"37":{"start":{"line":172,"column":2},"end":{"line":176,"column":null}},"38":{"start":{"line":173,"column":4},"end":{"line":175,"column":null}},"39":{"start":{"line":178,"column":2},"end":{"line":190,"column":null}}},"fnMap":{"0":{"name":"MscaDashboardArticles","decl":{"start":{"line":17,"column":24},"end":{"line":17,"column":46}},"loc":{"start":{"line":17,"column":63},"end":{"line":134,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":22,"column":12},"end":{"line":22,"column":null}},"loc":{"start":{"line":22,"column":12},"end":{"line":27,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":136,"column":22},"end":{"line":136,"column":36}},"loc":{"start":{"line":136,"column":22},"end":{"line":148,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":143,"column":12},"end":{"line":143,"column":13}},"loc":{"start":{"line":143,"column":23},"end":{"line":143,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":150,"column":30},"end":{"line":150,"column":37}},"loc":{"start":{"line":150,"column":55},"end":{"line":191,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":164,"column":32},"end":{"line":164,"column":33}},"loc":{"start":{"line":164,"column":33},"end":{"line":170,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":4},"end":{"line":26,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":26,"column":null}}]},"1":{"loc":{"start":{"line":24,"column":30},"end":{"line":24,"column":57}},"type":"binary-expr","locations":[{"start":{"line":24,"column":30},"end":{"line":24,"column":51}},{"start":{"line":24,"column":55},"end":{"line":24,"column":57}}]},"2":{"loc":{"start":{"line":34,"column":10},"end":{"line":34,"column":79}},"type":"cond-expr","locations":[{"start":{"line":34,"column":34},"end":{"line":34,"column":55}},{"start":{"line":34,"column":58},"end":{"line":34,"column":79}}]},"3":{"loc":{"start":{"line":49,"column":16},"end":{"line":49,"column":79}},"type":"cond-expr","locations":[{"start":{"line":49,"column":40},"end":{"line":49,"column":58}},{"start":{"line":49,"column":61},"end":{"line":49,"column":79}}]},"4":{"loc":{"start":{"line":59,"column":16},"end":{"line":61,"column":50}},"type":"cond-expr","locations":[{"start":{"line":60,"column":20},"end":{"line":60,"column":50}},{"start":{"line":61,"column":20},"end":{"line":61,"column":50}}]},"5":{"loc":{"start":{"line":64,"column":16},"end":{"line":66,"column":60}},"type":"cond-expr","locations":[{"start":{"line":65,"column":20},"end":{"line":65,"column":60}},{"start":{"line":66,"column":20},"end":{"line":66,"column":60}}]},"6":{"loc":{"start":{"line":92,"column":9},"end":{"line":121,"column":null}},"type":"cond-expr","locations":[{"start":{"line":93,"column":10},"end":{"line":121,"column":null}},{"start":{"line":121,"column":12},"end":{"line":121,"column":null}}]},"7":{"loc":{"start":{"line":98,"column":14},"end":{"line":108,"column":46}},"type":"cond-expr","locations":[{"start":{"line":99,"column":18},"end":{"line":103,"column":21}},{"start":{"line":104,"column":18},"end":{"line":108,"column":46}}]},"8":{"loc":{"start":{"line":116,"column":14},"end":{"line":118,"column":77}},"type":"cond-expr","locations":[{"start":{"line":117,"column":18},"end":{"line":117,"column":73}},{"start":{"line":118,"column":18},"end":{"line":118,"column":77}}]},"9":{"loc":{"start":{"line":166,"column":7},"end":{"line":166,"column":61}},"type":"cond-expr","locations":[{"start":{"line":166,"column":25},"end":{"line":166,"column":42}},{"start":{"line":166,"column":45},"end":{"line":166,"column":61}}]},"10":{"loc":{"start":{"line":172,"column":2},"end":{"line":176,"column":null}},"type":"if","locations":[{"start":{"line":172,"column":2},"end":{"line":176,"column":null}}]},"11":{"loc":{"start":{"line":172,"column":6},"end":{"line":172,"column":35}},"type":"binary-expr","locations":[{"start":{"line":172,"column":6},"end":{"line":172,"column":19}},{"start":{"line":172,"column":19},"end":{"line":172,"column":35}}]},"12":{"loc":{"start":{"line":186,"column":25},"end":{"line":186,"column":null}},"type":"binary-expr","locations":[{"start":{"line":186,"column":25},"end":{"line":186,"column":56}},{"start":{"line":186,"column":60},"end":{"line":186,"column":null}}]},"13":{"loc":{"start":{"line":189,"column":16},"end":{"line":189,"column":null}},"type":"cond-expr","locations":[{"start":{"line":189,"column":53},"end":{"line":189,"column":58}},{"start":{"line":189,"column":58},"end":{"line":189,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0],"11":[0,0],"12":[0,0],"13":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/dashboard/index.js","statementMap":{"0":{"start":{"line":20,"column":24},"end":{"line":20,"column":38}},"1":{"start":{"line":363,"column":13},"end":{"line":363,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":26},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":24},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":18},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":28},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":31},"end":{"line":11,"column":null}},"13":{"start":{"line":13,"column":32},"end":{"line":13,"column":null}},"14":{"start":{"line":14,"column":24},"end":{"line":14,"column":null}},"15":{"start":{"line":15,"column":28},"end":{"line":15,"column":null}},"16":{"start":{"line":16,"column":34},"end":{"line":16,"column":null}},"17":{"start":{"line":17,"column":27},"end":{"line":17,"column":null}},"18":{"start":{"line":18,"column":34},"end":{"line":18,"column":null}},"19":{"start":{"line":21,"column":19},"end":{"line":21,"column":null}},"20":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"21":{"start":{"line":24,"column":29},"end":{"line":29,"column":null}},"22":{"start":{"line":26,"column":6},"end":{"line":29,"column":null}},"23":{"start":{"line":32,"column":2},"end":{"line":37,"column":null}},"24":{"start":{"line":33,"column":4},"end":{"line":36,"column":null}},"25":{"start":{"line":34,"column":6},"end":{"line":34,"column":null}},"26":{"start":{"line":35,"column":6},"end":{"line":35,"column":null}},"27":{"start":{"line":363,"column":30},"end":{"line":389,"column":null}},"28":{"start":{"line":365,"column":29},"end":{"line":366,"column":null}},"29":{"start":{"line":369,"column":31},"end":{"line":370,"column":null}},"30":{"start":{"line":373,"column":32},"end":{"line":374,"column":null}},"31":{"start":{"line":377,"column":2},"end":{"line":388,"column":null}}},"fnMap":{"0":{"name":"MscaDashboard","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":38}},"loc":{"start":{"line":20,"column":43},"end":{"line":361,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":5}},"loc":{"start":{"line":26,"column":6},"end":{"line":29,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":32,"column":12},"end":{"line":32,"column":null}},"loc":{"start":{"line":32,"column":12},"end":{"line":37,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":363,"column":30},"end":{"line":363,"column":37}},"loc":{"start":{"line":363,"column":47},"end":{"line":389,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":6},"end":{"line":29,"column":null}},"type":"binary-expr","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},{"start":{"line":28,"column":6},"end":{"line":28,"column":null}},{"start":{"line":29,"column":6},"end":{"line":29,"column":null}}]},"1":{"loc":{"start":{"line":33,"column":4},"end":{"line":36,"column":null}},"type":"if","locations":[{"start":{"line":33,"column":4},"end":{"line":36,"column":null}}]},"2":{"loc":{"start":{"line":34,"column":30},"end":{"line":34,"column":57}},"type":"binary-expr","locations":[{"start":{"line":34,"column":30},"end":{"line":34,"column":51}},{"start":{"line":34,"column":55},"end":{"line":34,"column":57}}]},"3":{"loc":{"start":{"line":44,"column":10},"end":{"line":44,"column":79}},"type":"cond-expr","locations":[{"start":{"line":44,"column":34},"end":{"line":44,"column":55}},{"start":{"line":44,"column":58},"end":{"line":44,"column":79}}]},"4":{"loc":{"start":{"line":55,"column":13},"end":{"line":57,"column":72}},"type":"cond-expr","locations":[{"start":{"line":56,"column":16},"end":{"line":56,"column":61}},{"start":{"line":57,"column":16},"end":{"line":57,"column":72}}]},"5":{"loc":{"start":{"line":62,"column":14},"end":{"line":64,"column":67}},"type":"cond-expr","locations":[{"start":{"line":63,"column":18},"end":{"line":63,"column":67}},{"start":{"line":64,"column":18},"end":{"line":64,"column":67}}]},"6":{"loc":{"start":{"line":74,"column":16},"end":{"line":76,"column":41}},"type":"cond-expr","locations":[{"start":{"line":75,"column":20},"end":{"line":75,"column":41}},{"start":{"line":76,"column":20},"end":{"line":76,"column":41}}]},"7":{"loc":{"start":{"line":84,"column":14},"end":{"line":86,"column":39}},"type":"cond-expr","locations":[{"start":{"line":85,"column":18},"end":{"line":85,"column":39}},{"start":{"line":86,"column":18},"end":{"line":86,"column":39}}]},"8":{"loc":{"start":{"line":94,"column":14},"end":{"line":94,"column":77}},"type":"cond-expr","locations":[{"start":{"line":94,"column":38},"end":{"line":94,"column":56}},{"start":{"line":94,"column":59},"end":{"line":94,"column":77}}]},"9":{"loc":{"start":{"line":99,"column":21},"end":{"line":99,"column":null}},"type":"cond-expr","locations":[{"start":{"line":99,"column":45},"end":{"line":99,"column":53}},{"start":{"line":99,"column":53},"end":{"line":99,"column":null}}]},"10":{"loc":{"start":{"line":105,"column":14},"end":{"line":107,"column":null}},"type":"cond-expr","locations":[{"start":{"line":106,"column":18},"end":{"line":106,"column":null}},{"start":{"line":107,"column":18},"end":{"line":107,"column":null}}]},"11":{"loc":{"start":{"line":121,"column":14},"end":{"line":123,"column":67}},"type":"cond-expr","locations":[{"start":{"line":122,"column":18},"end":{"line":122,"column":67}},{"start":{"line":123,"column":18},"end":{"line":123,"column":67}}]},"12":{"loc":{"start":{"line":141,"column":16},"end":{"line":143,"column":41}},"type":"cond-expr","locations":[{"start":{"line":142,"column":20},"end":{"line":142,"column":41}},{"start":{"line":143,"column":20},"end":{"line":143,"column":41}}]},"13":{"loc":{"start":{"line":150,"column":14},"end":{"line":150,"column":77}},"type":"cond-expr","locations":[{"start":{"line":150,"column":38},"end":{"line":150,"column":56}},{"start":{"line":150,"column":59},"end":{"line":150,"column":77}}]},"14":{"loc":{"start":{"line":156,"column":14},"end":{"line":158,"column":78}},"type":"cond-expr","locations":[{"start":{"line":157,"column":18},"end":{"line":157,"column":78}},{"start":{"line":158,"column":18},"end":{"line":158,"column":78}}]},"15":{"loc":{"start":{"line":168,"column":14},"end":{"line":168,"column":77}},"type":"cond-expr","locations":[{"start":{"line":168,"column":38},"end":{"line":168,"column":56}},{"start":{"line":168,"column":59},"end":{"line":168,"column":77}}]},"16":{"loc":{"start":{"line":179,"column":16},"end":{"line":181,"column":41}},"type":"cond-expr","locations":[{"start":{"line":180,"column":20},"end":{"line":180,"column":41}},{"start":{"line":181,"column":20},"end":{"line":181,"column":41}}]},"17":{"loc":{"start":{"line":188,"column":14},"end":{"line":188,"column":77}},"type":"cond-expr","locations":[{"start":{"line":188,"column":38},"end":{"line":188,"column":56}},{"start":{"line":188,"column":59},"end":{"line":188,"column":77}}]},"18":{"loc":{"start":{"line":195,"column":14},"end":{"line":197,"column":78}},"type":"cond-expr","locations":[{"start":{"line":196,"column":18},"end":{"line":196,"column":78}},{"start":{"line":197,"column":18},"end":{"line":197,"column":78}}]},"19":{"loc":{"start":{"line":207,"column":14},"end":{"line":207,"column":77}},"type":"cond-expr","locations":[{"start":{"line":207,"column":38},"end":{"line":207,"column":56}},{"start":{"line":207,"column":59},"end":{"line":207,"column":77}}]},"20":{"loc":{"start":{"line":220,"column":20},"end":{"line":222,"column":42}},"type":"cond-expr","locations":[{"start":{"line":221,"column":24},"end":{"line":221,"column":42}},{"start":{"line":222,"column":24},"end":{"line":222,"column":42}}]},"21":{"loc":{"start":{"line":231,"column":24},"end":{"line":233,"column":73}},"type":"cond-expr","locations":[{"start":{"line":232,"column":28},"end":{"line":232,"column":73}},{"start":{"line":233,"column":28},"end":{"line":233,"column":73}}]},"22":{"loc":{"start":{"line":236,"column":24},"end":{"line":238,"column":null}},"type":"binary-expr","locations":[{"start":{"line":236,"column":25},"end":{"line":238,"column":67}},{"start":{"line":238,"column":73},"end":{"line":238,"column":null}}]},"23":{"loc":{"start":{"line":236,"column":25},"end":{"line":238,"column":67}},"type":"cond-expr","locations":[{"start":{"line":237,"column":28},"end":{"line":237,"column":68}},{"start":{"line":238,"column":28},"end":{"line":238,"column":67}}]},"24":{"loc":{"start":{"line":250,"column":17},"end":{"line":253,"column":28}},"type":"cond-expr","locations":[{"start":{"line":251,"column":20},"end":{"line":251,"column":80}},{"start":{"line":252,"column":20},"end":{"line":253,"column":28}}]},"25":{"loc":{"start":{"line":259,"column":20},"end":{"line":261,"column":54}},"type":"cond-expr","locations":[{"start":{"line":260,"column":24},"end":{"line":260,"column":54}},{"start":{"line":261,"column":24},"end":{"line":261,"column":54}}]},"26":{"loc":{"start":{"line":264,"column":20},"end":{"line":266,"column":54}},"type":"cond-expr","locations":[{"start":{"line":265,"column":24},"end":{"line":265,"column":54}},{"start":{"line":266,"column":24},"end":{"line":266,"column":54}}]},"27":{"loc":{"start":{"line":269,"column":20},"end":{"line":271,"column":54}},"type":"cond-expr","locations":[{"start":{"line":270,"column":24},"end":{"line":270,"column":54}},{"start":{"line":271,"column":24},"end":{"line":271,"column":54}}]},"28":{"loc":{"start":{"line":277,"column":20},"end":{"line":281,"column":32}},"type":"cond-expr","locations":[{"start":{"line":278,"column":24},"end":{"line":279,"column":32}},{"start":{"line":280,"column":24},"end":{"line":281,"column":32}}]},"29":{"loc":{"start":{"line":284,"column":20},"end":{"line":288,"column":32}},"type":"cond-expr","locations":[{"start":{"line":285,"column":24},"end":{"line":286,"column":32}},{"start":{"line":287,"column":24},"end":{"line":288,"column":32}}]},"30":{"loc":{"start":{"line":291,"column":20},"end":{"line":293,"column":57}},"type":"cond-expr","locations":[{"start":{"line":292,"column":24},"end":{"line":292,"column":57}},{"start":{"line":293,"column":24},"end":{"line":293,"column":57}}]},"31":{"loc":{"start":{"line":296,"column":20},"end":{"line":298,"column":70}},"type":"cond-expr","locations":[{"start":{"line":297,"column":24},"end":{"line":297,"column":70}},{"start":{"line":298,"column":24},"end":{"line":298,"column":70}}]},"32":{"loc":{"start":{"line":301,"column":20},"end":{"line":305,"column":32}},"type":"cond-expr","locations":[{"start":{"line":302,"column":24},"end":{"line":303,"column":32}},{"start":{"line":304,"column":24},"end":{"line":305,"column":32}}]},"33":{"loc":{"start":{"line":319,"column":9},"end":{"line":348,"column":null}},"type":"cond-expr","locations":[{"start":{"line":320,"column":10},"end":{"line":348,"column":null}},{"start":{"line":348,"column":12},"end":{"line":348,"column":null}}]},"34":{"loc":{"start":{"line":325,"column":14},"end":{"line":335,"column":43}},"type":"cond-expr","locations":[{"start":{"line":326,"column":18},"end":{"line":330,"column":21}},{"start":{"line":331,"column":18},"end":{"line":335,"column":43}}]},"35":{"loc":{"start":{"line":343,"column":14},"end":{"line":345,"column":65}},"type":"cond-expr","locations":[{"start":{"line":344,"column":18},"end":{"line":344,"column":61}},{"start":{"line":345,"column":18},"end":{"line":345,"column":65}}]},"36":{"loc":{"start":{"line":380,"column":25},"end":{"line":380,"column":null}},"type":"binary-expr","locations":[{"start":{"line":380,"column":25},"end":{"line":380,"column":56}},{"start":{"line":380,"column":60},"end":{"line":380,"column":null}}]},"37":{"loc":{"start":{"line":387,"column":16},"end":{"line":387,"column":null}},"type":"cond-expr","locations":[{"start":{"line":387,"column":53},"end":{"line":387,"column":58}},{"start":{"line":387,"column":58},"end":{"line":387,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":21,"23":1,"24":1,"25":0,"26":0,"27":1,"28":0,"29":0,"30":0,"31":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[1,1],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[1,0],"34":[0,1],"35":[0,1],"36":[0,0],"37":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/digital-standards-playbook/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/digital-standards-playbook/[id].js","statementMap":{"0":{"start":{"line":18,"column":24},"end":{"line":18,"column":49}},"1":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"2":{"start":{"line":153,"column":13},"end":{"line":153,"column":27}},"3":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":21},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":23},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":36},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":32},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":27},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":24},"end":{"line":10,"column":null}},"13":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"14":{"start":{"line":12,"column":31},"end":{"line":12,"column":null}},"15":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"16":{"start":{"line":14,"column":34},"end":{"line":14,"column":null}},"17":{"start":{"line":15,"column":27},"end":{"line":15,"column":null}},"18":{"start":{"line":16,"column":32},"end":{"line":16,"column":null}},"19":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"20":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"21":{"start":{"line":21,"column":24},"end":{"line":21,"column":null}},"22":{"start":{"line":22,"column":23},"end":{"line":22,"column":null}},"23":{"start":{"line":24,"column":2},"end":{"line":29,"column":null}},"24":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"25":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"26":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"27":{"start":{"line":140,"column":19},"end":{"line":141,"column":null}},"28":{"start":{"line":144,"column":16},"end":{"line":144,"column":null}},"29":{"start":{"line":146,"column":2},"end":{"line":146,"column":null}},"30":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}},"31":{"start":{"line":147,"column":2},"end":{"line":150,"column":null}},"32":{"start":{"line":153,"column":30},"end":{"line":194,"column":null}},"33":{"start":{"line":155,"column":32},"end":{"line":156,"column":null}},"34":{"start":{"line":158,"column":32},"end":{"line":159,"column":null}},"35":{"start":{"line":162,"column":31},"end":{"line":163,"column":null}},"36":{"start":{"line":165,"column":16},"end":{"line":165,"column":50}},"37":{"start":{"line":167,"column":19},"end":{"line":173,"column":null}},"38":{"start":{"line":168,"column":4},"end":{"line":171,"column":null}},"39":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"40":{"start":{"line":176,"column":4},"end":{"line":178,"column":null}},"41":{"start":{"line":181,"column":2},"end":{"line":193,"column":null}}},"fnMap":{"0":{"name":"DigitalStandardsArticles","decl":{"start":{"line":18,"column":24},"end":{"line":18,"column":49}},"loc":{"start":{"line":18,"column":66},"end":{"line":136,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":12},"end":{"line":24,"column":null}},"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"loc":{"start":{"line":138,"column":22},"end":{"line":151,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":146,"column":12},"end":{"line":146,"column":13}},"loc":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":153,"column":30},"end":{"line":153,"column":37}},"loc":{"start":{"line":153,"column":55},"end":{"line":194,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":167,"column":32},"end":{"line":167,"column":33}},"loc":{"start":{"line":167,"column":33},"end":{"line":173,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":28,"column":null}}]},"1":{"loc":{"start":{"line":26,"column":30},"end":{"line":26,"column":57}},"type":"binary-expr","locations":[{"start":{"line":26,"column":30},"end":{"line":26,"column":51}},{"start":{"line":26,"column":55},"end":{"line":26,"column":57}}]},"2":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":79}},"type":"cond-expr","locations":[{"start":{"line":36,"column":34},"end":{"line":36,"column":55}},{"start":{"line":36,"column":58},"end":{"line":36,"column":79}}]},"3":{"loc":{"start":{"line":51,"column":16},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":40},"end":{"line":51,"column":58}},{"start":{"line":51,"column":61},"end":{"line":51,"column":79}}]},"4":{"loc":{"start":{"line":61,"column":16},"end":{"line":63,"column":50}},"type":"cond-expr","locations":[{"start":{"line":62,"column":20},"end":{"line":62,"column":50}},{"start":{"line":63,"column":20},"end":{"line":63,"column":50}}]},"5":{"loc":{"start":{"line":66,"column":16},"end":{"line":68,"column":60}},"type":"cond-expr","locations":[{"start":{"line":67,"column":20},"end":{"line":67,"column":60}},{"start":{"line":68,"column":20},"end":{"line":68,"column":60}}]},"6":{"loc":{"start":{"line":94,"column":9},"end":{"line":123,"column":null}},"type":"cond-expr","locations":[{"start":{"line":95,"column":10},"end":{"line":123,"column":null}},{"start":{"line":123,"column":12},"end":{"line":123,"column":null}}]},"7":{"loc":{"start":{"line":100,"column":14},"end":{"line":110,"column":46}},"type":"cond-expr","locations":[{"start":{"line":101,"column":18},"end":{"line":105,"column":21}},{"start":{"line":106,"column":18},"end":{"line":110,"column":46}}]},"8":{"loc":{"start":{"line":118,"column":14},"end":{"line":120,"column":77}},"type":"cond-expr","locations":[{"start":{"line":119,"column":18},"end":{"line":119,"column":73}},{"start":{"line":120,"column":18},"end":{"line":120,"column":77}}]},"9":{"loc":{"start":{"line":169,"column":7},"end":{"line":169,"column":61}},"type":"cond-expr","locations":[{"start":{"line":169,"column":25},"end":{"line":169,"column":42}},{"start":{"line":169,"column":45},"end":{"line":169,"column":61}}]},"10":{"loc":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"type":"if","locations":[{"start":{"line":175,"column":2},"end":{"line":179,"column":null}}]},"11":{"loc":{"start":{"line":175,"column":6},"end":{"line":175,"column":35}},"type":"binary-expr","locations":[{"start":{"line":175,"column":6},"end":{"line":175,"column":19}},{"start":{"line":175,"column":19},"end":{"line":175,"column":35}}]},"12":{"loc":{"start":{"line":189,"column":25},"end":{"line":189,"column":null}},"type":"binary-expr","locations":[{"start":{"line":189,"column":25},"end":{"line":189,"column":56}},{"start":{"line":189,"column":60},"end":{"line":189,"column":null}}]},"13":{"loc":{"start":{"line":192,"column":16},"end":{"line":192,"column":null}},"type":"cond-expr","locations":[{"start":{"line":192,"column":53},"end":{"line":192,"column":58}},{"start":{"line":192,"column":58},"end":{"line":192,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0],"11":[0,0],"12":[0,0],"13":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/digital-standards-playbook/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/digital-standards-playbook/index.js","statementMap":{"0":{"start":{"line":20,"column":24},"end":{"line":20,"column":53}},"1":{"start":{"line":442,"column":13},"end":{"line":442,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":17},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":29},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":18},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":28},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":31},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":32},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":24},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":28},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":34},"end":{"line":17,"column":null}},"19":{"start":{"line":18,"column":34},"end":{"line":18,"column":null}},"20":{"start":{"line":21,"column":21},"end":{"line":21,"column":null}},"21":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"22":{"start":{"line":23,"column":24},"end":{"line":23,"column":null}},"23":{"start":{"line":25,"column":29},"end":{"line":30,"column":null}},"24":{"start":{"line":27,"column":6},"end":{"line":30,"column":null}},"25":{"start":{"line":33,"column":2},"end":{"line":38,"column":null}},"26":{"start":{"line":34,"column":4},"end":{"line":37,"column":null}},"27":{"start":{"line":35,"column":6},"end":{"line":35,"column":null}},"28":{"start":{"line":36,"column":6},"end":{"line":36,"column":null}},"29":{"start":{"line":442,"column":30},"end":{"line":468,"column":null}},"30":{"start":{"line":444,"column":29},"end":{"line":445,"column":null}},"31":{"start":{"line":448,"column":31},"end":{"line":449,"column":null}},"32":{"start":{"line":452,"column":32},"end":{"line":453,"column":null}},"33":{"start":{"line":456,"column":2},"end":{"line":467,"column":null}}},"fnMap":{"0":{"name":"DigitalStandardsPlaybookPage","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":53}},"loc":{"start":{"line":20,"column":58},"end":{"line":440,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":4},"end":{"line":26,"column":5}},"loc":{"start":{"line":27,"column":6},"end":{"line":30,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":33,"column":12},"end":{"line":33,"column":null}},"loc":{"start":{"line":33,"column":12},"end":{"line":38,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":442,"column":30},"end":{"line":442,"column":37}},"loc":{"start":{"line":442,"column":47},"end":{"line":468,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":6},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},{"start":{"line":28,"column":6},"end":{"line":28,"column":null}},{"start":{"line":29,"column":6},"end":{"line":29,"column":null}},{"start":{"line":30,"column":6},"end":{"line":30,"column":null}}]},"1":{"loc":{"start":{"line":34,"column":4},"end":{"line":37,"column":null}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":37,"column":null}}]},"2":{"loc":{"start":{"line":35,"column":30},"end":{"line":35,"column":57}},"type":"binary-expr","locations":[{"start":{"line":35,"column":30},"end":{"line":35,"column":51}},{"start":{"line":35,"column":55},"end":{"line":35,"column":57}}]},"3":{"loc":{"start":{"line":45,"column":10},"end":{"line":45,"column":79}},"type":"cond-expr","locations":[{"start":{"line":45,"column":34},"end":{"line":45,"column":55}},{"start":{"line":45,"column":58},"end":{"line":45,"column":79}}]},"4":{"loc":{"start":{"line":47,"column":30},"end":{"line":47,"column":null}},"type":"binary-expr","locations":[{"start":{"line":47,"column":30},"end":{"line":47,"column":62}},{"start":{"line":47,"column":66},"end":{"line":47,"column":null}}]},"5":{"loc":{"start":{"line":56,"column":13},"end":{"line":58,"column":72}},"type":"cond-expr","locations":[{"start":{"line":57,"column":16},"end":{"line":57,"column":61}},{"start":{"line":58,"column":16},"end":{"line":58,"column":72}}]},"6":{"loc":{"start":{"line":63,"column":14},"end":{"line":65,"column":67}},"type":"cond-expr","locations":[{"start":{"line":64,"column":18},"end":{"line":64,"column":67}},{"start":{"line":65,"column":18},"end":{"line":65,"column":67}}]},"7":{"loc":{"start":{"line":75,"column":16},"end":{"line":77,"column":41}},"type":"cond-expr","locations":[{"start":{"line":76,"column":20},"end":{"line":76,"column":41}},{"start":{"line":77,"column":20},"end":{"line":77,"column":41}}]},"8":{"loc":{"start":{"line":85,"column":14},"end":{"line":87,"column":39}},"type":"cond-expr","locations":[{"start":{"line":86,"column":18},"end":{"line":86,"column":39}},{"start":{"line":87,"column":18},"end":{"line":87,"column":39}}]},"9":{"loc":{"start":{"line":95,"column":14},"end":{"line":95,"column":77}},"type":"cond-expr","locations":[{"start":{"line":95,"column":38},"end":{"line":95,"column":56}},{"start":{"line":95,"column":59},"end":{"line":95,"column":77}}]},"10":{"loc":{"start":{"line":100,"column":21},"end":{"line":100,"column":null}},"type":"cond-expr","locations":[{"start":{"line":100,"column":45},"end":{"line":100,"column":53}},{"start":{"line":100,"column":53},"end":{"line":100,"column":null}}]},"11":{"loc":{"start":{"line":106,"column":14},"end":{"line":108,"column":null}},"type":"cond-expr","locations":[{"start":{"line":107,"column":18},"end":{"line":107,"column":null}},{"start":{"line":108,"column":18},"end":{"line":108,"column":null}}]},"12":{"loc":{"start":{"line":122,"column":14},"end":{"line":124,"column":67}},"type":"cond-expr","locations":[{"start":{"line":123,"column":18},"end":{"line":123,"column":67}},{"start":{"line":124,"column":18},"end":{"line":124,"column":67}}]},"13":{"loc":{"start":{"line":142,"column":16},"end":{"line":144,"column":41}},"type":"cond-expr","locations":[{"start":{"line":143,"column":20},"end":{"line":143,"column":41}},{"start":{"line":144,"column":20},"end":{"line":144,"column":41}}]},"14":{"loc":{"start":{"line":151,"column":14},"end":{"line":151,"column":77}},"type":"cond-expr","locations":[{"start":{"line":151,"column":38},"end":{"line":151,"column":56}},{"start":{"line":151,"column":59},"end":{"line":151,"column":77}}]},"15":{"loc":{"start":{"line":157,"column":14},"end":{"line":159,"column":78}},"type":"cond-expr","locations":[{"start":{"line":158,"column":18},"end":{"line":158,"column":78}},{"start":{"line":159,"column":18},"end":{"line":159,"column":78}}]},"16":{"loc":{"start":{"line":169,"column":14},"end":{"line":169,"column":77}},"type":"cond-expr","locations":[{"start":{"line":169,"column":38},"end":{"line":169,"column":56}},{"start":{"line":169,"column":59},"end":{"line":169,"column":77}}]},"17":{"loc":{"start":{"line":180,"column":16},"end":{"line":182,"column":41}},"type":"cond-expr","locations":[{"start":{"line":181,"column":20},"end":{"line":181,"column":41}},{"start":{"line":182,"column":20},"end":{"line":182,"column":41}}]},"18":{"loc":{"start":{"line":189,"column":14},"end":{"line":189,"column":77}},"type":"cond-expr","locations":[{"start":{"line":189,"column":38},"end":{"line":189,"column":56}},{"start":{"line":189,"column":59},"end":{"line":189,"column":77}}]},"19":{"loc":{"start":{"line":196,"column":14},"end":{"line":198,"column":78}},"type":"cond-expr","locations":[{"start":{"line":197,"column":18},"end":{"line":197,"column":78}},{"start":{"line":198,"column":18},"end":{"line":198,"column":78}}]},"20":{"loc":{"start":{"line":208,"column":14},"end":{"line":208,"column":77}},"type":"cond-expr","locations":[{"start":{"line":208,"column":38},"end":{"line":208,"column":56}},{"start":{"line":208,"column":59},"end":{"line":208,"column":77}}]},"21":{"loc":{"start":{"line":221,"column":20},"end":{"line":223,"column":42}},"type":"cond-expr","locations":[{"start":{"line":222,"column":24},"end":{"line":222,"column":42}},{"start":{"line":223,"column":24},"end":{"line":223,"column":42}}]},"22":{"loc":{"start":{"line":232,"column":24},"end":{"line":234,"column":73}},"type":"cond-expr","locations":[{"start":{"line":233,"column":28},"end":{"line":233,"column":73}},{"start":{"line":234,"column":28},"end":{"line":234,"column":73}}]},"23":{"loc":{"start":{"line":237,"column":24},"end":{"line":239,"column":null}},"type":"binary-expr","locations":[{"start":{"line":237,"column":25},"end":{"line":239,"column":67}},{"start":{"line":239,"column":73},"end":{"line":239,"column":null}}]},"24":{"loc":{"start":{"line":237,"column":25},"end":{"line":239,"column":67}},"type":"cond-expr","locations":[{"start":{"line":238,"column":28},"end":{"line":238,"column":68}},{"start":{"line":239,"column":28},"end":{"line":239,"column":67}}]},"25":{"loc":{"start":{"line":251,"column":17},"end":{"line":254,"column":28}},"type":"cond-expr","locations":[{"start":{"line":252,"column":20},"end":{"line":252,"column":80}},{"start":{"line":253,"column":20},"end":{"line":254,"column":28}}]},"26":{"loc":{"start":{"line":260,"column":20},"end":{"line":262,"column":54}},"type":"cond-expr","locations":[{"start":{"line":261,"column":24},"end":{"line":261,"column":54}},{"start":{"line":262,"column":24},"end":{"line":262,"column":54}}]},"27":{"loc":{"start":{"line":265,"column":20},"end":{"line":267,"column":54}},"type":"cond-expr","locations":[{"start":{"line":266,"column":24},"end":{"line":266,"column":54}},{"start":{"line":267,"column":24},"end":{"line":267,"column":54}}]},"28":{"loc":{"start":{"line":270,"column":20},"end":{"line":272,"column":54}},"type":"cond-expr","locations":[{"start":{"line":271,"column":24},"end":{"line":271,"column":54}},{"start":{"line":272,"column":24},"end":{"line":272,"column":54}}]},"29":{"loc":{"start":{"line":278,"column":20},"end":{"line":282,"column":32}},"type":"cond-expr","locations":[{"start":{"line":279,"column":24},"end":{"line":280,"column":32}},{"start":{"line":281,"column":24},"end":{"line":282,"column":32}}]},"30":{"loc":{"start":{"line":285,"column":20},"end":{"line":289,"column":32}},"type":"cond-expr","locations":[{"start":{"line":286,"column":24},"end":{"line":287,"column":32}},{"start":{"line":288,"column":24},"end":{"line":289,"column":32}}]},"31":{"loc":{"start":{"line":292,"column":20},"end":{"line":294,"column":57}},"type":"cond-expr","locations":[{"start":{"line":293,"column":24},"end":{"line":293,"column":57}},{"start":{"line":294,"column":24},"end":{"line":294,"column":57}}]},"32":{"loc":{"start":{"line":297,"column":20},"end":{"line":299,"column":70}},"type":"cond-expr","locations":[{"start":{"line":298,"column":24},"end":{"line":298,"column":70}},{"start":{"line":299,"column":24},"end":{"line":299,"column":70}}]},"33":{"loc":{"start":{"line":302,"column":20},"end":{"line":306,"column":32}},"type":"cond-expr","locations":[{"start":{"line":303,"column":24},"end":{"line":304,"column":32}},{"start":{"line":305,"column":24},"end":{"line":306,"column":32}}]},"34":{"loc":{"start":{"line":315,"column":17},"end":{"line":318,"column":28}},"type":"cond-expr","locations":[{"start":{"line":316,"column":20},"end":{"line":316,"column":80}},{"start":{"line":317,"column":20},"end":{"line":318,"column":28}}]},"35":{"loc":{"start":{"line":321,"column":17},"end":{"line":324,"column":28}},"type":"cond-expr","locations":[{"start":{"line":322,"column":20},"end":{"line":322,"column":80}},{"start":{"line":323,"column":20},"end":{"line":324,"column":28}}]},"36":{"loc":{"start":{"line":327,"column":17},"end":{"line":330,"column":28}},"type":"cond-expr","locations":[{"start":{"line":328,"column":20},"end":{"line":328,"column":80}},{"start":{"line":329,"column":20},"end":{"line":330,"column":28}}]},"37":{"loc":{"start":{"line":334,"column":17},"end":{"line":337,"column":28}},"type":"cond-expr","locations":[{"start":{"line":335,"column":20},"end":{"line":335,"column":80}},{"start":{"line":336,"column":20},"end":{"line":337,"column":28}}]},"38":{"loc":{"start":{"line":340,"column":17},"end":{"line":343,"column":28}},"type":"cond-expr","locations":[{"start":{"line":341,"column":20},"end":{"line":341,"column":80}},{"start":{"line":342,"column":20},"end":{"line":343,"column":28}}]},"39":{"loc":{"start":{"line":351,"column":18},"end":{"line":353,"column":64}},"type":"cond-expr","locations":[{"start":{"line":352,"column":22},"end":{"line":352,"column":64}},{"start":{"line":353,"column":22},"end":{"line":353,"column":64}}]},"40":{"loc":{"start":{"line":356,"column":18},"end":{"line":358,"column":55}},"type":"cond-expr","locations":[{"start":{"line":357,"column":22},"end":{"line":357,"column":55}},{"start":{"line":358,"column":22},"end":{"line":358,"column":55}}]},"41":{"loc":{"start":{"line":364,"column":17},"end":{"line":367,"column":28}},"type":"cond-expr","locations":[{"start":{"line":365,"column":20},"end":{"line":365,"column":80}},{"start":{"line":366,"column":20},"end":{"line":367,"column":28}}]},"42":{"loc":{"start":{"line":371,"column":20},"end":{"line":375,"column":36}},"type":"cond-expr","locations":[{"start":{"line":372,"column":24},"end":{"line":373,"column":36}},{"start":{"line":374,"column":24},"end":{"line":375,"column":36}}]},"43":{"loc":{"start":{"line":378,"column":19},"end":{"line":382,"column":30}},"type":"cond-expr","locations":[{"start":{"line":379,"column":22},"end":{"line":380,"column":30}},{"start":{"line":381,"column":22},"end":{"line":382,"column":30}}]},"44":{"loc":{"start":{"line":384,"column":17},"end":{"line":387,"column":28}},"type":"cond-expr","locations":[{"start":{"line":385,"column":20},"end":{"line":385,"column":80}},{"start":{"line":386,"column":20},"end":{"line":387,"column":28}}]},"45":{"loc":{"start":{"line":390,"column":17},"end":{"line":393,"column":28}},"type":"cond-expr","locations":[{"start":{"line":391,"column":20},"end":{"line":391,"column":80}},{"start":{"line":392,"column":20},"end":{"line":393,"column":28}}]},"46":{"loc":{"start":{"line":398,"column":9},"end":{"line":427,"column":null}},"type":"cond-expr","locations":[{"start":{"line":399,"column":10},"end":{"line":427,"column":null}},{"start":{"line":427,"column":12},"end":{"line":427,"column":null}}]},"47":{"loc":{"start":{"line":404,"column":14},"end":{"line":414,"column":43}},"type":"cond-expr","locations":[{"start":{"line":405,"column":18},"end":{"line":409,"column":21}},{"start":{"line":410,"column":18},"end":{"line":414,"column":43}}]},"48":{"loc":{"start":{"line":422,"column":14},"end":{"line":424,"column":65}},"type":"cond-expr","locations":[{"start":{"line":423,"column":18},"end":{"line":423,"column":61}},{"start":{"line":424,"column":18},"end":{"line":424,"column":65}}]},"49":{"loc":{"start":{"line":459,"column":25},"end":{"line":459,"column":null}},"type":"binary-expr","locations":[{"start":{"line":459,"column":25},"end":{"line":459,"column":56}},{"start":{"line":459,"column":60},"end":{"line":459,"column":null}}]},"50":{"loc":{"start":{"line":466,"column":16},"end":{"line":466,"column":null}},"type":"cond-expr","locations":[{"start":{"line":466,"column":53},"end":{"line":466,"column":58}},{"start":{"line":466,"column":58},"end":{"line":466,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":21,"25":1,"26":1,"27":0,"28":0,"29":1,"30":0,"31":0,"32":0,"33":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[1,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[0,1],"23":[1,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1],"40":[0,1],"41":[0,1],"42":[0,1],"43":[0,1],"44":[0,1],"45":[0,1],"46":[1,0],"47":[0,1],"48":[0,1],"49":[0,0],"50":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/making-easier-get-benefits/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/making-easier-get-benefits/[id].js","statementMap":{"0":{"start":{"line":18,"column":24},"end":{"line":18,"column":58}},"1":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"2":{"start":{"line":153,"column":13},"end":{"line":153,"column":27}},"3":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":21},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":23},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":36},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":32},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":27},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":24},"end":{"line":10,"column":null}},"13":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"14":{"start":{"line":12,"column":31},"end":{"line":12,"column":null}},"15":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"16":{"start":{"line":14,"column":34},"end":{"line":14,"column":null}},"17":{"start":{"line":15,"column":27},"end":{"line":15,"column":null}},"18":{"start":{"line":16,"column":32},"end":{"line":16,"column":null}},"19":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"20":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"21":{"start":{"line":21,"column":24},"end":{"line":21,"column":null}},"22":{"start":{"line":22,"column":23},"end":{"line":22,"column":null}},"23":{"start":{"line":24,"column":2},"end":{"line":29,"column":null}},"24":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"25":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"26":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"27":{"start":{"line":140,"column":19},"end":{"line":141,"column":null}},"28":{"start":{"line":144,"column":16},"end":{"line":144,"column":null}},"29":{"start":{"line":146,"column":2},"end":{"line":146,"column":null}},"30":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}},"31":{"start":{"line":147,"column":2},"end":{"line":150,"column":null}},"32":{"start":{"line":153,"column":30},"end":{"line":194,"column":null}},"33":{"start":{"line":155,"column":32},"end":{"line":156,"column":null}},"34":{"start":{"line":158,"column":32},"end":{"line":159,"column":null}},"35":{"start":{"line":162,"column":31},"end":{"line":163,"column":null}},"36":{"start":{"line":165,"column":16},"end":{"line":165,"column":50}},"37":{"start":{"line":167,"column":19},"end":{"line":173,"column":null}},"38":{"start":{"line":168,"column":4},"end":{"line":171,"column":null}},"39":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"40":{"start":{"line":176,"column":4},"end":{"line":178,"column":null}},"41":{"start":{"line":181,"column":2},"end":{"line":193,"column":null}}},"fnMap":{"0":{"name":"IntegratedChannelStrategyArticles","decl":{"start":{"line":18,"column":24},"end":{"line":18,"column":58}},"loc":{"start":{"line":18,"column":75},"end":{"line":136,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":12},"end":{"line":24,"column":null}},"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"loc":{"start":{"line":138,"column":22},"end":{"line":151,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":146,"column":12},"end":{"line":146,"column":13}},"loc":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":153,"column":30},"end":{"line":153,"column":37}},"loc":{"start":{"line":153,"column":55},"end":{"line":194,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":167,"column":32},"end":{"line":167,"column":33}},"loc":{"start":{"line":167,"column":33},"end":{"line":173,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":28,"column":null}}]},"1":{"loc":{"start":{"line":26,"column":30},"end":{"line":26,"column":57}},"type":"binary-expr","locations":[{"start":{"line":26,"column":30},"end":{"line":26,"column":51}},{"start":{"line":26,"column":55},"end":{"line":26,"column":57}}]},"2":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":79}},"type":"cond-expr","locations":[{"start":{"line":36,"column":34},"end":{"line":36,"column":55}},{"start":{"line":36,"column":58},"end":{"line":36,"column":79}}]},"3":{"loc":{"start":{"line":51,"column":16},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":40},"end":{"line":51,"column":58}},{"start":{"line":51,"column":61},"end":{"line":51,"column":79}}]},"4":{"loc":{"start":{"line":61,"column":16},"end":{"line":63,"column":50}},"type":"cond-expr","locations":[{"start":{"line":62,"column":20},"end":{"line":62,"column":50}},{"start":{"line":63,"column":20},"end":{"line":63,"column":50}}]},"5":{"loc":{"start":{"line":66,"column":16},"end":{"line":68,"column":60}},"type":"cond-expr","locations":[{"start":{"line":67,"column":20},"end":{"line":67,"column":60}},{"start":{"line":68,"column":20},"end":{"line":68,"column":60}}]},"6":{"loc":{"start":{"line":94,"column":9},"end":{"line":123,"column":null}},"type":"cond-expr","locations":[{"start":{"line":95,"column":10},"end":{"line":123,"column":null}},{"start":{"line":123,"column":12},"end":{"line":123,"column":null}}]},"7":{"loc":{"start":{"line":100,"column":14},"end":{"line":110,"column":46}},"type":"cond-expr","locations":[{"start":{"line":101,"column":18},"end":{"line":105,"column":21}},{"start":{"line":106,"column":18},"end":{"line":110,"column":46}}]},"8":{"loc":{"start":{"line":118,"column":14},"end":{"line":120,"column":77}},"type":"cond-expr","locations":[{"start":{"line":119,"column":18},"end":{"line":119,"column":73}},{"start":{"line":120,"column":18},"end":{"line":120,"column":77}}]},"9":{"loc":{"start":{"line":169,"column":7},"end":{"line":169,"column":61}},"type":"cond-expr","locations":[{"start":{"line":169,"column":25},"end":{"line":169,"column":42}},{"start":{"line":169,"column":45},"end":{"line":169,"column":61}}]},"10":{"loc":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"type":"if","locations":[{"start":{"line":175,"column":2},"end":{"line":179,"column":null}}]},"11":{"loc":{"start":{"line":175,"column":6},"end":{"line":175,"column":35}},"type":"binary-expr","locations":[{"start":{"line":175,"column":6},"end":{"line":175,"column":19}},{"start":{"line":175,"column":19},"end":{"line":175,"column":35}}]},"12":{"loc":{"start":{"line":189,"column":25},"end":{"line":189,"column":null}},"type":"binary-expr","locations":[{"start":{"line":189,"column":25},"end":{"line":189,"column":56}},{"start":{"line":189,"column":60},"end":{"line":189,"column":null}}]},"13":{"loc":{"start":{"line":192,"column":16},"end":{"line":192,"column":null}},"type":"cond-expr","locations":[{"start":{"line":192,"column":53},"end":{"line":192,"column":58}},{"start":{"line":192,"column":58},"end":{"line":192,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0],"11":[0,0],"12":[0,0],"13":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/making-easier-get-benefits/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/making-easier-get-benefits/index.js","statementMap":{"0":{"start":{"line":20,"column":24},"end":{"line":20,"column":54}},"1":{"start":{"line":371,"column":13},"end":{"line":371,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":17},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":23},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":18},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":28},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":31},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":32},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":24},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":28},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":34},"end":{"line":17,"column":null}},"19":{"start":{"line":18,"column":34},"end":{"line":18,"column":null}},"20":{"start":{"line":21,"column":21},"end":{"line":21,"column":null}},"21":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"22":{"start":{"line":23,"column":24},"end":{"line":23,"column":null}},"23":{"start":{"line":25,"column":31},"end":{"line":31,"column":null}},"24":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}},"25":{"start":{"line":35,"column":2},"end":{"line":40,"column":null}},"26":{"start":{"line":36,"column":4},"end":{"line":39,"column":null}},"27":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"28":{"start":{"line":38,"column":6},"end":{"line":38,"column":null}},"29":{"start":{"line":371,"column":30},"end":{"line":397,"column":null}},"30":{"start":{"line":373,"column":29},"end":{"line":374,"column":null}},"31":{"start":{"line":377,"column":31},"end":{"line":378,"column":null}},"32":{"start":{"line":381,"column":32},"end":{"line":382,"column":null}},"33":{"start":{"line":385,"column":2},"end":{"line":396,"column":null}}},"fnMap":{"0":{"name":"IntegratedChannelStrategyPage","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":54}},"loc":{"start":{"line":20,"column":59},"end":{"line":369,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":6},"end":{"line":27,"column":7}},"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":35,"column":12},"end":{"line":35,"column":null}},"loc":{"start":{"line":35,"column":12},"end":{"line":40,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":371,"column":30},"end":{"line":371,"column":37}},"loc":{"start":{"line":371,"column":47},"end":{"line":397,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":8},"end":{"line":31,"column":null}},"type":"binary-expr","locations":[{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":30,"column":null}},{"start":{"line":31,"column":8},"end":{"line":31,"column":null}}]},"1":{"loc":{"start":{"line":36,"column":4},"end":{"line":39,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":39,"column":null}}]},"2":{"loc":{"start":{"line":37,"column":30},"end":{"line":37,"column":57}},"type":"binary-expr","locations":[{"start":{"line":37,"column":30},"end":{"line":37,"column":51}},{"start":{"line":37,"column":55},"end":{"line":37,"column":57}}]},"3":{"loc":{"start":{"line":47,"column":10},"end":{"line":47,"column":79}},"type":"cond-expr","locations":[{"start":{"line":47,"column":34},"end":{"line":47,"column":55}},{"start":{"line":47,"column":58},"end":{"line":47,"column":79}}]},"4":{"loc":{"start":{"line":58,"column":13},"end":{"line":60,"column":72}},"type":"cond-expr","locations":[{"start":{"line":59,"column":16},"end":{"line":59,"column":61}},{"start":{"line":60,"column":16},"end":{"line":60,"column":72}}]},"5":{"loc":{"start":{"line":65,"column":14},"end":{"line":67,"column":67}},"type":"cond-expr","locations":[{"start":{"line":66,"column":18},"end":{"line":66,"column":67}},{"start":{"line":67,"column":18},"end":{"line":67,"column":67}}]},"6":{"loc":{"start":{"line":77,"column":16},"end":{"line":79,"column":41}},"type":"cond-expr","locations":[{"start":{"line":78,"column":20},"end":{"line":78,"column":41}},{"start":{"line":79,"column":20},"end":{"line":79,"column":41}}]},"7":{"loc":{"start":{"line":87,"column":14},"end":{"line":89,"column":39}},"type":"cond-expr","locations":[{"start":{"line":88,"column":18},"end":{"line":88,"column":39}},{"start":{"line":89,"column":18},"end":{"line":89,"column":39}}]},"8":{"loc":{"start":{"line":97,"column":14},"end":{"line":97,"column":77}},"type":"cond-expr","locations":[{"start":{"line":97,"column":38},"end":{"line":97,"column":56}},{"start":{"line":97,"column":59},"end":{"line":97,"column":77}}]},"9":{"loc":{"start":{"line":102,"column":21},"end":{"line":102,"column":null}},"type":"cond-expr","locations":[{"start":{"line":102,"column":45},"end":{"line":102,"column":53}},{"start":{"line":102,"column":53},"end":{"line":102,"column":null}}]},"10":{"loc":{"start":{"line":108,"column":14},"end":{"line":110,"column":null}},"type":"cond-expr","locations":[{"start":{"line":109,"column":18},"end":{"line":109,"column":null}},{"start":{"line":110,"column":18},"end":{"line":110,"column":null}}]},"11":{"loc":{"start":{"line":124,"column":14},"end":{"line":126,"column":67}},"type":"cond-expr","locations":[{"start":{"line":125,"column":18},"end":{"line":125,"column":67}},{"start":{"line":126,"column":18},"end":{"line":126,"column":67}}]},"12":{"loc":{"start":{"line":144,"column":16},"end":{"line":146,"column":41}},"type":"cond-expr","locations":[{"start":{"line":145,"column":20},"end":{"line":145,"column":41}},{"start":{"line":146,"column":20},"end":{"line":146,"column":41}}]},"13":{"loc":{"start":{"line":153,"column":14},"end":{"line":153,"column":77}},"type":"cond-expr","locations":[{"start":{"line":153,"column":38},"end":{"line":153,"column":56}},{"start":{"line":153,"column":59},"end":{"line":153,"column":77}}]},"14":{"loc":{"start":{"line":159,"column":14},"end":{"line":161,"column":78}},"type":"cond-expr","locations":[{"start":{"line":160,"column":18},"end":{"line":160,"column":78}},{"start":{"line":161,"column":18},"end":{"line":161,"column":78}}]},"15":{"loc":{"start":{"line":171,"column":14},"end":{"line":171,"column":77}},"type":"cond-expr","locations":[{"start":{"line":171,"column":38},"end":{"line":171,"column":56}},{"start":{"line":171,"column":59},"end":{"line":171,"column":77}}]},"16":{"loc":{"start":{"line":182,"column":16},"end":{"line":184,"column":41}},"type":"cond-expr","locations":[{"start":{"line":183,"column":20},"end":{"line":183,"column":41}},{"start":{"line":184,"column":20},"end":{"line":184,"column":41}}]},"17":{"loc":{"start":{"line":191,"column":14},"end":{"line":191,"column":77}},"type":"cond-expr","locations":[{"start":{"line":191,"column":38},"end":{"line":191,"column":56}},{"start":{"line":191,"column":59},"end":{"line":191,"column":77}}]},"18":{"loc":{"start":{"line":198,"column":14},"end":{"line":200,"column":78}},"type":"cond-expr","locations":[{"start":{"line":199,"column":18},"end":{"line":199,"column":78}},{"start":{"line":200,"column":18},"end":{"line":200,"column":78}}]},"19":{"loc":{"start":{"line":210,"column":14},"end":{"line":210,"column":77}},"type":"cond-expr","locations":[{"start":{"line":210,"column":38},"end":{"line":210,"column":56}},{"start":{"line":210,"column":59},"end":{"line":210,"column":77}}]},"20":{"loc":{"start":{"line":223,"column":20},"end":{"line":225,"column":42}},"type":"cond-expr","locations":[{"start":{"line":224,"column":24},"end":{"line":224,"column":42}},{"start":{"line":225,"column":24},"end":{"line":225,"column":42}}]},"21":{"loc":{"start":{"line":234,"column":24},"end":{"line":236,"column":73}},"type":"cond-expr","locations":[{"start":{"line":235,"column":28},"end":{"line":235,"column":73}},{"start":{"line":236,"column":28},"end":{"line":236,"column":73}}]},"22":{"loc":{"start":{"line":239,"column":24},"end":{"line":241,"column":null}},"type":"binary-expr","locations":[{"start":{"line":239,"column":25},"end":{"line":241,"column":67}},{"start":{"line":241,"column":73},"end":{"line":241,"column":null}}]},"23":{"loc":{"start":{"line":239,"column":25},"end":{"line":241,"column":67}},"type":"cond-expr","locations":[{"start":{"line":240,"column":28},"end":{"line":240,"column":68}},{"start":{"line":241,"column":28},"end":{"line":241,"column":67}}]},"24":{"loc":{"start":{"line":253,"column":17},"end":{"line":256,"column":28}},"type":"cond-expr","locations":[{"start":{"line":254,"column":20},"end":{"line":254,"column":80}},{"start":{"line":255,"column":20},"end":{"line":256,"column":28}}]},"25":{"loc":{"start":{"line":262,"column":20},"end":{"line":264,"column":54}},"type":"cond-expr","locations":[{"start":{"line":263,"column":24},"end":{"line":263,"column":54}},{"start":{"line":264,"column":24},"end":{"line":264,"column":54}}]},"26":{"loc":{"start":{"line":267,"column":20},"end":{"line":269,"column":54}},"type":"cond-expr","locations":[{"start":{"line":268,"column":24},"end":{"line":268,"column":54}},{"start":{"line":269,"column":24},"end":{"line":269,"column":54}}]},"27":{"loc":{"start":{"line":272,"column":20},"end":{"line":274,"column":54}},"type":"cond-expr","locations":[{"start":{"line":273,"column":24},"end":{"line":273,"column":54}},{"start":{"line":274,"column":24},"end":{"line":274,"column":54}}]},"28":{"loc":{"start":{"line":280,"column":20},"end":{"line":284,"column":32}},"type":"cond-expr","locations":[{"start":{"line":281,"column":24},"end":{"line":282,"column":32}},{"start":{"line":283,"column":24},"end":{"line":284,"column":32}}]},"29":{"loc":{"start":{"line":287,"column":20},"end":{"line":291,"column":32}},"type":"cond-expr","locations":[{"start":{"line":288,"column":24},"end":{"line":289,"column":32}},{"start":{"line":290,"column":24},"end":{"line":291,"column":32}}]},"30":{"loc":{"start":{"line":294,"column":20},"end":{"line":296,"column":57}},"type":"cond-expr","locations":[{"start":{"line":295,"column":24},"end":{"line":295,"column":57}},{"start":{"line":296,"column":24},"end":{"line":296,"column":57}}]},"31":{"loc":{"start":{"line":299,"column":20},"end":{"line":301,"column":70}},"type":"cond-expr","locations":[{"start":{"line":300,"column":24},"end":{"line":300,"column":70}},{"start":{"line":301,"column":24},"end":{"line":301,"column":70}}]},"32":{"loc":{"start":{"line":304,"column":20},"end":{"line":308,"column":32}},"type":"cond-expr","locations":[{"start":{"line":305,"column":24},"end":{"line":306,"column":32}},{"start":{"line":307,"column":24},"end":{"line":308,"column":32}}]},"33":{"loc":{"start":{"line":318,"column":18},"end":{"line":320,"column":null}},"type":"cond-expr","locations":[{"start":{"line":319,"column":22},"end":{"line":319,"column":null}},{"start":{"line":320,"column":22},"end":{"line":320,"column":null}}]},"34":{"loc":{"start":{"line":327,"column":9},"end":{"line":356,"column":null}},"type":"cond-expr","locations":[{"start":{"line":328,"column":10},"end":{"line":356,"column":null}},{"start":{"line":356,"column":12},"end":{"line":356,"column":null}}]},"35":{"loc":{"start":{"line":333,"column":14},"end":{"line":343,"column":43}},"type":"cond-expr","locations":[{"start":{"line":334,"column":18},"end":{"line":338,"column":21}},{"start":{"line":339,"column":18},"end":{"line":343,"column":43}}]},"36":{"loc":{"start":{"line":351,"column":14},"end":{"line":353,"column":65}},"type":"cond-expr","locations":[{"start":{"line":352,"column":18},"end":{"line":352,"column":61}},{"start":{"line":353,"column":18},"end":{"line":353,"column":65}}]},"37":{"loc":{"start":{"line":388,"column":25},"end":{"line":388,"column":null}},"type":"binary-expr","locations":[{"start":{"line":388,"column":25},"end":{"line":388,"column":56}},{"start":{"line":388,"column":60},"end":{"line":388,"column":null}}]},"38":{"loc":{"start":{"line":395,"column":16},"end":{"line":395,"column":null}},"type":"cond-expr","locations":[{"start":{"line":395,"column":53},"end":{"line":395,"column":58}},{"start":{"line":395,"column":58},"end":{"line":395,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":21,"25":1,"26":1,"27":0,"28":0,"29":1,"30":0,"31":0,"32":0,"33":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[1,0],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,0],"36":[0,0],"37":[0,0],"38":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/[id].js","statementMap":{"0":{"start":{"line":18,"column":24},"end":{"line":18,"column":53}},"1":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"2":{"start":{"line":153,"column":13},"end":{"line":153,"column":27}},"3":{"start":{"line":1,"column":39},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":31},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":21},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":23},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":36},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":32},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":27},"end":{"line":9,"column":null}},"12":{"start":{"line":10,"column":24},"end":{"line":10,"column":null}},"13":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"14":{"start":{"line":12,"column":31},"end":{"line":12,"column":null}},"15":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"16":{"start":{"line":14,"column":34},"end":{"line":14,"column":null}},"17":{"start":{"line":15,"column":27},"end":{"line":15,"column":null}},"18":{"start":{"line":16,"column":32},"end":{"line":16,"column":null}},"19":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"20":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"21":{"start":{"line":21,"column":24},"end":{"line":21,"column":null}},"22":{"start":{"line":22,"column":23},"end":{"line":22,"column":null}},"23":{"start":{"line":24,"column":2},"end":{"line":29,"column":null}},"24":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"25":{"start":{"line":26,"column":6},"end":{"line":26,"column":null}},"26":{"start":{"line":27,"column":6},"end":{"line":27,"column":null}},"27":{"start":{"line":140,"column":19},"end":{"line":141,"column":null}},"28":{"start":{"line":144,"column":16},"end":{"line":144,"column":null}},"29":{"start":{"line":146,"column":2},"end":{"line":146,"column":null}},"30":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}},"31":{"start":{"line":147,"column":2},"end":{"line":150,"column":null}},"32":{"start":{"line":153,"column":30},"end":{"line":194,"column":null}},"33":{"start":{"line":155,"column":32},"end":{"line":156,"column":null}},"34":{"start":{"line":158,"column":32},"end":{"line":159,"column":null}},"35":{"start":{"line":162,"column":31},"end":{"line":163,"column":null}},"36":{"start":{"line":165,"column":16},"end":{"line":165,"column":50}},"37":{"start":{"line":167,"column":19},"end":{"line":173,"column":null}},"38":{"start":{"line":168,"column":4},"end":{"line":171,"column":null}},"39":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"40":{"start":{"line":176,"column":4},"end":{"line":178,"column":null}},"41":{"start":{"line":181,"column":2},"end":{"line":193,"column":null}}},"fnMap":{"0":{"name":"OASBenefitsEstimatorArticles","decl":{"start":{"line":18,"column":24},"end":{"line":18,"column":53}},"loc":{"start":{"line":18,"column":70},"end":{"line":136,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":24,"column":12},"end":{"line":24,"column":null}},"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":138,"column":22},"end":{"line":138,"column":36}},"loc":{"start":{"line":138,"column":22},"end":{"line":151,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":146,"column":12},"end":{"line":146,"column":13}},"loc":{"start":{"line":146,"column":23},"end":{"line":146,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":153,"column":30},"end":{"line":153,"column":37}},"loc":{"start":{"line":153,"column":55},"end":{"line":194,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":167,"column":32},"end":{"line":167,"column":33}},"loc":{"start":{"line":167,"column":33},"end":{"line":173,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":28,"column":null}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":28,"column":null}}]},"1":{"loc":{"start":{"line":26,"column":30},"end":{"line":26,"column":57}},"type":"binary-expr","locations":[{"start":{"line":26,"column":30},"end":{"line":26,"column":51}},{"start":{"line":26,"column":55},"end":{"line":26,"column":57}}]},"2":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":79}},"type":"cond-expr","locations":[{"start":{"line":36,"column":34},"end":{"line":36,"column":55}},{"start":{"line":36,"column":58},"end":{"line":36,"column":79}}]},"3":{"loc":{"start":{"line":51,"column":16},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":40},"end":{"line":51,"column":58}},{"start":{"line":51,"column":61},"end":{"line":51,"column":79}}]},"4":{"loc":{"start":{"line":61,"column":16},"end":{"line":63,"column":50}},"type":"cond-expr","locations":[{"start":{"line":62,"column":20},"end":{"line":62,"column":50}},{"start":{"line":63,"column":20},"end":{"line":63,"column":50}}]},"5":{"loc":{"start":{"line":66,"column":16},"end":{"line":68,"column":60}},"type":"cond-expr","locations":[{"start":{"line":67,"column":20},"end":{"line":67,"column":60}},{"start":{"line":68,"column":20},"end":{"line":68,"column":60}}]},"6":{"loc":{"start":{"line":94,"column":9},"end":{"line":123,"column":null}},"type":"cond-expr","locations":[{"start":{"line":95,"column":10},"end":{"line":123,"column":null}},{"start":{"line":123,"column":12},"end":{"line":123,"column":null}}]},"7":{"loc":{"start":{"line":100,"column":14},"end":{"line":110,"column":46}},"type":"cond-expr","locations":[{"start":{"line":101,"column":18},"end":{"line":105,"column":21}},{"start":{"line":106,"column":18},"end":{"line":110,"column":46}}]},"8":{"loc":{"start":{"line":118,"column":14},"end":{"line":120,"column":77}},"type":"cond-expr","locations":[{"start":{"line":119,"column":18},"end":{"line":119,"column":73}},{"start":{"line":120,"column":18},"end":{"line":120,"column":77}}]},"9":{"loc":{"start":{"line":169,"column":7},"end":{"line":169,"column":61}},"type":"cond-expr","locations":[{"start":{"line":169,"column":25},"end":{"line":169,"column":42}},{"start":{"line":169,"column":45},"end":{"line":169,"column":61}}]},"10":{"loc":{"start":{"line":175,"column":2},"end":{"line":179,"column":null}},"type":"if","locations":[{"start":{"line":175,"column":2},"end":{"line":179,"column":null}}]},"11":{"loc":{"start":{"line":175,"column":6},"end":{"line":175,"column":35}},"type":"binary-expr","locations":[{"start":{"line":175,"column":6},"end":{"line":175,"column":19}},{"start":{"line":175,"column":19},"end":{"line":175,"column":35}}]},"12":{"loc":{"start":{"line":189,"column":25},"end":{"line":189,"column":null}},"type":"binary-expr","locations":[{"start":{"line":189,"column":25},"end":{"line":189,"column":56}},{"start":{"line":189,"column":60},"end":{"line":189,"column":null}}]},"13":{"loc":{"start":{"line":192,"column":16},"end":{"line":192,"column":null}},"type":"cond-expr","locations":[{"start":{"line":192,"column":53},"end":{"line":192,"column":58}},{"start":{"line":192,"column":58},"end":{"line":192,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0],"11":[0,0],"12":[0,0],"13":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/oas-benefits-estimator/index.js","statementMap":{"0":{"start":{"line":19,"column":24},"end":{"line":19,"column":45}},"1":{"start":{"line":423,"column":13},"end":{"line":423,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":29},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":36},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":31},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":28},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":34},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":18},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":28},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":31},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":32},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":24},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":28},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":34},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":34},"end":{"line":17,"column":null}},"19":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"20":{"start":{"line":21,"column":24},"end":{"line":21,"column":null}},"21":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"22":{"start":{"line":24,"column":31},"end":{"line":30,"column":null}},"23":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"24":{"start":{"line":34,"column":2},"end":{"line":39,"column":null}},"25":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"26":{"start":{"line":36,"column":6},"end":{"line":36,"column":null}},"27":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"28":{"start":{"line":423,"column":30},"end":{"line":449,"column":null}},"29":{"start":{"line":425,"column":29},"end":{"line":426,"column":null}},"30":{"start":{"line":429,"column":31},"end":{"line":430,"column":null}},"31":{"start":{"line":433,"column":32},"end":{"line":434,"column":null}},"32":{"start":{"line":437,"column":2},"end":{"line":448,"column":null}}},"fnMap":{"0":{"name":"OasBenefitsEstimator","decl":{"start":{"line":19,"column":24},"end":{"line":19,"column":45}},"loc":{"start":{"line":19,"column":50},"end":{"line":421,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":6},"end":{"line":26,"column":7}},"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":34,"column":12},"end":{"line":34,"column":null}},"loc":{"start":{"line":34,"column":12},"end":{"line":39,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":423,"column":30},"end":{"line":423,"column":37}},"loc":{"start":{"line":423,"column":47},"end":{"line":449,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":30,"column":null}}]},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":38,"column":null}}]},"2":{"loc":{"start":{"line":36,"column":30},"end":{"line":36,"column":57}},"type":"binary-expr","locations":[{"start":{"line":36,"column":30},"end":{"line":36,"column":51}},{"start":{"line":36,"column":55},"end":{"line":36,"column":57}}]},"3":{"loc":{"start":{"line":46,"column":10},"end":{"line":46,"column":79}},"type":"cond-expr","locations":[{"start":{"line":46,"column":34},"end":{"line":46,"column":55}},{"start":{"line":46,"column":58},"end":{"line":46,"column":79}}]},"4":{"loc":{"start":{"line":57,"column":13},"end":{"line":59,"column":72}},"type":"cond-expr","locations":[{"start":{"line":58,"column":16},"end":{"line":58,"column":61}},{"start":{"line":59,"column":16},"end":{"line":59,"column":72}}]},"5":{"loc":{"start":{"line":64,"column":14},"end":{"line":66,"column":67}},"type":"cond-expr","locations":[{"start":{"line":65,"column":18},"end":{"line":65,"column":67}},{"start":{"line":66,"column":18},"end":{"line":66,"column":67}}]},"6":{"loc":{"start":{"line":76,"column":16},"end":{"line":78,"column":41}},"type":"cond-expr","locations":[{"start":{"line":77,"column":20},"end":{"line":77,"column":41}},{"start":{"line":78,"column":20},"end":{"line":78,"column":41}}]},"7":{"loc":{"start":{"line":86,"column":14},"end":{"line":88,"column":39}},"type":"cond-expr","locations":[{"start":{"line":87,"column":18},"end":{"line":87,"column":39}},{"start":{"line":88,"column":18},"end":{"line":88,"column":39}}]},"8":{"loc":{"start":{"line":96,"column":14},"end":{"line":96,"column":77}},"type":"cond-expr","locations":[{"start":{"line":96,"column":38},"end":{"line":96,"column":56}},{"start":{"line":96,"column":59},"end":{"line":96,"column":77}}]},"9":{"loc":{"start":{"line":101,"column":21},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":101,"column":45},"end":{"line":101,"column":53}},{"start":{"line":101,"column":53},"end":{"line":101,"column":null}}]},"10":{"loc":{"start":{"line":107,"column":14},"end":{"line":109,"column":null}},"type":"cond-expr","locations":[{"start":{"line":108,"column":18},"end":{"line":108,"column":null}},{"start":{"line":109,"column":18},"end":{"line":109,"column":null}}]},"11":{"loc":{"start":{"line":123,"column":14},"end":{"line":125,"column":67}},"type":"cond-expr","locations":[{"start":{"line":124,"column":18},"end":{"line":124,"column":67}},{"start":{"line":125,"column":18},"end":{"line":125,"column":67}}]},"12":{"loc":{"start":{"line":143,"column":16},"end":{"line":145,"column":41}},"type":"cond-expr","locations":[{"start":{"line":144,"column":20},"end":{"line":144,"column":41}},{"start":{"line":145,"column":20},"end":{"line":145,"column":41}}]},"13":{"loc":{"start":{"line":152,"column":14},"end":{"line":152,"column":77}},"type":"cond-expr","locations":[{"start":{"line":152,"column":38},"end":{"line":152,"column":56}},{"start":{"line":152,"column":59},"end":{"line":152,"column":77}}]},"14":{"loc":{"start":{"line":158,"column":14},"end":{"line":160,"column":78}},"type":"cond-expr","locations":[{"start":{"line":159,"column":18},"end":{"line":159,"column":78}},{"start":{"line":160,"column":18},"end":{"line":160,"column":78}}]},"15":{"loc":{"start":{"line":170,"column":14},"end":{"line":170,"column":77}},"type":"cond-expr","locations":[{"start":{"line":170,"column":38},"end":{"line":170,"column":56}},{"start":{"line":170,"column":59},"end":{"line":170,"column":77}}]},"16":{"loc":{"start":{"line":181,"column":16},"end":{"line":183,"column":41}},"type":"cond-expr","locations":[{"start":{"line":182,"column":20},"end":{"line":182,"column":41}},{"start":{"line":183,"column":20},"end":{"line":183,"column":41}}]},"17":{"loc":{"start":{"line":190,"column":14},"end":{"line":190,"column":77}},"type":"cond-expr","locations":[{"start":{"line":190,"column":38},"end":{"line":190,"column":56}},{"start":{"line":190,"column":59},"end":{"line":190,"column":77}}]},"18":{"loc":{"start":{"line":197,"column":14},"end":{"line":199,"column":78}},"type":"cond-expr","locations":[{"start":{"line":198,"column":18},"end":{"line":198,"column":78}},{"start":{"line":199,"column":18},"end":{"line":199,"column":78}}]},"19":{"loc":{"start":{"line":209,"column":14},"end":{"line":209,"column":77}},"type":"cond-expr","locations":[{"start":{"line":209,"column":38},"end":{"line":209,"column":56}},{"start":{"line":209,"column":59},"end":{"line":209,"column":77}}]},"20":{"loc":{"start":{"line":222,"column":20},"end":{"line":224,"column":42}},"type":"cond-expr","locations":[{"start":{"line":223,"column":24},"end":{"line":223,"column":42}},{"start":{"line":224,"column":24},"end":{"line":224,"column":42}}]},"21":{"loc":{"start":{"line":233,"column":24},"end":{"line":235,"column":73}},"type":"cond-expr","locations":[{"start":{"line":234,"column":28},"end":{"line":234,"column":73}},{"start":{"line":235,"column":28},"end":{"line":235,"column":73}}]},"22":{"loc":{"start":{"line":238,"column":24},"end":{"line":240,"column":null}},"type":"binary-expr","locations":[{"start":{"line":238,"column":25},"end":{"line":240,"column":67}},{"start":{"line":240,"column":73},"end":{"line":240,"column":null}}]},"23":{"loc":{"start":{"line":238,"column":25},"end":{"line":240,"column":67}},"type":"cond-expr","locations":[{"start":{"line":239,"column":28},"end":{"line":239,"column":68}},{"start":{"line":240,"column":28},"end":{"line":240,"column":67}}]},"24":{"loc":{"start":{"line":252,"column":17},"end":{"line":255,"column":28}},"type":"cond-expr","locations":[{"start":{"line":253,"column":20},"end":{"line":253,"column":80}},{"start":{"line":254,"column":20},"end":{"line":255,"column":28}}]},"25":{"loc":{"start":{"line":261,"column":20},"end":{"line":263,"column":54}},"type":"cond-expr","locations":[{"start":{"line":262,"column":24},"end":{"line":262,"column":54}},{"start":{"line":263,"column":24},"end":{"line":263,"column":54}}]},"26":{"loc":{"start":{"line":266,"column":20},"end":{"line":268,"column":54}},"type":"cond-expr","locations":[{"start":{"line":267,"column":24},"end":{"line":267,"column":54}},{"start":{"line":268,"column":24},"end":{"line":268,"column":54}}]},"27":{"loc":{"start":{"line":271,"column":20},"end":{"line":273,"column":54}},"type":"cond-expr","locations":[{"start":{"line":272,"column":24},"end":{"line":272,"column":54}},{"start":{"line":273,"column":24},"end":{"line":273,"column":54}}]},"28":{"loc":{"start":{"line":279,"column":20},"end":{"line":283,"column":32}},"type":"cond-expr","locations":[{"start":{"line":280,"column":24},"end":{"line":281,"column":32}},{"start":{"line":282,"column":24},"end":{"line":283,"column":32}}]},"29":{"loc":{"start":{"line":286,"column":20},"end":{"line":290,"column":32}},"type":"cond-expr","locations":[{"start":{"line":287,"column":24},"end":{"line":288,"column":32}},{"start":{"line":289,"column":24},"end":{"line":290,"column":32}}]},"30":{"loc":{"start":{"line":293,"column":20},"end":{"line":295,"column":57}},"type":"cond-expr","locations":[{"start":{"line":294,"column":24},"end":{"line":294,"column":57}},{"start":{"line":295,"column":24},"end":{"line":295,"column":57}}]},"31":{"loc":{"start":{"line":298,"column":20},"end":{"line":300,"column":70}},"type":"cond-expr","locations":[{"start":{"line":299,"column":24},"end":{"line":299,"column":70}},{"start":{"line":300,"column":24},"end":{"line":300,"column":70}}]},"32":{"loc":{"start":{"line":303,"column":20},"end":{"line":307,"column":32}},"type":"cond-expr","locations":[{"start":{"line":304,"column":24},"end":{"line":305,"column":32}},{"start":{"line":306,"column":24},"end":{"line":307,"column":32}}]},"33":{"loc":{"start":{"line":315,"column":15},"end":{"line":317,"column":78}},"type":"cond-expr","locations":[{"start":{"line":316,"column":18},"end":{"line":316,"column":78}},{"start":{"line":317,"column":18},"end":{"line":317,"column":78}}]},"34":{"loc":{"start":{"line":324,"column":16},"end":{"line":326,"column":62}},"type":"cond-expr","locations":[{"start":{"line":325,"column":20},"end":{"line":325,"column":62}},{"start":{"line":326,"column":20},"end":{"line":326,"column":62}}]},"35":{"loc":{"start":{"line":329,"column":16},"end":{"line":331,"column":53}},"type":"cond-expr","locations":[{"start":{"line":330,"column":20},"end":{"line":330,"column":53}},{"start":{"line":331,"column":20},"end":{"line":331,"column":53}}]},"36":{"loc":{"start":{"line":336,"column":15},"end":{"line":338,"column":78}},"type":"cond-expr","locations":[{"start":{"line":337,"column":18},"end":{"line":337,"column":78}},{"start":{"line":338,"column":18},"end":{"line":338,"column":78}}]},"37":{"loc":{"start":{"line":341,"column":15},"end":{"line":343,"column":78}},"type":"cond-expr","locations":[{"start":{"line":342,"column":18},"end":{"line":342,"column":78}},{"start":{"line":343,"column":18},"end":{"line":343,"column":78}}]},"38":{"loc":{"start":{"line":346,"column":15},"end":{"line":348,"column":78}},"type":"cond-expr","locations":[{"start":{"line":347,"column":18},"end":{"line":347,"column":78}},{"start":{"line":348,"column":18},"end":{"line":348,"column":78}}]},"39":{"loc":{"start":{"line":351,"column":15},"end":{"line":353,"column":78}},"type":"cond-expr","locations":[{"start":{"line":352,"column":18},"end":{"line":352,"column":78}},{"start":{"line":353,"column":18},"end":{"line":353,"column":78}}]},"40":{"loc":{"start":{"line":357,"column":13},"end":{"line":359,"column":77}},"type":"cond-expr","locations":[{"start":{"line":358,"column":16},"end":{"line":358,"column":77}},{"start":{"line":359,"column":16},"end":{"line":359,"column":77}}]},"41":{"loc":{"start":{"line":366,"column":16},"end":{"line":368,"column":62}},"type":"cond-expr","locations":[{"start":{"line":367,"column":20},"end":{"line":367,"column":62}},{"start":{"line":368,"column":20},"end":{"line":368,"column":62}}]},"42":{"loc":{"start":{"line":371,"column":16},"end":{"line":373,"column":53}},"type":"cond-expr","locations":[{"start":{"line":372,"column":20},"end":{"line":372,"column":53}},{"start":{"line":373,"column":20},"end":{"line":373,"column":53}}]},"43":{"loc":{"start":{"line":379,"column":9},"end":{"line":408,"column":null}},"type":"cond-expr","locations":[{"start":{"line":380,"column":10},"end":{"line":408,"column":null}},{"start":{"line":408,"column":12},"end":{"line":408,"column":null}}]},"44":{"loc":{"start":{"line":385,"column":14},"end":{"line":395,"column":43}},"type":"cond-expr","locations":[{"start":{"line":386,"column":18},"end":{"line":390,"column":21}},{"start":{"line":391,"column":18},"end":{"line":395,"column":43}}]},"45":{"loc":{"start":{"line":403,"column":14},"end":{"line":405,"column":65}},"type":"cond-expr","locations":[{"start":{"line":404,"column":18},"end":{"line":404,"column":61}},{"start":{"line":405,"column":18},"end":{"line":405,"column":65}}]},"46":{"loc":{"start":{"line":440,"column":25},"end":{"line":440,"column":null}},"type":"binary-expr","locations":[{"start":{"line":440,"column":25},"end":{"line":440,"column":56}},{"start":{"line":440,"column":60},"end":{"line":440,"column":null}}]},"47":{"loc":{"start":{"line":447,"column":16},"end":{"line":447,"column":null}},"type":"cond-expr","locations":[{"start":{"line":447,"column":53},"end":{"line":447,"column":58}},{"start":{"line":447,"column":58},"end":{"line":447,"column":null}}]}},"s":{"0":1,"1":0,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":21,"24":1,"25":1,"26":0,"27":0,"28":1,"29":0,"30":0,"31":0,"32":0},"f":{"0":1,"1":21,"2":1,"3":0},"b":{"0":[21,20,19,18],"1":[0],"2":[0,0],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"10":[0,1],"11":[0,1],"12":[0,1],"13":[0,1],"14":[0,1],"15":[0,1],"16":[0,1],"17":[0,1],"18":[0,1],"19":[0,1],"20":[0,1],"21":[0,1],"22":[1,0],"23":[0,1],"24":[0,1],"25":[0,1],"26":[0,1],"27":[0,1],"28":[0,1],"29":[0,1],"30":[0,1],"31":[0,1],"32":[0,1],"33":[0,1],"34":[0,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1],"40":[0,1],"41":[0,1],"42":[0,1],"43":[1,0],"44":[0,1],"45":[0,1],"46":[0,0],"47":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/transforming-ei-indigenous-peoples/[id].js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/transforming-ei-indigenous-peoples/[id].js","statementMap":{"0":{"start":{"line":11,"column":24},"end":{"line":11,"column":45}},"1":{"start":{"line":82,"column":22},"end":{"line":82,"column":36}},"2":{"start":{"line":96,"column":13},"end":{"line":96,"column":27}},"3":{"start":{"line":1,"column":21},"end":{"line":1,"column":null}},"4":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"5":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"6":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"7":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"8":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"9":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"10":{"start":{"line":8,"column":27},"end":{"line":8,"column":null}},"11":{"start":{"line":9,"column":24},"end":{"line":9,"column":null}},"12":{"start":{"line":12,"column":21},"end":{"line":12,"column":null}},"13":{"start":{"line":13,"column":23},"end":{"line":13,"column":null}},"14":{"start":{"line":15,"column":2},"end":{"line":20,"column":null}},"15":{"start":{"line":16,"column":4},"end":{"line":19,"column":null}},"16":{"start":{"line":17,"column":6},"end":{"line":17,"column":null}},"17":{"start":{"line":18,"column":6},"end":{"line":18,"column":null}},"18":{"start":{"line":84,"column":19},"end":{"line":85,"column":null}},"19":{"start":{"line":88,"column":16},"end":{"line":88,"column":null}},"20":{"start":{"line":89,"column":2},"end":{"line":89,"column":null}},"21":{"start":{"line":89,"column":23},"end":{"line":89,"column":null}},"22":{"start":{"line":90,"column":2},"end":{"line":93,"column":null}},"23":{"start":{"line":96,"column":30},"end":{"line":132,"column":null}},"24":{"start":{"line":98,"column":19},"end":{"line":99,"column":null}},"25":{"start":{"line":102,"column":31},"end":{"line":103,"column":null}},"26":{"start":{"line":105,"column":16},"end":{"line":105,"column":43}},"27":{"start":{"line":107,"column":19},"end":{"line":113,"column":null}},"28":{"start":{"line":108,"column":4},"end":{"line":111,"column":null}},"29":{"start":{"line":115,"column":2},"end":{"line":119,"column":null}},"30":{"start":{"line":116,"column":4},"end":{"line":118,"column":null}},"31":{"start":{"line":121,"column":2},"end":{"line":131,"column":null}}},"fnMap":{"0":{"name":"IndigenousEiArticles","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":45}},"loc":{"start":{"line":11,"column":62},"end":{"line":80,"column":1}}},"1":{"name":"(anonymous_6)","decl":{"start":{"line":15,"column":12},"end":{"line":15,"column":null}},"loc":{"start":{"line":15,"column":12},"end":{"line":20,"column":5}}},"2":{"name":"getStaticPaths","decl":{"start":{"line":82,"column":22},"end":{"line":82,"column":36}},"loc":{"start":{"line":82,"column":22},"end":{"line":94,"column":null}}},"3":{"name":"(anonymous_8)","decl":{"start":{"line":89,"column":12},"end":{"line":89,"column":13}},"loc":{"start":{"line":89,"column":23},"end":{"line":89,"column":null}}},"4":{"name":"(anonymous_9)","decl":{"start":{"line":96,"column":30},"end":{"line":96,"column":37}},"loc":{"start":{"line":96,"column":55},"end":{"line":132,"column":null}}},"5":{"name":"(anonymous_10)","decl":{"start":{"line":107,"column":32},"end":{"line":107,"column":33}},"loc":{"start":{"line":107,"column":33},"end":{"line":113,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":4},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":19,"column":null}}]},"1":{"loc":{"start":{"line":17,"column":30},"end":{"line":17,"column":57}},"type":"binary-expr","locations":[{"start":{"line":17,"column":30},"end":{"line":17,"column":51}},{"start":{"line":17,"column":55},"end":{"line":17,"column":57}}]},"2":{"loc":{"start":{"line":27,"column":10},"end":{"line":27,"column":79}},"type":"cond-expr","locations":[{"start":{"line":27,"column":34},"end":{"line":27,"column":55}},{"start":{"line":27,"column":58},"end":{"line":27,"column":79}}]},"3":{"loc":{"start":{"line":42,"column":16},"end":{"line":42,"column":79}},"type":"cond-expr","locations":[{"start":{"line":42,"column":40},"end":{"line":42,"column":58}},{"start":{"line":42,"column":61},"end":{"line":42,"column":79}}]},"4":{"loc":{"start":{"line":48,"column":18},"end":{"line":48,"column":null}},"type":"cond-expr","locations":[{"start":{"line":48,"column":42},"end":{"line":48,"column":60}},{"start":{"line":48,"column":60},"end":{"line":48,"column":null}}]},"5":{"loc":{"start":{"line":58,"column":18},"end":{"line":58,"column":null}},"type":"cond-expr","locations":[{"start":{"line":58,"column":42},"end":{"line":58,"column":60}},{"start":{"line":58,"column":60},"end":{"line":58,"column":null}}]},"6":{"loc":{"start":{"line":109,"column":7},"end":{"line":109,"column":61}},"type":"cond-expr","locations":[{"start":{"line":109,"column":25},"end":{"line":109,"column":42}},{"start":{"line":109,"column":45},"end":{"line":109,"column":61}}]},"7":{"loc":{"start":{"line":115,"column":2},"end":{"line":119,"column":null}},"type":"if","locations":[{"start":{"line":115,"column":2},"end":{"line":119,"column":null}}]},"8":{"loc":{"start":{"line":115,"column":6},"end":{"line":115,"column":35}},"type":"binary-expr","locations":[{"start":{"line":115,"column":6},"end":{"line":115,"column":19}},{"start":{"line":115,"column":19},"end":{"line":115,"column":35}}]},"9":{"loc":{"start":{"line":127,"column":25},"end":{"line":127,"column":null}},"type":"binary-expr","locations":[{"start":{"line":127,"column":25},"end":{"line":127,"column":56}},{"start":{"line":127,"column":60},"end":{"line":127,"column":null}}]},"10":{"loc":{"start":{"line":130,"column":16},"end":{"line":130,"column":null}},"type":"cond-expr","locations":[{"start":{"line":130,"column":53},"end":{"line":130,"column":58}},{"start":{"line":130,"column":58},"end":{"line":130,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0],"8":[0,0],"9":[0,0],"10":[0,0]}} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/transforming-ei-indigenous-peoples/index.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/pages/projects/transforming-ei-indigenous-peoples/index.js","statementMap":{"0":{"start":{"line":19,"column":24},"end":{"line":19,"column":45}},"1":{"start":{"line":372,"column":13},"end":{"line":372,"column":27}},"2":{"start":{"line":1,"column":17},"end":{"line":1,"column":null}},"3":{"start":{"line":2,"column":39},"end":{"line":2,"column":null}},"4":{"start":{"line":3,"column":23},"end":{"line":3,"column":null}},"5":{"start":{"line":4,"column":36},"end":{"line":4,"column":null}},"6":{"start":{"line":5,"column":31},"end":{"line":5,"column":null}},"7":{"start":{"line":6,"column":28},"end":{"line":6,"column":null}},"8":{"start":{"line":7,"column":34},"end":{"line":7,"column":null}},"9":{"start":{"line":8,"column":24},"end":{"line":8,"column":null}},"10":{"start":{"line":9,"column":18},"end":{"line":9,"column":null}},"11":{"start":{"line":10,"column":28},"end":{"line":10,"column":null}},"12":{"start":{"line":11,"column":34},"end":{"line":11,"column":null}},"13":{"start":{"line":12,"column":23},"end":{"line":12,"column":null}},"14":{"start":{"line":13,"column":34},"end":{"line":13,"column":null}},"15":{"start":{"line":14,"column":24},"end":{"line":14,"column":null}},"16":{"start":{"line":15,"column":31},"end":{"line":15,"column":null}},"17":{"start":{"line":16,"column":28},"end":{"line":16,"column":null}},"18":{"start":{"line":17,"column":32},"end":{"line":17,"column":null}},"19":{"start":{"line":20,"column":21},"end":{"line":20,"column":null}},"20":{"start":{"line":21,"column":22},"end":{"line":21,"column":null}},"21":{"start":{"line":22,"column":24},"end":{"line":22,"column":null}},"22":{"start":{"line":24,"column":31},"end":{"line":30,"column":null}},"23":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"24":{"start":{"line":34,"column":2},"end":{"line":39,"column":null}},"25":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"26":{"start":{"line":36,"column":6},"end":{"line":36,"column":null}},"27":{"start":{"line":37,"column":6},"end":{"line":37,"column":null}},"28":{"start":{"line":372,"column":30},"end":{"line":398,"column":null}},"29":{"start":{"line":374,"column":29},"end":{"line":375,"column":null}},"30":{"start":{"line":378,"column":31},"end":{"line":379,"column":null}},"31":{"start":{"line":382,"column":32},"end":{"line":383,"column":null}},"32":{"start":{"line":386,"column":2},"end":{"line":397,"column":null}}},"fnMap":{"0":{"name":"EiIndigenousOverview","decl":{"start":{"line":19,"column":24},"end":{"line":19,"column":45}},"loc":{"start":{"line":19,"column":50},"end":{"line":370,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":6},"end":{"line":26,"column":7}},"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":34,"column":12},"end":{"line":34,"column":null}},"loc":{"start":{"line":34,"column":12},"end":{"line":39,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":372,"column":30},"end":{"line":372,"column":37}},"loc":{"start":{"line":372,"column":47},"end":{"line":398,"column":null}}}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":8},"end":{"line":30,"column":null}},"type":"binary-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":null}},{"start":{"line":28,"column":8},"end":{"line":28,"column":null}},{"start":{"line":29,"column":8},"end":{"line":29,"column":null}},{"start":{"line":30,"column":8},"end":{"line":30,"column":null}}]},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":38,"column":null}}]},"2":{"loc":{"start":{"line":36,"column":30},"end":{"line":36,"column":57}},"type":"binary-expr","locations":[{"start":{"line":36,"column":30},"end":{"line":36,"column":51}},{"start":{"line":36,"column":55},"end":{"line":36,"column":57}}]},"3":{"loc":{"start":{"line":46,"column":10},"end":{"line":46,"column":79}},"type":"cond-expr","locations":[{"start":{"line":46,"column":34},"end":{"line":46,"column":55}},{"start":{"line":46,"column":58},"end":{"line":46,"column":79}}]},"4":{"loc":{"start":{"line":57,"column":13},"end":{"line":59,"column":72}},"type":"cond-expr","locations":[{"start":{"line":58,"column":16},"end":{"line":58,"column":61}},{"start":{"line":59,"column":16},"end":{"line":59,"column":72}}]},"5":{"loc":{"start":{"line":64,"column":14},"end":{"line":66,"column":67}},"type":"cond-expr","locations":[{"start":{"line":65,"column":18},"end":{"line":65,"column":67}},{"start":{"line":66,"column":18},"end":{"line":66,"column":67}}]},"6":{"loc":{"start":{"line":76,"column":16},"end":{"line":78,"column":41}},"type":"cond-expr","locations":[{"start":{"line":77,"column":20},"end":{"line":77,"column":41}},{"start":{"line":78,"column":20},"end":{"line":78,"column":41}}]},"7":{"loc":{"start":{"line":86,"column":14},"end":{"line":88,"column":39}},"type":"cond-expr","locations":[{"start":{"line":87,"column":18},"end":{"line":87,"column":39}},{"start":{"line":88,"column":18},"end":{"line":88,"column":39}}]},"8":{"loc":{"start":{"line":96,"column":14},"end":{"line":96,"column":77}},"type":"cond-expr","locations":[{"start":{"line":96,"column":38},"end":{"line":96,"column":56}},{"start":{"line":96,"column":59},"end":{"line":96,"column":77}}]},"9":{"loc":{"start":{"line":101,"column":21},"end":{"line":101,"column":null}},"type":"cond-expr","locations":[{"start":{"line":101,"column":45},"end":{"line":101,"column":53}},{"start":{"line":101,"column":53},"end":{"line":101,"column":null}}]},"10":{"loc":{"start":{"line":107,"column":14},"end":{"line":109,"column":null}},"type":"cond-expr","locations":[{"start":{"line":108,"column":18},"end":{"line":108,"column":null}},{"start":{"line":109,"column":18},"end":{"line":109,"column":null}}]},"11":{"loc":{"start":{"line":123,"column":14},"end":{"line":125,"column":67}},"type":"cond-expr","locations":[{"start":{"line":124,"column":18},"end":{"line":124,"column":67}},{"start":{"line":125,"column":18},"end":{"line":125,"column":67}}]},"12":{"loc":{"start":{"line":143,"column":16},"end":{"line":145,"column":41}},"type":"cond-expr","locations":[{"start":{"line":144,"column":20},"end":{"line":144,"column":41}},{"start":{"line":145,"column":20},"end":{"line":145,"column":41}}]},"13":{"loc":{"start":{"line":152,"column":14},"end":{"line":152,"column":77}},"type":"cond-expr","locations":[{"start":{"line":152,"column":38},"end":{"line":152,"column":56}},{"start":{"line":152,"column":59},"end":{"line":152,"column":77}}]},"14":{"loc":{"start":{"line":158,"column":14},"end":{"line":160,"column":67}},"type":"cond-expr","locations":[{"start":{"line":159,"column":18},"end":{"line":159,"column":67}},{"start":{"line":160,"column":18},"end":{"line":160,"column":67}}]},"15":{"loc":{"start":{"line":170,"column":14},"end":{"line":172,"column":58}},"type":"cond-expr","locations":[{"start":{"line":171,"column":18},"end":{"line":171,"column":58}},{"start":{"line":172,"column":18},"end":{"line":172,"column":58}}]},"16":{"loc":{"start":{"line":183,"column":16},"end":{"line":185,"column":41}},"type":"cond-expr","locations":[{"start":{"line":184,"column":20},"end":{"line":184,"column":41}},{"start":{"line":185,"column":20},"end":{"line":185,"column":41}}]},"17":{"loc":{"start":{"line":192,"column":14},"end":{"line":192,"column":77}},"type":"cond-expr","locations":[{"start":{"line":192,"column":38},"end":{"line":192,"column":56}},{"start":{"line":192,"column":59},"end":{"line":192,"column":77}}]},"18":{"loc":{"start":{"line":199,"column":14},"end":{"line":201,"column":67}},"type":"cond-expr","locations":[{"start":{"line":200,"column":18},"end":{"line":200,"column":67}},{"start":{"line":201,"column":18},"end":{"line":201,"column":67}}]},"19":{"loc":{"start":{"line":211,"column":14},"end":{"line":213,"column":58}},"type":"cond-expr","locations":[{"start":{"line":212,"column":18},"end":{"line":212,"column":58}},{"start":{"line":213,"column":18},"end":{"line":213,"column":58}}]},"20":{"loc":{"start":{"line":226,"column":20},"end":{"line":228,"column":42}},"type":"cond-expr","locations":[{"start":{"line":227,"column":24},"end":{"line":227,"column":42}},{"start":{"line":228,"column":24},"end":{"line":228,"column":42}}]},"21":{"loc":{"start":{"line":237,"column":24},"end":{"line":239,"column":73}},"type":"cond-expr","locations":[{"start":{"line":238,"column":28},"end":{"line":238,"column":73}},{"start":{"line":239,"column":28},"end":{"line":239,"column":73}}]},"22":{"loc":{"start":{"line":242,"column":24},"end":{"line":244,"column":68}},"type":"cond-expr","locations":[{"start":{"line":243,"column":28},"end":{"line":243,"column":68}},{"start":{"line":244,"column":28},"end":{"line":244,"column":68}}]},"23":{"loc":{"start":{"line":256,"column":17},"end":{"line":259,"column":28}},"type":"cond-expr","locations":[{"start":{"line":257,"column":20},"end":{"line":257,"column":80}},{"start":{"line":258,"column":20},"end":{"line":259,"column":28}}]},"24":{"loc":{"start":{"line":265,"column":20},"end":{"line":267,"column":54}},"type":"cond-expr","locations":[{"start":{"line":266,"column":24},"end":{"line":266,"column":54}},{"start":{"line":267,"column":24},"end":{"line":267,"column":54}}]},"25":{"loc":{"start":{"line":270,"column":20},"end":{"line":272,"column":54}},"type":"cond-expr","locations":[{"start":{"line":271,"column":24},"end":{"line":271,"column":54}},{"start":{"line":272,"column":24},"end":{"line":272,"column":54}}]},"26":{"loc":{"start":{"line":275,"column":20},"end":{"line":277,"column":54}},"type":"cond-expr","locations":[{"start":{"line":276,"column":24},"end":{"line":276,"column":54}},{"start":{"line":277,"column":24},"end":{"line":277,"column":54}}]},"27":{"loc":{"start":{"line":283,"column":20},"end":{"line":287,"column":null}},"type":"cond-expr","locations":[{"start":{"line":284,"column":24},"end":{"line":285,"column":null}},{"start":{"line":286,"column":24},"end":{"line":287,"column":null}}]},"28":{"loc":{"start":{"line":290,"column":20},"end":{"line":294,"column":32}},"type":"cond-expr","locations":[{"start":{"line":291,"column":24},"end":{"line":292,"column":32}},{"start":{"line":293,"column":24},"end":{"line":294,"column":32}}]},"29":{"loc":{"start":{"line":297,"column":20},"end":{"line":299,"column":57}},"type":"cond-expr","locations":[{"start":{"line":298,"column":24},"end":{"line":298,"column":57}},{"start":{"line":299,"column":24},"end":{"line":299,"column":57}}]},"30":{"loc":{"start":{"line":302,"column":20},"end":{"line":304,"column":70}},"type":"cond-expr","locations":[{"start":{"line":303,"column":24},"end":{"line":303,"column":70}},{"start":{"line":304,"column":24},"end":{"line":304,"column":70}}]},"31":{"loc":{"start":{"line":307,"column":20},"end":{"line":309,"column":79}},"type":"cond-expr","locations":[{"start":{"line":308,"column":24},"end":{"line":308,"column":79}},{"start":{"line":309,"column":24},"end":{"line":309,"column":79}}]},"32":{"loc":{"start":{"line":321,"column":16},"end":{"line":323,"column":null}},"type":"cond-expr","locations":[{"start":{"line":322,"column":20},"end":{"line":322,"column":null}},{"start":{"line":323,"column":20},"end":{"line":323,"column":null}}]},"33":{"loc":{"start":{"line":328,"column":9},"end":{"line":357,"column":null}},"type":"cond-expr","locations":[{"start":{"line":329,"column":10},"end":{"line":357,"column":null}},{"start":{"line":357,"column":12},"end":{"line":357,"column":null}}]},"34":{"loc":{"start":{"line":334,"column":14},"end":{"line":344,"column":43}},"type":"cond-expr","locations":[{"start":{"line":335,"column":18},"end":{"line":339,"column":21}},{"start":{"line":340,"column":18},"end":{"line":344,"column":43}}]},"35":{"loc":{"start":{"line":352,"column":14},"end":{"line":354,"column":65}},"type":"cond-expr","locations":[{"start":{"line":353,"column":18},"end":{"line":353,"column":61}},{"start":{"line":354,"column":18},"end":{"line":354,"column":65}}]},"36":{"loc":{"start":{"line":389,"column":25},"end":{"line":389,"column":null}},"type":"binary-expr","locations":[{"start":{"line":389,"column":25},"end":{"line":389,"column":56}},{"start":{"line":389,"column":60},"end":{"line":389,"column":null}}]},"37":{"loc":{"start":{"line":396,"column":16},"end":{"line":396,"column":null}},"type":"cond-expr","locations":[{"start":{"line":396,"column":53},"end":{"line":396,"column":58}},{"start":{"line":396,"column":58},"end":{"line":396,"column":null}}]}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0,0,0],"1":[0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0],"34":[0,0],"35":[0,0],"36":[0,0],"37":[0,0]}} +} diff --git a/refs/pull/1117/merge/coverage/lcov-report/base.css b/refs/pull/1117/merge/coverage/lcov-report/base.css new file mode 100644 index 0000000000..f418035b46 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/refs/pull/1117/merge/coverage/lcov-report/block-navigation.js b/refs/pull/1117/merge/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000000..cc12130231 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.js.html new file mode 100644 index 0000000000..c7220f208d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.js.html @@ -0,0 +1,829 @@ + + + + + + Code coverage report for components/atoms/ActionButton.js + + + + + + + + + +
+
+

All files / components/atoms ActionButton.js

+
+ +
+ 100% + Statements + 19/19 +
+ + +
+ 85.71% + Branches + 42/49 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 19/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +24925x +25x +25x +  +  +  +  +78x +  +  +76x +  +76x +  +76x +  +76x +  +76x +  +76x +  +  +76x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +71x +71x +71x +63x +1x +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +25x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useEffect } from "react";
+ 
+/**
+ * Button component
+ */
+export function ActionButton(props) {
+  //Styling for buttons and links
+  const PRIMARY =
+    "text-multi-neutrals-white bg-multi-blue-blue70 hover:bg-multi-blue-blue60g focus:bg-multi-blue-blue60g";
+  const SECONDARY =
+    "text-multi-blue-blue60b bg-multi-neutrals-grey30a hover:bg-multi-neutrals-grey50a focus:bg-multi-neutrals-grey60";
+  const TERTIARY =
+    "text-multi-neutrals-black bg-white hover:bg-multi-neutrals-grey50a focus:bg-multi-neutrals-grey60";
+  const SUPERTASK =
+    "text-multi-neutrals-white bg-specific-green-green50 hover:bg-specific-green-green70 focus:bg-sepcific-green-green70";
+  const DANGER =
+    "text-multi-neutrals-white bg-specific-red-red50 hover:bg-specific-red-red70 focus:bg-specific-red-red70";
+  const LINK =
+    "text-multi-blue-blue60c hover:text-multi-blue-blue50b focus:text-multi-blue-blue60f";
+ 
+  const style =
+    props.style === "primary"
+      ? PRIMARY
+      : props.style === "secondary"
+      ? SECONDARY
+      : props.style === "tertiary"
+      ? TERTIARY
+      : props.style === "supertask"
+      ? SUPERTASK
+      : props.style === "danger"
+      ? DANGER
+      : props.style === "link"
+      ? LINK
+      : "";
+ 
+  //Activate Links with spacebar
+  useEffect(() => {
+    let link = document.getElementById(props.id);
+    if (link) {
+      link.addEventListener("keydown", (event) => {
+        if (event.key === "Spacebar" || event.key === " ") {
+          event.preventDefault();
+          link.click();
+        }
+      });
+    }
+  });
+ 
+  return props.href ? (
+    <Link
+      href={props.href}
+      aria-label={`${props.ariaLabel ? props.ariaLabel : undefined}`}
+      className={`flex flex-row ${style} focus:ring focus:ring-offset-4 ring-multi-blue-blue60f py-2 px-4 rounded w-fit text-mobilebody lg:text-p font-body ${props.custom}`}
+      onClick={props.onClick}
+      id={props.id}
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy || props.id}
+      data-cy-button={props.dataCyButton}
+      disabled={props.disabled}
+      role="button"
+      draggable="false"
+      lang={props.lang}
+    >
+      {props.icon && !props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+      {props.text}
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <span
+          className={`${props.icon} ${props.iconStyle}`}
+          data-testid={props.dataTestId}
+        />
+      ) : undefined}
+    </Link>
+  ) : (
+    <button
+      aria-expanded={`${props.ariaExpanded ? props.ariaExpanded : undefined}`}
+      aria-label={`${props.ariaLabel ? props.ariaLabel : undefined}`}
+      className={`flex flex-row ${style} focus:ring focus:ring-offset-4 ring-multi-blue-blue60f py-2 px-4 rounded w-fit text-mobilebody lg:text-p font-body ${props.custom}`}
+      onClick={props.onClick}
+      type={props.type}
+      id={props.id}
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy || props.id}
+      data-cy-button={props.dataCyButton}
+      disabled={props.disabled}
+      data-gc-analytics-submit={props.analyticsTracking ? "submit" : undefined}
+    >
+      {props.icon && !props.iconEnd ? (
+        <span className={props.icon} data-testid={props.dataTestId} />
+      ) : undefined}
+      {props.imageSource && props.imageAlt ? (
+        <>
+          <img src={props.imageSource} alt={props.imageAlt} />
+          <span className={props.imageSpanClass} data-testid={props.dataTestId}>
+            {props.imageSpanText}
+          </span>
+        </>
+      ) : undefined}
+      <span className="flex">
+        {props.text}
+        {props.expandIcon}
+      </span>
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <span
+          className={`${props.icon} ${props.iconStyle}`}
+          data-testid={props.dataTestId}
+        />
+      ) : undefined}
+    </button>
+  );
+}
+ 
+ActionButton.propTypes = {
+  /**
+   * This will add an icon inside the button when needed
+   */
+  icon: PropTypes.string,
+ 
+  /**
+   * This is for placing an icon at the end of the component
+   */
+  iconEnd: PropTypes.bool,
+ 
+  /**
+   * This will add styles to the icon span inside the button when needed
+   */
+  iconStyle: PropTypes.string,
+ 
+  /**
+   * The text that the button will display
+   */
+  text: PropTypes.string,
+ 
+  /**
+   * Style link as a button when there's a href
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * Identify which button being clicked
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * Lang attribute for links that do not match the language of the top level document
+   */
+  lang: PropTypes.string,
+  /**
+   * the type of the button
+   */
+  type: PropTypes.oneOf(["submit", "reset"]),
+ 
+  /**
+   * Secondary color styling option
+   */
+  secondary: PropTypes.bool,
+ 
+  /**
+   * Tertiary color styling option
+   */
+  tertiary: PropTypes.bool,
+ 
+  /**
+   * Custom button styling option
+   */
+  custom: PropTypes.string,
+ 
+  /**
+   * Callback for a click event on the button
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * User must input one of the follow button styles to apply
+   * to their button. To apply the link style, the user must
+   * also add a value to the href prop
+   */
+  style: PropTypes.oneOf([
+    "supertask",
+    "primary",
+    "secondary",
+    "danger",
+    "link",
+    "tertiary",
+  ]),
+ 
+  /**
+   * any other elements you want to add to the button
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+  /**
+   * Test id for unit test
+   */
+  dataTestId: PropTypes.string,
+  /**
+   * Test id for e2e test
+   */
+  dataCy: PropTypes.string,
+  /**
+   * Test id for e2e test
+   */
+  dataCyButton: PropTypes.string,
+  /**
+   * Enabled or disabled the button
+   */
+  disabled: PropTypes.bool,
+  /**
+   * For tracking reset or submit on forms for analytics
+   */
+  analyticsTracking: PropTypes.bool,
+  /**
+   * Expand icon that will show the Feedback as popup
+   */
+  expandIcon: PropTypes.object,
+  /**
+   * Aria expanded state
+   */
+  ariaExpanded: PropTypes.string,
+  /**
+   * Aria label
+   */
+  ariaLabel: PropTypes.string,
+  /**
+   * Image source
+   */
+  imageSource: PropTypes.string,
+  /**
+   * Image alt
+   */
+  imageAlt: PropTypes.string,
+  /**
+   * Image span text
+   */
+  imageSpanText: PropTypes.string,
+  /**
+   * Image span classname
+   */
+  imageSpanClass: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html new file mode 100644 index 0000000000..cb2d19cc76 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ActionButton.stories.js.html @@ -0,0 +1,229 @@ + + + + + + Code coverage report for components/atoms/ActionButton.stories.js + + + + + + + + + +
+
+

All files / components/atoms ActionButton.stories.js

+
+ +
+ 94.44% + Statements + 17/18 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 12/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +491x +  +1x +  +  +  +  +  +  +5x +3x +3x +3x +5x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import { ActionButton } from "./ActionButton";
+ 
+export default {
+  title: "Components/Atoms/ActionButton",
+  component: ActionButton,
+};
+ 
+const Template = (args) => <ActionButton {...args} />;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+export const Supertask = Template.bind({});
+export const Danger = Template.bind({});
+export const Link = Template.bind({});
+ 
+Primary.args = {
+  id: "primary",
+  style: "primary",
+  text: "Primary",
+};
+ 
+Secondary.args = {
+  id: "secondary",
+  text: "Secondary",
+  style: "secondary",
+  secondary: true,
+};
+ 
+Supertask.args = {
+  id: "supertask",
+  text: "Supertask",
+  style: "supertask",
+  tertiary: true,
+};
+ 
+Danger.args = {
+  id: "danger",
+  text: "Danger",
+  style: "danger",
+  disabled: true,
+};
+ 
+Link.args = {
+  id: "link",
+  text: "Link",
+  style: "link",
+  href: "/",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.js.html new file mode 100644 index 0000000000..397d124bf0 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for components/atoms/Alert.js + + + + + + + + + +
+
+

All files / components/atoms Alert.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 33.33% + Branches + 1/3 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +511x +1x +1x +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faCircleInfo } from "@fortawesome/free-solid-svg-icons";
+import { faTriangleExclamation } from "@fortawesome/free-solid-svg-icons";
+ 
+/**
+ * Contextual alert component meant to draw attention to a short important message.
+ * Currently only has the option for an info alert, but other options can be added later so the alert
+ * can be customized.
+ */
+export function Alert(props) {
+  return (
+    <div className="layout-container">
+      <div
+        className={`relative border-l-6 min-h-40px my-10 ${
+          props.triangle ? "border-[#EE7100]" : "border-[#269ABC]"
+        }`}
+      >
+        <span className="absolute py-1 top-4 -left-3.5 bg-white">
+          {props.triangle ? (
+            <FontAwesomeIcon
+              icon={faTriangleExclamation}
+              color={"#EE7100"}
+              size="xl"
+            />
+          ) : (
+            <FontAwesomeIcon icon={faCircleInfo} color={"#269ABC"} size="xl" />
+          )}
+        </span>
+        <div className="ml-6">
+          <h3 className="text-h3 font-display">
+            <>{props.title}</>
+          </h3>
+          <p className="text-p">{props.text}</p>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+Alert.propTypes = {
+  /**
+   * The title for the alert
+   */
+  title: PropTypes.string,
+  /**
+   * The description for the alert, accepts a string or JSX
+   */
+  text: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html new file mode 100644 index 0000000000..75c113a5a2 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Alert.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/atoms/Alert.stories.js + + + + + + + + + +
+
+

All files / components/atoms Alert.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +161x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  +  + 
import { Alert } from "./Alert";
+ 
+export default {
+  title: "Components/Atoms/Alert",
+  component: Alert,
+};
+ 
+const Template = (args) => <Alert {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  title: "Alert Title",
+  text: "Alert Text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.js.html new file mode 100644 index 0000000000..66d68fd479 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.js.html @@ -0,0 +1,205 @@ + + + + + + Code coverage report for components/atoms/Banner.js + + + + + + + + + +
+
+

All files / components/atoms Banner.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +419x +9x +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +9x + 
import React from "react";
+import PropTypes from "prop-types";
+ 
+/**
+ * Displays the banner on the page
+ */
+ 
+export const Banner = ({ siteTitle, headline }) => {
+  return (
+    <div className="bg-banner-img-mobile bg-center bg-cover py-8 sm:bg-banner-img sm:bg-right">
+      <div className="lg:container xxs:mx-0 xxs:px-0 lg:mx-auto lg:px-6 xxl:mx-auto">
+        <div className="bg-black bg-opacity-90 text-white p-4 xxs:w-screen lg:bg-opacity-30 lg:w-2/3 xl:w-1/2">
+          <h1
+            className="text-h1 font-medium pt-4 pb-2 break-words"
+            id="pageMainTitle"
+            tabIndex="-1"
+          >
+            {siteTitle}
+          </h1>
+          <hr className="border-2 border-hr-red-bar bg-hr-red-bar bg-opacity-90 border-opacity-90 w-3/4" />
+          <p className="text-base font-normal py-4 break-words">{headline}</p>
+        </div>
+      </div>
+    </div>
+  );
+};
+ 
+Banner.propTypes = {
+  /**
+   * Text area that displays the title for the page
+   */
+  siteTitle: PropTypes.string.isRequired,
+ 
+  /**
+   * text area for headline in the banner
+   */
+  headline: PropTypes.string.isRequired,
+};
+ 
+export default Banner;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html new file mode 100644 index 0000000000..b9275b287c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Banner.stories.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for components/atoms/Banner.stories.js + + + + + + + + + +
+
+

All files / components/atoms Banner.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +171x +1x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  +  + 
import React from "react";
+import Banner from "./Banner";
+ 
+export default {
+  title: "Components/Atoms/Banner",
+  component: Banner,
+};
+ 
+const Template = (args) => <Banner {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  siteTitle: "Banner Text",
+  headline: "Banner Headline",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html new file mode 100644 index 0000000000..5899b3d56a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.js.html @@ -0,0 +1,286 @@ + + + + + + Code coverage report for components/atoms/Breadcrumb.js + + + + + + + + + +
+
+

All files / components/atoms Breadcrumb.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +689x +9x +9x +9x +  +  +  +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faChevronRight } from "@fortawesome/free-solid-svg-icons";
+ 
+/**
+ *  Breadcrumb component
+ */
+export function Breadcrumb(props) {
+  return (
+    <nav aria-label="breadcrumbs">
+      <ul className="block text-custom-blue-dark text-base font-body">
+        <li className="inline-block min-w-0 max-w-full truncate px-1 ml-0">
+          <Link
+            href="https://www.canada.ca/"
+            className="text-sm hover:text-custom-blue-link visited:text-purple-700 underline"
+          >
+            Canada.ca
+          </Link>
+        </li>
+ 
+        {props.items
+          ? props.items.map((item, key) => {
+              return (
+                <li
+                  key={key}
+                  className="inline-block min-w-0 max-w-full truncate px-1 ml-4"
+                >
+                  <span className="inline-block mr-6">
+                    <FontAwesomeIcon
+                      icon={faChevronRight}
+                      className="text-xs text-gray-breadcrumb"
+                    />
+                  </span>
+                  <Link
+                    href={item.link}
+                    className="text-sm hover:text-canada-footer-hover-font-blue text-canada-footer-font visited:text-purple-700 underline"
+                  >
+                    {item.text}
+                  </Link>
+                </li>
+              );
+            })
+          : null}
+      </ul>
+    </nav>
+  );
+}
+ 
+Breadcrumb.propTypes = {
+  /**
+   * Array of Items for the breadcrumb
+   */
+  items: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the breadcrumb
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the breadcrumb
+       */
+      link: PropTypes.string,
+    })
+  ),
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html new file mode 100644 index 0000000000..f99534ce54 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for components/atoms/Breadcrumb.stories.js + + + + + + + + + +
+
+

All files / components/atoms Breadcrumb.stories.js

+
+ +
+ 87.5% + Statements + 7/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +201x +  +1x +  +  +  +  +  +  +4x +3x +  +1x +  +  +  +  +  +  + 
import { Breadcrumb } from "./Breadcrumb";
+ 
+export default {
+  title: "Components/Atoms/Breadcrumb",
+  component: Breadcrumb,
+};
+ 
+const Template = (args) => <Breadcrumb {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithItems = Template.bind({});
+ 
+WithItems.args = {
+  items: [
+    { text: "Link1", link: "/" },
+    { text: "Link2", link: "/" },
+    { text: "Link3", link: "/" },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.js.html new file mode 100644 index 0000000000..6f32535c48 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.js.html @@ -0,0 +1,469 @@ + + + + + + Code coverage report for components/atoms/CheckBox.js + + + + + + + + + +
+
+

All files / components/atoms CheckBox.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 76.47% + Branches + 13/17 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +1294x +  +  +  +  +72x +  +  +  +  +  +68x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * check box component for forms
+ */
+export function CheckBox({
+  checked = false,
+  value = "true",
+  showRequiredLabel = false,
+  ...props
+}) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: checked,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight relative pl-40px h-46px clear-left${
+        props.className ? " " + props.className : " mb-4"
+      }`}
+    >
+      <input
+        className="control-input cursor-pointer appearance-none w-40px h-40px absolute left-0 m-0 z-1 opacity-0"
+        id={props.id}
+        name={props.name}
+        value={value}
+        type="checkbox"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : checked,
+            props.name,
+            value
+          )
+        }
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        data-cy={props.dataCy}
+        data-testid={props.dataTestId}
+        {...ifControlledProps}
+      />
+      <label
+        className={`checkbox-label control-label inline-block cursor-pointer pt-4px pb-5px px-15px text-sm lg:text-p leading-tight sm:leading-6 ${
+          props.bolded ? "font-semibold" : "font-normal"
+        } font-body${props.error ? " text-error-border-red" : undefined}`}
+        htmlFor={props.id}
+      >
+        {showRequiredLabel ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label} {<p className="sr-only">{props.expandState}</p>}
+      </label>
+    </div>
+  );
+}
+ 
+CheckBox.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool.isRequired,
+ 
+  /**
+   * the value of the field when the checkbox is checked
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * the name of the checkbox
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the id of the checkbox
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not there is an error
+   */
+  error: PropTypes.bool,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * show the "* ... (required)" in the label. in lists, this isn't necessary, but for an individual checkbox without a parent fieldset this is required
+   */
+  showRequiredLabel: PropTypes.bool,
+ 
+  /**
+   * callback to handle change in checked state, takes three arguments, the checked state, the name and the value
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * boolean flag to specify that this input should not be controlled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify when label content should be bolded
+   */
+  bolded: PropTypes.bool,
+ 
+  /**
+   * testing selector for cypress
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * testing selector for unit tests
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html new file mode 100644 index 0000000000..9c2fd17c61 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/CheckBox.stories.js.html @@ -0,0 +1,256 @@ + + + + + + Code coverage report for components/atoms/CheckBox.stories.js + + + + + + + + + +
+
+

All files / components/atoms CheckBox.stories.js

+
+ +
+ 81.25% + Statements + 13/16 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +581x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +1x +  +  +  +  +  +  +  +6x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { CheckBox } from "./CheckBox";
+ 
+export default {
+  title: "Components/Atoms/CheckBox",
+  component: CheckBox,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <CheckBox {...args} />;
+ 
+export const UnChecked = Template.bind({});
+UnChecked.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am a checkbox",
+  dataTestId: "unchecked-checkbox",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am a checkbox",
+  dataTestId: "checked-checkbox",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "uncontrolled-checkbox",
+  uncontrolled: true,
+};
+ 
+export const Required = Template.bind({});
+Required.args = {
+  id: "checkbox 1",
+  name: "ChexBox1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "required-checkbox",
+  showRequiredLabel: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.js.html new file mode 100644 index 0000000000..d9e926f302 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.js.html @@ -0,0 +1,622 @@ + + + + + + Code coverage report for components/atoms/DSButton.js + + + + + + + + + +
+
+

All files / components/atoms DSButton.js

+
+ +
+ 100% + Statements + 10/10 +
+ + +
+ 62.85% + Branches + 22/35 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 10/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +18013x +13x +  +  +  +11x +  +  +  +  +  +  +  +  +10x +  +10x +  +10x +  +10x +  +10x +  +10x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +13x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { Image } from "./Image";
+ 
+// Button used in HelpIcon.js and CTA.js
+// Use ActionButton.js for all other buttons in the app
+export function DSButton({
+  id = "btn1",
+  styling = "supertask",
+  text = "default",
+  href = "no ref",
+  ...props
+}) {
+  //Styling for buttons and links
+  const PRIMARY =
+    "text-multi-neutrals-white bg-multi-blue-blue70 hover:bg-multi-blue-blue60g focus:bg-multi-blue-blue60g";
+  const SECONDARY =
+    "text-multi-blue-blue60b bg-multi-neutrals-grey30a hover:bg-multi-neutrals-grey50a focus:bg-multi-neutrals-grey60";
+  const SUPERTASK =
+    "text-multi-neutrals-white bg-specific-green-green50 hover:bg-specific-green-green70 focus:bg-sepcific-green-green70";
+  const DANGER =
+    "text-multi-neutrals-white bg-specific-red-red50 hover:bg-specific-red-red70 focus:bg-specific-red-red70";
+  const LINK =
+    "text-multi-blue-blue60c hover:text-multi-blue-blue50b focus:text-multi-blue-blue60f";
+ 
+  styling =
+    styling === "primary"
+      ? PRIMARY
+      : styling === "secondary"
+      ? SECONDARY
+      : styling === "supertask"
+      ? SUPERTASK
+      : styling === "danger"
+      ? DANGER
+      : styling === "link"
+      ? LINK
+      : "";
+ 
+  return href === "no ref" ? (
+    <button
+      className={`flex flex-row px-[16px] py-[8px] ${styling} rounded-sm focus:ring focus:ring-offset-4 ${props.className} `}
+      onClick={props.onClick}
+      type={props.type}
+      id={id}
+      disabled={props.disabled}
+      {...props.attributes}
+      alt={props.iconAltText}
+    >
+      {props.icon && !props.iconEnd ? (
+        <span className="grid place-items-center h-8 w-8">
+          <Image className="pr-2" src={props.icon} alt={props.iconAltText} />
+        </span>
+      ) : undefined}
+      <span
+        className={`grid place-items-center ${
+          styling === "supertask" ? "h-8" : ""
+        }`}
+      >
+        {text}
+      </span>
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <span className="grid place-items-center h-8 w-8">
+          <Image className="pl-2" src={props.icon} alt={props.iconAltText} />
+        </span>
+      ) : undefined}
+    </button>
+  ) : (
+    <a
+      href={href}
+      className={`flex flex-row ${
+        styling !== "none" ? "btn-link" : ""
+      } focus:ring focus:ring-offset-4 ${props.className}`}
+      onClick={props.onClick}
+      id={id}
+      disabled={props.disabled}
+      role="button"
+    >
+      {props.icon && !props.iconEnd ? (
+        <Image
+          className="h-8 w-8 pr-2"
+          src={props.icon}
+          alt={props.iconAltText}
+        />
+      ) : undefined}
+      {text}
+      {props.children}
+      {props.icon && props.iconEnd ? (
+        <div className="grid place-items-center h-8 w-8">
+          <Image
+            className="pl-5 pb-3"
+            src={props.icon}
+            alt={props.iconAltText}
+          />
+        </div>
+      ) : undefined}
+    </a>
+  );
+}
+ 
+DSButton.propTypes = {
+  /**
+   * Identify which button being clicked
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * User must input one of the follow button styles to apply
+   * to their button. To apply the link style, the user must
+   * also add a value to the href prop
+   */
+  styling: PropTypes.oneOf([
+    "supertask",
+    "primary",
+    "secondary",
+    "danger",
+    "link",
+    "none",
+  ]),
+ 
+  /**
+   * The text that the button will display
+   */
+  text: PropTypes.string.isRequired,
+ 
+  /**
+   * This will add a img inside the button when needed
+   */
+  icon: PropTypes.string,
+ 
+  /**
+   * Alt text for icon added to button
+   */
+  iconAltText: PropTypes.string,
+ 
+  /**
+   * This is for placing an icon at the end of the component
+   */
+  iconEnd: PropTypes.bool,
+ 
+  /**
+   * Use when button redirects to a new page.
+   * Automatically applies the Link styling
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * the type of the button
+   */
+  type: PropTypes.oneOf(["submit", "reset", "button"]),
+ 
+  /**
+   * Callback for a click event on the button
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * bool to disable a button
+   */
+  disabled: PropTypes.bool,
+ 
+  /**
+   * css overrides for button
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * additional attributes for button
+   */
+  attributes: PropTypes.object,
+ 
+  /**
+   * any other elements you want to add to the button
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.stories.js.html new file mode 100644 index 0000000000..1fd0feadcc --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DSButton.stories.js.html @@ -0,0 +1,268 @@ + + + + + + Code coverage report for components/atoms/DSButton.stories.js + + + + + + + + + +
+
+

All files / components/atoms DSButton.stories.js

+
+ +
+ 90.47% + Statements + 19/21 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 14/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +621x +  +1x +  +  +  +  +  +  +2x +1x +2x +2x +2x +2x +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import { DSButton } from "./DSButton";
+ 
+export default {
+  title: "Components/Atoms/DSButton",
+  component: DSButton,
+};
+ 
+const Template = (args) => <DSButton {...args} />;
+ 
+export const Supertask = Template.bind({});
+export const SupertaskIcon = Template.bind({});
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+export const Danger = Template.bind({});
+export const Link = Template.bind({});
+ 
+Supertask.args = {
+  id: "supertask",
+  styling: "supertask",
+  text: "Supertask button",
+  iconAltText: "supertask",
+};
+ 
+SupertaskIcon.args = {
+  id: "supertask_icon",
+  styling: "supertask",
+  text: "Supertask button",
+  icon: "plus.svg",
+  iconAltText: "icon",
+  iconEnd: false,
+};
+ 
+Primary.args = {
+  id: "primary",
+  text: "Primary button",
+  iconAltText: "prime",
+  styling: "primary",
+};
+ 
+Secondary.args = {
+  id: "secondary",
+  text: "Secondary Button",
+  iconEnd: false,
+  secondary: true,
+  styling: "secondary",
+};
+ 
+Danger.args = {
+  id: "danger",
+  text: "Danger Button",
+  iconEnd: false,
+  styling: "danger",
+};
+ 
+Link.args = {
+  id: "link",
+  text: "Link Button",
+  styling: "link",
+  href: "/",
+  iconAltText: "link",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.js.html new file mode 100644 index 0000000000..9c5b738b79 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for components/atoms/DateModified.js + + + + + + + + + +
+
+

All files / components/atoms DateModified.js

+
+ +
+ 100% + Statements + 10/10 +
+ + +
+ 100% + Branches + 5/5 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 10/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +329x +9x +  +16x +15x +  +15x +15x +8x +2x +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+ 
+export function DateModified({ date = process.env.NEXT_PUBLIC_BUILD_DATE }) {
+  const { t } = useTranslation("common");
+  // TeamCity build dates are received in the format yyyyMMdd
+  let dateFormatted = "NA";
+  if (date) {
+    if (!date.match(/(?=\S*['-])([a-zA-Z'-]+)/gm)) {
+      dateFormatted = date.replace(/^(.{4})(.{2})/gm, "$1-$2-");
+    } else dateFormatted = date;
+  }
+ 
+  return (
+    <dl className="mt-8 py-2 font-body font-normal text-sm">
+      <dt className="inline">{t("dateModified")}</dt>
+      <dd className="inline">
+        {dateFormatted === "NA" ? (
+          <time>{` ${dateFormatted}`}</time>
+        ) : (
+          <time dateTime={dateFormatted}>{` ${dateFormatted}`}</time>
+        )}
+      </dd>
+    </dl>
+  );
+}
+ 
+DateModified.propTypes = {
+  // Date string in format yyyyMMdd
+  date: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html new file mode 100644 index 0000000000..9a2c36afef --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/DateModified.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/DateModified.stories.js + + + + + + + + + +
+
+

All files / components/atoms DateModified.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +151x +  +1x +  +  +  +  +  +  +5x +  +1x +  +  + 
import { DateModified } from "./DateModified";
+ 
+export default {
+  title: "Components/Atoms/DateModified",
+  component: DateModified,
+};
+ 
+const Template = (args) => <DateModified {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  date: "20200420",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html new file mode 100644 index 0000000000..997a5555bf --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/atoms/ErrorLabel.js + + + + + + + + + +
+
+

All files / components/atoms ErrorLabel.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +2416x +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +16x +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * error label component that is used with form inputs to display error messages
+ */
+export function ErrorLabel(props) {
+  return (
+    <div
+      className={`error-label border-l-4 border-error-border-red px-3 py-1 bg-error-background-red font-body font-bold mb-5px text-sm lg:text-p ${props.className}`}
+    >
+      {props.message}
+    </div>
+  );
+}
+ 
+ErrorLabel.propTypes = {
+  message: PropTypes.string.isRequired,
+ 
+  /**
+   * Prop for adding some classes
+   */
+  className: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html new file mode 100644 index 0000000000..d5828a3627 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/ErrorLabel.stories.js + + + + + + + + + +
+
+

All files / components/atoms ErrorLabel.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +151x +1x +  +1x +  +  +  +  +  +  +5x +1x +  +  + 
import React from "react";
+import { ErrorLabel } from "./ErrorLabel";
+ 
+export default {
+  title: "Components/Atoms/ErrorLabel",
+  component: ErrorLabel,
+};
+ 
+const Template = (args) => <ErrorLabel {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  message: "Error 1: This is a message",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/HTMList.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/HTMList.js.html new file mode 100644 index 0000000000..cdc5951f3a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/HTMList.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for components/atoms/HTMList.js + + + + + + + + + +
+
+

All files / components/atoms HTMList.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +271x +  +7x +7x +7x +  +18x +  +13x +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function HTMList({ tag = "ul", content, listClassName, liClassName }) {
+  const parseList = (content) =>
+    content
+      .split("*") // split the string on asterisks
+      .filter((item) => item) // filter out empty strings
+      .map((item, index) => (
+        <li className={liClassName} key={index}>
+          {item.trim()}
+        </li>
+      ));
+ 
+  return tag === "ul" ? (
+    <ul className={listClassName}>{parseList(content)}</ul>
+  ) : (
+    <ol className={listClassName}>{parseList(content)}</ol>
+  );
+}
+ 
+HTMList.propTypes = {
+  tag: PropTypes.string,
+  content: PropTypes.string.isRequired,
+  listClassName: PropTypes.string,
+  liClassName: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.js.html new file mode 100644 index 0000000000..fdf027b8f5 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.js.html @@ -0,0 +1,199 @@ + + + + + + Code coverage report for components/atoms/Image.js + + + + + + + + + +
+
+

All files / components/atoms Image.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +3916x +  +23x +23x +  +  +  +  +  +  +  +  +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function Image(props) {
+  const { src, alt, rounded = "", className = "" } = props;
+ 
+  return (
+    <>
+      <img src={src} alt={alt} className={`${className} ${rounded}`} />
+    </>
+  );
+}
+ 
+Image.propTypes = {
+  /**
+   * The text that the image tag will display
+   */
+  id: PropTypes.string,
+ 
+  /**
+   * Alternate text will be displayed in place of an image.
+   */
+  alt: PropTypes.string,
+ 
+  /**
+   * Identify source of image
+   */
+  src: PropTypes.string.isRequired,
+ 
+  /**
+   * css overrides for image
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * Enables rounded corners for image
+   */
+  rounded: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.stories.js.html new file mode 100644 index 0000000000..78d3aa1bbc --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Image.stories.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/atoms/Image.stories.js + + + + + + + + + +
+
+

All files / components/atoms Image.stories.js

+
+ +
+ 94.11% + Statements + 16/17 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 12/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +421x +  +1x +  +  +  +1x +1x +  +  +  +1x +1x +1x +1x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  + 
import { Image } from "./Image";
+ 
+export default {
+  title: "Components/Atoms/Image",
+  component: Image,
+};
+import imageFile from "../../public/image1.png";
+import imageFile2 from "../../public/image2.png";
+ 
+const Template = (args) => <Image {...args} />;
+ 
+export const Default = Template.bind({});
+export const Mobile = Template.bind({});
+export const DefaultWithRounded = Template.bind({});
+export const MobileWithRounded = Template.bind({});
+ 
+Default.args = {
+  id: "image",
+  alt: "Default Image",
+  src: imageFile,
+};
+ 
+DefaultWithRounded.args = {
+  id: "image",
+  alt: "Default Image with rounded",
+  rounded: "rounded",
+  src: imageFile,
+};
+ 
+Mobile.args = {
+  id: "image",
+  alt: "Mobile Image",
+  src: imageFile2,
+};
+ 
+MobileWithRounded.args = {
+  id: "image",
+  alt: "Mobile Image with rounded",
+  rounded: "rounded",
+  src: imageFile2,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.js.html new file mode 100644 index 0000000000..4dd9593ef3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.js.html @@ -0,0 +1,445 @@ + + + + + + Code coverage report for components/atoms/Link.js + + + + + + + + + +
+
+

All files / components/atoms Link.js

+
+ +
+ 95.23% + Statements + 20/21 +
+ + +
+ 94.44% + Branches + 17/18 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 95.23% + Lines + 20/21 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121  +14x +  +  +  +357x +  +356x +356x +  +1x +  +1x +  +1x +  +1x +  +66x +  +66x +  +273x +  +273x +  +1x +  +1x +  +1x +  +1x +  +13x +  +13x +  +  +356x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/* eslint-disable jsx-a11y/anchor-is-valid */
+import PropTypes from "prop-types";
+ 
+// Use this component for Footer link and use Next.js <Link>
+// for all links within the site
+export function Link({ target = "_self", href = "#", ...props }) {
+  //Styling for links based on Figma Design
+  let basicStyle = "";
+  switch (props.linkStyle) {
+    case "basicStyleWithEmphasis":
+      basicStyle =
+        "underline text-multi-blue-blue70b font-body text-mobilebody lg:text-p font-bold text-mobileh5 leading-33px hover:text-multi-blue-blue50b";
+      break;
+    case "titleLink":
+      basicStyle =
+        "underline text-multi-blue-blue70b font-header text-mobilebody lg:text-p leading-23px font-bold hover:text-multi-blue-blue50b";
+      break;
+    case "smfooterBlue":
+      basicStyle =
+        "text-multi-blue-blue70b font-body leading-20px text-browserh7 hover:underline";
+      break;
+    case "smfooterWhite":
+      basicStyle =
+        "text-multi-neutrals-white font-body text-browserh7 leading-20px font-regular hover:text-multi-neutrals-white hover:underline focus:ring-1 focus:ring-white";
+      break;
+    case "smBreadcrumbs":
+      basicStyle =
+        "text-multi-blue-blue70b font-body text-mobilebody lg:text-p leading-23px font-regular hover:text-multi-blue-blue50b";
+      break;
+    case "cardActionLink":
+      basicStyle =
+        "text-multi-blue-blue70b font-body text-mobilebody lg:text-p underline leading-28px font-regular hover:text-multi-blue-blue50b";
+      break;
+    default:
+      basicStyle =
+        "underline underline-offset-4 text-multi-blue-blue70b font-body text-mobilebody lg:text-p leading-33px hover:text-multi-blue-blue50b";
+      break;
+  }
+ 
+  const Component = props.component || "a";
+ 
+  function onKeyDown() {
+    true;
+  }
+ 
+  return Component !== "a" ? (
+    <Component
+      href={href}
+      disabled={props.disabled}
+      lang={props.lang}
+      target={target}
+      aria-label={props.ariaLabel || props.text}
+      role="link"
+      className={`${basicStyle}`}
+    >
+      {props.text}
+    </Component>
+  ) : (
+    <a
+      href={href}
+      className={`${basicStyle}`}
+      id={props.id}
+      disabled={props.disabled}
+      lang={props.lang}
+      target={target}
+      aria-label={props.ariaLabel || props.text}
+      locale={props.locale}
+      onClick={props.onClick ? props.onClick : undefined}
+      data-gc-analytics-customclick={props.dataGcAnalyticsCustomClick}
+    >
+      {props.text}
+    </a>
+  );
+}
+ 
+Link.propTypes = {
+  /**
+   * The text that Text Link will display
+   */
+  text: PropTypes.string,
+  /**
+   * Abbrivation for text
+   */
+  abbr: PropTypes.string,
+  /**
+   * Style link as a Text Link when there's a href
+   */
+  href: PropTypes.string,
+  /**
+   * Target attribute to tell the browser where the linked document should be loaded.
+   */
+  target: PropTypes.string,
+  /**
+   * Identify which Text Link being clicked
+   */
+  id: PropTypes.string.isRequired,
+  /**
+   * Lang attribute for links that do not match the language of the top level document
+   */
+  lang: PropTypes.string,
+  /**
+   * css overrides for Link
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * For tracking on click of forms for analytics
+   */
+  analyticsTracking: PropTypes.bool,
+ 
+  /**
+   * use ariaLabel to provide more descriptive text for a link (screen reader friendly)
+   */
+  ariaLabel: PropTypes.string,
+ 
+  /**
+   * Allow user to use configurable component, default is html anchor tag
+   */
+  component: PropTypes.elementType,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.stories.js.html new file mode 100644 index 0000000000..e81166519f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/Link.stories.js.html @@ -0,0 +1,253 @@ + + + + + + Code coverage report for components/atoms/Link.stories.js + + + + + + + + + +
+
+

All files / components/atoms Link.stories.js

+
+ +
+ 95.23% + Statements + 20/21 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 14/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +571x +  +1x +  +  +  +  +  +  +5x +3x +3x +3x +3x +3x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import { Link } from "./Link";
+ 
+export default {
+  title: "Components/Atoms/Link",
+  component: Link,
+};
+ 
+const Template = (args) => <Link {...args} />;
+ 
+export const Default = Template.bind({});
+export const RegularLinkwithEmphasis = Template.bind({});
+export const TitleLink = Template.bind({});
+export const FooterBlueLink = Template.bind({});
+export const BreadcrumbsLink = Template.bind({});
+export const CardActionLink = Template.bind({});
+ 
+Default.args = {
+  id: "link",
+  text: "Regular Link",
+  href: "/",
+};
+ 
+RegularLinkwithEmphasis.args = {
+  id: "link",
+  text: "Regular link with Emphasis",
+  href: "/",
+  linkStyle: "basicStyleWithEmphasis",
+};
+ 
+TitleLink.args = {
+  id: "link",
+  text: "Title Link",
+  href: "/",
+  linkStyle: "titleLink",
+};
+ 
+FooterBlueLink.args = {
+  id: "link",
+  text: "Small link - Footer blue",
+  href: "/",
+  linkStyle: "smfooterBlue",
+};
+ 
+BreadcrumbsLink.args = {
+  id: "link",
+  text: "Small link - Breadcrumbs & French toggle",
+  href: "/",
+  linkStyle: "smBreadcrumbs",
+};
+ 
+CardActionLink.args = {
+  id: "link",
+  text: "Card Action Link",
+  href: "/",
+  linkStyle: "cardActionLink",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.js.html new file mode 100644 index 0000000000..d94bdc6a64 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.js.html @@ -0,0 +1,796 @@ + + + + + + Code coverage report for components/atoms/MultiSelectField.js + + + + + + + + + +
+
+

All files / components/atoms MultiSelectField.js

+
+ +
+ 0% + Statements + 0/29 +
+ + +
+ 0% + Branches + 0/8 +
+ + +
+ 0% + Functions + 0/17 +
+ + +
+ 0% + Lines + 0/28 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import Select, { components } from "react-select";
+import { useState } from "react";
+ 
+export function MultiSelectField(props) {
+  const { t } = useTranslation("multiSelect");
+ 
+  const removeItem = (e) => {
+    let filteredArray = props.selectedOptions.filter((obj) => {
+      return obj.value !== e.currentTarget.id;
+    });
+    props.onChange(filteredArray);
+  };
+ 
+  const Option = (props) => {
+    return (
+      <components.Option {...props}>
+        <div className="flex">
+          <input
+            className="flex-none"
+            aria-labelledby="optionLabel"
+            type="checkbox"
+            checked={props.isSelected}
+            onChange={() => null}
+          />{" "}
+          <label className="flex-auto pl-3" id="optionLabel">
+            {props.label}
+          </label>
+        </div>
+      </components.Option>
+    );
+  };
+ 
+  const selectedOptionsPills = props.options
+    .filter((option) => {
+      const selectedOptionsIds = new Set();
+      props.selectedOptions.forEach((o) => selectedOptionsIds.add(o.id));
+      return selectedOptionsIds.has(option.id);
+    })
+    .map((option) => {
+      return (
+        <div
+          key={option.value}
+          className="flex bg-custom-gray-lighter rounded-[16px] my-1 px-3 py-1 text-sm font-body font-semibold"
+        >
+          <span className="self-center">{option.label}</span>
+          <div className="flex pl-2">
+            <button
+              aria-label={`${t("ariaPillsRemove")}${option.label}`}
+              className="self-center"
+              id={option.value}
+              onClick={removeItem}
+            >
+              <svg className="w-6 h-6" viewBox="0 0 24 24">
+                <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
+              </svg>
+            </button>
+          </div>
+        </div>
+      );
+    });
+ 
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-10px"
+      }`}
+    >
+      <label
+        id="multiSelectLabel"
+        className={`select-field-label block leading-tight text-sm lg:text-p font-body mb-2 ${
+          props.boldLabel ? "font-semibold" : ""
+        }`}
+      >
+        {props.label}
+      </label>
+      <Select
+        aria-labelledby="multiSelectLabel"
+        placeholder={props.placeholder}
+        // ariaLiveMessages={{ onFocus }}
+        controlShouldRenderValue={false}
+        isMulti
+        isClearable
+        escapeClearsValue
+        backspaceRemovesValue
+        isSearchable={false}
+        // noOptionsMessage={() => "no options friendo"}
+        options={props.options}
+        onChange={props.onChange}
+        components={{ Option }}
+        closeMenuOnSelect={false}
+        hideSelectedOptions={false}
+        value={props.selectedOptions}
+        styles={{
+          control: (baseStyles, state) => ({
+            ...baseStyles,
+            borderWidth: "2px",
+            borderColor: "black",
+            borderRadius: "3px",
+            boxShadow: state.isFocused ? "0 0 0 2px #2684FF" : "",
+          }),
+          dropdownIndicator: (baseStyles) => ({
+            ...baseStyles,
+            color: "black",
+          }),
+          indicatorSeparator: (baseStyles) => ({
+            ...baseStyles,
+            display: "none",
+          }),
+          clearIndicator: (baseStyles) => ({
+            ...baseStyles,
+            display: "none",
+            color: "black",
+          }),
+          placeholder: (baseStyles) => ({
+            ...baseStyles,
+            color: "black",
+            fontSize: "20px",
+          }),
+          menu: (baseStyles) => ({
+            ...baseStyles,
+            marginTop: "0px",
+            borderWidth: "1px",
+            borderColor: "black",
+            borderRadius: "3px",
+          }),
+          option: (baseStyles, state) => ({
+            ...baseStyles,
+            color: "black",
+            fontWeight: "600",
+            fontSize: "20px",
+            backgroundColor: state.isFocused ? "#b2d4ff" : "white",
+          }),
+          multiValueLabel: (baseStyles) => ({
+            ...baseStyles,
+            fontSize: "20px",
+            fontWeight: "500",
+          }),
+          multiValueRemove: (baseStyles) => ({
+            ...baseStyles,
+            color: "black",
+            fontSize: "20px",
+            fontWeight: "500",
+          }),
+        }}
+      />
+      <div className="mt-1 flex flex-col items-start">
+        {selectedOptionsPills}
+      </div>
+    </div>
+  );
+}
+ 
+MultiSelectField.defaultProps = {
+  value: "",
+};
+ 
+MultiSelectField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the label of the text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether ot not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string.isRequired,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * Other option for dropdown
+   */
+  other: PropTypes.bool,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  options: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string.isRequired,
+      name: PropTypes.string.isRequired,
+      value: PropTypes.string.isRequired,
+    })
+  ),
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * if true, skip sorting the options
+   */
+  ignoreSort: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.stories.js.html new file mode 100644 index 0000000000..234bd24cd9 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiSelectField.stories.js.html @@ -0,0 +1,250 @@ + + + + + + Code coverage report for components/atoms/MultiSelectField.stories.js + + + + + + + + + +
+
+

All files / components/atoms MultiSelectField.stories.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { MultiSelectField } from "./MultiSelectField";
+ 
+export default {
+  title: "Components/Atoms/MultiSelectField",
+  component: MultiSelectField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <MultiSelectField {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "select-field-1",
+  name: "selectField1",
+  label: "I am a select field",
+  uncontrolled: true,
+  dataTestId: "select-field-1",
+  boldLabel: true,
+  defaultOption: {
+    id: "defaultOption",
+    name: "Select option(s)",
+    value: "defaultOption",
+  },
+  options: [
+    {
+      id: "option1",
+      name: "Option 1",
+      value: "option1",
+    },
+    {
+      id: "option2",
+      name: "Option 2",
+      value: "option2",
+    },
+    {
+      id: "option3",
+      name: "Option 3",
+      value: "option3",
+    },
+    {
+      id: "option4",
+      name: "Option 4",
+      value: "option4",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html new file mode 100644 index 0000000000..d09b62dfac --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.js.html @@ -0,0 +1,508 @@ + + + + + + Code coverage report for components/atoms/MultiTextField.js + + + + + + + + + +
+
+

All files / components/atoms MultiTextField.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 66.66% + Branches + 8/12 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +1423x +3x +3x +  +  +  +  +5x +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * multi line text field
+ */
+export function MultiTextField({ spellCheck = true, wrap = "soft", ...props }) {
+  const { t } = useTranslation("common");
+ 
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-12"
+      }`}
+    >
+      <label
+        className={`block leading-tight text-sm lg:text-p font-body mb-5px ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      <p id={props.describedby} className="text-sm lg:text-g mb-5 leading-30px">
+        {t("doNotInclude")}
+      </p>
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <textarea
+        className={`text-input font-body w-full min-h-40px shadow-sm text-form-input-gray border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        }`}
+        id={props.id}
+        name={props.name}
+        placeholder={props.placeholder}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        cols={props.cols}
+        rows={props.rows}
+        spellCheck={spellCheck}
+        wrap={wrap}
+        required={props.required}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-describedby={props.describedby}
+      >
+        {props.value}
+      </textarea>
+    </div>
+  );
+}
+ 
+MultiTextField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the multi text field
+   */
+  id: PropTypes.string.isRequired,
+  /**
+   * the name of the multi text field
+   */
+  name: PropTypes.string.isRequired,
+  /**
+   * the label for the multi text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the multi text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * whether or not spellchecking is enabled for this field, by default it is
+   */
+  spellCheck: PropTypes.bool,
+ 
+  /**
+   * whether or not the label is bold
+   */
+  boldLabel: PropTypes.bool,
+  /**
+   * whether to soft wrap or hard wrap the field
+   */
+  wrap: PropTypes.oneOf(["soft", "hard"]),
+  /**
+   * the placeholder for the multi text field
+   */
+  placeholder: PropTypes.string,
+  /**
+   * how much lines should the multi text field show
+   */
+  rows: PropTypes.number,
+  /**
+   * how much columns should the multi text field show
+   */
+  cols: PropTypes.number,
+  /**
+   * the minimum length of characters for the multi text field
+   */
+  minLength: PropTypes.number,
+  /**
+   * the maximum length of characters for the multi text field
+   */
+  maxLength: PropTypes.number,
+  /**
+   * call back for when the value of the multi text field changes
+   */
+  onChange: PropTypes.func,
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+  /**
+   * cypress selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html new file mode 100644 index 0000000000..4b39cbb043 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for components/atoms/MultiTextField.stories.js + + + + + + + + + +
+
+

All files / components/atoms MultiTextField.stories.js

+
+ +
+ 76.92% + Statements + 10/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +501x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { MultiTextField } from "./MultiTextField";
+ 
+export default {
+  title: "Components/Atoms/MultiTextField",
+  component: MultiTextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <MultiTextField i {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-one",
+  placeholder: "some placeholder text",
+};
+ 
+export const BoldLabel = Template.bind({});
+BoldLabel.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-bold",
+  placeholder: "some placeholder text",
+  boldLabel: true,
+};
+ 
+export const HardWrap = Template.bind({});
+HardWrap.args = {
+  id: "multiTextField1",
+  name: "multiTextField1",
+  label: "I am a multi text field",
+  dataTestId: "multitext-hard-wrap",
+  placeholder: "some placeholder text",
+  cols: 30,
+  rows: 5,
+  wrap: "hard",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html new file mode 100644 index 0000000000..7bab1cb24a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.js.html @@ -0,0 +1,238 @@ + + + + + + Code coverage report for components/atoms/ProjectInfo.js + + + + + + + + + +
+
+

All files / components/atoms ProjectInfo.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 4/4 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +527x +7x +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { HelpIcon } from "../organisms/HelpIcon";
+ 
+export function ProjectInfo(props) {
+  return (
+    <>
+      <div className="grid grid-cols-1 xl:grid-cols-3 gap-x-2 text-[20px]">
+        <strong className="font-body text-mobilebody lg:text-p col-span-1">
+          {props.termStarted}
+        </strong>
+        <p className="col-span-2">
+          {props.dateStarted && props.dateStarted.substring(0, 10)}
+        </p>
+        <strong className="font-body text-mobilebody lg:text-p col-span-1 pt-3 lg:pt-0">
+          {props.termEnded}
+        </strong>
+        <p className="col-span-2">
+          {props.dateEnded && props.dateEnded.substring(0, 10)}
+        </p>
+        <strong className="font-body text-mobilebody lg:text-p col-span-1 my-auto">
+          {props.termStage}
+        </strong>
+        <div className="flex col-span-2 items-end">
+          <div className="shrink-0 flex">
+            <p className="my-auto">{props.stage}</p>
+            <div className="my-auto">
+              <HelpIcon
+                lang={props.locale}
+                title={props.stage}
+                body={props.definition}
+              />
+            </div>
+          </div>
+        </div>
+        <strong className="font-body text-mobilebody lg:text-p col-span-1 col-start-1">
+          {props.termSummary}
+        </strong>
+        <p className="col-span-2">{props.summary}</p>
+      </div>
+    </>
+  );
+}
+ 
+ProjectInfo.propTypes = {
+  dateStarted: PropTypes.string,
+  dateEnded: PropTypes.string,
+  stage: PropTypes.string,
+  summary: PropTypes.string,
+  info: PropTypes.string,
+  locale: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html new file mode 100644 index 0000000000..b517d7b20b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for components/atoms/ProjectInfo.stories.js + + + + + + + + + +
+
+

All files / components/atoms ProjectInfo.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +181x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  +  +  +  + 
import { ProjectInfo } from "./ProjectInfo";
+ 
+export default {
+  title: "Components/Atoms/ProjectInfo",
+  component: ProjectInfo,
+};
+ 
+const Template = (args) => <ProjectInfo {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  dateStarted: "2021-01-01",
+  dateEnded: "2022-03-31",
+  stage: "Alpha",
+  summary: "Project summary",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.js.html new file mode 100644 index 0000000000..3fae4c8ce6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.js.html @@ -0,0 +1,418 @@ + + + + + + Code coverage report for components/atoms/RadioButton.js + + + + + + + + + +
+
+

All files / components/atoms RadioButton.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 90.9% + Branches + 10/11 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 90% + Lines + 9/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +1122x +  +  +  +  +17x +16x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +1x +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Radio input styled as a button
+ **/
+export function RadioButton({ checked = false, ...props }) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: checked,
+      }
+    : {
+        defaultChecked: checked || false,
+      };
+  return (
+    <div className="flex relative">
+      <input
+        type="radio"
+        className="radio-button absolute top-0 left-0 w-full h-full appearance-none cursor-pointer"
+        id={props.id}
+        name={props.name}
+        value={props.value}
+        onChange={(e) => {
+          props.onChange(props.value, e);
+        }}
+        onKeyUp={(e) => {
+          if (e.key === "Enter") {
+            e.preventDefault();
+            Iif (props.uncontrolled) {
+              e.currentTarget.checked = true;
+            }
+            props.onChange(props.value, e);
+          }
+        }}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        required={props.required}
+        {...ifControlledProps}
+      />
+      <label
+        className={`radio-button-label font-body float-left text-xs px-5 py-3 border border-solid border-gray-600 border-opacity-50${
+          props.roundedFront ? " rounded-l-lg" : ""
+        }${props.roundedBack ? " rounded-r-lg" : ""}`}
+        htmlFor={props.id}
+      >
+        {props.label}
+      </label>
+    </div>
+  );
+}
+ 
+RadioButton.propTypes = {
+  /**
+   * the id for the input
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the input
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the input
+   */
+  value: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the radio button
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * whether the radio button is checked or not
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * Should the button be rounded in the front
+   */
+  roundedFront: PropTypes.bool,
+ 
+  /**
+   * Should the button be rounded in the back
+   */
+  roundedBack: PropTypes.bool,
+ 
+  /**
+   * if the input is controlled by react or not
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * onChange callback
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress test selector
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html new file mode 100644 index 0000000000..631c68646b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioButton.stories.js.html @@ -0,0 +1,259 @@ + + + + + + Code coverage report for components/atoms/RadioButton.stories.js + + + + + + + + + +
+
+

All files / components/atoms RadioButton.stories.js

+
+ +
+ 94.73% + Statements + 18/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 13/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +591x +1x +  +1x +  +  +  +  +  +  +12x +1x +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +3x +1x +  +  +  +  +  +  +  +  +3x +1x +  +  +  +  +  +  +  +  +3x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { RadioButton } from "./RadioButton";
+ 
+export default {
+  title: "Components/Atoms/RadioButton",
+  component: RadioButton,
+};
+ 
+const Template = (args) => <RadioButton {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "radio-button-1",
+  name: "radio_button_1",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "primary",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "radio-button-checked",
+  name: "radio_button_checked",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "checked",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "radio-button-uncontrolled",
+  name: "radio_button_uncontrolled",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "uncontrolled",
+  uncontrolled: true,
+};
+ 
+export const RoundedFront = Template.bind({});
+RoundedFront.args = {
+  id: "radio-button-rounded-front",
+  name: "radio_button_rounded_front",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "roundedFront",
+  roundedFront: true,
+};
+ 
+export const RoundedBack = Template.bind({});
+RoundedBack.args = {
+  id: "radio-button-rounded-back",
+  name: "radio_button_rounded_back",
+  value: "Some Value",
+  label: "My Radio Button",
+  dataTestId: "roundedBack",
+  roundedBack: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.js.html new file mode 100644 index 0000000000..e605302d4e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.js.html @@ -0,0 +1,412 @@ + + + + + + Code coverage report for components/atoms/RadioField.js + + + + + + + + + +
+
+

All files / components/atoms RadioField.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 58.33% + Branches + 7/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 83.33% + Lines + 5/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +1104x +  +  +  +  +10x +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * radio field
+ */
+export function RadioField({ checked = false, value = "true", ...props }) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: checked,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight relative pl-40px h-40px clear-left mb-10px${
+        props.className ? " " + props.className : ""
+      }`}
+    >
+      <input
+        className="control-input cursor-pointer appearance-none w-40px h-40px absolute left-0 m-0 z-1 opacity-0"
+        id={props.id}
+        name={props.name}
+        value={value}
+        type="radio"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : checked,
+            props.name,
+            value
+          )
+        }
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        data-cy={props.dataCy}
+        data-testid={props.dataTestId}
+        {...ifControlledProps}
+      />
+      <label
+        className={`radio-field-label control-label inline-block cursor-pointer pt-4px pb-5px px-15px text-sm lg:text-p leading-tight sm:leading-6 font-normal font-body${
+          props.error ? " text-error-border-red" : undefined
+        }`}
+        htmlFor={props.id}
+        onClick={() => props.onChange(checked, props.name, value)}
+      >
+        {props.label}
+      </label>
+    </div>
+  );
+}
+ 
+RadioField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool.isRequired,
+ 
+  /**
+   * the value of the field when the checkbox is checked
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * the name of the checkbox
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not there is an error
+   */
+  error: PropTypes.bool,
+ 
+  /**
+   * whether or not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * the id of the checkbox
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * callback to handle change in checked state, takes three arguments, the checked state, the name and the value
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * boolean flag to specify that this input should not be controlled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * testing selector for cypress
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * testing selector for unit tests
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html new file mode 100644 index 0000000000..6a45caccde --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/RadioField.stories.js.html @@ -0,0 +1,226 @@ + + + + + + Code coverage report for components/atoms/RadioField.stories.js + + + + + + + + + +
+
+

All files / components/atoms RadioField.stories.js

+
+ +
+ 84.61% + Statements + 11/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +481x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +1x +  +  +  +  +  +  +  +4x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  + 
import React from "react";
+import { RadioField } from "./RadioField";
+ 
+export default {
+  title: "Components/Atoms/RadioField",
+  component: RadioField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <RadioField {...args} />;
+ 
+export const UnChecked = Template.bind({});
+UnChecked.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am a radio button",
+  dataTestId: "unchecked-radio-field",
+};
+ 
+export const Checked = Template.bind({});
+Checked.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am a radio button",
+  dataTestId: "checked-radio-field",
+  checked: true,
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "radio 1",
+  name: "RadioField1",
+  value: "IsChecked",
+  label: "I am an uncontrolled checkbox",
+  dataTestId: "uncontrolled-checkbox",
+  uncontrolled: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.js.html new file mode 100644 index 0000000000..142ff9c39d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.js.html @@ -0,0 +1,244 @@ + + + + + + Code coverage report for components/atoms/SearchBar.js + + + + + + + + + +
+
+

All files / components/atoms SearchBar.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +541x +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ *  component
+ */
+export function SearchBar(props) {
+  return (
+    <form
+      className="w-full inline-flex h-9 lg:w-full xl:w-80 w-full border border-solid border-gray-light-100"
+      onSubmit={props.onSubmit}
+      data-cy={props.dataCy}
+    >
+      <input
+        type="text"
+        placeholder={props.placeholder}
+        className="placeholder-text-gray text-text-gray font-body py-1 px-2 focus:outline-none w-full"
+        onChange={props.onChange}
+      />
+ 
+      <button
+        title="Search bar button"
+        type="submit"
+        className={
+          "bg-custom-blue-dark text-white text-center text-base rounded-none pt-0.5 h-full w-10 hover:bg-gray-dark active:bg-gray-dark focus:bg-gray-dark"
+        }
+      >
+        <span className="icon-search" />
+      </button>
+    </form>
+  );
+}
+ 
+SearchBar.propTypes = {
+  /**
+   * Placeholder for the search bar
+   */
+  placeholder: PropTypes.string.isRequired,
+ 
+  /**
+   * Action to do on input change
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * Action to do on form submit
+   */
+  onSubmit: PropTypes.func,
+ 
+  /**
+   * Test id for cypress test
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html new file mode 100644 index 0000000000..6da6032306 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SearchBar.stories.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for components/atoms/SearchBar.stories.js + + + + + + + + + +
+
+

All files / components/atoms SearchBar.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +151x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  + 
import { SearchBar } from "./SearchBar";
+ 
+export default {
+  title: "Components/Atoms/SearchBar",
+  component: SearchBar,
+};
+ 
+const Template = (args) => <SearchBar {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  placeholder: "Search Canada.ca",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.js.html new file mode 100644 index 0000000000..52117a7c7e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.js.html @@ -0,0 +1,571 @@ + + + + + + Code coverage report for components/atoms/SelectField.js + + + + + + + + + +
+
+

All files / components/atoms SelectField.js

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 55.55% + Branches + 10/18 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 92.3% + Lines + 12/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +1631x +1x +1x +  +4x +2x +  +2x +  +  +  +  +  +2x +2x +6x +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+export function SelectField({ value = "", ...props }) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: value,
+      }
+    : {};
+ 
+  if (!props.ignoreSort) {
+    props.options.sort(function (a, b) {
+      var collator = new Intl.Collator("fr");
+      return collator.compare(a.name.toLowerCase(), b.name.toLowerCase());
+    });
+  }
+ 
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-10px"
+      }`}
+    >
+      <label
+        className={`select-field-label block leading-tight text-sm lg:text-p font-body mb-5 ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id + "-choice"}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <select
+        className={`text-input select-field bg-white font-body w-full min-h-40px shadow-sm border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        }`}
+        id={props.id + "-choice"}
+        name={props.name}
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId + "-choice"}
+        data-cy={props.dataCy + "-choice"}
+      >
+        <option
+          key="default"
+          value=""
+          data-testid="default"
+          data-cy="default"
+        />
+        {props.options.map(({ id, name, value }) => {
+          return (
+            <option key={id} value={value} data-testid={id} data-cy={id}>
+              {name}
+            </option>
+          );
+        })}
+        {props.other ? (
+          <option
+            key={"other"}
+            value={"other"}
+            data-testid={"other"}
+            data-cy={"other"}
+          >
+            {t("reportAProblemOther")}
+          </option>
+        ) : (
+          ""
+        )}
+      </select>
+    </div>
+  );
+}
+ 
+SelectField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the label of the text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether ot not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string.isRequired,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * Other option for dropdown
+   */
+  other: PropTypes.bool,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  options: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string.isRequired,
+      name: PropTypes.string.isRequired,
+      value: PropTypes.string.isRequired,
+    })
+  ),
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * if true, skip sorting the options
+   */
+  ignoreSort: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html new file mode 100644 index 0000000000..183cc78584 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/SelectField.stories.js.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for components/atoms/SelectField.stories.js + + + + + + + + + +
+
+

All files / components/atoms SelectField.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +501x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { SelectField } from "./SelectField";
+ 
+export default {
+  title: "Components/Atoms/SelectField",
+  component: SelectField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <SelectField {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "select-field-1",
+  name: "selectField1",
+  label: "I am a select field",
+  uncontrolled: true,
+  dataTestId: "select-field-1",
+  options: [
+    {
+      id: "option1",
+      name: "Option 1",
+      value: "option1",
+    },
+    {
+      id: "option2",
+      name: "Option 2",
+      value: "option2",
+    },
+    {
+      id: "option3",
+      name: "Option 3",
+      value: "option3",
+    },
+    {
+      id: "option4",
+      name: "Option 4",
+      value: "option4",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html new file mode 100644 index 0000000000..d92d0fde3d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.js.html @@ -0,0 +1,187 @@ + + + + + + Code coverage report for components/atoms/TableOfContents.js + + + + + + + + + +
+
+

All files / components/atoms TableOfContents.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +351x +  +3x +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function TableOfContents(props) {
+  return (
+    <>
+      <h2 className="font-semibold">{props.title}</h2>
+      <nav>
+        <ul className="leading-4 list-disc">
+          {props.headings.map((heading) => (
+            <li key={heading.id}>
+              <a
+                className="underline text-custom-blue-link underline hover:text-custom-blue-projects-link"
+                href={`#${heading.id}`}
+              >
+                {heading.text}
+              </a>
+            </li>
+          ))}
+        </ul>
+      </nav>
+    </>
+  );
+}
+ 
+TableOfContents.propTypes = {
+  /**
+   * The title for the table of contents
+   */
+  title: PropTypes.string,
+  /**
+   * An array of headings
+   */
+  headings: PropTypes.array,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html new file mode 100644 index 0000000000..59f2f4fdb3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/atoms/TableOfContents.stories.js + + + + + + + + + +
+
+

All files / components/atoms TableOfContents.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +161x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  +  + 
import { TableOfContents } from "./TableOfContents";
+ 
+export default {
+  title: "Components/Atoms/TableOfContents",
+  component: TableOfContents,
+};
+ 
+const Template = (args) => <TableOfContents {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  title: "Table of Contents Title",
+  headings: [{ id: "heading-one", text: "Heading one" }],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.js.html new file mode 100644 index 0000000000..94549de65b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.js.html @@ -0,0 +1,595 @@ + + + + + + Code coverage report for components/atoms/TextField.js + + + + + + + + + +
+
+

All files / components/atoms TextField.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 65% + Branches + 13/20 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 8/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +1713x +3x +3x +  +  +  +  +7x +6x +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * text field component
+ */
+export function TextField({ value = "", type = "text", ...props }) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: value,
+      }
+    : {};
+  return (
+    <div
+      className={`block leading-tight${
+        props.className ? " " + props.className : " mb-10px"
+      }`}
+    >
+      <label
+        className={`block leading-tight text-sm lg:text-p font-body mb-5 ${
+          props.boldLabel ? "font-bold" : ""
+        }`}
+        htmlFor={props.id}
+      >
+        {props.required ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label}{" "}
+      </label>
+      {props.describedby ? (
+        <p
+          id={props.describedby}
+          className="text-xs lg:text-sm mb-5 leading-30px"
+        >
+          {t("doNotInclude")}
+        </p>
+      ) : (
+        ""
+      )}
+ 
+      {props.error ? <ErrorLabel message={props.error} /> : undefined}
+      <input
+        className={`text-input font-body w-full lg:w-3/4 min-h-40px shadow-sm text-form-input-gray border-2 py-6px px-12px ${
+          props.error ? "border-error-border-red" : "border-black"
+        } ${props.exclude ? "exclude" : ""}`}
+        id={props.id}
+        aria-describedby={props.describedby}
+        name={props.name}
+        placeholder={props.placeholder}
+        type={type}
+        min={props.min}
+        max={props.max}
+        step={props.step}
+        aria-required={props.required}
+        aria-invalid={props.error ? "true" : undefined}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        autoComplete={props.autoComplete}
+      />
+    </div>
+  );
+}
+TextField.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * the label of the text field
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * whether ot not the field is required
+   */
+  required: PropTypes.bool,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * placeholder for the text field,
+   */
+  placeholder: PropTypes.string,
+ 
+  /**
+   * the type of the input
+   */
+  type: PropTypes.string,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * min value allowed
+   */
+  min: PropTypes.number,
+ 
+  /**
+   * max value allowed
+   */
+  max: PropTypes.number,
+ 
+  /**
+   * the legal number of intervals
+   */
+  step: PropTypes.number,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * Exclude option for adding exclude class to the textfield
+   */
+  exclude: PropTypes.bool,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * Option to enable autocomplete on field
+   */
+  autocomplete: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html new file mode 100644 index 0000000000..61261181af --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/TextField.stories.js.html @@ -0,0 +1,229 @@ + + + + + + Code coverage report for components/atoms/TextField.stories.js + + + + + + + + + +
+
+

All files / components/atoms TextField.stories.js

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +491x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +1x +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +3x +1x +  +  +  +  +  +  +  +  + 
import React from "react";
+import { TextField } from "./TextField";
+ 
+export default {
+  title: "Components/Atoms/TextField",
+  component: TextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <TextField {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  dataTestId: "textbox-controlled",
+  placeholder: "Some placeholder text",
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  placeholder: "Some placeholder text",
+  dataTestId: "textbox-uncontrolled",
+  uncontrolled: true,
+};
+ 
+export const BoldLabel = Template.bind({});
+BoldLabel.args = {
+  id: "textField1",
+  name: "textField1",
+  label: "I am a text field",
+  placeholder: "Some placeholder text",
+  dataTestId: "textbox-bold",
+  uncontrolled: true,
+  boldLabel: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/UpdateInfo.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/UpdateInfo.js.html new file mode 100644 index 0000000000..a254ca0c22 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/UpdateInfo.js.html @@ -0,0 +1,205 @@ + + + + + + Code coverage report for components/atoms/UpdateInfo.js + + + + + + + + + +
+
+

All files / components/atoms UpdateInfo.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { Link } from "./Link";
+ 
+export function UpdateInfo(props) {
+  return (
+    <>
+      <div className="grid grid-cols-1 lg:grid-cols-5 gap-x-2 text-[20px]">
+        <strong className="font-body text-mobilebody lg:text-p col-span-1">
+          {props.projectLabel}
+        </strong>
+        <div className="mb-1 col-span-2">
+          <Link
+            id="update-info-project-link"
+            className="text-mobilebody lg:text-p"
+            text={props.projectName}
+            href={props.projectHref}
+          />
+        </div>
+        <strong className="font-body text-mobilebody lg:text-p col-span-1 lg:row-start-2">
+          {props.postedOnLabel}
+        </strong>
+        <p className="col-span-2 lg:row-start-2 mb-1">{props.postedOn}</p>
+        <strong className="font-body text-mobilebody lg:text-p col-span-1 lg:row-start-3">
+          {props.lastUpdatedLabel}
+        </strong>
+        <p className="col-span-2 lg:row-start-3 mt-auto">{props.lastUpdated}</p>
+      </div>
+    </>
+  );
+}
+ 
+UpdateInfo.propTypes = {
+  projectLabel: PropTypes.string,
+  projectName: PropTypes.string,
+  projectHref: PropTypes.string,
+  postedOnLabel: PropTypes.string,
+  postedOn: PropTypes.string,
+  lastUpdatedLabel: PropTypes.string,
+  lastUpdated: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/atoms/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/index.html new file mode 100644 index 0000000000..1e0794ff0d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/atoms/index.html @@ -0,0 +1,701 @@ + + + + + + Code coverage report for components/atoms + + + + + + + + + +
+
+

All files components/atoms

+
+ +
+ 83.12% + Statements + 335/403 +
+ + +
+ 72.47% + Branches + 158/218 +
+ + +
+ 61.81% + Functions + 34/55 +
+ + +
+ 87.61% + Lines + 290/331 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ActionButton.js +
+
100%19/1985.71%42/49100%3/3100%19/19
ActionButton.stories.js +
+
94.44%17/18100%0/0100%0/0100%12/12
Alert.js +
+
100%5/533.33%1/3100%1/1100%5/5
Alert.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
Banner.js +
+
100%7/7100%0/0100%1/1100%5/5
Banner.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Breadcrumb.js +
+
100%7/7100%2/2100%2/2100%7/7
Breadcrumb.stories.js +
+
87.5%7/8100%0/0100%0/0100%5/5
CheckBox.js +
+
100%5/576.47%13/17100%2/2100%5/5
CheckBox.stories.js +
+
81.25%13/16100%0/0100%0/0100%11/11
DSButton.js +
+
100%10/1062.85%22/35100%1/1100%10/10
DSButton.stories.js +
+
90.47%19/21100%0/0100%0/0100%14/14
DateModified.js +
+
100%10/10100%5/5100%1/1100%10/10
DateModified.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
ErrorLabel.js +
+
100%3/3100%0/0100%1/1100%3/3
ErrorLabel.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
HTMList.js +
+
100%7/7100%2/2100%4/4100%7/7
Image.js +
+
100%4/4100%2/2100%1/1100%4/4
Image.stories.js +
+
94.11%16/17100%0/0100%0/0100%12/12
Link.js +
+
95.23%20/2194.44%17/1850%1/295.23%20/21
Link.stories.js +
+
95.23%20/21100%0/0100%0/0100%14/14
MultiSelectField.js +
+
0%0/290%0/80%0/170%0/28
MultiSelectField.stories.js +
+
0%0/7100%0/0100%0/00%0/5
MultiTextField.js +
+
100%7/766.66%8/12100%2/2100%7/7
MultiTextField.stories.js +
+
76.92%10/13100%0/0100%0/0100%9/9
ProjectInfo.js +
+
100%4/4100%4/4100%1/1100%4/4
ProjectInfo.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
RadioButton.js +
+
90%9/1090.9%10/11100%3/390%9/10
RadioButton.stories.js +
+
94.73%18/19100%0/0100%0/0100%13/13
RadioField.js +
+
83.33%5/658.33%7/1266.66%2/383.33%5/6
RadioField.stories.js +
+
84.61%11/13100%0/0100%0/0100%9/9
SearchBar.js +
+
100%3/3100%0/0100%1/1100%3/3
SearchBar.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
SelectField.js +
+
92.3%12/1355.55%10/1875%3/492.3%12/13
SelectField.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
TableOfContents.js +
+
100%4/4100%0/0100%2/2100%4/4
TableOfContents.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
TextField.js +
+
100%8/865%13/20100%2/2100%8/8
TextField.stories.js +
+
92.3%12/13100%0/0100%0/0100%9/9
UpdateInfo.js +
+
0%0/4100%0/00%0/10%0/4
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.js.html new file mode 100644 index 0000000000..1d40848a91 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.js.html @@ -0,0 +1,706 @@ + + + + + + Code coverage report for components/fragment_renderer/FragmentRender.js + + + + + + + + + +
+
+

All files / components/fragment_renderer FragmentRender.js

+
+ +
+ 89.28% + Statements + 25/28 +
+ + +
+ 63.49% + Branches + 40/63 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 89.28% + Lines + 25/28 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +2084x +4x +4x +4x +4x +4x +4x +4x +  +4x +  +  +  +  +  +  +  +  +4x +17x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +11x +  +  +11x +17x +17x +  +  +17x +  +  +  +  +  +  +  +  +  +  +  +  +10x +  + 
import { v4 as uuid } from "uuid";
+import TextWithImage from "./fragment_components/TextWithImage";
+import TextContent from "./fragment_components/TextContent";
+import Button from "./fragment_components/Button";
+import ArticleCTA from "./fragment_components/ArticleCTA";
+import QuoteVerticalLineContent from "./fragment_components/QuoteVerticalLineContent";
+import ImageWithCollapse from "./fragment_components/ImageWithCollapse";
+import TextRender from "../text_node_renderer/TextRender";
+ 
+const FRAGMENTS = {
+  "SCLabs-Comp-Content-Image-v1": TextWithImage,
+  "SCLabs-Comp-Content-v1": QuoteVerticalLineContent,
+  "SCLabs-Content-v1": TextContent,
+  "SCLabs-Button-v1": Button,
+  "SCLabs-Feature-v1": ArticleCTA,
+  "SCLabs-Image-v1": ImageWithCollapse,
+};
+ 
+const mapFragmentsToProps = (fragmentData, fragmentName, locale, excludeH1) => {
+  switch (fragmentName) {
+    case "SCLabs-Feature-v1":
+      return {
+        heading:
+          locale === "en" ? fragmentData.scTitleEn : fragmentData.scTitleFr,
+        body: (
+          <TextRender
+            data={
+              locale === "en"
+                ? fragmentData.scContentEn.json
+                : fragmentData.scContentFr.json
+            }
+          />
+        ),
+        ButtonProps: {
+          id: fragmentData.scLabsButton[0].scId,
+          text:
+            locale === "en"
+              ? fragmentData.scLabsButton[0].scTitleEn
+              : fragmentData.scLabsButton[0].scTitleFr,
+          href:
+            locale === "en"
+              ? fragmentData.scLabsButton[0].scDestinationURLEn
+              : fragmentData.scLabsButton[0].scDestinationURLFr,
+        },
+      };
+ 
+    case "SCLabs-Comp-Content-Image-v1":
+      switch (fragmentData.scLabLayout) {
+        case "default":
+          return {
+            src:
+              locale === "en"
+                ? fragmentData.scLabImage.scImageEn._publishUrl
+                : fragmentData.scLabImage.scImageFr._publishUrl,
+            alt: fragmentData.scLabImage.scImageAltTextEn
+              ? locale === "en"
+                ? fragmentData.scLabImage.scImageAltTextEn
+                : fragmentData.scLabImage.scImageAltTextFr
+              : "",
+            width: fragmentData.scLabImage.scImageEn.width,
+            height: fragmentData.scLabImage.scImageEn.height,
+            data:
+              locale === "en"
+                ? fragmentData.scLabContent[0].scContentEn.json
+                : fragmentData.scLabContent[0].scContentFr.json,
+            layout: fragmentData.scLabLayout,
+            excludeH1: excludeH1,
+          };
+        case "image-vertical-line-content":
+          return {
+            src:
+              locale === "en"
+                ? fragmentData.scLabImage.scImageEn._publishUrl
+                : fragmentData.scLabImage.scImageFr._publishUrl,
+            alt: fragmentData.scLabImage.scImageAltTextEn
+              ? locale === "en"
+                ? fragmentData.scLabImage.scImageAltTextEn
+                : fragmentData.scLabImage.scImageAltTextFr
+              : "",
+            width: fragmentData.scLabImage.scImageEn.width,
+            height: fragmentData.scLabImage.scImageEn.height,
+            data:
+              locale === "en"
+                ? fragmentData.scLabContent[0].scContentEn.json
+                : fragmentData.scLabContent[0].scContentFr.json,
+            layout: fragmentData.scLabLayout,
+            title:
+              locale === "en"
+                ? fragmentData.scLabImage.scLongDescHeadingEn
+                : fragmentData.scLabImage.scLongDescHeadingFr,
+            longDesc:
+              locale === "en"
+                ? fragmentData.scLabImage.scLongDescEn
+                : fragmentData.scLabImage.scLongDescFr,
+            children: (
+              <TextRender
+                data={
+                  locale === "en"
+                    ? fragmentData.scLabImage.scLongDescEn?.json
+                    : fragmentData.scLabImage.scLongDescFr?.json
+                }
+              />
+            ),
+          };
+        default:
+          break;
+      }
+ 
+    case "SCLabs-Comp-Content-v1":
+      return {
+        quoteText:
+          locale === "en"
+            ? fragmentData.scLabContent[0].scContentEn.json
+            : fragmentData.scLabContent[0].scContentFr.json,
+        explanationtext:
+          locale === "en"
+            ? fragmentData.scLabContent[1].scContentEn.json
+            : fragmentData.scLabContent[1].scContentFr.json,
+      };
+ 
+    case "SCLabs-Content-v1":
+      return {
+        data:
+          locale === "en"
+            ? fragmentData.scContentEn.json
+            : fragmentData.scContentFr.json,
+      };
+ 
+    case "SCLabs-Button-v1":
+      return {
+        id: fragmentData.scId,
+        buttonType: fragmentData.scButtonType[0],
+        href:
+          locale === "en"
+            ? fragmentData.scDestinationURLEn
+            : fragmentData.scDestinationURLFr,
+        text: locale === "en" ? fragmentData.scTitleEn : fragmentData.scTitleFr,
+      };
+ 
+    case "SCLabs-Image-v1":
+      return {
+        id: fragmentData.scId,
+        src:
+          locale === "en"
+            ? fragmentData.scImageEn._publishUrl
+            : fragmentData.scImageFr._publishUrl,
+        alt:
+          locale === "en"
+            ? fragmentData.scImageAltTextEn
+            : fragmentData.scImageAltTextFr,
+        width: fragmentData.scImageEn.width,
+        height: fragmentData.scImageEn.height,
+        content: (
+          <TextRender
+            data={
+              locale === "en"
+                ? fragmentData.scImageCaptionEn.json
+                : fragmentData.scImageCaptionFr.json
+            }
+          />
+        ),
+        title:
+          locale === "en"
+            ? fragmentData.scLongDescHeadingEn
+            : fragmentData.scLongDescHeadingFr,
+        longDesc:
+          locale === "en"
+            ? fragmentData.scLongDescEn
+            : fragmentData.scLongDescFr,
+        children: (
+          <TextRender
+            data={
+              locale === "en"
+                ? fragmentData.scLongDescEn.json
+                : fragmentData.scLongDescFr.json
+            }
+          />
+        ),
+      };
+    default:
+      break;
+  }
+};
+ 
+export default function FragmentRender(props) {
+  // Create and return array of elements corresponding to
+  // fragments
+  const pageFragments = props.fragments.map((fragmentData) => {
+    const Fragment = FRAGMENTS[fragmentData?._model.title];
+    Iif (!Fragment) {
+      return;
+    }
+    return (
+      <Fragment
+        key={uuid()}
+        {...mapFragmentsToProps(
+          fragmentData,
+          fragmentData?._model.title,
+          props.locale,
+          props.excludeH1
+        )}
+      />
+    );
+  });
+ 
+  return pageFragments;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.stories.js.html new file mode 100644 index 0000000000..67c5606987 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/FragmentRender.stories.js.html @@ -0,0 +1,4360 @@ + + + + + + Code coverage report for components/fragment_renderer/FragmentRender.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer FragmentRender.stories.js

+
+ +
+ 96.15% + Statements + 25/26 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 18/18 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +1405 +1406 +1407 +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425 +14261x +1x +1x +  +1x +  +  +  +  +  +  +  +1x +1x +1x +1x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import FragmentRender from "./FragmentRender";
+import { CollapseData } from "../../__mocks__/mockStore";
+ 
+export default {
+  title: "Components/Fragment_Renderer/FragmentRender",
+  component: FragmentRender,
+  locale: "en",
+};
+ 
+const Template = (args) => <FragmentRender {...args} />;
+ 
+export const ArticleCTA = Template.bind({});
+export const TextWithImage = Template.bind({});
+export const TextWithImageCollapse = Template.bind({});
+export const QuoteVerticalLineContent = Template.bind({});
+export const TextContent = Template.bind({});
+export const Button = Template.bind({});
+export const ImageWithCollapse = Template.bind({});
+ 
+ArticleCTA.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Feature-v1",
+      },
+      scId: "INFORMATION-ALPHA-SCLABS",
+      scTitleEn: "Information",
+      scTitleFr: "Information",
+      scContentEn: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Alpha:",
+                format: {
+                  variants: ["strong"],
+                },
+              },
+              {
+                nodeType: "text",
+                value:
+                  " Building a draft tool or service and testing it to see if it meets needs.",
+              },
+            ],
+          },
+        ],
+      },
+      scContentFr: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Alpha : ",
+                format: {
+                  variants: ["strong"],
+                },
+              },
+              {
+                nodeType: "text",
+                value:
+                  "Construire une première version d’un outil ou d’un service et le tester pour savoir s’il répond aux besoins.",
+              },
+            ],
+          },
+        ],
+      },
+      scLabsButton: [
+        {
+          scId: "GIVE-FEEDBACK-OAS-ESTIMATOR",
+          scTitleEn: "Give feedback",
+          scTitleFr: "Fournir des commentaires",
+          scDestinationURLEn:
+            "https://srv217.services.gc.ca/ihst4/Intro.aspx?cid=74938e05-8e91-42a9-8e9d-29daf79f6fe0&lc=eng",
+          scDestinationURLFr:
+            "https://srv217.services.gc.ca/ihst4/Intro.aspx?cid=74938e05-8e91-42a9-8e9d-29daf79f6fe0&lc=fra",
+          scButtonType: ["gc:custom/decd-endc/button-type/secondary"],
+        },
+      ],
+    },
+  ],
+};
+ 
+TextWithImage.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Comp-Content-Image-v1",
+      },
+      scId: "NAVIGATOR-DIFFICULTIES-MAIN",
+      scLabContent: [
+        {
+          scId: "DIFFICULTIES-COMMUNITY-WORKERS",
+          scContentEn: {
+            json: [
+              {
+                nodeType: "header",
+                style: "h1",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Difficulties faced by community workers who help people with their benefits",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Government benefits are designed to improve the lives of Canadians. Many benefits help people based on their health, job, housing, or family situation.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "According to the 2022 Auditor General’s report, accessing these benefits can be hard for many reasons (see ",
+                  },
+                  {
+                    nodeType: "link",
+                    data: {
+                      href: "https://www.oag-bvg.gc.ca/internet/English/parl_oag_202205_01_e_44033.html",
+                    },
+                    value: "Access to Benefits for Hard-to-Reach Populations",
+                  },
+                  {
+                    nodeType: "text",
+                    value: ").",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "The report lists a few of those reasons. It also lists some options available to those who need help with applying.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "The report says that people often rely on community organizations to learn about the help they could receive. We saw a similar trend in other research reports. From that, we concluded that community workers play an important role in helping people get government benefits. So, we decided to learn more about the problems that they face when they carry out this task.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Here are some problems that we identified from our own research studies and other reports.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "It takes time to learn about government benefits",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "We talked to several community workers who said it takes a lot of time and effort to become familiar with government benefits. This is because there are so many of them, they come from different sources, and they have different eligibility criteria.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "They also said it’s hard to understand information on government websites. This was also mentioned in the reports we read.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "It's hard to stay updated on news about benefits",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "From our research, we learned that community workers try to stay updated on news about benefits, but don’t have a good way to do so.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "There isn’t one location that a person can go to see all the updates. Instead, the workers we talked to said that they made their own solutions. Some created news alerts, others subscribed to newsletters. Despite that, they were sure that they were missing some updates.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "It's hard to understand eligibility conditions and the application process",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "The reports we read said that it’s difficult to apply for benefits because applications are long and ask for a lot of information.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "The workers we talked to said that it’s hard to know which forms people need and where to find them.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Complicated eligibility criteria make it hard to know if someone qualifies for a benefit. This can stop people from starting a long application process. Most don’t want to spend the effort if they don’t think they qualify.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "We want to make it easier to understand government benefits",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "To fix the problems identified in our research, we want to make a tool that simplifies information about government benefits.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "This tool will make it easier for anyone to:",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "unordered-list",
+                content: [
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "be aware of benefits ",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "know how to apply ",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "stay updated on changes ",
+                      },
+                    ],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "By making this information easier to understand, we believe more people will apply for the benefits to which they are entitled.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+            ],
+          },
+          scContentFr: {
+            json: [
+              {
+                nodeType: "header",
+                style: "h1",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Difficultés rencontrées par les travailleuses et travailleurs communautaires qui aident les gens avec leurs prestations",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Les prestations du gouvernement sont conçues pour améliorer la vie des gens. Plusieurs prestations aident les personnes selon leur état de santé, leur emploi, leur logement ou leur situation familiale.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Selon le rapport de la vérificatrice générale de 2022, l’accès aux prestations peut être difficile pour de nombreuses raisons (voir ",
+                  },
+                  {
+                    nodeType: "link",
+                    data: {
+                      href: "https://www.oag-bvg.gc.ca/internet/Francais/parl_oag_202205_01_f_44033.html",
+                    },
+                    value:
+                      "L’accès aux prestations pour les populations difficiles à joindre",
+                  },
+                  {
+                    nodeType: "text",
+                    value: ").",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Le rapport énumère quelques-unes de ces raisons. Il énumère aussi des options disponibles pour les gens qui ont besoin d’aide pour faire la demande de prestations.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Le rapport explique que les gens ont souvent recours aux organismes communautaires pour en savoir plus sur l'aide qu’ils pourraient recevoir. Nous avons constaté une tendance similaire dans d’autres projets de recherche. Nous en avons conclu que les travailleuses et travailleurs communautaires jouent un rôle important en aidant les gens à obtenir des prestations gouvernementales. Nous avons donc décidé d’en savoir plus sur les obstacles rencontrés lorsqu’ils accomplissent cette tâche.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Voici quelques problèmes que nous avons identifiés dans nos recherches et d’autres rapports. ",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Il faut du temps pour se renseigner sur les prestations",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Nous avons parlé à plusieurs travailleuses et travailleurs communautaires qui ont dit qu’il faut beaucoup de temps et d’efforts pour se familiariser avec les prestations gouvernementales. La raison est qu’elles sont très nombreuses, proviennent de sources différentes et ont des critères d’admissibilité différents.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Ils nous ont aussi dit qu’il est difficile de comprendre l’information sur les sites Web du gouvernement. C'est également ce qui ressort des rapports que nous avons lus.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Il est difficile de se tenir au courant des nouveautés à propos des prestations",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Nos recherches nous ont appris que les travailleuses et travailleurs communautaires essaient de se tenir au courant des nouvelles concernant les prestations, mais n'ont pas de bon moyen de le faire.",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Il n'existe pas d'endroit où l'on peut consulter toutes les mises à jour. Au lieu de cela, les travailleuses et travailleurs auxquels nous avons parlé ont dit qu'ils avaient trouvé leurs propres solutions. Certaines personnes ont créé des alertes, d’autres se sont abonnées à des bulletins d'information. Malgré cela, elles étaient sûres que des mises à jour leur échappaient.",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Il est difficile de comprendre les conditions d'admissibilité et la procédure de demande",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Les rapports que nous avons lus indiquent qu'il est difficile de demander des prestations parce que les formulaires sont longs et exigent beaucoup d'informations.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Les travailleuses et travailleurs auxquels nous avons parlé ont dit qu'il était difficile de savoir de quels formulaires les gens avaient besoin et où les trouver.",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "La complexité des critères d'admissibilité fait qu'il est difficile de savoir si une personne a droit à une prestation. Cela peut empêcher les gens d'entamer une longue procédure de demande. La plupart ne veulent pas faire cet effort s'ils pensent qu'ils n'ont pas droit à une prestation. ",
+                  },
+                ],
+              },
+              {
+                nodeType: "header",
+                style: "h2",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Nous voulons faciliter la compréhension des prestations gouvernementales ",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Pour résoudre les problèmes identifiés dans nos recherches, nous voulons créer un outil qui simplifie l'information sur les prestations gouvernementales. ",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "Cet outil permettra de mieux :",
+                  },
+                ],
+              },
+              {
+                nodeType: "unordered-list",
+                content: [
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "connaître les prestations;",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "savoir comment présenter une demande;",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "rester au courant des changements.",
+                      },
+                    ],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "En rendant ces informations plus faciles à comprendre, nous pensons que plus de personnes demanderont les prestations auxquelles elles ont droit. ",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+            ],
+          },
+        },
+      ],
+      scLabImage: {
+        scId: "COMMUNITY-WORKERS-IMAGE",
+        scImageEn: {
+          _publishUrl:
+            "https://www.canada.ca/content/dam/decd-endc/images/sclabs/benefits-navigator/community-workers.jpg",
+          width: 555,
+          height: 321,
+        },
+        scImageFr: {
+          _publishUrl:
+            "https://www.canada.ca/content/dam/decd-endc/images/sclabs/benefits-navigator/community-workers.jpg",
+          width: 555,
+          height: 321,
+        },
+        scImageMobileEn: null,
+        scImageMobileFr: null,
+        scImageAltTextEn: "Community workers helping people",
+        scImageAltTextFr:
+          "Travailleuses et travailleurs communautaires qui aident des gens",
+        scImageCaptionEn: {
+          json: null,
+        },
+        scImageCaptionFr: {
+          json: null,
+        },
+      },
+      scLabLayout: "default",
+    },
+  ],
+};
+ 
+TextWithImageCollapse.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Comp-Content-Image-v1",
+      },
+      scId: "NAVIGATOR-DIFFICULTIES-MAIN",
+      scLabContent: [
+        {
+          scId: "FEATURE-DASHBOARD",
+          scContentEn: {
+            json: [
+              {
+                nodeType: "header",
+                style: "h3",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "Information is clearly presented ",
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "On the dashboard, you will find: ",
+                  },
+                ],
+              },
+              {
+                nodeType: "unordered-list",
+                content: [
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "all your benefits on the same page ",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value:
+                          "a menu to access your personal information and security settings",
+                      },
+                    ],
+                  },
+                ],
+              },
+            ],
+          },
+          scContentFr: {
+            json: [
+              {
+                nodeType: "header",
+                style: "h3",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "Information clairement présentée",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value: "Sur le tableau de bord, vous trouverez :",
+                  },
+                ],
+              },
+              {
+                nodeType: "unordered-list",
+                content: [
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "toutes vos prestations sur la même page;",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "list-item",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value:
+                          "un menu pour accéder à vos informations personnelles et à vos paramètres de sécurité.",
+                      },
+                    ],
+                  },
+                ],
+              },
+            ],
+          },
+          scFragments: [
+            {
+              scId: "FEATURE-DASHBOARD",
+              scImageEn: {
+                _publishUrl:
+                  "https://www.canada.ca/content/dam/decd-endc/images/sclabs/client-hub/feature-dashboard-en.png",
+                width: 759,
+                height: 498,
+              },
+              scImageFr: {
+                _publishUrl:
+                  "https://www.canada.ca/content/dam/decd-endc/images/sclabs/client-hub/feature-dashboard-fr.png",
+                width: 758,
+                height: 498,
+              },
+              scImageMobileEn: null,
+              scImageMobileFr: null,
+              scImageAltTextEn:
+                "My dashboard page from My Service Canada Account",
+              scImageAltTextFr:
+                "Page Mon tableau de bord de Mon dossier Service Canada",
+              scImageCaptionEn: {
+                json: null,
+              },
+              scImageCaptionFr: {
+                json: null,
+              },
+              scLongDescHeadingEn: "Text version of the image My dashboard",
+              scLongDescHeadingFr:
+                "Version textuelle de l’image Mon tableau de bord",
+              scLongDescEn: {
+                json: [
+                  {
+                    nodeType: "paragraph",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value: "The dashboard page includes: ",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "unordered-list",
+                    content: [
+                      {
+                        nodeType: "list-item",
+                        content: [
+                          {
+                            nodeType: "text",
+                            value: "a heading with: ",
+                          },
+                          {
+                            nodeType: "unordered-list",
+                            content: [
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "the name of the site: My Service Canada Account ",
+                                  },
+                                ],
+                              },
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value: "an “Account” menu ",
+                                  },
+                                ],
+                              },
+                            ],
+                          },
+                        ],
+                      },
+                      {
+                        nodeType: "list-item",
+                        content: [
+                          {
+                            nodeType: "text",
+                            value: "benefits, such as: ",
+                          },
+                          {
+                            nodeType: "unordered-list",
+                            content: [
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "Employment Insurance, with a link to applications, payments and claims, taxes, reports and documents, personal information ",
+                                  },
+                                  {
+                                    nodeType: "line-break",
+                                    content: [],
+                                  },
+                                ],
+                              },
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "Canada Pension Plan, with a link to applications, payments, taxes, documents, provisions, personal information ",
+                                  },
+                                  {
+                                    nodeType: "line-break",
+                                    content: [],
+                                  },
+                                ],
+                              },
+                            ],
+                          },
+                        ],
+                      },
+                    ],
+                  },
+                ],
+              },
+              scLongDescFr: {
+                json: [
+                  {
+                    nodeType: "paragraph",
+                    content: [
+                      {
+                        nodeType: "text",
+                        value:
+                          "Le tableau de bord contient les éléments suivants : ",
+                      },
+                    ],
+                  },
+                  {
+                    nodeType: "unordered-list",
+                    content: [
+                      {
+                        nodeType: "list-item",
+                        content: [
+                          {
+                            nodeType: "text",
+                            value: "un en-tête avec : ",
+                          },
+                          {
+                            nodeType: "unordered-list",
+                            content: [
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "le nom du site : Mon dossier Service Canada; ",
+                                  },
+                                ],
+                              },
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value: "un menu « Compte »; ",
+                                  },
+                                ],
+                              },
+                            ],
+                          },
+                        ],
+                      },
+                      {
+                        nodeType: "list-item",
+                        content: [
+                          {
+                            nodeType: "text",
+                            value: "des prestations, telles que : ",
+                          },
+                          {
+                            nodeType: "unordered-list",
+                            content: [
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "Assurance-emploi, avec un lien vers les demandes de prestations, paiements et demandes, impôts, rapports et documents, renseignements personnels; ",
+                                  },
+                                ],
+                              },
+                              {
+                                nodeType: "list-item",
+                                content: [
+                                  {
+                                    nodeType: "text",
+                                    value:
+                                      "Régime de pensions du Canada, avec un lien vers les demandes de prestations, paiements, impôts, documents, clauses, renseignements personnels.",
+                                  },
+                                ],
+                              },
+                            ],
+                          },
+                        ],
+                      },
+                    ],
+                  },
+                ],
+              },
+            },
+          ],
+        },
+      ],
+      scLabImage: {
+        scImageEn: {
+          _publishUrl:
+            "https://www.canada.ca/content/dam/decd-endc/images/sclabs/client-hub/feature-dashboard-en.png",
+          width: 759,
+          height: 498,
+        },
+        scImageFr: {
+          _publishUrl:
+            "https://www.canada.ca/content/dam/decd-endc/images/sclabs/client-hub/feature-dashboard-fr.png",
+          width: 758,
+          height: 498,
+        },
+        scImageMobileEn: null,
+        scImageMobileFr: null,
+        scImageAltTextEn: "My dashboard page from My Service Canada Account",
+        scImageAltTextFr:
+          "Page Mon tableau de bord de Mon dossier Service Canada",
+        scImageCaptionEn: {
+          json: null,
+        },
+        scImageCaptionFr: {
+          json: null,
+        },
+        scLongDescHeadingEn: "Text version of the image My dashboard",
+        scLongDescHeadingFr: "Version textuelle de l’image Mon tableau de bord",
+        scLongDescEn: {
+          json: [
+            {
+              nodeType: "paragraph",
+              content: [
+                {
+                  nodeType: "text",
+                  value: "The dashboard page includes: ",
+                },
+              ],
+            },
+            {
+              nodeType: "unordered-list",
+              content: [
+                {
+                  nodeType: "list-item",
+                  content: [
+                    {
+                      nodeType: "text",
+                      value: "a heading with: ",
+                    },
+                    {
+                      nodeType: "unordered-list",
+                      content: [
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "the name of the site: My Service Canada Account",
+                            },
+                          ],
+                        },
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value: "an “Account” menu",
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                  ],
+                },
+                {
+                  nodeType: "list-item",
+                  content: [
+                    {
+                      nodeType: "text",
+                      value: "benefits, such as: ",
+                    },
+                    {
+                      nodeType: "unordered-list",
+                      content: [
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "Employment Insurance, with a link to applications, payments and claims, taxes, reports and documents, personal information",
+                            },
+                            {
+                              nodeType: "line-break",
+                              content: [],
+                            },
+                          ],
+                        },
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "Canada Pension Plan, with a link to applications, payments, taxes, documents, provisions, personal information",
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+        scLongDescFr: {
+          json: [
+            {
+              nodeType: "paragraph",
+              content: [
+                {
+                  nodeType: "text",
+                  value: "Le tableau de bord contient les éléments suivants : ",
+                },
+              ],
+            },
+            {
+              nodeType: "unordered-list",
+              content: [
+                {
+                  nodeType: "list-item",
+                  content: [
+                    {
+                      nodeType: "text",
+                      value: "un en-tête avec : ",
+                    },
+                    {
+                      nodeType: "unordered-list",
+                      content: [
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "le nom du site : Mon dossier Service Canada; ",
+                            },
+                          ],
+                        },
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value: "un menu « Compte »; ",
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                  ],
+                },
+                {
+                  nodeType: "list-item",
+                  content: [
+                    {
+                      nodeType: "text",
+                      value: "des prestations, telles que : ",
+                    },
+                    {
+                      nodeType: "unordered-list",
+                      content: [
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "Assurance-emploi, avec un lien vers les demandes de prestations, paiements et demandes, impôts, rapports et documents, renseignements personnels; ",
+                            },
+                          ],
+                        },
+                        {
+                          nodeType: "list-item",
+                          content: [
+                            {
+                              nodeType: "text",
+                              value:
+                                "Régime de pensions du Canada, avec un lien vers les demandes de prestations, paiements, impôts, documents, clauses, renseignements personnels.",
+                            },
+                          ],
+                        },
+                      ],
+                    },
+                  ],
+                },
+              ],
+            },
+          ],
+        },
+      },
+      scLabLayout: "image-vertical-line-content",
+      scLongDescHeadingEn: CollapseData.scLongDescHeadingEn,
+      scLongDescHeadingFr: CollapseData.scLongDescHeadingFr,
+      scLongDescEn: CollapseData.scLongDescEn,
+      scLongDescFr: CollapseData.scLongDescFr,
+    },
+  ],
+};
+ 
+TextContent.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Content-v1",
+      },
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/components/tooltips/information-alpha",
+      scId: "INFORMATION-ALPHA-SCLABS",
+      scTitleEn: "Information",
+      scTitleFr: "Information",
+      scContentEn: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Alpha:",
+                format: {
+                  variants: ["strong"],
+                },
+              },
+              {
+                nodeType: "text",
+                value:
+                  " Building a draft tool or service and testing it to see if it meets needs.",
+              },
+            ],
+          },
+        ],
+      },
+      scContentFr: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Alpha : ",
+                format: {
+                  variants: ["strong"],
+                },
+              },
+              {
+                nodeType: "text",
+                value:
+                  "Construire une première version d’un outil ou d’un service et le tester pour savoir s’il répond aux besoins.",
+              },
+            ],
+          },
+        ],
+      },
+    },
+  ],
+};
+ 
+ImageWithCollapse.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Image-v1",
+      },
+      scId: "NEWS-IMAGE",
+      scImageEn: {
+        _publishUrl: CollapseData.scImageEn._publishUrl,
+        width: CollapseData.scImageEn.width,
+        height: CollapseData.scImageEn.height,
+      },
+      scImageFr: {
+        _publishUrl:
+          "https://www.canada.ca/content/dam/decd-endc/images/sclabs/benefits-navigator/news-fr.png",
+        width: 1363,
+        height: 890,
+      },
+      scImageMobileEn: null,
+      scImageMobileFr: null,
+      scImageAltTextEn: "Benefit news and updates page",
+      scImageAltTextFr: "Page Nouvelles et mises à jour sur les prestations",
+      scImageCaptionEn: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Figure 1",
+              },
+            ],
+          },
+        ],
+      },
+      scImageCaptionFr: {
+        json: [
+          {
+            nodeType: "paragraph",
+            content: [
+              {
+                nodeType: "text",
+                value: "Figure 1",
+              },
+            ],
+          },
+        ],
+      },
+      scLongDescHeadingEn: CollapseData.scLongDescHeadingEn,
+      scLongDescHeadingFr: CollapseData.scLongDescHeadingFr,
+      scLongDescEn: CollapseData.scLongDescEn,
+      scLongDescFr: CollapseData.scLongDescFr,
+    },
+  ],
+};
+ 
+Button.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Button-v1",
+      },
+      scId: "SIGN-IN-MSCA-BUTTON",
+      scTitleEn: "Sign in to My Service Canada Account",
+      scTitleFr: "Se connecter à Mon dossier Service Canada",
+      scDestinationURLEn:
+        "https://www.canada.ca/en/employment-social-development/services/my-account.html",
+      scDestinationURLFr:
+        "https://www.canada.ca/fr/emploi-developpement-social/services/mon-dossier.html",
+      scButtonType: ["gc:custom/decd-endc/button-type/primary"],
+    },
+  ],
+};
+ 
+QuoteVerticalLineContent.args = {
+  locale: "en",
+  fragments: [
+    {
+      _model: {
+        title: "SCLabs-Comp-Content-v1",
+      },
+      scId: "ESTIMATOR-FUTURE-ESTIMATE-COMMENT-1",
+      scLabContent: [
+        {
+          scContentEn: {
+            json: [
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "I didn’t like having to change my birth year to get an estimate",
+                  },
+                ],
+              },
+            ],
+          },
+          scContentFr: {
+            json: [
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Je n’aimais pas devoir changer mon année de naissance pour avoir une estimation",
+                  },
+                ],
+              },
+            ],
+          },
+        },
+        {
+          scContentEn: {
+            json: [
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "We now generate results that give future estimates to those who aren’t eligible yet. ",
+                  },
+                ],
+              },
+            ],
+          },
+          scContentFr: {
+            json: [
+              {
+                nodeType: "paragraph",
+                content: [
+                  {
+                    nodeType: "text",
+                    value:
+                      "Nous générons maintenant des résultats qui donnent des estimations futures aux personnes qui ne sont pas encore admissibles. ",
+                  },
+                  {
+                    nodeType: "line-break",
+                    content: [],
+                  },
+                ],
+              },
+            ],
+          },
+        },
+      ],
+      scLabLayout: "quote",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/PageHead.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/PageHead.js.html new file mode 100644 index 0000000000..a42af07fd3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/PageHead.js.html @@ -0,0 +1,568 @@ + + + + + + Code coverage report for components/fragment_renderer/PageHead.js + + + + + + + + + +
+
+

All files / components/fragment_renderer PageHead.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 0% + Branches + 0/30 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+ 
+export default function PageHead(props) {
+  return (
+    <Head>
+      {/* Primary HTML Meta Tags */}
+      <title>
+        {props.locale === "en"
+          ? `${props.pageData.scTitleEn} - Service Canada Labs`
+          : `${props.pageData.scTitleFr} - Laboratoires de Service Canada`}
+      </title>
+      <meta
+        name="description"
+        content={
+          props.locale === "en"
+            ? props.pageData.scDescriptionEn.json[0].content[0].value
+            : props.pageData.scDescriptionFr.json[0].content[0].value
+        }
+      />
+      <meta name="author" content="Service Canada" />
+      <link rel="icon" href="/favicon.ico" />
+      <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+      <meta
+        name="keywords"
+        content={
+          props.locale === "en"
+            ? props.pageData.scKeywordsEn
+            : props.pageData.scKeywordsFr
+        }
+      />
+ 
+      {/* DCMI Meta Tags */}
+      <meta
+        name="dcterms.title"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta
+        name="dcterms.language"
+        content={props.locale === "en" ? "eng" : "fra"}
+        title="ISO639-2/T"
+      />
+      <meta
+        name="dcterms.creator"
+        content={
+          props.locale === "en"
+            ? "Employment and Social Development Canada"
+            : "Emploi et Développement social Canada"
+        }
+      />
+      <meta name="dcterms.accessRights" content="2" />
+      <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+      <meta name="dcterms.issued" title="W3CDTF" content="2023-07-07" />
+ 
+      <meta name="dcterms.modified" title="W3CDTF" content="2023-07-07" />
+      <meta
+        name="dcterms.description"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta
+        name="dcterms.subject"
+        title="gccore"
+        content={props.pageData.scSubject}
+      />
+      <meta name="dcterms.spatial" content="Canada" />
+ 
+      {/* Open Graph / Facebook */}
+      <meta property="og:type" content="website" />
+      <meta property="og:locale" content={props.locale} />
+      <meta
+        property="og:url"
+        content={
+          "https://alpha.service.canada.ca" +
+          `${
+            props.locale === "en"
+              ? props.pageData.scPageNameEn
+              : props.pageData.scPageNameFr
+          }`
+        }
+      />
+      <meta
+        property="og:title"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta
+        property="og:description"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta
+        property="og:image"
+        content={props.pageData.scSocialMediaImageEn?._publishUrl}
+      />
+      <meta
+        property="og:image:alt"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+ 
+      {/* Twitter */}
+      <meta name="twitter:card" content="summary_large_image" />
+      <meta
+        name="twitter:url"
+        content={
+          "https://alpha.service.canada.ca" +
+          `${
+            props.locale === "en"
+              ? props.pageData.scPageNameEn
+              : props.pageData.scPageNameFr
+          }`
+        }
+      />
+      <meta
+        name="twitter:title"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta name="twitter:creator" content="Service Canada" />
+      <meta
+        name="twitter:description"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+      <meta
+        name="twitter:image"
+        content={props.pageData.scSocialMediaImageEn?._publishUrl}
+      />
+      <meta
+        name="twitter:image:alt"
+        content={
+          props.locale === "en"
+            ? props.pageData.scTitleEn
+            : props.pageData.scTitleFr
+        }
+      />
+    </Head>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.js.html new file mode 100644 index 0000000000..8645e72aac --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ArticleCTA.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ArticleCTA.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +145x +  +6x +  +  +  +  +  +  +  +  +  +  + 
import { CTA } from "../../molecules/CTA";
+ 
+export default function ArticleCTA({ heading, body, ButtonProps, LinkProps }) {
+  return (
+    <CTA
+      heading={heading}
+      body={body}
+      ButtonProps={ButtonProps}
+      LinkProps={LinkProps}
+      containerClass="layout-container my-4"
+    />
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.stories.js.html new file mode 100644 index 0000000000..8b2b296d40 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ArticleCTA.stories.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ArticleCTA.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ArticleCTA.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +231x +1x +  +1x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import ArticleCTA from "./ArticleCTA";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/ArticleCTA",
+  component: ArticleCTA,
+};
+ 
+const Template = (args) => <ArticleCTA {...args} />;
+ 
+export const Default = Template.bind({});
+Default.args = {
+  heading: "This is a heading",
+  body: "This is a body",
+  ButtonProps: {
+    text: "Action Button",
+  },
+  LinkProps: {
+    id: "privacy-policy",
+    text: "Review the Privacy Policy",
+  },
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.js.html new file mode 100644 index 0000000000..389b8178ed --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.js.html @@ -0,0 +1,184 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/BasicTextWithImage.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components BasicTextWithImage.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +346x +6x +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Image from "next/image";
+import TextRender from "../../text_node_renderer/TextRender";
+ 
+export default function BasicTextWithImage({
+  src,
+  alt,
+  width,
+  height,
+  data,
+  excludeH1,
+}) {
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-6 my-12">
+      <div className="hidden lg:grid col-start-8 col-span-5 row-start-1 row-span-2">
+        <div className="flex justify-center">
+          <div className="h-auto">
+            <Image
+              src={src}
+              alt={alt}
+              width={width}
+              height={height}
+              sizes="50vw"
+              quality={100}
+            />
+          </div>
+        </div>
+      </div>
+      <div className="col-span-12 lg:col-span-7">
+        <TextRender data={data} excludeH1={excludeH1} />
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js.html new file mode 100644 index 0000000000..5d62ae5e4e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js.html @@ -0,0 +1,172 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components BasicTextWithImage.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +301x +1x +  +1x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import BasicTextWithImage from "./BasicTextWithImage";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/BasicTextWithImage",
+  component: BasicTextWithImage,
+};
+ 
+const Template = (args) => <BasicTextWithImage {...args} />;
+ 
+export const Default = Template.bind({});
+Default.args = {
+  src: "https://www.canada.ca/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+  alt: "image alt text",
+  width: 359,
+  height: 260,
+  data: [
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value:
+            "Every week, our product team meets for Feedback Friday to sort through all the new survey responses. We look at the ratings and comments people shared with us about their experience. ",
+        },
+      ],
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.js.html new file mode 100644 index 0000000000..9e00c6c169 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/Button.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components Button.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +245x +  +7x +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ActionButton } from "../../atoms/ActionButton";
+ 
+export default function Button({ id, buttonType, href, text }) {
+  const style =
+    buttonType === null
+      ? "primary"
+      : buttonType === "gc:custom/decd-endc/button-type/primary"
+      ? "primary"
+      : buttonType === "gc:custom/decd-endc/button-type/secondary"
+      ? "secondary"
+      : "primary";
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-6 my-12">
+      <ActionButton
+        id={id}
+        style={style}
+        custom="col-span-12"
+        href={href}
+        text={text}
+      />
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.stories.js.html new file mode 100644 index 0000000000..778961d139 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/Button.stories.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/Button.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components Button.stories.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +261x +1x +  +1x +  +  +  +  +  +  +1x +1x +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import * as React from "react";
+import Button from "./Button";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/Button",
+  component: Button,
+};
+ 
+const Template = (args) => <Button {...args} />;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+Primary.args = {
+  id: "Primary",
+  buttonType: "gc:custom/decd-endc/button-type/primary",
+  href: "/",
+  text: "Primary Button",
+};
+ 
+Secondary.args = {
+  id: "Secondary",
+  buttonType: "gc:custom/decd-endc/button-type/secondary",
+  href: "/",
+  text: "Secondary Button",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.js.html new file mode 100644 index 0000000000..9b866fcabb --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageFragment.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageFragment.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Image from "next/image";
+ 
+export default function ImageFragment(props) {
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-6 my-12">
+      <Image
+        id={props.scId}
+        src={
+          props.locale === "en"
+            ? props.fragmentData.scImageEn._publishUrl
+            : props.fragmentData.scImageFr._publishUrl
+        }
+        alt={
+          props.locale === "en"
+            ? props.fragmentData.scImageAltTextEn
+            : props.fragmentData.scImageAltTextFr
+        }
+        className="col-span-12 lg:col-span-10"
+        width={props.fragmentData.scImageEn.width}
+        height={props.fragmentData.scImageEn.height}
+        sizes="(max-width: 768px) 100vw, 80vw"
+        quality={100}
+      />
+      <p className="grid row-start-2 col-span-12 lg:col-span-10 justify-around">
+        {props.locale === "en"
+          ? props.fragmentData.scImageCaptionEn.json[0].content[0].value
+          : props.fragmentData.scImageCaptionFr.json[0].content[0].value}
+      </p>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.stories.js.html new file mode 100644 index 0000000000..d97262f2fd --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageFragment.stories.js.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageFragment.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageFragment.stories.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import ImageFragment from "./ImageFragment";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/ImageFragment",
+  component: ImageFragment,
+};
+ 
+// const Template = (args) => <ImageFragment {...args} />;
+ 
+// export const Default = Template.bind({});
+ 
+// Default.args = {
+//   locale: "en",
+//   id: "Primary",
+//   src: "/image1.png",
+//   alt: "alt text",
+//   width: 359,
+//   height: 260
+// };
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.js.html new file mode 100644 index 0000000000..278dd51994 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageVerticalLineContent.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageVerticalLineContent.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +446x +6x +6x +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Image from "next/image";
+import TextRender from "../../text_node_renderer/TextRender";
+import { Collapse } from "../../molecules/Collapse";
+ 
+export default function ImageVerticalLineContent({
+  src,
+  alt,
+  width,
+  height,
+  data,
+  longDesc,
+  title,
+  children,
+}) {
+  return (
+    <div className="layout-container">
+      <div className="grid grid-cols-12 gap-x-6 mb-9">
+        <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+          <Image
+            src={src}
+            alt={alt}
+            height={height}
+            width={width}
+            sizes="100vw"
+            quality={100}
+          />
+        </div>
+        <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+          <div className="py-4 pl-4 border-l-4 border-multi-blue-blue60f">
+            <TextRender data={data} />
+          </div>
+        </div>
+        {longDesc ? (
+          <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+            <Collapse data-testid="summary" title={title} children={children} />
+          </div>
+        ) : (
+          ""
+        )}
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js.html new file mode 100644 index 0000000000..bece2dc19c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js.html @@ -0,0 +1,475 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageVerticalLineContent.stories.js

+
+ +
+ 91.66% + Statements + 11/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +1311x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import ImageVerticalLineContent from "./ImageVerticalLineContent";
+import TextRender from "../../text_node_renderer/TextRender";
+import { CollapseData } from "../../../__mocks__/mockStore";
+ 
+export default {
+  title:
+    "Components/Fragment_Renderer/Fragment_Components/ImageVerticalLineContent",
+  component: ImageVerticalLineContent,
+  decorators: [
+    (Story) => (
+      <div className="layout-container">
+        <Story />
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <ImageVerticalLineContent {...args} />;
+ 
+export const Default = Template.bind({});
+export const WithCollapse = Template.bind({});
+Default.args = {
+  id: "ImageVerticalLineContent",
+  src: CollapseData.scImageEn._publishUrl,
+  alt: "image alt text",
+  width: CollapseData.scImageEn.width,
+  height: CollapseData.scImageEn.height,
+  data: [
+    {
+      nodeType: "header",
+      style: "h3",
+      content: [
+        {
+          nodeType: "text",
+          value: "Information is clearly presented ",
+        },
+      ],
+    },
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "On the dashboard, you will find: ",
+        },
+      ],
+    },
+    {
+      nodeType: "unordered-list",
+      content: [
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value: "all your benefits on the same page ",
+            },
+          ],
+        },
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value:
+                "a menu to access your personal information and security settings",
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
+ 
+WithCollapse.args = {
+  id: "ImageVerticalLineContent",
+  src: CollapseData.scImageEn._publishUrl,
+  alt: "image alt text",
+  width: 759,
+  height: 497,
+  data: [
+    {
+      nodeType: "header",
+      style: "h3",
+      content: [
+        {
+          nodeType: "text",
+          value: "Information is clearly presented ",
+        },
+      ],
+    },
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "On the dashboard, you will find: ",
+        },
+      ],
+    },
+    {
+      nodeType: "unordered-list",
+      content: [
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value: "all your benefits on the same page ",
+            },
+          ],
+        },
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value:
+                "a menu to access your personal information and security settings",
+            },
+          ],
+        },
+      ],
+    },
+  ],
+  title: "Example Title",
+  longDesc: "Test Description",
+  children: <TextRender data={CollapseData.scLongDescEn.json} />,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.js.html new file mode 100644 index 0000000000..c62283e7ab --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageWithCollapse.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageWithCollapse.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +445x +5x +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Collapse } from "../../molecules/Collapse";
+import Image from "next/image";
+ 
+export default function ImageWithCollapse({
+  id,
+  src,
+  alt,
+  width,
+  height,
+  content,
+  longDesc,
+  title,
+  children,
+}) {
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-6 my-12">
+      <Image
+        id={id}
+        src={src}
+        alt={alt}
+        className="col-span-12 lg:col-span-10"
+        width={width}
+        height={height}
+        sizes="100vw"
+        quality={100}
+      />
+      {content ? (
+        <p className="grid row-start-2 col-span-12 lg:col-span-10 justify-around mb-8">
+          {content}
+        </p>
+      ) : (
+        ""
+      )}
+      {longDesc ? (
+        <div className="grid row-start-3 col-span-12 lg:col-span-10">
+          <Collapse title={title} children={children} />
+        </div>
+      ) : (
+        ""
+      )}
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js.html new file mode 100644 index 0000000000..a5c336efa6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js.html @@ -0,0 +1,157 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components ImageWithCollapse.stories.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +251x +1x +1x +1x +  +1x +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import ImageWithCollapse from "./ImageWithCollapse";
+import TextRender from "../../text_node_renderer/TextRender";
+import { CollapseData } from "../../../__mocks__/mockStore";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/ImageWithCollapse",
+  component: ImageWithCollapse,
+};
+ 
+const Template = (args) => <ImageWithCollapse {...args} />;
+ 
+export const Default = Template.bind({});
+Default.args = {
+  id: "ImageWithCollapse",
+  src: CollapseData.scImageEn._publishUrl,
+  alt: "image alt text",
+  width: CollapseData.scImageEn.width,
+  height: CollapseData.scImageEn.height,
+  content: CollapseData.scImageCaptionEn.json[0].content[0].value,
+  title: "Example Title",
+  longDesc: "Test Description",
+  children: <TextRender data={CollapseData.scLongDescEn.json} />,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js.html new file mode 100644 index 0000000000..2d652a8d19 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components QuoteVerticalLineContent.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +245x +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import TextRender from "../../text_node_renderer/TextRender";
+ 
+export default function QuoteVerticalLineContent({
+  quoteText,
+  explanationtext,
+}) {
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-4 my-12">
+      <div className="col-span-12 xl:col-span-3">
+        <div className="speech-bubble">
+          <div className="speech-bubble-top">
+            <blockquote className="speech-bubble-quote">
+              <TextRender data={quoteText} />
+            </blockquote>
+          </div>
+        </div>
+      </div>
+      <div className="col-span-12 lg:col-span-7 xl:col-span-4 xxl:-ml-14 h-fit p-5 border-l-4 border-multi-blue-blue60f">
+        <TextRender data={explanationtext} />
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js.html new file mode 100644 index 0000000000..5eab542aaf --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js.html @@ -0,0 +1,196 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components QuoteVerticalLineContent.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +381x +1x +  +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import QuoteVerticalLineContent from "./QuoteVerticalLineContent";
+ 
+export default {
+  title:
+    "Components/Fragment_Renderer/Fragment_Components/QuoteVerticalLineContent",
+  component: QuoteVerticalLineContent,
+};
+ 
+const Template = (args) => <QuoteVerticalLineContent {...args} />;
+ 
+export const Default = Template.bind({});
+Default.args = {
+  locale: "en",
+  quoteText: [
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "Quote Text",
+        },
+      ],
+    },
+  ],
+  explanationtext: [
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "Explanation Text",
+        },
+      ],
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.js.html new file mode 100644 index 0000000000..a02e7ed94b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/TextContent.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components TextContent.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +125x +  +6x +  +  +  +  +  +  +  +  + 
import TextRender from "../../text_node_renderer/TextRender";
+ 
+export default function TextContent({ data }) {
+  return (
+    <div className="layout-container grid grid-cols-12 gap-x-6 my-12">
+      <div className="col-span-12 lg:col-span-7">
+        <TextRender data={data} excludeH1={true} />
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.stories.js.html new file mode 100644 index 0000000000..18abd30779 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextContent.stories.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/TextContent.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components TextContent.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +271x +1x +  +1x +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import TextContent from "./TextContent";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/TextContent",
+  component: TextContent,
+};
+ 
+const Template = (args) => <TextContent {...args} />;
+ 
+export const Default = Template.bind({});
+ 
+Default.args = {
+  data: [
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value:
+            "Every week, our product team meets for Feedback Friday to sort through all the new survey responses. We look at the ratings and comments people shared with us about their experience. ",
+        },
+      ],
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.js.html new file mode 100644 index 0000000000..489ecedd40 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.js.html @@ -0,0 +1,220 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/TextWithImage.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components TextWithImage.js

+
+ +
+ 80% + Statements + 4/5 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 80% + Lines + 4/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +465x +5x +  +8x +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import BasicTextWithImage from "./BasicTextWithImage";
+import ImageVerticalLineContent from "./ImageVerticalLineContent";
+ 
+export default function TextWithImage({
+  src,
+  alt,
+  width,
+  height,
+  data,
+  layout,
+  title,
+  longDesc,
+  children,
+  excludeH1,
+}) {
+  switch (layout) {
+    case "default":
+      return (
+        <BasicTextWithImage
+          src={src}
+          alt={alt}
+          width={width}
+          height={height}
+          data={data}
+          excludeH1={excludeH1}
+        />
+      );
+    case "image-vertical-line-content":
+      return (
+        <ImageVerticalLineContent
+          src={src}
+          alt={alt}
+          width={width}
+          height={height}
+          data={data}
+          title={title}
+          longDesc={longDesc}
+          children={children}
+          excludeH1={excludeH1}
+        />
+      );
+    default:
+      break;
+  }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.stories.js.html new file mode 100644 index 0000000000..d9bb18f216 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/TextWithImage.stories.js.html @@ -0,0 +1,517 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components/TextWithImage.stories.js + + + + + + + + + +
+
+

All files / components/fragment_renderer/fragment_components TextWithImage.stories.js

+
+ +
+ 93.33% + Statements + 14/15 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +1451x +1x +1x +1x +  +1x +  +  +  +  +  +  +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as React from "react";
+import TextWithImage from "./TextWithImage";
+import TextRender from "../../text_node_renderer/TextRender";
+import { CollapseData } from "../../../__mocks__/mockStore";
+ 
+export default {
+  title: "Components/Fragment_Renderer/Fragment_Components/TextWithImage",
+  component: TextWithImage,
+};
+ 
+const Template = (args) => <TextWithImage {...args} />;
+ 
+export const Default = Template.bind({});
+export const Vertical = Template.bind({});
+export const VerticalWithCollapse = Template.bind({});
+ 
+Default.args = {
+  src: "/image2.png",
+  alt: "image alt text",
+  width: 759,
+  height: 498,
+  layout: "default",
+  data: [
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value:
+            "Every week, our product team meets for Feedback Friday to sort through all the new survey responses. We look at the ratings and comments people shared with us about their experience. ",
+        },
+      ],
+    },
+  ],
+};
+ 
+Vertical.args = {
+  src: CollapseData.scImageEn._publishUrl,
+  alt: "image alt text",
+  width: CollapseData.scImageEn.width,
+  height: CollapseData.scImageEn.height,
+  layout: "image-vertical-line-content",
+  data: [
+    {
+      nodeType: "header",
+      style: "h3",
+      content: [
+        {
+          nodeType: "text",
+          value: "Information is clearly presented ",
+        },
+      ],
+    },
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "On the dashboard, you will find: ",
+        },
+      ],
+    },
+    {
+      nodeType: "unordered-list",
+      content: [
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value: "all your benefits on the same page ",
+            },
+          ],
+        },
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value:
+                "a menu to access your personal information and security settings",
+            },
+          ],
+        },
+      ],
+    },
+  ],
+};
+ 
+VerticalWithCollapse.args = {
+  src: CollapseData.scImageEn._publishUrl,
+  alt: "image alt text",
+  width: CollapseData.scImageEn.width,
+  height: CollapseData.scImageEn.height,
+  layout: "image-vertical-line-content",
+  data: [
+    {
+      nodeType: "header",
+      style: "h3",
+      content: [
+        {
+          nodeType: "text",
+          value: "Information is clearly presented ",
+        },
+      ],
+    },
+    {
+      nodeType: "paragraph",
+      content: [
+        {
+          nodeType: "text",
+          value: "On the dashboard, you will find: ",
+        },
+      ],
+    },
+    {
+      nodeType: "unordered-list",
+      content: [
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value: "all your benefits on the same page ",
+            },
+          ],
+        },
+        {
+          nodeType: "list-item",
+          content: [
+            {
+              nodeType: "text",
+              value:
+                "a menu to access your personal information and security settings",
+            },
+          ],
+        },
+      ],
+    },
+  ],
+  title: "Example Title",
+  longDesc: "Test Description",
+  children: <TextRender data={CollapseData.scLongDescEn.json} />,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/index.html new file mode 100644 index 0000000000..2b6e66ab2d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/fragment_components/index.html @@ -0,0 +1,371 @@ + + + + + + Code coverage report for components/fragment_renderer/fragment_components + + + + + + + + + +
+
+

All files components/fragment_renderer/fragment_components

+
+ +
+ 85.57% + Statements + 89/104 +
+ + +
+ 42.1% + Branches + 8/19 +
+ + +
+ 88.88% + Functions + 8/9 +
+ + +
+ 92.77% + Lines + 77/83 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ArticleCTA.js +
+
100%2/2100%0/0100%1/1100%2/2
ArticleCTA.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
BasicTextWithImage.js +
+
100%3/3100%0/0100%1/1100%3/3
BasicTextWithImage.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Button.js +
+
100%3/366.66%4/6100%1/1100%3/3
Button.stories.js +
+
90%9/10100%0/0100%0/0100%7/7
ImageFragment.js +
+
0%0/20%0/60%0/10%0/2
ImageFragment.stories.js +
+
0%0/4100%0/0100%0/00%0/3
ImageVerticalLineContent.js +
+
100%4/4100%2/2100%1/1100%4/4
ImageVerticalLineContent.stories.js +
+
91.66%11/12100%0/0100%0/0100%9/9
ImageWithCollapse.js +
+
100%3/350%2/4100%1/1100%3/3
ImageWithCollapse.stories.js +
+
88.88%8/9100%0/0100%0/0100%7/7
QuoteVerticalLineContent.js +
+
100%2/2100%0/0100%1/1100%2/2
QuoteVerticalLineContent.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
TextContent.js +
+
100%2/2100%0/0100%1/1100%2/2
TextContent.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
TextWithImage.js +
+
80%4/50%0/1100%1/180%4/5
TextWithImage.stories.js +
+
93.33%14/15100%0/0100%0/0100%11/11
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/index.html new file mode 100644 index 0000000000..fe73d67a46 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/fragment_renderer/index.html @@ -0,0 +1,146 @@ + + + + + + Code coverage report for components/fragment_renderer + + + + + + + + + +
+
+

All files components/fragment_renderer

+
+ +
+ 89.28% + Statements + 50/56 +
+ + +
+ 43.01% + Branches + 40/93 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 89.58% + Lines + 43/48 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
FragmentRender.js +
+
89.28%25/2863.49%40/63100%3/389.28%25/28
FragmentRender.stories.js +
+
96.15%25/26100%0/0100%0/0100%18/18
PageHead.js +
+
0%0/20%0/300%0/10%0/2
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/index.html new file mode 100644 index 0000000000..4a4447e9e9 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for components + + + + + + + + + +
+
+

All files components

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/1100%0/0100%0/00%0/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/index.js.html new file mode 100644 index 0000000000..575d106264 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/index.js.html @@ -0,0 +1,88 @@ + + + + + + Code coverage report for components/index.js + + + + + + + + + +
+
+

All files / components index.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2  + 
import "prop-types";
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.js.html new file mode 100644 index 0000000000..eab69a2176 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/molecules/CTA.js + + + + + + + + + +
+
+

All files / components/molecules CTA.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 66.66% + Branches + 2/3 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +426x +6x +6x +  +7x +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { DSButton } from "../atoms/DSButton";
+import { Link } from "../atoms/Link";
+import { Image } from "../atoms/Image";
+ 
+export function CTA({
+  heading,
+  body,
+  ButtonProps,
+  LinkProps,
+  containerClass = "",
+}) {
+  // Check if body prop is HTML content
+  const isHTML = (str) => /<\/?[a-z][\s\S]*>/i.test(str);
+ 
+  return (
+    <div className="bg-multi-blue-blue2 p-3">
+      <div className={`flex flex-row ${containerClass}`}>
+        <div className="flex flex-col w-[60px] shrink-0">
+          <Image alt="icon" src="/comment_bubble.svg" className="w-[60px]" />
+          <div className="flex-grow divide-x-2 divide-multi-blue-blue60a flex flex-row justify-center mt-3">
+            <div></div>
+            <div></div>
+          </div>
+        </div>
+        <div className="pt-0 pl-5">
+          <h3 className={`leading-[40px] text-multi-neutrals-grey100`}>
+            {heading}
+          </h3>
+          {isHTML(body) ? body : <p className="body">{body}</p>}
+          <DSButton
+            styling="primary"
+            className="my-3"
+            type="button"
+            {...ButtonProps}
+          />
+          {LinkProps && <Link {...LinkProps} />}
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.stories.js.html new file mode 100644 index 0000000000..e2e9ef7e3b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CTA.stories.js.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for components/molecules/CTA.stories.js + + + + + + + + + +
+
+

All files / components/molecules CTA.stories.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +311x +1x +1x +  +  +  +  +  +  +4x +1x +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  + 
import * as React from "react";
+import { CTA } from "./CTA";
+export default {
+  title: "Components/Molecules/CTA",
+  component: CTA,
+};
+ 
+const Template = (args) => <CTA {...args} />;
+ 
+export const Default = Template.bind({});
+Default.args = {
+  heading: "This is a call-to-action!",
+  body: "This sentence explains the action we want the users to take.",
+  ButtonProps: {
+    text: "Action Button",
+  },
+  LinkProps: {
+    id: "privacy-policy",
+    text: "Review the Privacy Policy",
+  },
+};
+ 
+export const WithoutLink = Template.bind({});
+WithoutLink.args = {
+  heading: "This is a call-to-action!",
+  body: "This sentence explains the action we want the users to take.",
+  ButtonProps: {
+    text: "Action Button",
+  },
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.js.html new file mode 100644 index 0000000000..6d7eee09c4 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.js.html @@ -0,0 +1,601 @@ + + + + + + Code coverage report for components/molecules/Card.js + + + + + + + + + +
+
+

All files / components/molecules Card.js

+
+ +
+ 91.66% + Statements + 11/12 +
+ + +
+ 66.66% + Branches + 10/15 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 10/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +17310x +10x +10x +10x +10x +  +  +  +  +  +10x +32x +  +  +  +  +  +  +32x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +10x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +31x + 
import React from "react";
+import PropTypes from "prop-types";
+import Link from "next/link";
+import { ActionButton } from "../atoms/ActionButton";
+import Image from "next/image";
+ 
+/**
+ * Displays an experiment card on the page
+ */
+ 
+export const Card = (props) => {
+  const tagColours = {
+    current_projects: "custom-green",
+    past_projects: "custom-gray",
+    upcoming_projects: "custom-blue",
+    new_update: "new-update",
+  };
+ 
+  const tagColour = tagColours[props.tag] ?? "custom-gray";
+ 
+  return (
+    <Link href={props.href}>
+      <div
+        className={`h-full group card-shadow border border-custom-gray-border rounded-md py-4 hover:cursor-pointer ${
+          "border-" + tagColour + ` ${props.customStyling}`
+        }`}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+      >
+        {props.showImage ? (
+          <div className="h-[208px] flex justify-center">
+            <Image
+              src={props.imgSrc}
+              alt={props.imgAlt}
+              className="object-contain"
+              width={props.imgWidth}
+              height={props.imgHeight}
+              // Cards are single column up to 768px
+              sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"
+              quality={100}
+            />
+          </div>
+        ) : (
+          ""
+        )}
+        <div className="flex">
+          <p
+            className={
+              `block font-display text-[22px] leading-7 text-custom-blue-projects-link font-bold underline underline-offset-[2px] my-1 py-2 px-6 items-center group-hover:text-custom-blue-projects-link-hover` +
+              ` ${props.cardHeadingStyling}`
+            }
+          >
+            {props.title}
+            {props.showIcon ? (
+              props.href.substring(0, 8) === "https://" ? (
+                <div className="h-4 w-4 ml-1 mt-1 relative">
+                  <img src={props.icon} alt={props.iconAlt} />
+                </div>
+              ) : (
+                ""
+              )
+            ) : (
+              ""
+            )}
+          </p>
+          {props.showTag ? (
+            <span
+              className={`block w-max py-2 px-2 font-body font-bold border-l-4 mr-6 mt-auto mb-auto border-${tagColour}-darker bg-${tagColour}-lighter
+              `}
+            >
+              {props.tagLabel}
+            </span>
+          ) : (
+            ""
+          )}
+        </div>
+        {props.showDate ? (
+          <p className="ml-6 text-base text-custom-gray-date">
+            {"Posted: " + props.datePosted.substring(0, 10)}
+          </p>
+        ) : (
+          ""
+        )}
+        {props.htmlDesc ? (
+          props.htmlDesc
+        ) : (
+          <p className="text-custom-gray-text mx-6">{props.description}</p>
+        )}
+        {props.showButton ? (
+          <ActionButton
+            href={props.btnHref}
+            text={props.btnText}
+            id={props.btnId}
+            dataCy={props.btnId}
+            className="flex mt-6 mb-2 ml-4 rounded xxs:w-full xs:w-fit py-2 bg-[#EAEBED] text-custom-blue-text focus:ring-inset focus:ring-2 focus:ring-black hover:bg-details-button-hover-gray text-center border border-details-button-gray"
+          />
+        ) : (
+          ""
+        )}
+      </div>
+    </Link>
+  );
+};
+ 
+Card.propTypes = {
+  /**
+   * Title of the experiment card.
+   */
+  title: PropTypes.string.isRequired,
+ 
+  /**
+   * tag of the experiment card
+   */
+  tag: PropTypes.string,
+ 
+  /**
+   * Link of the card
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * the label of the tag card
+   */
+  tagLabel: PropTypes.string,
+ 
+  /**
+   * Description of the experiment card.
+   */
+  description: PropTypes.string,
+ 
+  /**
+   * the test id for unit tests
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * the test id for cypress test
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * Boolean value to allow passing of html for description
+   */
+  htmlDesc: PropTypes.object,
+ 
+  /**
+   * Boolean value to show or hide image
+   */
+  showImage: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide button
+   */
+  showButton: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide date
+   */
+  showDate: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide icon beside title
+   */
+  showIcon: PropTypes.bool,
+ 
+  /**
+   * Boolean value to show or hide tag
+   */
+  showTag: PropTypes.bool,
+};
+ 
+export default Card;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.stories.js.html new file mode 100644 index 0000000000..2278d6d8fc --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Card.stories.js.html @@ -0,0 +1,262 @@ + + + + + + Code coverage report for components/molecules/Card.stories.js + + + + + + + + + +
+
+

All files / components/molecules Card.stories.js

+
+ +
+ 80% + Statements + 16/20 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 14/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +601x +1x +1x +  +1x +  +  +  +  +  +  +4x +2x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  + 
import React from "react";
+import Card from "./Card";
+import Image from "../../public/placeholder.png";
+ 
+export default {
+  title: "Components/Molecules/Card",
+  component: Card,
+};
+ 
+const Template = (args) => <Card {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithTag = Template.bind({});
+export const WithImage = Template.bind({});
+export const WithDate = Template.bind({});
+export const WithButton = Template.bind({});
+ 
+Primary.args = {
+  title: "Title",
+  href: "/some/link",
+  description: "Description",
+  imgSrc: "/placeholderImg",
+  imgAlt: "placeholderAlt",
+};
+ 
+WithTag.args = {
+  showTag: true,
+  title: "Title",
+  tag: "experiment_tag",
+  tagLabel: "Experiment tag",
+  description: "Description",
+  href: "/some/link",
+};
+ 
+WithImage.args = {
+  showImage: true,
+  title: "Title",
+  description: "Description",
+  href: "/somelink",
+  imgSrc: Image,
+  imgAlt: "placeholderAlt",
+};
+ 
+WithDate.args = {
+  showDate: true,
+  title: "Title",
+  href: "/somelink",
+  datePosted: "2022-01-01",
+  description: "Description",
+};
+ 
+WithButton.args = {
+  showButton: true,
+  title: "Title",
+  description: "Description",
+  href: "/somelink",
+  btnHref: "/somelink",
+  btnText: "Button text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.js.html new file mode 100644 index 0000000000..aa525d99c0 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for components/molecules/Collapse.js + + + + + + + + + +
+
+

All files / components/molecules Collapse.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 1/1 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +519x +  +12x +11x +11x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function Collapse({ id = "defaultAccordion", ...props }) {
+  const { title, children } = props;
+  return (
+    <details
+      key={id}
+      id={id}
+      className="mb-[5px] text-multi-neutrals-grey100 leading-[33px]  text-mobileh5 font-body"
+      data-testid="details"
+    >
+      <summary
+        key={`summary-${id}`}
+        data-testid="summary"
+        className="text-multi-blue-blue60d hover:hover:text-multi-blue-blue50b hover:underline border border-multi-neutrals-grey40 rounded px-[15px] py-[5px] cursor-pointer select-none outline-none"
+      >
+        {title}
+      </summary>
+      <div className="border border-multi-neutrals-grey40 rounded-b px-[18px] py-[5px] cursor-pointer select-none outline-none">
+        {children}
+      </div>
+    </details>
+  );
+}
+ 
+Collapse.propTypes = {
+  /**
+   * component id
+   */
+  id: PropTypes.string,
+ 
+  /**
+   * Title of the collapsible header
+   */
+  title: PropTypes.string,
+ 
+  /**
+   * code passed in to fill the expanded area.
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+ 
+  /**
+   * Test id for unit test
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.stories.js.html new file mode 100644 index 0000000000..2c7747d88f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Collapse.stories.js.html @@ -0,0 +1,193 @@ + + + + + + Code coverage report for components/molecules/Collapse.stories.js + + + + + + + + + +
+
+

All files / components/molecules Collapse.stories.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +371x +1x +  +1x +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { Collapse } from "./Collapse";
+ 
+export default {
+  title: "Components/Molecules/Collapse",
+  component: Collapse,
+};
+ 
+const Template = (args) => <Collapse {...args} />;
+ 
+export const TextDescription = Template.bind({});
+TextDescription.args = {
+  id: "collapseId",
+  title: "Example title",
+  children: "Example description",
+  dataTestId: "/placeholderImg",
+};
+ 
+export const HtmlDescription = Template.bind({});
+HtmlDescription.args = {
+  id: "collapseId",
+  title: "Example title",
+  children: [
+    <p>First paragraph tag</p>,
+    <p>Second paragprahp tag</p>,
+    <ul>
+      <li>Unorderded list item 1</li>
+      <li>Unorderded list item 2</li>
+    </ul>,
+    <ol>
+      <li>Ordered list item 1</li>
+      <li>Ordered list item 2</li>
+    </ol>,
+  ],
+  dataTestId: "exampleTestId",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.js.html new file mode 100644 index 0000000000..4160b875df --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.js.html @@ -0,0 +1,448 @@ + + + + + + Code coverage report for components/molecules/ContextualAlert.js + + + + + + + + + +
+
+

All files / components/molecules ContextualAlert.js

+
+ +
+ 100% + Statements + 11/11 +
+ + +
+ 81.25% + Branches + 13/16 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +1223x +  +9x +9x +9x +9x +9x +  +  +  +  +  +  +  +  +  +  +9x +  +  +7x +  +  +  +  +  +  +  +  +7x +  +  +  +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function ContextualAlert(props) {
+  const warning_img = "/warning_img.svg";
+  const danger_img = "/danger_img.svg";
+  const info_img = "/info_img.svg";
+  const success_img = "/success_img.svg";
+ 
+  const {
+    message_heading,
+    message_body,
+    id,
+    type,
+    alert_icon_id,
+    alert_icon_alt_text,
+    asHtml,
+    whiteBG,
+  } = props;
+ 
+  const alert_type =
+    type === "warning"
+      ? warning_img
+      : type === "danger"
+      ? danger_img
+      : type === "info"
+      ? info_img
+      : success_img;
+ 
+  const alert_color =
+    type === "warning"
+      ? "border-specific-orange-orange50"
+      : type === "danger"
+      ? "border-specific-red-red50b"
+      : type === "info"
+      ? "border-specific-cyan-cyan50"
+      : "border-specific-green-green50a";
+ 
+  let white_BG = whiteBG ? "bg-multi-neutrals-white" : " ";
+ 
+  return (
+    <div
+      id={id}
+      className={`relative min-w-[290px] sm:pl-[24px] pl-[16px] ${white_BG}`}
+    >
+      <div className="absolute top-3 sm:left-3.5 left-1.5 bg-multi-neutrals-white py-4px">
+        {/* change back to image component once fixed */}
+        <img id={alert_icon_id} src={alert_type} alt={alert_icon_alt_text} />
+      </div>
+      <div
+        className={`overflow-auto border-l-6 ${alert_color} pl-[24px] py-[17px] leading-8`}
+      >
+        {asHtml ? (
+          <h3
+            className="mt-0 text-mobileh3 lg:text-h3 leading-heading3 ml-1"
+            dangerouslySetInnerHTML={{ __html: message_heading }}
+          />
+        ) : (
+          <h3 className="mt-0 text-mobileh3 lg:text-h3 leading-heading3 ml-1">
+            {message_heading}
+          </h3>
+        )}
+        {asHtml ? (
+          <div
+            className="font-body ml-0.5 text-mobilebody lg:text-p"
+            dangerouslySetInnerHTML={{ __html: message_body }}
+          />
+        ) : (
+          <div className="font-body ml-0.5 text-mobilebody lg:text-p">
+            {message_body}
+          </div>
+        )}
+      </div>
+    </div>
+  );
+}
+ 
+ContextualAlert.propTypes = {
+  /**
+   * component id
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * alert type
+   */
+  type: PropTypes.oneOf(["warning", "info", "success", "danger"]).isRequired,
+ 
+  /**
+   * id for the alert icon
+   */
+  alert_icon_id: PropTypes.string.isRequired,
+ 
+  /**
+   * Alternate text for the alert icon
+   */
+  alert_icon_alt_text: PropTypes.string.isRequired,
+ 
+  /**
+   * heading text
+   */
+  message_heading: PropTypes.string.isRequired,
+ 
+  /**
+   * body text
+   */
+  message_body: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]).isRequired,
+ 
+  /**
+   * HTML toggle. Determines if text is parsed as plain text or HTML.
+   */
+  asHtml: PropTypes.bool,
+ 
+  /**
+   * If true the background will be white, default is transparent.
+   */
+  whiteBG: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.stories.js.html new file mode 100644 index 0000000000..21e53a6ee2 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ContextualAlert.stories.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for components/molecules/ContextualAlert.stories.js + + + + + + + + + +
+
+

All files / components/molecules ContextualAlert.stories.js

+
+ +
+ 93.33% + Statements + 14/15 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 10/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +711x +1x +  +  +  +  +  +  +4x +2x +2x +2x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ContextualAlert } from "./ContextualAlert";
+export default {
+  title: "Components/Molecules/ContextualAlert",
+  component: ContextualAlert,
+};
+ 
+const Template = (args) => <ContextualAlert {...args} />;
+ 
+export const Success = Template.bind({});
+export const Info = Template.bind({});
+export const Warning = Template.bind({});
+export const Danger = Template.bind({});
+ 
+Success.args = {
+  id: "success",
+  type: "success",
+  message_heading: "COVID-19 New services and service changes",
+  message_body: [
+    <p>
+      Find out about new support for Canadians during the COVID-19 pandemic and
+      how Service Canada’s services are affectedFind out about new support for
+      Canadians during the COVID-19 pandemic and how Service Canada’s services
+      are affected
+      <a href="https://healthycanadians.gc.ca/video/suspect-eng.php#trans">
+        Transcript
+      </a>
+    </p>,
+  ],
+  alert_icon_alt_text: "success icon",
+  alert_icon_id: "success icon",
+};
+ 
+Info.args = {
+  id: "info",
+  type: "info",
+  message_heading: "COVID-19 New services and service changes",
+  message_body:
+    "Find out about new support for Canadians during the COVID-19 pandemic and how Service Canada’s services are affectedFind out about new support for Canadians during the COVID-19 pandemic and how Service Canada’s services are affected",
+  alert_icon_alt_text: "info icon",
+  alert_icon_id: "info icon",
+};
+ 
+Warning.args = {
+  id: "warning",
+  type: "warning",
+  message_heading: "COVID-19 New services and service changes",
+  message_body:
+    "Find out about new support for Canadians during the COVID-19 pandemic and how Service Canada’s services are affectedFind out about new support for Canadians during the COVID-19 pandemic and how Service Canada’s services are affected",
+  alert_icon_alt_text: "warning",
+  alert_icon_id: "warning icon",
+};
+ 
+Danger.args = {
+  id: "danger",
+  type: "danger",
+  message_heading: "COVID-19 New services and service changes",
+  message_body: [
+    <p>
+      Find out about new support for Canadians during the COVID-19 pandemic and
+      how Service Canada’s services are affectedFind out about new support for
+      Canadians during the COVID-19 pandemic and how Service Canada’s services
+      are affected
+      <a href="https://healthycanadians.gc.ca/video/suspect-eng.php#trans">
+        Transcript
+      </a>
+    </p>,
+  ],
+  alert_icon_alt_text: "danger icon",
+  alert_icon_id: "danger icon",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html new file mode 100644 index 0000000000..17d41109d5 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.js.html @@ -0,0 +1,478 @@ + + + + + + Code coverage report for components/molecules/CopyToClipboard.js + + + + + + + + + +
+
+

All files / components/molecules CopyToClipboard.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 75% + Branches + 3/4 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +1322x +2x +2x +  +5x +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Clipboard from "react-copy-to-clipboard";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+export function CopyToClipboard({ value = "", type = "text", ...props }) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: value,
+      }
+    : {};
+  return (
+    <div>
+      <input
+        className={`font-body w-full min-h-40px py-6px px-12px text-center ${props.textFieldStyle}`}
+        id={props.id}
+        aria-describedby={props.describedby}
+        name={props.name}
+        placeholder={props.placeholder}
+        type={type}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-label={props.aria_label}
+      />
+      <Clipboard text={value}>
+        <ActionButton
+          id={props.buttonId}
+          className={`w-full ${props.buttonStyle}`}
+          onClick={props.onClick}
+        >
+          {props.buttonText}
+        </ActionButton>
+      </Clipboard>
+    </div>
+  );
+}
+ 
+CopyToClipboard.propTypes = {
+  /**
+   * additional css for the component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * the id of the text field
+   */
+  id: PropTypes.string.isRequired,
+ 
+  /**
+   * the name of the text field
+   */
+  name: PropTypes.string.isRequired,
+ 
+  /**
+   * value of the text field
+   */
+  value: PropTypes.string,
+ 
+  /**
+   * placeholder for the text field,
+   */
+  placeholder: PropTypes.string,
+ 
+  /**
+   * the type of the input
+   */
+  type: PropTypes.string,
+ 
+  /**
+   * call back for when the value of the text field changes
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * call back for when the link has been copied
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * if label should be bold
+   */
+  boldLabel: PropTypes.bool,
+ 
+  /**
+   * boolean flag to specify that this input should be uncontrolled by react
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress tests selector
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * aria-label
+   */
+  aria_label: PropTypes.string,
+ 
+  /**
+   * Text for ActionButton
+   */
+  buttonText: PropTypes.string,
+  /**
+   * id for ActionButton
+   */
+  buttonId: PropTypes.string,
+  /**
+   * Custom styling for the button
+   */
+  buttonStyle: PropTypes.string,
+  /**
+   * Custom styling for the text field
+   */
+  textFieldStyle: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html new file mode 100644 index 0000000000..d53d40a13b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for components/molecules/CopyToClipboard.stories.js + + + + + + + + + +
+
+

All files / components/molecules CopyToClipboard.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +231x +1x +  +1x +  +  +  +  +  +  +5x +  +1x +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { CopyToClipboard } from "./CopyToClipboard";
+ 
+export default {
+  title: "Components/Molecules/CopyToClipboard",
+  component: CopyToClipboard,
+};
+ 
+const Template = (args) => <CopyToClipboard {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  buttonId: "clipboardButton",
+  buttonText: "Copy link",
+  buttonStyle: "ieButton",
+  id: "clipboard",
+  name: "theClipboard",
+  textFieldStyle: "ieTextField",
+  dataTestId: "clipboard-controlled",
+  aria_label: "clipboard",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.js.html new file mode 100644 index 0000000000..927aeb506f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.js.html @@ -0,0 +1,217 @@ + + + + + + Code coverage report for components/molecules/Details.js + + + + + + + + + +
+
+

All files / components/molecules Details.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +452x +  +  +  +  +11x +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Drop Down Element
+ */
+export function Details(props) {
+  return (
+    <details data-testid={props.dataTestId} data-cy={props.dataCy}>
+      <summary className="max-w-450px w-full bg-details-button-gray focus:ring-inset focus:ring-2 focus:ring-black active:bg-details-button-active-gray hover:bg-details-button-hover-gray rounded py-12px px-5px font-body text-sm text-center text-canada-footer-font cursor-pointer border border-outset border-details-button-gray">
+        {props.label}
+      </summary>
+      <div className="max-w-450px w-full min-h-200px bg-gray-light-200 mt-1 p-15px border border-details-border-gray rounded ring-inset ring-1 ring-gray-light-200">
+        {props.children}
+      </div>
+    </details>
+  );
+}
+ 
+Details.propTypes = {
+  /**
+   * id for the details element
+   */
+  id: PropTypes.string,
+ 
+  /**
+   * the label of the details button
+   */
+  label: PropTypes.string.isRequired,
+ 
+  /**
+   * the content for the details element
+   */
+  children: PropTypes.node,
+ 
+  /**
+   * unit test selector
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * cypress selector
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.stories.js.html new file mode 100644 index 0000000000..4fa7ca4fec --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Details.stories.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for components/molecules/Details.stories.js + + + + + + + + + +
+
+

All files / components/molecules Details.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +181x +1x +  +1x +  +  +  +  +  +  +6x +1x +  +  +  +  +  + 
import React from "react";
+import { Details } from "./Details";
+ 
+export default {
+  title: "Components/Molecules/Details",
+  component: Details,
+};
+ 
+const Template = (args) => <Details {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  id: "unopenedDetails",
+  label: "A Drop Down",
+  children: "Content",
+  dataTestId: "details",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html new file mode 100644 index 0000000000..4fe4c9588a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for components/molecules/ErrorBox.js + + + + + + + + + +
+
+

All files / components/molecules ErrorBox.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +661x +1x +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * error box to be used to summarise error in forms
+ */
+export function ErrorBox({ errors = [], ...props }) {
+  return (
+    <div
+      id="error-box"
+      className="relative border-l-4 border-error-border-red min-h-40px my-10"
+      data-cy="error-box"
+      role="alert"
+      aria-atomic="true"
+    >
+      <span className="icon-error absolute top-1 -left-2.5 bg-white" />
+      <p className="font-bold ml-4 text-p mb-2 lg:text-h4">{props.text}</p>
+      <ul
+        className="w-full list-disc list-outside leading-loose pl-8 text-sm lg:text-p"
+        data-cy="error-box-items"
+        id="error-box-items"
+      >
+        {errors.map(({ id, text }) => {
+          return (
+            <li key={`${id}-${text}`} className="mb-2">
+              <ActionButton
+                id={`${id}-${text}`}
+                custom="font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font underline inline-block text-left"
+                onClick={() => props.onClick(id)}
+                dataCy={`error-item-${id}`}
+                className="" // This is to avoid all the "undefined" class names applied.
+              >
+                {text}
+              </ActionButton>
+            </li>
+          );
+        })}
+      </ul>
+    </div>
+  );
+}
+ 
+ErrorBox.propTypes = {
+  /**
+   * An array of error messages to display. Each object contains the id of the element which
+   * when the text is clicked the browser will scroll too
+   */
+  text: PropTypes.string.isRequired,
+  errors: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * the id of the element on the page to scroll too
+       */
+      id: PropTypes.string.isRequired,
+      /**
+       * the text to display for the error component
+       */
+      text: PropTypes.string.isRequired,
+    })
+  ),
+  /**
+   * onClick callback
+   */
+  onClick: PropTypes.func,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html new file mode 100644 index 0000000000..86aee608c3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/molecules/ErrorBox.stories.js + + + + + + + + + +
+
+

All files / components/molecules ErrorBox.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +421x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +11x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { ErrorBox } from "./ErrorBox";
+ 
+export default {
+  title: "Components/Molecules/ErrorBox",
+  component: ErrorBox,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex items-center flex-col">
+        <div className="w-96">
+          <Story />
+        </div>
+        <div id="someid" className="mt-80">
+          Some element with an id
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <ErrorBox {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  text: "The form could not be submitted because three errors were found",
+  errors: [
+    {
+      id: "someid",
+      text: "Some Error 1",
+    },
+    {
+      id: "someid",
+      text: "Some Error 2",
+    },
+    {
+      id: "someid",
+      text: "Some Error 3",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html new file mode 100644 index 0000000000..951186595c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.js.html @@ -0,0 +1,1006 @@ + + + + + + Code coverage report for components/molecules/FeedbackWidget.js + + + + + + + + + +
+
+

All files / components/molecules FeedbackWidget.js

+
+ +
+ 72.58% + Statements + 45/62 +
+ + +
+ 38.09% + Branches + 8/21 +
+ + +
+ 50% + Functions + 5/10 +
+ + +
+ 71.66% + Lines + 43/60 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +30810x +10x +10x +10x +10x +10x +10x +10x +10x +  +  +  +  +  +10x +  +  +  +  +  +10x +10x +10x +10x +10x +10x +10x +  +10x +  +10x +7x +2x +2x +  +  +  +  +10x +  +  +  +1x +1x +  +  +  +  +1x +1x +  +  +1x +  +  +  +  +  +  +  +10x +10x +10x +  +  +  +  +  +  +  +10x +  +1x +  +1x +  +1x +  +1x +  +1x +  +  +  +  +  +  +1x +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +10x +  +  +  +  +  +  +10x + 
import React, { useEffect, useState, useRef } from "react";
+import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { ActionButton } from "../atoms/ActionButton";
+import Joi from "joi";
+import { ErrorLabel } from "../atoms/ErrorLabel";
+import FocusTrap from "focus-trap-react";
+import lockScroll from "react-lock-scroll";
+import { stripFeedback } from "../../lib/utils/stripFeedback";
+ 
+/**
+ * Displays the PhaseBanner on the page
+ */
+ 
+export const FeedbackWidget = ({
+  showFeedback,
+  toggleForm,
+  projectName,
+  path,
+}) => {
+  const [submitted, setSubmitted] = useState(false);
+  const [feedbackClose, setFeedbackClose] = useState(false);
+  const { t } = useTranslation("common");
+  const [response, setResponse] = useState(t("thankYouFeedback"));
+  const email = process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL;
+  const [count, setCount] = useState(2000);
+  var maxLength = 2000;
+ 
+  lockScroll(showFeedback);
+ 
+  useEffect(() => {
+    if (!showFeedback) {
+      setFeedbackError("");
+      setFeedback("");
+    }
+  }, [showFeedback]);
+ 
+  // Joi form validation schema.
+  const formSchema = Joi.object({
+    feedback: Joi.string()
+      .required()
+      .error((errors) => {
+        errors.forEach((error) => {
+          switch (error.code) {
+            case "any.required":
+              error.message = t("feedbackRequired");
+              break;
+            default:
+              error.message = t("feedbackRequired");
+              break;
+          }
+        });
+        return errors;
+      }),
+  });
+ 
+  function setFocusAfterSubmit() {
+    document.getElementById("feedbackButton").focus();
+  }
+ 
+  const [feedback, setFeedback] = useState("");
+  const [feedbackError, setFeedbackError] = useState("");
+  const feedbackObject = useRef({
+    feedbackToSend: {
+      project: "",
+      pageUrl: "",
+      feedback: "",
+    },
+  });
+ 
+  let onSubmitHandler = async (e) => {
+    // prevent default behaviour of form
+    e.preventDefault();
+    // clear out error values
+    await setFeedbackError("");
+    // compile feedback into object to be validated
+    const formData = { feedback };
+    //Strip personal identifier information from feedback
+    var cleanedFeedback = stripFeedback(formData.feedback);
+    // set values in feedback object
+    feedbackObject.current.feedbackToSend = {
+      project: projectName,
+      pageUrl: path,
+      feedback: cleanedFeedback,
+    };
+ 
+    // validate data using Joi schema
+    const { error } = formSchema.validate(formData, {
+      abortEarly: false,
+      allowUnknown: true,
+    });
+    const valid = error === undefined;
+ 
+    Iif (valid) {
+      //Submit data to the api
+      const response = await fetch("/api/feedback", {
+        method: "POST",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        body: JSON.stringify(feedbackObject.current.feedbackToSend),
+      });
+ 
+      // if the response is good, show thank you message
+      if (response.status === 201 || response.status === 200) {
+        await setResponse(t("thankYouFeedback"));
+        setFeedback("");
+        setCount(2000);
+      } else {
+        await setResponse(t("sorryFeedback"));
+      }
+ 
+      setSubmitted(true);
+      setFeedbackClose(false);
+      setFocusAfterSubmit();
+    } else {
+      setFeedbackError(error.message);
+    }
+  };
+ 
+  return (
+    <>
+      {showFeedback ? (
+        <FocusTrap
+          focusTrapOptions={{
+            initialFocus: false,
+            fallbackFocus: "#feedbackClose",
+          }}
+        >
+          <div
+            className="fixed top-0 left-0 w-screen h-full flex justify-center items-center"
+            style={{ background: "rgba(71, 71, 71, 0.8)" }}
+          >
+            <div
+              className="w-auto mx-12 md:mx-24 bg-white shadow-lg border-black border-4"
+              data-testid="feedbackDropdown"
+            >
+              {submitted ? (
+                <div role="status" className="w-full">
+                  {!feedbackClose ? (
+                    <div
+                      className={`${
+                        response === t("thankYouFeedback")
+                          ? "bg-custom-green-darker font-bold"
+                          : "bg-circle-color"
+                      } text-white flex py-2`}
+                    >
+                      <div className="layout-container flex">
+                        <span className="flex flex-col text-xs lg:text-sm font-body mt-2 mb-4 w-full">
+                          {response}
+                          {response === t("sorryFeedback") ? (
+                            <ActionButton
+                              id="link-mail"
+                              ariaLabel="Service Canada email"
+                              dataCy="link-mail"
+                              dataTestId="link-mail"
+                              href={`mailto:${email}`}
+                              text={email}
+                              custom="w-max text-xs lg:text-sm underline outline-none focus:outline-white-solid"
+                            />
+                          ) : (
+                            ""
+                          )}
+                        </span>
+                        <div className="w-1/4 flex justify-end">
+                          <ActionButton
+                            id="feedbackClose"
+                            ariaLabel="Close the expanded feedback section"
+                            dataCy="closeButton"
+                            dataTestId="closeButton"
+                            custom="font-body text-gray-dark-100 flex -py-1 mt-2.5 lg:mt-0 outline-none focus:outline-white-solid items-center"
+                            imageSource="/close-x.svg"
+                            imageAlt="Close button"
+                            imageSpanClass="text-xs text-white leading-4 lg:text-sm underline ml-1 lg:ml-2 lg:leading-10"
+                            imageSpanText={t("close")}
+                            onClick={() => setFeedbackClose(true)}
+                            tabindex="-1"
+                          />
+                        </div>
+                      </div>
+                    </div>
+                  ) : (
+                    ""
+                  )}
+                </div>
+              ) : (
+                ""
+              )}
+              <div className="layout-container text-gray-dark-100 pb-4">
+                <div className="pt-4">
+                  <ActionButton
+                    id="feedbackClose"
+                    ariaLabel="Close the expanded feedback section"
+                    dataCy="closeButton"
+                    dataTestId="closeButton"
+                    custom="flex float-right font-body text-gray-dark-100 flex mt-2.5 lg:mt-0 outline-none focus:outline-white-solid items-center"
+                    imageSource="/close-x.svg"
+                    imageAlt="Close button"
+                    imageSpanClass="text-xs leading-4 lg:text-sm underline ml-2 lg:leading-10"
+                    imageSpanText={t("close")}
+                    onClick={() => {
+                      toggleForm();
+                      setCount(2000);
+                    }}
+                  />
+                </div>
+                <h2 className="text-h4 lg:text-h3 lg:text-sm font-display pt-6 mb-4 w-48 sm:w-auto">
+                  {t("improveService")}
+                </h2>
+                <ul className="list-outside list-disc px-6 pb-3">
+                  <li className="text-xs lg:text-sm pt-2 pb-1 font-body">
+                    <strong>{t("reportAProblemNoReply")}</strong>
+                  </li>
+                  <li className="text-xs lg:text-sm font-body mb-0">
+                    <strong>{t("confidential")}</strong>
+                    <ActionButton
+                      ariaLabel="Privacy page link"
+                      id="link-privacyPage"
+                      dataCy="link-privacyPage"
+                      dataTestId="link-privacyPage"
+                      href={t("privacyLink")}
+                      text={t("reportAProblemPrivacyStatement")}
+                      custom="text-xs lg:text-sm underline ml-2 outline-none focus:outline-white-solid"
+                    />
+                  </li>
+                </ul>
+                <form
+                  data-gc-analytics-formname="ESDC|EDSC:ServiceCanadaLabsFeedback-Form"
+                  data-gc-analytics-collect='[{"value":"input,select","emptyField":"N/A"}]'
+                  className="w-full"
+                  action="#"
+                  onSubmit={onSubmitHandler}
+                  aria-live="polite"
+                >
+                  <label
+                    htmlFor="feedbackTextArea"
+                    className="text-xs lg:text-sm font-body"
+                  >
+                    <b
+                      className="text-error-border-red mr-1"
+                      aria-hidden="true"
+                    >
+                      *
+                    </b>
+                    <b>{t("doBetter")}</b>
+                  </label>
+                  <div id="feedbackInfo">
+                    <p className="text-xs lg:text-sm my-2">
+                      {t("doNotInclude")}
+                    </p>
+                    <p className="text-xs lg:text-sm mb-1 mt-4">
+                      {count}
+                      {t("maximum2000")}
+                    </p>
+                  </div>
+                  {feedbackError ? (
+                    <ErrorLabel
+                      message={feedbackError}
+                      className="text-black mt-4"
+                    />
+                  ) : undefined}
+                  <textarea
+                    aria-describedby="feedbackInfo"
+                    id="feedbackTextArea"
+                    name="feedbackTextArea"
+                    maxLength="2000"
+                    rows="5"
+                    className={
+                      "text-input font-body w-full min-h-40px shadow-sm text-form-input-gray border-2 border-gray-dark-100 my-2 py-6px px-12px rounded"
+                    }
+                    value={feedback}
+                    onChange={(e) => setFeedback(e.currentTarget.value)}
+                    onInput={(e) =>
+                      setCount(maxLength - e.currentTarget.value.length)
+                    }
+                    aria-required="true"
+                  />
+                  <ActionButton
+                    id="feedback-submit"
+                    ariaLabel="Submit feedback"
+                    custom="outline-none focus:outline-black-solid rounded block w-full lg:w-auto lg:px-12 text-xs lg:text-sm py-2 mt-2 font-bold bg-custom-blue-blue text-white border border-custom-blue-blue active:bg-custom-blue-dark hover:bg-custom-blue-light flex justify-center"
+                    type="submit"
+                    dataCy="feedback-submit"
+                    dataTestId="feedback-submit"
+                    text={t("reportAProblemSubmit")}
+                    analyticsTracking
+                  />
+                </form>
+              </div>
+            </div>
+          </div>
+        </FocusTrap>
+      ) : (
+        ""
+      )}
+    </>
+  );
+};
+ 
+FeedbackWidget.propTypes = {
+  /**
+   * This is for showing the feedback component
+   */
+  feedbackActive: PropTypes.bool,
+};
+ 
+export default FeedbackWidget;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html new file mode 100644 index 0000000000..beb14cca61 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/molecules/FeedbackWidget.stories.js + + + + + + + + + +
+
+

All files / components/molecules FeedbackWidget.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +161x +1x +  +1x +  +  +  +  +  +  +8x +  +1x +  +  + 
import React from "react";
+import FeedbackWidget from "./FeedbackWidget";
+ 
+export default {
+  title: "Components/Molecules/FeedbackWidget",
+  component: FeedbackWidget,
+};
+ 
+const Template = (args) => <FeedbackWidget {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  showFeedback: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.js.html new file mode 100644 index 0000000000..4234d58ef3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.js.html @@ -0,0 +1,298 @@ + + + + + + Code coverage report for components/molecules/Filter.js + + + + + + + + + +
+
+

All files / components/molecules Filter.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +721x +1x +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { RadioButton } from "../atoms/RadioButton";
+ 
+/**
+ *  Filter Experiments component
+ */
+export function Filter(props) {
+  return (
+    <form
+      className="my-12"
+      data-testid={props.dataTestId}
+      data-cy={props.dataCy}
+    >
+      <fieldset>
+        <legend className="md:float-left font-body pb-3 pt-2 pr-4 text-sm md:text-base">
+          {props.label}
+        </legend>
+        <div className={"flex"}>
+          {props.options.map(({ id, label, checked }, index) => (
+            <RadioButton
+              key={id}
+              label={label}
+              value={id}
+              name={id}
+              id={id}
+              dataTestId={id}
+              dataCy={id}
+              onChange={props.onChange}
+              checked={checked}
+              roundedFront={index === 0}
+              roundedBack={index === props.options.length - 1}
+            />
+          ))}
+        </div>
+      </fieldset>
+    </form>
+  );
+}
+ 
+Filter.propTypes = {
+  /**
+   * options for the filter
+   */
+  options: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string.isRequired,
+      label: PropTypes.string.isRequired,
+      checked: PropTypes.bool,
+    })
+  ).isRequired,
+ 
+  /**
+   * filter label
+   */
+  label: PropTypes.string,
+ 
+  /**
+   * Action to do on input change
+   */
+  onChange: PropTypes.func,
+ 
+  /**
+   * Test id for unit tests
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * Test id for cypress test
+   */
+  dataCy: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html new file mode 100644 index 0000000000..6bc9231ab5 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Filter.stories.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for components/molecules/Filter.stories.js + + + + + + + + + +
+
+

All files / components/molecules Filter.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +331x +1x +  +1x +  +  +  +  +  +  +12x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { Filter } from "./Filter";
+ 
+export default {
+  title: "Components/Molecules/Filter",
+  component: Filter,
+};
+ 
+const Template = (args) => <Filter {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  label: "Filter By",
+  options: [
+    {
+      id: "all",
+      label: "All",
+      checked: false,
+    },
+    {
+      id: "coming_soon",
+      label: "Coming Soon",
+      checked: false,
+    },
+    {
+      id: "alpha",
+      label: "Alpha",
+      checked: true,
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.js.html new file mode 100644 index 0000000000..f3ab6fa635 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.js.html @@ -0,0 +1,241 @@ + + + + + + Code coverage report for components/molecules/Heading.js + + + + + + + + + +
+
+

All files / components/molecules Heading.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +5315x +  +12x +11x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +15x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+export function Heading(props) {
+  const { title, fromLink, fromText, id, className } = props;
+ 
+  return (
+    <>
+      <h1 className={`mb-0 pb-2 leading-heading1 ${className}`} id={id}>
+        {title}
+      </h1>
+      <div className="mb-11 border-b-[6px] border-b-multi-red-red50a w-[72px]"></div>
+      {fromLink && fromText && (
+        <p className="">
+          <strong>From: </strong>
+          <a
+            href={fromLink}
+            className="underline text-multi-blue-blue70b font-body lg:text-browserh5 font-bold text-mobileh5 leading-[33px] hover:text-multi-blue-blue50b"
+          >
+            {fromText}
+          </a>
+        </p>
+      )}
+    </>
+  );
+}
+ 
+Heading.propTypes = {
+  /**
+   * The text / title that will be displayed as heading
+   */
+  title: PropTypes.string.isRequired,
+  /**
+   * Link that should be dispayed under the main heading level
+   */
+  fromLink: PropTypes.string,
+  /**
+   * Text that will be displyed as text link
+   */
+  fromText: PropTypes.string,
+  /**
+   * css overrides for button
+   */
+  className: PropTypes.string,
+  /**
+   * To identify the heading element
+   */
+  id: PropTypes.string.isRequired,
+  /**
+   * Test id for unit test
+   */
+  dataTestId: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.stories.js.html new file mode 100644 index 0000000000..693ff6f83a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Heading.stories.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/molecules/Heading.stories.js + + + + + + + + + +
+
+

All files / components/molecules Heading.stories.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +241x +  +1x +  +  +  +  +  +  +3x +1x +  +1x +  +  +  +  +1x +  +  +  +  +  + 
import { Heading } from "./Heading";
+ 
+export default {
+  title: "Components/Molecules/Heading",
+  component: Heading,
+};
+ 
+const Template = (args) => <Heading {...args} />;
+ 
+export const Default = Template.bind({});
+export const withFromLink = Template.bind({});
+ 
+Default.args = {
+  title: "Default Heading",
+  id: "withoutLink",
+};
+ 
+withFromLink.args = {
+  title: "Heading with from link",
+  fromLink: "https://www.google.com",
+  fromText: "Google",
+  id: "withLink",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.js.html new file mode 100644 index 0000000000..73c6552a9d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for components/molecules/List.js + + + + + + + + + +
+
+

All files / components/molecules List.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 1/1 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +421x +  +  +  +  +3x +2x +  +  +  +  +8x +  +  +8x +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ *  List component
+ */
+export function List(props) {
+  let opacity = 40;
+  return (
+    <ul className={props.className}>
+      {props.items.map((item, key) => {
+        let className =
+          "bg-opacity-" +
+          opacity +
+          " bg-circle-color text-shadow-about-circles flex-shrink-0 mr-4 mb-2 rounded-full h-36 w-36 flex items-center justify-center text-white font-bold font-display text-h1xxl relative md:left-0 -left-14";
+        if (opacity < 100) opacity += 20;
+        return (
+          <li key={key} className="flex">
+            <span className={className} role="presentation">
+              {key + 1}
+            </span>
+            <p className="text-sm md:text-p my-auto leading-normal font-body">
+              {item}
+            </p>
+          </li>
+        );
+      })}
+    </ul>
+  );
+}
+ 
+List.propTypes = {
+  /**
+   * List items
+   */
+  items: PropTypes.arrayOf(String).isRequired,
+ 
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.stories.js.html new file mode 100644 index 0000000000..f4ec22aa94 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/List.stories.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for components/molecules/List.stories.js + + + + + + + + + +
+
+

All files / components/molecules List.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +161x +1x +  +1x +  +  +  +  +  +  +5x +  +1x +  +  + 
import React from "react";
+import { List } from "./List";
+ 
+export default {
+  title: "Components/Molecules/List",
+  component: List,
+};
+ 
+const Template = (args) => <List {...args}></List>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  items: ["Item 1", "Item 2", "Item 3", "Item 4"],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/MainBand.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/MainBand.js.html new file mode 100644 index 0000000000..17aac2f7b2 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/MainBand.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for components/molecules/MainBand.js + + + + + + + + + +
+
+

All files / components/molecules MainBand.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +449x +9x +  +13x +13x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +273x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Link } from "../atoms/Link";
+import { useTranslation } from "next-i18next";
+ 
+export function MainBand(props) {
+  const { t } = useTranslation("common");
+ 
+  return (
+    <>
+      <h3 className="pt-[22px] text-multi-neutrals-white font-body font-bold text-[19px]">
+        {t("footerTitle")}
+      </h3>
+      <nav
+        className="pb-6"
+        role="navigation"
+        aria-labelledby="accessibleSectionHeader1"
+      >
+        <h2 className="sr-only" id="accessibleSectionHeader1">
+          {t("aboutGovernment")}
+        </h2>
+        <ul className="md:grid md:grid-cols-2 lg:grid-cols-3 flex flex-col gap-1 text-xs ml-0">
+          {props.landscapeLinks.map((key, index) => {
+            return (
+              <li
+                key={key + index}
+                className={`${
+                  index === 0 ? "footerLine pb-[22px] relative" : ""
+                } text-white w-64 sm:w-56 lg:w-80 my-2.5 list-none ml-0 text-xs`}
+              >
+                <Link
+                  id={"LandscapeLink" + index}
+                  href={t(`landscapeLinks.link.${key}`)}
+                  text={t(`landscapeLinks.text.${key}`)}
+                  linkStyle="smfooterWhite"
+                  target={props.target}
+                />
+              </li>
+            );
+          })}
+        </ul>
+      </nav>
+    </>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.js.html new file mode 100644 index 0000000000..0cf5a53f16 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.js.html @@ -0,0 +1,448 @@ + + + + + + Code coverage report for components/molecules/Menu.js + + + + + + + + + +
+
+

All files / components/molecules Menu.js

+
+ +
+ 92.85% + Statements + 13/14 +
+ + +
+ 60% + Branches + 6/10 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 92.85% + Lines + 13/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +1221x +1x +1x +1x +  +  +  +  +4x +  +4x +4x +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x +12x +  +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useRouter } from "next/router";
+import { useState } from "react";
+ 
+/**
+ * Menu component
+ */
+export function Menu(props) {
+  //Router
+  const { asPath } = useRouter();
+  const router = useRouter();
+  const [showMenu, setShowMenu] = useState(false);
+ 
+  return (
+    <nav
+      title="Menu"
+      className="layout-container lg:justify-end lg:flex"
+      data-cy="menu"
+      role="navigation"
+      aria-labelledby="mainSiteNav"
+    >
+      <h3 className="sr-only" id="mainSiteNav">
+        Menu
+      </h3>
+      <div className="flex justify-between">
+        <button
+          id="menuButton"
+          onClick={() => setShowMenu(!showMenu)}
+          className="text-h4 text-canada-footer-font focus:outline-none focus:ring-2 focus:ring-black mb-4 py-1"
+          aria-haspopup="true"
+          aria-expanded={showMenu}
+          aria-controls="menuDropdown"
+          data-testid="menuButton"
+        >
+          <span className="inline-block align-middle icon-menu" />
+          <span className="inline-block align-middle pl-3 font-body text-p leading-none">
+            {props.menuButtonTitle}
+          </span>
+        </button>
+ 
+        <button
+          id="menuClose"
+          onClick={() => setShowMenu(!showMenu)}
+          className={`${
+            showMenu ? "" : "hidden"
+          } sr-only mb-4 text-canada-footer-font outline-none focus:not-sr-only focus:outline-black-solid lg:invisible`}
+          aria-expanded={showMenu}
+          aria-controls="menuDropdown"
+          aria-label="Close the expanded menu options"
+          data-testid="menuCloseButton"
+        >
+          <img src="/close-x-menu.svg" alt="Close button"></img>
+        </button>
+      </div>
+ 
+      <ul
+        id="menuDropdown"
+        className={`menuDropdown mt-2 ${showMenu ? "active" : ""}`}
+        role="menu"
+        aria-expanded={showMenu}
+      >
+        {props.items.map((item, key) => {
+          const exactURL = asPath === item.link; // it's exactly this url
+          const includesURL = asPath.includes(item.link); // it's a child of this url (eg, "/projects/app" includes "/projects")
+ 
+          return (
+            <li
+              key={key}
+              className={`py-3 lg:py-0 cursor-pointer text-custom-blue-projects-link list-none -my-2 -ml-2`}
+              role="menuitem"
+              aria-current={exactURL ? "page" : null}
+            >
+              <Link
+                href={item.link}
+                className={`font-body text-base ${
+                  includesURL
+                    ? router.pathname !== "/signup/privacy"
+                      ? "activePage"
+                      : "menuLink underline"
+                    : "menuLink underline"
+                }`}
+              >
+                {item.text}
+              </Link>
+            </li>
+          );
+        })}
+      </ul>
+    </nav>
+  );
+}
+ 
+Menu.propTypes = {
+  /**
+   * Menu title for small screens
+   */
+  menuButtonTitle: PropTypes.string.isRequired,
+ 
+  /**
+   * text for sign up button
+   */
+  signUpText: PropTypes.string.isRequired,
+ 
+  /**
+   * Array of Items for the menu
+   */
+  items: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the menu
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the menu
+       */
+      link: PropTypes.string,
+    })
+  ).isRequired,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html new file mode 100644 index 0000000000..5f2eca8b9e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Menu.stories.js.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for components/molecules/Menu.stories.js + + + + + + + + + +
+
+

All files / components/molecules Menu.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +311x +1x +  +1x +  +  +  +  +  +  +6x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { Menu } from "./Menu";
+ 
+export default {
+  title: "Components/Molecules/Menu",
+  component: Menu,
+};
+ 
+const Template = (args) => <Menu {...args}></Menu>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  menuButtonTitle: "Menu",
+  signUpText: "Sign up",
+  items: [
+    {
+      link: "#",
+      text: "Link1",
+    },
+    {
+      link: "#",
+      text: "Link2",
+    },
+    {
+      link: "#",
+      text: "Link3",
+    },
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html new file mode 100644 index 0000000000..edb7bf7471 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.js.html @@ -0,0 +1,529 @@ + + + + + + Code coverage report for components/molecules/OptionalListField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalListField.js

+
+ +
+ 78.94% + Statements + 15/19 +
+ + +
+ 75% + Branches + 12/16 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 78.94% + Lines + 15/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +1491x +1x +1x +1x +  +  +  +  +5x +5x +5x +1x +  +  +1x +  +  +1x +  +  +  +5x +5x +  +  +5x +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from "react";
+import { CheckBox } from "../atoms/CheckBox";
+import { RadioField } from "../atoms/RadioField";
+import PropTypes from "prop-types";
+ 
+/**
+ * An optional list field (radio, checkbox) that is enabled by a checkbox
+ */
+export function OptionalListField({ controlType = "checkbox", ...props }) {
+  let [showListField, setShowListField] = useState(props.checked || false);
+  let handleCheckChange = (wasChecked, name, value) => {
+    Iif (wasChecked) {
+      setShowListField(false);
+    } else {
+      setShowListField(true);
+    }
+ 
+    Iif (props.onControlChange) {
+      props.onControlChange(wasChecked, name, value);
+    }
+  };
+  let sortedChildren = [...props.children].sort((a, b) => {
+    Iif (a.props.label < b.props.label) {
+      return -1;
+    }
+    if (b.props.label < a.props.label) {
+      return 1;
+    }
+    return 0;
+  });
+  return (
+    <>
+      {controlType === "checkbox" ? (
+        <CheckBox
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          dataTestId={props.controlDataTestId}
+          required={props.controlRequired}
+          dataCy={props.controlDataCy}
+        />
+      ) : (
+        <RadioField
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          required={props.controlRequired}
+          dataTestId={props.controlDataTestId}
+          dataCy={props.controlDataCy}
+        />
+      )}
+      {(props.uncontrolled && showListField) || props.checked ? (
+        <fieldset className="mb-10px">
+          <legend className="block leading-tight text-sm font-body mb-5px font-bold">
+            {props.listFieldRequired ? (
+              <b className="text-error-border-red" aria-hidden="true">
+                *
+              </b>
+            ) : (
+              ""
+            )}
+            {props.listLabel}
+          </legend>
+          <div className="gap-4">{sortedChildren}</div>
+        </fieldset>
+      ) : undefined}
+    </>
+  );
+}
+ 
+OptionalListField.propTypes = {
+  /**
+   * the type of field that should be used
+   */
+  controlType: PropTypes.oneOf(["checkbox", "radiofield"]),
+  /**
+   * the id for the checkbox
+   */
+  controlId: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the checkbox
+   */
+  controlName: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  controlLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * the value for the checkbox
+   */
+  controlValue: PropTypes.string,
+ 
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * boolean flag to denote whether or not the inputs are controlled
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * whether or not the control is required
+   */
+  controlRequired: PropTypes.bool,
+ 
+  /**
+   * the test id for the checkbox to select in unit tests
+   */
+  controlDataTestId: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the checkbox
+   */
+  controlDataCy: PropTypes.string,
+ 
+  /**
+   * callback when the checkbox changes
+   */
+  onControlChange: PropTypes.func,
+ 
+  /**
+   * whether or not the list field is required
+   */
+  listFieldRequired: PropTypes.bool,
+ 
+  /**
+   * list items to display
+   */
+  children: PropTypes.arrayOf(PropTypes.element),
+ 
+  /**
+   * legend text for the list items
+   */
+  listLabel: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html new file mode 100644 index 0000000000..5695293894 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html @@ -0,0 +1,562 @@ + + + + + + Code coverage report for components/molecules/OptionalListField.stories.js + + + + + + + + + +
+
+

All files / components/molecules OptionalListField.stories.js

+
+ +
+ 90.47% + Statements + 19/21 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 15/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +1601x +1x +1x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { OptionalListField } from "./OptionalListField";
+import { CheckBox } from "../atoms/CheckBox";
+import { RadioField } from "../atoms/RadioField";
+ 
+export default {
+  title: "Components/Molecules/OptionalListField",
+  component: OptionalListField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <OptionalListField {...args} />;
+ 
+export const UnOpened = Template.bind({});
+UnOpened.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  controlValue: "unopened",
+  controlDataTestId: "unopened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Opened_Checkboxes = Template.bind({});
+Opened_Checkboxes.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "opened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Opened_Radiofields = Template.bind({});
+Opened_Radiofields.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "opened-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <RadioField
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <RadioField
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const Radio = Template.bind({});
+Radio.args = {
+  controlType: "radiofield",
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  controlDataTestId: "radio-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  controlId: "nutella-check-1",
+  controlName: "nutellaCheckOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  controlDataTestId: "uncontrolled-check-1",
+  listLabel: "Please check all the reasons why you are wrong.",
+  children: [
+    <CheckBox
+      key="key1"
+      label="I don't like fake chocolate spread"
+      name="reasons"
+      value="dislike"
+      id="reasons-dislike"
+      dataTestId="reasons-dislike"
+    />,
+    <CheckBox
+      key="key2"
+      label="I make poor choices"
+      name="reasons"
+      value="poor-choice"
+      id="reasons-poor-choice"
+      dataTestId="reasons-poor-choice"
+    />,
+  ],
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html new file mode 100644 index 0000000000..2c156f2e5b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.js.html @@ -0,0 +1,865 @@ + + + + + + Code coverage report for components/molecules/OptionalTextField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalTextField.js

+
+ +
+ 85% + Statements + 17/20 +
+ + +
+ 78.94% + Branches + 15/19 +
+ + +
+ 50% + Functions + 2/4 +
+ + +
+ 85% + Lines + 17/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +2612x +2x +2x +2x +2x +2x +2x +  +  +  +  +54x +55x +55x +55x +55x +3x +  +  +  +3x +3x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from "react";
+import { CheckBox } from "../atoms/CheckBox";
+import { TextField } from "../atoms/TextField";
+import { MultiTextField } from "../atoms/MultiTextField";
+import { RadioField } from "../atoms/RadioField";
+import { useTranslation } from "next-i18next";
+import PropTypes from "prop-types";
+ 
+/**
+ * An optional text box that is enabled by a checkbox
+ */
+export function OptionalTextField({ controlType = "checkbox", ...props }) {
+  let [showTextField, setShowTextField] = useState(props.checked || false);
+  const [expandState, setExpandState] = useState("collapsed");
+  const { t } = useTranslation("common");
+  let handleCheckChange = (wasChecked, name, value) => {
+    Iif (wasChecked) {
+      setShowTextField(false);
+      setExpandState(t("collapsed"));
+    } else {
+      setShowTextField(true);
+      setExpandState(t("expanded"));
+    }
+ 
+    Iif (props.onControlChange) {
+      props.onControlChange(wasChecked, name, value);
+    }
+  };
+  return (
+    <>
+      {controlType === "checkbox" && (
+        <CheckBox
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          className={props.checkBoxStyle}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          dataTestId={props.controlDataTestId}
+          required={props.controlRequired}
+          dataCy={props.controlDataCy}
+          expandState={expandState}
+        />
+      )}
+      {controlType === "radiofield" && (
+        <RadioField
+          label={props.controlLabel}
+          id={props.controlId}
+          name={props.controlName}
+          checked={props.checked}
+          uncontrolled={props.uncontrolled}
+          value={props.controlValue}
+          onChange={handleCheckChange}
+          required={props.controlRequired}
+          dataTestId={props.controlDataTestId}
+          dataCy={props.controlDataCy}
+        />
+      )}
+      {(props.uncontrolled && showTextField) || props.checked ? (
+        props.multiText ? (
+          <MultiTextField
+            label={props.textFieldLabel}
+            placeholder={props.textFieldPlaceHolder}
+            name={props.textFieldName}
+            id={props.textFieldId}
+            value={props.textFieldValue}
+            boldLabel={props.textLabelBold}
+            rows={props.rows}
+            cols={props.cols}
+            spellCheck={props.spellCheck}
+            wrap={props.wrap}
+            required={props.textFieldRequired}
+            onChange={
+              props.onTextFieldChange ? props.onTextFieldChange : () => {}
+            }
+            dataTestId={props.textFieldDataTestId}
+            dataCy={props.textFieldDataCy}
+            error={props.error}
+            describedby={props.describedby}
+          />
+        ) : (
+          <TextField
+            label={props.textFieldLabel}
+            placeholder={props.textFieldPlaceHolder}
+            name={props.textFieldName}
+            id={props.textFieldId}
+            value={props.textFieldValue}
+            boldLabel={props.textLabelBold}
+            uncontrolled={props.uncontrolled}
+            required={props.textFieldRequired}
+            onChange={
+              props.onTextFieldChange ? props.onTextFieldChange : () => {}
+            }
+            dataTestId={props.textFieldDataTestId}
+            describedby={props.describedby}
+            dataCy={props.textFieldDataCy}
+          />
+        )
+      ) : undefined}
+    </>
+  );
+}
+ 
+OptionalTextField.propTypes = {
+  /**
+   * the type of field that should be used
+   */
+  controlType: PropTypes.oneOf(["checkbox", "radiofield"]),
+  /**
+   * the id for the checkbox
+   */
+  controlId: PropTypes.string.isRequired,
+ 
+  /**
+   * the id for the text field
+   */
+  textFieldId: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the checkbox
+   */
+  controlName: PropTypes.string.isRequired,
+ 
+  /**
+   * the name for the text field
+   */
+  textFieldName: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the checkbox
+   */
+  controlLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * the label for the text field
+   */
+  textFieldLabel: PropTypes.string.isRequired,
+ 
+  /**
+   * whether or not the text label is bold
+   */
+  textLabelBold: PropTypes.bool,
+ 
+  /**
+   * the value for the checkbox
+   */
+  controlValue: PropTypes.string,
+ 
+  /**
+   * the value for the text field
+   */
+  textFieldValue: PropTypes.string,
+ 
+  /**
+   * text field placeholder
+   */
+  textFieldPlaceHolder: PropTypes.string,
+ 
+  /**
+   * whether or not the checkbox is checked
+   */
+  checked: PropTypes.bool,
+ 
+  /**
+   * boolean flag to denote whether or not the inputs are controlled
+   */
+  uncontrolled: PropTypes.bool,
+ 
+  /**
+   * whether or not the control is required
+   */
+  controlRequired: PropTypes.bool,
+ 
+  /**
+   * whether or not the text field is required
+   */
+  textFieldRequired: PropTypes.bool,
+ 
+  /**
+   * the test id for the checkbox to select in unit tests
+   */
+  controlDataTestId: PropTypes.string,
+ 
+  /**
+   * the test id for the text field to select in unit tests
+   */
+  textFieldDataTestId: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the checkbox
+   */
+  controlDataCy: PropTypes.string,
+ 
+  /**
+   * the cypress selector for the text field
+   */
+  textFieldDataCy: PropTypes.string,
+ 
+  /**
+   * callback when the checkbox changes
+   */
+  onControlChange: PropTypes.func,
+ 
+  /**
+   * callback when the text field changes
+   */
+  onTextFieldChange: PropTypes.func,
+ 
+  /**
+   * whether or not its a multi text field
+   */
+  multiText: PropTypes.bool,
+ 
+  /**
+   * how much lines should the multi text field show
+   */
+  rows: PropTypes.number,
+ 
+  /**
+   * how much columns the multi text field has
+   */
+  cols: PropTypes.number,
+ 
+  /**
+   * the minimum amount of characters for the multi text field
+   */
+  minLength: PropTypes.number,
+ 
+  /**
+   * the maximum amount of characters for the multi text field
+   */
+  maxLength: PropTypes.number,
+ 
+  /**
+   * the wrap preference for the multi text field
+   */
+  wrap: PropTypes.oneOf(["hard", "soft"]),
+ 
+  /**
+   * whether or not to spellcheck for the multi text field
+   */
+  spellCheck: PropTypes.bool,
+ 
+  /**
+   * message to display if there is an error
+   */
+  error: PropTypes.string,
+ 
+  /**
+   * aria-describedby label id
+   */
+  describedby: PropTypes.string,
+ 
+  /**
+   * Styling for checkbox
+   */
+  checkBoxStyle: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html new file mode 100644 index 0000000000..d78b071a86 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html @@ -0,0 +1,340 @@ + + + + + + Code coverage report for components/molecules/OptionalTextField.stories.js + + + + + + + + + +
+
+

All files / components/molecules OptionalTextField.stories.js

+
+ +
+ 84.21% + Statements + 16/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 13/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +861x +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { OptionalTextField } from "./OptionalTextField";
+ 
+export default {
+  title: "Components/Molecules/OptionalTextField",
+  component: OptionalTextField,
+  decorators: [
+    (Story) => (
+      <div className="w-full flex justify-center">
+        <div className="w-96">
+          <Story />
+        </div>
+      </div>
+    ),
+  ],
+};
+ 
+const Template = (args) => <OptionalTextField {...args} />;
+ 
+export const UnOpened = Template.bind({});
+UnOpened.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "unopened-check-1",
+  textFieldDataTestId: "unopened-text-1",
+};
+ 
+export const Opened = Template.bind({});
+Opened.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "opened-check-1",
+  textFieldDataTestId: "opened-text-1",
+};
+ 
+export const Radio = Template.bind({});
+Radio.args = {
+  controlType: "radiofield",
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  checked: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "radio-check-1",
+  textFieldDataTestId: "radio-text-1",
+};
+ 
+export const UnControlled = Template.bind({});
+UnControlled.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "uncontrolled-check-1",
+  textFieldDataTestId: "uncontrolled-text-1",
+};
+ 
+export const MultiText = Template.bind({});
+MultiText.args = {
+  controlId: "nutella-check-1",
+  textFieldId: "nutella-text-1",
+  controlName: "nutellaCheckOne",
+  textFieldName: "nutellaTextOne",
+  controlLabel: "Do you not like Nutella ?",
+  uncontrolled: true,
+  multiText: true,
+  rows: 5,
+  textFieldLabel: "Please explain why you are wrong ?",
+  controlDataTestId: "multitext-check-1",
+  textFieldDataTestId: "multitext-text-1",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.js.html new file mode 100644 index 0000000000..86583bd670 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.js.html @@ -0,0 +1,193 @@ + + + + + + Code coverage report for components/molecules/Quote.js + + + + + + + + + +
+
+

All files / components/molecules Quote.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +371x +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Quote component
+ */
+export function Quote(props) {
+  return (
+    <figure
+      title="Quote"
+      className={
+        props.className +
+        " border-l-4 text-sm md:text-p pl-4 leading-normal font-body"
+      }
+    >
+      <blockquote className="max-w-sm">{props.text}</blockquote>
+      <figcaption className="text-gray-500 pt-4"> — {props.author}</figcaption>
+    </figure>
+  );
+}
+ 
+Quote.propTypes = {
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * Quote
+   */
+  text: PropTypes.string,
+ 
+  /**
+   * Author
+   */
+  author: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html new file mode 100644 index 0000000000..0b812793f5 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/Quote.stories.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for components/molecules/Quote.stories.js + + + + + + + + + +
+
+

All files / components/molecules Quote.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +171x +1x +  +1x +  +  +  +  +  +  +5x +  +1x +  +  +  + 
import React from "react";
+import { Quote } from "./Quote";
+ 
+export default {
+  title: "Components/Molecules/Quote",
+  component: Quote,
+};
+ 
+const Template = (args) => <Quote {...args}></Quote>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  text: "Some quote",
+  author: "Author",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SubFooterBand.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SubFooterBand.js.html new file mode 100644 index 0000000000..93613690a3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SubFooterBand.js.html @@ -0,0 +1,511 @@ + + + + + + Code coverage report for components/molecules/SubFooterBand.js + + + + + + + + + +
+
+

All files / components/molecules SubFooterBand.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 42.85% + Branches + 9/21 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 88.88% + Lines + 8/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +1439x +9x +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +13x +  +  +13x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +65x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Link } from "../atoms/Link";
+import { Image } from "../atoms/Image";
+ 
+const brandLinksDefaultEn = [
+  {
+    href: "https://www.canada.ca/en/social.html",
+    text: "Social media",
+  },
+  {
+    href: "https://www.canada.ca/en/mobile.html",
+    text: "Mobile applications",
+  },
+  {
+    href: "https://www.canada.ca/en/government/about.html",
+    text: "About Canada.ca",
+  },
+  {
+    href: "https://www.canada.ca/en/transparency/terms.html",
+    text: "Terms and conditions",
+  },
+  {
+    href: "https://www.canada.ca/en/transparency/privacy.html",
+    text: "Privacy",
+  },
+];
+ 
+const brandLinksDefaultFr = [
+  {
+    href: "https://www.canada.ca/fr/sociaux.html",
+    text: "Médias sociaux",
+  },
+  {
+    href: "https://www.canada.ca/fr/mobile.html",
+    text: "Applications mobiles",
+  },
+  {
+    href: "https://www.canada.ca/fr/gouvernement/a-propos.html",
+    text: "À propos de Canada.ca",
+  },
+  {
+    href: "https://www.canada.ca/fr/transparence/avis.html",
+    text: "Avis",
+  },
+  {
+    href: "https://www.canada.ca/fr/transparence/confidentialite.html",
+    text: "Confidentialité",
+  },
+];
+ 
+const brandLinksDefaults = (locale) => {
+  return locale === "en" ? brandLinksDefaultEn : brandLinksDefaultFr;
+};
+ 
+export function SubFooterBand(props) {
+  return (
+    <div className="bg-[#F8F8F8]">
+      <div
+        className={`lg:container mx-auto ${
+          props.isAuthenticated ? "min-h-[86px]" : "min-h-[96px]"
+        } ${props.error ? "items-center" : ""} flex justify-between`}
+      >
+        {props.error ? (
+          <div>
+            <a
+              id="top_btn"
+              href={props.btnLink}
+              className="sm:hidden float-left cursor-pointer pr-3"
+            >
+              Top of page / Haut de la page
+            </a>
+            <img src="/upArrow.svg" alt="" className="pt-2 sm:hidden" />
+          </div>
+        ) : (
+          <section className="flex items-center">
+            <nav role="navigation">
+              <ul className="flex flex-col md:flex-row whitespace-nowrap pt-4">
+                {props.brandLinks
+                  ? props.brandLinks.map(({ href, text, onClick }, index) => {
+                      return (
+                        <li
+                          key={index}
+                          className={`${
+                            index === 0 ? "" : "md:list-disc"
+                          } pr-4 mb-[17px] list-inside list-none text-xxs ml-6`}
+                        >
+                          <Link
+                            onClick={onClick ? onClick : undefined}
+                            id={"footerLink" + index}
+                            href={href}
+                            text={text}
+                            linkStyle="smfooterBlue"
+                            target={props.target}
+                          />
+                        </li>
+                      );
+                    })
+                  : brandLinksDefaults(props.locale).map(
+                      ({ href, text }, index) => {
+                        return (
+                          <li
+                            key={index}
+                            className={`${
+                              index === 0 ? "" : "md:list-disc"
+                            } pr-4 mb-[17px] list-inside list-none text-xxs ml-6`}
+                          >
+                            <Link
+                              onClick={
+                                props.onClick ? props.onClick : undefined
+                              }
+                              id={"footerLink" + index}
+                              href={href}
+                              text={text}
+                              linkStyle="smfooterBlue"
+                              target={props.target}
+                            />
+                          </li>
+                        );
+                      }
+                    )}
+              </ul>
+            </nav>
+          </section>
+        )}
+        <div
+          className={`${
+            props.error ? "items-center" : "items-center"
+          } min-h-[96px] flex mr-[5px]`}
+        >
+          <Image
+            className={`${
+              props.error
+                ? "h-[40px] w-auto"
+                : "h-[25px] md:h-[40px] w-full mr-2"
+            } my-[15px]`}
+            src={props.logo}
+            alt="Symbol of the Government of Canada"
+          />
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.js.html new file mode 100644 index 0000000000..64cb58c85b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.js.html @@ -0,0 +1,166 @@ + + + + + + Code coverage report for components/molecules/SurveyCTA.js + + + + + + + + + +
+
+

All files / components/molecules SurveyCTA.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +282x +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ActionButton } from "../atoms/ActionButton";
+ 
+export const SurveyCTA = ({
+  heading,
+  description,
+  buttonId,
+  buttonLabel,
+  buttonLink,
+  buttonType,
+}) => {
+  return (
+    <div className="flex flex-col md:flex-row py-6 bg-multi-blue-blue70 rounded-2xl">
+      <div className="flex flex-col px-10 text-multi-neutrals-white">
+        <h3 className="font-display mt-0">{heading}</h3>
+        <p className="font-body">{description}</p>
+      </div>
+      <div className="flex flex-col px-10 pt-5 md:pt-0 md:justify-center md:items-center whitespace-nowrap">
+        <ActionButton
+          id={buttonId}
+          href={buttonLink}
+          text={buttonLabel}
+          style="tertiary"
+        />
+      </div>
+    </div>
+  );
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.stories.js.html new file mode 100644 index 0000000000..fb812e76c6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/SurveyCTA.stories.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for components/molecules/SurveyCTA.stories.js + + + + + + + + + +
+
+

All files / components/molecules SurveyCTA.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +201x +1x +  +1x +  +  +  +  +  +  +4x +  +1x +  +  +  +  +  +  + 
import React from "react";
+import { SurveyCTA } from "./SurveyCTA";
+ 
+export default {
+  title: "Components/Molecules/SurveyCTA",
+  component: SurveyCTA,
+};
+ 
+const Template = (args) => <SurveyCTA {...args}></SurveyCTA>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  heading: "CTA Heading",
+  description: "A description of what the CTA is for",
+  buttonLabel: "Button label",
+  buttonLink: "#",
+  buttonType: "gc:custom/decd-endc/button-type/secondary",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html new file mode 100644 index 0000000000..a391d83212 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.js.html @@ -0,0 +1,379 @@ + + + + + + Code coverage report for components/molecules/TextButtonField.js + + + + + + + + + +
+
+

All files / components/molecules TextButtonField.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +991x +1x +  +  +  +  +7x +  +  +6x +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ *  component
+ */
+export function TextButtonField(props) {
+  //Verification for styling
+  let secondary;
+  if (props.custom === undefined)
+    props.secondary === undefined
+      ? (secondary = true)
+      : (secondary = props.secondary);
+ 
+  return (
+    <div className={props.className + " mb-4 mx-0"}>
+      {props.html === undefined ? (
+        <div className="textbuttonField">{props.children}</div>
+      ) : (
+        <div
+          className="textbuttonField"
+          dangerouslySetInnerHTML={{ __html: props.html }}
+        />
+      )}
+ 
+      {props.buttonText ? (
+        <ActionButton
+          id={props.idButton}
+          className={"mt-2 text-xs md:text-base"}
+          text={props.buttonText}
+          secondary={secondary}
+          disabled={props.disabled}
+          custom={props.custom}
+          href={props.href}
+          dataCyButton={props.dataCyButton}
+        />
+      ) : (
+        ""
+      )}
+    </div>
+  );
+}
+ 
+TextButtonField.propTypes = {
+  /**
+   * Option for styling component
+   */
+  className: PropTypes.string,
+ 
+  /**
+   * Option for html
+   */
+  html: PropTypes.string,
+ 
+  /**
+   * Contenty
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+ 
+  /**
+   * Button id
+   */
+  idButton: PropTypes.string,
+ 
+  /**
+   * Button link
+   */
+  href: PropTypes.string,
+ 
+  /**
+   * Button text
+   */
+  buttonText: PropTypes.string,
+ 
+  /**
+   * Button secondary
+   */
+  secondary: PropTypes.bool,
+ 
+  /**
+   * Button disabled
+   */
+  disabled: PropTypes.bool,
+ 
+  /**
+   * Button custom
+   */
+  custom: PropTypes.string,
+ 
+  /**
+   * Test id for cypress test for the button
+   */
+  dataCyButton: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html new file mode 100644 index 0000000000..e4d1579ac5 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html @@ -0,0 +1,220 @@ + + + + + + Code coverage report for components/molecules/TextButtonField.stories.js + + + + + + + + + +
+
+

All files / components/molecules TextButtonField.stories.js

+
+ +
+ 93.75% + Statements + 15/16 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +461x +1x +  +1x +  +  +  +  +  +  +8x +3x +3x +3x +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import React from "react";
+import { TextButtonField } from "./TextButtonField";
+ 
+export default {
+  title: "Components/Molecules/TextButtonField",
+  component: TextButtonField,
+};
+ 
+const Template = (args) => <TextButtonField {...args}></TextButtonField>;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+export const Disabled = Template.bind({});
+export const Custom = Template.bind({});
+ 
+Primary.args = {
+  title: "Primary",
+  html: "<h1>Title</h1><p>Text</p>",
+  idButton: "Button1",
+  buttonText: "Button",
+  secondary: false,
+};
+ 
+Secondary.args = {
+  title: "Secondary",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button2",
+};
+ 
+Disabled.args = {
+  title: "Disabled",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button3",
+  disabled: true,
+};
+ 
+Custom.args = {
+  title: "Custom",
+  html: "<h1>Title</h1><p>Text</p>",
+  buttonText: "Button",
+  idButton: "Button4",
+  custom: "bg-red-100",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.js.html new file mode 100644 index 0000000000..e62536bab1 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.js.html @@ -0,0 +1,520 @@ + + + + + + Code coverage report for components/molecules/TopNavBar.js + + + + + + + + + +
+
+

All files / components/molecules TopNavBar.js

+
+ +
+ 58.33% + Statements + 7/12 +
+ + +
+ 15.78% + Branches + 3/19 +
+ + +
+ 25% + Functions + 1/4 +
+ + +
+ 58.33% + Lines + 7/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +1469x +9x +  +17x +  +  +  +  +  +  +  +  +  +15x +15x +  +  +15x +  +  +  +15x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Link from "next/link";
+import React, { useState } from "react";
+ 
+export function TopNavBar({
+  homeLink,
+  homeLinkLabel,
+  updatesLink,
+  updatesLinkLabel,
+  projectsLink,
+  projectsLinkLabel,
+  navAriaLabel,
+  buttonAriaLabel,
+}) {
+  const [isOpen, setIsOpen] = useState(false);
+  const [isTransitioningClosed, setIsTransitioningClosed] = useState(false);
+ 
+  //Handles the opening and closing of our nav
+  const handleClick = () => {
+    isOpen ? animateCloseMenu() : setIsOpen(!isOpen);
+  };
+ 
+  const animateCloseMenu = () => {
+    setIsTransitioningClosed(true);
+    setTimeout(() => {
+      setIsTransitioningClosed(false);
+      setIsOpen(!isOpen);
+    }, 250);
+  };
+ 
+  return (
+    <nav
+      aria-label={navAriaLabel}
+      className="bg-custom-gray-lightest min-h-[64px] flex justify-end"
+    >
+      {/* Desktop Nav Menu */}
+      <div className="hidden lg:flex w-full self-center justify-between layout-container">
+        <Link
+          href={homeLink}
+          className="font-body font-semibold text-[25.31px]"
+        >
+          {homeLinkLabel}
+        </Link>
+        <div className="lg:mr-16">
+          <Link href={projectsLink} className="font-body mr-10 text-p">
+            {projectsLinkLabel}
+          </Link>
+          <Link href={updatesLink} className="font-body text-p">
+            {updatesLinkLabel}
+          </Link>
+        </div>
+      </div>
+      {/* Mobile Nav Menu */}
+      <div className="static lg:hidden mt-5 flex flex-col w-full mr-4">
+        <button
+          aria-label={buttonAriaLabel}
+          aria-haspopup="true"
+          aria-expanded={isOpen ? "true" : "false"}
+          aria-controls="menu"
+          onClick={handleClick}
+          className="self-end"
+        >
+          {isOpen ? (
+            <div
+              className={`${
+                isTransitioningClosed ? "fade-out" : "fade-in"
+              } -mt-1 p-1.5`}
+            >
+              <svg
+                width="20"
+                height="20"
+                viewBox="0 0 17 17"
+                fill="none"
+                xmlns="http://www.w3.org/2000/svg"
+                className="exit-icon"
+              >
+                <path d="M11.3775 8.25L16.0683 3.55922C16.6439 2.98359 16.6439 2.05031 16.0683 1.47422L15.0258 0.431719C14.4502 -0.143906 13.5169 -0.143906 12.9408 0.431719L8.25 5.1225L3.55922 0.431719C2.98359 -0.143906 2.05031 -0.143906 1.47422 0.431719L0.431719 1.47422C-0.143906 2.04984 -0.143906 2.98312 0.431719 3.55922L5.1225 8.25L0.431719 12.9408C-0.143906 13.5164 -0.143906 14.4497 0.431719 15.0258L1.47422 16.0683C2.04984 16.6439 2.98359 16.6439 3.55922 16.0683L8.25 11.3775L12.9408 16.0683C13.5164 16.6439 14.4502 16.6439 15.0258 16.0683L16.0683 15.0258C16.6439 14.4502 16.6439 13.5169 16.0683 12.9408L11.3775 8.25Z" />
+              </svg>
+            </div>
+          ) : (
+            <div className={`${isTransitioningClosed ? "fade-in" : ""} -mt-1`}>
+              <svg
+                width="32"
+                height="32"
+                viewBox="0 0 24 24"
+                fill="none"
+                xmlns="http://www.w3.org/2000/svg"
+              >
+                <path
+                  d="M4 18L20 18"
+                  stroke="#000000"
+                  strokeWidth="2"
+                  strokeLinecap="round"
+                />
+                <path
+                  d="M4 12L20 12"
+                  stroke="#000000"
+                  strokeWidth="2"
+                  strokeLinecap="round"
+                />
+                <path
+                  d="M4 6L20 6"
+                  stroke="#000000"
+                  strokeWidth="2"
+                  strokeLinecap="round"
+                />
+              </svg>
+            </div>
+          )}
+        </button>
+        {isOpen ? (
+          <ul
+            id="menu"
+            className={`${
+              isTransitioningClosed ? "fade-out" : "fade-in"
+            } absolute w-full flex flex-col mt-8 pb-4 bg-custom-gray-lightest drop-shadow-xl`}
+          >
+            <li
+              className={`${
+                isTransitioningClosed ? "decrease-margin" : "expand-margin"
+              } my-2 ml-4 text-[20px]`}
+            >
+              <Link href={homeLink}>{homeLinkLabel}</Link>
+            </li>
+            <li
+              className={`${
+                isTransitioningClosed ? "decrease-margin" : "expand-margin"
+              } my-2 ml-4 text-[20px]`}
+            >
+              <Link href={projectsLink}>{projectsLinkLabel}</Link>
+            </li>
+            <li
+              className={`${
+                isTransitioningClosed ? "decrease-margin" : "expand-margin"
+              } my-2 ml-4 text-[20px]`}
+            >
+              <Link href={updatesLink}>{updatesLinkLabel}</Link>
+            </li>
+          </ul>
+        ) : (
+          ""
+        )}
+      </div>
+    </nav>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.stories.js.html new file mode 100644 index 0000000000..ba506b0605 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/TopNavBar.stories.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for components/molecules/TopNavBar.stories.js + + + + + + + + + +
+
+

All files / components/molecules TopNavBar.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +231x +1x +  +1x +  +  +  +  +  +  +6x +  +1x +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { TopNavBar } from "./TopNavBar";
+ 
+export default {
+  title: "Components/Molecules/TopNavBar",
+  component: TopNavBar,
+};
+ 
+const Template = (args) => <TopNavBar {...args}></TopNavBar>;
+ 
+export const Primary = Template.bind({});
+ 
+Primary.args = {
+  homeLink: "#home",
+  homeLinkLabel: "Home",
+  updatesLink: "#updates",
+  updatesLinkLabel: "Updates",
+  projectsLink: "#projects",
+  projectsLinkLabel: "Projects",
+  navAriaLabel: "nav-aria-label",
+  buttonAriaLabel: "button-aria-label",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/molecules/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/index.html new file mode 100644 index 0000000000..17891fba71 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/molecules/index.html @@ -0,0 +1,671 @@ + + + + + + Code coverage report for components/molecules + + + + + + + + + +
+
+

All files components/molecules

+
+ +
+ 86.34% + Statements + 354/410 +
+ + +
+ 57.96% + Branches + 91/157 +
+ + +
+ 76% + Functions + 38/50 +
+ + +
+ 91.04% + Lines + 315/346 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CTA.js +
+
100%6/666.66%2/3100%2/2100%5/5
CTA.stories.js +
+
90%9/10100%0/0100%0/0100%7/7
Card.js +
+
91.66%11/1266.66%10/15100%1/1100%10/10
Card.stories.js +
+
80%16/20100%0/0100%0/0100%14/14
Collapse.js +
+
100%5/5100%1/1100%1/1100%5/5
Collapse.stories.js +
+
90%9/10100%0/0100%0/0100%7/7
ContextualAlert.js +
+
100%11/1181.25%13/16100%1/1100%11/11
ContextualAlert.stories.js +
+
93.33%14/15100%0/0100%0/0100%10/10
CopyToClipboard.js +
+
100%7/775%3/4100%2/2100%7/7
CopyToClipboard.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Details.js +
+
100%3/3100%0/0100%1/1100%3/3
Details.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
ErrorBox.js +
+
100%6/60%0/1100%3/3100%6/6
ErrorBox.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
FeedbackWidget.js +
+
72.58%45/6238.09%8/2150%5/1071.66%43/60
FeedbackWidget.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Filter.js +
+
100%5/5100%0/0100%2/2100%5/5
Filter.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Heading.js +
+
100%4/4100%2/2100%1/1100%4/4
Heading.stories.js +
+
88.88%8/9100%0/0100%0/0100%6/6
List.js +
+
100%8/8100%1/1100%2/2100%7/7
List.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
MainBand.js +
+
100%5/5100%2/2100%2/2100%5/5
Menu.js +
+
92.85%13/1460%6/1075%3/492.85%13/14
Menu.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
OptionalListField.js +
+
78.94%15/1975%12/16100%3/378.94%15/19
OptionalListField.stories.js +
+
90.47%19/21100%0/0100%0/0100%15/15
OptionalTextField.js +
+
85%17/2078.94%15/1950%2/485%17/20
OptionalTextField.stories.js +
+
84.21%16/19100%0/0100%0/0100%13/13
Quote.js +
+
100%3/3100%0/0100%1/1100%3/3
Quote.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
SubFooterBand.js +
+
88.88%8/942.85%9/2175%3/488.88%8/9
SurveyCTA.js +
+
100%3/3100%0/0100%1/1100%2/2
SurveyCTA.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
TextButtonField.js +
+
100%6/666.66%4/6100%1/1100%6/6
TextButtonField.stories.js +
+
93.75%15/16100%0/0100%0/0100%11/11
TopNavBar.js +
+
58.33%7/1215.78%3/1925%1/458.33%7/12
TopNavBar.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.js.html new file mode 100644 index 0000000000..3b46631c68 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.js.html @@ -0,0 +1,253 @@ + + + + + + Code coverage report for components/organisms/ExploreProjects.js + + + + + + + + + +
+
+

All files / components/organisms ExploreProjects.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 10/10 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 100% + Lines + 8/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +577x +7x +  +  +7x +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +10x +  +10x +  +9x +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, { useEffect } from "react";
+import Card from "../molecules/Card";
+ 
+//callback function that creates a card for a project when called
+const createCard = (locale, project) => {
+  return (
+    <li
+      key={project.scId}
+      className="rounded-md bg-multi-neutrals-white col-span-12 lg:col-span-4"
+    >
+      <Card
+        showImage
+        imgSrc={
+          locale === "en"
+            ? `https://www.canada.ca${project.scSocialMediaImageEn?._path}`
+            : `https://www.canada.ca${project.scSocialMediaImageFr?._path}`
+        }
+        imgAlt={
+          locale === "en"
+            ? project.scSocialMediaImageAltTextEn
+            : project.scSocialMediaImageAltTextFr
+        }
+        imgHeight={project.scSocialMediaImageEn?.height}
+        imgWidth={project.scSocialMediaImageEn?.width}
+        title={locale === "en" ? project.scTitleEn : project.scTitleFr}
+        href={locale === "en" ? project.scPageNameEn : project.scPageNameFr}
+        description={
+          locale === "en"
+            ? project.scDescriptionEn.json[0].content[0].value
+            : project.scDescriptionFr.json[0].content[0].value
+        }
+      />
+    </li>
+  );
+};
+ 
+export function ExploreProjects(props) {
+  //initialize props
+  const { locale, projects, heading } = props;
+  //create cards for current projects
+  const displayCurrentProjects = projects.map((project) =>
+    createCard(locale, project)
+  );
+  return (
+    //create html for "Explore other projects" section
+    <div className="py-24 max-w-full bg-multi-blue-blue65b">
+      <div className="layout-container">
+        <h2 className="mt-0 text-multi-neutrals-white">{heading}</h2>
+        <ul className="grid grid-cols-12 gap-x-6 gap-y-6 list-none">
+          {/*iterate over filteredProjects array and create card for each project */}
+          {displayCurrentProjects}
+        </ul>
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.stories.js.html new file mode 100644 index 0000000000..1484a618b7 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreProjects.stories.js.html @@ -0,0 +1,382 @@ + + + + + + Code coverage report for components/organisms/ExploreProjects.stories.js + + + + + + + + + +
+
+

All files / components/organisms ExploreProjects.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +1001x +1x +  +1x +  +  +  +  +  +  +3x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { ExploreProjects } from "./ExploreProjects";
+ 
+export default {
+  title: "Components/organisms/ExploreProjects",
+  component: ExploreProjects,
+};
+ 
+const Template = (args) => <ExploreProjects {...args}></ExploreProjects>;
+ 
+export const Default = Template.bind({});
+ 
+Default.args = {
+  locale: "en",
+  projects: [
+    {
+      scId: "First project",
+      scTitleEn: "First project",
+      scTitleFr: "First project fr",
+      scPageNameEn: "/en/projects/digital-standards-playbook",
+      scPageNameFr: "/fr/projets/guide-normes-numeriques",
+      scSocialMediaImageEn: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageFr: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageAltTextEn: "first alt",
+      scSocialMediaImageAltTextFr: "first alt fr",
+      scDescriptionEn: {
+        json: [{ content: [{ value: "first description" }] }],
+      },
+      scDescriptionFr: {
+        json: [{ content: [{ value: "first description fr" }] }],
+      },
+    },
+    {
+      scId: "Second project",
+      scTitleEn: "Second project",
+      scTitleFr: "Second project fr",
+      scPageNameEn: "/en/projects/digital-standards-playbook",
+      scPageNameFr: "/fr/projets/guide-normes-numeriques",
+      scSocialMediaImageEn: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageFr: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageAltTextEn: "second alt",
+      scSocialMediaImageAltTextFr: "second alt fr",
+      scDescriptionEn: {
+        json: [{ content: [{ value: "second description" }] }],
+      },
+      scDescriptionFr: {
+        json: [{ content: [{ value: "second description fr" }] }],
+      },
+    },
+    {
+      scId: "Third project",
+      scTitleEn: "Third project",
+      scTitleFr: "Third project fr",
+      scPageNameEn: "/en/projects/digital-standards-playbook",
+      scPageNameFr: "/fr/projets/guide-normes-numeriques",
+      scSocialMediaImageEn: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageFr: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/benefits-navigator/navigator-overview.jpg",
+        width: 359,
+        height: 260,
+      },
+      scSocialMediaImageAltTextEn: "third alt",
+      scSocialMediaImageAltTextFr: "third alt fr",
+      scDescriptionEn: {
+        json: [{ content: [{ value: "third description" }] }],
+      },
+      scDescriptionFr: {
+        json: [{ content: [{ value: "third description fr" }] }],
+      },
+    },
+  ],
+  heading: "Explore other projects",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.js.html new file mode 100644 index 0000000000..907f8505f9 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.js.html @@ -0,0 +1,289 @@ + + + + + + Code coverage report for components/organisms/ExploreUpdates.js + + + + + + + + + +
+
+

All files / components/organisms ExploreUpdates.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 8/8 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +698x +8x +8x +8x +  +8x +  +  +  +  +  +  +  +7x +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Link from "next/link";
+import { Link as LinkWrapper } from "../atoms/Link";
+import Card from "../molecules/Card";
+import { getDictionaryTerm } from "../../lib/utils/getDictionaryTerm";
+ 
+export function ExploreUpdates({
+  heading,
+  updatesData,
+  href,
+  linkLabel,
+  locale,
+  dictionary,
+}) {
+  const updatesCards = updatesData.map((update) => {
+    return (
+      <li key={update.scId} className="bg-white list-none my-3">
+        <Card
+          cardHeadingStyling="!mt-0 !pt-0"
+          customStyling="flex flex-col justify-between !py-5"
+          title={locale === "en" ? update.scTitleEn : update.scTitleFr}
+          href={locale === "en" ? update.scPageNameEn : update.scPageNameFr}
+          htmlDesc={
+            <div className="flex flex-col pt-6 md:pt-0">
+              <span className="flex flex-row pt-2 pl-6">
+                <p className="text-multi-neutrals-grey100 font-semibold whitespace-nowrap">
+                  {locale === "en" ? "Project:" : "Projet :"}
+                </p>
+                <p className="mt-0 pl-1">
+                  {locale === "en"
+                    ? update.scLabProject.scTermEn
+                    : update.scLabProject.scTermFr}
+                </p>
+              </span>
+              <span className="flex flex-row pl-6">
+                <p className="text-multi-neutrals-grey100 font-semibold">
+                  {getDictionaryTerm(dictionary, "POSTED-ON", locale)}
+                </p>
+                <p className="mt-0 pl-1">{`${update.scDateModifiedOverwrite}`}</p>
+              </span>
+            </div>
+          }
+        />
+      </li>
+    );
+  });
+ 
+  return (
+    <div className="mt-14 bg-custom-blue-updates-blue">
+      <div className="layout-container py-28">
+        <div className="grid grid-cols-12">
+          <h2 className="grid col-span-12 xl:col-span-8 mt-0">{heading}</h2>
+          <ul className="grid col-span-12 xl:col-span-8">{updatesCards}</ul>
+          <div className="grid col-span-12 xl:col-span-8 mt-4">
+            <div className="flex justify-end">
+              <LinkWrapper
+                component={Link}
+                id="seeAllUpdatesLink"
+                href={href}
+                lang={locale}
+                text={linkLabel}
+              />
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.stories.js.html new file mode 100644 index 0000000000..9a202d112d --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ExploreUpdates.stories.js.html @@ -0,0 +1,874 @@ + + + + + + Code coverage report for components/organisms/ExploreUpdates.stories.js + + + + + + + + + +
+
+

All files / components/organisms ExploreUpdates.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +2641x +1x +  +1x +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import { ExploreUpdates } from "./ExploreUpdates";
+ 
+export default {
+  title: "Components/organisms/ExploreUpdates",
+  component: ExploreUpdates,
+};
+ 
+const Template = (args) => <ExploreUpdates {...args}></ExploreUpdates>;
+ 
+export const Default = Template.bind({});
+ 
+Default.args = {
+  locale: "en",
+  heading: "Explore more updates",
+  updatesData: [
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/pages/projects/oas-benefits-estimator/project-updates/how-feedback-is-shaping-the-estimator",
+      scId: "HOW-FEEDBACK-SHAPING-ESTIMATOR",
+      scPageNameEn: "/en/projects/oas-benefits-estimator/how-feedback-shaping",
+      scPageNameFr:
+        "/fr/projets/estimateur-prestations-sv/faconner-grace-retroaction",
+      scLabProject: {
+        scTermEn: "OAS Benefits Estimator",
+        scTermFr: "Estimateur des prestations de la Sécurité de la vieillesse",
+      },
+      scTitleEn: "How feedback is shaping the estimator",
+      scTitleFr: "Façonner l’estimateur grâce à la rétroaction",
+      scBreadcrumbParentPages: [
+        {
+          scTitleEn: "Service Canada Labs",
+          scTitleFr: "Laboratoires de Service Canada",
+          scPageNameEn: "/en/home",
+          scPageNameFr: "/fr/accueil",
+        },
+        {
+          scTitleEn: "Old Age Security Benefits Estimator",
+          scTitleFr:
+            "Estimateur des prestations de la Sécurité de la vieillesse",
+          scPageNameEn: "/en/projects/oas-benefits-estimator",
+          scPageNameFr: "/fr/projets/estimateur-prestations-sv",
+        },
+      ],
+      scSubject: ["gc:subjects/gv-government-and-politics/government-services"],
+      scKeywordsEn: "feedback, benefits, estimator",
+      scKeywordsFr: "rétroaction, prestations, estimateur",
+      scContentType: [
+        "gc:content-types/promotional-material-featured-articles",
+      ],
+      scOwner: ["gc:institutions/service-canada"],
+      scDateModifiedOverwrite: "2023-12-12",
+      scSocialMediaImageEn: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/feedback.jpg",
+        _publishUrl:
+          "https://www.canada.ca/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/feedback.jpg",
+        width: 2670,
+        height: 1543,
+      },
+      scSocialMediaImageFr: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/feedback.jpg",
+        _publishUrl:
+          "https://www.canada.ca/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/feedback.jpg",
+        width: 2670,
+        height: 1543,
+      },
+      scSocialMediaImageAltTextEn:
+        " Different kinds of feedback being gathered",
+      scSocialMediaImageAltTextFr:
+        " Un rassemblement de différents types de rétroaction",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/pages/projects/oas-benefits-estimator/project-updates/what-we-learned",
+      scId: "WHAT-WE-LEARNED",
+      scPageNameEn: "/en/projects/oas-benefits-estimator/what-we-learned",
+      scPageNameFr:
+        "/fr/projets/estimateur-prestations-sv/ce-que-nous-avons-appris",
+      scLabProject: {
+        scTermEn: "OAS Benefits Estimator",
+        scTermFr: "Estimateur des prestations de la Sécurité de la vieillesse",
+      },
+      scTitleEn:
+        "What we learned on Service Canada Labs before going live on Canada.ca",
+      scTitleFr:
+        "Ce que nous avons appris dans les laboratoires avant notre lancement sur Canada.ca",
+      scBreadcrumbParentPages: [
+        {
+          scTitleEn: "Service Canada Labs",
+          scTitleFr: "Laboratoires de Service Canada",
+          scPageNameEn: "/en/home",
+          scPageNameFr: "/fr/accueil",
+        },
+        {
+          scTitleEn: "Old Age Security Benefits Estimator",
+          scTitleFr:
+            "Estimateur des prestations de la Sécurité de la vieillesse",
+          scPageNameEn: "/en/projects/oas-benefits-estimator",
+          scPageNameFr: "/fr/projets/estimateur-prestations-sv",
+        },
+      ],
+      scContentType: [
+        "gc:content-types/promotional-material-featured-articles",
+      ],
+      scDateModifiedOverwrite: "2023-07-02",
+      scSocialMediaImageEn: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/what-we-learned.jpg",
+        _publishUrl:
+          "https://www.canada.ca/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/what-we-learned.jpg",
+        width: 2670,
+        height: 1543,
+      },
+      scSocialMediaImageFr: {
+        _path:
+          "/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/what-we-learned.jpg",
+        _publishUrl:
+          "https://www.canada.ca/content/dam/decd-endc/images/sclabs/oas-benefits-estimator/what-we-learned.jpg",
+        width: 2670,
+        height: 1543,
+      },
+      scSocialMediaImageAltTextEn: "People giving feedback",
+      scSocialMediaImageAltTextFr: "Personnes qui donnent de la rétroaction",
+    },
+  ],
+  dictionary: [
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sch/dictionary/opens-in-a-new-tab",
+      scId: "opens-in-a-new-tab",
+      scTermEn: "(Opens in a new tab)",
+      scTermFr: "(S'ouvre dans un nouvel onglet)",
+    },
+    {
+      _path: "/content/dam/decd-endc/content-fragments/sclabs/dictionary/all",
+      scId: "ALL",
+      scTermEn: "All",
+      scTermFr: "Tous",
+    },
+    {
+      _path: "/content/dam/decd-endc/content-fragments/sclabs/dictionary/ended",
+      scId: "ENDED",
+      scTermEn: "Ended",
+      scTermFr: "Fin",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/filter-by",
+      scId: "FILTER-BY",
+      scTermEn: "Filter by:",
+      scTermFr: "Filtrer par :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/filter-by-project",
+      scId: "DICTIONARY-FILTER-BY-PROJECT",
+      scTermEn: "Filter by project",
+      scTermFr: "Filtrer par projet",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/filter-by-project-status",
+      scId: "DICTIONARY-FILTER-BY-PROJECT-STATUS",
+      scTermEn: "Filter by project status",
+      scTermFr: "Filtrer par état du projet",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/last-updated",
+      scId: "LAST-UPDATED",
+      scTermEn: "Last updated:",
+      scTermFr: "Dernière mise à jour :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/on-this-page",
+      scId: "ON-THIS-PAGE",
+      scTermEn: "On this page",
+      scTermFr: "Sur cette page",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/optional-information",
+      scId: "OPTIONAL-INFORMATION",
+      scTermEn: "Optional information",
+      scTermFr: "Renseignements optionnels",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/past-projects",
+      scId: "PAST-PROJECTS",
+      scTermEn: "Past projects",
+      scTermFr: "Projets antérieurs",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/paused",
+      scId: "PAUSED",
+      scTermEn: "Paused:",
+      scTermFr: "Interrompu :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/posted-on",
+      scId: "POSTED-ON",
+      scTermEn: "Posted on:",
+      scTermFr: "Publié le :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/project-stage",
+      scId: "PROJECT-STAGE",
+      scTermEn: "Project stage:",
+      scTermFr: "Phase du projet :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/project-updates",
+      scId: "PROJECT-UPDATES",
+      scTermEn: "Project updates",
+      scTermFr: "Mises à jour du projet",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/required-information",
+      scId: "REQUIRED-INFORMATION",
+      scTermEn: "Required information",
+      scTermFr: "Renseignements obligatoires",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/see-all-updates-project",
+      scId: "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+      scTermEn: "See all updates about this project",
+      scTermFr: "Consulter toutes les mises à jour de ce projet",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/started",
+      scId: "STARTED",
+      scTermEn: "Started:",
+      scTermFr: "Début :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/summary",
+      scId: "SUMMARY",
+      scTermEn: "Summary:",
+      scTermFr: "Résumé :",
+    },
+    {
+      _path:
+        "/content/dam/decd-endc/content-fragments/sclabs/dictionary/upcoming-projects",
+      scId: "UPCOMING-PROJECTS",
+      scTermEn: "Upcoming projects",
+      scTermFr: "Projets à venir",
+    },
+  ],
+  href: "#",
+  linkLabel: "See more updates",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Feedback.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Feedback.js.html new file mode 100644 index 0000000000..9d2a7f89f8 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Feedback.js.html @@ -0,0 +1,526 @@ + + + + + + Code coverage report for components/organisms/Feedback.js + + + + + + + + + +
+
+

All files / components/organisms Feedback.js

+
+ +
+ 47.82% + Statements + 11/23 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 14.28% + Functions + 1/7 +
+ + +
+ 45.45% + Lines + 10/22 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +1488x +8x +8x +8x +  +  +12x +12x +12x +  +12x +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x + 
import { useState, useRef } from "react";
+import Image from "next/image";
+import { useRouter } from "next/router";
+import { useTranslation } from "next-i18next";
+ 
+function Feedback() {
+  const [isSubmitted, setIsSubmitted] = useState(false);
+  const [isProvidingFeedback, setIsProvidingFeedback] = useState(false);
+  const thankYouRef = useRef(null);
+ 
+  const router = useRouter();
+  const { t } = useTranslation("common");
+ 
+  async function handleSubmit(e) {
+    e.preventDefault();
+    try {
+      await fetch("/api/submit-feedback", {
+        method: "POST",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        body: JSON.stringify(Object.fromEntries(new FormData(e.target))),
+      });
+    } finally {
+      setIsSubmitted(true);
+      // Focus will move to thank you message when it appears
+      setFocus(thankYouRef);
+    }
+  }
+ 
+  function onYesClick() {
+    setIsSubmitted(true);
+    setFocus(thankYouRef);
+  }
+ 
+  function setFocus(ref) {
+    setTimeout(() => {
+      Iif (ref.current) {
+        ref.current.focus();
+      }
+    }, 100);
+  }
+ 
+  return (
+    <div className="sm:flex items-center justify-between gap-20 bg-gray-light-200 p-5 max-w-[568px] border rounded">
+      {isSubmitted && (
+        <div className="flex gap-5 items-center">
+          <Image
+            src="/success_img.svg"
+            alt=""
+            width={25}
+            height={25}
+            style={{ width: 25, height: 25 }}
+            priority
+          />
+          <p ref={thankYouRef} tabIndex={-1} role="status" aria-live="polite">
+            {t("feedback.thank-you")}
+          </p>
+        </div>
+      )}
+ 
+      {isProvidingFeedback && !isSubmitted && (
+        <form onSubmit={handleSubmit} className="space-y-5">
+          <input type="hidden" name="page" value={router.asPath} />
+          <fieldset>
+            <legend className="font-bold mb-2">
+              {t("feedback.what-was-wrong")}
+            </legend>
+            <label className="flex gap-2">
+              <input
+                type="radio"
+                name="what-was-wrong"
+                value="cant-find-info"
+                required
+              />
+              {t("feedback.cant-find-info")}
+            </label>
+            <label className="flex gap-2">
+              <input
+                type="radio"
+                name="what-was-wrong"
+                value="hard-to-understand"
+              />
+              {t("feedback.hard-to-understand")}
+            </label>
+            <label className="flex gap-2">
+              <input
+                type="radio"
+                name="what-was-wrong"
+                value="there-was-an-error"
+              />
+              {t("feedback.there-was-an-error")}
+            </label>
+            <label className="flex gap-2">
+              <input type="radio" name="what-was-wrong" value="other-reason" />
+              {t("feedback.other-reason")}
+            </label>
+          </fieldset>
+          <label className="flex flex-col gap-2">
+            <span className="font-bold">
+              {t("feedback.provide-more-details")}
+            </span>
+            <span id="extra-info" className="font-[500] text-xs">
+              {t("feedback.no-protected-info")}
+            </span>
+            <span id="maximum-characters" className="font-[300] text-xs">
+              {t("feedback.maximum-characters")}
+            </span>
+            <textarea
+              name="extra-details"
+              aria-describedby="extra-info maximum-characters"
+              maxLength={300}
+              className="p-1"
+            />
+          </label>
+          <button className="bg-multi-blue-blue70 hover:bg-multi-blue-blue60e text-white rounded py-1 px-2">
+            {t("feedback.submit")}
+          </button>
+        </form>
+      )}
+ 
+      {!isSubmitted && !isProvidingFeedback && (
+        <>
+          <p className="font-semibold text-sm">{t("feedback.did-you-find")}</p>
+          <div className="flex gap-2">
+            <button
+              onClick={() => onYesClick()}
+              className="bg-multi-blue-blue70 hover:bg-multi-blue-blue60e text-white rounded py-1 px-2"
+              aria-label={t("feedback.yes-aria-label")}
+            >
+              {t("feedback.yes")}
+            </button>
+            <button
+              onClick={() => setIsProvidingFeedback(true)}
+              className="bg-multi-blue-blue70 hover:bg-multi-blue-blue60e text-white rounded py-1 px-2"
+              aria-label={t("feedback.no-aria-label")}
+            >
+              {t("feedback.no")}
+            </button>
+          </div>
+        </>
+      )}
+    </div>
+  );
+}
+ 
+export default Feedback;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.js.html new file mode 100644 index 0000000000..1a7f4b6a90 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.js.html @@ -0,0 +1,511 @@ + + + + + + Code coverage report for components/organisms/Footer.js + + + + + + + + + +
+
+

All files / components/organisms Footer.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 66.66% + Branches + 4/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143  +9x +9x +9x +9x +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +14x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/* eslint-disable no-prototype-builtins */
+import PropTypes from "prop-types";
+import { MainBand } from "../molecules/MainBand";
+import { SubFooterBand } from "../molecules/SubFooterBand";
+import { Link } from "../atoms/Link";
+ 
+const landscapeLinkKeys = [
+  "contacts",
+  "departments",
+  "about",
+  "jobs",
+  "taxes",
+  "canadaAndWorld",
+  "immigration",
+  "environment",
+  "finance",
+  "travel",
+  "nationalSecurity",
+  "innovation",
+  "business",
+  "culture",
+  "indigenous",
+  "benefit",
+  "policing",
+  "veterans",
+  "health",
+  "transport",
+  "youth",
+];
+ 
+export const Footer = ({
+  error,
+  id,
+  brandLinks,
+  target,
+  onClick,
+  btnLink,
+  preFooterTitle,
+  preFooterLink,
+  preFooterLinkText,
+  contactLink = "https://www.canada.ca/en/contact.html",
+  lang,
+  withMainBand = true,
+}) => {
+  return (
+    <footer id={id} data-testid="footer">
+      {preFooterTitle && preFooterLink ? (
+        <div className="bg-multi-blue-blue70c">
+          <div className="lg:container mx-auto px-6 pb-[22px]">
+            <h3 className="pt-[22px] text-multi-neutrals-white font-body font-bold text-[19px]">
+              {preFooterTitle}
+            </h3>
+            <Link
+              id=""
+              href={preFooterLink}
+              text={preFooterLinkText}
+              linkStyle="smfooterWhite"
+            />
+          </div>
+        </div>
+      ) : (
+        ""
+      )}
+      <div
+        className="bg-multi-blue-blue70 bg-no-repeat bg-clip-border sm:bg-right-bottom bg-bottom"
+        style={{
+          backgroundImage: `url(/footer_bg_img.svg)`,
+        }}
+      >
+        <div className="lg:container mx-auto px-6">
+          <MainBand landscapeLinks={landscapeLinkKeys} target={target} />
+        </div>
+      </div>
+      <SubFooterBand
+        locale={lang}
+        container="container"
+        brandLinks={brandLinks}
+        onClick={onClick}
+        target={target}
+        logo="/wmms-blk.svg"
+        error={error}
+        btnLink={btnLink}
+      />
+    </footer>
+  );
+};
+ 
+Footer.propTypes = {
+  /**
+   * id of this component
+   */
+  id: PropTypes.string.isRequired,
+  /**
+   * Add the path Link to the top of your page for the "to the Top" button in mobile
+   */
+  btnLink: PropTypes.string.isRequired,
+ 
+  /**
+   * If true will display the error page version of the footer component
+   */
+  error: PropTypes.bool,
+ 
+  /**
+   * Allow user to pass in their own contact link
+   */
+  contactLink: PropTypes.string,
+ 
+  /**
+   * List of links to display on the footer
+   */
+  brandLinks: PropTypes.arrayOf(
+    PropTypes.shape({
+      id: PropTypes.string,
+      text: PropTypes.string,
+      href: PropTypes.string,
+    }).isRequired
+  ),
+ 
+  /**
+   * Specifies where to open the linked document
+   */
+  target: PropTypes.string,
+ 
+  /**
+   * Handle onclick on the footer media link
+   */
+  onClick: PropTypes.func,
+ 
+  /**
+   * List of menu items to display in dropdown with links
+   */
+  contextualBandLinks: PropTypes.arrayOf(
+    PropTypes.shape({
+      key: PropTypes.string,
+      text: PropTypes.string,
+      link: PropTypes.string,
+    })
+  ),
+  preFooterTitle: PropTypes.string,
+  preFooterLink: PropTypes.string,
+  preFooterLinkText: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html new file mode 100644 index 0000000000..9e6f2b8dc6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Footer.stories.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for components/organisms/Footer.stories.js + + + + + + + + + +
+
+

All files / components/organisms Footer.stories.js

+
+ +
+ 85.71% + Statements + 6/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 5/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +171x +1x +  +1x +  +  +  +  +  +  +1x +1x +  +  +  +  + 
import React from "react";
+import { Footer } from "./Footer";
+ 
+export default {
+  title: "Components/Organisms/Footer",
+  component: Footer,
+};
+ 
+const Template = (args) => <Footer {...args} />;
+ 
+export const DefaultFooter = Template.bind({});
+DefaultFooter.args = {
+  id: "footer",
+  btnLink: "/",
+  target: "_blank",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.js.html new file mode 100644 index 0000000000..cdd551779e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.js.html @@ -0,0 +1,313 @@ + + + + + + Code coverage report for components/organisms/HelpIcon.js + + + + + + + + + +
+
+

All files / components/organisms HelpIcon.js

+
+ +
+ 80% + Statements + 8/10 +
+ + +
+ 20% + Branches + 1/5 +
+ + +
+ 33.33% + Functions + 1/3 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +778x +8x +8x +  +10x +9x +9x +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from "react";
+import { Modal } from "react-bootstrap";
+import { DSButton } from "../atoms/DSButton";
+ 
+export const HelpIcon = ({ title, body, lang }) => {
+  const [showModal, setShowModal] = useState(false);
+  const handleClose = () => setShowModal(false);
+  const handleShow = () => setShowModal(true);
+ 
+  return (
+    <>
+      <button
+        onClick={handleShow}
+        className="info"
+        aria-label={`Help button ${title}`}
+        aria-expanded={showModal}
+      >
+        <svg
+          width="26"
+          height="26"
+          viewBox="0 0 26 26"
+          fill="none"
+          xmlns="http://www.w3.org/2000/svg"
+          className="help-icon"
+        >
+          <path d="M26 13C26 20.1813 20.1792 26 13 26C5.8208 26 0 20.1813 0 13C0 5.8229 5.8208 0 13 0C20.1792 0 26 5.8229 26 13ZM13.3489 4.29839C10.4922 4.29839 8.67016 5.50178 7.23943 7.64054C7.05407 7.91763 7.11608 8.29133 7.38175 8.49277L9.20065 9.87193C9.47349 10.0788 9.86223 10.0296 10.0742 9.76069C11.0106 8.57298 11.6527 7.88424 13.078 7.88424C14.1489 7.88424 15.4735 8.57345 15.4735 9.61187C15.4735 10.3969 14.8254 10.8001 13.768 11.3929C12.5349 12.0841 10.9032 12.9445 10.9032 15.0968V15.3065C10.9032 15.6538 11.1849 15.9355 11.5323 15.9355H14.4677C14.8151 15.9355 15.0968 15.6538 15.0968 15.3065V15.2366C15.0968 13.7446 19.4573 13.6825 19.4573 9.64516C19.4573 6.60473 16.3035 4.29839 13.3489 4.29839ZM13 17.2984C11.6704 17.2984 10.5887 18.3801 10.5887 19.7097C10.5887 21.0392 11.6704 22.121 13 22.121C14.3296 22.121 15.4113 21.0392 15.4113 19.7097C15.4113 18.3801 14.3296 17.2984 13 17.2984Z" />
+        </svg>
+      </button>
+ 
+      {showModal && (
+        <div className="modal-bg">
+          <Modal
+            show={showModal}
+            onHide={handleClose}
+            className="modal __variable_a1e2e3 __variable_3e745e"
+            aria-label={title}
+          >
+            <Modal.Header className="modal-header">
+              <h2 className="modal-title">{title}</h2>
+              <button
+                onClick={handleClose}
+                className="modal-exit"
+                aria-label={lang === "en" ? "Close" : "Fermer"}
+              >
+                <svg
+                  width="17"
+                  height="17"
+                  viewBox="0 0 17 17"
+                  fill="none"
+                  xmlns="http://www.w3.org/2000/svg"
+                  className="exit-icon"
+                >
+                  <path d="M11.3775 8.25L16.0683 3.55922C16.6439 2.98359 16.6439 2.05031 16.0683 1.47422L15.0258 0.431719C14.4502 -0.143906 13.5169 -0.143906 12.9408 0.431719L8.25 5.1225L3.55922 0.431719C2.98359 -0.143906 2.05031 -0.143906 1.47422 0.431719L0.431719 1.47422C-0.143906 2.04984 -0.143906 2.98312 0.431719 3.55922L5.1225 8.25L0.431719 12.9408C-0.143906 13.5164 -0.143906 14.4497 0.431719 15.0258L1.47422 16.0683C2.04984 16.6439 2.98359 16.6439 3.55922 16.0683L8.25 11.3775L12.9408 16.0683C13.5164 16.6439 14.4502 16.6439 15.0258 16.0683L16.0683 15.0258C16.6439 14.4502 16.6439 13.5169 16.0683 12.9408L11.3775 8.25Z" />
+                </svg>
+              </button>
+            </Modal.Header>
+            <Modal.Body>
+              <p
+                className="modal-body"
+                dangerouslySetInnerHTML={{ __html: body }}
+              />
+            </Modal.Body>
+            <Modal.Footer>
+              <DSButton
+                onClick={handleClose}
+                styling="primary"
+                text={lang === "en" ? "Close" : "Fermer"}
+                className="modal-close"
+              />
+            </Modal.Footer>
+          </Modal>
+        </div>
+      )}
+    </>
+  );
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.stories.js.html new file mode 100644 index 0000000000..5e4536ccdd --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/HelpIcon.stories.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for components/organisms/HelpIcon.stories.js + + + + + + + + + +
+
+

All files / components/organisms HelpIcon.stories.js

+
+ +
+ 76.92% + Statements + 10/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 9/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +321x +1x +  +1x +  +  +  +  +  +  +1x +1x +1x +  +1x +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  + 
import * as React from "react";
+import { HelpIcon } from "./HelpIcon";
+ 
+export default {
+  title: "Components/Organisms/HelpIcon",
+  component: HelpIcon,
+};
+ 
+const Template = (args) => <HelpIcon {...args} />;
+ 
+export const Default = Template.bind({});
+export const SampleEN = Template.bind({});
+export const SampleFR = Template.bind({});
+ 
+Default.args = {
+  lang: "en",
+  title: "Descriptive title / Term requiring explanation",
+  body: "Description",
+};
+ 
+SampleEN.args = {
+  lang: "en",
+  title: "Separated",
+  body: "You are separated when you start living separate and apart from your spouse or common law partner because of a breakdown in the relationship for a period of at least 90 days.<br><br>Refer to marital status for more information",
+};
+ 
+SampleFR.args = {
+  lang: "fr",
+  title: "Séparé",
+  body: "Vous êtes considéré séparé lorsque vous vivez séparément de votre époux ou conjoint en raison de la rupture de votre union pour une période de 90 jours ou plus.<br><br>Voir état civil pour plus d’information",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.js.html new file mode 100644 index 0000000000..3ef395cf0f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.js.html @@ -0,0 +1,805 @@ + + + + + + Code coverage report for components/organisms/Layout.js + + + + + + + + + +
+
+

All files / components/organisms Layout.js

+
+ +
+ 100% + Statements + 16/16 +
+ + +
+ 65% + Branches + 13/20 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 15/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +2418x +8x +8x +8x +8x +8x +8x +8x +8x +8x +  +  +  +  +15x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +12x +12x +12x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { Banner } from "../atoms/Banner";
+import { PhaseBanner } from "./PhaseBanner";
+import Link from "next/link";
+import { useTranslation } from "next-i18next";
+import { DateModified } from "../atoms/DateModified";
+import { Breadcrumb } from "../atoms/Breadcrumb";
+import { Footer } from "../organisms/Footer";
+import Feedback from "./Feedback";
+import { TopNavBar } from "../molecules/TopNavBar";
+ 
+/**
+ * Component which defines the layout of the page for all screen sizes
+ */
+export const Layout = ({
+  bannerText,
+  bannerTitle,
+  children,
+  locale,
+  langUrl,
+  breadcrumbItems,
+  feedbackActive,
+  showDisclaimer,
+  projectName,
+  path,
+  excludeFooterFeedback,
+  preFooterTitle,
+  preFooterLink,
+  preFooterLinkText,
+  dateModifiedOverride,
+}) => {
+  const { t } = useTranslation("common");
+  const language = locale === "en" ? "fr" : "en";
+  path =
+    typeof window !== "undefined" && window.location.origin
+      ? window.location.href
+      : "";
+ 
+  return (
+    <div className="overflow-x-hidden">
+      <a
+        id="skipToMainContent"
+        className="bg-white text-custom-blue-dark text-lg underline py-1 px-2 focus:outline-dark-goldenrod hover:bg-gray-dark skip-main"
+        href="#pageMainTitle"
+        data-cy-button={"skip-Content"}
+        draggable="false"
+        aria-label={t("skipToMainContentBtn")}
+      >
+        {t("skipToMainContentBtn")}
+      </a>
+ 
+      <header>
+        <h2 className="sr-only">{t("globalHeader")}</h2>
+        <h3 className="sr-only">{t("testSiteNotice")}</h3>
+        {showDisclaimer ? (
+          <PhaseBanner
+            phase={t("phaseBannerTag")}
+            feedbackActive={feedbackActive}
+            text={t("phaseBannerText")}
+            projectName={projectName}
+            path={path}
+          />
+        ) : (
+          ""
+        )}
+        <div className="layout-container lg:max-w-full pt-4 pb-3 !mx-0 !px-5 flex-col flex lg:flex lg:flex-row justify-between bg-custom-gray-lightest">
+          <div
+            className="flex flex-row justify-between"
+            role="navigation"
+            aria-labelledby="officialSiteNav"
+          >
+            <h3 className="sr-only" id="officialSiteNav">
+              {t("officialSiteNavigation")}
+            </h3>
+            <a href="https://www.canada.ca">
+              <img
+                src={language === "en" ? "/sig-blk-fr.svg" : "/sig-blk-en.svg"}
+                alt={t("symbol")}
+                width="375"
+                height="35"
+                className="max-w-[280px]"
+              />
+            </a>
+            <h3 className="sr-only">{t("languageSelection")}</h3>
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink1"
+              className="block lg:hidden ml-6 -mt-1 sm:ml-16 underline underline-offset-[6px] font-body text-canada-footer-font lg:text-sm text-lg hover:text-canada-footer-hover-font-blue"
+            >
+              {language === "en" ? "EN" : "FR"}
+            </Link>
+          </div>
+          <div className="flex flex-col justify-center">
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink3"
+              className="flex lg:block hidden underline underline-offset-[5px] font-body text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+              data-cy="toggle-language-link"
+              lang={language}
+            >
+              {language === "en" ? "English" : "Français"}
+            </Link>
+          </div>
+        </div>
+        <div className="border-b-[3px] border-multi-blue-blue35" />
+        <TopNavBar
+          homeLink={t("topNavBar.homeLink")}
+          homeLinkLabel={t("topNavBar.homeLinkLabel")}
+          updatesLink={t("topNavBar.updatesLink")}
+          updatesLinkLabel={t("topNavBar.updatesLinkLabel")}
+          projectsLink={t("topNavBar.projectsLink")}
+          projectsLinkLabel={t("topNavBar.projectsLinkLabel")}
+          navAriaLabel={t("topNavBar.ariaLabel")}
+          buttonAriaLabel={t("topNavBar.buttonAriaLabel")}
+        />
+        <div className="layout-container mt-4">
+          <Breadcrumb items={breadcrumbItems} />
+        </div>
+      </header>
+ 
+      <main>
+        {bannerText && bannerTitle ? (
+          <Banner siteTitle={bannerTitle} headline={bannerText} />
+        ) : null}
+        {children}
+        <div className="mt-12">
+          <h2 className="sr-only">{t("siteFooter")}</h2>
+          {!excludeFooterFeedback ? (
+            <div className="layout-container mt-5">
+              <Feedback />
+            </div>
+          ) : (
+            ""
+          )}
+          <div className="layout-container mb-2">
+            <DateModified date={dateModifiedOverride} />
+          </div>
+        </div>
+      </main>
+ 
+      <Footer
+        id="footer"
+        lang={locale}
+        btnLink={"#"}
+        preFooterTitle={preFooterTitle}
+        preFooterLink={preFooterLink}
+        preFooterLinkText={preFooterLinkText}
+      />
+    </div>
+  );
+};
+ 
+Layout.propTypes = {
+  /**
+   * text for the banner
+   */
+  bannerText: PropTypes.string,
+ 
+  /**
+   * title of the banner
+   */
+  bannerTitle: PropTypes.string,
+ 
+  /**
+   * child elements that will constitute the page
+   */
+  children: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.element,
+    PropTypes.arrayOf(PropTypes.element),
+  ]),
+ 
+  /**
+   * currently active locale
+   */
+  locale: PropTypes.string,
+ 
+  /**
+   * URL to use for navigation when changing locales
+   */
+  langUrl: PropTypes.string,
+ 
+  /**
+   * Array of Items for the breadcrumb
+   */
+  breadcrumbItems: PropTypes.arrayOf(
+    PropTypes.shape({
+      /**
+       * Text for the breadcrumb
+       */
+      text: PropTypes.string,
+ 
+      /**
+       * Link for the breadcrumb
+       */
+      link: PropTypes.string,
+    })
+  ),
+ 
+  /**
+   * For activating feedback on active projects pages
+   */
+  feedbackActive: PropTypes.bool,
+  /**
+   * Boolean that determines whether the disclaimer at the top of the screen is shown or not
+   */
+  showDisclaimer: PropTypes.bool,
+  /**
+   * Project/page name that feedback is coming from
+   */
+  projectName: PropTypes.string,
+  /**
+   * Path that the feedback is coming from
+   */
+  path: PropTypes.string,
+  /**
+   * Boolean that determines whether the footer feedback is shown or not
+   */
+  excludeFooterFeedback: PropTypes.bool,
+  /**
+   * Title for the pre-footer
+   */
+  preFooterTitle: PropTypes.string,
+  /**
+   * URL for the pre-footer link
+   */
+  preFooterLink: PropTypes.string,
+  /**
+   * Text for the pre-footer link
+   */
+  preFooterLinkText: PropTypes.string,
+  /**
+   * Manual override for date modified component
+   */
+  dateModifiedOverride: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html new file mode 100644 index 0000000000..910fd11098 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/Layout.stories.js.html @@ -0,0 +1,205 @@ + + + + + + Code coverage report for components/organisms/Layout.stories.js + + + + + + + + + +
+
+

All files / components/organisms Layout.stories.js

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 8/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +411x +1x +  +1x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +6x +4x +  +1x +  +  +  +  +1x +  +  +  +  +  + 
import React from "react";
+import { Layout } from "./Layout";
+ 
+export default {
+  title: "Components/Organisms/Layout",
+  component: Layout,
+};
+ 
+const sampleText = () => {
+  return (
+    <div className="layout-container">
+      <p data-testid="child-element">
+        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+        veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+        commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
+        velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
+        occaecat cupidatat non proident, sunt in culpa qui officia deserunt
+        mollit anim id est laborum.
+      </p>
+    </div>
+  );
+};
+ 
+const Template = (args) => <Layout {...args}>{sampleText()}</Layout>;
+ 
+export const NoBanner = Template.bind({});
+export const WithBanner = Template.bind({});
+ 
+NoBanner.args = {
+  langUrl: "someUrl",
+  locale: "someLocale",
+};
+ 
+WithBanner.args = {
+  bannerTitle: "Banner Title",
+  bannerText: "Banner Text",
+  langUrl: "someUrl",
+  locale: "someLocale",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html new file mode 100644 index 0000000000..b3af92ef05 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.js.html @@ -0,0 +1,490 @@ + + + + + + Code coverage report for components/organisms/PhaseBanner.js + + + + + + + + + +
+
+

All files / components/organisms PhaseBanner.js

+
+ +
+ 88.88% + Statements + 16/18 +
+ + +
+ 87.5% + Branches + 7/8 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 93.75% + Lines + 15/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +1369x +9x +9x +  +9x +9x +  +  +  +  +  +9x +  +  +  +  +  +  +  +3x +3x +3x +  +3x +1x +  +  +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x + 
import React from "react";
+import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { useState, useRef } from "react";
+import { FeedbackWidget } from "../molecules/FeedbackWidget";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * Displays the PhaseBanner on the page
+ */
+ 
+export const PhaseBanner = ({
+  phase,
+  text,
+  feedbackActive,
+  projectName,
+  path,
+  toggleForm,
+}) => {
+  const [showFeedback, setShowFeedback] = useState(false);
+  const { t } = useTranslation("common");
+  const toggle = useRef("Collapsed");
+ 
+  toggleForm = async (e) => {
+    Iif (showFeedback) {
+      toggle.current = "Collapsed";
+    } else {
+      toggle.current = "Expanded";
+    }
+ 
+    setShowFeedback(!showFeedback);
+  };
+ 
+  return (
+    <>
+      <div className="bg-multi-blue-blue70d">
+        <div className="block lg:flex py-4 layout-container">
+          <div
+            className={`flex justify-between lg:block lg:w-max ${
+              feedbackActive ? "mt-2" : ""
+            }`}
+          >
+            <span
+              className="font-body text-s text-white border-2 block w-max px-4 py-1 my-auto leading-6 items-center"
+              role="alert"
+            >
+              {phase}
+            </span>
+            {feedbackActive ? (
+              <ActionButton
+                id="back-projects"
+                dataCy="back-projects"
+                dataTestId="back-projects"
+                custom="font-body w-max text-xs underline text-white block outline-none focus:outline-white-solid h-full flex items-center -mt-2 py-2"
+                text={t("backProjects")}
+                href={t("breadCrumbsHref2")}
+              />
+            ) : (
+              ""
+            )}
+          </div>
+          <div>
+            <p className="mt-2 lg:mt-0 h-full font-body text-xs lg:text-sm text-white lg:ml-4 my-auto flex items-center">
+              {text}
+            </p>
+          </div>
+        </div>
+        {feedbackActive ? (
+          <div className="py-4 outline-none bg-custom-blue-blue font-body text-xs lg:text-sm text-white flex items-center lg:my-0">
+            <div className="flex layout-container">
+              <span
+                className="invisible hidden md:block font-body text-xs text-white border block w-max px-4 py-1 my-auto leading-6 items-center"
+                role="alert"
+              >
+                {phase}
+              </span>
+              <div className="lg:ml-6 xl:ml-12 xxl:ml-14 my-auto">
+                <button
+                  id="feedbackButton"
+                  onClick={toggleForm}
+                  className="flex focus:outline-white-solid items-center lg:ml-4 my-auto"
+                  data-testid="feedbackButton"
+                >
+                  <strong className="underline">
+                    {t("giveFeedback")}
+                    <span className="sr-only">{toggle.current}</span>
+                  </strong>
+                  <img
+                    className="px-2 flex items-center"
+                    src="/feedback-icon-white.svg"
+                    alt=""
+                  />
+                </button>
+              </div>
+            </div>
+          </div>
+        ) : (
+          ""
+        )}
+      </div>
+ 
+      <FeedbackWidget
+        showFeedback={showFeedback}
+        toggleForm={toggleForm}
+        projectName={projectName}
+        path={path}
+      />
+    </>
+  );
+};
+ 
+PhaseBanner.propTypes = {
+  /**
+   * Phase stage in the PhaseBanner
+   */
+  phase: PropTypes.string.isRequired,
+  /**
+   * Phasebanner text
+   */
+  text: PropTypes.string.isRequired,
+  /**
+   * This is for showing the feedback component
+   */
+  feedbackActive: PropTypes.bool,
+  /**
+   * Project/page name that feedback is coming from
+   */
+  projectName: PropTypes.string,
+  /**
+   * Path that the feedback is coming from
+   */
+  path: PropTypes.string,
+};
+ 
+export default PhaseBanner;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html new file mode 100644 index 0000000000..6d371e2a83 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for components/organisms/PhaseBanner.stories.js + + + + + + + + + +
+
+

All files / components/organisms PhaseBanner.stories.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +241x +1x +  +1x +  +  +  +  +  +  +2x +2x +  +1x +  +  +  +  +1x +  +  +  +  + 
import React from "react";
+import PhaseBanner from "./PhaseBanner";
+ 
+export default {
+  title: "Components/Atoms/PhaseBanner",
+  component: PhaseBanner,
+};
+ 
+const Template = (args) => <PhaseBanner {...args} />;
+ 
+export const Primary = Template.bind({});
+export const WithFeedback = Template.bind({});
+ 
+Primary.args = {
+  phase: "PhaseBanner Phase",
+  text: "PhaseBanner Text",
+};
+ 
+WithFeedback.args = {
+  phase: "PhaseBanner Phase",
+  text: "PhaseBanner Text",
+  feedbackActive: true,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html new file mode 100644 index 0000000000..9c8bcd2635 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.js.html @@ -0,0 +1,1219 @@ + + + + + + Code coverage report for components/organisms/ReportAProblem.js + + + + + + + + + +
+
+

All files / components/organisms ReportAProblem.js

+
+ +
+ 94.87% + Statements + 37/39 +
+ + +
+ 90% + Branches + 9/10 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 94.73% + Lines + 36/38 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +3791x +1x +1x +1x +1x +1x +1x +1x +1x +  +  +  +  +7x +9x +8x +  +8x +  +8x +  +3x +  +  +3x +3x +24x +21x +1x +  +  +  +  +  +3x +  +3x +  +  +3x +5x +5x +  +  +  +3x +3x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +21x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +3x +1x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Link from "next/link";
+import { useState } from "react";
+import { useTranslation } from "next-i18next";
+import { OptionalTextField } from "../molecules/OptionalTextField";
+import { Details } from "../molecules/Details";
+import { ActionButton } from "../atoms/ActionButton";
+import { stripFeedback } from "../../lib/utils/stripFeedback";
+import { ErrorLabel } from "../atoms/ErrorLabel";
+ 
+/**
+ * Report a problem button to report technical issues on the page.
+ */
+export function ReportAProblem(props) {
+  const [submitted, setSubmitted] = useState(false);
+  const { t, i18n } = useTranslation();
+ 
+  const [submittedOnce, setSubmittedOnce] = useState(false);
+ 
+  let onSubmitHandler = (e) => {
+    //Checking if at least one checkbox is selected
+    let checkBoxSelected = false;
+ 
+    //Check the checkboxes
+    let inputElements = document.getElementsByTagName("input");
+    for (let index = 0; index < inputElements.length; index++) {
+      if (inputElements[index].type == "checkbox") {
+        if (inputElements[index].checked) {
+          checkBoxSelected = true;
+        }
+      }
+    }
+ 
+    // prevent default behaviour of form
+    e.preventDefault();
+    // create FormData object from form
+    const formData = new FormData(e.target);
+ 
+    // Iterate through key/value pairs and strip personal identifier information from each value
+    for (var pair of formData.entries()) {
+      let cleanedFeedback = stripFeedback(pair[1]);
+      formData.set(pair[0], cleanedFeedback);
+    }
+    // create URLSearchParams object from FormData object
+    // this will be used to create url encoded string of names and values of the form fields
+    const urlEncoded = new URLSearchParams(formData);
+    let urlString = urlEncoded.toString();
+    //Replace the values with yes for GCNotify
+    let values;
+ 
+    Iif (formData.get("language").toString().localeCompare("fr") == 0) {
+      values = [
+        "Informations+incorrectes",
+        "Informations+impr%C3%A9cises",
+        "Vous+n%E2%80%99avez+pas+trouv%C3%A9+ce+que+vous+cherchiez",
+        "La+page+ne+fonctionne+pas+avec+vos+technologies+d%E2%80%99adaptation",
+        "Vous+%C3%AAtes+inquiet+pour+votre+vie+priv%C3%A9e",
+        "Vous+ne+savez+pas+o%C3%B9+trouver+de+l%E2%80%99aide",
+        "Autres",
+      ];
+    } else {
+      values = [
+        "Incorrect+Information",
+        "Unclear+Information",
+        "You+didn%E2%80%99t+find+what+you+were+looking+for",
+        "Page+does+not+work+with+your+adaptive+technologies",
+        "You%E2%80%99re+worried+about+your+privacy",
+        "You+don%E2%80%99t+know+where+else+to+go+for+help",
+        "Other",
+      ];
+    }
+ 
+    for (const value of values) {
+      urlString = urlString.replace(value, "yes");
+    }
+ 
+    // call report a problem API route
+    fetch("/api/report-a-problem", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
+      },
+      body: urlString,
+    }).catch((e) => {
+      // handle error if fetch fails
+      // fetch only fails if there is no internet connection not for the actual
+      // request so there is nothing really to do here other than to log it
+      console.log(e);
+    });
+ 
+    if (checkBoxSelected) {
+      setSubmitted(true);
+    }
+    //Make sure the form was submitted at least once
+    setSubmittedOnce(true);
+  };
+ 
+  return (
+    <Details
+      label={t("footerReportProblemButtonString", { lng: props.language })}
+      dataCy="report-a-problem-details"
+      dataTestId="report-a-problem-details"
+    >
+      <div role="status">
+        {submitted ? (
+          <>
+            <h2 className="text-h3 font-display mb-4 font-bold">
+              <b>
+                {t("reportAProblemThankYouForYourHelp", {
+                  lng: props.language,
+                })}
+              </b>
+            </h2>
+            <p className="text-sm font-body">
+              {t("reportAProblemYouWillNotBeContacted", {
+                lng: props.language,
+              })}
+            </p>
+          </>
+        ) : (
+          ""
+        )}
+      </div>
+      {submitted ? (
+        ""
+      ) : (
+        <>
+          <h2 className="text-base font-body mt-0">
+            {t("reportAProblemTitle", { lng: props.language })}
+          </h2>
+          <ul className="list-outside list-disc px-6 py-2">
+            <li className="text-xs sm:text-sm font-body mb-4 leading-tight sm:leading-6">
+              <b>{t("reportAProblemNoReply", { lng: props.language })}</b>
+            </li>
+            <li className="text-xs sm:text-sm font-body my-4 leading-tight sm:leading-6">
+              <b>
+                {t("reportAProblemFeedbackConfidential", {
+                  lng: props.language,
+                })}
+              </b>{" "}
+              <Link
+                href="/signup/privacy"
+                className="underline text-xs sm:text-sm font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+              >
+                {t("reportAProblemPrivacyStatement", { lng: props.language })}
+              </Link>
+            </li>
+          </ul>
+          <form
+            data-gc-analytics-formname="ESDC|EDSC:ServiceCanadaLabsReport-Problem"
+            data-gc-analytics-collect='[{"value":"input,select","emptyField":"N/A"}]'
+            className="w-full"
+            action="#"
+            onSubmit={onSubmitHandler}
+          >
+            <input
+              type="hidden"
+              id="language"
+              name="language"
+              value={i18n.language}
+            />
+            <fieldset>
+              <legend className="text-base sm:text-p font-body font-normal mb-6">
+                <b className="text-error-border-red mr-2" aria-hidden="true">
+                  *
+                </b>
+                {t("reportAProblemCheckAllThatApply", { lng: props.language })}
+              </legend>
+              <OptionalTextField
+                controlId="incorrectInformationCheckBox"
+                textFieldId="incorrectInformationTextField"
+                controlName="incorrect_information"
+                textFieldName="incorrect_information_details"
+                controlLabel={t("reportAProblemIncorrectInformation", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="incorrectInformation-checkbox"
+                textFieldDataTestId="incorrectInformation-text"
+                controlDataCy="incorrectInformation-checkbox"
+                textFieldDataCy="incorrectInformation-text"
+                describedby="incorrectInformation"
+                OptionalTextField
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemIncorrectInformation", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="unclearInformationCheckBox"
+                textFieldId="unclearInformationTextField"
+                controlName="unclear_information"
+                textFieldName="unclear_information_details"
+                controlLabel={t("reportAProblemUnclearInformation", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="unclearInformation-checkbox"
+                textFieldDataTestId="unclearInformation-text"
+                controlDataCy="unclearInformation-checkbox"
+                textFieldDataCy="unclearInformation-text"
+                describedby="unclearInformation"
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemUnclearInformation", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="infoNotFoundCheckBox"
+                textFieldId="infoNotFoundTextField"
+                controlName="info_not_found"
+                textFieldName="info_not_found_details"
+                controlLabel={t("reportAProblemDidNotFindWhatYoureLookingFor", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="infoNotFound-checkbox"
+                textFieldDataTestId="infoNotFound-text"
+                controlDataCy="infoNotFound-checkbox"
+                textFieldDataCy="infoNotFound-text"
+                describedby="infoNotFound"
+                checkBoxStyle="lg:mb-8 mb-4 inline-block"
+                controlValue={t("reportAProblemDidNotFindWhatYoureLookingFor", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="adaptiveTechnologyCheckBox"
+                textFieldId="adaptiveTechnologyTextField"
+                controlName="adaptive_technology"
+                textFieldName="adaptive_technology_details"
+                controlLabel={t(
+                  "reportAProblemPageDoesNotWorkWithAdaptiveTechnology",
+                  { lng: props.language }
+                )}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="adaptiveTechnology-checkbox"
+                textFieldDataTestId="adaptiveTechnology-text"
+                controlDataCy="adaptiveTechnology-checkbox"
+                textFieldDataCy="adaptiveTechnology-text"
+                describedby="adaptiveTechnology"
+                checkBoxStyle="mb-8 inline-block"
+                controlValue={t(
+                  "reportAProblemPageDoesNotWorkWithAdaptiveTechnology",
+                  { lng: props.language }
+                )}
+              />
+              <OptionalTextField
+                controlId="privacyIssuesCheckBox"
+                textFieldId="privacyIssuesTextField"
+                controlName="privacy_issues"
+                textFieldName="privacy_issues_details"
+                controlLabel={t("reportAProblemYoureWorriedAboutYourPrivacy", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="privacyIssues-checkbox"
+                textFieldDataTestId="privacyIssues-text"
+                controlDataCy="privacyIssues-checkbox"
+                textFieldDataCy="privacyIssues-text"
+                describedby="privacyIssues"
+                checkBoxStyle="mb-4 inline-block"
+                controlValue={t("reportAProblemYoureWorriedAboutYourPrivacy", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="noWhereElseToGoCheckBox"
+                textFieldId="noWhereElseToGoTextField"
+                controlName="no_where_else_to_go"
+                textFieldName="no_where_else_to_go_details"
+                controlLabel={t("reportAProblemNoWhereElseToGo", {
+                  lng: props.language,
+                })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="noWhereElseToGo-checkbox"
+                textFieldDataTestId="noWhereElseToGo-text"
+                controlDataCy="noWhereElseToGo-checkbox"
+                textFieldDataCy="noWhereElseToGo-text"
+                describedby="noWhereElseToGo"
+                checkBoxStyle="lg:mb-8 mb-4 inline-block"
+                controlValue={t("reportAProblemNoWhereElseToGo", {
+                  lng: props.language,
+                })}
+              />
+              <OptionalTextField
+                controlId="otherCheckBox"
+                textFieldId="otherTextField"
+                controlName="other"
+                textFieldName="other_details"
+                controlLabel={t("reportAProblemOther", { lng: props.language })}
+                textFieldLabel={t("reportAProblemProvideMoreDetails", {
+                  lng: props.language,
+                })}
+                uncontrolled={true}
+                multiText={true}
+                textLabelBold={true}
+                wrap="hard"
+                maxLength={750}
+                controlDataTestId="other-checkbox"
+                textFieldDataTestId="other-text"
+                controlDataCy="other-checkbox"
+                textFieldDataCy="other-text"
+                describedby="other"
+                checkBoxStyle="mb-4"
+                controlValue={t("reportAProblemOther", { lng: props.language })}
+              />
+              {submittedOnce ? (
+                <ErrorLabel
+                  message={t("reportAProblemError", { lng: props.language })}
+                />
+              ) : undefined}
+            </fieldset>
+            <ActionButton
+              id="submit"
+              className="rounded block mt-4"
+              type="submit"
+              dataCy="report-a-problem-submit"
+              dataTestId="report-a-problem-submit"
+              analyticsTracking
+            >
+              {t("reportAProblemSubmit", { lng: props.language })}
+            </ActionButton>
+          </form>
+        </>
+      )}
+    </Details>
+  );
+}
+ 
+ReportAProblem.propTypes = {
+  /**
+   * Translation language
+   */
+  language: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html new file mode 100644 index 0000000000..89d26d32eb --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for components/organisms/ReportAProblem.stories.js + + + + + + + + + +
+
+

All files / components/organisms ReportAProblem.stories.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +121x +1x +  +1x +  +  +  +  +  +  +10x + 
import React from "react";
+import { ReportAProblem } from "./ReportAProblem";
+ 
+export default {
+  title: "Components/Organisms/ReportAProblem",
+  component: ReportAProblem,
+};
+ 
+const Template = (args) => <ReportAProblem {...args} />;
+ 
+export const Primary = Template.bind({});
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/organisms/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/index.html new file mode 100644 index 0000000000..aa205875db --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/organisms/index.html @@ -0,0 +1,326 @@ + + + + + + Code coverage report for components/organisms + + + + + + + + + +
+
+

All files components/organisms

+
+ +
+ 85.78% + Statements + 163/190 +
+ + +
+ 76.71% + Branches + 56/73 +
+ + +
+ 60.86% + Functions + 14/23 +
+ + +
+ 90.79% + Lines + 148/163 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ExploreProjects.js +
+
100%8/8100%10/10100%3/3100%8/8
ExploreProjects.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
ExploreUpdates.js +
+
100%7/7100%8/8100%2/2100%7/7
ExploreUpdates.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
Feedback.js +
+
47.82%11/2366.66%4/614.28%1/745.45%10/22
Footer.js +
+
100%8/866.66%4/6100%1/1100%7/7
Footer.stories.js +
+
85.71%6/7100%0/0100%0/0100%5/5
HelpIcon.js +
+
80%8/1020%1/533.33%1/3100%7/7
HelpIcon.stories.js +
+
76.92%10/13100%0/0100%0/0100%9/9
Layout.js +
+
100%16/1665%13/20100%1/1100%15/15
Layout.stories.js +
+
90.9%10/11100%0/0100%1/1100%8/8
PhaseBanner.js +
+
88.88%16/1887.5%7/8100%2/293.75%15/16
PhaseBanner.stories.js +
+
90%9/10100%0/0100%0/0100%7/7
ReportAProblem.js +
+
94.87%37/3990%9/1066.66%2/394.73%36/38
ReportAProblem.stories.js +
+
83.33%5/6100%0/0100%0/0100%4/4
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRecur.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRecur.jsx.html new file mode 100644 index 0000000000..849ab66d9e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRecur.jsx.html @@ -0,0 +1,241 @@ + + + + + + Code coverage report for components/text_node_renderer/TextRecur.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer TextRecur.jsx

+
+ +
+ 94.11% + Statements + 16/17 +
+ + +
+ 88.88% + Branches + 8/9 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 94.11% + Lines + 16/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +5312x +  +12x +12x +12x +12x +12x +12x +12x +12x +12x +  +  +12x +  +  +  +  +  +  +  +  +  +  +  +106x +516x +515x +  +515x +  +  +  +  +  +  +  +  +  +  +  +  +  +411x +  +  +  +  +  +  +  +  + 
import { v4 as uuid } from "uuid";
+ 
+import HeaderText from "./nodes/HeaderText";
+import LineBreak from "./nodes/LineBreak";
+import ListItem from "./nodes/ListItem";
+import OrderedList from "./nodes/OrderedList";
+import Paragraph from "./nodes/Paragraph";
+import Text from "./nodes/Text";
+import Span from "./nodes/Span";
+import UnorderedList from "./nodes/UnorderedList";
+import Link from "./nodes/Link";
+ 
+// todo: more components will like need to be added, but for now, these are the only ones returned in the aem json response
+const NODES = {
+  header: HeaderText,
+  paragraph: Paragraph,
+  link: Link,
+  text: Text,
+  span: Span,
+  "unordered-list": UnorderedList,
+  "ordered-list": OrderedList,
+  "list-item": ListItem,
+  "line-break": LineBreak,
+};
+ 
+export default function TextRecur(props) {
+  const Node = NODES[props.node?.nodeType];
+  let content = props.node?.content;
+ 
+  Iif (
+    !Node ||
+    (props.excludeH1 &&
+      props.node?.nodeType === "header" &&
+      props.node?.style === "h1")
+  ) {
+    return;
+  }
+ 
+  return (
+    <>
+      {content && content.length ? (
+        <Node key={uuid()} node={props.node} index={props.index}>
+          {content.map((node) => (
+            <TextRecur key={uuid()} node={node} />
+          ))}
+        </Node>
+      ) : (
+        <Node key={uuid()} node={props.node}></Node>
+      )}
+    </>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRender.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRender.jsx.html new file mode 100644 index 0000000000..260fc0f6c8 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/TextRender.jsx.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for components/text_node_renderer/TextRender.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer TextRender.jsx

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +2012x +12x +  +35x +  +  +  +106x +  +  +  +  +  +  +  +  +  +  +  + 
import TextRecur from "./TextRecur";
+import { v4 as uuid } from "uuid";
+ 
+export default function TextRender(props) {
+  return (
+    <>
+      {props.data.map((node, index) => {
+        return (
+          <TextRecur
+            key={uuid()}
+            node={node}
+            index={index}
+            excludeH1={props.excludeH1}
+          />
+        );
+      })}
+    </>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/index.html new file mode 100644 index 0000000000..8856b96855 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for components/text_node_renderer + + + + + + + + + +
+
+

All files components/text_node_renderer

+
+ +
+ 95.23% + Statements + 20/21 +
+ + +
+ 88.88% + Branches + 8/9 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 95.23% + Lines + 20/21 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
TextRecur.jsx +
+
94.11%16/1788.88%8/9100%2/294.11%16/17
TextRender.jsx +
+
100%4/4100%0/0100%2/2100%4/4
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/HeaderText.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/HeaderText.jsx.html new file mode 100644 index 0000000000..8a4e08450f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/HeaderText.jsx.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/HeaderText.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes HeaderText.jsx

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 83.33% + Branches + 5/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +3312x +  +12x +21x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Heading } from "../../molecules/Heading";
+ 
+export default function HeaderText(props) {
+  switch (props.node.style) {
+    case "h1":
+      return (
+        <Heading
+          id={"mainHeading"}
+          className={props.index === 0 ? "mt-0" : ""}
+          title={props.children[0].props.node.value}
+        />
+      );
+    case "h2":
+      return (
+        <h2 id={props.index} className={props.index === 0 ? "mt-0" : ""}>
+          {props.children}
+        </h2>
+      );
+    case "h3":
+      return (
+        <h3 id={props.index} className={props.index === 0 ? "mt-0" : ""}>
+          {props.children}
+        </h3>
+      );
+    case "h4":
+      return <h4>{props.children}</h4>;
+    case "h5":
+      return <h5>{props.children}</h5>;
+    default:
+      return <h6>{props.children}</h6>;
+  }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/LineBreak.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/LineBreak.jsx.html new file mode 100644 index 0000000000..78c0f6295e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/LineBreak.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/LineBreak.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes LineBreak.jsx

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +22x +  + 
export default function LineBreak() {
+  return <br />;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Link.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Link.jsx.html new file mode 100644 index 0000000000..e8b64a2fbe --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Link.jsx.html @@ -0,0 +1,115 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/Link.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes Link.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +1112x +  +  +  +  +  +  +  +  +  + 
export default function Link(props) {
+  return (
+    <a
+      href={props.node.data.href}
+      className="underline underline-offset-[6px] text-custom-blue-projects-link hover:text-custom-blue-projects-link-hover"
+    >
+      {props.node.value}
+    </a>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/ListItem.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/ListItem.jsx.html new file mode 100644 index 0000000000..74b2136ad2 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/ListItem.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/ListItem.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes ListItem.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +  +  + 
export default function ListItem(props) {
+  return <li className="ml-10 text-mobilebody lg:text-p">{props.children}</li>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/OrderedList.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/OrderedList.jsx.html new file mode 100644 index 0000000000..1cb5c07a2c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/OrderedList.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/OrderedList.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes OrderedList.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +  +  + 
export default function UnorderedList(props) {
+  return <ol className="list-decimal">{props.children}</ol>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Paragraph.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Paragraph.jsx.html new file mode 100644 index 0000000000..93a68d4662 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Paragraph.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/Paragraph.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes Paragraph.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +  +  + 
export default function Paragraph(props) {
+  return <p>{props.children}</p>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Span.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Span.jsx.html new file mode 100644 index 0000000000..c35f426691 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Span.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/Span.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes Span.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +  +  + 
export default function Span(props) {
+  return <span>{props.children}</span>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Text.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Text.jsx.html new file mode 100644 index 0000000000..62d7b144b1 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/Text.jsx.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/Text.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes Text.jsx

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +1212x +  +223x +  +  +  +  +  +  +  +  + 
export default function Text(props) {
+  // todo: guessing on italic since I didn't see it, but I'm assuming it exists and will need to be updated
+  switch (props.node?.format?.variants?.[0]) {
+    case "strong":
+      return <strong>{props.node.value}</strong>;
+    case "emphasis":
+      return <em>{props.node.value}</em>;
+    default:
+      return <>{props.node.value}</>;
+  }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/UnorderedList.jsx.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/UnorderedList.jsx.html new file mode 100644 index 0000000000..6b5fedcce6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/UnorderedList.jsx.html @@ -0,0 +1,94 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes/UnorderedList.jsx + + + + + + + + + +
+
+

All files / components/text_node_renderer/nodes UnorderedList.jsx

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +412x +  +  + 
export default function UnorderedList(props) {
+  return <ul className="list-disc">{props.children}</ul>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/index.html b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/index.html new file mode 100644 index 0000000000..7463c016e4 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/components/text_node_renderer/nodes/index.html @@ -0,0 +1,236 @@ + + + + + + Code coverage report for components/text_node_renderer/nodes + + + + + + + + + +
+
+

All files components/text_node_renderer/nodes

+
+ +
+ 100% + Statements + 13/13 +
+ + +
+ 83.33% + Branches + 5/6 +
+ + +
+ 88.88% + Functions + 8/9 +
+ + +
+ 100% + Lines + 13/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
HeaderText.jsx +
+
100%3/383.33%5/6100%1/1100%3/3
LineBreak.jsx +
+
100%2/2100%0/0100%1/1100%2/2
Link.jsx +
+
100%1/1100%0/0100%1/1100%1/1
ListItem.jsx +
+
100%1/1100%0/0100%1/1100%1/1
OrderedList.jsx +
+
100%1/1100%0/0100%1/1100%1/1
Paragraph.jsx +
+
100%1/1100%0/0100%1/1100%1/1
Span.jsx +
+
100%1/1100%0/00%0/1100%1/1
Text.jsx +
+
100%2/2100%0/0100%1/1100%2/2
UnorderedList.jsx +
+
100%1/1100%0/0100%1/1100%1/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/favicon.png b/refs/pull/1117/merge/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000..c1525b811a Binary files /dev/null and b/refs/pull/1117/merge/coverage/lcov-report/favicon.png differ diff --git a/refs/pull/1117/merge/coverage/lcov-report/index.html b/refs/pull/1117/merge/coverage/lcov-report/index.html new file mode 100644 index 0000000000..ddfc7a881e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/index.html @@ -0,0 +1,401 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 64.74% + Statements + 1383/2136 +
+ + +
+ 43.12% + Branches + 737/1709 +
+ + +
+ 50.8% + Functions + 158/311 +
+ + +
+ 66.15% + Lines + 1253/1894 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
components +
+
0%0/1100%0/0100%0/00%0/1
components/atoms +
+
83.12%335/40372.47%158/21861.81%34/5587.61%290/331
components/fragment_renderer +
+
89.28%50/5643.01%40/9375%3/489.58%43/48
components/fragment_renderer/fragment_components +
+
85.57%89/10442.1%8/1988.88%8/992.77%77/83
components/molecules +
+
86.34%354/41057.96%91/15776%38/5091.04%315/346
components/organisms +
+
85.78%163/19076.71%56/7360.86%14/2390.79%148/163
components/text_node_renderer +
+
95.23%20/2188.88%8/9100%4/495.23%20/21
components/text_node_renderer/nodes +
+
100%13/1383.33%5/688.88%8/9100%13/13
lib/notify +
+
72.72%8/11100%0/033.33%1/366.66%6/9
lib/utils +
+
64.17%43/6750%11/2268.75%11/1661.4%35/57
middlewares +
+
57.89%11/1925%1/442.85%3/757.89%11/19
pages +
+
34.01%100/29425.78%74/28722.8%13/5735.61%99/278
pages/api +
+
90.24%37/4187.5%14/1675%3/490%36/40
pages/projects/benefits-finder +
+
40.29%27/6738.14%37/9730%3/1042.18%27/64
pages/projects/benefits-navigator +
+
37.33%28/7540.39%61/15130%3/1038.88%28/72
pages/projects/dashboard +
+
34.72%25/7236.89%38/10330%3/1036.23%25/69
pages/projects/digital-standards-playbook +
+
35.52%27/7640.31%52/12930%3/1036.98%27/73
pages/projects/making-easier-get-benefits +
+
35.52%27/7634.28%36/10530%3/1036.98%27/73
pages/projects/oas-benefits-estimator +
+
34.66%26/7538.21%47/12330%3/1036.11%26/72
pages/projects/transforming-ei-indigenous-peoples +
+
0%0/650%0/970%0/100%0/62
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/notify/index.html b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/index.html new file mode 100644 index 0000000000..6bed97353e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for lib/notify + + + + + + + + + +
+
+

All files lib/notify

+
+ +
+ 72.72% + Statements + 8/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 33.33% + Functions + 1/3 +
+ + +
+ 66.66% + Lines + 6/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
postFeedbackToGcNotify.js +
+
50%1/2100%0/00%0/150%1/2
submitEmail.js +
+
77.77%7/9100%0/050%1/271.42%5/7
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/notify/postFeedbackToGcNotify.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/postFeedbackToGcNotify.js.html new file mode 100644 index 0000000000..7bcda63c87 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/postFeedbackToGcNotify.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for lib/notify/postFeedbackToGcNotify.js + + + + + + + + + +
+
+

All files / lib/notify postFeedbackToGcNotify.js

+
+ +
+ 50% + Statements + 1/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 50% + Lines + 1/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +201x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export async function postFeedbackToGcNotify(data) {
+  return await fetch(
+    `${process.env.NOTIFY_BASE_API_URL}/v2/notifications/email`,
+    {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json",
+        Authorization: `ApiKey-v1 ${process.env.NOTIFY_API_KEY}`,
+      },
+      body: JSON.stringify({
+        email_address: process.env.SUBMIT_FEEDBACK_EMAIL,
+        template_id: process.env.NOTIFY_FEEDBACK_TEMPLATE_ID,
+        personalisation: {
+          ...data,
+        },
+      }),
+    }
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/notify/submitEmail.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/submitEmail.js.html new file mode 100644 index 0000000000..17576f871e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/notify/submitEmail.js.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for lib/notify/submitEmail.js + + + + + + + + + +
+
+

All files / lib/notify submitEmail.js

+
+ +
+ 77.77% + Statements + 7/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 71.42% + Lines + 5/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +662x +  +2x +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import "node-fetch";
+ 
+export const submitEmail = async (
+  data,
+  defaults,
+  templateId,
+  email,
+  notifyApiAddress,
+  notifyApiKey
+) => {
+  const notifyResponse = await fetch(notifyApiAddress, {
+    method: "POST",
+    headers: {
+      "Content-Type": "application/json",
+      Authorization: `ApiKey-v1 ${notifyApiKey}`,
+    },
+    body: JSON.stringify({
+      email_address: email,
+      template_id: templateId,
+      // notify requires all values in the template to be present
+      // in the request.... highly annoying but providing defaults solves this
+      personalisation: {
+        ...defaults,
+        ...data,
+      },
+    }),
+  });
+ 
+  return [notifyResponse.status, await notifyResponse.json()];
+};
+ 
+export const submitEmailWithAttachment = async (
+  data,
+  defaults,
+  templateId,
+  email,
+  file,
+  fileName,
+  notifyApiAddress,
+  notifyApiKey
+) => {
+  const notifyResponse = await fetch(notifyApiAddress, {
+    method: "POST",
+    headers: {
+      "Content-Type": "application/json",
+      Authorization: `ApiKey-v1 ${notifyApiKey}`,
+    },
+    body: JSON.stringify({
+      email_address: email,
+      template_id: templateId,
+      // notify requires all values in the template to be present
+      // in the request.... highly annoying but providing defaults solves this
+      personalisation: {
+        application_file: {
+          file: file,
+          filename: fileName,
+          sending_method: "attach",
+        },
+        ...defaults,
+        ...data,
+      },
+    }),
+  });
+  return [notifyResponse.status, await notifyResponse.json()];
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html new file mode 100644 index 0000000000..edcaff1891 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for lib/utils/createBreadcrumbs.js + + + + + + + + + +
+
+

All files / lib/utils createBreadcrumbs.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +136x +6x +6x +  +  +  +  +  +  +  +  +  + 
export const createBreadcrumbs = (breadcrumbArray, locale) => {
+  return breadcrumbArray.map((breadCrumbItem) => {
+    return {
+      text:
+        locale === "en" ? breadCrumbItem.scTitleEn : breadCrumbItem.scTitleFr,
+      link:
+        locale === "en"
+          ? breadCrumbItem.scPageNameEn
+          : breadCrumbItem.scPageNameFr,
+    };
+  });
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/filterItems.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/filterItems.js.html new file mode 100644 index 0000000000..81e54392c3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/filterItems.js.html @@ -0,0 +1,106 @@ + + + + + + Code coverage report for lib/utils/filterItems.js + + + + + + + + + +
+
+

All files / lib/utils filterItems.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 4/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +86x +  +6x +6x +  +6x +  + 
export const filterItems = (items, activeItem) => {
+  //filter out current project from projects array
+  const filteredProjects = items.filter((currentItem) => {
+    return currentItem.scId !== activeItem;
+  });
+  return filteredProjects;
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/generateCollapseElements.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/generateCollapseElements.js.html new file mode 100644 index 0000000000..956f7c2e6e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/generateCollapseElements.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for lib/utils/generateCollapseElements.js + + + + + + + + + +
+
+

All files / lib/utils generateCollapseElements.js

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 0% + Branches + 0/9 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/18 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export const generateCollapseElements = (json) => {
+  const elements = [];
+ 
+  for (const item of json) {
+    if (item.nodeType === "paragraph") {
+      elements.push(
+        <p key={elements.length}>{generateCollapseElements(item.content)}</p>
+      );
+    } else if (item.nodeType === "unordered-list") {
+      const listItems = item.content.map((listItem, index) => (
+        <li key={index} className="my-0">
+          {generateCollapseElements(listItem.content)}
+        </li>
+      ));
+      elements.push(
+        <ul key={elements.length} className="mb-0">
+          {listItems}
+        </ul>
+      );
+    } else if (item.nodeType === "ordered-list") {
+      const listItems = item.content.map((listItem, index) => (
+        <li key={index} className="my-0">
+          {generateCollapseElements(listItem.content)}
+        </li>
+      ));
+      elements.push(
+        <ol key={elements.length} className="mb-0">
+          {listItems}
+        </ol>
+      );
+    } else if (item.nodeType === "list-item") {
+      elements.push(
+        <li key={elements.length} className="my-0">
+          {generateCollapseElements(item.content)}
+        </li>
+      );
+    } else Iif (item.nodeType === "text") {
+      elements.push(item.value);
+    }
+  }
+ 
+  return elements;
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html new file mode 100644 index 0000000000..586f14144a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for lib/utils/getAllUpdateIds.js + + + + + + + + + +
+
+

All files / lib/utils getAllUpdateIds.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export function getAllUpdateIds(items) {
+  return items.flatMap((item) => [
+    {
+      params: {
+        id: item.scPageNameEn,
+      },
+      locale: "en",
+    },
+    {
+      params: {
+        id: item.scPageNameFr,
+      },
+      locale: "fr",
+    },
+  ]);
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getDictionaryTerm.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getDictionaryTerm.js.html new file mode 100644 index 0000000000..092abbdcc7 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/getDictionaryTerm.js.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for lib/utils/getDictionaryTerm.js + + + + + + + + + +
+
+

All files / lib/utils getDictionaryTerm.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +528x +358x +28x +  + 
export const getDictionaryTerm = (dictionary, entryId, locale) => {
+  const dictionaryEntry = dictionary.find((obj) => obj.scId === entryId);
+  return locale === "en" ? dictionaryEntry.scTermEn : dictionaryEntry.scTermFr;
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/index.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/index.html new file mode 100644 index 0000000000..07d74c7c5f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/index.html @@ -0,0 +1,236 @@ + + + + + + Code coverage report for lib/utils + + + + + + + + + +
+
+

All files lib/utils

+
+ +
+ 64.17% + Statements + 43/67 +
+ + +
+ 50% + Branches + 11/22 +
+ + +
+ 68.75% + Functions + 11/16 +
+ + +
+ 61.4% + Lines + 35/57 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
createBreadcrumbs.js +
+
100%4/450%2/4100%2/2100%3/3
filterItems.js +
+
100%5/5100%0/0100%2/2100%4/4
generateCollapseElements.js +
+
0%0/190%0/90%0/30%0/18
getAllUpdateIds.js +
+
0%0/3100%0/00%0/20%0/2
getDictionaryTerm.js +
+
100%5/5100%2/2100%2/2100%3/3
maskEmail.js +
+
100%13/13100%7/7100%1/1100%12/12
shuffle.js +
+
71.42%5/7100%0/0100%1/160%3/5
sortUpdatesByDate.js +
+
100%4/4100%0/0100%2/2100%3/3
stripFeedback.js +
+
100%7/7100%0/0100%1/1100%7/7
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/maskEmail.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/maskEmail.js.html new file mode 100644 index 0000000000..e737d11f3e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/maskEmail.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for lib/utils/maskEmail.js + + + + + + + + + +
+
+

All files / lib/utils maskEmail.js

+
+ +
+ 100% + Statements + 13/13 +
+ + +
+ 100% + Branches + 7/7 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 12/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +1x +1x +1x +  +1x +14x +1x +13x +10x +10x +  +3x +3x +  +  +  +1x +  + 
//Function for masking email to get in the thank you page later
+export function maskEmail(email) {
+  let maskedEmail = "";
+  let x = 0;
+ 
+  for (var i = 0; i < email.length; i++) {
+    if (i === 0) {
+      maskedEmail += email[i];
+    } else if (email[i] !== "@" && email[i] !== "." && x <= 3) {
+      maskedEmail += "*";
+      x += 1;
+    } else {
+      maskedEmail += email[i];
+      x = 0;
+    }
+  }
+ 
+  return maskedEmail;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/shuffle.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/shuffle.js.html new file mode 100644 index 0000000000..e3fece3020 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/shuffle.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for lib/utils/shuffle.js + + + + + + + + + +
+
+

All files / lib/utils shuffle.js

+
+ +
+ 71.42% + Statements + 5/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 60% + Lines + 3/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +96x +  +1x +  +  +  +1x +  + 
export const shuffle = (projects) => {
+  //randomize order of projects array
+  for (let i = projects.length - 1; i > 0; i--) {
+    const j = Math.floor(Math.random() * (i + 1));
+    [projects[i], projects[j]] = [projects[j], projects[i]];
+  }
+  return projects;
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/sortUpdatesByDate.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/sortUpdatesByDate.js.html new file mode 100644 index 0000000000..9cc43c8cb6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/sortUpdatesByDate.js.html @@ -0,0 +1,100 @@ + + + + + + Code coverage report for lib/utils/sortUpdatesByDate.js + + + + + + + + + +
+
+

All files / lib/utils sortUpdatesByDate.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +67x +7x +5x +  +  + 
export const sortUpdatesByDate = (array) => {
+  return [...array].sort((a, b) => {
+    return b.scDateModifiedOverwrite.localeCompare(a.scDateModifiedOverwrite);
+  });
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html new file mode 100644 index 0000000000..89c7eb8154 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/lib/utils/stripFeedback.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for lib/utils/stripFeedback.js + + + + + + + + + +
+
+

All files / lib/utils stripFeedback.js

+
+ +
+ 100% + Statements + 7/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +327x +  +7x +  +  +  +  +  +7x +  +  +  +  +  +7x +  +  +  +  +  +7x +  +  +  +7x +  +  +  +  +7x +  + 
export function stripFeedback(feedbackToClean) {
+  //Remove postal code from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /[ABCEGHJ-NPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][ -]?\d[ABCEGHJ-NPRSTV-Z]\d/gim,
+    "### ###"
+  );
+ 
+  //Remove SIN from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(\d{3}\s*\d{3}\s*\d{3}|\d{3}\D*\d{3}\D*\d{3})/gm,
+    "### ### ###"
+  );
+ 
+  //Remove email from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*/gim,
+    "####@####.####"
+  );
+ 
+  //Removes phone number from feedback
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(\+\d{1,2}\s?)?1?\-?\.?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}/gm,
+    "# ### ### ###"
+  );
+  feedbackToClean = feedbackToClean.replaceAll(
+    /(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?/gm,
+    "# ### ### ###"
+  );
+ 
+  return feedbackToClean;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/middlewares/index.html b/refs/pull/1117/merge/coverage/lcov-report/middlewares/index.html new file mode 100644 index 0000000000..65127a5545 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/middlewares/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for middlewares + + + + + + + + + +
+
+

All files middlewares

+
+ +
+ 57.89% + Statements + 11/19 +
+ + +
+ 25% + Branches + 1/4 +
+ + +
+ 42.85% + Functions + 3/7 +
+ + +
+ 57.89% + Lines + 11/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
initMiddleware.js +
+
0%0/70%0/10%0/40%0/7
joi.js +
+
91.66%11/1233.33%1/3100%3/391.66%11/12
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/middlewares/initMiddleware.js.html b/refs/pull/1117/merge/coverage/lcov-report/middlewares/initMiddleware.js.html new file mode 100644 index 0000000000..b074bfa12b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/middlewares/initMiddleware.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for middlewares/initMiddleware.js + + + + + + + + + +
+
+

All files / middlewares initMiddleware.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
// Helper method to wait for a middleware to execute before continuing
+// And to throw an error when an error happens in a middleware
+export default function initMiddleware(middleware) {
+  return (req, res) =>
+    new Promise((resolve, reject) => {
+      middleware(req, res, (result) => {
+        Iif (result instanceof Error) {
+          return reject(result);
+        }
+        return resolve(result);
+      });
+    });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/middlewares/joi.js.html b/refs/pull/1117/merge/coverage/lcov-report/middlewares/joi.js.html new file mode 100644 index 0000000000..4e89f35969 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/middlewares/joi.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for middlewares/joi.js + + + + + + + + + +
+
+

All files / middlewares joi.js

+
+ +
+ 91.66% + Statements + 11/12 +
+ + +
+ 33.33% + Branches + 1/3 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 91.66% + Lines + 11/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +261x +1x +  +  +  +  +  +  +  +  +1x +1x +1x +1x +1x +  +  +1x +1x +2x +  +1x +  +  +  + 
import { Schema, ValidationOptions } from "joi"; //lgtm [js/unused-local-variable]
+import { NextApiHandler } from "next"; //lgtm [js/unused-local-variable]
+ 
+/**
+ * middleware to validate body of request with Joi schema
+ * if valid handler will be called otherwise a 400 response with the errors will be returned
+ * @param schema {Schema} - joi validation schema
+ * @param handler {NextApiHandler} - the next handler to call if the schema is valid
+ * @param options {ValidationOptions} - the Joi validations options
+ */
+export default function validate(schema, handler, options = {}) {
+  return async (req, res) => {
+    const { error } = await schema.validate(req.body, options);
+    const valid = error === undefined;
+    Iif (valid) {
+      return handler(req, res);
+    } else {
+      const { details } = error;
+      const message = details.map((i) => {
+        return { path: i.path, message: i.message };
+      });
+      res.status(400).json({ error: message });
+    }
+  };
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/404.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/404.js.html new file mode 100644 index 0000000000..988d3fd9bd --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/404.js.html @@ -0,0 +1,820 @@ + + + + + + Code coverage report for pages/404.js + + + + + + + + + +
+
+

All files / pages 404.js

+
+ +
+ 76.92% + Statements + 20/26 +
+ + +
+ 40.9% + Branches + 9/22 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 80% + Lines + 20/25 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +2461x +1x +1x +1x +1x +1x +1x +1x +  +1x +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import { useRouter } from "next/router";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function error404(props) {
+  const { t } = useTranslation("common");
+  const [loaded, setLoaded] = useState(false);
+  const router = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+ 
+    //If using Internet Explorer, redirect to /notsupported
+    Iif (window.document.documentMode) {
+      router.push("/notsupported");
+    } else {
+      setLoaded(true);
+    }
+  }, []);
+ 
+  //If using Internet Explorer, render empty page so page doesn't flash before redirect
+  if (!loaded) {
+    return <div></div>;
+  }
+ 
+  return (
+    <>
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title data-gc-analytics-error="404">
+          {pageData.scContentEn.json[0].content[0].value} (404) |{" "}
+          {pageData.scContentFr.json[0].content[0].value} (404)
+        </title>
+        <meta name="description" content={`${t("404errorMetaDescription")}`} />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+ 
+        {/* DCMI Meta Tags */}
+        <meta name="dcterms.title" content={`404 — ${t("siteTitle")}`} />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2/T"
+        />
+        <meta
+          name="dcterms.description"
+          content={`${t("404errorMetaDescription")}`}
+        />
+        <meta
+          name="dcterms.subject"
+          title="gccore"
+          content={t("metaSubject")}
+        />
+        <meta
+          name="dcterms.creator"
+          content={
+            props.locale === "en"
+              ? "Employment and Social Development Canada"
+              : "Emploi et Développement social Canada"
+          }
+        />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-06-01" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta name="dcterms.spatial" content="Canada" />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta
+          property="og:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/404"
+          }
+        />
+        <meta property="og:title" content={`404 — ${t("siteTitle")}`} />
+        <meta
+          property="og:description"
+          content={`${t("404errorMetaDescription")}`}
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/404"
+          }
+        />
+        <meta property="twitter:title" content={`500 — ${t("siteTitle")}`} />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content={`${t("404errorMetaDescription")}`}
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+      </Head>
+      <main>
+        <div className="min-h-screen relative">
+          <section className="layout-container pb-44">
+            <div className="pt-6">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageEn._path
+                    : pageData.scGcImages[0].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageAltTextEn
+                    : pageData.scGcImages[0].scImageAltTextFr
+                }
+                width={575}
+                height={59}
+              />
+            </div>
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              <div>
+                <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentEn.json[0].content[0].value}
+                  </h1>
+                  <p className="font-bold font-body mb-8">
+                    {pageData.scContentEn.json[1].content[0].value}
+                  </p>
+                  <p className="font-body text-sm mb-4 leading-30px">
+                    {pageData.scContentEn.json[2].content[0].value}
+                  </p>
+                  <div className="flex">
+                    <span className="error404-link" />
+                    <p className="font-body text-sm leading-30px">
+                      {pageData.scContentEn.json[3].content[0].value}
+                      <Link
+                        href="/en/home"
+                        locale={false}
+                        className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      >
+                        {pageData.scContentEn.json[3].content[1].value}
+                      </Link>
+                    </p>
+                  </div>
+                </div>
+              </div>
+              <div className="flex items-center justify-center circle-background my-8 mx-4 lg:mt-0 lightbulb-bg shrink-0">
+                <span className="relative lightbulb">
+                  <img
+                    src={`https://www.canada.ca${
+                      props.locale === "en"
+                        ? pageData.scImageList[0].scImageEn._path
+                        : pageData.scImageList[0].scImageFr._path
+                    }`}
+                    alt=""
+                  />
+                </span>
+              </div>
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentFr.json[0].content[0].value}
+                  </h1>
+                  <p className="font-bold font-body mb-8">
+                    {pageData.scContentFr.json[1].content[0].value}
+                  </p>
+                  <p className="font-body text-sm mb-4 leading-30px">
+                    {pageData.scContentFr.json[2].content[0].value}
+                  </p>
+                  <div className="flex">
+                    <span className="error404-link" />
+                    <p className="font-body text-sm leading-30px">
+                      {pageData.scContentFr.json[3].content[0].value}
+                      <Link
+                        href="/fr/accueil"
+                        locale={false}
+                        className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      >
+                        {pageData.scContentFr.json[3].content[1].value}
+                      </Link>
+                    </p>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </section>
+          <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+            <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+              <ActionButton
+                id="404TopOfPageButton"
+                href="#"
+                custom="text-left w-32 flex flex-col lg:hidden"
+                text="Top of page / Haut de la page"
+                icon="icon-up-caret"
+                iconEnd
+              />
+              <span className="relative footer-logo">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageEn._path
+                      : pageData.scGcImages[1].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageAltTextEn
+                      : pageData.scGcImages[1].scImageAltTextFr
+                  }
+                />
+              </span>
+            </div>
+          </footer>
+        </div>
+      </main>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error404Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.sclabsErrorpageV1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/500.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/500.js.html new file mode 100644 index 0000000000..071e46a194 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/500.js.html @@ -0,0 +1,907 @@ + + + + + + Code coverage report for pages/500.js + + + + + + + + + +
+
+

All files / pages 500.js

+
+ +
+ 76.92% + Statements + 20/26 +
+ + +
+ 40% + Branches + 8/20 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 80% + Lines + 20/25 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +2751x +1x +1x +1x +1x +1x +1x +1x +  +1x +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import { useRouter } from "next/router";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function error500(props) {
+  const { t } = useTranslation("common");
+  const [loaded, setLoaded] = useState(false);
+  const router = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+ 
+    //If using Internet Explorer, redirect to /notsupported
+    Iif (window.document.documentMode) {
+      router.push("/notsupported");
+    } else {
+      setLoaded(true);
+    }
+  }, []);
+ 
+  //If using Internet Explorer, render empty page so page doesn't flash before redirect
+  if (!loaded) {
+    return <div></div>;
+  }
+ 
+  return (
+    <>
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title data-gc-analytics-error="500">
+          {pageData.scContentEn.json[0].content[0].value} (500) |{" "}
+          {pageData.scContentFr.json[0].content[0].value} (500)
+        </title>
+        <meta
+          name="description"
+          content="Error message stating that the server is down, or the URL is incorrect or expired"
+        />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+        <meta content="width=device-width, initial-scale=1" name="viewport" />
+        <meta name="robots" content="noindex, nofollow" />
+ 
+        {/* DCMI Meta Tags */}
+        <meta
+          property="dcterms:title"
+          lang="en"
+          content="The web site has reported an error (500)"
+        />
+        <meta
+          property="dcterms:title"
+          lang="fr"
+          content="Le site Web a signalé une erreur (500)"
+        />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2"
+        />
+        <meta
+          property="dcterms:description"
+          lang="en"
+          content="Error message stating that the server is down, or the URL is incorrect or expired."
+        />
+        <meta
+          property="dcterms:description"
+          lang="fr"
+          content="Message d’erreur indiquant que le serveur est en panne ou l’URL est incorrecte ou expirée."
+        />
+        <meta property="dcterms:creator" lang="en" content="Service Canada" />
+        <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+        <meta
+          property="dcterms:subject"
+          lang="en"
+          title="gccore"
+          content="GV Government and Politics;Government services"
+        />
+        <meta
+          property="dcterms:subject"
+          lang="fr"
+          title="gccore"
+          content="GV Gouvernement et vie politique;Services gouvernementaux"
+        />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-06-22" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta property="dcterms:issued" content="2021-06-22" />
+        <meta property="dcterms:modified" content="2021-MM-DD" />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta
+          property="og:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/500"
+          }
+        />
+        <meta
+          property="og:title"
+          content="The web site has reported an error (500) | Le site Web a signalé une
+          erreur (500)"
+        />
+        <meta
+          property="og:description"
+          content="Error message stating that the server is down, or the URL is incorrect or expired"
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/500"
+          }
+        />
+        <meta
+          property="twitter:title"
+          content="Error message stating that the server is down, or the URL is incorrect or expired"
+        />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content="Error message stating that the server is down, or the URL is incorrect or expired"
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+      </Head>
+      <main>
+        <div className="min-h-screen relative">
+          <section className="layout-container pb-44">
+            <div className="pt-6">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageEn._path
+                    : pageData.scGcImages[0].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageAltTextEn
+                    : pageData.scGcImages[0].scImageAltTextFr
+                }
+                width={575}
+                height={59}
+              />
+            </div>
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              <div>
+                <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentEn.json[0].content[0].value}
+                  </h1>
+                  <p className="font-bold font-body mb-8">
+                    {pageData.scContentEn.json[1].content[0].value}
+                  </p>
+                  <p className="font-body text-sm mb-4 leading-30px">
+                    {pageData.scContentEn.json[2].content[0].value}
+                  </p>
+                  <div className="flex">
+                    <span className="error404-link" />
+                    <p className="font-body text-sm leading-30px">
+                      {pageData.scContentEn.json[3].content[0].value}
+                      <Link
+                        href="/en/home"
+                        locale={false}
+                        className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      >
+                        {pageData.scContentEn.json[3].content[1].value}
+                      </Link>
+                    </p>
+                  </div>
+                </div>
+              </div>
+              <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+                <span className="relative lightbulb">
+                  <img
+                    src={`https://www.canada.ca${
+                      props.locale === "en"
+                        ? pageData.scImageList[0].scImageEn._path
+                        : pageData.scImageList[0].scImageFr._path
+                    }`}
+                    alt=""
+                  />
+                </span>
+              </div>
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentFr.json[0].content[0].value}
+                  </h1>
+                  <p className="font-bold font-body mb-8">
+                    {pageData.scContentFr.json[1].content[0].value}
+                  </p>
+                  <p className="font-body text-sm mb-4 leading-30px">
+                    {pageData.scContentFr.json[2].content[0].value}
+                  </p>
+                  <div className="flex">
+                    <span className="error50-link" />
+                    <p className="font-body text-sm leading-30px">
+                      {pageData.scContentFr.json[3].content[0].value}
+                      <Link
+                        href="/fr/accueil"
+                        locale={false}
+                        className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      >
+                        {pageData.scContentFr.json[3].content[1].value}
+                      </Link>
+                    </p>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </section>
+          <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+            <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+              <ActionButton
+                id="404TopOfPageButton"
+                href="#"
+                custom="text-left w-32 flex flex-col lg:hidden"
+                text="Top of page / Haut de la page"
+                icon="icon-up-caret"
+                iconEnd
+              />
+              <span className="relative footer-logo">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageEn._path
+                      : pageData.scGcImages[1].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageAltTextEn
+                      : pageData.scGcImages[1].scImageAltTextFr
+                  }
+                />
+              </span>
+            </div>
+          </footer>
+        </div>
+      </main>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error500Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.sclabsErrorpageV1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/_app.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/_app.js.html new file mode 100644 index 0000000000..2c394ef0de --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/_app.js.html @@ -0,0 +1,196 @@ + + + + + + Code coverage report for pages/_app.js + + + + + + + + + +
+
+

All files / pages _app.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { appWithTranslation } from "next-i18next";
+import "../styles/globals.css";
+import "../styles/forms.css";
+import "../styles/menu.css";
+import Head from "next/head";
+import { config } from "@fortawesome/fontawesome-svg-core";
+import "@fortawesome/fontawesome-svg-core/styles.css";
+import { Noto_Sans, Lato } from "next/font/google";
+ 
+config.autoAddCss = false;
+ 
+const notoSans = Noto_Sans({
+  subsets: ["latin"],
+  weight: ["300", "400", "700", "900"],
+  variable: "--font-notoSans",
+});
+const lato = Lato({
+  subsets: ["latin"],
+  weight: ["300", "400", "700", "900"],
+  variable: "--font-lato",
+});
+ 
+function MyApp({ Component, pageProps }) {
+  return (
+    <>
+      <Head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+      </Head>
+      {/* Pre-load fonts */}
+      <div className={`${notoSans.variable} ${lato.variable}`}>
+        <Component {...pageProps} />
+      </div>
+    </>
+  );
+}
+ 
+export default appWithTranslation(MyApp);
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/api/healthcheck.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/api/healthcheck.js.html new file mode 100644 index 0000000000..95579e7a36 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/api/healthcheck.js.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for pages/api/healthcheck.js + + + + + + + + + +
+
+

All files / pages/api healthcheck.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
// TODO: add checks for the status of the CMS
+export default function handler(req, res) {
+  res.status(200).json({ message: "Status OK" });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/api/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/api/index.html new file mode 100644 index 0000000000..a00381359f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/api/index.html @@ -0,0 +1,161 @@ + + + + + + Code coverage report for pages/api + + + + + + + + + +
+
+

All files pages/api

+
+ +
+ 90.24% + Statements + 37/41 +
+ + +
+ 87.5% + Branches + 14/16 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 90% + Lines + 36/40 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
healthcheck.js +
+
0%0/2100%0/00%0/10%0/2
report-a-problem.js +
+
87.5%14/1680%8/10100%1/186.66%13/15
robots.js +
+
100%11/11100%2/2100%1/1100%11/11
submit-feedback.js +
+
100%12/12100%4/4100%1/1100%12/12
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/api/report-a-problem.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/api/report-a-problem.js.html new file mode 100644 index 0000000000..dab4fabb53 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/api/report-a-problem.js.html @@ -0,0 +1,274 @@ + + + + + + Code coverage report for pages/api/report-a-problem.js + + + + + + + + + +
+
+

All files / pages/api report-a-problem.js

+
+ +
+ 87.5% + Statements + 14/16 +
+ + +
+ 80% + Branches + 8/10 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 86.66% + Lines + 13/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +641x +  +  +  +  +  +  +5x +  +5x +  +  +  +2x +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +1x +1x +  +  +1x +1x +  +  +  +  +  +  +  +  +5x + 
import { submitEmail } from "../../lib/notify/submitEmail";
+ 
+/**
+ * API handler for report a problem functionality. This will take form submissions
+ * and call GC Notify service with the appropriate template and data
+ */
+async function handler(req, res) {
+  if (req.method === "POST") {
+    // if there is no data specified we don't want to call notify
+    if (
+      Object.keys(req.body).length <= 1 ||
+      !process.env.REPORT_A_PROBLEM_ENABLED
+    ) {
+      res.status(200).end("OK");
+    } else {
+      try {
+        const notifyResponse = await submitEmail(
+          {
+            ...req.body,
+            page_name: req.headers.referer || "unknown",
+          },
+          {
+            page_name: "unknown",
+            language: "unknown",
+            incorrect_information: "no",
+            incorrect_information_details: "",
+            unclear_information: "no",
+            unclear_information_details: "",
+            info_not_found: "no",
+            info_not_found_details: "",
+            adaptive_technology: "no",
+            adaptive_technology_details: "",
+            privacy_issues: "no",
+            privacy_issues_details: "",
+            no_where_else_to_go: "no",
+            no_where_else_to_go_details: "",
+            other: "no",
+            other_details: "",
+          },
+          process.env.NOTIFY_REPORT_A_PROBLEM_TEMPLATE_ID,
+          process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL,
+          process.env.NOTIFY_BASE_API_URL + "/v2/notifications/email",
+          process.env.NOTIFY_API_KEY
+        );
+ 
+        if (notifyResponse[0] === 201) {
+          res.status(200).end("OK");
+        } else {
+          console.error(notifyResponse[1]);
+          res.status(500).end("ERROR");
+        }
+      } catch (e) {
+        console.error(e);
+        res.status(500).end("ERROR");
+      }
+    }
+  } else E{
+    res.setHeader("Allow", ["POST"]);
+    res.status(405).end(`Method ${req.method} Not Allowed`);
+  }
+}
+ 
+export default handler;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/api/robots.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/api/robots.js.html new file mode 100644 index 0000000000..5ec6186198 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/api/robots.js.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for pages/api/robots.js + + + + + + + + + +
+
+

All files / pages/api robots.js

+
+ +
+ 100% + Statements + 11/11 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 11/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +2x +2x +1x +1x +1x +1x +1x +1x +  +1x +1x +  +2x +  + 
/**
+ * Disallow web crawlers to scrape our dev site, while only blocking crawlers from scraping the api routes in production
+ * @param req
+ * @param res
+ * @returns {Promise<void>}
+ */
+export default async function handler(req, res) {
+  if (process.env.NODE_ENV === "production") {
+    res.write("User-agent: *\n");
+    res.write("Disallow: /api\n");
+    res.write("Disallow: /projects/*\n");
+    res.write("Disallow: /notsupported.js\n");
+    res.write("Disallow: /cdcp-apply\n");
+    res.write("Disallow: /rsdc-demander\n");
+  } else {
+    res.write("User-agent: *\n");
+    res.write("Disallow: /\n");
+  }
+  res.end();
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/api/submit-feedback.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/api/submit-feedback.js.html new file mode 100644 index 0000000000..829c7ffc97 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/api/submit-feedback.js.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for pages/api/submit-feedback.js + + + + + + + + + +
+
+

All files / pages/api submit-feedback.js

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 4/4 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 12/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +211x +  +3x +3x +3x +1x +  +2x +2x +2x +1x +  +1x +  +  +1x +1x +  +  +  + 
import { postFeedbackToGcNotify } from "../../lib/notify/postFeedbackToGcNotify";
+ 
+export default async function handler(req, res) {
+  const data = req.body;
+  if (!data["what-was-wrong"]) {
+    res.status(400).json({ message: "required field missing" });
+  } else {
+    try {
+      let r = await postFeedbackToGcNotify(data);
+      if (r.ok) {
+        res.status(200).json(data);
+      } else {
+        throw new Error("bad request");
+      }
+    } catch (e) {
+      console.error("Failed to post to GC Notify");
+      res.status(500).json({ message: "something went wrong" });
+    }
+  }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/cdcp-apply.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/cdcp-apply.js.html new file mode 100644 index 0000000000..82b958deb6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/cdcp-apply.js.html @@ -0,0 +1,514 @@ + + + + + + Code coverage report for pages/cdcp-apply.js + + + + + + + + + +
+
+

All files / pages cdcp-apply.js

+
+ +
+ 0% + Statements + 0/17 +
+ + +
+ 0% + Branches + 0/11 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../components/organisms/Layout";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { createBreadcrumbs } from "../lib/utils/createBreadcrumbs";
+import { useEffect } from "react";
+ 
+export default function CDCPLanding(props) {
+  const { t } = useTranslation("common");
+ 
+  const breadCrumbs = [
+    {
+      scTitleEn: "Benefits",
+      scTitleFr: "Prestations",
+      scPageNameEn: "https://www.canada.ca/en/services/benefits.html",
+      scPageNameFr: "https://www.canada.ca/fr/services/prestations.html",
+    },
+    {
+      scTitleEn: "Dental coverage",
+      scTitleFr: "Couverture dentaire",
+      scPageNameEn: "https://www.canada.ca/en/services/benefits/dental.html",
+      scPageNameFr:
+        "https://www.canada.ca/fr/services/prestations/dentaire.html",
+    },
+    {
+      scTitleEn: "Canadian Dental Care Plan",
+      scTitleFr: "Régime canadien de soins dentaires",
+      scPageNameEn:
+        "https://www.canada.ca/en/services/benefits/dental/dental-care-plan.html",
+      scPageNameFr:
+        "https://www.canada.ca/fr/services/prestations/dentaire/regime-soins-dentaires.html",
+    },
+  ];
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <Layout
+      locale={props.locale}
+      langUrl={props.locale === "en" ? "/rsdc-demander" : "/cdcp-apply"}
+      dateModifiedOverride={"2024-04-30"}
+      excludeFooterFeedback={true}
+      breadcrumbItems={createBreadcrumbs(breadCrumbs, props.locale)}
+      showDisclaimer
+      preFooterTitle="Service Canada"
+      preFooterLink={t("cdcp.cdcpPreFooterLinkUrl")}
+      preFooterLinkText={t("cdcp.cdcpPreFooterLinkText")}
+    >
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title>{t("cdcp.secondaryHeading")}</title>
+ 
+        {/* DCMI Meta Tags */}
+        <meta name="dcterms.title" content={t("cdcp.tertiaryHeading")} />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2/T"
+        />
+        <meta
+          name="dcterms.creator"
+          content={
+            props.locale === "en"
+              ? "Employment and Social Development Canada"
+              : "Emploi et Développement social Canada"
+          }
+        />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.spatial" content="Canada" />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+      </Head>
+      <section className="layout-container">
+        <div className="grid grid-cols-12 gap-x-8">
+          <div className="col-span-12">
+            <p className="mt-12 text-multi-neutrals-grey85">
+              {t("cdcp.secondaryHeading")}
+            </p>
+            <h1
+              id="pageMainTitle"
+              className="mt-0 mb-8 pb-2 border-b border-multi-red-red50a"
+            >
+              {t("cdcp.primaryHeading")}
+            </h1>
+          </div>
+          <div className="col-span-12 xl:col-span-8">
+            <p>{t("cdcp.toCompleteApplication")}</p>
+            <ul className="list-disc mt-5">
+              <li className="ml-10">
+                <p>{t("cdcp.listItems.item1")}</p>
+              </li>
+              <li className="ml-10">
+                <p>{t("cdcp.listItems.item2")}</p>
+              </li>
+              <li className="ml-10">
+                <p>{t("cdcp.listItems.item3")}</p>
+              </li>
+              <li className="ml-10">
+                <p>{t("cdcp.listItems.item4")}</p>
+              </li>
+              <li className="ml-10">
+                <p>{t("cdcp.listItems.item5")}</p>
+              </li>
+            </ul>
+            <h2 className="mt-10 mb-10">{t("cdcp.headingH2")}</h2>
+            <p>{t("cdcp.clickButtonToApply")}</p>
+            <div className="mt-10">
+              <ActionButton
+                id="cdcp-button"
+                style="primary"
+                href={t("cdcp.buttonLink")}
+                custom="mb-8 !rounded-md"
+                text={t("cdcp.buttonText")}
+                icon="icon-chevron-right"
+                iconStyle="mt-0.5 ml-4"
+                iconEnd={true}
+              />
+            </div>
+          </div>
+        </div>
+      </section>
+    </Layout>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/error.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/error.js.html new file mode 100644 index 0000000000..838de88620 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/error.js.html @@ -0,0 +1,1438 @@ + + + + + + Code coverage report for pages/error.js + + + + + + + + + +
+
+

All files / pages error.js

+
+ +
+ 0% + Statements + 0/25 +
+ + +
+ 0% + Branches + 0/43 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/24 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import Link from "next/link";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { useRouter } from "next/router";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function ErrorPage(props) {
+  const { t } = useTranslation("common");
+  const { query } = useRouter();
+  const [pageData] = useState(props.pageData.item);
+ 
+  const statusCode = query.statusCode || "";
+  const errorTitle =
+    query.errorTitle || pageData.scContentEn.json[0].content[0].value;
+  const errorTitleFr =
+    query.errorTitleFr || pageData.scContentFr.json[0].content[0].value;
+  const errorMessage =
+    query.errorMessage || pageData.scContentEn.json[1].content[0].value;
+  const errorMessageFr =
+    query.errorMessageFr || pageData.scContentFr.json[1].content[0].value;
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title data-gc-analytics-error={props.statusCode}>
+          {pageData.scContentEn.json[0].content[0].value} |{" "}
+          {pageData.scContentFr.json[0].content[0].value}
+        </title>
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+        <meta content="width=device-width, initial-scale=1" name="viewport" />
+        <meta
+          name="description"
+          content={
+            props.locale === "en"
+              ? `${errorTitle}` + `${errorMessage}`
+              : `${errorTitleFr}` + `${errorMessageFr}`
+          }
+        />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <meta name="robots" content="noindex, nofollow" />
+ 
+        {/* DCMI Meta Tags */}
+        <meta
+          property="dcterms:title"
+          lang="en"
+          content="The web site has reported an error"
+        />
+        <meta
+          property="dcterms:title"
+          lang="fr"
+          content="Le site Web a signalé une erreur"
+        />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2"
+        />
+        <meta property="dcterms:creator" lang="en" content="Service Canada" />
+        <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+ 
+        <meta
+          property="dcterms:subject"
+          lang="en"
+          title="gccore"
+          content="GV Government and Politics;Government services"
+        />
+        <meta
+          property="dcterms:subject"
+          lang="fr"
+          title="gccore"
+          content="GV Gouvernement et vie politique;Services gouvernementaux"
+        />
+        <meta
+          property="dcterms:description"
+          lang="en"
+          content="Error message stating that the site has reported an error."
+        />
+        <meta
+          property="dcterms:description"
+          lang="fr"
+          content="Message d'erreur indiquant que le site a signalé une erreur."
+        />
+        <meta
+          name="dcterms.creator"
+          content={
+            props.locale === "en"
+              ? "Employment and Social Development Canada"
+              : "Emploi et Développement social Canada"
+          }
+        />
+ 
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-06-28" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta property="dcterms:modified" content="2021-12-16" />
+        <meta property="dcterms:issued" content="2021-06-28" />
+        <meta
+          name="dcterms.subject"
+          content="GV Government and Politics;Government services"
+        />
+        <meta name="dcterms.language" title="ISO639-2" content="eng" />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta
+          property="og:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/error"
+          }
+        />
+        <meta
+          property="og:title"
+          content="The web site has reported an error | Le site Web a signalé une erreur"
+        />
+        <meta
+          property="og:description"
+          content={
+            props.locale === "en"
+              ? `${errorTitle}` + `${errorMessage}`
+              : `${errorTitleFr}` + `${errorMessageFr}`
+          }
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={
+            "https://alpha.service.canada.ca/" + `${props.locale}` + "/error"
+          }
+        />
+        <meta
+          property="twitter:title"
+          content="The web site has reported an error | Le site Web a signalé une erreur"
+        />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content={
+            props.locale === "en"
+              ? `${errorTitle}` + `${errorMessage}`
+              : `${errorTitleFr}` + `${errorMessageFr}`
+          }
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+      </Head>
+      <main>
+        <div className="min-h-screen relative">
+          <section className="layout-container pb-44">
+            <div className="pt-6">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageEn._path
+                    : pageData.scGcImages[0].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageAltTextEn
+                    : pageData.scGcImages[0].scImageAltTextFr
+                }
+                width={575}
+                height={59}
+              />
+            </div>
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              {/* Left Side (English section) */}
+              <div>
+                <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 lg:h-500px mb-8 lg:mb-0">
+                  <h1
+                    className="font-bold font-display mb-4"
+                    data-testid="heading-en"
+                  >
+                    {errorTitle}
+                  </h1>
+                  {statusCode ? (
+                    <p
+                      className="font-bold font-body mb-8"
+                      data-testid="statuscode-en"
+                    >
+                      {pageData.scContentEn.json[2].content[0].value}{" "}
+                      {statusCode}
+                    </p>
+                  ) : (
+                    ""
+                  )}
+                  <p
+                    className="font-body text-p font-bold mb-4 leading-30px"
+                    data-testid="errormessage-en"
+                  >
+                    {errorMessage}
+                  </p>
+                  {errorMessage === "Wrong URL" ? (
+                    <>
+                      {/* Wrong URL English Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentEn.json[3].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentEn.json[4].content[0].value}
+                          </p>
+                        </li>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentEn.json[5].content[0].value}
+                            <a
+                              href={`mailto:${process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL}`}
+                              className="text-custom-blue-link underline"
+                            >
+                              {
+                                process.env
+                                  .NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL
+                              }
+                            </a>{" "}
+                            {pageData.scContentEn.json[6].content[0].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentEn.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : errorMessage === "Expired URL" ? (
+                    <>
+                      {/* Expired URL English Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentEn.json[8].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            <Link
+                              href="/en/home"
+                              locale={false}
+                              className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                            >
+                              {pageData.scContentEn.json[9].content[0].value}
+                            </Link>{" "}
+                            {pageData.scContentEn.json[9].content[1].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentEn.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : (
+                    /* General Error English Section */
+                    <div className="flex">
+                      <span className="error404-link" />
+                      <p className="font-body text-sm leading-30px">
+                        {pageData.scContentEn.json[10].content[0].value}
+                        <Link
+                          href="/en/home"
+                          locale={false}
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentEn.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+              </div>
+              <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+                <span className="relative lightbulb">
+                  <img
+                    src={`https://www.canada.ca${
+                      props.locale === "en"
+                        ? pageData.scImageList[0].scImageEn._path
+                        : pageData.scImageList[0].scImageFr._path
+                    }`}
+                    alt=""
+                  />
+                </span>
+              </div>
+              {/* Right Side (French section) */}
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 lg:h-500px mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <h1
+                    className="font-bold font-display mb-4"
+                    data-testid="heading-fr"
+                  >
+                    {errorTitleFr}
+                  </h1>
+                  {statusCode ? (
+                    <p
+                      className="font-bold font-body mb-8"
+                      data-testid="statuscode-fr"
+                    >
+                      {pageData.scContentFr.json[2].content[0].value}{" "}
+                      {statusCode}
+                    </p>
+                  ) : (
+                    ""
+                  )}
+                  <p
+                    className="font-body text-p font-bold mb-4 leading-30px"
+                    data-testid="errormessage-fr"
+                  >
+                    {errorMessageFr}
+                  </p>
+                  {errorMessageFr === "URL erronée" ? (
+                    <>
+                      {/* Wrong URL French Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentFr.json[3].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentFr.json[4].content[0].value}
+                          </p>
+                        </li>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            {pageData.scContentFr.json[5].content[0].value}
+                            <a
+                              href={`mailto:${process.env.NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL}`}
+                              className="text-custom-blue-link underline"
+                            >
+                              {
+                                process.env
+                                  .NEXT_PUBLIC_NOTIFY_REPORT_A_PROBLEM_EMAIL
+                              }
+                            </a>{" "}
+                            {pageData.scContentFr.json[6].content[0].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentFr.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : errorMessageFr === "URL expirée" ? (
+                    <>
+                      {/* Expired URL French Section */}
+                      <p className="font-body text-sm leading-30px mb-5">
+                        {pageData.scContentFr.json[8].content[0].value}
+                      </p>
+                      <ul>
+                        <li className="flex">
+                          <span className="error404-link" />
+                          <p className="font-body text-sm leading-30px">
+                            <Link
+                              href="/fr/accueil"
+                              locale={false}
+                              className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                            >
+                              {pageData.scContentFr.json[9].content[0].value}
+                            </Link>
+                            {pageData.scContentFr.json[9].content[1].value}
+                          </p>
+                        </li>
+                      </ul>
+                      <p className="font-body text-sm leading-30px mt-5">
+                        {pageData.scContentFr.json[7].content[0].value}
+                      </p>
+                    </>
+                  ) : (
+                    /* General Error French Section */
+                    <div className="flex">
+                      <span className="error404-link" />
+                      <p className="font-body text-sm leading-30px">
+                        {pageData.scContentFr.json[10].content[0].value}
+                        <Link
+                          href="/fr/accueil"
+                          locale={false}
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentFr.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+              </div>
+            </div>
+          </section>
+        </div>
+        <footer className="h-100px w-screen bg-footer-background-color absolute bottom-0">
+          <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+            <ActionButton
+              id="errorTopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text="Top of page / Haut de la page"
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="relative footer-logo">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageEn._path
+                    : pageData.scGcImages[1].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[1].scImageAltTextEn
+                    : pageData.scGcImages[1].scImageAltTextFr
+                }
+              />
+            </span>
+          </div>
+        </footer>
+      </main>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("customErrorQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.sclabsErrorpageV1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/home.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/home.js.html new file mode 100644 index 0000000000..051eef5c9f --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/home.js.html @@ -0,0 +1,1432 @@ + + + + + + Code coverage report for pages/home.js + + + + + + + + + +
+
+

All files / pages home.js

+
+ +
+ 75% + Statements + 33/44 +
+ + +
+ 45.12% + Branches + 37/82 +
+ + +
+ 55.55% + Functions + 5/9 +
+ + +
+ 76.19% + Lines + 32/42 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +4501x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +2x +1x +1x +1x +  +1x +1x +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +1x +1x +7x +  +  +  +1x +  +  +  +1x +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../components/organisms/Layout";
+import { useEffect } from "react";
+import Card from "../components/molecules/Card";
+import aemServiceInstance from "../services/aemServiceInstance";
+import { ContextualAlert } from "../components/molecules/ContextualAlert";
+import { Link as LinkWrapper } from "../components/atoms/Link";
+import Link from "next/link";
+import { ExploreUpdates } from "../components/organisms/ExploreUpdates";
+import FragmentRender from "../components/fragment_renderer/FragmentRender";
+import { sortUpdatesByDate } from "../lib/utils/sortUpdatesByDate";
+import { SurveyCTA } from "../components/molecules/SurveyCTA";
+ 
+export default function Home(props) {
+  const pageData = props.pageData?.item;
+  const experimentsData = props.experimentsData;
+  const dictionary = props.dictionary;
+  const updatesData = props.updatesData;
+ 
+  const currentProjects = experimentsData.filter((project) => {
+    return (
+      project.scLabProjectStatus[0] ===
+      "gc:custom/decd-endc/project-status/current"
+    );
+  });
+ 
+  const sortedProjects = (objects) => {
+    // Order to sort the projects
+    const sortOrder = [
+      "Transforming EI with Indigenous peoples",
+      "Benefits Finder",
+      "Making it easier to get benefits",
+      "Digital Standards Playbook",
+      "New dashboard for My Service Canada Account",
+      "Old Age Security Benefits Estimator",
+      "Benefits Navigator",
+    ];
+    // Create a lookup for efficient ordering
+    const titleOrder = {};
+    for (let i = 0; i < sortOrder.length; i++) {
+      titleOrder[sortOrder[i]] = i;
+    }
+ 
+    // Sort the objects based on the lookup
+    const sorted = objects.sort((a, b) => {
+      return titleOrder[a.scTitleEn] - titleOrder[b.scTitleEn];
+    });
+    // Trim to first 3 projects
+    return sorted.slice(0, 3);
+  };
+ 
+  const displayCurrentProjects = sortedProjects(currentProjects).map(
+    (project) => (
+      <li key={project.scId} className="list-none ml-0">
+        <Card
+          showImage
+          showTag={
+            project.scLabsNewExpiryDate &&
+            Date.now() <= new Date(project.scLabsNewExpiryDate)
+          }
+          tagLabel={
+            props.locale === "en" ? "New update" : "Nouvelle mise à jour"
+          }
+          tag="new_update"
+          imgSrc={
+            props.locale === "en"
+              ? project.scSocialMediaImageEn._publishUrl
+              : project.scSocialMediaImageFr._publishUrl
+          }
+          imgAlt={
+            props.locale === "en"
+              ? project.scSocialMediaImageAltTextEn
+              : project.scSocialMediaImageAltTextFr
+          }
+          imgHeight={
+            project.scSocialMediaImageEn.height
+              ? project.scSocialMediaImageEn.height
+              : ""
+          }
+          imgWidth={
+            project.scSocialMediaImageEn.width
+              ? project.scSocialMediaImageEn.width
+              : ""
+          }
+          title={props.locale === "en" ? project.scTitleEn : project.scTitleFr}
+          href={
+            props.locale === "en" ? project.scPageNameEn : project.scPageNameFr
+          }
+          description={
+            props.locale === "en"
+              ? project.scDescriptionEn.json[0].content[0].value
+              : project.scDescriptionFr.json[0].content[0].value
+          }
+        />
+      </li>
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-03-18" />
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+        <div id="pageMainTitle" className="mt-24">
+          <FragmentRender
+            locale={props.locale}
+            fragments={[pageData.scFragments[0]]}
+          />
+        </div>
+        <div className="layout-container">
+          <SurveyCTA
+            heading={
+              props.locale === "en"
+                ? pageData.scFragments[1].scTitleEn
+                : pageData.scFragments[1].scTitleFr
+            }
+            description={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[0].content[0].value
+                : pageData.scFragments[1].scContentFr.json[0].content[0].value
+            }
+            buttonId={
+              props.locale === "en"
+                ? pageData.scFragments[1].scLabsButton[0].scId
+                : pageData.scFragments[1].scLabsButton[0].scIdFr
+            }
+            buttonLabel={
+              props.locale === "en"
+                ? pageData.scFragments[1].scLabsButton[0].scTitleEn
+                : pageData.scFragments[1].scLabsButton[0].scTitleFr
+            }
+            buttonLink={
+              props.locale === "en"
+                ? pageData.scFragments[1].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[1].scLabsButton[0].scDestinationURLFr
+            }
+          />
+          <h2>
+            {props.locale === "en"
+              ? pageData.scFragments[2].scContentEn.json[0].content[0].value
+              : pageData.scFragments[2].scContentFr.json[0].content[0]
+                  .value}{" "}
+          </h2>
+          <div className="mb-8">
+            <ContextualAlert
+              id="info-alert"
+              type="info"
+              alert_icon_alt_text="info icon"
+              alert_icon_id="info icon"
+              message_heading={
+                props.locale === "en"
+                  ? pageData.scFragments[3].scTitleEn
+                  : pageData.scFragments[3].scTitleFr
+              }
+              message_body={
+                props.locale === "en" ? (
+                  <>
+                    {
+                      pageData.scFragments[3].scContentEn.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[3].scContentEn.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[3].scContentEn.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[3].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                ) : (
+                  <>
+                    {
+                      pageData.scFragments[3].scContentFr.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[3].scContentFr.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[3].scContentFr.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[3].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                )
+              }
+            />
+          </div>
+          <div className="mb-4">
+            <ul className="grid lg:grid-cols-3 gap-6 list-none ml-0">
+              {displayCurrentProjects}
+            </ul>
+            <div className="mt-6 flex justify-end">
+              <LinkWrapper
+                component={Link}
+                id="projectsLink"
+                href={
+                  props.locale === "en"
+                    ? pageData.scFragments[4].scContentEn.json[0].content[0]
+                        .data.href
+                    : pageData.scFragments[4].scContentFr.json[0].content[0]
+                        .data.href
+                }
+                lang={props.locale}
+                text={
+                  props.locale === "en"
+                    ? pageData.scFragments[4].scContentEn.json[0].content[0]
+                        .value
+                    : pageData.scFragments[4].scContentFr.json[0].content[0]
+                        .value
+                }
+              />
+            </div>
+          </div>
+        </div>
+        <section>
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData).slice(0, 3)}
+            dictionary={dictionary}
+            heading={
+              props.locale === "en"
+                ? pageData.scFragments[5].scContentEn.json[0].content[0].value
+                : pageData.scFragments[5].scContentFr.json[0].content[0].value
+            }
+            linkLabel={
+              props.locale === "en"
+                ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+                : pageData.scFragments[6].scContentFr.json[0].content[0].value
+            }
+            href={
+              props.locale === "en"
+                ? pageData.scFragments[6].scContentEn.json[0].content[0].data
+                    .href
+                : pageData.scFragments[6].scContentFr.json[0].content[0].data
+                    .href
+            }
+          />
+        </section>
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data: pageData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclHomeV2`
+  ).then((res) => res.json());
+ 
+  const { data: experimentsData } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  const { data: updatesData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclAllUpdatesV1`
+  ).then((res) => res.json());
+ 
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      experimentsData: experimentsData.sclabsPageV1List.items,
+      updatesData: updatesData.sclabsPageV1List.items,
+      dictionary: dictionary.dictionaryV1List.items,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/index.html new file mode 100644 index 0000000000..ced32ff6f6 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/index.html @@ -0,0 +1,251 @@ + + + + + + Code coverage report for pages + + + + + + + + + +
+
+

All files pages

+
+ +
+ 34.01% + Statements + 100/294 +
+ + +
+ 25.78% + Branches + 74/287 +
+ + +
+ 22.8% + Functions + 13/57 +
+ + +
+ 35.61% + Lines + 99/278 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
404.js +
+
76.92%20/2640.9%9/2266.66%2/380%20/25
500.js +
+
76.92%20/2640%8/2066.66%2/380%20/25
_app.js +
+
0%0/13100%0/00%0/10%0/12
cdcp-apply.js +
+
0%0/170%0/110%0/30%0/16
error.js +
+
0%0/250%0/430%0/30%0/24
home.js +
+
75%33/4445.12%37/8255.55%5/976.19%32/42
index.js +
+
75%12/1611.11%1/966.66%2/385.71%12/14
notsupported.js +
+
62.5%15/2444.18%19/4340%2/565.21%15/23
projects.js +
+
0%0/470%0/290%0/130%0/44
updates.js +
+
0%0/560%0/280%0/140%0/53
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/index.js.html new file mode 100644 index 0000000000..5cb00ea741 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/index.js.html @@ -0,0 +1,673 @@ + + + + + + Code coverage report for pages/index.js + + + + + + + + + +
+
+

All files / pages index.js

+
+ +
+ 75% + Statements + 12/16 +
+ + +
+ 11.11% + Branches + 1/9 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 85.71% + Lines + 12/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +1971x +1x +1x +1x +1x +1x +  +1x +1x +  +1x +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { ActionButton } from "../components/atoms/ActionButton";
+import Link from "next/link";
+import { useEffect } from "react";
+ 
+export default function Index(props) {
+  const { t } = useTranslation("common");
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+    document.documentElement.lang = "en";
+  }, []);
+ 
+  return (
+    <>
+      <div className="splash-bg splash-image bg-splash-img-mobile xs:bg-splash-img bg-no-repeat fixed left-0 top-0 w-full h-full -z-1" />
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title>Service Canada Labs | Laboratoires de Service Canada</title>
+        <meta
+          name="description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+        <meta content="width=device-width, initial-scale=1" name="viewport" />
+        <meta name="robots" content="noindex, follow" />
+        {/* DCMI Meta Tags */}
+        <meta
+          property="dcterms:title"
+          lang="en"
+          content="Service Canada Labs"
+        />
+        <meta
+          property="dcterms:title"
+          lang="fr"
+          content="Laboratoires de Service Canada"
+        />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2"
+        />
+        <meta property="dcterms:creator" lang="en" content="Service Canada" />
+        <meta property="dcterms:creator" lang="fr" content="Service Canada" />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta name="dcterms.issued" content="2021-05-06" />
+        <meta property="dcterms:modified" content="2021-12-16" />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-05-06" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta
+          property="dcterms:description"
+          lang="en"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta
+          property="dcterms:description"
+          lang="fr"
+          content="Explorez les laboratoires de Service Canda en français ou en anglais."
+        />
+        <meta
+          property="dcterms:subject"
+          lang="en"
+          title="gccore"
+          content="GV Government and Politics;Government services"
+        />
+        <meta
+          property="dcterms:subject"
+          lang="fr"
+          title="gccore"
+          content="GV Gouvernement et vie politique;Services gouvernementaux"
+        />
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta property="og:url" content={"https://alpha.service.canada.ca/"} />
+        <meta
+          property="og:title"
+          content="Service Canada Labs | Laboratoires de Service Canada"
+        />
+        <meta
+          property="og:description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={"https://alpha.service.canada.ca/"}
+        />
+        <meta
+          property="twitter:title"
+          content="Service Canada Labs | Laboratoires de Service Canada"
+        />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content="Explore the Service Canada Labs in English or French."
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+        // Site ownership verification to use URL Inspection Tool
+        <meta
+          name="google-site-verification"
+          content="cJ7yrE6jUDOrRFwPgxPanWrgaRqI9l0qG0F9rqFhZxM"
+        />
+      </Head>
+      <main>
+        <div className="h-full flex justify-center">
+          <div className="splash-cta fixed flex flex-col sm:justify-center sm:items-center">
+            <div className="z-10 bg-white h-auto min-w-300px w-300px xl:w-500px">
+              <h1 className="sr-only">alpha.service.canada.ca</h1>
+              <div className="p-4">
+                <img
+                  src={"/sig-blk-en.svg"}
+                  alt={"Government of Canada / Gouvernement du Canada"}
+                  width="300"
+                  height="35"
+                />
+              </div>
+              <div className="flex w-max container mx-auto py-6 font-display">
+                <h2
+                  className="text-p text-right xl:text-h4 mr-6 w-32 xl:w-40"
+                  lang="en"
+                >
+                  Service Canada Labs
+                </h2>
+                <h2 className="text-p xl:text-h4 w-32 xl:w-40" lang="fr">
+                  Laboratoires de Service Canada
+                </h2>
+              </div>
+              <div className="flex w-max container pb-6 mx-auto font-display">
+                <ActionButton
+                  id="english-button"
+                  style="primary"
+                  text="English"
+                  lang="en"
+                  custom="justify-center w-7.5rem xl:w-138px mr-6 text-lg"
+                  href="/en/home"
+                />
+                <ActionButton
+                  id="french-button"
+                  style="primary"
+                  text="Français"
+                  href="/fr/accueil"
+                  lang="fr"
+                  custom="justify-center w-7.5rem xl:w-138px text-lg"
+                />
+              </div>
+            </div>
+            <div className="relative py-7 bg-splash-page-bottom text-p h-auto min-w-300px w-300px flex justify-between container p-6 xl:w-500px xl:items-center">
+              <div className="w-28 text-base xl:text-p xl:w-max font-body">
+                <Link
+                  href="https://www.canada.ca/en/transparency/terms.html"
+                  className="inline-block w-28 xl:w-max mr-0 hover:text-canada-footer-hover-font-blue text-canada-footer-font splash-link"
+                >
+                  Terms & conditions
+                </Link>
+                <Link
+                  href="https://www.canada.ca/fr/transparence/avis.html"
+                  className="inline-block hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                  lang="fr"
+                >
+                  Avis
+                </Link>
+              </div>
+              <img
+                src="/wmms-blk.svg"
+                alt="Symbol of the Government of Canada / Symbole du gouvernement du Canada"
+                width="150"
+                height="25"
+              />
+            </div>
+          </div>
+        </div>
+      </main>
+    </>
+  );
+}
+ 
+export const getServerSideProps = async ({ locale }) => ({
+  props: {
+    locale: locale ?? "en",
+    adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+    ...(await serverSideTranslations(locale, ["common"])),
+  },
+});
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/notsupported.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/notsupported.js.html new file mode 100644 index 0000000000..4012651f59 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/notsupported.js.html @@ -0,0 +1,1537 @@ + + + + + + Code coverage report for pages/notsupported.js + + + + + + + + + +
+
+

All files / pages notsupported.js

+
+ +
+ 62.5% + Statements + 15/24 +
+ + +
+ 44.18% + Branches + 19/43 +
+ + +
+ 40% + Functions + 2/5 +
+ + +
+ 65.21% + Lines + 15/23 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +4851x +1x +1x +1x +1x +1x +  +1x +  +1x +1x +1x +1x +1x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { ActionButton } from "../components/atoms/ActionButton";
+import { useEffect } from "react";
+import { CopyToClipboard } from "../components/molecules/CopyToClipboard";
+import { useState } from "react";
+import aemServiceInstance from "../services/aemServiceInstance";
+ 
+export default function notSupported(props) {
+  const { t } = useTranslation("common");
+  const [enCopied, setEnCopied] = useState(false);
+  const [frCopied, setFrCopied] = useState(false);
+  const [pageData] = useState(props.pageData.item);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  function onClickEn() {
+    setEnCopied(true);
+    setFrCopied(false);
+  }
+ 
+  function onClickFr() {
+    setFrCopied(true);
+    setEnCopied(false);
+  }
+  return (
+    <>
+      <Head>
+        {/* Primary HTML Meta Tags */}
+        <title data-gc-analytics-error="notSupported">
+          {pageData.scContentEn.json[0].content[0].value} |{" "}
+          {pageData.scContentFr.json[0].content[0].value}
+        </title>
+        <meta
+          name="description"
+          content="Error message stating that the site will not work with Internet Explorer."
+        />
+        <meta name="author" content="Service Canada" />
+        <link rel="icon" href="/favicon.ico" />
+        <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+        <meta content="width=device-width, initial-scale=1" name="viewport" />
+ 
+        {/* DCMI Meta Tags */}
+        <meta
+          property="dcterms:title"
+          lang="en"
+          content="Sorry, this site will not work with Internet Explorer"
+        />
+        <meta
+          property="dcterms:title"
+          lang="fr"
+          content="Désolé, ce site ne fonctionne pas avec Internet Explorer"
+        />
+        <meta
+          property="dcterms:description"
+          lang="en"
+          content="Error message stating that the site will not work with Internet Explorer."
+        />
+        <meta
+          property="dcterms:description"
+          lang="fr"
+          content="Message d'erreur indiquant que le site ne fonctionne pas avec Internet Explorer."
+        />
+        <meta
+          name="dcterms.language"
+          content={props.locale === "en" ? "eng" : "fra"}
+          title="ISO639-2"
+        />
+        <meta
+          name="dcterms.creator"
+          content={
+            props.locale === "en"
+              ? "Employment and Social Development Canada"
+              : "Emploi et Développement social Canada"
+          }
+        />
+        <meta name="dcterms.accessRights" content="2" />
+        <meta name="dcterms.service" content="ESDC-EDSC_SCLabs-LaboratoireSC" />
+        <meta
+          property="dcterms:subject"
+          lang="fr"
+          title="gccore"
+          content="GV Gouvernement et vie politique;Services gouvernementaux"
+        />
+        <meta
+          property="dcterms:subject"
+          lang="en"
+          title="gccore"
+          content="GV Government and Politics;Government services"
+        />
+        <meta name="dcterms.issued" title="W3CDTF" content="2021-11-25" />
+        <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+        <meta property="dcterms:issued" content="2021-11-25" />
+        <meta property="dcterms:modified" content="2021-12-16" />
+ 
+        {/* Open Graph / Facebook */}
+        <meta property="og:type" content="website" />
+        <meta property="og:locale" content={props.locale} />
+        <meta
+          property="og:url"
+          content={
+            "https://alpha.service.canada.ca/" +
+            `${props.locale}` +
+            "/notsupported"
+          }
+        />
+        <meta
+          property="og:title"
+          content={`Browser not supported — ${t("siteTitle")}`}
+        />
+        <meta
+          property="og:description"
+          content="Sorry, this site will not work with Internet Explorer | Désolé, ce
+            site ne fonctionne pas avec Internet Explorer"
+        />
+        <meta property="og:image" content={`${t("metaImage")}`} />
+        <meta property="og:image:alt" content={`${t("siteTitle")}`} />
+ 
+        {/* Twitter */}
+        <meta property="twitter:card" content="summary_large_image" />
+        <meta
+          property="twitter:url"
+          content={
+            "https://alpha.service.canada.ca/" +
+            `${props.locale}` +
+            "/notsupported"
+          }
+        />
+        <meta
+          property="twitter:title"
+          content={`Browser not supported — ${t("siteTitle")}`}
+        />
+        <meta name="twitter:creator" content="Service Canada" />
+        <meta
+          property="twitter:description"
+          content="Sorry, this site will not work with Internet Explorer | Désolé, ce
+            site ne fonctionne pas avec Internet Explorer"
+        />
+        <meta property="twitter:image" content={`${t("metaImage")}`} />
+        <meta property="twitter:image:alt" content={`${t("siteTitle")}`} />
+      </Head>
+      <main>
+        <div className="min-h-screen relative">
+          <section className="xs:px-0 lg:mx-auto lg:px-6 container">
+            <div className="pt-6">
+              <img
+                src={`https://www.canada.ca${
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageEn._path
+                    : pageData.scGcImages[0].scImageFr._path
+                }`}
+                alt={
+                  props.locale === "en"
+                    ? pageData.scGcImages[0].scImageAltTextEn
+                    : pageData.scGcImages[0].scImageAltTextFr
+                }
+                width={575}
+                height={59}
+              />
+            </div>
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              <div>
+                <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0">
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentEn.json[0].content[0].value}
+                  </h1>
+                  <p className="font-body text-sm mb-4 leading-normal">
+                    {pageData.scContentEn.json[1].content[0].value}
+                  </p>
+                </div>
+              </div>
+              <div className="flex items-center justify-center circle-background my-8 lg:mt-0 lightbulb-bg">
+                <span className="relative lightbulb">
+                  <img
+                    src={`https://www.canada.ca${
+                      props.locale === "en"
+                        ? pageData.scImageList[0].scImageEn._path
+                        : pageData.scImageList[0].scImageFr._path
+                    }`}
+                    alt=""
+                  />
+                </span>
+              </div>
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 xl:h-400px lg:h-500px mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <h1 className="font-bold font-display mb-4">
+                    {pageData.scContentFr.json[0].content[0].value}
+                  </h1>
+                  <p className="font-body text-sm mb-4 leading-normal">
+                    {pageData.scContentFr.json[1].content[0].value}
+                  </p>
+                </div>
+              </div>
+            </div>
+          </section>
+          <section className="-mt-0 lg:-mt-36 sm:-mt-4 pb-5">
+            <div className="flex items-center justify-center">
+              <figure className="mx-4">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[1].scImageEn._path
+                      : pageData.scImageList[1].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scImageList[1].scImageAltTextEn
+                      : pageData.scImageList[1].scImageAltTextFr
+                  }
+                  width="98"
+                  height="98"
+                />
+                <figcaption className="flex items-center justify-center">
+                  Chrome
+                </figcaption>
+              </figure>
+              <figure className="mx-4">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[2].scImageEn._path
+                      : pageData.scImageList[2].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scImageList[2].scImageAltTextEn
+                      : pageData.scImageList[2].scImageAltTextFr
+                  }
+                  width="98"
+                  height="98"
+                />
+                <figcaption className="flex items-center justify-center">
+                  Safari
+                </figcaption>
+              </figure>
+              <figure className="mx-4">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[3].scImageEn._path
+                      : pageData.scImageList[3].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scImageList[3].scImageAltTextEn
+                      : pageData.scImageList[3].scImageAltTextFr
+                  }
+                  width="94"
+                  height="94"
+                />
+                <figcaption className="pt-1.5 flex items-center justify-center">
+                  Edge
+                </figcaption>
+              </figure>
+              <figure className="mx-4">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scImageList[4].scImageEn._path
+                      : pageData.scImageList[4].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scImageList[4].scImageAltTextEn
+                      : pageData.scImageList[4].scImageAltTextFr
+                  }
+                  width="98"
+                  height="98"
+                />
+                <figcaption className="flex items-center justify-center">
+                  Firefox
+                </figcaption>
+              </figure>
+            </div>
+          </section>
+          <section className="xs:px-0 lg:mx-auto lg:px-6 container pb-44">
+            <div className="flex flex-col lg:flex-row justify-between items-center lg:items-start mt-8">
+              <div className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 mb-8 lg:mb-0">
+                <p className="font-body text-sm mb-4 leading-normal">
+                  {pageData.scCopyToClipboardLabelEn}
+                </p>
+                <CopyToClipboard
+                  buttonId="enClipboardButton"
+                  buttonText={enCopied ? "Copied!" : "Copy link"}
+                  buttonStyle={enCopied ? "ieButtonCopied" : "ieButton"}
+                  value="http://alpha.service.canada.ca/home"
+                  onClick={onClickEn}
+                  id="enClipboard"
+                  name="clipboard_en"
+                  textFieldStyle="ieTextField"
+                  aria_label="Copy the link below and paste in that browser."
+                />
+                <p className="font-body text-sm pt-6 leading-normal">
+                  {pageData.scBrowserDownloadLinksEn.json[0].content[0].value}
+                </p>
+                <ul className="underline pt-4 font-body text-sm ieLinksList">
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksEn.json[1].content[0]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksEn.json[1].content[0]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksEn.json[1].content[1]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksEn.json[1].content[1]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksEn.json[1].content[2]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksEn.json[1].content[2]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                  <li className="browser-item">
+                    <a
+                      href={
+                        pageData.scBrowserDownloadLinksEn.json[1].content[3]
+                          .content[0].data.href
+                      }
+                    >
+                      {
+                        pageData.scBrowserDownloadLinksEn.json[1].content[3]
+                          .content[0].value
+                      }
+                    </a>
+                  </li>
+                </ul>
+              </div>
+              <div>
+                <div
+                  className="relative h-auto xl:w-96 xxl:w-400px lg:w-72 mb-8 lg:mb-0"
+                  lang="fr"
+                >
+                  <p className="font-body text-sm mb-4 leading-normal">
+                    {pageData.scCopyToClipboardLabelFr}
+                  </p>
+                  <CopyToClipboard
+                    buttonText={frCopied ? "Copié!" : "Copier lien"}
+                    buttonId="frClipboardButton"
+                    buttonStyle={frCopied ? "ieButtonCopied" : "ieButton"}
+                    value="http://alpha.service.canada.ca/fr/home"
+                    onClick={onClickFr}
+                    id="frClipboard"
+                    name="clipboard_fr"
+                    textFieldStyle="ieTextField"
+                    aria_label="Vous n'avez qu'à copier le lien ci-dessous et le coller dans ce navigateur."
+                  />
+                  <p className="font-body text-sm pt-6 leading-normal">
+                    {pageData.scBrowserDownloadLinksFr.json[0].content[0].value}
+                  </p>
+                  <ul className="underline pt-4 font-body text-sm ieLinksList">
+                    <li className="browser-item">
+                      <a
+                        href={
+                          pageData.scBrowserDownloadLinksFr.json[1].content[0]
+                            .content[0].data.href
+                        }
+                      >
+                        {
+                          pageData.scBrowserDownloadLinksFr.json[1].content[0]
+                            .content[0].value
+                        }
+                      </a>
+                    </li>
+                    <li className="browser-item">
+                      <a
+                        href={
+                          pageData.scBrowserDownloadLinksFr.json[1].content[1]
+                            .content[0].data.href
+                        }
+                      >
+                        {
+                          pageData.scBrowserDownloadLinksFr.json[1].content[1]
+                            .content[0].value
+                        }
+                      </a>
+                    </li>
+                    <li className="browser-item">
+                      <a
+                        href={
+                          pageData.scBrowserDownloadLinksFr.json[1].content[2]
+                            .content[0].data.href
+                        }
+                      >
+                        {
+                          pageData.scBrowserDownloadLinksFr.json[1].content[2]
+                            .content[0].value
+                        }
+                      </a>
+                    </li>
+                    <li className="browser-item">
+                      <a
+                        href={
+                          pageData.scBrowserDownloadLinksFr.json[1].content[3]
+                            .content[0].data.href
+                        }
+                      >
+                        {
+                          pageData.scBrowserDownloadLinksFr.json[1].content[3]
+                            .content[0].value
+                        }
+                      </a>
+                    </li>
+                  </ul>
+                </div>
+              </div>
+            </div>
+          </section>
+          <footer className="h-100px w-screen bgGray absolute bottom-0">
+            <div className="layout-container flex justify-between lg:flex-row-reverse pt-4 lg:pt-0 lg:mt-8">
+              <ActionButton
+                id="404TopOfPageButton"
+                href="#"
+                custom="text-left w-32 flex flex-col lg:hidden"
+                text="Top of page / Haut de la page"
+                icon="icon-up-caret"
+                iconEnd
+              />
+              <span className="relative footer-logo">
+                <img
+                  src={`https://www.canada.ca${
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageEn._path
+                      : pageData.scGcImages[1].scImageFr._path
+                  }`}
+                  alt={
+                    props.locale === "en"
+                      ? pageData.scGcImages[1].scImageAltTextEn
+                      : pageData.scGcImages[1].scImageAltTextFr
+                  }
+                />
+              </span>
+            </div>
+          </footer>
+        </div>
+      </main>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("notsupportedQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.sclabsErrorpageV1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects.js.html new file mode 100644 index 0000000000..b91ac71f52 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects.js.html @@ -0,0 +1,634 @@ + + + + + + Code coverage report for pages/projects.js + + + + + + + + + +
+
+

All files / pages projects.js

+
+ +
+ 0% + Statements + 0/47 +
+ + +
+ 0% + Branches + 0/29 +
+ + +
+ 0% + Functions + 0/13 +
+ + +
+ 0% + Lines + 0/44 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import Card from "../components/molecules/Card";
+import PageHead from "../components/fragment_renderer/PageHead";
+import { MultiSelectField } from "../components/atoms/MultiSelectField";
+import { createBreadcrumbs } from "../lib/utils/createBreadcrumbs";
+import { getDictionaryTerm } from "../lib/utils/getDictionaryTerm";
+import { useTranslation } from "next-i18next";
+ 
+export default function ProjectsPage(props) {
+  const pageData = props.pageData?.item;
+  const projectsData = props.projectsData;
+  const dictionary = props.dictionary;
+  const [selectedOptions, setSelectedOptions] = useState([]);
+  const { t } = useTranslation("common");
+ 
+  const getSelectOptionsFromProjectsData = (arr) => {
+    const seen = new Set();
+    let reducedArray = arr.reduce((acc, obj) => {
+      Iif (!seen.has(obj.scLabProjectStatus[0])) {
+        seen.add(obj.scLabProjectStatus[0]);
+        acc.push(obj);
+      }
+      return acc;
+    }, []);
+    let optionsArray = reducedArray.map((option) => {
+      return {
+        id: option.scLabProjectStatus[0],
+        label: t(option.scLabProjectStatus[0].substring(3)),
+        value: option.scLabProjectStatus[0],
+      };
+    });
+    return optionsArray;
+  };
+ 
+  const filterProjects = (projects, selectedOptions) => {
+    Iif (selectedOptions.length === 0) return projects;
+    const selectedIds = new Set(selectedOptions.map((option) => option.id));
+    return projects.filter((project) =>
+      selectedIds.has(project.scLabProjectStatus[0])
+    );
+  };
+ 
+  const projectsCards = filterProjects(projectsData, selectedOptions).map(
+    (project) => {
+      return (
+        <li
+          key={project.scId}
+          className="grid col-span-12 md:col-span-6 xl:col-span-4 list-none"
+        >
+          <Card
+            title={
+              props.locale === "en" ? project.scTitleEn : project.scTitleFr
+            }
+            href={
+              props.locale === "en"
+                ? project.scPageNameEn
+                : project.scPageNameFr
+            }
+            showImage
+            imgSrc={
+              props.locale === "en"
+                ? project.scSocialMediaImageEn._publishUrl
+                : project.scSocialMediaImageFr._publishUrl
+            }
+            imgAlt={
+              props.locale === "en"
+                ? project.scSocialMediaImageAltTextEn
+                : project.scSocialMediaImageAltTextFr
+            }
+            imgHeight={
+              project.scSocialMediaImageEn.height
+                ? project.scSocialMediaImageEn.height
+                : ""
+            }
+            imgWidth={
+              project.scSocialMediaImageEn.width
+                ? project.scSocialMediaImageEn.width
+                : ""
+            }
+            description={
+              props.locale === "en"
+                ? project.scDescriptionEn.json[0].content[0].value
+                : project.scDescriptionFr.json[0].content[0].value
+            }
+          />
+        </li>
+      );
+    }
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead locale={props.locale} pageData={pageData} />
+        <div
+          id="pageMainTitle"
+          className="flex flex-col justify-center content-center mt-16 h-[182px] bg-multi-blue-blue70 bg-no-repeat sm:bg-right-bottom"
+          style={{
+            backgroundImage: `url(/981A606F-CEBD-4DD1-BDF5-FC7DD4834CCA_4_5005_c.jpeg)`,
+            backgroundSize: "cover",
+          }}
+        >
+          <div className="layout-container text-white">
+            <h1 className="m-0">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value}
+            </h1>
+            <p>
+              {" "}
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value}
+            </p>
+          </div>
+        </div>
+        <div className="layout-container">
+          <div className="my-12 max-w-[350px]">
+            <MultiSelectField
+              label={getDictionaryTerm(
+                dictionary,
+                "DICTIONARY-FILTER-BY-PROJECT-STATUS",
+                props.locale
+              )}
+              placeholder={getDictionaryTerm(dictionary, "ALL", props.locale)}
+              boldLabel
+              options={getSelectOptionsFromProjectsData(projectsData)}
+              onChange={setSelectedOptions}
+              selectedOptions={selectedOptions}
+            />
+          </div>
+          <ul className="grid grid-cols-12 gap-6 mt-20">{projectsCards}</ul>
+        </div>
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // Get page data
+  const { data: pageData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclProjectsV2`
+  ).then((res) => res.json());
+  // Get projects data
+  const { data: projectsData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclAllProjectsV1`
+  ).then((res) => res.json());
+  // get dictionary
+  const { data: dictionary } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclDictionaryV1`
+  ).then((res) => res.json());
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      projectsData: projectsData.sclabsPageV1List.items,
+      dictionary: dictionary.dictionaryV1List.items,
+      ...(await serverSideTranslations(locale, ["common", "multiSelect"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/[id].js.html new file mode 100644 index 0000000000..34954945b7 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/[id].js.html @@ -0,0 +1,484 @@ + + + + + + Code coverage report for pages/projects/benefits-finder/[id].js + + + + + + + + + +
+
+

All files / pages/projects/benefits-finder [id].js

+
+ +
+ 0% + Statements + 0/33 +
+ + +
+ 0% + Branches + 0/20 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/31 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PageHead from "../../../components/fragment_renderer/PageHead";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+ 
+export default function BenefitFinderArticles({ key, ...props }) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <div id="postedOnUpdatedOnSection" className="grid grid-cols-12">
+              <p
+                className={`col-span-6 sm:col-span-4 ${
+                  props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+                } font-bold`}
+              >
+                {getDictionaryTerm(dictionary, "POSTED-ON", props.locale)}
+              </p>
+              <p className="col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-0">
+                {pageData.scDateModifiedOverwrite}
+              </p>
+              <p
+                className={`row-start-2 col-span-6 sm:col-span-4 mt-0 ${
+                  props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+                } font-bold`}
+              >
+                {getDictionaryTerm(dictionary, "LAST-UPDATED", props.locale)}
+              </p>
+              <p className="row-start-2 col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-auto">
+                {pageData.scDateModifiedOverwrite}
+              </p>
+            </div>
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+            />
+          </div>
+        </section>
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsFinderArticlesQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = data.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.html new file mode 100644 index 0000000000..578d11da6c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/benefits-finder + + + + + + + + + +
+
+

All files pages/projects/benefits-finder

+
+ +
+ 40.29% + Statements + 27/67 +
+ + +
+ 38.14% + Branches + 37/97 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 42.18% + Lines + 27/64 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/330%0/200%0/60%0/31
index.js +
+
79.41%27/3448.05%37/7775%3/481.81%27/33
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.js.html new file mode 100644 index 0000000000..28a5b28d85 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-finder/index.js.html @@ -0,0 +1,1276 @@ + + + + + + Code coverage report for pages/projects/benefits-finder/index.js + + + + + + + + + +
+
+

All files / pages/projects/benefits-finder index.js

+
+ +
+ 79.41% + Statements + 27/34 +
+ + +
+ 48.05% + Branches + 37/77 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 81.81% + Lines + 27/33 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +3981x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +1x +  +  +21x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { shuffle } from "../../../lib/utils/shuffle";
+ 
+export default function BenefitsFinderOverview(props) {
+  const [pageData] = useState(props.pageData.item);
+  const updatesData = sortUpdatesByDate(props.updatesData);
+  const allProjects = props.allProjects;
+  const [filteredDictionary] = useState(
+    props.dictionary.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scFragments[2].scImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[2].scImageAltTextEn
+                : pageData.scFragments[2].scImageAltTextFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scFragments[2].scImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[2].scImageAltTextEn
+                : pageData.scFragments[2].scImageAltTextFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill max-w-350px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageEn._publishUrl
+                          : pageData.scFragments[2].scImageFr._publishUrl
+                      }
+                      alt={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageAltTextEn
+                          : pageData.scFragments[2].scImageAltTextFr
+                      }
+                      width={pageData.scFragments[2].scImageEn.width}
+                      height={pageData.scFragments[2].scImageEn.height}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[0].content[0]
+                          .value + " "
+                      : pageData.scFragments[0].scContentFr.json[0].content[0]
+                          .value + " "
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scTitleEn
+                      : pageData.scFragments[1].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scLabProjectSummaryEn.json[0].content[0].value
+                      : pageData.scLabProjectSummaryFr.json[0].content[0].value
+                  }
+                />
+              </div>
+              <strong className="font-body text-p pt-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[5].content[0]
+                      .value}
+              </strong>
+            </div>
+          </section>
+        </div>
+ 
+        <FragmentRender
+          fragments={pageData.scFragments.slice(3)}
+          locale={props.locale}
+        />
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "benefitsFinderQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html new file mode 100644 index 0000000000..1c8051d812 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html @@ -0,0 +1,658 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/[id].js + + + + + + + + + +
+
+

All files / pages/projects/benefits-navigator [id].js

+
+ +
+ 0% + Statements + 0/40 +
+ + +
+ 0% + Branches + 0/26 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/38 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PageHead from "../../../components/fragment_renderer/PageHead";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { UpdateInfo } from "../../../components/atoms/UpdateInfo";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function BenefitNavigatorArticles({ key, ...props }) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary);
+  const projectData = props.projectData;
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <UpdateInfo
+              projectLabel={`${getDictionaryTerm(
+                dictionary,
+                "PROJECT",
+                props.locale
+              )}`}
+              projectName={
+                props.locale === "en"
+                  ? pageData.scLabProject.scTermEn
+                  : pageData.scLabProject.scTermFr
+              }
+              projectHref={
+                props.locale === "en"
+                  ? pageData.scLabProject.scDestinationURLEn
+                  : pageData.scLabProject.scDestinationURLFr
+              }
+              postedOnLabel={`${getDictionaryTerm(
+                dictionary,
+                "POSTED-ON",
+                props.locale
+              )}`}
+              postedOn={pageData.scDateModifiedOverwrite}
+              lastUpdatedLabel={`${getDictionaryTerm(
+                dictionary,
+                "LAST-UPDATED",
+                props.locale
+              )}`}
+              lastUpdated={pageData.scDateModifiedOverwrite}
+            />
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+              excludeH1={true}
+            />
+          </div>
+        </section>
+        {filterItems(props.updatesData, pageData.scId).length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={filterItems(props.updatesData, pageData.scId)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${projectData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${projectData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scLabProject.scTermEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scLabProject.scTermFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          projects={[projectData]}
+          heading={getDictionaryTerm(
+            dictionary,
+            "EXPLORE-THE-PROJECT",
+            props.locale
+          )}
+          locale={props.locale}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data: updatesData } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  const { data: projectData } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = updatesData.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      updatesData: updatesData.sclabsPageV1List.items,
+      projectData: projectData.sclabsPageV1ByPath.item,
+      dictionary: dictionary.dictionaryV1List.items,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html new file mode 100644 index 0000000000..690d4904da --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator + + + + + + + + + +
+
+

All files pages/projects/benefits-navigator

+
+ +
+ 37.33% + Statements + 28/75 +
+ + +
+ 40.39% + Branches + 61/151 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 38.88% + Lines + 28/72 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/400%0/260%0/60%0/38
index.js +
+
80%28/3548.8%61/12575%3/482.35%28/34
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html new file mode 100644 index 0000000000..649bf233a1 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html @@ -0,0 +1,2071 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/index.js + + + + + + + + + +
+
+

All files / pages/projects/benefits-navigator index.js

+
+ +
+ 80% + Statements + 28/35 +
+ + +
+ 48.8% + Branches + 61/125 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 82.35% + Lines + 28/34 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +6631x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +1x +  +  +21x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import { Collapse } from "../../../components/molecules/Collapse";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import TextRender from "../../../components/text_node_renderer/TextRender";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { ContextualAlert } from "../../../components/molecules/ContextualAlert";
+ 
+export default function BenefitsNavigatorOverview(props) {
+  const [allProjects] = useState(props.allProjects);
+  const [pageData] = useState(props.pageData.item);
+  const updatesData = props.updatesData;
+  const [filteredDictionary] = useState(
+    props.dictionary.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scFragments[1].scImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scImageAltTextEn
+                : pageData.scFragments[1].scImageAltTextFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scFragments[1].scImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[1].scImageAltTextEn
+                : pageData.scFragments[1].scImageAltTextFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container mb-24">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+                <div className="mb-10 max-w-[76ch]">
+                  <ContextualAlert
+                    id="alert"
+                    type="warning"
+                    message_heading={
+                      props.locale === "en"
+                        ? pageData.scFragments[0].scTitleEn
+                        : pageData.scFragments[0].scTitleFr
+                    }
+                    message_body={
+                      <TextRender
+                        data={
+                          props.locale === "en"
+                            ? pageData.scFragments[0].scContentEn.json
+                            : pageData.scFragments[0].scContentFr.json
+                        }
+                      />
+                    }
+                    alert_icon_alt_text=""
+                    alert_icon_id="project-status-cta-icon"
+                  />
+                </div>
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill max-w-350px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageEn._publishUrl
+                          : pageData.scFragments[1].scImageFr._publishUrl
+                      }
+                      alt={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageAltTextEn
+                          : pageData.scFragments[1].scImageAltTextFr
+                      }
+                      width={pageData.scFragments[1].scImageEn.width}
+                      height={pageData.scFragments[1].scImageEn.height}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[3].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value + " "
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value + " "
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[3].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[3].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <div className="grid grid-cols-12">
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[4].scContentEn.json[0].content[0].value
+                : pageData.scFragments[4].scContentFr.json[0].content[0].value}
+            </h2>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[4].scContentEn.json[1].content[0].value
+                : pageData.scFragments[4].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[4].scContentEn.json[2].content[0].value
+                : pageData.scFragments[4].scContentFr.json[2].content[0].value}
+            </p>
+            <ul className="list-disc col-span-12 xl:col-span-8 text-mobilebody lg:text-p">
+              <li className="ml-10">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[3].content[0]
+                      .content[0].value
+                  : pageData.scFragments[4].scContentFr.json[3].content[0]
+                      .content[0].value}
+              </li>
+              <li className="ml-10">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[3].content[1]
+                      .content[0].value
+                  : pageData.scFragments[4].scContentFr.json[3].content[1]
+                      .content[0].value}
+              </li>
+              <li className="ml-10">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[3].content[2]
+                      .content[0].value
+                  : pageData.scFragments[4].scContentFr.json[3].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[4].scContentEn.json[4].content[0].value
+                : pageData.scFragments[4].scContentFr.json[4].content[0].value}
+            </p>
+            <div id="feature-section" className="col-span-12">
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[0].content[0]
+                      .value}
+              </h2>
+              <div id="feature-1" className="grid grid-cols-12 gap-x-6 mb-9">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <Image
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    height={
+                      pageData.scFragments[5].scFragments[0].scFragments[0]
+                        .scImageEn.height
+                    }
+                    width={
+                      pageData.scFragments[5].scFragments[0].scFragments[0]
+                        .scImageEn.width
+                    }
+                    sizes="100vw"
+                    quality={100}
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="py-4 pl-4 border-l-4 border-multi-blue-blue60f">
+                    <TextRender
+                      data={
+                        props.locale === "en"
+                          ? pageData.scFragments[5].scFragments[0].scContentEn
+                              .json
+                          : pageData.scFragments[5].scFragments[0].scContentFr
+                              .json
+                      }
+                    />
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-1"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[5].scFragments[0].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={
+                      <TextRender
+                        data={
+                          props.locale === "en"
+                            ? pageData.scFragments[5].scFragments[0]
+                                .scFragments[0].scLongDescEn.json
+                            : pageData.scFragments[5].scFragments[0]
+                                .scFragments[0].scLongDescFr.json
+                        }
+                      />
+                    }
+                  />
+                </div>
+              </div>
+              <div id="feature-2" className="grid grid-cols-12 gap-x-6 mb-9">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <Image
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    height={
+                      pageData.scFragments[5].scFragments[1].scFragments[0]
+                        .scImageEn.height
+                    }
+                    width={
+                      pageData.scFragments[5].scFragments[1].scFragments[0]
+                        .scImageEn.width
+                    }
+                    sizes="100vw"
+                    quality={100}
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="p-4 border-l-4 border-multi-blue-blue60f">
+                    <TextRender
+                      data={
+                        props.locale === "en"
+                          ? pageData.scFragments[5].scFragments[1].scContentEn
+                              .json
+                          : pageData.scFragments[5].scFragments[1].scContentFr
+                              .json
+                      }
+                    />
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-2"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[5].scFragments[1].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={
+                      <TextRender
+                        data={
+                          props.locale === "en"
+                            ? pageData.scFragments[5].scFragments[1]
+                                .scFragments[0].scLongDescEn.json
+                            : pageData.scFragments[5].scFragments[1]
+                                .scFragments[0].scLongDescFr.json
+                        }
+                      />
+                    }
+                  />
+                </div>
+              </div>
+              <div id="feature-3" className="grid grid-cols-12 gap-x-6">
+                <div className="mb-6 object-fill col-span-12 row-start-1 xl:row-start-1 xl:col-span-8">
+                  <Image
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    height={
+                      pageData.scFragments[5].scFragments[2].scFragments[0]
+                        .scImageEn.height
+                    }
+                    width={
+                      pageData.scFragments[5].scFragments[2].scFragments[0]
+                        .scImageEn.width
+                    }
+                    sizes="100vw"
+                    quality={100}
+                  />
+                </div>
+                <div className="col-span-12 row-start-3 xl:col-span-4 xl:row-start-1">
+                  <div className="p-4 border-l-4 border-multi-blue-blue60f">
+                    <TextRender
+                      data={
+                        props.locale === "en"
+                          ? pageData.scFragments[5].scFragments[2].scContentEn
+                              .json
+                          : pageData.scFragments[5].scFragments[2].scContentFr
+                              .json
+                      }
+                    />
+                  </div>
+                </div>
+                <div className="mb-6 col-span-12 xl:col-span-8 row-start-2 xl:row-start-2">
+                  <Collapse
+                    id="image-text-collapse-3"
+                    title={
+                      props.locale === "en"
+                        ? pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[5].scFragments[2].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={
+                      <TextRender
+                        data={
+                          props.locale === "en"
+                            ? pageData.scFragments[5].scFragments[2]
+                                .scFragments[0].scLongDescEn.json
+                            : pageData.scFragments[5].scFragments[2]
+                                .scFragments[0].scLongDescFr.json
+                        }
+                      />
+                    }
+                  />
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/[id].js.html new file mode 100644 index 0000000000..7e728a0f12 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/[id].js.html @@ -0,0 +1,658 @@ + + + + + + Code coverage report for pages/projects/dashboard/[id].js + + + + + + + + + +
+
+

All files / pages/projects/dashboard [id].js

+
+ +
+ 0% + Statements + 0/40 +
+ + +
+ 0% + Branches + 0/26 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/38 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PageHead from "../../../components/fragment_renderer/PageHead";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { UpdateInfo } from "../../../components/atoms/UpdateInfo";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function MscaDashboardArticles({ key, ...props }) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+  const [projectData] = useState(props.projectData);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <UpdateInfo
+              projectLabel={`${getDictionaryTerm(
+                dictionary,
+                "PROJECT",
+                props.locale
+              )}`}
+              projectName={
+                props.locale === "en"
+                  ? pageData.scLabProject.scTermEn
+                  : pageData.scLabProject.scTermFr
+              }
+              projectHref={
+                props.locale === "en"
+                  ? pageData.scLabProject.scDestinationURLEn
+                  : pageData.scLabProject.scDestinationURLFr
+              }
+              postedOnLabel={`${getDictionaryTerm(
+                dictionary,
+                "POSTED-ON",
+                props.locale
+              )}`}
+              postedOn={pageData.scDateModifiedOverwrite}
+              lastUpdatedLabel={`${getDictionaryTerm(
+                dictionary,
+                "LAST-UPDATED",
+                props.locale
+              )}`}
+              lastUpdated={pageData.scDateModifiedOverwrite}
+            />
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+              excludeH1={true}
+            />
+          </div>
+        </section>
+        {filterItems(props.updatesData, pageData.scId).length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={filterItems(props.updatesData, pageData.scId)}
+            dictionary={dictionary}
+            heading={
+              props.locale === "en"
+                ? `${projectData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${projectData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scLabProject.scTermEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scLabProject.scTermFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          projects={[projectData]}
+          heading={getDictionaryTerm(
+            dictionary,
+            "EXPLORE-THE-PROJECT",
+            props.locale
+          )}
+          locale={props.locale}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "getMSCADashboardArticles"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data: updatesData } = await aemServiceInstance.getFragment(
+    "getMSCADashboardArticles"
+  );
+  const { data: projectData } = await aemServiceInstance.getFragment(
+    "getMSCADashBoardPage"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = updatesData.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      updatesData: updatesData.sclabsPageV1List.items,
+      projectData: projectData.sclabsPageV1ByPath.item,
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.html new file mode 100644 index 0000000000..a2a6fbd081 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/dashboard + + + + + + + + + +
+
+

All files pages/projects/dashboard

+
+ +
+ 34.72% + Statements + 25/72 +
+ + +
+ 36.89% + Branches + 38/103 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 36.23% + Lines + 25/69 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/400%0/260%0/60%0/38
index.js +
+
78.12%25/3249.35%38/7775%3/480.64%25/31
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html new file mode 100644 index 0000000000..be9b12676c --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/dashboard/index.js.html @@ -0,0 +1,1252 @@ + + + + + + Code coverage report for pages/projects/dashboard/index.js + + + + + + + + + +
+
+

All files / pages/projects/dashboard index.js

+
+ +
+ 78.12% + Statements + 25/32 +
+ + +
+ 49.35% + Branches + 38/77 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 80.64% + Lines + 25/31 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +3901x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +  +1x +  +21x +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { useState } from "react";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+ 
+export default function MscaDashboard(props) {
+  const pageData = props.pageData?.item;
+  const [allProjects] = useState(props.allProjects);
+ 
+  const filteredDictionary = props.dictionary?.filter(
+    (item) =>
+      item.scId === "STARTED" ||
+      item.scId === "ENDED" ||
+      item.scId === "PROJECT-STAGE" ||
+      item.scId === "SUMMARY"
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          {/* <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          /> */}
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          {/* <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          /> */}
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container mb-20">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageEn._publishUrl
+                          : pageData.scFragments[1].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[1].scImageAltTextEn
+                          : pageData.scFragments[1].scImageAltTextFr) ?? ""
+                      }
+                      height={pageData.scFragments[1].scImageEn.height}
+                      width={pageData.scFragments[1].scImageEn.width}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+        </div>
+        <section id="pageMainContent">
+          <FragmentRender
+            locale={props.locale}
+            fragments={pageData.scFragments.slice(3)}
+            excludeH1={true}
+          />
+        </section>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(props.updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "getMSCADashBoardPage"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/[id].js.html new file mode 100644 index 0000000000..e5093e56c1 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/[id].js.html @@ -0,0 +1,667 @@ + + + + + + Code coverage report for pages/projects/digital-standards-playbook/[id].js + + + + + + + + + +
+
+

All files / pages/projects/digital-standards-playbook [id].js

+
+ +
+ 0% + Statements + 0/42 +
+ + +
+ 0% + Branches + 0/26 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/40 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import PageHead from "../../../components/fragment_renderer/PageHead";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { UpdateInfo } from "../../../components/atoms/UpdateInfo";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function DigitalStandardsArticles({ key, ...props }) {
+  const { t } = useTranslation("common");
+  const [pageData] = useState(props.pageData);
+  const [projectData] = useState(props.projectData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <UpdateInfo
+              projectLabel={`${getDictionaryTerm(
+                dictionary,
+                "PROJECT",
+                props.locale
+              )}`}
+              projectName={
+                props.locale === "en"
+                  ? pageData.scLabProject.scTermEn
+                  : pageData.scLabProject.scTermFr
+              }
+              projectHref={
+                props.locale === "en"
+                  ? pageData.scLabProject.scDestinationURLEn
+                  : pageData.scLabProject.scDestinationURLFr
+              }
+              postedOnLabel={`${getDictionaryTerm(
+                dictionary,
+                "POSTED-ON",
+                props.locale
+              )}`}
+              postedOn={pageData.scDateModifiedOverwrite}
+              lastUpdatedLabel={`${getDictionaryTerm(
+                dictionary,
+                "LAST-UPDATED",
+                props.locale
+              )}`}
+              lastUpdated={pageData.scDateModifiedOverwrite}
+            />
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+              excludeH1={true}
+            />
+          </div>
+        </section>
+        {filterItems(props.updatesData, pageData.scId).length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={filterItems(props.updatesData, pageData.scId)}
+            dictionary={dictionary}
+            heading={
+              props.locale === "en"
+                ? `${projectData.scTitleEn} ${getDictionaryTerm(
+                    dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${projectData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scLabProject.scTermEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scLabProject.scTermFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          projects={[projectData]}
+          heading={getDictionaryTerm(
+            dictionary,
+            "EXPLORE-THE-PROJECT",
+            props.locale
+          )}
+          locale={props.locale}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "getDigitalStandardsPlaybookArticles"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  // Remove characters preceding the page name itself i.e. change "/en/projects/oas-benefits-estimator/what-we-learned" to "what-we-learned"
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data: updatesData } = await aemServiceInstance.getFragment(
+    "getDigitalStandardsPlaybookArticles"
+  );
+  const { data: projectData } = await aemServiceInstance.getFragment(
+    "getDigitalStandardsPlaybookPage"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = updatesData.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      updatesData: updatesData.sclabsPageV1List.items,
+      projectData: projectData.sclabsPageV1ByPath.item,
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.html new file mode 100644 index 0000000000..15907f5cfc --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/digital-standards-playbook + + + + + + + + + +
+
+

All files pages/projects/digital-standards-playbook

+
+ +
+ 35.52% + Statements + 27/76 +
+ + +
+ 40.31% + Branches + 52/129 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 36.98% + Lines + 27/73 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/420%0/260%0/60%0/40
index.js +
+
79.41%27/3450.48%52/10375%3/481.81%27/33
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.js.html new file mode 100644 index 0000000000..7c59b69854 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/digital-standards-playbook/index.js.html @@ -0,0 +1,1489 @@ + + + + + + Code coverage report for pages/projects/digital-standards-playbook/index.js + + + + + + + + + +
+
+

All files / pages/projects/digital-standards-playbook index.js

+
+ +
+ 79.41% + Statements + 27/34 +
+ + +
+ 50.48% + Branches + 52/103 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 81.81% + Lines + 27/33 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +4691x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +  +1x +  +21x +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import { ActionButton } from "../../../components/atoms/ActionButton";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+ 
+export default function DigitalStandardsPlaybookPage(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [allProjects] = useState(props.allProjects);
+ 
+  const filteredDictionary = props.dictionary?.filter(
+    (item) =>
+      item.scId === "STARTED" ||
+      item.scId === "ENDED" ||
+      item.scId === "PROJECT-STAGE" ||
+      item.scId === "SUMMARY"
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite ?? "2023-11-24"}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container mb-24">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageEn._publishUrl
+                          : pageData.scFragments[2].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[2].scImageAltTextEn
+                          : pageData.scFragments[2].scImageAltTextFr) ?? ""
+                      }
+                      height={pageData.scFragments[2].scImageEn.height}
+                      width={pageData.scFragments[2].scImageEn.width}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <section id="pageMainContent">
+            <div className="grid grid-cols-12">
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[5].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[6].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[7].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[7].content[0]
+                      .value}
+              </p>
+ 
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[8].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[8].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[9].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[9].content[0]
+                      .value}
+              </p>
+ 
+              <ActionButton
+                id="take-survey"
+                style="primary"
+                custom="col-span-12 my-6"
+                href={
+                  props.locale === "en"
+                    ? pageData.scFragments[3].scDestinationURLEn
+                    : pageData.scFragments[3].scDestinationURLFr
+                }
+                text={
+                  props.locale === "en"
+                    ? pageData.scFragments[3].scTitleEn
+                    : pageData.scFragments[3].scTitleFr
+                }
+                ariaExpanded={props.ariaExpanded}
+              />
+ 
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[4].scContentFr.json[0].content[0]
+                      .value}
+                <a
+                  className="underline underline-offset-[6px]"
+                  href={
+                    props.locale === "en"
+                      ? pageData.scFragments[4].scContentEn.json[0].content[1]
+                          .data.href
+                      : pageData.scFragments[4].scContentFr.json[0].content[1]
+                          .data.href
+                  }
+                >
+                  {props.locale === "en"
+                    ? pageData.scFragments[4].scContentEn.json[0].content[1]
+                        .value
+                    : pageData.scFragments[4].scContentFr.json[0].content[1]
+                        .value}
+                </a>
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[0].content[2].value
+                  : pageData.scFragments[4].scContentFr.json[0].content[2]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[4].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[4].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+            </div>
+          </section>
+        </div>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "getDigitalStandardsPlaybookPage"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/[id].js.html new file mode 100644 index 0000000000..4e260ce9a1 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/[id].js.html @@ -0,0 +1,667 @@ + + + + + + Code coverage report for pages/projects/making-easier-get-benefits/[id].js + + + + + + + + + +
+
+

All files / pages/projects/making-easier-get-benefits [id].js

+
+ +
+ 0% + Statements + 0/42 +
+ + +
+ 0% + Branches + 0/26 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/40 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import PageHead from "../../../components/fragment_renderer/PageHead";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { UpdateInfo } from "../../../components/atoms/UpdateInfo";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function IntegratedChannelStrategyArticles({ key, ...props }) {
+  const { t } = useTranslation("common");
+  const [pageData] = useState(props.pageData);
+  const [projectData] = useState(props.projectData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <UpdateInfo
+              projectLabel={`${getDictionaryTerm(
+                dictionary,
+                "PROJECT",
+                props.locale
+              )}`}
+              projectName={
+                props.locale === "en"
+                  ? pageData.scLabProject.scTermEn
+                  : pageData.scLabProject.scTermFr
+              }
+              projectHref={
+                props.locale === "en"
+                  ? pageData.scLabProject.scDestinationURLEn
+                  : pageData.scLabProject.scDestinationURLFr
+              }
+              postedOnLabel={`${getDictionaryTerm(
+                dictionary,
+                "POSTED-ON",
+                props.locale
+              )}`}
+              postedOn={pageData.scDateModifiedOverwrite}
+              lastUpdatedLabel={`${getDictionaryTerm(
+                dictionary,
+                "LAST-UPDATED",
+                props.locale
+              )}`}
+              lastUpdated={pageData.scDateModifiedOverwrite}
+            />
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+              excludeH1={true}
+            />
+          </div>
+        </section>
+        {filterItems(props.updatesData, pageData.scId).length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={filterItems(props.updatesData, pageData.scId)}
+            dictionary={dictionary}
+            heading={
+              props.locale === "en"
+                ? `${projectData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${projectData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scLabProject.scTermEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scLabProject.scTermFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          projects={[projectData]}
+          heading={getDictionaryTerm(
+            dictionary,
+            "EXPLORE-THE-PROJECT",
+            props.locale
+          )}
+          locale={props.locale}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "integratedChannelStrategyArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  // Remove characters preceding the page name itself i.e. change "/en/projects/oas-benefits-estimator/what-we-learned" to "what-we-learned"
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data: updatesData } = await aemServiceInstance.getFragment(
+    "integratedChannelStrategyArticlesQuery"
+  );
+  const { data: projectData } = await aemServiceInstance.getFragment(
+    "integratedChannelStrategyQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = updatesData.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      updatesData: updatesData.sclabsPageV1List.items,
+      projectData: projectData.sclabsPageV1ByPath.item,
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.html new file mode 100644 index 0000000000..01bbded34a --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/making-easier-get-benefits + + + + + + + + + +
+
+

All files pages/projects/making-easier-get-benefits

+
+ +
+ 35.52% + Statements + 27/76 +
+ + +
+ 34.28% + Branches + 36/105 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 36.98% + Lines + 27/73 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/420%0/260%0/60%0/40
index.js +
+
79.41%27/3445.56%36/7975%3/481.81%27/33
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.js.html new file mode 100644 index 0000000000..d01e895a6e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/making-easier-get-benefits/index.js.html @@ -0,0 +1,1276 @@ + + + + + + Code coverage report for pages/projects/making-easier-get-benefits/index.js + + + + + + + + + +
+
+

All files / pages/projects/making-easier-get-benefits index.js

+
+ +
+ 79.41% + Statements + 27/34 +
+ + +
+ 45.56% + Branches + 36/79 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 81.81% + Lines + 27/33 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +3981x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +  +1x +  +  +21x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import TextRender from "../../../components/text_node_renderer/TextRender";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+ 
+export default function IntegratedChannelStrategyPage(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [allProjects] = useState(props.allProjects);
+ 
+  const [filteredDictionary] = useState(
+    props.dictionary.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container mb-24">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageEn._publishUrl
+                          : pageData.scFragments[2].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[2].scImageAltTextEn
+                          : pageData.scFragments[2].scImageAltTextFr) ?? ""
+                      }
+                      height={pageData.scFragments[2].scImageEn.height}
+                      width={pageData.scFragments[2].scImageEn.width}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <div id="pageMainContent" className="grid grid-cols-12">
+            <div className="col-span-12 lg:col-span-7 mt-[48px]">
+              <TextRender
+                data={
+                  props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json.slice(5)
+                    : pageData.scFragments[0].scContentFr.json.slice(5)
+                }
+                excludeH1={true}
+              />
+            </div>
+          </div>
+        </div>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "integratedChannelStrategyQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html new file mode 100644 index 0000000000..bad428dd2b --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html @@ -0,0 +1,667 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/[id].js + + + + + + + + + +
+
+

All files / pages/projects/oas-benefits-estimator [id].js

+
+ +
+ 0% + Statements + 0/42 +
+ + +
+ 0% + Branches + 0/26 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/40 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import PageHead from "../../../components/fragment_renderer/PageHead";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { UpdateInfo } from "../../../components/atoms/UpdateInfo";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function OASBenefitsEstimatorArticles({ key, ...props }) {
+  const { t } = useTranslation("common");
+  const [pageData] = useState(props.pageData);
+  const [projectData] = useState(props.projectData);
+  const [dictionary] = useState(props.dictionary);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <UpdateInfo
+              projectLabel={`${getDictionaryTerm(
+                dictionary,
+                "PROJECT",
+                props.locale
+              )}`}
+              projectName={
+                props.locale === "en"
+                  ? pageData.scLabProject.scTermEn
+                  : pageData.scLabProject.scTermFr
+              }
+              projectHref={
+                props.locale === "en"
+                  ? pageData.scLabProject.scDestinationURLEn
+                  : pageData.scLabProject.scDestinationURLFr
+              }
+              postedOnLabel={`${getDictionaryTerm(
+                dictionary,
+                "POSTED-ON",
+                props.locale
+              )}`}
+              postedOn={pageData.scDateModifiedOverwrite}
+              lastUpdatedLabel={`${getDictionaryTerm(
+                dictionary,
+                "LAST-UPDATED",
+                props.locale
+              )}`}
+              lastUpdated={pageData.scDateModifiedOverwrite}
+            />
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+              excludeH1={true}
+            />
+          </div>
+        </section>
+        {filterItems(props.updatesData, pageData.scId).length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={filterItems(props.updatesData, pageData.scId)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${projectData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${projectData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scLabProject.scTermEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scLabProject.scTermFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          projects={[projectData]}
+          heading={getDictionaryTerm(
+            dictionary,
+            "EXPLORE-THE-PROJECT",
+            props.locale
+          )}
+          locale={props.locale}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  // Remove characters preceding the page name itself i.e. change "/en/projects/oas-benefits-estimator/what-we-learned" to "what-we-learned"
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data: updatesData } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorArticlesQuery"
+  );
+  const { data: projectData } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = updatesData.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      updatesData: updatesData.sclabsPageV1List.items,
+      projectData: projectData.sclabsPageV1ByPath.item,
+      dictionary: dictionary.dictionaryV1List.items,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html new file mode 100644 index 0000000000..f750e87774 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator + + + + + + + + + +
+
+

All files pages/projects/oas-benefits-estimator

+
+ +
+ 34.66% + Statements + 26/75 +
+ + +
+ 38.21% + Branches + 47/123 +
+ + +
+ 30% + Functions + 3/10 +
+ + +
+ 36.11% + Lines + 26/72 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/420%0/260%0/60%0/40
index.js +
+
78.78%26/3348.45%47/9775%3/481.25%26/32
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html new file mode 100644 index 0000000000..7638c05c8e --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html @@ -0,0 +1,1432 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/index.js + + + + + + + + + +
+
+

All files / pages/projects/oas-benefits-estimator index.js

+
+ +
+ 78.78% + Statements + 26/33 +
+ + +
+ 48.45% + Branches + 47/97 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 81.25% + Lines + 26/32 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +4501x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +  +1x +1x +1x +1x +  +1x +  +  +21x +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components//atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+ 
+export default function OasBenefitsEstimator(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [allProjects] = useState(props.allProjects);
+ 
+  const [filteredDictionary] = useState(
+    props.dictionary.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scSocialMediaImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container mb-24">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill h-auto w-auto max-w-450px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[1].scImageEn._publishUrl
+                          : pageData.scFragments[1].scImageFr._publishUrl
+                      }
+                      alt={
+                        (props.locale === "en"
+                          ? pageData.scFragments[1].scImageAltTextEn
+                          : pageData.scFragments[1].scImageAltTextFr) ?? ""
+                      }
+                      height={pageData.scFragments[1].scImageEn.height}
+                      width={pageData.scFragments[1].scImageEn.width}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scTitleEn
+                      : pageData.scFragments[2].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[4].content[0]
+                          .value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+          <div className="grid grid-cols-12">
+            <h2 className="col-span-12 text-[20px]">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                : pageData.scFragments[0].scContentFr.json[5].content[0].value}
+            </h2>
+            <ActionButton
+              id="try-btn"
+              style="primary"
+              custom="col-span-12"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[4].scDestinationURLEn
+                  : pageData.scFragments[4].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[4].scTitleEn
+                  : pageData.scFragments[4].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+                : pageData.scFragments[0].scContentFr.json[6].content[0].value}
+            </h2>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[7].content[0].value
+                : pageData.scFragments[0].scContentFr.json[7].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[8].content[0].value
+                : pageData.scFragments[0].scContentFr.json[8].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[9].content[0].value
+                : pageData.scFragments[0].scContentFr.json[9].content[0].value}
+            </p>
+          </div>
+          <h2 className="text-[20px]">
+            {props.locale === "en"
+              ? pageData.scFragments[0].scContentEn.json[10].content[0].value
+              : pageData.scFragments[0].scContentFr.json[10].content[0].value}
+          </h2>
+          <div className="grid md:flex">
+            <ActionButton
+              id="feedback-btn-2"
+              style="secondary"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[5].scDestinationURLEn
+                  : pageData.scFragments[5].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[5].scTitleEn
+                  : pageData.scFragments[5].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+          </div>
+        </div>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List.items,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/[id].js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/[id].js.html new file mode 100644 index 0000000000..b473d36e80 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/[id].js.html @@ -0,0 +1,481 @@ + + + + + + Code coverage report for pages/projects/transforming-ei-indigenous-peoples/[id].js + + + + + + + + + +
+
+

All files / pages/projects/transforming-ei-indigenous-peoples [id].js

+
+ +
+ 0% + Statements + 0/32 +
+ + +
+ 0% + Branches + 0/20 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/30 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PageHead from "../../../components/fragment_renderer/PageHead";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import FragmentRender from "../../../components/fragment_renderer/FragmentRender";
+import { Heading } from "../../../components/molecules/Heading";
+ 
+export default function IndigenousEiArticles({ key, ...props }) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead pageData={pageData} locale={props.locale} />
+        <section className="mb-12">
+          <div className="layout-container">
+            <Heading
+              tabIndex="-1"
+              id="pageMainTitle"
+              title={
+                props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+              }
+            />
+            <div id="postedOnUpdatedOnSection" className="grid grid-cols-12">
+              <p
+                className={`col-span-6 sm:col-span-4 ${
+                  props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+                } font-bold`}
+              >
+                {getDictionaryTerm(dictionary, "POSTED-ON", props.locale)}
+              </p>
+              <p className="col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-0">
+                {pageData.scDateModifiedOverwrite}
+              </p>
+              <p
+                className={`row-start-2 col-span-6 sm:col-span-4 mt-0 ${
+                  props.locale === "en" ? "lg:col-span-2" : "lg:col-span-3"
+                } font-bold`}
+              >
+                {getDictionaryTerm(dictionary, "LAST-UPDATED", props.locale)}
+              </p>
+              <p className="row-start-2 col-span-6 col-start-7 sm:col-start-5 lg:col-span-2 md:col-start-5 mt-auto">
+                {pageData.scDateModifiedOverwrite}
+              </p>
+            </div>
+          </div>
+ 
+          {/* Main */}
+          <div id="mainContentSection">
+            <FragmentRender
+              fragments={props.pageData.scFragments}
+              locale={props.locale}
+            />
+          </div>
+        </section>
+      </Layout>
+    </>
+  );
+}
+ 
+export async function getStaticPaths() {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "indigenousEiArticlesQuery"
+  );
+  // Get paths for dynamic routes from the page name data
+  const paths = getAllUpdateIds(data.sclabsPageV1List.items);
+  paths.map((path) => (path.params.id = path.params.id.split("/").at(-1)));
+  return {
+    paths,
+    fallback: "blocking",
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "indigenousEiArticlesQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  const pages = data.sclabsPageV1List.items;
+  // Return page data that matches the current page being built
+  const pageData = pages.filter((page) => {
+    return (
+      (locale === "en" ? page.scPageNameEn : page.scPageNameFr)
+        .split("/")
+        .at(-1) === params.id
+    );
+  });
+ 
+  Iif (!pageData || !pageData.length) {
+    return {
+      notFound: true,
+    };
+  }
+ 
+  return {
+    props: {
+      key: params.id,
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.html new file mode 100644 index 0000000000..f5460063de --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for pages/projects/transforming-ei-indigenous-peoples + + + + + + + + + +
+
+

All files pages/projects/transforming-ei-indigenous-peoples

+
+ +
+ 0% + Statements + 0/65 +
+ + +
+ 0% + Branches + 0/97 +
+ + +
+ 0% + Functions + 0/10 +
+ + +
+ 0% + Lines + 0/62 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/320%0/200%0/60%0/30
index.js +
+
0%0/330%0/770%0/40%0/32
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.js.html new file mode 100644 index 0000000000..c0d5e35924 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/projects/transforming-ei-indigenous-peoples/index.js.html @@ -0,0 +1,1279 @@ + + + + + + Code coverage report for pages/projects/transforming-ei-indigenous-peoples/index.js + + + + + + + + + +
+
+

All files / pages/projects/transforming-ei-indigenous-peoples index.js

+
+ +
+ 0% + Statements + 0/33 +
+ + +
+ 0% + Branches + 0/77 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/32 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../../../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+import { Heading } from "../../../components/molecules/Heading";
+import Image from "next/image";
+import stageDictionary from "../../../lib/utils/stageDictionary";
+import { sortUpdatesByDate } from "../../../lib/utils/sortUpdatesByDate";
+import TextRender from "../../../components/text_node_renderer/TextRender";
+import { getDictionaryTerm } from "../../../lib/utils/getDictionaryTerm";
+import { shuffle } from "../../../lib/utils/shuffle";
+import { ExploreUpdates } from "../../../components/organisms/ExploreUpdates";
+import { filterItems } from "../../../lib/utils/filterItems";
+import { ExploreProjects } from "../../../components/organisms/ExploreProjects";
+ 
+export default function EiIndigenousOverview(props) {
+  const [pageData] = useState(props.pageData.item);
+  const updatesData = sortUpdatesByDate(props.updatesData);
+  const [allProjects] = useState(props.allProjects);
+ 
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <Head>
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? `${pageData.scTitleEn} - Service Canada Labs`
+              : `${pageData.scTitleFr} - Laboratoires de Service Canada`}
+          </title>
+          <meta
+            name="description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta name="author" content="Service Canada" />
+          <link rel="icon" href="/favicon.ico" />
+          <link
+            rel="canonical"
+            href={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
+          <meta
+            name="keywords"
+            content={
+              props.locale === "en"
+                ? pageData.scKeywordsEn
+                : pageData.scKeywordsFr
+            }
+          />
+ 
+          {/* DCMI Meta Tags */}
+          <meta
+            name="dcterms.title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            name="dcterms.language"
+            content={props.locale === "en" ? "eng" : "fra"}
+            title="ISO639-2/T"
+          />
+          <meta
+            name="dcterms.creator"
+            content={
+              props.locale === "en"
+                ? "Employment and Social Development Canada"
+                : "Emploi et Développement social Canada"
+            }
+          />
+          <meta name="dcterms.accessRights" content="2" />
+          <meta
+            name="dcterms.service"
+            content="ESDC-EDSC_SCLabs-LaboratoireSC"
+          />
+          <meta name="dcterms.issued" title="W3CDTF" content="2021-07-20" />
+ 
+          <meta name="dcterms.modified" title="W3CDTF" content="2021-12-16" />
+          <meta
+            name="dcterms.description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            name="dcterms.subject"
+            title="gccore"
+            content={pageData.scSubject}
+          />
+          <meta name="dcterms.spatial" content="Canada" />
+ 
+          {/* Open Graph / Facebook */}
+          <meta property="og:type" content="website" />
+          <meta property="og:locale" content={props.locale} />
+          <meta
+            property="og:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="og:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta
+            property="og:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="og:image"
+            content={pageData.scFragments[2].scImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[2].scImageAltTextEn
+                : pageData.scFragments[2].scImageAltTextFr
+            }
+          />
+ 
+          {/* Twitter */}
+          <meta property="twitter:card" content="summary_large_image" />
+          <meta
+            property="twitter:url"
+            content={
+              "https://alpha.service.canada.ca" +
+              `${
+                props.locale === "en"
+                  ? pageData.scPageNameEn
+                  : pageData.scPageNameFr
+              }`
+            }
+          />
+          <meta
+            property="twitter:title"
+            content={
+              props.locale === "en" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <meta name="twitter:creator" content="Service Canada" />
+          <meta
+            property="twitter:description"
+            content={
+              props.locale === "en"
+                ? pageData.scDescriptionEn.json[0].content[0].value
+                : pageData.scDescriptionFr.json[0].content[0].value
+            }
+          />
+          <meta
+            property="twitter:image"
+            content={pageData.scFragments[2].scImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[2].scImageAltTextEn
+                : pageData.scFragments[2].scImageAltTextFr
+            }
+          />
+        </Head>
+ 
+        <div className="layout-container">
+          <section aria-labelledby="pageMainTitle">
+            <div className="flex flex-col break-words lg:grid lg:grid-cols-2">
+              <div className="col-span-2">
+                <Heading
+                  tabIndex="-1"
+                  id="pageMainTitle"
+                  title={
+                    props.locale === "en"
+                      ? pageData.scTitleEn
+                      : pageData.scTitleFr
+                  }
+                />
+              </div>
+              <div className="hidden lg:grid row-span-2 row-start-2 col-start-2 p-0 mx-4">
+                <div className="flex justify-center">
+                  <div className="object-fill max-w-350px">
+                    <Image
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageEn._publishUrl
+                          : pageData.scFragments[2].scImageFr._publishUrl
+                      }
+                      alt={
+                        props.locale === "en"
+                          ? pageData.scFragments[2].scImageAltTextEn
+                          : pageData.scFragments[2].scImageAltTextFr
+                      }
+                      width={pageData.scFragments[2].scImageEn.width}
+                      height={pageData.scFragments[2].scImageEn.height}
+                      priority
+                      sizes="33vw"
+                      quality={100}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <div className="row-start-3">
+                <ProjectInfo
+                  locale={props.locale}
+                  termStarted={
+                    props.locale === "en"
+                      ? filteredDictionary[2].scTermEn
+                      : filteredDictionary[2].scTermFr
+                  }
+                  termStage={
+                    props.locale === "en"
+                      ? filteredDictionary[1].scTermEn
+                      : filteredDictionary[1].scTermFr
+                  }
+                  termSummary={
+                    props.locale === "en"
+                      ? filteredDictionary[3].scTermEn
+                      : filteredDictionary[3].scTermFr
+                  }
+                  dateStarted={
+                    pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  }
+                  term={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[0].content[0]
+                          .value + " "
+                      : pageData.scFragments[0].scContentFr.json[0].content[0]
+                          .value + " "
+                  }
+                  definition={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scContentEn.json[0].content[1]
+                          .value
+                      : pageData.scFragments[1].scContentFr.json[0].content[1]
+                          .value
+                  }
+                  information={
+                    props.locale === "en"
+                      ? pageData.scFragments[1].scTitleEn
+                      : pageData.scFragments[1].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scLabProjectSummaryEn.json[0].content[0].value
+                      : pageData.scLabProjectSummaryFr.json[0].content[0].value
+                  }
+                />
+              </div>
+            </div>
+          </section>
+        </div>
+ 
+        <div className="layout-container mt-[48px] mb-24 grid grid-cols-12">
+          <div className="col-span-12 lg:col-span-7">
+            <TextRender
+              data={
+                props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json.slice(5)
+                  : pageData.scFragments[0].scContentFr.json.slice(5)
+              }
+            />
+          </div>
+        </div>
+        {props.updatesData.length !== 0 ? (
+          <ExploreUpdates
+            locale={props.locale}
+            updatesData={sortUpdatesByDate(updatesData)}
+            dictionary={props.dictionary}
+            heading={
+              props.locale === "en"
+                ? `${pageData.scTitleEn} ${getDictionaryTerm(
+                    props.dictionary.items,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )}`
+                : `${getDictionaryTerm(
+                    props.dictionary.items,
+                    "PROJECT-UPDATES",
+                    props.locale
+                  )} ${pageData.scTitleFr}`
+            }
+            linkLabel={`${getDictionaryTerm(
+              props.dictionary.items,
+              "DICTIONARY-SEE-ALL-UPDATES-PROJECT",
+              props.locale
+            )}`}
+            href={
+              props.locale === "en"
+                ? `/en/updates?project=${pageData.scTitleEn}`
+                : `/fr/mises-a-jour?projet=${pageData.scTitleFr}`
+            }
+          />
+        ) : null}
+        <ExploreProjects
+          heading={getDictionaryTerm(
+            props.dictionary.items,
+            "EXPLORE-OTHER-PROJECTS",
+            props.locale
+          )}
+          locale={props.locale}
+          projects={filterItems(allProjects, pageData.scId).slice(0, 3)}
+        />
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "indigenousEiQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+  // get all projects data
+  const { data: allProjects } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: pageData.sclabsPageV1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List,
+      allProjects: shuffle(allProjects.sclabsPageV1List.items),
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/pages/updates.js.html b/refs/pull/1117/merge/coverage/lcov-report/pages/updates.js.html new file mode 100644 index 0000000000..06b2ca11d7 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/pages/updates.js.html @@ -0,0 +1,652 @@ + + + + + + Code coverage report for pages/updates.js + + + + + + + + + +
+
+

All files / pages updates.js

+
+ +
+ 0% + Statements + 0/56 +
+ + +
+ 0% + Branches + 0/28 +
+ + +
+ 0% + Functions + 0/14 +
+ + +
+ 0% + Lines + 0/53 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { Layout } from "../components/organisms/Layout";
+import { useEffect, useState } from "react";
+import Card from "../components/molecules/Card";
+import { sortUpdatesByDate } from "../lib/utils/sortUpdatesByDate";
+import PageHead from "../components/fragment_renderer/PageHead";
+import { MultiSelectField } from "../components/atoms/MultiSelectField";
+import { createBreadcrumbs } from "../lib/utils/createBreadcrumbs";
+import { getDictionaryTerm } from "../lib/utils/getDictionaryTerm";
+import { useRouter } from "next/router";
+ 
+export default function UpdatesPage(props) {
+  const router = useRouter();
+  const pageData = props.pageData?.item;
+  const updatesData = props.updatesData;
+  const dictionary = props.dictionary;
+  const [selectedOptions, setSelectedOptions] = useState([]);
+ 
+  const getSelectOptionsFromUpdateData = (arr) => {
+    const seen = new Set();
+    let reducedArray = arr.reduce((acc, obj) => {
+      Iif (!seen.has(obj.scLabProject.scId)) {
+        seen.add(obj.scLabProject.scId);
+        acc.push(obj);
+      }
+      return acc;
+    }, []);
+    let optionsArray = reducedArray.map((option) => {
+      return {
+        id: option.scLabProject.scId,
+        label:
+          props.locale === "en"
+            ? option.scLabProject.scTermEn
+            : option.scLabProject.scTermFr,
+        value: option.scLabProject.scId,
+      };
+    });
+    return optionsArray;
+  };
+ 
+  const filterUpdates = (updates, selectedOptions) => {
+    Iif (selectedOptions.length === 0) return updates;
+    const selectedIds = new Set(selectedOptions.map((option) => option.id));
+    return updates.filter((update) =>
+      selectedIds.has(update.scLabProject.scId)
+    );
+  };
+ 
+  const updatesCards = filterUpdates(
+    sortUpdatesByDate(updatesData),
+    selectedOptions
+  ).map((update) => {
+    return (
+      <li key={update.scId} className="grid col-span-12 bg-white list-none">
+        <Card
+          customStyling="py-8 border-x-0 border-t-0 border-b-2 !shadow-none rounded-none"
+          cardHeadingStyling="!text-mobileh2 lg:!text-h2l pl-0 no-underline !pt-0 !mt-0"
+          title={props.locale === "en" ? update.scTitleEn : update.scTitleFr}
+          href={
+            props.locale === "en" ? update.scPageNameEn : update.scPageNameFr
+          }
+          htmlDesc={
+            <div className="flex flex-col lg:pt-5">
+              <span className="flex flex-row">
+                <p className="text-multi-neutrals-grey100 font-semibold whitespace-nowrap">
+                  {props.locale === "en" ? "Project:" : "Projet :"}
+                </p>
+                <p className="mt-0 pl-1">
+                  {props.locale === "en"
+                    ? update.scLabProject.scTermEn
+                    : update.scLabProject.scTermFr}
+                </p>
+              </span>
+              <span className="flex flex-row">
+                <p className="text-multi-neutrals-grey100 font-semibold">
+                  {getDictionaryTerm(dictionary, "POSTED-ON", props.locale)}
+                </p>
+                <p className="mt-0 pl-1">{`${update.scDateModifiedOverwrite}`}</p>
+              </span>
+            </div>
+          }
+        />
+      </li>
+    );
+  });
+ 
+  useEffect(() => {
+    Iif (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+    const options = getSelectOptionsFromUpdateData(updatesData);
+    Iif (router.isReady) {
+      const routerQuery =
+        props.locale === "en" ? router.query.project : router.query.projet;
+      const selectedOptionsFromQueryString = options.filter(
+        (option) => option.label === routerQuery
+      );
+      console.log(
+        "Selected options from query string:",
+        selectedOptionsFromQueryString
+      );
+      selectedOptionsFromQueryString;
+      setSelectedOptions(selectedOptionsFromQueryString);
+    }
+  }, [router.isReady, setSelectedOptions]);
+ 
+  return (
+    <>
+      <Layout
+        locale={props.locale}
+        langUrl={
+          props.locale === "en" ? pageData.scPageNameFr : pageData.scPageNameEn
+        }
+        dateModifiedOverride={pageData.scDateModifiedOverwrite}
+        breadcrumbItems={createBreadcrumbs(
+          pageData.scBreadcrumbParentPages,
+          props.locale
+        )}
+      >
+        <PageHead locale={props.locale} pageData={pageData} />
+        <div
+          id="pageMainTitle"
+          className="flex flex-col justify-center content-center mt-16 h-[182px] bg-multi-blue-blue70 bg-no-repeat sm:bg-right-bottom"
+          style={{
+            backgroundImage: `url(/981A606F-CEBD-4DD1-BDF5-FC7DD4834CCA_4_5005_c.jpeg)`,
+            backgroundSize: "cover",
+          }}
+        >
+          <div className="layout-container text-white">
+            <h1 className="m-0">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[0].content[0].value
+                : pageData.scFragments[0].scContentFr.json[0].content[0].value}
+            </h1>
+            <p>
+              {" "}
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value}
+            </p>
+          </div>
+        </div>
+        <div className="layout-container">
+          <div className="my-12 max-w-[350px]">
+            <MultiSelectField
+              label={getDictionaryTerm(dictionary, "FILTER-BY", props.locale)}
+              placeholder={getDictionaryTerm(dictionary, "ALL", props.locale)}
+              boldLabel
+              options={getSelectOptionsFromUpdateData(updatesData)}
+              onChange={setSelectedOptions}
+              selectedOptions={selectedOptions}
+            />
+          </div>
+          <div className="grid grid-cols-12">
+            <ul className="col-span-12 xl:col-span-8">{updatesCards}</ul>
+          </div>
+        </div>
+      </Layout>
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // Get page data
+  const { data: pageData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclUpdatesV1`
+  ).then((res) => res.json());
+  // Get updates data
+  const { data: updatesData } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclAllUpdatesV1`
+  ).then((res) => res.json());
+  // get dictionary
+  const { data: dictionary } = await fetch(
+    `${process.env.AEM_BASE_URL}/getSclDictionaryV1`
+  ).then((res) => res.json());
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? null,
+      pageData: pageData.sclabsPageV1ByPath,
+      updatesData: updatesData.sclabsPageV1List.items,
+      dictionary: dictionary.dictionaryV1List.items,
+      ...(await serverSideTranslations(locale, ["common", "multiSelect"])),
+    },
+    revalidate: process.env.ISR_ENABLED === "true" ? 10 : false,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/refs/pull/1117/merge/coverage/lcov-report/prettify.css b/refs/pull/1117/merge/coverage/lcov-report/prettify.css new file mode 100644 index 0000000000..b317a7cda3 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/refs/pull/1117/merge/coverage/lcov-report/prettify.js b/refs/pull/1117/merge/coverage/lcov-report/prettify.js new file mode 100644 index 0000000000..b3225238f2 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/refs/pull/1117/merge/coverage/lcov-report/sort-arrow-sprite.png b/refs/pull/1117/merge/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000..6ed68316eb Binary files /dev/null and b/refs/pull/1117/merge/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/refs/pull/1117/merge/coverage/lcov-report/sorter.js b/refs/pull/1117/merge/coverage/lcov-report/sorter.js new file mode 100644 index 0000000000..2bb296a8ca --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/refs/pull/1117/merge/coverage/lcov.info b/refs/pull/1117/merge/coverage/lcov.info new file mode 100644 index 0000000000..19ed7f1e87 --- /dev/null +++ b/refs/pull/1117/merge/coverage/lcov.info @@ -0,0 +1,5728 @@ +TN: +SF:components/index.js +FNF:0 +FNH:0 +DA:1,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ActionButton.js +FN:8,ActionButton +FN:39,(anonymous_3) +FN:42,(anonymous_4) +FNF:3 +FNH:3 +FNDA:76,ActionButton +FNDA:71,(anonymous_3) +FNDA:1,(anonymous_4) +DA:1,25 +DA:2,25 +DA:3,25 +DA:8,78 +DA:11,76 +DA:13,76 +DA:15,76 +DA:17,76 +DA:19,76 +DA:21,76 +DA:24,76 +DA:39,71 +DA:40,71 +DA:41,71 +DA:42,63 +DA:43,1 +DA:44,1 +DA:45,1 +DA:118,25 +LF:19 +LH:19 +BRDA:24,0,0,10 +BRDA:24,0,1,61 +BRDA:26,1,0,5 +BRDA:26,1,1,56 +BRDA:28,2,0,3 +BRDA:28,2,1,53 +BRDA:30,3,0,1 +BRDA:30,3,1,52 +BRDA:32,4,0,1 +BRDA:32,4,1,51 +BRDA:34,5,0,2 +BRDA:34,5,1,49 +BRDA:41,6,0,63 +BRDA:43,7,0,1 +BRDA:43,8,0,1 +BRDA:43,8,1,0 +BRDA:52,9,0,28 +BRDA:54,10,0,6 +BRDA:54,10,1,22 +BRDA:59,11,0,28 +BRDA:59,11,1,20 +BRDA:66,12,0,0 +BRDA:66,12,1,28 +BRDA:66,13,0,28 +BRDA:66,13,1,3 +BRDA:71,14,0,3 +BRDA:71,14,1,25 +BRDA:71,15,0,28 +BRDA:71,15,1,3 +BRDA:80,16,0,0 +BRDA:80,16,1,43 +BRDA:81,17,0,12 +BRDA:81,17,1,31 +BRDA:87,18,0,43 +BRDA:87,18,1,15 +BRDA:90,19,0,13 +BRDA:90,19,1,30 +BRDA:92,20,0,0 +BRDA:92,20,1,43 +BRDA:92,21,0,43 +BRDA:92,21,1,0 +BRDA:95,22,0,6 +BRDA:95,22,1,37 +BRDA:95,23,0,43 +BRDA:95,23,1,6 +BRDA:108,24,0,0 +BRDA:108,24,1,43 +BRDA:108,25,0,43 +BRDA:108,25,1,0 +BRF:49 +BRH:42 +end_of_record +TN: +SF:components/atoms/ActionButton.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,5 +DA:11,3 +DA:12,3 +DA:13,3 +DA:14,5 +DA:16,1 +DA:22,1 +DA:29,1 +DA:36,1 +DA:43,1 +LF:12 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Alert.js +FN:11,Alert +FNF:1 +FNH:1 +FNDA:2,Alert +DA:1,1 +DA:2,1 +DA:3,1 +DA:11,3 +DA:41,1 +LF:5 +LH:5 +BRDA:16,0,0,0 +BRDA:16,0,1,2 +BRDA:21,1,0,0 +BRF:3 +BRH:1 +end_of_record +TN: +SF:components/atoms/Alert.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,4 +DA:12,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.js +FN:8,(anonymous_4) +FNF:1 +FNH:1 +FNDA:4,(anonymous_4) +DA:1,9 +DA:2,9 +DA:8,9 +DA:28,9 +DA:40,9 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,4 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Breadcrumb.js +FN:9,Breadcrumb +FN:23,(anonymous_3) +FNF:2 +FNH:2 +FNDA:16,Breadcrumb +FNDA:9,(anonymous_3) +DA:1,9 +DA:2,9 +DA:3,9 +DA:4,9 +DA:9,16 +DA:24,9 +DA:50,9 +LF:7 +LH:7 +BRDA:22,0,0,7 +BRDA:22,0,1,8 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/atoms/Breadcrumb.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,4 +DA:11,3 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/CheckBox.js +FN:6,CheckBox +FN:29,(anonymous_3) +FNF:2 +FNH:2 +FNDA:68,CheckBox +FNDA:6,(anonymous_3) +DA:1,4 +DA:6,72 +DA:12,68 +DA:30,6 +DA:59,4 +LF:5 +LH:5 +BRDA:7,0,0,64 +BRDA:8,1,0,8 +BRDA:9,2,0,68 +BRDA:12,3,0,12 +BRDA:12,3,1,56 +BRDA:20,4,0,50 +BRDA:20,4,1,18 +BRDA:31,5,0,4 +BRDA:31,5,1,2 +BRDA:37,6,0,0 +BRDA:37,6,1,68 +BRDA:44,7,0,0 +BRDA:44,7,1,68 +BRDA:45,8,0,0 +BRDA:45,8,1,68 +BRDA:48,9,0,0 +BRDA:48,9,1,68 +BRF:17 +BRH:13 +end_of_record +TN: +SF:components/atoms/CheckBox.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,7 +DA:21,1 +DA:29,6 +DA:30,1 +DA:39,1 +DA:40,1 +DA:49,1 +DA:50,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/DSButton.js +FN:6,DSButton +FNF:1 +FNH:1 +FNDA:10,DSButton +DA:1,13 +DA:2,13 +DA:6,11 +DA:15,10 +DA:17,10 +DA:19,10 +DA:21,10 +DA:23,10 +DA:25,10 +DA:100,13 +LF:10 +LH:10 +BRDA:7,0,0,4 +BRDA:8,1,0,0 +BRDA:9,2,0,0 +BRDA:10,3,0,8 +BRDA:26,4,0,6 +BRDA:26,4,1,4 +BRDA:28,5,0,1 +BRDA:28,5,1,3 +BRDA:30,6,0,1 +BRDA:30,6,1,2 +BRDA:32,7,0,1 +BRDA:32,7,1,1 +BRDA:34,8,0,1 +BRDA:34,8,1,0 +BRDA:39,9,0,8 +BRDA:48,10,0,0 +BRDA:48,10,1,8 +BRDA:48,11,0,8 +BRDA:48,11,1,0 +BRDA:55,12,0,0 +BRDA:55,12,1,8 +BRDA:61,13,0,0 +BRDA:61,13,1,8 +BRDA:61,14,0,8 +BRDA:61,14,1,0 +BRDA:71,15,0,2 +BRDA:71,15,1,0 +BRDA:78,16,0,0 +BRDA:78,16,1,2 +BRDA:78,17,0,2 +BRDA:78,17,1,0 +BRDA:87,18,0,0 +BRDA:87,18,1,2 +BRDA:87,19,0,2 +BRDA:87,19,1,0 +BRF:35 +BRH:22 +end_of_record +TN: +SF:components/atoms/DSButton.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,2 +DA:11,1 +DA:12,2 +DA:13,2 +DA:14,2 +DA:15,2 +DA:17,1 +DA:24,1 +DA:33,1 +DA:40,1 +DA:48,1 +DA:55,1 +LF:14 +LH:14 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/DateModified.js +FN:4,DateModified +FNF:1 +FNH:1 +FNDA:15,DateModified +DA:1,9 +DA:2,9 +DA:4,16 +DA:5,15 +DA:7,15 +DA:8,15 +DA:9,8 +DA:10,2 +DA:11,6 +DA:28,9 +LF:10 +LH:10 +BRDA:4,0,0,6 +BRDA:8,1,0,8 +BRDA:9,2,0,2 +BRDA:9,2,1,6 +BRDA:19,3,0,7 +BRF:5 +BRH:5 +end_of_record +TN: +SF:components/atoms/DateModified.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,5 +DA:12,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.js +FN:6,ErrorLabel +FNF:1 +FNH:1 +FNDA:5,ErrorLabel +DA:1,16 +DA:6,7 +DA:16,16 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,5 +DA:12,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/HTMList.js +FN:3,HTMList +FN:4,(anonymous_3) +FN:7,(anonymous_4) +FN:8,(anonymous_5) +FNF:4 +FNH:4 +FNDA:7,HTMList +FNDA:7,(anonymous_3) +FNDA:18,(anonymous_4) +FNDA:13,(anonymous_5) +DA:1,1 +DA:3,7 +DA:4,7 +DA:5,7 +DA:7,18 +DA:9,13 +DA:21,1 +LF:7 +LH:7 +BRDA:3,0,0,5 +BRDA:15,1,0,6 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/atoms/Image.js +FN:3,Image +FNF:1 +FNH:1 +FNDA:23,Image +DA:1,16 +DA:3,23 +DA:4,23 +DA:13,16 +LF:4 +LH:4 +BRDA:4,0,0,20 +BRDA:4,1,0,4 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/atoms/Image.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:7,1 +DA:8,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:17,1 +DA:23,1 +DA:30,1 +DA:36,1 +LF:12 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Link.js +FN:6,Link +FN:42,onKeyDown +FNF:2 +FNH:1 +FNDA:356,Link +FNDA:0,onKeyDown +DA:2,14 +DA:6,357 +DA:8,356 +DA:9,356 +DA:11,1 +DA:13,1 +DA:15,1 +DA:17,1 +DA:19,66 +DA:21,66 +DA:23,273 +DA:25,273 +DA:27,1 +DA:29,1 +DA:31,1 +DA:33,1 +DA:35,13 +DA:37,13 +DA:40,356 +DA:43,0 +DA:76,14 +LF:21 +LH:20 +BRDA:6,0,0,330 +BRDA:6,1,0,3 +BRDA:9,2,0,1 +BRDA:9,2,1,1 +BRDA:9,2,2,66 +BRDA:9,2,3,273 +BRDA:9,2,4,1 +BRDA:9,2,5,1 +BRDA:9,2,6,13 +BRDA:40,3,0,356 +BRDA:40,3,1,348 +BRDA:47,4,0,8 +BRDA:52,5,0,8 +BRDA:52,5,1,8 +BRDA:66,6,0,348 +BRDA:66,6,1,348 +BRDA:68,7,0,0 +BRDA:68,7,1,348 +BRF:18 +BRH:17 +end_of_record +TN: +SF:components/atoms/Link.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,5 +DA:11,3 +DA:12,3 +DA:13,3 +DA:14,3 +DA:15,3 +DA:17,1 +DA:23,1 +DA:30,1 +DA:37,1 +DA:44,1 +DA:51,1 +LF:14 +LH:14 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/MultiSelectField.js +FN:6,MultiSelectField +FN:9,(anonymous_6) +FN:10,(anonymous_7) +FN:16,(anonymous_8) +FN:25,(anonymous_9) +FN:36,(anonymous_10) +FN:38,(anonymous_11) +FN:41,(anonymous_12) +FN:96,(anonymous_13) +FN:103,(anonymous_14) +FN:107,(anonymous_15) +FN:111,(anonymous_16) +FN:116,(anonymous_17) +FN:121,(anonymous_18) +FN:128,(anonymous_19) +FN:135,(anonymous_20) +FN:140,(anonymous_21) +FNF:17 +FNH:0 +FNDA:0,MultiSelectField +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +FNDA:0,(anonymous_18) +FNDA:0,(anonymous_19) +FNDA:0,(anonymous_20) +FNDA:0,(anonymous_21) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:6,0 +DA:7,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:16,0 +DA:25,0 +DA:35,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:42,0 +DA:96,0 +DA:103,0 +DA:107,0 +DA:111,0 +DA:116,0 +DA:121,0 +DA:128,0 +DA:135,0 +DA:140,0 +DA:155,0 +DA:159,0 +LF:28 +LH:0 +BRDA:67,0,0,0 +BRDA:67,0,1,0 +BRDA:73,1,0,0 +BRDA:73,1,1,0 +BRDA:101,2,0,0 +BRDA:101,2,1,0 +BRDA:133,3,0,0 +BRDA:133,3,1,0 +BRF:8 +BRH:0 +end_of_record +TN: +SF:components/atoms/MultiSelectField.stories.js +FNF:0 +FNH:0 +DA:1,0 +DA:2,0 +DA:4,0 +DA:20,0 +DA:21,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/MultiTextField.js +FN:8,MultiTextField +FN:41,(anonymous_3) +FNF:2 +FNH:2 +FNDA:4,MultiTextField +FNDA:1,(anonymous_3) +DA:1,3 +DA:2,3 +DA:3,3 +DA:8,5 +DA:9,4 +DA:41,1 +DA:57,3 +LF:7 +LH:7 +BRDA:8,0,0,4 +BRDA:8,1,0,3 +BRDA:14,2,0,0 +BRDA:14,2,1,4 +BRDA:19,3,0,1 +BRDA:19,3,1,3 +BRDA:23,4,0,0 +BRDA:23,4,1,4 +BRDA:33,5,0,0 +BRDA:33,5,1,4 +BRDA:36,6,0,0 +BRDA:36,6,1,4 +BRF:12 +BRH:8 +end_of_record +TN: +SF:components/atoms/MultiTextField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,4 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ProjectInfo.js +FN:4,ProjectInfo +FNF:1 +FNH:1 +FNDA:8,ProjectInfo +DA:1,7 +DA:2,7 +DA:4,9 +DA:44,7 +LF:4 +LH:4 +BRDA:12,0,0,8 +BRDA:12,0,1,8 +BRDA:18,1,0,8 +BRDA:18,1,1,2 +BRF:4 +BRH:4 +end_of_record +TN: +SF:components/atoms/ProjectInfo.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,4 +DA:12,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioButton.js +FN:6,RadioButton +FN:22,(anonymous_3) +FN:25,(anonymous_4) +FNF:3 +FNH:3 +FNDA:16,RadioButton +FNDA:3,(anonymous_3) +FNDA:1,(anonymous_4) +DA:1,2 +DA:6,17 +DA:7,16 +DA:23,3 +DA:26,1 +DA:27,1 +DA:28,1 +DA:29,0 +DA:31,1 +DA:51,2 +LF:10 +LH:9 +BRDA:6,0,0,6 +BRDA:7,1,0,15 +BRDA:7,1,1,1 +BRDA:12,2,0,1 +BRDA:12,2,1,1 +BRDA:26,3,0,1 +BRDA:28,4,0,0 +BRDA:41,5,0,4 +BRDA:41,5,1,12 +BRDA:42,6,0,4 +BRDA:42,6,1,12 +BRF:11 +BRH:10 +end_of_record +TN: +SF:components/atoms/RadioButton.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,12 +DA:12,1 +DA:20,2 +DA:21,1 +DA:30,3 +DA:31,1 +DA:40,3 +DA:41,1 +DA:50,3 +DA:51,1 +LF:13 +LH:13 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioField.js +FN:6,RadioField +FN:24,(anonymous_3) +FN:42,(anonymous_4) +FNF:3 +FNH:2 +FNDA:8,RadioField +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:1,4 +DA:6,10 +DA:7,8 +DA:25,1 +DA:42,0 +DA:50,4 +LF:6 +LH:5 +BRDA:6,0,0,4 +BRDA:6,1,0,2 +BRDA:7,2,0,8 +BRDA:7,2,1,0 +BRDA:15,3,0,0 +BRDA:15,3,1,8 +BRDA:26,4,0,0 +BRDA:26,4,1,1 +BRDA:32,5,0,0 +BRDA:32,5,1,8 +BRDA:39,6,0,0 +BRDA:39,6,1,8 +BRF:12 +BRH:7 +end_of_record +TN: +SF:components/atoms/RadioField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,7 +DA:21,1 +DA:29,4 +DA:30,1 +DA:39,1 +DA:40,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.js +FN:6,SearchBar +FNF:1 +FNH:1 +FNDA:2,SearchBar +DA:1,1 +DA:6,3 +DA:33,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,4 +DA:12,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SelectField.js +FN:5,SelectField +FN:15,(anonymous_3) +FN:49,(anonymous_4) +FN:60,(anonymous_5) +FNF:4 +FNH:3 +FNDA:2,SelectField +FNDA:6,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:8,(anonymous_5) +DA:1,1 +DA:2,1 +DA:3,1 +DA:5,4 +DA:6,2 +DA:8,2 +DA:14,2 +DA:15,2 +DA:16,6 +DA:17,6 +DA:49,0 +DA:61,8 +DA:84,1 +LF:13 +LH:12 +BRDA:5,0,0,2 +BRDA:8,1,0,0 +BRDA:8,1,1,2 +BRDA:14,2,0,2 +BRDA:24,3,0,0 +BRDA:24,3,1,2 +BRDA:29,4,0,0 +BRDA:29,4,1,2 +BRDA:33,5,0,0 +BRDA:33,5,1,2 +BRDA:40,6,0,0 +BRDA:40,6,1,2 +BRDA:43,7,0,0 +BRDA:43,7,1,2 +BRDA:48,8,0,0 +BRDA:48,8,1,2 +BRDA:67,9,0,0 +BRDA:67,9,1,2 +BRF:18 +BRH:10 +end_of_record +TN: +SF:components/atoms/SelectField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,4 +DA:21,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.js +FN:3,TableOfContents +FN:9,(anonymous_3) +FNF:2 +FNH:2 +FNDA:2,TableOfContents +FNDA:2,(anonymous_3) +DA:1,1 +DA:3,3 +DA:10,2 +DA:25,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,4 +DA:12,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TextField.js +FN:8,TextField +FN:61,(anonymous_3) +FNF:2 +FNH:2 +FNDA:6,TextField +FNDA:2,(anonymous_3) +DA:1,3 +DA:2,3 +DA:3,3 +DA:8,7 +DA:9,6 +DA:11,6 +DA:61,2 +DA:70,3 +LF:8 +LH:8 +BRDA:8,0,0,6 +BRDA:8,1,0,6 +BRDA:11,2,0,3 +BRDA:11,2,1,3 +BRDA:19,3,0,0 +BRDA:19,3,1,6 +BRDA:24,4,0,1 +BRDA:24,4,1,5 +BRDA:28,5,0,0 +BRDA:28,5,1,6 +BRDA:35,6,0,0 +BRDA:35,6,1,6 +BRDA:46,7,0,0 +BRDA:46,7,1,6 +BRDA:49,8,0,0 +BRDA:49,8,1,6 +BRDA:50,9,0,0 +BRDA:50,9,1,6 +BRDA:60,10,0,0 +BRDA:60,10,1,6 +BRF:20 +BRH:13 +end_of_record +TN: +SF:components/atoms/TextField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,4 +DA:21,1 +DA:29,2 +DA:30,1 +DA:39,3 +DA:40,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/UpdateInfo.js +FN:4,UpdateInfo +FNF:1 +FNH:0 +FNDA:0,UpdateInfo +DA:1,0 +DA:2,0 +DA:4,0 +DA:32,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/FragmentRender.js +FN:19,(anonymous_2) +FN:185,FragmentRender +FN:188,(anonymous_4) +FNF:3 +FNH:3 +FNDA:17,(anonymous_2) +FNDA:11,FragmentRender +FNDA:17,(anonymous_4) +DA:1,4 +DA:2,4 +DA:3,4 +DA:4,4 +DA:5,4 +DA:6,4 +DA:7,4 +DA:8,4 +DA:10,4 +DA:19,4 +DA:20,17 +DA:22,1 +DA:48,3 +DA:50,2 +DA:70,1 +DA:106,0 +DA:110,1 +DA:122,6 +DA:130,5 +DA:141,1 +DA:181,0 +DA:185,11 +DA:188,11 +DA:189,17 +DA:190,17 +DA:191,0 +DA:193,17 +DA:206,10 +LF:28 +LH:25 +BRDA:20,0,0,1 +BRDA:20,0,1,3 +BRDA:20,0,2,1 +BRDA:20,0,3,6 +BRDA:20,0,4,5 +BRDA:20,0,5,1 +BRDA:20,0,6,0 +BRDA:24,1,0,1 +BRDA:24,1,1,0 +BRDA:28,2,0,1 +BRDA:28,2,1,0 +BRDA:37,3,0,1 +BRDA:37,3,1,0 +BRDA:41,4,0,1 +BRDA:41,4,1,0 +BRDA:48,5,0,2 +BRDA:48,5,1,1 +BRDA:48,5,2,0 +BRDA:52,6,0,1 +BRDA:52,6,1,1 +BRDA:55,7,0,1 +BRDA:55,7,1,1 +BRDA:56,8,0,1 +BRDA:56,8,1,0 +BRDA:63,9,0,1 +BRDA:63,9,1,1 +BRDA:72,10,0,1 +BRDA:72,10,1,0 +BRDA:75,11,0,1 +BRDA:75,11,1,0 +BRDA:76,12,0,1 +BRDA:76,12,1,0 +BRDA:83,13,0,1 +BRDA:83,13,1,0 +BRDA:88,14,0,1 +BRDA:88,14,1,0 +BRDA:92,15,0,1 +BRDA:92,15,1,0 +BRDA:98,16,0,1 +BRDA:98,16,1,0 +BRDA:112,17,0,1 +BRDA:112,17,1,0 +BRDA:116,18,0,1 +BRDA:116,18,1,0 +BRDA:124,19,0,1 +BRDA:124,19,1,5 +BRDA:134,20,0,1 +BRDA:134,20,1,4 +BRDA:137,21,0,1 +BRDA:137,21,1,4 +BRDA:144,22,0,1 +BRDA:144,22,1,0 +BRDA:148,23,0,1 +BRDA:148,23,1,0 +BRDA:156,24,0,1 +BRDA:156,24,1,0 +BRDA:163,25,0,1 +BRDA:163,25,1,0 +BRDA:167,26,0,1 +BRDA:167,26,1,0 +BRDA:173,27,0,1 +BRDA:173,27,1,0 +BRDA:190,28,0,0 +BRF:63 +BRH:40 +end_of_record +TN: +SF:components/fragment_renderer/FragmentRender.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:5,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:19,1 +DA:21,1 +DA:89,1 +DA:682,1 +DA:1214,1 +DA:1272,1 +DA:1329,1 +DA:1348,1 +LF:18 +LH:18 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/PageHead.js +FN:3,PageHead +FNF:1 +FNH:0 +FNDA:0,PageHead +DA:1,0 +DA:3,0 +LF:2 +LH:0 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRDA:15,1,0,0 +BRDA:15,1,1,0 +BRDA:26,2,0,0 +BRDA:26,2,1,0 +BRDA:36,3,0,0 +BRDA:36,3,1,0 +BRDA:43,4,0,0 +BRDA:43,4,1,0 +BRDA:49,5,0,0 +BRDA:49,5,1,0 +BRDA:62,6,0,0 +BRDA:62,6,1,0 +BRDA:82,7,0,0 +BRDA:82,7,1,0 +BRDA:91,8,0,0 +BRDA:91,8,1,0 +BRDA:99,9,0,0 +BRDA:99,9,1,0 +BRDA:111,10,0,0 +BRDA:111,10,1,0 +BRDA:124,11,0,0 +BRDA:124,11,1,0 +BRDA:133,12,0,0 +BRDA:133,12,1,0 +BRDA:142,13,0,0 +BRDA:142,13,1,0 +BRDA:154,14,0,0 +BRDA:154,14,1,0 +BRF:30 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ArticleCTA.js +FN:3,ArticleCTA +FNF:1 +FNH:1 +FNDA:2,ArticleCTA +DA:1,5 +DA:3,6 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ArticleCTA.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:12,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/BasicTextWithImage.js +FN:4,BasicTextWithImage +FNF:1 +FNH:1 +FNDA:4,BasicTextWithImage +DA:1,6 +DA:2,6 +DA:4,5 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/BasicTextWithImage.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:12,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/Button.js +FN:3,Button +FNF:1 +FNH:1 +FNDA:7,Button +DA:1,5 +DA:3,7 +DA:5,7 +LF:3 +LH:3 +BRDA:5,0,0,0 +BRDA:5,0,1,7 +BRDA:7,1,0,4 +BRDA:7,1,1,3 +BRDA:9,2,0,3 +BRDA:9,2,1,0 +BRF:6 +BRH:4 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/Button.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:20,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageFragment.js +FN:3,ImageFragment +FNF:1 +FNH:0 +FNDA:0,ImageFragment +DA:1,0 +DA:3,0 +LF:2 +LH:0 +BRDA:9,0,0,0 +BRDA:9,0,1,0 +BRDA:14,1,0,0 +BRDA:14,1,1,0 +BRDA:25,2,0,0 +BRDA:25,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageFragment.stories.js +FNF:0 +FNH:0 +DA:1,0 +DA:2,0 +DA:4,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageVerticalLineContent.js +FN:5,ImageVerticalLineContent +FNF:1 +FNH:1 +FNDA:5,ImageVerticalLineContent +DA:1,6 +DA:2,6 +DA:3,6 +DA:5,6 +LF:4 +LH:4 +BRDA:33,0,0,3 +BRDA:33,0,1,2 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageVerticalLineContent.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:6,1 +DA:21,1 +DA:22,1 +DA:23,1 +DA:76,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageWithCollapse.js +FN:4,ImageWithCollapse +FNF:1 +FNH:1 +FNDA:3,ImageWithCollapse +DA:1,5 +DA:2,5 +DA:4,7 +LF:3 +LH:3 +BRDA:27,0,0,3 +BRDA:27,0,1,0 +BRDA:34,1,0,3 +BRDA:34,1,1,0 +BRF:4 +BRH:2 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/ImageWithCollapse.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:6,1 +DA:13,2 +DA:14,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/QuoteVerticalLineContent.js +FN:3,QuoteVerticalLineContent +FNF:1 +FNH:1 +FNDA:2,QuoteVerticalLineContent +DA:1,5 +DA:3,6 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/QuoteVerticalLineContent.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:12,1 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/TextContent.js +FN:3,TextContent +FNF:1 +FNH:1 +FNDA:7,TextContent +DA:1,5 +DA:3,6 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/TextContent.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/TextWithImage.js +FN:4,TextWithImage +FNF:1 +FNH:1 +FNDA:6,TextWithImage +DA:1,5 +DA:2,5 +DA:4,8 +DA:16,6 +DA:43,0 +LF:5 +LH:4 +BRDA:16,0,0,0 +BRF:1 +BRH:0 +end_of_record +TN: +SF:components/fragment_renderer/fragment_components/TextWithImage.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:6,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:17,1 +DA:37,1 +DA:90,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CTA.js +FN:5,CTA +FN:13,(anonymous_2) +FNF:2 +FNH:2 +FNDA:5,CTA +FNDA:5,(anonymous_2) +DA:1,6 +DA:2,6 +DA:3,6 +DA:5,7 +DA:13,5 +LF:5 +LH:5 +BRDA:10,0,0,3 +BRDA:29,1,0,0 +BRDA:36,2,0,5 +BRF:3 +BRH:2 +end_of_record +TN: +SF:components/molecules/CTA.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:10,4 +DA:11,1 +DA:23,2 +DA:24,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Card.js +FN:11,(anonymous_4) +FNF:1 +FNH:1 +FNDA:32,(anonymous_4) +DA:1,10 +DA:2,10 +DA:3,10 +DA:4,10 +DA:5,10 +DA:11,10 +DA:12,32 +DA:19,32 +DA:105,10 +DA:172,31 +LF:10 +LH:10 +BRDA:19,0,0,32 +BRDA:19,0,1,29 +BRDA:30,1,0,15 +BRDA:30,1,1,15 +BRDA:54,2,0,0 +BRDA:54,2,1,30 +BRDA:55,3,0,0 +BRDA:55,3,1,0 +BRDA:66,4,0,1 +BRDA:66,4,1,29 +BRDA:77,5,0,0 +BRDA:77,5,1,30 +BRDA:85,6,0,12 +BRDA:89,7,0,0 +BRDA:89,7,1,30 +BRF:15 +BRH:10 +end_of_record +TN: +SF:components/molecules/Card.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:5,1 +DA:12,4 +DA:13,2 +DA:14,1 +DA:15,1 +DA:16,1 +DA:18,1 +DA:26,1 +DA:35,1 +DA:44,1 +DA:52,1 +LF:14 +LH:14 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Collapse.js +FN:3,Collapse +FNF:1 +FNH:1 +FNDA:11,Collapse +DA:1,9 +DA:3,12 +DA:4,11 +DA:5,11 +DA:26,9 +LF:5 +LH:5 +BRDA:3,0,0,6 +BRF:1 +BRH:1 +end_of_record +TN: +SF:components/molecules/Collapse.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,2 +DA:12,1 +DA:19,2 +DA:20,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ContextualAlert.js +FN:3,ContextualAlert +FNF:1 +FNH:1 +FNDA:9,ContextualAlert +DA:1,3 +DA:3,9 +DA:4,9 +DA:5,9 +DA:6,9 +DA:7,9 +DA:18,9 +DA:21,7 +DA:30,7 +DA:38,7 +DA:77,3 +LF:11 +LH:11 +BRDA:21,0,0,2 +BRDA:21,0,1,5 +BRDA:23,1,0,1 +BRDA:23,1,1,4 +BRDA:25,2,0,2 +BRDA:25,2,1,2 +BRDA:30,3,0,2 +BRDA:30,3,1,5 +BRDA:32,4,0,1 +BRDA:32,4,1,4 +BRDA:34,5,0,2 +BRDA:34,5,1,2 +BRDA:38,6,0,0 +BRDA:38,6,1,7 +BRDA:53,7,0,0 +BRDA:63,8,0,0 +BRF:16 +BRH:13 +end_of_record +TN: +SF:components/molecules/ContextualAlert.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:9,4 +DA:10,2 +DA:11,2 +DA:12,2 +DA:14,1 +DA:33,1 +DA:43,1 +DA:53,1 +LF:10 +LH:10 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.js +FN:5,CopyToClipboard +FN:20,(anonymous_3) +FNF:2 +FNH:2 +FNDA:4,CopyToClipboard +FNDA:1,(anonymous_3) +DA:1,2 +DA:2,2 +DA:3,2 +DA:5,5 +DA:6,4 +DA:20,1 +DA:39,2 +LF:7 +LH:7 +BRDA:5,0,0,2 +BRDA:5,1,0,4 +BRDA:6,2,0,4 +BRDA:6,2,1,0 +BRF:4 +BRH:3 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,5 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.js +FN:6,Details +FNF:1 +FNH:1 +FNDA:11,Details +DA:1,2 +DA:6,11 +DA:19,2 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,6 +DA:12,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.js +FN:7,ErrorBox +FN:23,(anonymous_3) +FN:29,(anonymous_4) +FNF:3 +FNH:3 +FNDA:3,ErrorBox +FNDA:9,(anonymous_3) +FNDA:1,(anonymous_4) +DA:1,1 +DA:2,1 +DA:7,4 +DA:24,9 +DA:29,1 +DA:43,1 +LF:6 +LH:6 +BRDA:7,0,0,0 +BRF:1 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:23,11 +DA:25,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.js +FN:15,(anonymous_7) +FN:31,(anonymous_8) +FN:42,(anonymous_9) +FN:43,(anonymous_10) +FN:57,setFocusAfterSubmit +FN:71,(anonymous_12) +FN:176,(anonymous_13) +FN:201,(anonymous_14) +FN:272,(anonymous_15) +FN:273,(anonymous_16) +FNF:10 +FNH:5 +FNDA:10,(anonymous_7) +FNDA:7,(anonymous_8) +FNDA:1,(anonymous_9) +FNDA:1,(anonymous_10) +FNDA:0,setFocusAfterSubmit +FNDA:1,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +DA:1,10 +DA:2,10 +DA:3,10 +DA:4,10 +DA:5,10 +DA:6,10 +DA:7,10 +DA:8,10 +DA:9,10 +DA:15,10 +DA:21,10 +DA:22,10 +DA:23,10 +DA:24,10 +DA:25,10 +DA:26,10 +DA:27,10 +DA:29,10 +DA:31,10 +DA:32,7 +DA:33,2 +DA:34,2 +DA:39,10 +DA:43,1 +DA:44,1 +DA:46,0 +DA:47,0 +DA:49,1 +DA:50,1 +DA:53,1 +DA:58,0 +DA:61,10 +DA:62,10 +DA:63,10 +DA:71,10 +DA:73,1 +DA:75,1 +DA:77,1 +DA:79,1 +DA:81,1 +DA:88,1 +DA:92,1 +DA:94,1 +DA:96,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:110,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:117,1 +DA:176,0 +DA:202,0 +DA:203,0 +DA:272,0 +DA:274,0 +DA:300,10 +DA:307,10 +LF:60 +LH:43 +BRDA:32,0,0,2 +BRDA:44,1,0,0 +BRDA:44,1,1,1 +BRDA:94,2,0,0 +BRDA:94,2,1,1 +BRDA:105,3,0,0 +BRDA:105,3,1,0 +BRDA:105,4,0,0 +BRDA:105,4,1,0 +BRDA:123,5,0,8 +BRDA:123,5,1,2 +BRDA:138,6,0,0 +BRDA:138,6,1,8 +BRDA:140,7,0,0 +BRDA:140,7,1,0 +BRDA:143,8,0,0 +BRDA:143,8,1,0 +BRDA:151,9,0,0 +BRDA:151,9,1,0 +BRDA:256,10,0,2 +BRDA:256,10,1,6 +BRF:21 +BRH:8 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,8 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.js +FN:7,Filter +FN:19,(anonymous_3) +FNF:2 +FNH:2 +FNDA:3,Filter +FNDA:9,(anonymous_3) +DA:1,1 +DA:2,1 +DA:7,4 +DA:20,9 +DA:40,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,12 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Heading.js +FN:3,Heading +FNF:1 +FNH:1 +FNDA:11,Heading +DA:1,15 +DA:3,12 +DA:4,11 +DA:27,15 +LF:4 +LH:4 +BRDA:12,0,0,11 +BRDA:12,0,1,1 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/molecules/Heading.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:3,1 +DA:10,3 +DA:11,1 +DA:13,1 +DA:18,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/List.js +FN:6,List +FN:10,(anonymous_3) +FNF:2 +FNH:2 +FNDA:2,List +FNDA:8,(anonymous_3) +DA:1,1 +DA:6,3 +DA:7,2 +DA:12,8 +DA:15,8 +DA:16,8 +DA:31,1 +LF:7 +LH:7 +BRDA:15,0,0,6 +BRF:1 +BRH:1 +end_of_record +TN: +SF:components/molecules/List.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,5 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/MainBand.js +FN:4,MainBand +FN:21,(anonymous_2) +FNF:2 +FNH:2 +FNDA:13,MainBand +FNDA:273,(anonymous_2) +DA:1,9 +DA:2,9 +DA:4,13 +DA:5,13 +DA:22,273 +LF:5 +LH:5 +BRDA:26,0,0,13 +BRDA:26,0,1,260 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/molecules/Menu.js +FN:9,Menu +FN:29,(anonymous_3) +FN:44,(anonymous_4) +FN:63,(anonymous_5) +FNF:4 +FNH:3 +FNDA:4,Menu +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:12,(anonymous_5) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:9,4 +DA:11,4 +DA:12,4 +DA:13,4 +DA:29,1 +DA:44,0 +DA:64,12 +DA:65,12 +DA:67,12 +DA:94,1 +LF:14 +LH:13 +BRDA:46,0,0,1 +BRDA:46,0,1,3 +BRDA:59,1,0,1 +BRDA:59,1,1,3 +BRDA:72,2,0,0 +BRDA:72,2,1,12 +BRDA:77,3,0,0 +BRDA:77,3,1,12 +BRDA:78,4,0,0 +BRDA:78,4,1,0 +BRF:10 +BRH:6 +end_of_record +TN: +SF:components/molecules/Menu.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,6 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalListField.js +FN:9,OptionalListField +FN:11,(anonymous_3) +FN:22,(anonymous_4) +FNF:3 +FNH:3 +FNDA:5,OptionalListField +FNDA:1,(anonymous_3) +FNDA:5,(anonymous_4) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:9,5 +DA:10,5 +DA:11,5 +DA:12,1 +DA:13,0 +DA:15,1 +DA:18,1 +DA:19,0 +DA:22,5 +DA:23,5 +DA:24,0 +DA:26,5 +DA:27,5 +DA:29,0 +DA:79,1 +LF:19 +LH:15 +BRDA:9,0,0,4 +BRDA:10,1,0,5 +BRDA:10,1,1,2 +BRDA:12,2,0,0 +BRDA:12,2,1,1 +BRDA:18,3,0,0 +BRDA:23,4,0,0 +BRDA:26,5,0,5 +BRDA:34,6,0,4 +BRDA:60,7,0,4 +BRDA:60,7,1,1 +BRDA:60,8,0,5 +BRDA:60,8,1,2 +BRDA:60,8,2,4 +BRDA:63,9,0,0 +BRDA:63,9,1,4 +BRF:16 +BRH:12 +end_of_record +TN: +SF:components/molecules/OptionalListField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:6,1 +DA:22,1 +DA:23,1 +DA:48,2 +DA:49,1 +DA:76,2 +DA:77,1 +DA:104,2 +DA:105,1 +DA:133,2 +DA:134,1 +LF:15 +LH:15 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalTextField.js +FN:12,OptionalTextField +FN:16,(anonymous_3) +FN:76,(anonymous_4) +FN:94,(anonymous_5) +FNF:4 +FNH:2 +FNDA:55,OptionalTextField +FNDA:3,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:1,2 +DA:2,2 +DA:3,2 +DA:4,2 +DA:5,2 +DA:6,2 +DA:7,2 +DA:12,54 +DA:13,55 +DA:14,55 +DA:15,55 +DA:16,55 +DA:17,3 +DA:18,0 +DA:19,0 +DA:21,3 +DA:22,3 +DA:25,3 +DA:26,0 +DA:106,2 +LF:20 +LH:17 +BRDA:12,0,0,54 +BRDA:13,1,0,55 +BRDA:13,1,1,54 +BRDA:17,2,0,0 +BRDA:17,2,1,3 +BRDA:25,3,0,0 +BRDA:31,4,0,55 +BRDA:47,5,0,55 +BRDA:61,6,0,4 +BRDA:61,6,1,51 +BRDA:61,7,0,55 +BRDA:61,7,1,54 +BRDA:61,7,2,52 +BRDA:62,8,0,2 +BRDA:62,8,1,2 +BRDA:76,9,0,0 +BRDA:76,9,1,2 +BRDA:94,10,0,0 +BRDA:94,10,1,2 +BRF:19 +BRH:15 +end_of_record +TN: +SF:components/molecules/OptionalTextField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:20,1 +DA:21,1 +DA:32,1 +DA:33,1 +DA:45,2 +DA:46,1 +DA:59,2 +DA:60,1 +DA:72,2 +DA:73,1 +LF:13 +LH:13 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.js +FN:6,Quote +FNF:1 +FNH:1 +FNDA:2,Quote +DA:1,1 +DA:6,3 +DA:21,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,5 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/SubFooterBand.js +FN:50,(anonymous_1) +FN:54,SubFooterBand +FN:78,(anonymous_3) +FN:98,(anonymous_4) +FNF:4 +FNH:3 +FNDA:13,(anonymous_1) +FNDA:13,SubFooterBand +FNDA:0,(anonymous_3) +FNDA:65,(anonymous_4) +DA:1,9 +DA:2,9 +DA:4,9 +DA:27,9 +DA:50,9 +DA:51,13 +DA:54,13 +DA:79,0 +DA:99,65 +LF:9 +LH:8 +BRDA:51,0,0,0 +BRDA:51,0,1,13 +BRDA:59,1,0,0 +BRDA:59,1,1,13 +BRDA:60,2,0,0 +BRDA:60,2,1,13 +BRDA:63,3,0,0 +BRDA:77,4,0,0 +BRDA:77,4,1,13 +BRDA:83,5,0,0 +BRDA:83,5,1,0 +BRDA:87,6,0,0 +BRDA:87,6,1,0 +BRDA:103,7,0,13 +BRDA:103,7,1,52 +BRDA:108,8,0,0 +BRDA:108,8,1,65 +BRDA:126,9,0,0 +BRDA:126,9,1,13 +BRDA:131,10,0,0 +BRDA:131,10,1,13 +BRF:21 +BRH:9 +end_of_record +TN: +SF:components/molecules/SurveyCTA.js +FN:3,(anonymous_1) +FNF:1 +FNH:1 +FNDA:3,(anonymous_1) +DA:1,2 +DA:3,5 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/SurveyCTA.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,4 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/TextButtonField.js +FN:7,TextButtonField +FNF:1 +FNH:1 +FNDA:6,TextButtonField +DA:1,1 +DA:2,1 +DA:7,7 +DA:10,6 +DA:11,5 +DA:44,1 +LF:6 +LH:6 +BRDA:10,0,0,5 +BRDA:11,1,0,2 +BRDA:11,1,1,3 +BRDA:18,2,0,0 +BRDA:26,3,0,6 +BRDA:26,3,1,0 +BRF:6 +BRH:4 +end_of_record +TN: +SF:components/molecules/TextButtonField.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,8 +DA:12,3 +DA:13,3 +DA:14,3 +DA:16,1 +DA:24,1 +DA:31,1 +DA:39,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/TopNavBar.js +FN:4,TopNavBar +FN:18,(anonymous_6) +FN:22,(anonymous_7) +FN:24,(anonymous_8) +FNF:4 +FNH:1 +FNDA:15,TopNavBar +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +DA:1,9 +DA:2,9 +DA:4,17 +DA:14,15 +DA:15,15 +DA:18,15 +DA:19,0 +DA:22,15 +DA:23,0 +DA:24,0 +DA:25,0 +DA:26,0 +LF:12 +LH:7 +BRDA:19,0,0,0 +BRDA:19,0,1,0 +BRDA:57,1,0,0 +BRDA:57,1,1,15 +BRDA:63,2,0,0 +BRDA:65,3,0,0 +BRDA:65,3,1,0 +BRDA:80,4,0,0 +BRDA:80,4,1,15 +BRDA:110,5,0,0 +BRDA:110,5,1,15 +BRDA:114,6,0,0 +BRDA:114,6,1,0 +BRDA:119,7,0,0 +BRDA:119,7,1,0 +BRDA:126,8,0,0 +BRDA:126,8,1,0 +BRDA:133,9,0,0 +BRDA:133,9,1,0 +BRF:19 +BRH:3 +end_of_record +TN: +SF:components/molecules/TopNavBar.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,6 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/ExploreProjects.js +FN:5,(anonymous_5) +FN:37,ExploreProjects +FN:41,(anonymous_7) +FNF:3 +FNH:3 +FNDA:14,(anonymous_5) +FNDA:10,ExploreProjects +FNDA:14,(anonymous_7) +DA:1,7 +DA:2,7 +DA:5,7 +DA:6,14 +DA:37,10 +DA:39,10 +DA:41,9 +DA:42,14 +LF:8 +LH:8 +BRDA:14,0,0,9 +BRDA:14,0,1,5 +BRDA:19,1,0,9 +BRDA:19,1,1,5 +BRDA:25,2,0,9 +BRDA:25,2,1,5 +BRDA:26,3,0,9 +BRDA:26,3,1,5 +BRDA:28,4,0,9 +BRDA:28,4,1,5 +BRF:10 +BRH:10 +end_of_record +TN: +SF:components/organisms/ExploreProjects.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,3 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/ExploreUpdates.js +FN:6,ExploreUpdates +FN:14,(anonymous_3) +FNF:2 +FNH:2 +FNDA:7,ExploreUpdates +FNDA:12,(anonymous_3) +DA:1,8 +DA:2,8 +DA:3,8 +DA:4,8 +DA:6,8 +DA:14,7 +DA:15,12 +LF:7 +LH:7 +BRDA:20,0,0,2 +BRDA:20,0,1,10 +BRDA:21,1,0,2 +BRDA:21,1,1,10 +BRDA:26,2,0,2 +BRDA:26,2,1,10 +BRDA:29,3,0,2 +BRDA:29,3,1,10 +BRF:8 +BRH:8 +end_of_record +TN: +SF:components/organisms/ExploreUpdates.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Feedback.js +FN:6,Feedback +FN:14,handleSubmit +FN:31,onYesClick +FN:36,setFocus +FN:37,(anonymous_6) +FN:127,(anonymous_7) +FN:134,(anonymous_8) +FNF:7 +FNH:1 +FNDA:12,Feedback +FNDA:0,handleSubmit +FNDA:0,onYesClick +FNDA:0,setFocus +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +DA:1,8 +DA:2,8 +DA:3,8 +DA:4,8 +DA:7,12 +DA:8,12 +DA:9,12 +DA:11,12 +DA:12,12 +DA:15,0 +DA:16,0 +DA:17,0 +DA:25,0 +DA:27,0 +DA:32,0 +DA:33,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:127,0 +DA:134,0 +DA:147,12 +LF:22 +LH:10 +BRDA:38,0,0,0 +BRDA:46,1,0,12 +BRDA:62,2,0,12 +BRDA:62,2,1,0 +BRDA:122,3,0,12 +BRDA:122,3,1,12 +BRF:6 +BRH:4 +end_of_record +TN: +SF:components/organisms/Footer.js +FN:31,(anonymous_2) +FNF:1 +FNH:1 +FNDA:13,(anonymous_2) +DA:2,9 +DA:3,9 +DA:4,9 +DA:5,9 +DA:7,9 +DA:31,14 +DA:88,9 +LF:7 +LH:7 +BRDA:41,0,0,13 +BRDA:43,1,0,13 +BRDA:47,2,0,0 +BRDA:47,2,1,13 +BRDA:47,3,0,13 +BRDA:47,3,1,0 +BRF:6 +BRH:4 +end_of_record +TN: +SF:components/organisms/Footer.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:12,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/HelpIcon.js +FN:5,(anonymous_1) +FN:7,(anonymous_2) +FN:8,(anonymous_3) +FNF:3 +FNH:1 +FNDA:9,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:1,8 +DA:2,8 +DA:3,8 +DA:5,10 +DA:6,9 +DA:7,9 +DA:8,9 +LF:7 +LH:7 +BRDA:30,0,0,9 +BRDA:43,1,0,0 +BRDA:43,1,1,0 +BRDA:67,2,0,0 +BRDA:67,2,1,0 +BRF:5 +BRH:1 +end_of_record +TN: +SF:components/organisms/HelpIcon.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:15,1 +DA:21,1 +DA:27,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Layout.js +FN:15,(anonymous_2) +FNF:1 +FNH:1 +FNDA:12,(anonymous_2) +DA:1,8 +DA:2,8 +DA:3,8 +DA:4,8 +DA:5,8 +DA:6,8 +DA:7,8 +DA:8,8 +DA:9,8 +DA:10,8 +DA:15,15 +DA:32,12 +DA:33,12 +DA:34,12 +DA:157,8 +LF:15 +LH:15 +BRDA:33,0,0,0 +BRDA:33,0,1,12 +BRDA:35,1,0,12 +BRDA:35,1,1,0 +BRDA:35,2,0,12 +BRDA:35,2,1,12 +BRDA:55,3,0,0 +BRDA:55,3,1,12 +BRDA:77,4,0,12 +BRDA:77,4,1,0 +BRDA:92,5,0,12 +BRDA:92,5,1,0 +BRDA:105,6,0,12 +BRDA:105,6,1,0 +BRDA:126,7,0,2 +BRDA:126,7,1,10 +BRDA:126,8,0,12 +BRDA:126,8,1,2 +BRDA:132,9,0,12 +BRDA:132,9,1,0 +BRF:20 +BRH:13 +end_of_record +TN: +SF:components/organisms/Layout.stories.js +FN:9,(anonymous_5) +FNF:1 +FNH:1 +FNDA:7,(anonymous_5) +DA:1,1 +DA:2,1 +DA:4,1 +DA:9,1 +DA:27,6 +DA:28,4 +DA:30,1 +DA:35,1 +LF:8 +LH:8 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/PhaseBanner.js +FN:12,(anonymous_7) +FN:24,(anonymous_8) +FNF:2 +FNH:2 +FNDA:3,(anonymous_7) +FNDA:1,(anonymous_8) +DA:1,9 +DA:2,9 +DA:3,9 +DA:5,9 +DA:6,9 +DA:12,9 +DA:20,3 +DA:21,3 +DA:22,3 +DA:24,3 +DA:25,1 +DA:26,0 +DA:28,1 +DA:31,1 +DA:112,9 +DA:135,9 +LF:16 +LH:15 +BRDA:25,0,0,0 +BRDA:25,0,1,1 +BRDA:40,1,0,2 +BRDA:40,1,1,1 +BRDA:49,2,0,2 +BRDA:49,2,1,1 +BRDA:68,3,0,2 +BRDA:68,3,1,1 +BRF:8 +BRH:7 +end_of_record +TN: +SF:components/organisms/PhaseBanner.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,2 +DA:12,2 +DA:14,1 +DA:19,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/ReportAProblem.js +FN:14,ReportAProblem +FN:20,(anonymous_3) +FN:84,(anonymous_4) +FNF:3 +FNH:2 +FNDA:9,ReportAProblem +FNDA:3,(anonymous_3) +FNDA:0,(anonymous_4) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:14,7 +DA:15,9 +DA:16,8 +DA:18,8 +DA:20,8 +DA:22,3 +DA:25,3 +DA:26,3 +DA:27,24 +DA:28,21 +DA:29,1 +DA:35,3 +DA:37,3 +DA:40,3 +DA:41,5 +DA:42,5 +DA:46,3 +DA:47,3 +DA:51,3 +DA:52,0 +DA:62,3 +DA:73,3 +DA:74,21 +DA:78,3 +DA:88,0 +DA:91,3 +DA:92,1 +DA:95,3 +DA:373,1 +LF:38 +LH:36 +BRDA:27,0,0,21 +BRDA:28,1,0,1 +BRDA:51,2,0,0 +BRDA:51,2,1,3 +BRDA:91,3,0,1 +BRDA:105,4,0,1 +BRDA:105,4,1,7 +BRDA:125,5,0,1 +BRDA:350,6,0,2 +BRDA:350,6,1,5 +BRF:10 +BRH:9 +end_of_record +TN: +SF:components/organisms/ReportAProblem.stories.js +FNF:0 +FNH:0 +DA:1,1 +DA:2,1 +DA:4,1 +DA:11,10 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/TextRecur.jsx +FN:26,TextRecur +FN:43,(anonymous_3) +FNF:2 +FNH:2 +FNDA:516,TextRecur +FNDA:411,(anonymous_3) +DA:1,12 +DA:3,12 +DA:4,12 +DA:5,12 +DA:6,12 +DA:7,12 +DA:8,12 +DA:9,12 +DA:10,12 +DA:11,12 +DA:14,12 +DA:26,106 +DA:27,516 +DA:28,515 +DA:30,515 +DA:36,0 +DA:44,411 +LF:17 +LH:16 +BRDA:30,0,0,0 +BRDA:31,1,0,515 +BRDA:31,1,1,515 +BRDA:31,1,2,28 +BRDA:31,1,3,6 +BRDA:41,2,0,267 +BRDA:41,2,1,248 +BRDA:41,3,0,515 +BRDA:41,3,1,289 +BRF:9 +BRH:8 +end_of_record +TN: +SF:components/text_node_renderer/TextRender.jsx +FN:4,TextRender +FN:7,(anonymous_3) +FNF:2 +FNH:2 +FNDA:37,TextRender +FNDA:106,(anonymous_3) +DA:1,12 +DA:2,12 +DA:4,35 +DA:8,106 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/HeaderText.jsx +FN:3,HeaderText +FNF:1 +FNH:1 +FNDA:21,HeaderText +DA:1,12 +DA:3,12 +DA:4,21 +LF:3 +LH:3 +BRDA:9,0,0,2 +BRDA:9,0,1,0 +BRDA:15,1,0,4 +BRDA:15,1,1,6 +BRDA:21,2,0,8 +BRDA:21,2,1,1 +BRF:6 +BRH:5 +end_of_record +TN: +SF:components/text_node_renderer/nodes/LineBreak.jsx +FN:1,LineBreak +FNF:1 +FNH:1 +FNDA:22,LineBreak +DA:1,12 +DA:2,22 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/Link.jsx +FN:1,Link +FNF:1 +FNH:1 +FNDA:3,Link +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/ListItem.jsx +FN:1,ListItem +FNF:1 +FNH:1 +FNDA:137,ListItem +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/OrderedList.jsx +FN:1,UnorderedList +FNF:1 +FNH:1 +FNDA:2,UnorderedList +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/Paragraph.jsx +FN:1,Paragraph +FNF:1 +FNH:1 +FNDA:63,Paragraph +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/Span.jsx +FN:1,Span +FNF:1 +FNH:0 +FNDA:0,Span +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/Text.jsx +FN:1,Text +FNF:1 +FNH:1 +FNDA:223,Text +DA:1,12 +DA:3,223 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/text_node_renderer/nodes/UnorderedList.jsx +FN:1,UnorderedList +FNF:1 +FNH:1 +FNDA:45,UnorderedList +DA:1,12 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/notify/postFeedbackToGcNotify.js +FN:1,postFeedbackToGcNotify +FNF:1 +FNH:0 +FNDA:0,postFeedbackToGcNotify +DA:1,1 +DA:2,0 +LF:2 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/notify/submitEmail.js +FN:3,(anonymous_3) +FN:32,(anonymous_4) +FNF:2 +FNH:1 +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:1,2 +DA:3,2 +DA:11,1 +DA:29,1 +DA:32,2 +DA:42,0 +DA:64,0 +LF:7 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/createBreadcrumbs.js +FN:1,(anonymous_1) +FN:2,(anonymous_2) +FNF:2 +FNH:2 +FNDA:6,(anonymous_1) +FNDA:6,(anonymous_2) +DA:1,6 +DA:2,6 +DA:3,6 +LF:3 +LH:3 +BRDA:5,0,0,0 +BRDA:5,0,1,6 +BRDA:7,1,0,0 +BRDA:7,1,1,6 +BRF:4 +BRH:2 +end_of_record +TN: +SF:lib/utils/filterItems.js +FN:1,(anonymous_1) +FN:3,(anonymous_2) +FNF:2 +FNH:2 +FNDA:6,(anonymous_1) +FNDA:6,(anonymous_2) +DA:1,6 +DA:3,6 +DA:4,6 +DA:6,6 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/generateCollapseElements.js +FN:1,(anonymous_1) +FN:10,(anonymous_2) +FN:21,(anonymous_3) +FNF:3 +FNH:0 +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:1,0 +DA:2,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:15,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:26,0 +DA:31,0 +DA:32,0 +DA:37,0 +DA:38,0 +DA:42,0 +LF:18 +LH:0 +BRDA:5,0,0,0 +BRDA:5,0,1,0 +BRDA:9,1,0,0 +BRDA:9,1,1,0 +BRDA:20,2,0,0 +BRDA:20,2,1,0 +BRDA:31,3,0,0 +BRDA:31,3,1,0 +BRDA:37,4,0,0 +BRF:9 +BRH:0 +end_of_record +TN: +SF:lib/utils/getAllUpdateIds.js +FN:1,getAllUpdateIds +FN:2,(anonymous_2) +FNF:2 +FNH:0 +FNDA:0,getAllUpdateIds +FNDA:0,(anonymous_2) +DA:1,0 +DA:2,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/getDictionaryTerm.js +FN:1,(anonymous_1) +FN:2,(anonymous_2) +FNF:2 +FNH:2 +FNDA:28,(anonymous_1) +FNDA:358,(anonymous_2) +DA:1,28 +DA:2,358 +DA:3,28 +LF:3 +LH:3 +BRDA:3,0,0,2 +BRDA:3,0,1,26 +BRF:2 +BRH:2 +end_of_record +TN: +SF:lib/utils/maskEmail.js +FN:2,maskEmail +FNF:1 +FNH:1 +FNDA:1,maskEmail +DA:2,1 +DA:3,1 +DA:4,1 +DA:6,1 +DA:7,14 +DA:8,1 +DA:9,13 +DA:10,10 +DA:11,10 +DA:13,3 +DA:14,3 +DA:18,1 +LF:12 +LH:12 +BRDA:7,0,0,1 +BRDA:7,0,1,13 +BRDA:9,1,0,10 +BRDA:9,1,1,3 +BRDA:9,2,0,13 +BRDA:9,2,1,12 +BRDA:9,2,2,11 +BRF:7 +BRH:7 +end_of_record +TN: +SF:lib/utils/shuffle.js +FN:1,(anonymous_1) +FNF:1 +FNH:1 +FNDA:1,(anonymous_1) +DA:1,6 +DA:3,1 +DA:4,0 +DA:5,0 +DA:7,1 +LF:5 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/sortUpdatesByDate.js +FN:1,(anonymous_1) +FN:2,(anonymous_2) +FNF:2 +FNH:2 +FNDA:7,(anonymous_1) +FNDA:5,(anonymous_2) +DA:1,7 +DA:2,7 +DA:3,5 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/stripFeedback.js +FN:1,stripFeedback +FNF:1 +FNH:1 +FNDA:7,stripFeedback +DA:1,7 +DA:3,7 +DA:9,7 +DA:15,7 +DA:21,7 +DA:25,7 +DA:30,7 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:middlewares/initMiddleware.js +FN:3,initMiddleware +FN:4,(anonymous_2) +FN:5,(anonymous_3) +FN:6,(anonymous_4) +FNF:4 +FNH:0 +FNDA:0,initMiddleware +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:10,0 +LF:7 +LH:0 +BRDA:7,0,0,0 +BRF:1 +BRH:0 +end_of_record +TN: +SF:middlewares/joi.js +FN:11,validate +FN:12,(anonymous_2) +FN:19,(anonymous_3) +FNF:3 +FNH:3 +FNDA:1,validate +FNDA:1,(anonymous_2) +FNDA:2,(anonymous_3) +DA:1,1 +DA:2,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,0 +DA:18,1 +DA:19,1 +DA:20,2 +DA:22,1 +LF:12 +LH:11 +BRDA:11,0,0,0 +BRDA:15,1,0,0 +BRDA:15,1,1,1 +BRF:3 +BRH:1 +end_of_record +TN: +SF:pages/404.js +FN:10,error404 +FN:16,(anonymous_5) +FN:233,(anonymous_6) +FNF:3 +FNH:2 +FNDA:2,error404 +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:10,1 +DA:11,2 +DA:12,2 +DA:13,2 +DA:14,2 +DA:16,2 +DA:17,1 +DA:18,0 +DA:19,0 +DA:23,1 +DA:24,0 +DA:26,1 +DA:31,2 +DA:32,1 +DA:233,1 +DA:234,0 +DA:236,0 +LF:25 +LH:20 +BRDA:17,0,0,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:23,2,0,0 +BRDA:23,2,1,1 +BRDA:31,3,0,1 +BRDA:52,4,0,0 +BRDA:52,4,1,1 +BRDA:67,5,0,0 +BRDA:67,5,1,1 +BRDA:118,6,0,0 +BRDA:118,6,1,1 +BRDA:123,7,0,0 +BRDA:123,7,1,1 +BRDA:162,8,0,0 +BRDA:162,8,1,1 +BRDA:214,9,0,0 +BRDA:214,9,1,1 +BRDA:219,10,0,0 +BRDA:219,10,1,1 +BRDA:239,11,0,0 +BRDA:239,11,1,0 +BRF:22 +BRH:9 +end_of_record +TN: +SF:pages/500.js +FN:10,error500 +FN:16,(anonymous_5) +FN:262,(anonymous_6) +FNF:3 +FNH:2 +FNDA:2,error500 +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:10,1 +DA:11,2 +DA:12,2 +DA:13,2 +DA:14,2 +DA:16,2 +DA:17,1 +DA:18,0 +DA:19,0 +DA:23,1 +DA:24,0 +DA:26,1 +DA:31,2 +DA:32,1 +DA:262,1 +DA:263,0 +DA:265,0 +LF:25 +LH:20 +BRDA:17,0,0,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:23,2,0,0 +BRDA:23,2,1,1 +BRDA:31,3,0,1 +BRDA:66,4,0,0 +BRDA:66,4,1,1 +BRDA:147,5,0,0 +BRDA:147,5,1,1 +BRDA:152,6,0,0 +BRDA:152,6,1,1 +BRDA:191,7,0,0 +BRDA:191,7,1,1 +BRDA:243,8,0,0 +BRDA:243,8,1,1 +BRDA:248,9,0,0 +BRDA:248,9,1,1 +BRDA:268,10,0,0 +BRDA:268,10,1,0 +BRF:20 +BRH:8 +end_of_record +TN: +SF:pages/_app.js +FN:23,MyApp +FNF:1 +FNH:0 +FNDA:0,MyApp +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:10,0 +DA:12,0 +DA:17,0 +DA:37,0 +LF:12 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:pages/cdcp-apply.js +FN:9,CDCPLanding +FN:36,(anonymous_5) +FN:135,(anonymous_6) +FNF:3 +FNH:0 +FNDA:0,CDCPLanding +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:9,0 +DA:10,0 +DA:12,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:135,0 +DA:136,0 +LF:16 +LH:0 +BRDA:37,0,0,0 +BRDA:38,1,0,0 +BRDA:38,1,1,0 +BRDA:46,2,0,0 +BRDA:46,2,1,0 +BRDA:63,3,0,0 +BRDA:63,3,1,0 +BRDA:69,4,0,0 +BRDA:69,4,1,0 +BRDA:139,5,0,0 +BRDA:139,5,1,0 +BRF:11 +BRH:0 +end_of_record +TN: +SF:pages/error.js +FN:10,ErrorPage +FN:25,(anonymous_5) +FN:439,(anonymous_6) +FNF:3 +FNH:0 +FNDA:0,ErrorPage +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:15,0 +DA:17,0 +DA:19,0 +DA:21,0 +DA:23,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:439,0 +DA:440,0 +DA:442,0 +LF:24 +LH:0 +BRDA:15,0,0,0 +BRDA:15,0,1,0 +BRDA:17,1,0,0 +BRDA:17,1,1,0 +BRDA:19,2,0,0 +BRDA:19,2,1,0 +BRDA:21,3,0,0 +BRDA:21,3,1,0 +BRDA:23,4,0,0 +BRDA:23,4,1,0 +BRDA:26,5,0,0 +BRDA:27,6,0,0 +BRDA:27,6,1,0 +BRDA:45,7,0,0 +BRDA:45,7,1,0 +BRDA:67,8,0,0 +BRDA:67,8,1,0 +BRDA:98,9,0,0 +BRDA:98,9,1,0 +BRDA:132,10,0,0 +BRDA:132,10,1,0 +BRDA:156,11,0,0 +BRDA:156,11,1,0 +BRDA:170,12,0,0 +BRDA:170,12,1,0 +BRDA:175,13,0,0 +BRDA:175,13,1,0 +BRDA:193,14,0,0 +BRDA:193,14,1,0 +BRDA:211,15,0,0 +BRDA:245,16,0,0 +BRDA:291,17,0,0 +BRDA:291,17,1,0 +BRDA:311,18,0,0 +BRDA:311,18,1,0 +BRDA:329,19,0,0 +BRDA:363,20,0,0 +BRDA:421,21,0,0 +BRDA:421,21,1,0 +BRDA:426,22,0,0 +BRDA:426,22,1,0 +BRDA:445,23,0,0 +BRDA:445,23,1,0 +BRF:43 +BRH:0 +end_of_record +TN: +SF:pages/home.js +FN:15,Home +FN:21,(anonymous_5) +FN:28,(anonymous_6) +FN:46,(anonymous_7) +FN:54,(anonymous_8) +FN:100,(anonymous_9) +FN:419,(anonymous_10) +FN:422,(anonymous_11) +FN:430,(anonymous_12) +FNF:9 +FNH:5 +FNDA:2,Home +FNDA:1,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:1,(anonymous_8) +FNDA:1,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:15,1 +DA:16,2 +DA:17,1 +DA:18,1 +DA:19,1 +DA:21,1 +DA:22,1 +DA:28,1 +DA:30,1 +DA:40,1 +DA:41,1 +DA:42,7 +DA:46,1 +DA:47,0 +DA:50,1 +DA:53,1 +DA:55,1 +DA:100,1 +DA:101,1 +DA:102,0 +DA:103,0 +DA:419,1 +DA:420,0 +DA:422,0 +DA:424,0 +DA:428,0 +DA:430,0 +DA:433,0 +DA:437,0 +LF:42 +LH:32 +BRDA:59,0,0,1 +BRDA:59,0,1,0 +BRDA:63,1,0,0 +BRDA:63,1,1,1 +BRDA:67,2,0,0 +BRDA:67,2,1,1 +BRDA:72,3,0,0 +BRDA:72,3,1,1 +BRDA:77,4,0,1 +BRDA:77,4,1,0 +BRDA:82,5,0,1 +BRDA:82,5,1,0 +BRDA:86,6,0,0 +BRDA:86,6,1,1 +BRDA:88,7,0,0 +BRDA:88,7,1,1 +BRDA:91,8,0,0 +BRDA:91,8,1,1 +BRDA:101,9,0,0 +BRDA:102,10,0,0 +BRDA:102,10,1,0 +BRDA:112,11,0,0 +BRDA:112,11,1,1 +BRDA:119,12,0,0 +BRDA:119,12,1,1 +BRDA:124,13,0,0 +BRDA:124,13,1,1 +BRDA:135,14,0,0 +BRDA:135,14,1,1 +BRDA:145,15,0,0 +BRDA:145,15,1,1 +BRDA:150,16,0,0 +BRDA:150,16,1,1 +BRDA:156,17,0,0 +BRDA:156,17,1,1 +BRDA:169,18,0,0 +BRDA:169,18,1,1 +BRDA:191,19,0,0 +BRDA:191,19,1,1 +BRDA:200,20,0,0 +BRDA:200,20,1,1 +BRDA:206,21,0,0 +BRDA:206,21,1,1 +BRDA:218,22,0,0 +BRDA:218,22,1,1 +BRDA:229,23,0,0 +BRDA:229,23,1,1 +BRDA:238,24,0,0 +BRDA:238,24,1,1 +BRDA:245,25,0,0 +BRDA:245,25,1,1 +BRDA:257,26,0,0 +BRDA:257,26,1,1 +BRDA:270,27,0,0 +BRDA:270,27,1,1 +BRDA:275,28,0,0 +BRDA:275,28,1,1 +BRDA:280,29,0,0 +BRDA:280,29,1,1 +BRDA:285,30,0,0 +BRDA:285,30,1,1 +BRDA:290,31,0,0 +BRDA:290,31,1,1 +BRDA:296,32,0,0 +BRDA:296,32,1,1 +BRDA:308,33,0,0 +BRDA:308,33,1,1 +BRDA:314,34,0,0 +BRDA:372,35,0,0 +BRDA:372,35,1,1 +BRDA:380,36,0,0 +BRDA:380,36,1,1 +BRDA:396,37,0,0 +BRDA:396,37,1,1 +BRDA:401,38,0,0 +BRDA:401,38,1,1 +BRDA:406,39,0,0 +BRDA:406,39,1,1 +BRDA:440,40,0,0 +BRDA:440,40,1,0 +BRDA:447,41,0,0 +BRDA:447,41,1,0 +BRF:82 +BRH:37 +end_of_record +TN: +SF:pages/index.js +FN:8,Index +FN:11,(anonymous_5) +FN:190,(anonymous_6) +FNF:3 +FNH:2 +FNDA:1,Index +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:8,1 +DA:9,1 +DA:11,1 +DA:12,1 +DA:13,0 +DA:14,0 +DA:16,1 +DA:190,1 +LF:14 +LH:12 +BRDA:12,0,0,0 +BRDA:13,1,0,0 +BRDA:13,1,1,0 +BRDA:47,2,0,0 +BRDA:47,2,1,1 +BRDA:192,3,0,0 +BRDA:192,3,1,0 +BRDA:193,4,0,0 +BRDA:193,4,1,0 +BRF:9 +BRH:1 +end_of_record +TN: +SF:pages/notsupported.js +FN:10,notSupported +FN:16,(anonymous_5) +FN:23,onClickEn +FN:28,onClickFr +FN:472,(anonymous_8) +FNF:5 +FNH:2 +FNDA:1,notSupported +FNDA:1,(anonymous_5) +FNDA:0,onClickEn +FNDA:0,onClickFr +FNDA:0,(anonymous_8) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:8,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:17,1 +DA:18,0 +DA:19,0 +DA:24,0 +DA:25,0 +DA:29,0 +DA:30,0 +DA:472,1 +DA:473,0 +DA:475,0 +LF:23 +LH:15 +BRDA:17,0,0,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:72,2,0,0 +BRDA:72,2,1,1 +BRDA:78,3,0,0 +BRDA:78,3,1,1 +BRDA:154,4,0,0 +BRDA:154,4,1,1 +BRDA:159,5,0,0 +BRDA:159,5,1,1 +BRDA:182,6,0,0 +BRDA:182,6,1,1 +BRDA:210,7,0,0 +BRDA:210,7,1,1 +BRDA:215,8,0,0 +BRDA:215,8,1,1 +BRDA:229,9,0,0 +BRDA:229,9,1,1 +BRDA:234,10,0,0 +BRDA:234,10,1,1 +BRDA:248,11,0,0 +BRDA:248,11,1,1 +BRDA:253,12,0,0 +BRDA:253,12,1,1 +BRDA:267,13,0,0 +BRDA:267,13,1,1 +BRDA:272,14,0,0 +BRDA:272,14,1,1 +BRDA:293,15,0,0 +BRDA:293,15,1,1 +BRDA:294,16,0,0 +BRDA:294,16,1,1 +BRDA:369,17,0,0 +BRDA:369,17,1,1 +BRDA:371,18,0,0 +BRDA:371,18,1,1 +BRDA:453,19,0,0 +BRDA:453,19,1,1 +BRDA:458,20,0,0 +BRDA:458,20,1,1 +BRDA:478,21,0,0 +BRDA:478,21,1,0 +BRF:43 +BRH:19 +end_of_record +TN: +SF:pages/projects.js +FN:11,ProjectsPage +FN:18,(anonymous_5) +FN:20,(anonymous_6) +FN:27,(anonymous_7) +FN:37,(anonymous_8) +FN:39,(anonymous_9) +FN:40,(anonymous_10) +FN:46,(anonymous_11) +FN:93,(anonymous_12) +FN:158,(anonymous_13) +FN:162,(anonymous_14) +FN:166,(anonymous_15) +FN:170,(anonymous_16) +FNF:13 +FNH:0 +FNDA:0,ProjectsPage +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:25,0 +DA:27,0 +DA:28,0 +DA:34,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:45,0 +DA:47,0 +DA:93,0 +DA:94,0 +DA:95,0 +DA:96,0 +DA:158,0 +DA:160,0 +DA:162,0 +DA:164,0 +DA:166,0 +DA:168,0 +DA:170,0 +DA:172,0 +LF:44 +LH:0 +BRDA:21,0,0,0 +BRDA:38,1,0,0 +BRDA:54,2,0,0 +BRDA:54,2,1,0 +BRDA:57,3,0,0 +BRDA:57,3,1,0 +BRDA:63,4,0,0 +BRDA:63,4,1,0 +BRDA:68,5,0,0 +BRDA:68,5,1,0 +BRDA:73,6,0,0 +BRDA:73,6,1,0 +BRDA:78,7,0,0 +BRDA:78,7,1,0 +BRDA:83,8,0,0 +BRDA:83,8,1,0 +BRDA:94,9,0,0 +BRDA:95,10,0,0 +BRDA:95,10,1,0 +BRDA:105,11,0,0 +BRDA:105,11,1,0 +BRDA:124,12,0,0 +BRDA:124,12,1,0 +BRDA:130,13,0,0 +BRDA:130,13,1,0 +BRDA:175,14,0,0 +BRDA:175,14,1,0 +BRDA:181,15,0,0 +BRDA:181,15,1,0 +BRF:29 +BRH:0 +end_of_record +TN: +SF:pages/updates.js +FN:12,UpdatesPage +FN:19,(anonymous_5) +FN:21,(anonymous_6) +FN:28,(anonymous_7) +FN:41,(anonymous_8) +FN:43,(anonymous_9) +FN:44,(anonymous_10) +FN:52,(anonymous_11) +FN:87,(anonymous_12) +FN:97,(anonymous_13) +FN:164,(anonymous_14) +FN:168,(anonymous_15) +FN:172,(anonymous_16) +FN:176,(anonymous_17) +FNF:14 +FNH:0 +FNDA:0,UpdatesPage +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +FNDA:0,(anonymous_17) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:26,0 +DA:28,0 +DA:29,0 +DA:38,0 +DA:41,0 +DA:42,0 +DA:43,0 +DA:44,0 +DA:45,0 +DA:49,0 +DA:53,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:92,0 +DA:93,0 +DA:95,0 +DA:96,0 +DA:97,0 +DA:99,0 +DA:103,0 +DA:104,0 +DA:164,0 +DA:166,0 +DA:168,0 +DA:170,0 +DA:172,0 +DA:174,0 +DA:176,0 +DA:178,0 +LF:53 +LH:0 +BRDA:22,0,0,0 +BRDA:32,1,0,0 +BRDA:32,1,1,0 +BRDA:42,2,0,0 +BRDA:58,3,0,0 +BRDA:58,3,1,0 +BRDA:60,4,0,0 +BRDA:60,4,1,0 +BRDA:66,5,0,0 +BRDA:66,5,1,0 +BRDA:69,6,0,0 +BRDA:69,6,1,0 +BRDA:88,7,0,0 +BRDA:89,8,0,0 +BRDA:89,8,1,0 +BRDA:93,9,0,0 +BRDA:95,10,0,0 +BRDA:95,10,1,0 +BRDA:113,11,0,0 +BRDA:113,11,1,0 +BRDA:132,12,0,0 +BRDA:132,12,1,0 +BRDA:138,13,0,0 +BRDA:138,13,1,0 +BRDA:181,14,0,0 +BRDA:181,14,1,0 +BRDA:187,15,0,0 +BRDA:187,15,1,0 +BRF:28 +BRH:0 +end_of_record +TN: +SF:pages/api/healthcheck.js +FN:2,handler +FNF:1 +FNH:0 +FNDA:0,handler +DA:2,0 +DA:3,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:pages/api/report-a-problem.js +FN:7,handler +FNF:1 +FNH:1 +FNDA:5,handler +DA:1,1 +DA:8,5 +DA:10,5 +DA:14,2 +DA:16,3 +DA:17,3 +DA:46,2 +DA:47,1 +DA:49,1 +DA:50,1 +DA:53,1 +DA:54,1 +DA:58,0 +DA:59,0 +DA:63,5 +LF:15 +LH:13 +BRDA:8,0,0,5 +BRDA:8,0,1,0 +BRDA:10,1,0,2 +BRDA:10,1,1,3 +BRDA:11,2,0,5 +BRDA:11,2,1,4 +BRDA:20,3,0,3 +BRDA:20,3,1,0 +BRDA:46,4,0,1 +BRDA:46,4,1,1 +BRF:10 +BRH:8 +end_of_record +TN: +SF:pages/api/robots.js +FN:7,handler +FNF:1 +FNH:1 +FNDA:2,handler +DA:7,2 +DA:8,2 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:17,1 +DA:19,2 +LF:11 +LH:11 +BRDA:8,0,0,1 +BRDA:8,0,1,1 +BRF:2 +BRH:2 +end_of_record +TN: +SF:pages/api/submit-feedback.js +FN:3,handler +FNF:1 +FNH:1 +FNDA:3,handler +DA:1,1 +DA:3,3 +DA:4,3 +DA:5,3 +DA:6,1 +DA:8,2 +DA:9,2 +DA:10,2 +DA:11,1 +DA:13,1 +DA:16,1 +DA:17,1 +LF:12 +LH:12 +BRDA:5,0,0,1 +BRDA:5,0,1,2 +BRDA:10,1,0,1 +BRDA:10,1,1,1 +BRF:4 +BRH:4 +end_of_record +TN: +SF:pages/projects/benefits-finder/[id].js +FN:12,BenefitFinderArticles +FN:16,(anonymous_6) +FN:83,getStaticPaths +FN:90,(anonymous_8) +FN:97,(anonymous_9) +FN:108,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,BenefitFinderArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:83,0 +DA:85,0 +DA:89,0 +DA:90,0 +DA:91,0 +DA:97,0 +DA:99,0 +DA:103,0 +DA:106,0 +DA:108,0 +DA:109,0 +DA:116,0 +DA:117,0 +DA:122,0 +LF:31 +LH:0 +BRDA:17,0,0,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:28,2,0,0 +BRDA:28,2,1,0 +BRDA:43,3,0,0 +BRDA:43,3,1,0 +BRDA:49,4,0,0 +BRDA:49,4,1,0 +BRDA:59,5,0,0 +BRDA:59,5,1,0 +BRDA:110,6,0,0 +BRDA:110,6,1,0 +BRDA:116,7,0,0 +BRDA:116,8,0,0 +BRDA:116,8,1,0 +BRDA:128,9,0,0 +BRDA:128,9,1,0 +BRDA:131,10,0,0 +BRDA:131,10,1,0 +BRF:20 +BRH:0 +end_of_record +TN: +SF:pages/projects/benefits-finder/index.js +FN:20,BenefitsFinderOverview +FN:26,(anonymous_5) +FN:34,(anonymous_6) +FN:371,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,BenefitsFinderOverview +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:21,1 +DA:22,1 +DA:23,1 +DA:24,1 +DA:27,21 +DA:34,1 +DA:35,1 +DA:36,0 +DA:37,0 +DA:371,1 +DA:373,0 +DA:377,0 +DA:381,0 +DA:385,0 +LF:33 +LH:27 +BRDA:27,0,0,21 +BRDA:27,0,1,20 +BRDA:27,0,2,19 +BRDA:27,0,3,18 +BRDA:35,1,0,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:46,3,0,0 +BRDA:46,3,1,1 +BRDA:57,4,0,0 +BRDA:57,4,1,1 +BRDA:64,5,0,0 +BRDA:64,5,1,1 +BRDA:76,6,0,0 +BRDA:76,6,1,1 +BRDA:86,7,0,0 +BRDA:86,7,1,1 +BRDA:96,8,0,0 +BRDA:96,8,1,1 +BRDA:101,9,0,0 +BRDA:101,9,1,1 +BRDA:107,10,0,0 +BRDA:107,10,1,1 +BRDA:123,11,0,0 +BRDA:123,11,1,1 +BRDA:143,12,0,0 +BRDA:143,12,1,1 +BRDA:152,13,0,0 +BRDA:152,13,1,1 +BRDA:158,14,0,0 +BRDA:158,14,1,1 +BRDA:170,15,0,0 +BRDA:170,15,1,1 +BRDA:183,16,0,0 +BRDA:183,16,1,1 +BRDA:192,17,0,0 +BRDA:192,17,1,1 +BRDA:199,18,0,0 +BRDA:199,18,1,1 +BRDA:211,19,0,0 +BRDA:211,19,1,1 +BRDA:226,20,0,0 +BRDA:226,20,1,1 +BRDA:237,21,0,0 +BRDA:237,21,1,1 +BRDA:242,22,0,0 +BRDA:242,22,1,1 +BRDA:256,23,0,0 +BRDA:256,23,1,1 +BRDA:265,24,0,0 +BRDA:265,24,1,1 +BRDA:270,25,0,0 +BRDA:270,25,1,1 +BRDA:275,26,0,0 +BRDA:275,26,1,1 +BRDA:283,27,0,0 +BRDA:283,27,1,1 +BRDA:290,28,0,0 +BRDA:290,28,1,1 +BRDA:297,29,0,0 +BRDA:297,29,1,1 +BRDA:302,30,0,0 +BRDA:302,30,1,1 +BRDA:307,31,0,0 +BRDA:307,31,1,1 +BRDA:314,32,0,0 +BRDA:314,32,1,1 +BRDA:327,33,0,1 +BRDA:327,33,1,0 +BRDA:333,34,0,0 +BRDA:333,34,1,1 +BRDA:351,35,0,0 +BRDA:351,35,1,1 +BRDA:388,36,0,0 +BRDA:388,36,1,0 +BRDA:395,37,0,0 +BRDA:395,37,1,0 +BRF:77 +BRH:37 +end_of_record +TN: +SF:pages/projects/benefits-navigator/[id].js +FN:17,BenefitNavigatorArticles +FN:22,(anonymous_6) +FN:136,getStaticPaths +FN:143,(anonymous_8) +FN:150,(anonymous_9) +FN:164,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,BenefitNavigatorArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:136,0 +DA:138,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:150,0 +DA:152,0 +DA:155,0 +DA:159,0 +DA:162,0 +DA:164,0 +DA:165,0 +DA:172,0 +DA:173,0 +DA:178,0 +LF:38 +LH:0 +BRDA:23,0,0,0 +BRDA:24,1,0,0 +BRDA:24,1,1,0 +BRDA:34,2,0,0 +BRDA:34,2,1,0 +BRDA:49,3,0,0 +BRDA:49,3,1,0 +BRDA:59,4,0,0 +BRDA:59,4,1,0 +BRDA:64,5,0,0 +BRDA:64,5,1,0 +BRDA:92,6,0,0 +BRDA:92,6,1,0 +BRDA:98,7,0,0 +BRDA:98,7,1,0 +BRDA:116,8,0,0 +BRDA:116,8,1,0 +BRDA:166,9,0,0 +BRDA:166,9,1,0 +BRDA:172,10,0,0 +BRDA:172,11,0,0 +BRDA:172,11,1,0 +BRDA:186,12,0,0 +BRDA:186,12,1,0 +BRDA:189,13,0,0 +BRDA:189,13,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:pages/projects/benefits-navigator/index.js +FN:21,BenefitsNavigatorOverview +FN:27,(anonymous_5) +FN:35,(anonymous_6) +FN:636,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,BenefitsNavigatorOverview +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:19,1 +DA:21,1 +DA:22,1 +DA:23,1 +DA:24,1 +DA:25,1 +DA:28,21 +DA:35,1 +DA:36,1 +DA:37,0 +DA:38,0 +DA:636,1 +DA:638,0 +DA:642,0 +DA:646,0 +DA:650,0 +LF:34 +LH:28 +BRDA:28,0,0,21 +BRDA:28,0,1,20 +BRDA:28,0,2,19 +BRDA:28,0,3,18 +BRDA:36,1,0,0 +BRDA:37,2,0,0 +BRDA:37,2,1,0 +BRDA:47,3,0,0 +BRDA:47,3,1,1 +BRDA:58,4,0,0 +BRDA:58,4,1,1 +BRDA:65,5,0,0 +BRDA:65,5,1,1 +BRDA:77,6,0,0 +BRDA:77,6,1,1 +BRDA:87,7,0,0 +BRDA:87,7,1,1 +BRDA:97,8,0,0 +BRDA:97,8,1,1 +BRDA:102,9,0,0 +BRDA:102,9,1,1 +BRDA:108,10,0,0 +BRDA:108,10,1,1 +BRDA:124,11,0,0 +BRDA:124,11,1,1 +BRDA:144,12,0,0 +BRDA:144,12,1,1 +BRDA:153,13,0,0 +BRDA:153,13,1,1 +BRDA:159,14,0,0 +BRDA:159,14,1,1 +BRDA:171,15,0,0 +BRDA:171,15,1,1 +BRDA:184,16,0,0 +BRDA:184,16,1,1 +BRDA:193,17,0,0 +BRDA:193,17,1,1 +BRDA:200,18,0,0 +BRDA:200,18,1,1 +BRDA:212,19,0,0 +BRDA:212,19,1,1 +BRDA:227,20,0,0 +BRDA:227,20,1,1 +BRDA:237,21,0,0 +BRDA:237,21,1,1 +BRDA:244,22,0,0 +BRDA:244,22,1,1 +BRDA:260,23,0,0 +BRDA:260,23,1,1 +BRDA:265,24,0,0 +BRDA:265,24,1,1 +BRDA:279,25,0,0 +BRDA:279,25,1,1 +BRDA:288,26,0,0 +BRDA:288,26,1,1 +BRDA:293,27,0,0 +BRDA:293,27,1,1 +BRDA:298,28,0,0 +BRDA:298,28,1,1 +BRDA:306,29,0,0 +BRDA:306,29,1,1 +BRDA:313,30,0,0 +BRDA:313,30,1,1 +BRDA:320,31,0,0 +BRDA:320,31,1,1 +BRDA:325,32,0,0 +BRDA:325,32,1,1 +BRDA:330,33,0,0 +BRDA:330,33,1,1 +BRDA:342,34,0,0 +BRDA:342,34,1,1 +BRDA:347,35,0,0 +BRDA:347,35,1,1 +BRDA:352,36,0,0 +BRDA:352,36,1,1 +BRDA:358,37,0,0 +BRDA:358,37,1,1 +BRDA:365,38,0,0 +BRDA:365,38,1,1 +BRDA:372,39,0,0 +BRDA:372,39,1,1 +BRDA:380,40,0,0 +BRDA:380,40,1,1 +BRDA:386,41,0,0 +BRDA:386,41,1,1 +BRDA:395,42,0,0 +BRDA:395,42,1,1 +BRDA:402,43,0,0 +BRDA:402,43,1,1 +BRDA:424,44,0,0 +BRDA:424,44,1,1 +BRDA:437,45,0,0 +BRDA:437,45,1,1 +BRDA:446,46,0,0 +BRDA:446,46,1,1 +BRDA:461,47,0,0 +BRDA:461,47,1,1 +BRDA:468,48,0,0 +BRDA:468,48,1,1 +BRDA:490,49,0,0 +BRDA:490,49,1,1 +BRDA:503,50,0,0 +BRDA:503,50,1,1 +BRDA:512,51,0,0 +BRDA:512,51,1,1 +BRDA:527,52,0,0 +BRDA:527,52,1,1 +BRDA:534,53,0,0 +BRDA:534,53,1,1 +BRDA:556,54,0,0 +BRDA:556,54,1,1 +BRDA:569,55,0,0 +BRDA:569,55,1,1 +BRDA:578,56,0,0 +BRDA:578,56,1,1 +BRDA:592,57,0,1 +BRDA:592,57,1,0 +BRDA:598,58,0,0 +BRDA:598,58,1,1 +BRDA:616,59,0,0 +BRDA:616,59,1,1 +BRDA:653,60,0,0 +BRDA:653,60,1,0 +BRDA:660,61,0,0 +BRDA:660,61,1,0 +BRF:125 +BRH:61 +end_of_record +TN: +SF:pages/projects/dashboard/[id].js +FN:17,MscaDashboardArticles +FN:22,(anonymous_6) +FN:136,getStaticPaths +FN:143,(anonymous_8) +FN:150,(anonymous_9) +FN:164,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,MscaDashboardArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:136,0 +DA:138,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:150,0 +DA:152,0 +DA:155,0 +DA:159,0 +DA:162,0 +DA:164,0 +DA:165,0 +DA:172,0 +DA:173,0 +DA:178,0 +LF:38 +LH:0 +BRDA:23,0,0,0 +BRDA:24,1,0,0 +BRDA:24,1,1,0 +BRDA:34,2,0,0 +BRDA:34,2,1,0 +BRDA:49,3,0,0 +BRDA:49,3,1,0 +BRDA:59,4,0,0 +BRDA:59,4,1,0 +BRDA:64,5,0,0 +BRDA:64,5,1,0 +BRDA:92,6,0,0 +BRDA:92,6,1,0 +BRDA:98,7,0,0 +BRDA:98,7,1,0 +BRDA:116,8,0,0 +BRDA:116,8,1,0 +BRDA:166,9,0,0 +BRDA:166,9,1,0 +BRDA:172,10,0,0 +BRDA:172,11,0,0 +BRDA:172,11,1,0 +BRDA:186,12,0,0 +BRDA:186,12,1,0 +BRDA:189,13,0,0 +BRDA:189,13,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:pages/projects/dashboard/index.js +FN:20,MscaDashboard +FN:25,(anonymous_5) +FN:32,(anonymous_6) +FN:363,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,MscaDashboard +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:21,1 +DA:22,1 +DA:24,1 +DA:26,21 +DA:32,1 +DA:33,1 +DA:34,0 +DA:35,0 +DA:363,1 +DA:365,0 +DA:369,0 +DA:373,0 +DA:377,0 +LF:31 +LH:25 +BRDA:26,0,0,21 +BRDA:26,0,1,20 +BRDA:26,0,2,19 +BRDA:26,0,3,18 +BRDA:33,1,0,0 +BRDA:34,2,0,0 +BRDA:34,2,1,0 +BRDA:44,3,0,0 +BRDA:44,3,1,1 +BRDA:55,4,0,0 +BRDA:55,4,1,1 +BRDA:62,5,0,0 +BRDA:62,5,1,1 +BRDA:74,6,0,0 +BRDA:74,6,1,1 +BRDA:84,7,0,0 +BRDA:84,7,1,1 +BRDA:94,8,0,0 +BRDA:94,8,1,1 +BRDA:99,9,0,0 +BRDA:99,9,1,1 +BRDA:105,10,0,0 +BRDA:105,10,1,1 +BRDA:121,11,0,0 +BRDA:121,11,1,1 +BRDA:141,12,0,0 +BRDA:141,12,1,1 +BRDA:150,13,0,0 +BRDA:150,13,1,1 +BRDA:156,14,0,0 +BRDA:156,14,1,1 +BRDA:168,15,0,0 +BRDA:168,15,1,1 +BRDA:179,16,0,0 +BRDA:179,16,1,1 +BRDA:188,17,0,0 +BRDA:188,17,1,1 +BRDA:195,18,0,0 +BRDA:195,18,1,1 +BRDA:207,19,0,0 +BRDA:207,19,1,1 +BRDA:220,20,0,0 +BRDA:220,20,1,1 +BRDA:231,21,0,0 +BRDA:231,21,1,1 +BRDA:236,22,0,1 +BRDA:236,22,1,1 +BRDA:236,23,0,0 +BRDA:236,23,1,1 +BRDA:250,24,0,0 +BRDA:250,24,1,1 +BRDA:259,25,0,0 +BRDA:259,25,1,1 +BRDA:264,26,0,0 +BRDA:264,26,1,1 +BRDA:269,27,0,0 +BRDA:269,27,1,1 +BRDA:277,28,0,0 +BRDA:277,28,1,1 +BRDA:284,29,0,0 +BRDA:284,29,1,1 +BRDA:291,30,0,0 +BRDA:291,30,1,1 +BRDA:296,31,0,0 +BRDA:296,31,1,1 +BRDA:301,32,0,0 +BRDA:301,32,1,1 +BRDA:319,33,0,1 +BRDA:319,33,1,0 +BRDA:325,34,0,0 +BRDA:325,34,1,1 +BRDA:343,35,0,0 +BRDA:343,35,1,1 +BRDA:380,36,0,0 +BRDA:380,36,1,0 +BRDA:387,37,0,0 +BRDA:387,37,1,0 +BRF:77 +BRH:38 +end_of_record +TN: +SF:pages/projects/digital-standards-playbook/[id].js +FN:18,DigitalStandardsArticles +FN:24,(anonymous_6) +FN:138,getStaticPaths +FN:146,(anonymous_8) +FN:153,(anonymous_9) +FN:167,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,DigitalStandardsArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:138,0 +DA:140,0 +DA:144,0 +DA:146,0 +DA:147,0 +DA:153,0 +DA:155,0 +DA:158,0 +DA:162,0 +DA:165,0 +DA:167,0 +DA:168,0 +DA:175,0 +DA:176,0 +DA:181,0 +LF:40 +LH:0 +BRDA:25,0,0,0 +BRDA:26,1,0,0 +BRDA:26,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:51,3,0,0 +BRDA:51,3,1,0 +BRDA:61,4,0,0 +BRDA:61,4,1,0 +BRDA:66,5,0,0 +BRDA:66,5,1,0 +BRDA:94,6,0,0 +BRDA:94,6,1,0 +BRDA:100,7,0,0 +BRDA:100,7,1,0 +BRDA:118,8,0,0 +BRDA:118,8,1,0 +BRDA:169,9,0,0 +BRDA:169,9,1,0 +BRDA:175,10,0,0 +BRDA:175,11,0,0 +BRDA:175,11,1,0 +BRDA:189,12,0,0 +BRDA:189,12,1,0 +BRDA:192,13,0,0 +BRDA:192,13,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:pages/projects/digital-standards-playbook/index.js +FN:20,DigitalStandardsPlaybookPage +FN:26,(anonymous_5) +FN:33,(anonymous_6) +FN:442,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,DigitalStandardsPlaybookPage +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:21,1 +DA:22,1 +DA:23,1 +DA:25,1 +DA:27,21 +DA:33,1 +DA:34,1 +DA:35,0 +DA:36,0 +DA:442,1 +DA:444,0 +DA:448,0 +DA:452,0 +DA:456,0 +LF:33 +LH:27 +BRDA:27,0,0,21 +BRDA:27,0,1,20 +BRDA:27,0,2,19 +BRDA:27,0,3,18 +BRDA:34,1,0,0 +BRDA:35,2,0,0 +BRDA:35,2,1,0 +BRDA:45,3,0,0 +BRDA:45,3,1,1 +BRDA:47,4,0,1 +BRDA:47,4,1,1 +BRDA:56,5,0,0 +BRDA:56,5,1,1 +BRDA:63,6,0,0 +BRDA:63,6,1,1 +BRDA:75,7,0,0 +BRDA:75,7,1,1 +BRDA:85,8,0,0 +BRDA:85,8,1,1 +BRDA:95,9,0,0 +BRDA:95,9,1,1 +BRDA:100,10,0,0 +BRDA:100,10,1,1 +BRDA:106,11,0,0 +BRDA:106,11,1,1 +BRDA:122,12,0,0 +BRDA:122,12,1,1 +BRDA:142,13,0,0 +BRDA:142,13,1,1 +BRDA:151,14,0,0 +BRDA:151,14,1,1 +BRDA:157,15,0,0 +BRDA:157,15,1,1 +BRDA:169,16,0,0 +BRDA:169,16,1,1 +BRDA:180,17,0,0 +BRDA:180,17,1,1 +BRDA:189,18,0,0 +BRDA:189,18,1,1 +BRDA:196,19,0,0 +BRDA:196,19,1,1 +BRDA:208,20,0,0 +BRDA:208,20,1,1 +BRDA:221,21,0,0 +BRDA:221,21,1,1 +BRDA:232,22,0,0 +BRDA:232,22,1,1 +BRDA:237,23,0,1 +BRDA:237,23,1,1 +BRDA:237,24,0,0 +BRDA:237,24,1,1 +BRDA:251,25,0,0 +BRDA:251,25,1,1 +BRDA:260,26,0,0 +BRDA:260,26,1,1 +BRDA:265,27,0,0 +BRDA:265,27,1,1 +BRDA:270,28,0,0 +BRDA:270,28,1,1 +BRDA:278,29,0,0 +BRDA:278,29,1,1 +BRDA:285,30,0,0 +BRDA:285,30,1,1 +BRDA:292,31,0,0 +BRDA:292,31,1,1 +BRDA:297,32,0,0 +BRDA:297,32,1,1 +BRDA:302,33,0,0 +BRDA:302,33,1,1 +BRDA:315,34,0,0 +BRDA:315,34,1,1 +BRDA:321,35,0,0 +BRDA:321,35,1,1 +BRDA:327,36,0,0 +BRDA:327,36,1,1 +BRDA:334,37,0,0 +BRDA:334,37,1,1 +BRDA:340,38,0,0 +BRDA:340,38,1,1 +BRDA:351,39,0,0 +BRDA:351,39,1,1 +BRDA:356,40,0,0 +BRDA:356,40,1,1 +BRDA:364,41,0,0 +BRDA:364,41,1,1 +BRDA:371,42,0,0 +BRDA:371,42,1,1 +BRDA:378,43,0,0 +BRDA:378,43,1,1 +BRDA:384,44,0,0 +BRDA:384,44,1,1 +BRDA:390,45,0,0 +BRDA:390,45,1,1 +BRDA:398,46,0,1 +BRDA:398,46,1,0 +BRDA:404,47,0,0 +BRDA:404,47,1,1 +BRDA:422,48,0,0 +BRDA:422,48,1,1 +BRDA:459,49,0,0 +BRDA:459,49,1,0 +BRDA:466,50,0,0 +BRDA:466,50,1,0 +BRF:103 +BRH:52 +end_of_record +TN: +SF:pages/projects/making-easier-get-benefits/[id].js +FN:18,IntegratedChannelStrategyArticles +FN:24,(anonymous_6) +FN:138,getStaticPaths +FN:146,(anonymous_8) +FN:153,(anonymous_9) +FN:167,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,IntegratedChannelStrategyArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:138,0 +DA:140,0 +DA:144,0 +DA:146,0 +DA:147,0 +DA:153,0 +DA:155,0 +DA:158,0 +DA:162,0 +DA:165,0 +DA:167,0 +DA:168,0 +DA:175,0 +DA:176,0 +DA:181,0 +LF:40 +LH:0 +BRDA:25,0,0,0 +BRDA:26,1,0,0 +BRDA:26,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:51,3,0,0 +BRDA:51,3,1,0 +BRDA:61,4,0,0 +BRDA:61,4,1,0 +BRDA:66,5,0,0 +BRDA:66,5,1,0 +BRDA:94,6,0,0 +BRDA:94,6,1,0 +BRDA:100,7,0,0 +BRDA:100,7,1,0 +BRDA:118,8,0,0 +BRDA:118,8,1,0 +BRDA:169,9,0,0 +BRDA:169,9,1,0 +BRDA:175,10,0,0 +BRDA:175,11,0,0 +BRDA:175,11,1,0 +BRDA:189,12,0,0 +BRDA:189,12,1,0 +BRDA:192,13,0,0 +BRDA:192,13,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:pages/projects/making-easier-get-benefits/index.js +FN:20,IntegratedChannelStrategyPage +FN:27,(anonymous_5) +FN:35,(anonymous_6) +FN:371,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,IntegratedChannelStrategyPage +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:21,1 +DA:22,1 +DA:23,1 +DA:25,1 +DA:28,21 +DA:35,1 +DA:36,1 +DA:37,0 +DA:38,0 +DA:371,1 +DA:373,0 +DA:377,0 +DA:381,0 +DA:385,0 +LF:33 +LH:27 +BRDA:28,0,0,21 +BRDA:28,0,1,20 +BRDA:28,0,2,19 +BRDA:28,0,3,18 +BRDA:36,1,0,0 +BRDA:37,2,0,0 +BRDA:37,2,1,0 +BRDA:47,3,0,0 +BRDA:47,3,1,1 +BRDA:58,4,0,0 +BRDA:58,4,1,1 +BRDA:65,5,0,0 +BRDA:65,5,1,1 +BRDA:77,6,0,0 +BRDA:77,6,1,1 +BRDA:87,7,0,0 +BRDA:87,7,1,1 +BRDA:97,8,0,0 +BRDA:97,8,1,1 +BRDA:102,9,0,0 +BRDA:102,9,1,1 +BRDA:108,10,0,0 +BRDA:108,10,1,1 +BRDA:124,11,0,0 +BRDA:124,11,1,1 +BRDA:144,12,0,0 +BRDA:144,12,1,1 +BRDA:153,13,0,0 +BRDA:153,13,1,1 +BRDA:159,14,0,0 +BRDA:159,14,1,1 +BRDA:171,15,0,0 +BRDA:171,15,1,1 +BRDA:182,16,0,0 +BRDA:182,16,1,1 +BRDA:191,17,0,0 +BRDA:191,17,1,1 +BRDA:198,18,0,0 +BRDA:198,18,1,1 +BRDA:210,19,0,0 +BRDA:210,19,1,1 +BRDA:223,20,0,0 +BRDA:223,20,1,1 +BRDA:234,21,0,0 +BRDA:234,21,1,1 +BRDA:239,22,0,1 +BRDA:239,22,1,0 +BRDA:239,23,0,0 +BRDA:239,23,1,1 +BRDA:253,24,0,0 +BRDA:253,24,1,1 +BRDA:262,25,0,0 +BRDA:262,25,1,1 +BRDA:267,26,0,0 +BRDA:267,26,1,1 +BRDA:272,27,0,0 +BRDA:272,27,1,1 +BRDA:280,28,0,0 +BRDA:280,28,1,1 +BRDA:287,29,0,0 +BRDA:287,29,1,1 +BRDA:294,30,0,0 +BRDA:294,30,1,1 +BRDA:299,31,0,0 +BRDA:299,31,1,1 +BRDA:304,32,0,0 +BRDA:304,32,1,1 +BRDA:318,33,0,0 +BRDA:318,33,1,1 +BRDA:327,34,0,0 +BRDA:327,34,1,1 +BRDA:333,35,0,0 +BRDA:333,35,1,0 +BRDA:351,36,0,0 +BRDA:351,36,1,0 +BRDA:388,37,0,0 +BRDA:388,37,1,0 +BRDA:395,38,0,0 +BRDA:395,38,1,0 +BRF:79 +BRH:36 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/[id].js +FN:18,OASBenefitsEstimatorArticles +FN:24,(anonymous_6) +FN:138,getStaticPaths +FN:146,(anonymous_8) +FN:153,(anonymous_9) +FN:167,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,OASBenefitsEstimatorArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:24,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:138,0 +DA:140,0 +DA:144,0 +DA:146,0 +DA:147,0 +DA:153,0 +DA:155,0 +DA:158,0 +DA:162,0 +DA:165,0 +DA:167,0 +DA:168,0 +DA:175,0 +DA:176,0 +DA:181,0 +LF:40 +LH:0 +BRDA:25,0,0,0 +BRDA:26,1,0,0 +BRDA:26,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:51,3,0,0 +BRDA:51,3,1,0 +BRDA:61,4,0,0 +BRDA:61,4,1,0 +BRDA:66,5,0,0 +BRDA:66,5,1,0 +BRDA:94,6,0,0 +BRDA:94,6,1,0 +BRDA:100,7,0,0 +BRDA:100,7,1,0 +BRDA:118,8,0,0 +BRDA:118,8,1,0 +BRDA:169,9,0,0 +BRDA:169,9,1,0 +BRDA:175,10,0,0 +BRDA:175,11,0,0 +BRDA:175,11,1,0 +BRDA:189,12,0,0 +BRDA:189,12,1,0 +BRDA:192,13,0,0 +BRDA:192,13,1,0 +BRF:26 +BRH:0 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/index.js +FN:19,OasBenefitsEstimator +FN:26,(anonymous_5) +FN:34,(anonymous_6) +FN:423,(anonymous_7) +FNF:4 +FNH:3 +FNDA:1,OasBenefitsEstimator +FNDA:21,(anonymous_5) +FNDA:1,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:17,1 +DA:19,1 +DA:20,1 +DA:21,1 +DA:22,1 +DA:24,1 +DA:27,21 +DA:34,1 +DA:35,1 +DA:36,0 +DA:37,0 +DA:423,1 +DA:425,0 +DA:429,0 +DA:433,0 +DA:437,0 +LF:32 +LH:26 +BRDA:27,0,0,21 +BRDA:27,0,1,20 +BRDA:27,0,2,19 +BRDA:27,0,3,18 +BRDA:35,1,0,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:46,3,0,0 +BRDA:46,3,1,1 +BRDA:57,4,0,0 +BRDA:57,4,1,1 +BRDA:64,5,0,0 +BRDA:64,5,1,1 +BRDA:76,6,0,0 +BRDA:76,6,1,1 +BRDA:86,7,0,0 +BRDA:86,7,1,1 +BRDA:96,8,0,0 +BRDA:96,8,1,1 +BRDA:101,9,0,0 +BRDA:101,9,1,1 +BRDA:107,10,0,0 +BRDA:107,10,1,1 +BRDA:123,11,0,0 +BRDA:123,11,1,1 +BRDA:143,12,0,0 +BRDA:143,12,1,1 +BRDA:152,13,0,0 +BRDA:152,13,1,1 +BRDA:158,14,0,0 +BRDA:158,14,1,1 +BRDA:170,15,0,0 +BRDA:170,15,1,1 +BRDA:181,16,0,0 +BRDA:181,16,1,1 +BRDA:190,17,0,0 +BRDA:190,17,1,1 +BRDA:197,18,0,0 +BRDA:197,18,1,1 +BRDA:209,19,0,0 +BRDA:209,19,1,1 +BRDA:222,20,0,0 +BRDA:222,20,1,1 +BRDA:233,21,0,0 +BRDA:233,21,1,1 +BRDA:238,22,0,1 +BRDA:238,22,1,0 +BRDA:238,23,0,0 +BRDA:238,23,1,1 +BRDA:252,24,0,0 +BRDA:252,24,1,1 +BRDA:261,25,0,0 +BRDA:261,25,1,1 +BRDA:266,26,0,0 +BRDA:266,26,1,1 +BRDA:271,27,0,0 +BRDA:271,27,1,1 +BRDA:279,28,0,0 +BRDA:279,28,1,1 +BRDA:286,29,0,0 +BRDA:286,29,1,1 +BRDA:293,30,0,0 +BRDA:293,30,1,1 +BRDA:298,31,0,0 +BRDA:298,31,1,1 +BRDA:303,32,0,0 +BRDA:303,32,1,1 +BRDA:315,33,0,0 +BRDA:315,33,1,1 +BRDA:324,34,0,0 +BRDA:324,34,1,1 +BRDA:329,35,0,0 +BRDA:329,35,1,1 +BRDA:336,36,0,0 +BRDA:336,36,1,1 +BRDA:341,37,0,0 +BRDA:341,37,1,1 +BRDA:346,38,0,0 +BRDA:346,38,1,1 +BRDA:351,39,0,0 +BRDA:351,39,1,1 +BRDA:357,40,0,0 +BRDA:357,40,1,1 +BRDA:366,41,0,0 +BRDA:366,41,1,1 +BRDA:371,42,0,0 +BRDA:371,42,1,1 +BRDA:379,43,0,1 +BRDA:379,43,1,0 +BRDA:385,44,0,0 +BRDA:385,44,1,1 +BRDA:403,45,0,0 +BRDA:403,45,1,1 +BRDA:440,46,0,0 +BRDA:440,46,1,0 +BRDA:447,47,0,0 +BRDA:447,47,1,0 +BRF:97 +BRH:47 +end_of_record +TN: +SF:pages/projects/transforming-ei-indigenous-peoples/[id].js +FN:11,IndigenousEiArticles +FN:15,(anonymous_6) +FN:82,getStaticPaths +FN:89,(anonymous_8) +FN:96,(anonymous_9) +FN:107,(anonymous_10) +FNF:6 +FNH:0 +FNDA:0,IndigenousEiArticles +FNDA:0,(anonymous_6) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:82,0 +DA:84,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:96,0 +DA:98,0 +DA:102,0 +DA:105,0 +DA:107,0 +DA:108,0 +DA:115,0 +DA:116,0 +DA:121,0 +LF:30 +LH:0 +BRDA:16,0,0,0 +BRDA:17,1,0,0 +BRDA:17,1,1,0 +BRDA:27,2,0,0 +BRDA:27,2,1,0 +BRDA:42,3,0,0 +BRDA:42,3,1,0 +BRDA:48,4,0,0 +BRDA:48,4,1,0 +BRDA:58,5,0,0 +BRDA:58,5,1,0 +BRDA:109,6,0,0 +BRDA:109,6,1,0 +BRDA:115,7,0,0 +BRDA:115,8,0,0 +BRDA:115,8,1,0 +BRDA:127,9,0,0 +BRDA:127,9,1,0 +BRDA:130,10,0,0 +BRDA:130,10,1,0 +BRF:20 +BRH:0 +end_of_record +TN: +SF:pages/projects/transforming-ei-indigenous-peoples/index.js +FN:19,EiIndigenousOverview +FN:26,(anonymous_5) +FN:34,(anonymous_6) +FN:372,(anonymous_7) +FNF:4 +FNH:0 +FNDA:0,EiIndigenousOverview +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:24,0 +DA:27,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:372,0 +DA:374,0 +DA:378,0 +DA:382,0 +DA:386,0 +LF:32 +LH:0 +BRDA:27,0,0,0 +BRDA:27,0,1,0 +BRDA:27,0,2,0 +BRDA:27,0,3,0 +BRDA:35,1,0,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:46,3,0,0 +BRDA:46,3,1,0 +BRDA:57,4,0,0 +BRDA:57,4,1,0 +BRDA:64,5,0,0 +BRDA:64,5,1,0 +BRDA:76,6,0,0 +BRDA:76,6,1,0 +BRDA:86,7,0,0 +BRDA:86,7,1,0 +BRDA:96,8,0,0 +BRDA:96,8,1,0 +BRDA:101,9,0,0 +BRDA:101,9,1,0 +BRDA:107,10,0,0 +BRDA:107,10,1,0 +BRDA:123,11,0,0 +BRDA:123,11,1,0 +BRDA:143,12,0,0 +BRDA:143,12,1,0 +BRDA:152,13,0,0 +BRDA:152,13,1,0 +BRDA:158,14,0,0 +BRDA:158,14,1,0 +BRDA:170,15,0,0 +BRDA:170,15,1,0 +BRDA:183,16,0,0 +BRDA:183,16,1,0 +BRDA:192,17,0,0 +BRDA:192,17,1,0 +BRDA:199,18,0,0 +BRDA:199,18,1,0 +BRDA:211,19,0,0 +BRDA:211,19,1,0 +BRDA:226,20,0,0 +BRDA:226,20,1,0 +BRDA:237,21,0,0 +BRDA:237,21,1,0 +BRDA:242,22,0,0 +BRDA:242,22,1,0 +BRDA:256,23,0,0 +BRDA:256,23,1,0 +BRDA:265,24,0,0 +BRDA:265,24,1,0 +BRDA:270,25,0,0 +BRDA:270,25,1,0 +BRDA:275,26,0,0 +BRDA:275,26,1,0 +BRDA:283,27,0,0 +BRDA:283,27,1,0 +BRDA:290,28,0,0 +BRDA:290,28,1,0 +BRDA:297,29,0,0 +BRDA:297,29,1,0 +BRDA:302,30,0,0 +BRDA:302,30,1,0 +BRDA:307,31,0,0 +BRDA:307,31,1,0 +BRDA:321,32,0,0 +BRDA:321,32,1,0 +BRDA:328,33,0,0 +BRDA:328,33,1,0 +BRDA:334,34,0,0 +BRDA:334,34,1,0 +BRDA:352,35,0,0 +BRDA:352,35,1,0 +BRDA:389,36,0,0 +BRDA:389,36,1,0 +BRDA:396,37,0,0 +BRDA:396,37,1,0 +BRF:77 +BRH:0 +end_of_record