diff --git a/main/coverage/clover.xml b/main/coverage/clover.xml new file mode 100644 index 0000000000..e373468b7e --- /dev/null +++ b/main/coverage/clover.xml @@ -0,0 +1,1006 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/main/coverage/coverage-final.json b/main/coverage/coverage-final.json new file mode 100644 index 0000000000..253d1319ba --- /dev/null +++ b/main/coverage/coverage-final.json @@ -0,0 +1,89 @@ +{"/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":{},"fnMap":{},"branchMap":{},"s":{},"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":11,"column":4},"end":{"line":11,"column":108}},"1":{"start":{"line":13,"column":4},"end":{"line":13,"column":118}},"2":{"start":{"line":15,"column":4},"end":{"line":15,"column":121}},"3":{"start":{"line":17,"column":4},"end":{"line":17,"column":109}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":89}},"5":{"start":{"line":22,"column":4},"end":{"line":32,"column":10}},"6":{"start":{"line":35,"column":2},"end":{"line":45,"column":5}},"7":{"start":{"line":36,"column":15},"end":{"line":36,"column":48}},"8":{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},"9":{"start":{"line":38,"column":6},"end":{"line":43,"column":9}},"10":{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},"11":{"start":{"line":40,"column":10},"end":{"line":40,"column":33}},"12":{"start":{"line":41,"column":10},"end":{"line":41,"column":23}},"13":{"start":{"line":47,"column":2},"end":{"line":105,"column":4}},"14":{"start":{"line":108,"column":0},"end":{"line":232,"column":2}}},"fnMap":{"0":{"name":"ActionButton","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":28}},"loc":{"start":{"line":8,"column":36},"end":{"line":106,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":35,"column":12},"end":{"line":35,"column":13}},"loc":{"start":{"line":35,"column":18},"end":{"line":45,"column":3}},"line":35},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":39},"end":{"line":38,"column":40}},"loc":{"start":{"line":38,"column":50},"end":{"line":43,"column":7}},"line":38}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":4},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":23,"column":8},"end":{"line":23,"column":15}},{"start":{"line":24,"column":8},"end":{"line":32,"column":10}}],"line":22},"1":{"loc":{"start":{"line":24,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":25,"column":8},"end":{"line":25,"column":17}},{"start":{"line":26,"column":8},"end":{"line":32,"column":10}}],"line":24},"2":{"loc":{"start":{"line":26,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":27,"column":17}},{"start":{"line":28,"column":8},"end":{"line":32,"column":10}}],"line":26},"3":{"loc":{"start":{"line":28,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":29,"column":8},"end":{"line":29,"column":14}},{"start":{"line":30,"column":8},"end":{"line":32,"column":10}}],"line":28},"4":{"loc":{"start":{"line":30,"column":8},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":12}},{"start":{"line":32,"column":8},"end":{"line":32,"column":10}}],"line":30},"5":{"loc":{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":44,"column":5}},{"start":{},"end":{}}],"line":37},"6":{"loc":{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":42,"column":9}},{"start":{},"end":{}}],"line":39},"7":{"loc":{"start":{"line":39,"column":12},"end":{"line":39,"column":57}},"type":"binary-expr","locations":[{"start":{"line":39,"column":12},"end":{"line":39,"column":36}},{"start":{"line":39,"column":40},"end":{"line":39,"column":57}}],"line":39},"8":{"loc":{"start":{"line":47,"column":9},"end":{"line":105,"column":3}},"type":"cond-expr","locations":[{"start":{"line":48,"column":4},"end":{"line":70,"column":11}},{"start":{"line":72,"column":4},"end":{"line":104,"column":13}}],"line":47},"9":{"loc":{"start":{"line":50,"column":21},"end":{"line":50,"column":66}},"type":"cond-expr","locations":[{"start":{"line":50,"column":39},"end":{"line":50,"column":54}},{"start":{"line":50,"column":57},"end":{"line":50,"column":66}}],"line":50},"10":{"loc":{"start":{"line":55,"column":15},"end":{"line":55,"column":39}},"type":"binary-expr","locations":[{"start":{"line":55,"column":15},"end":{"line":55,"column":27}},{"start":{"line":55,"column":31},"end":{"line":55,"column":39}}],"line":55},"11":{"loc":{"start":{"line":62,"column":7},"end":{"line":64,"column":19}},"type":"cond-expr","locations":[{"start":{"line":63,"column":8},"end":{"line":63,"column":70}},{"start":{"line":64,"column":10},"end":{"line":64,"column":19}}],"line":62},"12":{"loc":{"start":{"line":62,"column":7},"end":{"line":62,"column":35}},"type":"binary-expr","locations":[{"start":{"line":62,"column":7},"end":{"line":62,"column":17}},{"start":{"line":62,"column":21},"end":{"line":62,"column":35}}],"line":62},"13":{"loc":{"start":{"line":67,"column":7},"end":{"line":69,"column":19}},"type":"cond-expr","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":70}},{"start":{"line":69,"column":10},"end":{"line":69,"column":19}}],"line":67},"14":{"loc":{"start":{"line":67,"column":7},"end":{"line":67,"column":34}},"type":"binary-expr","locations":[{"start":{"line":67,"column":7},"end":{"line":67,"column":17}},{"start":{"line":67,"column":21},"end":{"line":67,"column":34}}],"line":67},"15":{"loc":{"start":{"line":73,"column":24},"end":{"line":73,"column":75}},"type":"cond-expr","locations":[{"start":{"line":73,"column":45},"end":{"line":73,"column":63}},{"start":{"line":73,"column":66},"end":{"line":73,"column":75}}],"line":73},"16":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":66}},"type":"cond-expr","locations":[{"start":{"line":74,"column":39},"end":{"line":74,"column":54}},{"start":{"line":74,"column":57},"end":{"line":74,"column":66}}],"line":74},"17":{"loc":{"start":{"line":80,"column":15},"end":{"line":80,"column":39}},"type":"binary-expr","locations":[{"start":{"line":80,"column":15},"end":{"line":80,"column":27}},{"start":{"line":80,"column":31},"end":{"line":80,"column":39}}],"line":80},"18":{"loc":{"start":{"line":83,"column":32},"end":{"line":83,"column":78}},"type":"cond-expr","locations":[{"start":{"line":83,"column":58},"end":{"line":83,"column":66}},{"start":{"line":83,"column":69},"end":{"line":83,"column":78}}],"line":83},"19":{"loc":{"start":{"line":85,"column":7},"end":{"line":87,"column":19}},"type":"cond-expr","locations":[{"start":{"line":86,"column":8},"end":{"line":86,"column":70}},{"start":{"line":87,"column":10},"end":{"line":87,"column":19}}],"line":85},"20":{"loc":{"start":{"line":85,"column":7},"end":{"line":85,"column":35}},"type":"binary-expr","locations":[{"start":{"line":85,"column":7},"end":{"line":85,"column":17}},{"start":{"line":85,"column":21},"end":{"line":85,"column":35}}],"line":85},"21":{"loc":{"start":{"line":88,"column":7},"end":{"line":95,"column":19}},"type":"cond-expr","locations":[{"start":{"line":89,"column":8},"end":{"line":94,"column":11}},{"start":{"line":95,"column":10},"end":{"line":95,"column":19}}],"line":88},"22":{"loc":{"start":{"line":88,"column":7},"end":{"line":88,"column":42}},"type":"binary-expr","locations":[{"start":{"line":88,"column":7},"end":{"line":88,"column":24}},{"start":{"line":88,"column":28},"end":{"line":88,"column":42}}],"line":88},"23":{"loc":{"start":{"line":101,"column":7},"end":{"line":103,"column":19}},"type":"cond-expr","locations":[{"start":{"line":102,"column":8},"end":{"line":102,"column":70}},{"start":{"line":103,"column":10},"end":{"line":103,"column":19}}],"line":101},"24":{"loc":{"start":{"line":101,"column":7},"end":{"line":101,"column":34}},"type":"binary-expr","locations":[{"start":{"line":101,"column":7},"end":{"line":101,"column":17}},{"start":{"line":101,"column":21},"end":{"line":101,"column":34}}],"line":101}},"s":{"0":75,"1":75,"2":75,"3":75,"4":75,"5":75,"6":75,"7":75,"8":75,"9":67,"10":1,"11":1,"12":1,"13":75,"14":17},"f":{"0":75,"1":75,"2":1},"b":{"0":[5,70],"1":[2,68],"2":[1,67],"3":[1,66],"4":[2,64],"5":[67,8],"6":[1,0],"7":[1,0],"8":[19,56],"9":[6,13],"10":[19,11],"11":[0,19],"12":[19,4],"13":[4,15],"14":[19,4],"15":[0,56],"16":[12,44],"17":[56,17],"18":[24,32],"19":[0,56],"20":[56,0],"21":[6,50],"22":[56,6],"23":[0,56],"24":[56,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"857e59e63979d7363a4a0ecee2ad91304079e4aa"} +,"/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":8,"column":17},"end":{"line":8,"column":53}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":11,"column":25},"end":{"line":11,"column":42}},"4":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"5":{"start":{"line":13,"column":22},"end":{"line":13,"column":39}},"6":{"start":{"line":14,"column":20},"end":{"line":14,"column":37}},"7":{"start":{"line":16,"column":0},"end":{"line":20,"column":2}},"8":{"start":{"line":22,"column":0},"end":{"line":27,"column":2}},"9":{"start":{"line":29,"column":0},"end":{"line":34,"column":2}},"10":{"start":{"line":36,"column":0},"end":{"line":41,"column":2}},"11":{"start":{"line":43,"column":0},"end":{"line":48,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"line":8}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"15410beefc2a3767daf1bc32866e0bdbe619631d"} +,"/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":12,"column":2},"end":{"line":38,"column":4}},"1":{"start":{"line":41,"column":0},"end":{"line":50,"column":2}}},"fnMap":{"0":{"name":"Alert","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":21}},"loc":{"start":{"line":11,"column":29},"end":{"line":39,"column":1}},"line":11}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":10},"end":{"line":16,"column":66}},"type":"cond-expr","locations":[{"start":{"line":16,"column":27},"end":{"line":16,"column":45}},{"start":{"line":16,"column":48},"end":{"line":16,"column":66}}],"line":16},"1":{"loc":{"start":{"line":20,"column":11},"end":{"line":28,"column":11}},"type":"cond-expr","locations":[{"start":{"line":21,"column":12},"end":{"line":25,"column":14}},{"start":{"line":27,"column":12},"end":{"line":27,"column":79}}],"line":20}},"s":{"0":2,"1":1},"f":{"0":2},"b":{"0":[0,2],"1":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7bd61701a7b80a1a915241faa1e6ff92412d63eb"} +,"/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":8,"column":17},"end":{"line":8,"column":46}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":46}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":46}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f28f2e4857c791b2b1e5eb333dbe17b97d54877d"} +,"/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":22},"end":{"line":26,"column":1}},"1":{"start":{"line":9,"column":2},"end":{"line":25,"column":4}},"2":{"start":{"line":28,"column":0},"end":{"line":38,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":51},"end":{"line":26,"column":1}},"line":8}},"branchMap":{},"s":{"0":4,"1":4,"2":4},"f":{"0":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b0bd9d01708f094cf2dd1bc4d7ccbc8467b0f5f8"} +,"/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":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":16,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e5d2172c491ed23a79bcec2411ec811097a3fab7"} +,"/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":10,"column":2},"end":{"line":47,"column":4}},"1":{"start":{"line":24,"column":14},"end":{"line":42,"column":16}},"2":{"start":{"line":50,"column":0},"end":{"line":67,"column":2}}},"fnMap":{"0":{"name":"Breadcrumb","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":26}},"loc":{"start":{"line":9,"column":34},"end":{"line":48,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":28},"end":{"line":23,"column":29}},"loc":{"start":{"line":23,"column":43},"end":{"line":43,"column":13}},"line":23}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":9},"end":{"line":44,"column":16}},"type":"cond-expr","locations":[{"start":{"line":23,"column":12},"end":{"line":43,"column":14}},{"start":{"line":44,"column":12},"end":{"line":44,"column":16}}],"line":22}},"s":{"0":11,"1":4,"2":4},"f":{"0":11,"1":4},"b":{"0":[2,8]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"13fb26c661e894273cf9b1879cdb89d6ecbadd75"} +,"/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":8,"column":17},"end":{"line":8,"column":51}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":51}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":11,"column":25},"end":{"line":11,"column":42}},"4":{"start":{"line":13,"column":0},"end":{"line":19,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":51}},"line":8}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ba06e78454c0637cf7f825a0cc5c42688a4b6850"} +,"/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":7,"column":28},"end":{"line":11,"column":8}},"1":{"start":{"line":12,"column":2},"end":{"line":51,"column":4}},"2":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"3":{"start":{"line":54,"column":0},"end":{"line":58,"column":2}},"4":{"start":{"line":60,"column":0},"end":{"line":129,"column":2}}},"fnMap":{"0":{"name":"CheckBox","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":24}},"loc":{"start":{"line":6,"column":32},"end":{"line":52,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":18},"end":{"line":24,"column":19}},"loc":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":11,"column":8}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":57}},"type":"cond-expr","locations":[{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},{"start":{"line":15,"column":50},"end":{"line":15,"column":57}}],"line":15},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":73}},"type":"cond-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":57}},{"start":{"line":26,"column":60},"end":{"line":26,"column":73}}],"line":26},"3":{"loc":{"start":{"line":32,"column":22},"end":{"line":32,"column":54}},"type":"cond-expr","locations":[{"start":{"line":32,"column":36},"end":{"line":32,"column":42}},{"start":{"line":32,"column":45},"end":{"line":32,"column":54}}],"line":32},"4":{"loc":{"start":{"line":39,"column":10},"end":{"line":39,"column":56}},"type":"cond-expr","locations":[{"start":{"line":39,"column":25},"end":{"line":39,"column":40}},{"start":{"line":39,"column":43},"end":{"line":39,"column":56}}],"line":39},"5":{"loc":{"start":{"line":40,"column":21},"end":{"line":40,"column":71}},"type":"cond-expr","locations":[{"start":{"line":40,"column":35},"end":{"line":40,"column":59}},{"start":{"line":40,"column":62},"end":{"line":40,"column":71}}],"line":40},"6":{"loc":{"start":{"line":43,"column":9},"end":{"line":47,"column":21}},"type":"cond-expr","locations":[{"start":{"line":44,"column":10},"end":{"line":46,"column":14}},{"start":{"line":47,"column":12},"end":{"line":47,"column":21}}],"line":43}},"s":{"0":145,"1":145,"2":6,"3":9,"4":9},"f":{"0":145,"1":6},"b":{"0":[12,133],"1":[127,18],"2":[4,2],"3":[0,145],"4":[0,145],"5":[0,145],"6":[0,145]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2361dbe58b2cd89fa17306405dbe671c148d3068"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":49}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":49}},"3":{"start":{"line":20,"column":25},"end":{"line":20,"column":42}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":23},"end":{"line":29,"column":40}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":28},"end":{"line":39,"column":45}},"8":{"start":{"line":40,"column":0},"end":{"line":47,"column":2}},"9":{"start":{"line":49,"column":24},"end":{"line":49,"column":41}},"10":{"start":{"line":50,"column":0},"end":{"line":57,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":49}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1f10911fb44eb38d7804db00dc612e847bfe0862"} +,"/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":5,"column":16},"end":{"line":5,"column":40}},"1":{"start":{"line":7,"column":22},"end":{"line":7,"column":26}},"2":{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},"4":{"start":{"line":10,"column":6},"end":{"line":10,"column":70}},"5":{"start":{"line":11,"column":11},"end":{"line":11,"column":38}},"6":{"start":{"line":14,"column":2},"end":{"line":25,"column":4}},"7":{"start":{"line":28,"column":0},"end":{"line":30,"column":2}},"8":{"start":{"line":32,"column":0},"end":{"line":35,"column":2}}},"fnMap":{"0":{"name":"DateModified","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":28}},"loc":{"start":{"line":4,"column":36},"end":{"line":26,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":12,"column":3}},{"start":{},"end":{}}],"line":8},"1":{"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":11,"column":38}},{"start":{"line":11,"column":11},"end":{"line":11,"column":38}}],"line":9},"2":{"loc":{"start":{"line":18,"column":9},"end":{"line":22,"column":9}},"type":"cond-expr","locations":[{"start":{"line":19,"column":10},"end":{"line":19,"column":44}},{"start":{"line":21,"column":10},"end":{"line":21,"column":69}}],"line":18}},"s":{"0":10,"1":10,"2":10,"3":4,"4":2,"5":2,"6":10,"7":4,"8":4},"f":{"0":10},"b":{"0":[4,6],"1":[2,2],"2":[6,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b47e8b8e6632c84d136bd818a53e2d91830efeaa"} +,"/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":8,"column":17},"end":{"line":8,"column":53}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":53}},"line":8}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c7686e4fa030e25863fce92ad7dbc9e5feadfa51"} +,"/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":7,"column":2},"end":{"line":13,"column":4}},"1":{"start":{"line":16,"column":0},"end":{"line":23,"column":2}}},"fnMap":{"0":{"name":"ErrorLabel","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":34},"end":{"line":14,"column":1}},"line":6}},"branchMap":{},"s":{"0":5,"1":13},"f":{"0":5},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f9976b7520de2dd3c5c185fcdf700f31d3987048"} +,"/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":9,"column":17},"end":{"line":9,"column":51}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":51}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":51}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c5ee6f0f12533617e78fd48b2b41a161cea2aac7"} +,"/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":4,"column":20},"end":{"line":12,"column":8}},"1":{"start":{"line":5,"column":4},"end":{"line":12,"column":8}},"2":{"start":{"line":7,"column":24},"end":{"line":7,"column":28}},"3":{"start":{"line":9,"column":8},"end":{"line":11,"column":13}},"4":{"start":{"line":14,"column":2},"end":{"line":18,"column":4}},"5":{"start":{"line":21,"column":0},"end":{"line":26,"column":2}}},"fnMap":{"0":{"name":"HTMList","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":23}},"loc":{"start":{"line":3,"column":77},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":20},"end":{"line":4,"column":21}},"loc":{"start":{"line":5,"column":4},"end":{"line":12,"column":8}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":14},"end":{"line":7,"column":15}},"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":28}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":12}},"loc":{"start":{"line":9,"column":8},"end":{"line":11,"column":13}},"line":9}},"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}}],"line":3},"1":{"loc":{"start":{"line":14,"column":9},"end":{"line":18,"column":3}},"type":"cond-expr","locations":[{"start":{"line":15,"column":4},"end":{"line":15,"column":59}},{"start":{"line":17,"column":4},"end":{"line":17,"column":59}}],"line":14}},"s":{"0":7,"1":7,"2":18,"3":13,"4":7,"5":1},"f":{"0":7,"1":7,"2":18,"3":13},"b":{"0":[5],"1":[6,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d498c2a8969f2a4dc6c4848d2e6043776020fa92"} +,"/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":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":54,"column":4}},"2":{"start":{"line":41,"column":25},"end":{"line":41,"column":62}},"3":{"start":{"line":57,"column":0},"end":{"line":60,"column":2}},"4":{"start":{"line":62,"column":0},"end":{"line":146,"column":2}}},"fnMap":{"0":{"name":"MultiTextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":30}},"loc":{"start":{"line":8,"column":38},"end":{"line":55,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":19}},"loc":{"start":{"line":41,"column":25},"end":{"line":41,"column":62}},"line":41}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":58}},"type":"cond-expr","locations":[{"start":{"line":14,"column":26},"end":{"line":14,"column":47}},{"start":{"line":14,"column":50},"end":{"line":14,"column":58}}],"line":14},"1":{"loc":{"start":{"line":19,"column":10},"end":{"line":19,"column":44}},"type":"cond-expr","locations":[{"start":{"line":19,"column":28},"end":{"line":19,"column":39}},{"start":{"line":19,"column":42},"end":{"line":19,"column":44}}],"line":19},"2":{"loc":{"start":{"line":23,"column":9},"end":{"line":27,"column":21}},"type":"cond-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":26,"column":14}},{"start":{"line":27,"column":12},"end":{"line":27,"column":21}}],"line":23},"3":{"loc":{"start":{"line":33,"column":7},"end":{"line":33,"column":69}},"type":"cond-expr","locations":[{"start":{"line":33,"column":21},"end":{"line":33,"column":57}},{"start":{"line":33,"column":60},"end":{"line":33,"column":69}}],"line":33},"4":{"loc":{"start":{"line":36,"column":10},"end":{"line":36,"column":66}},"type":"cond-expr","locations":[{"start":{"line":36,"column":24},"end":{"line":36,"column":49}},{"start":{"line":36,"column":52},"end":{"line":36,"column":66}}],"line":36}},"s":{"0":4,"1":4,"2":1,"3":8,"4":8},"f":{"0":4,"1":1},"b":{"0":[0,4],"1":[1,3],"2":[0,4],"3":[0,4],"4":[0,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0284fece7a312230cc9e53f0a5a9156ce1330f72"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":57}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":57}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":25},"end":{"line":29,"column":42}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":24},"end":{"line":39,"column":41}},"8":{"start":{"line":40,"column":0},"end":{"line":49,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":57}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"e95af57a53f1f61570fadb1270af4036342f4321"} +,"/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":7,"column":16},"end":{"line":7,"column":40}},"1":{"start":{"line":8,"column":34},"end":{"line":8,"column":49}},"2":{"start":{"line":10,"column":2},"end":{"line":42,"column":4}},"3":{"start":{"line":45,"column":0},"end":{"line":52,"column":2}}},"fnMap":{"0":{"name":"ProjectInfo","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":35},"end":{"line":43,"column":1}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":11},"end":{"line":15,"column":78}},"type":"cond-expr","locations":[{"start":{"line":15,"column":32},"end":{"line":15,"column":41}},{"start":{"line":15,"column":44},"end":{"line":15,"column":78}}],"line":15},"1":{"loc":{"start":{"line":19,"column":11},"end":{"line":19,"column":74}},"type":"cond-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":39}},{"start":{"line":19,"column":42},"end":{"line":19,"column":74}}],"line":19}},"s":{"0":3,"1":3,"2":3,"3":2},"f":{"0":3},"b":{"0":[0,3],"1":[1,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"25449d2c0846d59f452f46cceab566cdb8f3f252"} +,"/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":8,"column":17},"end":{"line":8,"column":52}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":52}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":17,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":52}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"74c812eb1223bc6186d9f3f5c9b2a6ed97663cce"} +,"/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":7,"column":28},"end":{"line":13,"column":7}},"1":{"start":{"line":14,"column":2},"end":{"line":48,"column":4}},"2":{"start":{"line":23,"column":10},"end":{"line":23,"column":41}},"3":{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},"4":{"start":{"line":27,"column":12},"end":{"line":27,"column":31}},"5":{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},"6":{"start":{"line":29,"column":14},"end":{"line":29,"column":45}},"7":{"start":{"line":31,"column":12},"end":{"line":31,"column":43}},"8":{"start":{"line":51,"column":0},"end":{"line":53,"column":2}},"9":{"start":{"line":55,"column":0},"end":{"line":115,"column":2}}},"fnMap":{"0":{"name":"RadioButton","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":35},"end":{"line":49,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":25},"end":{"line":24,"column":9}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":25,"column":17},"end":{"line":25,"column":18}},"loc":{"start":{"line":25,"column":24},"end":{"line":33,"column":9}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":13,"column":7}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":13,"column":7}}],"line":7},"1":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":46}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},{"start":{"line":12,"column":41},"end":{"line":12,"column":46}}],"line":12},"2":{"loc":{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},"type":"if","locations":[{"start":{"line":26,"column":10},"end":{"line":32,"column":11}},{"start":{},"end":{}}],"line":26},"3":{"loc":{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},"type":"if","locations":[{"start":{"line":28,"column":12},"end":{"line":30,"column":13}},{"start":{},"end":{}}],"line":28},"4":{"loc":{"start":{"line":41,"column":10},"end":{"line":41,"column":51}},"type":"cond-expr","locations":[{"start":{"line":41,"column":31},"end":{"line":41,"column":46}},{"start":{"line":41,"column":49},"end":{"line":41,"column":51}}],"line":41},"5":{"loc":{"start":{"line":42,"column":11},"end":{"line":42,"column":51}},"type":"cond-expr","locations":[{"start":{"line":42,"column":31},"end":{"line":42,"column":46}},{"start":{"line":42,"column":49},"end":{"line":42,"column":51}}],"line":42}},"s":{"0":16,"1":16,"2":3,"3":1,"4":1,"5":1,"6":0,"7":1,"8":2,"9":2},"f":{"0":16,"1":3,"2":1},"b":{"0":[15,1],"1":[1,1],"2":[1,0],"3":[0,1],"4":[4,12],"5":[4,12]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8387c8300b81c0b0b4606ef9d7e8061b628962d8"} +,"/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":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":18,"column":2}},"4":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"5":{"start":{"line":21,"column":0},"end":{"line":28,"column":2}},"6":{"start":{"line":30,"column":28},"end":{"line":30,"column":45}},"7":{"start":{"line":31,"column":0},"end":{"line":38,"column":2}},"8":{"start":{"line":40,"column":28},"end":{"line":40,"column":45}},"9":{"start":{"line":41,"column":0},"end":{"line":48,"column":2}},"10":{"start":{"line":50,"column":27},"end":{"line":50,"column":44}},"11":{"start":{"line":51,"column":0},"end":{"line":58,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2c520a64a3211dcf5af130853c6288438078cf1d"} +,"/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":7,"column":28},"end":{"line":11,"column":8}},"1":{"start":{"line":12,"column":2},"end":{"line":47,"column":4}},"2":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"3":{"start":{"line":42,"column":23},"end":{"line":42,"column":77}},"4":{"start":{"line":50,"column":0},"end":{"line":53,"column":2}},"5":{"start":{"line":55,"column":0},"end":{"line":114,"column":2}}},"fnMap":{"0":{"name":"RadioField","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":34},"end":{"line":48,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":18},"end":{"line":24,"column":19}},"loc":{"start":{"line":25,"column":10},"end":{"line":29,"column":11}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":17},"end":{"line":42,"column":18}},"loc":{"start":{"line":42,"column":23},"end":{"line":42,"column":77}},"line":42}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":8}},"type":"cond-expr","locations":[{"start":{"line":8,"column":6},"end":{"line":10,"column":7}},{"start":{"line":11,"column":6},"end":{"line":11,"column":8}}],"line":7},"1":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":52}},"type":"cond-expr","locations":[{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},{"start":{"line":15,"column":50},"end":{"line":15,"column":52}}],"line":15},"2":{"loc":{"start":{"line":26,"column":12},"end":{"line":26,"column":73}},"type":"cond-expr","locations":[{"start":{"line":26,"column":33},"end":{"line":26,"column":57}},{"start":{"line":26,"column":60},"end":{"line":26,"column":73}}],"line":26},"3":{"loc":{"start":{"line":32,"column":22},"end":{"line":32,"column":54}},"type":"cond-expr","locations":[{"start":{"line":32,"column":36},"end":{"line":32,"column":42}},{"start":{"line":32,"column":45},"end":{"line":32,"column":54}}],"line":32},"4":{"loc":{"start":{"line":39,"column":10},"end":{"line":39,"column":60}},"type":"cond-expr","locations":[{"start":{"line":39,"column":24},"end":{"line":39,"column":48}},{"start":{"line":39,"column":51},"end":{"line":39,"column":60}}],"line":39}},"s":{"0":8,"1":8,"2":1,"3":0,"4":9,"5":9},"f":{"0":8,"1":1,"2":0},"b":{"0":[8,0],"1":[0,8],"2":[0,1],"3":[0,8],"4":[0,8]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"de13ec0aa03f3c9b4a0470ea03f72a2868744a29"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":51}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":51}},"3":{"start":{"line":20,"column":25},"end":{"line":20,"column":42}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":23},"end":{"line":29,"column":40}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":28},"end":{"line":39,"column":45}},"8":{"start":{"line":40,"column":0},"end":{"line":47,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":51}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"40c839f92ae3fa3f0196f0c858f0787e214298cc"} +,"/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":7,"column":2},"end":{"line":30,"column":4}},"1":{"start":{"line":33,"column":0},"end":{"line":53,"column":2}}},"fnMap":{"0":{"name":"SearchBar","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":31,"column":1}},"line":6}},"branchMap":{},"s":{"0":2,"1":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1c7b11853c0895522d3205862f5f974abf434d1a"} +,"/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":8,"column":17},"end":{"line":8,"column":50}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":50}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":14,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":50}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b14522770b9d5ffeedf778c1cb463c0259148758"} +,"/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":6,"column":16},"end":{"line":6,"column":40}},"1":{"start":{"line":8,"column":28},"end":{"line":12,"column":8}},"2":{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},"3":{"start":{"line":15,"column":4},"end":{"line":18,"column":7}},"4":{"start":{"line":16,"column":21},"end":{"line":16,"column":44}},"5":{"start":{"line":17,"column":6},"end":{"line":17,"column":74}},"6":{"start":{"line":21,"column":2},"end":{"line":81,"column":4}},"7":{"start":{"line":49,"column":25},"end":{"line":49,"column":62}},"8":{"start":{"line":61,"column":10},"end":{"line":65,"column":12}},"9":{"start":{"line":84,"column":0},"end":{"line":86,"column":2}},"10":{"start":{"line":88,"column":0},"end":{"line":166,"column":2}}},"fnMap":{"0":{"name":"SelectField","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":27}},"loc":{"start":{"line":5,"column":35},"end":{"line":82,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":15,"column":23},"end":{"line":15,"column":24}},"loc":{"start":{"line":15,"column":39},"end":{"line":18,"column":5}},"line":15},"2":{"name":"(anonymous_2)","decl":{"start":{"line":49,"column":18},"end":{"line":49,"column":19}},"loc":{"start":{"line":49,"column":25},"end":{"line":49,"column":62}},"line":49},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":27},"end":{"line":60,"column":28}},"loc":{"start":{"line":60,"column":52},"end":{"line":66,"column":9}},"line":60}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":28},"end":{"line":12,"column":8}},"type":"cond-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":11,"column":7}},{"start":{"line":12,"column":6},"end":{"line":12,"column":8}}],"line":8},"1":{"loc":{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":19,"column":3}},{"start":{},"end":{}}],"line":14},"2":{"loc":{"start":{"line":24,"column":8},"end":{"line":24,"column":60}},"type":"cond-expr","locations":[{"start":{"line":24,"column":26},"end":{"line":24,"column":47}},{"start":{"line":24,"column":50},"end":{"line":24,"column":60}}],"line":24},"3":{"loc":{"start":{"line":29,"column":10},"end":{"line":29,"column":44}},"type":"cond-expr","locations":[{"start":{"line":29,"column":28},"end":{"line":29,"column":39}},{"start":{"line":29,"column":42},"end":{"line":29,"column":44}}],"line":29},"4":{"loc":{"start":{"line":33,"column":9},"end":{"line":37,"column":21}},"type":"cond-expr","locations":[{"start":{"line":34,"column":10},"end":{"line":36,"column":14}},{"start":{"line":37,"column":12},"end":{"line":37,"column":21}}],"line":33},"5":{"loc":{"start":{"line":40,"column":7},"end":{"line":40,"column":69}},"type":"cond-expr","locations":[{"start":{"line":40,"column":21},"end":{"line":40,"column":57}},{"start":{"line":40,"column":60},"end":{"line":40,"column":69}}],"line":40},"6":{"loc":{"start":{"line":43,"column":10},"end":{"line":43,"column":66}},"type":"cond-expr","locations":[{"start":{"line":43,"column":24},"end":{"line":43,"column":49}},{"start":{"line":43,"column":52},"end":{"line":43,"column":66}}],"line":43},"7":{"loc":{"start":{"line":48,"column":22},"end":{"line":48,"column":54}},"type":"cond-expr","locations":[{"start":{"line":48,"column":36},"end":{"line":48,"column":42}},{"start":{"line":48,"column":45},"end":{"line":48,"column":54}}],"line":48},"8":{"loc":{"start":{"line":67,"column":9},"end":{"line":78,"column":9}},"type":"cond-expr","locations":[{"start":{"line":68,"column":10},"end":{"line":75,"column":19}},{"start":{"line":77,"column":10},"end":{"line":77,"column":12}}],"line":67}},"s":{"0":2,"1":2,"2":2,"3":2,"4":6,"5":6,"6":2,"7":0,"8":8,"9":1,"10":1},"f":{"0":2,"1":6,"2":0,"3":8},"b":{"0":[0,2],"1":[2,0],"2":[0,2],"3":[0,2],"4":[0,2],"5":[0,2],"6":[0,2],"7":[0,2],"8":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4dc778ca1dfa1c0d7baf591a568921dc91b2a23d"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":52}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":52}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":49,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":52}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":2,"3":1,"4":1},"f":{"0":0,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"060108a0034eb21826fa30a6ad9279201fe4fddc"} +,"/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":4,"column":2},"end":{"line":22,"column":4}},"1":{"start":{"line":10,"column":12},"end":{"line":17,"column":17}},"2":{"start":{"line":25,"column":0},"end":{"line":34,"column":2}}},"fnMap":{"0":{"name":"TableOfContents","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":39},"end":{"line":23,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":30},"end":{"line":9,"column":31}},"loc":{"start":{"line":10,"column":12},"end":{"line":17,"column":17}},"line":10}},"branchMap":{},"s":{"0":2,"1":2,"2":1},"f":{"0":2,"1":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68a381a6ebc5f43ebf320ffdab11375c92ed4354"} +,"/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":8,"column":17},"end":{"line":8,"column":56}},"1":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"2":{"start":{"line":10,"column":23},"end":{"line":10,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":27},"end":{"line":8,"column":56}},"line":8}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9b5f5e62a68e6c5d315200f938d93414f7e6477d"} +,"/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":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":28},"end":{"line":15,"column":8}},"2":{"start":{"line":16,"column":2},"end":{"line":68,"column":4}},"3":{"start":{"line":61,"column":25},"end":{"line":61,"column":62}},"4":{"start":{"line":71,"column":0},"end":{"line":74,"column":2}},"5":{"start":{"line":76,"column":0},"end":{"line":176,"column":2}}},"fnMap":{"0":{"name":"TextField","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":25}},"loc":{"start":{"line":8,"column":33},"end":{"line":69,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":61,"column":18},"end":{"line":61,"column":19}},"loc":{"start":{"line":61,"column":25},"end":{"line":61,"column":62}},"line":61}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":28},"end":{"line":15,"column":8}},"type":"cond-expr","locations":[{"start":{"line":12,"column":6},"end":{"line":14,"column":7}},{"start":{"line":15,"column":6},"end":{"line":15,"column":8}}],"line":11},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":60}},"type":"cond-expr","locations":[{"start":{"line":19,"column":26},"end":{"line":19,"column":47}},{"start":{"line":19,"column":50},"end":{"line":19,"column":60}}],"line":19},"2":{"loc":{"start":{"line":24,"column":10},"end":{"line":24,"column":44}},"type":"cond-expr","locations":[{"start":{"line":24,"column":28},"end":{"line":24,"column":39}},{"start":{"line":24,"column":42},"end":{"line":24,"column":44}}],"line":24},"3":{"loc":{"start":{"line":28,"column":9},"end":{"line":32,"column":21}},"type":"cond-expr","locations":[{"start":{"line":29,"column":10},"end":{"line":31,"column":14}},{"start":{"line":32,"column":12},"end":{"line":32,"column":21}}],"line":28},"4":{"loc":{"start":{"line":35,"column":7},"end":{"line":44,"column":7}},"type":"cond-expr","locations":[{"start":{"line":36,"column":8},"end":{"line":41,"column":12}},{"start":{"line":43,"column":8},"end":{"line":43,"column":10}}],"line":35},"5":{"loc":{"start":{"line":46,"column":7},"end":{"line":46,"column":69}},"type":"cond-expr","locations":[{"start":{"line":46,"column":21},"end":{"line":46,"column":57}},{"start":{"line":46,"column":60},"end":{"line":46,"column":69}}],"line":46},"6":{"loc":{"start":{"line":49,"column":10},"end":{"line":49,"column":66}},"type":"cond-expr","locations":[{"start":{"line":49,"column":24},"end":{"line":49,"column":49}},{"start":{"line":49,"column":52},"end":{"line":49,"column":66}}],"line":49},"7":{"loc":{"start":{"line":50,"column":12},"end":{"line":50,"column":42}},"type":"cond-expr","locations":[{"start":{"line":50,"column":28},"end":{"line":50,"column":37}},{"start":{"line":50,"column":40},"end":{"line":50,"column":42}}],"line":50},"8":{"loc":{"start":{"line":60,"column":22},"end":{"line":60,"column":54}},"type":"cond-expr","locations":[{"start":{"line":60,"column":36},"end":{"line":60,"column":42}},{"start":{"line":60,"column":45},"end":{"line":60,"column":54}}],"line":60}},"s":{"0":6,"1":6,"2":6,"3":2,"4":8,"5":8},"f":{"0":6,"1":2},"b":{"0":[3,3],"1":[0,6],"2":[1,5],"3":[0,6],"4":[0,6],"5":[0,6],"6":[0,6],"7":[0,6],"8":[0,6]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1a8f30eccaa3fc9476a969a54bfed456c34118a9"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":50}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":50}},"3":{"start":{"line":20,"column":23},"end":{"line":20,"column":40}},"4":{"start":{"line":21,"column":0},"end":{"line":27,"column":2}},"5":{"start":{"line":29,"column":28},"end":{"line":29,"column":45}},"6":{"start":{"line":30,"column":0},"end":{"line":37,"column":2}},"7":{"start":{"line":39,"column":25},"end":{"line":39,"column":42}},"8":{"start":{"line":40,"column":0},"end":{"line":48,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":50}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"12a7fb839353e64f3383019a4f7a402276bee374"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.js","statementMap":{"0":{"start":{"line":10,"column":16},"end":{"line":10,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":78,"column":4}},"2":{"start":{"line":81,"column":0},"end":{"line":120,"column":2}}},"fnMap":{"0":{"name":"CallToAction","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":28}},"loc":{"start":{"line":9,"column":36},"end":{"line":79,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":15},"end":{"line":43,"column":15}},"type":"cond-expr","locations":[{"start":{"line":30,"column":16},"end":{"line":37,"column":22}},{"start":{"line":39,"column":16},"end":{"line":42,"column":18}}],"line":29},"1":{"loc":{"start":{"line":53,"column":22},"end":{"line":59,"column":35}},"type":"cond-expr","locations":[{"start":{"line":54,"column":24},"end":{"line":58,"column":26}},{"start":{"line":59,"column":26},"end":{"line":59,"column":35}}],"line":53},"2":{"loc":{"start":{"line":61,"column":29},"end":{"line":61,"column":77}},"type":"cond-expr","locations":[{"start":{"line":61,"column":52},"end":{"line":61,"column":65}},{"start":{"line":61,"column":68},"end":{"line":61,"column":77}}],"line":61},"3":{"loc":{"start":{"line":65,"column":17},"end":{"line":71,"column":17}},"type":"binary-expr","locations":[{"start":{"line":65,"column":17},"end":{"line":65,"column":38}},{"start":{"line":66,"column":18},"end":{"line":70,"column":25}}],"line":65}},"s":{"0":3,"1":3,"2":1},"f":{"0":3},"b":{"0":[2,1],"1":[0,3],"2":[0,3],"3":[3,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"701b2d8f9c3aaea66bfec407c38907a7a12016bc"} +,"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.stories.js": {"path":"/home/runner/work/Service-Canada-Labs/Service-Canada-Labs/components/molecules/CallToAction.stories.js","statementMap":{"0":{"start":{"line":9,"column":17},"end":{"line":9,"column":53}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":53}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"4":{"start":{"line":13,"column":0},"end":{"line":18,"column":2}},"5":{"start":{"line":20,"column":0},"end":{"line":25,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":53}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c1699a0be85431a85e768f472a24920d5138096d"} +,"/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":10,"column":20},"end":{"line":90,"column":1}},"1":{"start":{"line":11,"column":21},"end":{"line":16,"column":3}},"2":{"start":{"line":18,"column":20},"end":{"line":18,"column":58}},"3":{"start":{"line":20,"column":2},"end":{"line":89,"column":4}},"4":{"start":{"line":92,"column":0},"end":{"line":152,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":20},"end":{"line":10,"column":21}},"loc":{"start":{"line":10,"column":31},"end":{"line":90,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":20},"end":{"line":18,"column":58}},"type":"binary-expr","locations":[{"start":{"line":18,"column":20},"end":{"line":18,"column":41}},{"start":{"line":18,"column":45},"end":{"line":18,"column":58}}],"line":18},"1":{"loc":{"start":{"line":29,"column":9},"end":{"line":39,"column":9}},"type":"cond-expr","locations":[{"start":{"line":30,"column":10},"end":{"line":36,"column":16}},{"start":{"line":38,"column":10},"end":{"line":38,"column":12}}],"line":29},"2":{"loc":{"start":{"line":43,"column":13},"end":{"line":53,"column":13}},"type":"cond-expr","locations":[{"start":{"line":44,"column":14},"end":{"line":50,"column":15}},{"start":{"line":52,"column":14},"end":{"line":52,"column":16}}],"line":43},"3":{"loc":{"start":{"line":44,"column":14},"end":{"line":50,"column":15}},"type":"cond-expr","locations":[{"start":{"line":45,"column":16},"end":{"line":47,"column":22}},{"start":{"line":49,"column":16},"end":{"line":49,"column":18}}],"line":44},"4":{"loc":{"start":{"line":55,"column":11},"end":{"line":64,"column":11}},"type":"cond-expr","locations":[{"start":{"line":56,"column":12},"end":{"line":61,"column":19}},{"start":{"line":63,"column":12},"end":{"line":63,"column":14}}],"line":55},"5":{"loc":{"start":{"line":66,"column":9},"end":{"line":72,"column":9}},"type":"cond-expr","locations":[{"start":{"line":67,"column":10},"end":{"line":69,"column":14}},{"start":{"line":71,"column":10},"end":{"line":71,"column":12}}],"line":66},"6":{"loc":{"start":{"line":76,"column":9},"end":{"line":86,"column":9}},"type":"cond-expr","locations":[{"start":{"line":77,"column":10},"end":{"line":83,"column":12}},{"start":{"line":85,"column":10},"end":{"line":85,"column":12}}],"line":76}},"s":{"0":3,"1":5,"2":5,"3":5,"4":3},"f":{"0":5},"b":{"0":[5,4],"1":[2,3],"2":[0,5],"3":[0,0],"4":[2,3],"5":[0,5],"6":[0,5]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"547337aa56fa93f3781e7e8abbc6f8ac07bf81e0"} +,"/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":10,"column":17},"end":{"line":10,"column":45}},"1":{"start":{"line":10,"column":27},"end":{"line":10,"column":45}},"2":{"start":{"line":12,"column":23},"end":{"line":12,"column":40}},"3":{"start":{"line":13,"column":23},"end":{"line":13,"column":40}},"4":{"start":{"line":14,"column":25},"end":{"line":14,"column":42}},"5":{"start":{"line":15,"column":24},"end":{"line":15,"column":41}},"6":{"start":{"line":16,"column":26},"end":{"line":16,"column":43}},"7":{"start":{"line":18,"column":0},"end":{"line":24,"column":2}},"8":{"start":{"line":26,"column":0},"end":{"line":33,"column":2}},"9":{"start":{"line":35,"column":0},"end":{"line":42,"column":2}},"10":{"start":{"line":44,"column":0},"end":{"line":50,"column":2}},"11":{"start":{"line":52,"column":0},"end":{"line":59,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":17},"end":{"line":10,"column":18}},"loc":{"start":{"line":10,"column":27},"end":{"line":10,"column":45}},"line":10}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2e2da0fb3a6abb851564ef1a45a237bf31baebf8"} +,"/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":6,"column":28},"end":{"line":10,"column":8}},"1":{"start":{"line":11,"column":2},"end":{"line":36,"column":4}},"2":{"start":{"line":20,"column":25},"end":{"line":20,"column":62}},"3":{"start":{"line":39,"column":0},"end":{"line":42,"column":2}},"4":{"start":{"line":44,"column":0},"end":{"line":136,"column":2}}},"fnMap":{"0":{"name":"CopyToClipboard","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"loc":{"start":{"line":5,"column":39},"end":{"line":37,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":18},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":25},"end":{"line":20,"column":62}},"line":20}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":28},"end":{"line":10,"column":8}},"type":"cond-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":9,"column":7}},{"start":{"line":10,"column":6},"end":{"line":10,"column":8}}],"line":6}},"s":{"0":4,"1":4,"2":1,"3":2,"4":2},"f":{"0":4,"1":1},"b":{"0":[4,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bc0835bff11bd3549e57ce3e31aa35254945bcef"} +,"/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":9,"column":17},"end":{"line":9,"column":56}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":56}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":22,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":56}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3f25d214d88bdfd33845b3eb47504df5a4cace87"} +,"/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":7,"column":2},"end":{"line":16,"column":4}},"1":{"start":{"line":19,"column":0},"end":{"line":44,"column":2}}},"fnMap":{"0":{"name":"Details","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":31},"end":{"line":17,"column":1}},"line":6}},"branchMap":{},"s":{"0":22,"1":7},"f":{"0":22},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b7785466445b9cf9d425d3edb22f24479f342d90"} +,"/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":9,"column":17},"end":{"line":9,"column":48}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":48}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":17,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":48}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d9b80512d9456e87f718ae7bea687ae8676a0f0f"} +,"/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":8,"column":2},"end":{"line":40,"column":4}},"1":{"start":{"line":24,"column":10},"end":{"line":36,"column":12}},"2":{"start":{"line":29,"column":31},"end":{"line":29,"column":48}},"3":{"start":{"line":43,"column":0},"end":{"line":45,"column":2}},"4":{"start":{"line":47,"column":0},"end":{"line":69,"column":2}}},"fnMap":{"0":{"name":"ErrorBox","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":24}},"loc":{"start":{"line":7,"column":32},"end":{"line":41,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":26},"end":{"line":23,"column":27}},"loc":{"start":{"line":23,"column":44},"end":{"line":37,"column":9}},"line":23},"2":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":25},"end":{"line":29,"column":26}},"loc":{"start":{"line":29,"column":31},"end":{"line":29,"column":48}},"line":29}},"branchMap":{},"s":{"0":3,"1":9,"2":1,"3":1,"4":1},"f":{"0":3,"1":9,"2":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"68c79e4beeff3c91f01aff07e957d98f66d347c7"} +,"/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":9,"column":6},"end":{"line":16,"column":12}},"1":{"start":{"line":21,"column":17},"end":{"line":21,"column":49}},"2":{"start":{"line":21,"column":27},"end":{"line":21,"column":49}},"3":{"start":{"line":23,"column":23},"end":{"line":23,"column":40}},"4":{"start":{"line":25,"column":0},"end":{"line":41,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":16,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":17},"end":{"line":21,"column":18}},"loc":{"start":{"line":21,"column":27},"end":{"line":21,"column":49}},"line":21}},"branchMap":{},"s":{"0":0,"1":1,"2":3,"3":1,"4":1},"f":{"0":0,"1":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a226db6b059163ad7eaef7f35808bf4e70453faf"} +,"/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":30},"end":{"line":298,"column":1}},"1":{"start":{"line":21,"column":36},"end":{"line":21,"column":51}},"2":{"start":{"line":22,"column":44},"end":{"line":22,"column":59}},"3":{"start":{"line":23,"column":16},"end":{"line":23,"column":40}},"4":{"start":{"line":24,"column":34},"end":{"line":24,"column":65}},"5":{"start":{"line":25,"column":16},"end":{"line":25,"column":69}},"6":{"start":{"line":26,"column":28},"end":{"line":26,"column":42}},"7":{"start":{"line":27,"column":18},"end":{"line":27,"column":22}},"8":{"start":{"line":29,"column":2},"end":{"line":29,"column":27}},"9":{"start":{"line":31,"column":2},"end":{"line":36,"column":21}},"10":{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},"11":{"start":{"line":33,"column":6},"end":{"line":33,"column":27}},"12":{"start":{"line":34,"column":6},"end":{"line":34,"column":22}},"13":{"start":{"line":39,"column":21},"end":{"line":55,"column":4}},"14":{"start":{"line":43,"column":8},"end":{"line":52,"column":11}},"15":{"start":{"line":44,"column":10},"end":{"line":51,"column":11}},"16":{"start":{"line":46,"column":14},"end":{"line":46,"column":52}},"17":{"start":{"line":47,"column":14},"end":{"line":47,"column":20}},"18":{"start":{"line":49,"column":14},"end":{"line":49,"column":52}},"19":{"start":{"line":50,"column":14},"end":{"line":50,"column":20}},"20":{"start":{"line":53,"column":8},"end":{"line":53,"column":22}},"21":{"start":{"line":58,"column":4},"end":{"line":58,"column":54}},"22":{"start":{"line":61,"column":34},"end":{"line":61,"column":46}},"23":{"start":{"line":62,"column":44},"end":{"line":62,"column":56}},"24":{"start":{"line":63,"column":25},"end":{"line":69,"column":4}},"25":{"start":{"line":71,"column":24},"end":{"line":119,"column":3}},"26":{"start":{"line":73,"column":4},"end":{"line":73,"column":23}},"27":{"start":{"line":75,"column":4},"end":{"line":75,"column":31}},"28":{"start":{"line":77,"column":21},"end":{"line":77,"column":33}},"29":{"start":{"line":79,"column":26},"end":{"line":79,"column":58}},"30":{"start":{"line":81,"column":4},"end":{"line":85,"column":6}},"31":{"start":{"line":88,"column":22},"end":{"line":91,"column":6}},"32":{"start":{"line":92,"column":18},"end":{"line":92,"column":37}},"33":{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},"34":{"start":{"line":96,"column":23},"end":{"line":102,"column":8}},"35":{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},"36":{"start":{"line":106,"column":8},"end":{"line":106,"column":49}},"37":{"start":{"line":107,"column":8},"end":{"line":107,"column":24}},"38":{"start":{"line":108,"column":8},"end":{"line":108,"column":23}},"39":{"start":{"line":110,"column":8},"end":{"line":110,"column":46}},"40":{"start":{"line":113,"column":6},"end":{"line":113,"column":25}},"41":{"start":{"line":114,"column":6},"end":{"line":114,"column":30}},"42":{"start":{"line":115,"column":6},"end":{"line":115,"column":28}},"43":{"start":{"line":117,"column":6},"end":{"line":117,"column":38}},"44":{"start":{"line":121,"column":2},"end":{"line":297,"column":4}},"45":{"start":{"line":176,"column":43},"end":{"line":176,"column":65}},"46":{"start":{"line":202,"column":22},"end":{"line":202,"column":35}},"47":{"start":{"line":203,"column":22},"end":{"line":203,"column":37}},"48":{"start":{"line":272,"column":37},"end":{"line":272,"column":71}},"49":{"start":{"line":274,"column":22},"end":{"line":274,"column":72}},"50":{"start":{"line":300,"column":0},"end":{"line":305,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":30},"end":{"line":15,"column":31}},"loc":{"start":{"line":20,"column":6},"end":{"line":298,"column":1}},"line":20},"1":{"name":"(anonymous_1)","decl":{"start":{"line":31,"column":12},"end":{"line":31,"column":13}},"loc":{"start":{"line":31,"column":18},"end":{"line":36,"column":3}},"line":31},"2":{"name":"(anonymous_2)","decl":{"start":{"line":42,"column":13},"end":{"line":42,"column":14}},"loc":{"start":{"line":42,"column":25},"end":{"line":54,"column":7}},"line":42},"3":{"name":"(anonymous_3)","decl":{"start":{"line":43,"column":23},"end":{"line":43,"column":24}},"loc":{"start":{"line":43,"column":34},"end":{"line":52,"column":9}},"line":43},"4":{"name":"setFocusAfterSubmit","decl":{"start":{"line":57,"column":11},"end":{"line":57,"column":30}},"loc":{"start":{"line":57,"column":33},"end":{"line":59,"column":3}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":71,"column":24},"end":{"line":71,"column":25}},"loc":{"start":{"line":71,"column":37},"end":{"line":119,"column":3}},"line":71},"6":{"name":"(anonymous_6)","decl":{"start":{"line":176,"column":37},"end":{"line":176,"column":38}},"loc":{"start":{"line":176,"column":43},"end":{"line":176,"column":65}},"line":176},"7":{"name":"(anonymous_7)","decl":{"start":{"line":201,"column":29},"end":{"line":201,"column":30}},"loc":{"start":{"line":201,"column":35},"end":{"line":204,"column":21}},"line":201},"8":{"name":"(anonymous_8)","decl":{"start":{"line":272,"column":30},"end":{"line":272,"column":31}},"loc":{"start":{"line":272,"column":37},"end":{"line":272,"column":71}},"line":272},"9":{"name":"(anonymous_9)","decl":{"start":{"line":273,"column":29},"end":{"line":273,"column":30}},"loc":{"start":{"line":274,"column":22},"end":{"line":274,"column":72}},"line":274}},"branchMap":{"0":{"loc":{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":35,"column":5}},{"start":{},"end":{}}],"line":32},"1":{"loc":{"start":{"line":44,"column":10},"end":{"line":51,"column":11}},"type":"switch","locations":[{"start":{"line":45,"column":12},"end":{"line":47,"column":20}},{"start":{"line":48,"column":12},"end":{"line":50,"column":20}}],"line":44},"2":{"loc":{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},"type":"if","locations":[{"start":{"line":94,"column":4},"end":{"line":118,"column":5}},{"start":{"line":116,"column":11},"end":{"line":118,"column":5}}],"line":94},"3":{"loc":{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},"type":"if","locations":[{"start":{"line":105,"column":6},"end":{"line":111,"column":7}},{"start":{"line":109,"column":13},"end":{"line":111,"column":7}}],"line":105},"4":{"loc":{"start":{"line":105,"column":10},"end":{"line":105,"column":60}},"type":"binary-expr","locations":[{"start":{"line":105,"column":10},"end":{"line":105,"column":33}},{"start":{"line":105,"column":37},"end":{"line":105,"column":60}}],"line":105},"5":{"loc":{"start":{"line":123,"column":7},"end":{"line":295,"column":7}},"type":"cond-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":292,"column":20}},{"start":{"line":294,"column":8},"end":{"line":294,"column":10}}],"line":123},"6":{"loc":{"start":{"line":138,"column":15},"end":{"line":188,"column":15}},"type":"cond-expr","locations":[{"start":{"line":139,"column":16},"end":{"line":185,"column":22}},{"start":{"line":187,"column":16},"end":{"line":187,"column":18}}],"line":138},"7":{"loc":{"start":{"line":140,"column":19},"end":{"line":184,"column":19}},"type":"cond-expr","locations":[{"start":{"line":141,"column":20},"end":{"line":181,"column":26}},{"start":{"line":183,"column":20},"end":{"line":183,"column":22}}],"line":140},"8":{"loc":{"start":{"line":143,"column":24},"end":{"line":145,"column":45}},"type":"cond-expr","locations":[{"start":{"line":144,"column":28},"end":{"line":144,"column":62}},{"start":{"line":145,"column":28},"end":{"line":145,"column":45}}],"line":143},"9":{"loc":{"start":{"line":151,"column":27},"end":{"line":163,"column":27}},"type":"cond-expr","locations":[{"start":{"line":152,"column":28},"end":{"line":160,"column":30}},{"start":{"line":162,"column":28},"end":{"line":162,"column":30}}],"line":151},"10":{"loc":{"start":{"line":256,"column":19},"end":{"line":261,"column":31}},"type":"cond-expr","locations":[{"start":{"line":257,"column":20},"end":{"line":260,"column":22}},{"start":{"line":261,"column":22},"end":{"line":261,"column":31}}],"line":256}},"s":{"0":5,"1":10,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":10,"10":7,"11":2,"12":2,"13":10,"14":1,"15":1,"16":0,"17":0,"18":1,"19":1,"20":1,"21":0,"22":10,"23":10,"24":10,"25":10,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":1,"44":10,"45":0,"46":0,"47":0,"48":0,"49":0,"50":5},"f":{"0":10,"1":7,"2":1,"3":1,"4":0,"5":1,"6":0,"7":0,"8":0,"9":0},"b":{"0":[2,5],"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]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7c9bbc108b79ed0c1303fb4cb1f591b77f28c48e"} +,"/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":9,"column":17},"end":{"line":9,"column":55}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"line":9}},"branchMap":{},"s":{"0":1,"1":4,"2":1,"3":1},"f":{"0":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6b6f2eadbe1fec75f27756a267a16670b063bffc"} +,"/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":8,"column":2},"end":{"line":37,"column":4}},"1":{"start":{"line":20,"column":12},"end":{"line":32,"column":14}},"2":{"start":{"line":40,"column":0},"end":{"line":71,"column":2}}},"fnMap":{"0":{"name":"Filter","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":30},"end":{"line":38,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":29},"end":{"line":19,"column":30}},"loc":{"start":{"line":20,"column":12},"end":{"line":32,"column":14}},"line":20}},"branchMap":{},"s":{"0":3,"1":9,"2":1},"f":{"0":3,"1":9},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aef3568eb5c66a96c8f276114a7001150da0736f"} +,"/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":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":32,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c762a8a9368b4123c4a4288b8970dfb2a5c009c8"} +,"/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":7,"column":16},"end":{"line":7,"column":18}},"1":{"start":{"line":8,"column":2},"end":{"line":28,"column":4}},"2":{"start":{"line":12,"column":10},"end":{"line":14,"column":207}},"3":{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},"4":{"start":{"line":15,"column":27},"end":{"line":15,"column":41}},"5":{"start":{"line":16,"column":8},"end":{"line":25,"column":10}},"6":{"start":{"line":31,"column":0},"end":{"line":41,"column":2}}},"fnMap":{"0":{"name":"List","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":20}},"loc":{"start":{"line":6,"column":28},"end":{"line":29,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":23},"end":{"line":10,"column":24}},"loc":{"start":{"line":10,"column":38},"end":{"line":26,"column":7}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},"type":"if","locations":[{"start":{"line":15,"column":8},"end":{"line":15,"column":41}},{"start":{},"end":{}}],"line":15}},"s":{"0":2,"1":2,"2":8,"3":8,"4":6,"5":8,"6":1},"f":{"0":2,"1":8},"b":{"0":[6,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3cb766608b38c074a7a94543bdfb38ee36403255"} +,"/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":9,"column":17},"end":{"line":9,"column":50}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":15,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1e7a6692400a128558ca0d2321cca60adec2b65d"} +,"/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":11,"column":21},"end":{"line":11,"column":32}},"1":{"start":{"line":12,"column":17},"end":{"line":12,"column":28}},"2":{"start":{"line":13,"column":34},"end":{"line":13,"column":49}},"3":{"start":{"line":15,"column":2},"end":{"line":91,"column":4}},"4":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"5":{"start":{"line":44,"column":25},"end":{"line":44,"column":47}},"6":{"start":{"line":64,"column":27},"end":{"line":64,"column":47}},"7":{"start":{"line":65,"column":30},"end":{"line":65,"column":56}},"8":{"start":{"line":67,"column":10},"end":{"line":87,"column":12}},"9":{"start":{"line":94,"column":0},"end":{"line":121,"column":2}}},"fnMap":{"0":{"name":"Menu","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":20}},"loc":{"start":{"line":9,"column":28},"end":{"line":92,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":29,"column":19},"end":{"line":29,"column":20}},"loc":{"start":{"line":29,"column":25},"end":{"line":29,"column":47}},"line":29},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":19},"end":{"line":44,"column":20}},"loc":{"start":{"line":44,"column":25},"end":{"line":44,"column":47}},"line":44},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":25},"end":{"line":63,"column":26}},"loc":{"start":{"line":63,"column":40},"end":{"line":88,"column":9}},"line":63}},"branchMap":{"0":{"loc":{"start":{"line":46,"column":12},"end":{"line":46,"column":36}},"type":"cond-expr","locations":[{"start":{"line":46,"column":23},"end":{"line":46,"column":25}},{"start":{"line":46,"column":28},"end":{"line":46,"column":36}}],"line":46},"1":{"loc":{"start":{"line":59,"column":40},"end":{"line":59,"column":64}},"type":"cond-expr","locations":[{"start":{"line":59,"column":51},"end":{"line":59,"column":59}},{"start":{"line":59,"column":62},"end":{"line":59,"column":64}}],"line":59},"2":{"loc":{"start":{"line":72,"column":28},"end":{"line":72,"column":52}},"type":"cond-expr","locations":[{"start":{"line":72,"column":39},"end":{"line":72,"column":45}},{"start":{"line":72,"column":48},"end":{"line":72,"column":52}}],"line":72},"3":{"loc":{"start":{"line":77,"column":18},"end":{"line":81,"column":42}},"type":"cond-expr","locations":[{"start":{"line":78,"column":22},"end":{"line":80,"column":44}},{"start":{"line":81,"column":22},"end":{"line":81,"column":42}}],"line":77},"4":{"loc":{"start":{"line":78,"column":22},"end":{"line":80,"column":44}},"type":"cond-expr","locations":[{"start":{"line":79,"column":24},"end":{"line":79,"column":36}},{"start":{"line":80,"column":24},"end":{"line":80,"column":44}}],"line":78}},"s":{"0":4,"1":4,"2":4,"3":4,"4":1,"5":0,"6":12,"7":12,"8":12,"9":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]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"017be5d76b5cc3d4b08235e441f7893c6fba411a"} +,"/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":9,"column":17},"end":{"line":9,"column":50}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":30,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":50}},"line":9}},"branchMap":{},"s":{"0":1,"1":3,"2":1,"3":1},"f":{"0":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"273a087b74d37e318558be5b9103e3bcb24a8728"} +,"/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":10,"column":42},"end":{"line":10,"column":74}},"1":{"start":{"line":11,"column":26},"end":{"line":21,"column":3}},"2":{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},"3":{"start":{"line":13,"column":6},"end":{"line":13,"column":30}},"4":{"start":{"line":15,"column":6},"end":{"line":15,"column":29}},"5":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":53}},"7":{"start":{"line":22,"column":23},"end":{"line":30,"column":4}},"8":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"9":{"start":{"line":24,"column":6},"end":{"line":24,"column":16}},"10":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"11":{"start":{"line":27,"column":6},"end":{"line":27,"column":15}},"12":{"start":{"line":29,"column":4},"end":{"line":29,"column":13}},"13":{"start":{"line":31,"column":2},"end":{"line":76,"column":4}},"14":{"start":{"line":79,"column":0},"end":{"line":81,"column":2}},"15":{"start":{"line":83,"column":0},"end":{"line":152,"column":2}}},"fnMap":{"0":{"name":"OptionalListField","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":41},"end":{"line":77,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":26},"end":{"line":11,"column":27}},"loc":{"start":{"line":11,"column":55},"end":{"line":21,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":48},"end":{"line":22,"column":49}},"loc":{"start":{"line":22,"column":58},"end":{"line":30,"column":3}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":51},"end":{"line":10,"column":73}},"type":"binary-expr","locations":[{"start":{"line":10,"column":51},"end":{"line":10,"column":64}},{"start":{"line":10,"column":68},"end":{"line":10,"column":73}}],"line":10},"1":{"loc":{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":16,"column":5}},{"start":{"line":14,"column":11},"end":{"line":16,"column":5}}],"line":12},"2":{"loc":{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":18},"3":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{},"end":{}}],"line":23},"4":{"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},{"start":{},"end":{}}],"line":26},"5":{"loc":{"start":{"line":33,"column":7},"end":{"line":59,"column":7}},"type":"cond-expr","locations":[{"start":{"line":34,"column":8},"end":{"line":45,"column":10}},{"start":{"line":47,"column":8},"end":{"line":58,"column":10}}],"line":33},"6":{"loc":{"start":{"line":60,"column":7},"end":{"line":74,"column":19}},"type":"cond-expr","locations":[{"start":{"line":61,"column":8},"end":{"line":73,"column":19}},{"start":{"line":74,"column":10},"end":{"line":74,"column":19}}],"line":60},"7":{"loc":{"start":{"line":60,"column":7},"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":43}},{"start":{"line":60,"column":48},"end":{"line":60,"column":61}}],"line":60},"8":{"loc":{"start":{"line":63,"column":13},"end":{"line":69,"column":13}},"type":"cond-expr","locations":[{"start":{"line":64,"column":14},"end":{"line":66,"column":18}},{"start":{"line":68,"column":14},"end":{"line":68,"column":16}}],"line":63}},"s":{"0":5,"1":5,"2":1,"3":0,"4":1,"5":1,"6":0,"7":5,"8":5,"9":0,"10":5,"11":5,"12":0,"13":5,"14":1,"15":1},"f":{"0":5,"1":1,"2":5},"b":{"0":[5,2],"1":[0,1],"2":[0,1],"3":[0,5],"4":[5,0],"5":[4,1],"6":[4,1],"7":[5,2,4],"8":[0,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"20032f32f71d27ef13f957aad41220bdd865b533"} +,"/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":11,"column":6},"end":{"line":15,"column":12}},"1":{"start":{"line":20,"column":17},"end":{"line":20,"column":58}},"2":{"start":{"line":20,"column":27},"end":{"line":20,"column":58}},"3":{"start":{"line":22,"column":24},"end":{"line":22,"column":41}},"4":{"start":{"line":23,"column":0},"end":{"line":46,"column":2}},"5":{"start":{"line":48,"column":33},"end":{"line":48,"column":50}},"6":{"start":{"line":49,"column":0},"end":{"line":74,"column":2}},"7":{"start":{"line":76,"column":34},"end":{"line":76,"column":51}},"8":{"start":{"line":77,"column":0},"end":{"line":102,"column":2}},"9":{"start":{"line":104,"column":21},"end":{"line":104,"column":38}},"10":{"start":{"line":105,"column":0},"end":{"line":131,"column":2}},"11":{"start":{"line":133,"column":28},"end":{"line":133,"column":45}},"12":{"start":{"line":134,"column":0},"end":{"line":159,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":11,"column":6},"end":{"line":15,"column":12}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":17},"end":{"line":20,"column":18}},"loc":{"start":{"line":20,"column":27},"end":{"line":20,"column":58}},"line":20}},"branchMap":{},"s":{"0":0,"1":1,"2":4,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{"0":0,"1":4},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"488f3b8e9b9cc8ad570af097ab24034216c0a6ac"} +,"/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":13,"column":42},"end":{"line":13,"column":74}},"1":{"start":{"line":14,"column":40},"end":{"line":14,"column":61}},"2":{"start":{"line":15,"column":16},"end":{"line":15,"column":40}},"3":{"start":{"line":16,"column":26},"end":{"line":28,"column":3}},"4":{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},"5":{"start":{"line":18,"column":6},"end":{"line":18,"column":30}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":37}},"7":{"start":{"line":21,"column":6},"end":{"line":21,"column":29}},"8":{"start":{"line":22,"column":6},"end":{"line":22,"column":36}},"9":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"10":{"start":{"line":26,"column":6},"end":{"line":26,"column":53}},"11":{"start":{"line":29,"column":2},"end":{"line":103,"column":4}},"12":{"start":{"line":106,"column":0},"end":{"line":108,"column":2}},"13":{"start":{"line":110,"column":0},"end":{"line":264,"column":2}}},"fnMap":{"0":{"name":"OptionalTextField","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":33}},"loc":{"start":{"line":12,"column":41},"end":{"line":104,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":26},"end":{"line":16,"column":27}},"loc":{"start":{"line":16,"column":55},"end":{"line":28,"column":3}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":76,"column":66},"end":{"line":76,"column":67}},"loc":{"start":{"line":76,"column":72},"end":{"line":76,"column":74}},"line":76},"3":{"name":"(anonymous_3)","decl":{"start":{"line":94,"column":66},"end":{"line":94,"column":67}},"loc":{"start":{"line":94,"column":72},"end":{"line":94,"column":74}},"line":94}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":51},"end":{"line":13,"column":73}},"type":"binary-expr","locations":[{"start":{"line":13,"column":51},"end":{"line":13,"column":64}},{"start":{"line":13,"column":68},"end":{"line":13,"column":73}}],"line":13},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":23,"column":5}},{"start":{"line":20,"column":11},"end":{"line":23,"column":5}}],"line":17},"2":{"loc":{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":27,"column":5}},{"start":{},"end":{}}],"line":25},"3":{"loc":{"start":{"line":31,"column":7},"end":{"line":46,"column":7}},"type":"binary-expr","locations":[{"start":{"line":31,"column":7},"end":{"line":31,"column":39}},{"start":{"line":32,"column":8},"end":{"line":45,"column":10}}],"line":31},"4":{"loc":{"start":{"line":47,"column":7},"end":{"line":60,"column":7}},"type":"binary-expr","locations":[{"start":{"line":47,"column":7},"end":{"line":47,"column":41}},{"start":{"line":48,"column":8},"end":{"line":59,"column":10}}],"line":47},"5":{"loc":{"start":{"line":61,"column":7},"end":{"line":101,"column":19}},"type":"cond-expr","locations":[{"start":{"line":62,"column":8},"end":{"line":100,"column":9}},{"start":{"line":101,"column":10},"end":{"line":101,"column":19}}],"line":61},"6":{"loc":{"start":{"line":61,"column":7},"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":43}},{"start":{"line":61,"column":48},"end":{"line":61,"column":61}}],"line":61},"7":{"loc":{"start":{"line":62,"column":8},"end":{"line":100,"column":9}},"type":"cond-expr","locations":[{"start":{"line":63,"column":10},"end":{"line":82,"column":12}},{"start":{"line":84,"column":10},"end":{"line":99,"column":12}}],"line":62},"8":{"loc":{"start":{"line":76,"column":14},"end":{"line":76,"column":74}},"type":"cond-expr","locations":[{"start":{"line":76,"column":40},"end":{"line":76,"column":63}},{"start":{"line":76,"column":66},"end":{"line":76,"column":74}}],"line":76},"9":{"loc":{"start":{"line":94,"column":14},"end":{"line":94,"column":74}},"type":"cond-expr","locations":[{"start":{"line":94,"column":40},"end":{"line":94,"column":63}},{"start":{"line":94,"column":66},"end":{"line":94,"column":74}}],"line":94}},"s":{"0":132,"1":132,"2":132,"3":132,"4":3,"5":0,"6":0,"7":3,"8":3,"9":3,"10":0,"11":132,"12":7,"13":7},"f":{"0":132,"1":3,"2":0,"3":0},"b":{"0":[132,131],"1":[0,3],"2":[0,3],"3":[132,131],"4":[132,1],"5":[4,128],"6":[132,131,129],"7":[2,2],"8":[0,2],"9":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8634d2958cbaba034f4412b2fc9922d18709bc78"} +,"/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":9,"column":6},"end":{"line":13,"column":12}},"1":{"start":{"line":18,"column":17},"end":{"line":18,"column":58}},"2":{"start":{"line":18,"column":27},"end":{"line":18,"column":58}},"3":{"start":{"line":20,"column":24},"end":{"line":20,"column":41}},"4":{"start":{"line":21,"column":0},"end":{"line":30,"column":2}},"5":{"start":{"line":32,"column":22},"end":{"line":32,"column":39}},"6":{"start":{"line":33,"column":0},"end":{"line":43,"column":2}},"7":{"start":{"line":45,"column":21},"end":{"line":45,"column":38}},"8":{"start":{"line":46,"column":0},"end":{"line":57,"column":2}},"9":{"start":{"line":59,"column":28},"end":{"line":59,"column":45}},"10":{"start":{"line":60,"column":0},"end":{"line":70,"column":2}},"11":{"start":{"line":72,"column":25},"end":{"line":72,"column":42}},"12":{"start":{"line":73,"column":0},"end":{"line":85,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},"loc":{"start":{"line":9,"column":6},"end":{"line":13,"column":12}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":17},"end":{"line":18,"column":18}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":58}},"line":18}},"branchMap":{},"s":{"0":0,"1":1,"2":3,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"f":{"0":0,"1":3},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f3e59dbd14560c6a06de307d20ffa1ea90764fb7"} +,"/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":7,"column":2},"end":{"line":18,"column":4}},"1":{"start":{"line":21,"column":0},"end":{"line":36,"column":2}}},"fnMap":{"0":{"name":"Quote","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":29},"end":{"line":19,"column":1}},"line":6}},"branchMap":{},"s":{"0":2,"1":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"914151f048ff6674b34078ad362358f66eaf5bdc"} +,"/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":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":13,"column":0},"end":{"line":16,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8546b91a33b2b077c74b81930be5d6aa06d8fcf1"} +,"/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":10,"column":2},"end":{"line":13,"column":38}},"1":{"start":{"line":11,"column":4},"end":{"line":13,"column":38}},"2":{"start":{"line":15,"column":2},"end":{"line":41,"column":4}},"3":{"start":{"line":44,"column":0},"end":{"line":98,"column":2}}},"fnMap":{"0":{"name":"TextButtonField","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":31}},"loc":{"start":{"line":7,"column":39},"end":{"line":42,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":13,"column":38}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":13,"column":38}},{"start":{},"end":{}}],"line":10},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":13,"column":37}},"type":"cond-expr","locations":[{"start":{"line":12,"column":9},"end":{"line":12,"column":25}},{"start":{"line":13,"column":9},"end":{"line":13,"column":36}}],"line":11},"2":{"loc":{"start":{"line":17,"column":7},"end":{"line":24,"column":7}},"type":"cond-expr","locations":[{"start":{"line":18,"column":8},"end":{"line":18,"column":63}},{"start":{"line":20,"column":8},"end":{"line":23,"column":10}}],"line":17},"3":{"loc":{"start":{"line":26,"column":7},"end":{"line":39,"column":7}},"type":"cond-expr","locations":[{"start":{"line":27,"column":8},"end":{"line":36,"column":10}},{"start":{"line":38,"column":8},"end":{"line":38,"column":10}}],"line":26}},"s":{"0":6,"1":5,"2":6,"3":1},"f":{"0":6},"b":{"0":[5,1],"1":[2,3],"2":[0,6],"3":[6,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"14bda22fd1f2f14d443929d2c285edd59149910e"} +,"/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":9,"column":17},"end":{"line":9,"column":72}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":72}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":25},"end":{"line":12,"column":42}},"4":{"start":{"line":13,"column":24},"end":{"line":13,"column":41}},"5":{"start":{"line":14,"column":22},"end":{"line":14,"column":39}},"6":{"start":{"line":16,"column":0},"end":{"line":22,"column":2}},"7":{"start":{"line":24,"column":0},"end":{"line":29,"column":2}},"8":{"start":{"line":31,"column":0},"end":{"line":37,"column":2}},"9":{"start":{"line":39,"column":0},"end":{"line":45,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":72}},"line":9}},"branchMap":{},"s":{"0":1,"1":6,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"f":{"0":6},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f29622407ea811475770188efda9193be04d2174"} +,"/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":9,"column":2},"end":{"line":86,"column":4}},"1":{"start":{"line":23,"column":14},"end":{"line":32,"column":16}},"2":{"start":{"line":49,"column":16},"end":{"line":66,"column":18}},"3":{"start":{"line":89,"column":0},"end":{"line":118,"column":2}}},"fnMap":{"0":{"name":"Footer","decl":{"start":{"line":8,"column":16},"end":{"line":8,"column":22}},"loc":{"start":{"line":8,"column":30},"end":{"line":87,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":38},"end":{"line":22,"column":39}},"loc":{"start":{"line":22,"column":56},"end":{"line":33,"column":13}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":48,"column":31},"end":{"line":48,"column":32}},"loc":{"start":{"line":48,"column":49},"end":{"line":67,"column":15}},"line":48}},"branchMap":{"0":{"loc":{"start":{"line":53,"column":22},"end":{"line":55,"column":74}},"type":"cond-expr","locations":[{"start":{"line":54,"column":26},"end":{"line":54,"column":87}},{"start":{"line":55,"column":26},"end":{"line":55,"column":74}}],"line":53}},"s":{"0":1,"1":8,"2":8,"3":1},"f":{"0":1,"1":8,"2":8},"b":{"0":[1,7]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5087a391e8615a1a28515c9eca0aac3a96550549"} +,"/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":9,"column":17},"end":{"line":9,"column":47}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":0},"end":{"line":88,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":47}},"line":9}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1},"f":{"0":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9a8452c83eb0146eee297096df7518c1081011de"} +,"/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":14,"column":22},"end":{"line":156,"column":1}},"1":{"start":{"line":27,"column":16},"end":{"line":27,"column":40}},"2":{"start":{"line":28,"column":19},"end":{"line":28,"column":48}},"3":{"start":{"line":29,"column":2},"end":{"line":32,"column":11}},"4":{"start":{"line":34,"column":2},"end":{"line":155,"column":4}},"5":{"start":{"line":158,"column":0},"end":{"line":225,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":22},"end":{"line":14,"column":23}},"loc":{"start":{"line":26,"column":6},"end":{"line":156,"column":1}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":28,"column":19},"end":{"line":28,"column":48}},"type":"cond-expr","locations":[{"start":{"line":28,"column":37},"end":{"line":28,"column":41}},{"start":{"line":28,"column":44},"end":{"line":28,"column":48}}],"line":28},"1":{"loc":{"start":{"line":30,"column":4},"end":{"line":32,"column":10}},"type":"cond-expr","locations":[{"start":{"line":31,"column":8},"end":{"line":31,"column":28}},{"start":{"line":32,"column":8},"end":{"line":32,"column":10}}],"line":30},"2":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":59}},"type":"binary-expr","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":33}},{"start":{"line":30,"column":37},"end":{"line":30,"column":59}}],"line":30},"3":{"loc":{"start":{"line":50,"column":9},"end":{"line":60,"column":9}},"type":"cond-expr","locations":[{"start":{"line":51,"column":10},"end":{"line":57,"column":12}},{"start":{"line":59,"column":10},"end":{"line":59,"column":12}}],"line":50},"4":{"loc":{"start":{"line":72,"column":21},"end":{"line":72,"column":78}},"type":"cond-expr","locations":[{"start":{"line":72,"column":41},"end":{"line":72,"column":58}},{"start":{"line":72,"column":61},"end":{"line":72,"column":78}}],"line":72},"5":{"loc":{"start":{"line":86,"column":15},"end":{"line":86,"column":46}},"type":"cond-expr","locations":[{"start":{"line":86,"column":35},"end":{"line":86,"column":39}},{"start":{"line":86,"column":42},"end":{"line":86,"column":46}}],"line":86},"6":{"loc":{"start":{"line":99,"column":15},"end":{"line":99,"column":57}},"type":"cond-expr","locations":[{"start":{"line":99,"column":35},"end":{"line":99,"column":44}},{"start":{"line":99,"column":47},"end":{"line":99,"column":57}}],"line":99},"7":{"loc":{"start":{"line":112,"column":9},"end":{"line":114,"column":16}},"type":"cond-expr","locations":[{"start":{"line":113,"column":10},"end":{"line":113,"column":66}},{"start":{"line":114,"column":12},"end":{"line":114,"column":16}}],"line":112},"8":{"loc":{"start":{"line":112,"column":9},"end":{"line":112,"column":34}},"type":"binary-expr","locations":[{"start":{"line":112,"column":9},"end":{"line":112,"column":19}},{"start":{"line":112,"column":23},"end":{"line":112,"column":34}}],"line":112}},"s":{"0":3,"1":7,"2":7,"3":7,"4":7,"5":3},"f":{"0":7},"b":{"0":[0,7],"1":[7,0],"2":[7,7],"3":[0,7],"4":[7,0],"5":[7,0],"6":[7,0],"7":[2,5],"8":[7,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"767969a8536c431c743d51af94c87afb24fa4471"} +,"/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":9,"column":19},"end":{"line":21,"column":1}},"1":{"start":{"line":10,"column":2},"end":{"line":20,"column":4}},"2":{"start":{"line":23,"column":17},"end":{"line":23,"column":68}},"3":{"start":{"line":23,"column":27},"end":{"line":23,"column":68}},"4":{"start":{"line":25,"column":24},"end":{"line":25,"column":41}},"5":{"start":{"line":26,"column":26},"end":{"line":26,"column":43}},"6":{"start":{"line":28,"column":0},"end":{"line":31,"column":2}},"7":{"start":{"line":33,"column":0},"end":{"line":38,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":19},"end":{"line":9,"column":20}},"loc":{"start":{"line":9,"column":25},"end":{"line":21,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":23,"column":17},"end":{"line":23,"column":18}},"loc":{"start":{"line":23,"column":27},"end":{"line":23,"column":68}},"line":23}},"branchMap":{},"s":{"0":1,"1":7,"2":1,"3":7,"4":1,"5":1,"6":1,"7":1},"f":{"0":7,"1":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"fa998bebdd094c5292aea015bd36a1110983f7e0"} +,"/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":27},"end":{"line":110,"column":1}},"1":{"start":{"line":20,"column":42},"end":{"line":20,"column":57}},"2":{"start":{"line":21,"column":16},"end":{"line":21,"column":40}},"3":{"start":{"line":22,"column":17},"end":{"line":22,"column":36}},"4":{"start":{"line":24,"column":2},"end":{"line":32,"column":4}},"5":{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},"6":{"start":{"line":26,"column":6},"end":{"line":26,"column":35}},"7":{"start":{"line":28,"column":6},"end":{"line":28,"column":34}},"8":{"start":{"line":31,"column":4},"end":{"line":31,"column":35}},"9":{"start":{"line":34,"column":2},"end":{"line":109,"column":4}},"10":{"start":{"line":112,"column":0},"end":{"line":133,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":27},"end":{"line":12,"column":28}},"loc":{"start":{"line":19,"column":6},"end":{"line":110,"column":1}},"line":19},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":15},"end":{"line":24,"column":16}},"loc":{"start":{"line":24,"column":28},"end":{"line":32,"column":3}},"line":24}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},"type":"if","locations":[{"start":{"line":25,"column":4},"end":{"line":29,"column":5}},{"start":{"line":27,"column":11},"end":{"line":29,"column":5}}],"line":25},"1":{"loc":{"start":{"line":40,"column":14},"end":{"line":40,"column":42}},"type":"cond-expr","locations":[{"start":{"line":40,"column":31},"end":{"line":40,"column":37}},{"start":{"line":40,"column":40},"end":{"line":40,"column":42}}],"line":40},"2":{"loc":{"start":{"line":49,"column":13},"end":{"line":60,"column":13}},"type":"cond-expr","locations":[{"start":{"line":50,"column":14},"end":{"line":57,"column":16}},{"start":{"line":59,"column":14},"end":{"line":59,"column":16}}],"line":49},"3":{"loc":{"start":{"line":68,"column":9},"end":{"line":99,"column":9}},"type":"cond-expr","locations":[{"start":{"line":69,"column":10},"end":{"line":96,"column":16}},{"start":{"line":98,"column":10},"end":{"line":98,"column":12}}],"line":68}},"s":{"0":4,"1":3,"2":3,"3":3,"4":3,"5":1,"6":0,"7":1,"8":1,"9":3,"10":4},"f":{"0":3,"1":1},"b":{"0":[0,1],"1":[2,1],"2":[2,1],"3":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2086ab5e8ecf14c039f8553e9d1f861e5ab5ba67"} +,"/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":9,"column":17},"end":{"line":9,"column":52}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}},"3":{"start":{"line":12,"column":28},"end":{"line":12,"column":45}},"4":{"start":{"line":14,"column":0},"end":{"line":17,"column":2}},"5":{"start":{"line":19,"column":0},"end":{"line":23,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":52}},"line":9}},"branchMap":{},"s":{"0":1,"1":2,"2":1,"3":1,"4":1,"5":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2ad2ba3e09977408647854af514684bc9872812d"} +,"/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":15,"column":36},"end":{"line":15,"column":51}},"1":{"start":{"line":16,"column":22},"end":{"line":16,"column":38}},"2":{"start":{"line":18,"column":44},"end":{"line":18,"column":59}},"3":{"start":{"line":20,"column":24},"end":{"line":96,"column":3}},"4":{"start":{"line":22,"column":27},"end":{"line":22,"column":32}},"5":{"start":{"line":25,"column":24},"end":{"line":25,"column":62}},"6":{"start":{"line":26,"column":4},"end":{"line":32,"column":5}},"7":{"start":{"line":26,"column":21},"end":{"line":26,"column":22}},"8":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"9":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"10":{"start":{"line":29,"column":10},"end":{"line":29,"column":34}},"11":{"start":{"line":35,"column":4},"end":{"line":35,"column":23}},"12":{"start":{"line":37,"column":21},"end":{"line":37,"column":43}},"13":{"start":{"line":40,"column":4},"end":{"line":43,"column":5}},"14":{"start":{"line":41,"column":28},"end":{"line":41,"column":50}},"15":{"start":{"line":42,"column":6},"end":{"line":42,"column":45}},"16":{"start":{"line":46,"column":23},"end":{"line":46,"column":52}},"17":{"start":{"line":47,"column":20},"end":{"line":47,"column":41}},"18":{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},"19":{"start":{"line":52,"column":6},"end":{"line":60,"column":8}},"20":{"start":{"line":62,"column":6},"end":{"line":70,"column":8}},"21":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"22":{"start":{"line":74,"column":6},"end":{"line":74,"column":50}},"23":{"start":{"line":78,"column":4},"end":{"line":89,"column":7}},"24":{"start":{"line":88,"column":6},"end":{"line":88,"column":21}},"25":{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},"26":{"start":{"line":92,"column":6},"end":{"line":92,"column":25}},"27":{"start":{"line":95,"column":4},"end":{"line":95,"column":27}},"28":{"start":{"line":98,"column":2},"end":{"line":370,"column":4}},"29":{"start":{"line":373,"column":0},"end":{"line":378,"column":2}}},"fnMap":{"0":{"name":"ReportAProblem","decl":{"start":{"line":14,"column":16},"end":{"line":14,"column":30}},"loc":{"start":{"line":14,"column":38},"end":{"line":371,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":24},"end":{"line":20,"column":25}},"loc":{"start":{"line":20,"column":31},"end":{"line":96,"column":3}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":84,"column":13},"end":{"line":84,"column":14}},"loc":{"start":{"line":84,"column":20},"end":{"line":89,"column":5}},"line":84}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},"type":"if","locations":[{"start":{"line":27,"column":6},"end":{"line":31,"column":7}},{"start":{},"end":{}}],"line":27},"1":{"loc":{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},"type":"if","locations":[{"start":{"line":28,"column":8},"end":{"line":30,"column":9}},{"start":{},"end":{}}],"line":28},"2":{"loc":{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},"type":"if","locations":[{"start":{"line":51,"column":4},"end":{"line":71,"column":5}},{"start":{"line":61,"column":11},"end":{"line":71,"column":5}}],"line":51},"3":{"loc":{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":93,"column":5}},{"start":{},"end":{}}],"line":91},"4":{"loc":{"start":{"line":105,"column":9},"end":{"line":122,"column":9}},"type":"cond-expr","locations":[{"start":{"line":106,"column":10},"end":{"line":119,"column":13}},{"start":{"line":121,"column":10},"end":{"line":121,"column":12}}],"line":105},"5":{"loc":{"start":{"line":124,"column":7},"end":{"line":368,"column":7}},"type":"cond-expr","locations":[{"start":{"line":125,"column":8},"end":{"line":125,"column":10}},{"start":{"line":127,"column":8},"end":{"line":367,"column":11}}],"line":124},"6":{"loc":{"start":{"line":350,"column":15},"end":{"line":354,"column":27}},"type":"cond-expr","locations":[{"start":{"line":351,"column":16},"end":{"line":353,"column":18}},{"start":{"line":354,"column":18},"end":{"line":354,"column":27}}],"line":350}},"s":{"0":20,"1":19,"2":19,"3":19,"4":3,"5":3,"6":3,"7":3,"8":24,"9":21,"10":1,"11":3,"12":3,"13":3,"14":5,"15":5,"16":3,"17":3,"18":3,"19":0,"20":3,"21":3,"22":21,"23":3,"24":0,"25":3,"26":1,"27":3,"28":19,"29":6},"f":{"0":20,"1":3,"2":0},"b":{"0":[21,3],"1":[1,20],"2":[0,3],"3":[1,2],"4":[1,18],"5":[1,18],"6":[2,16]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"aab2c7918d1dd6e334399d6e51f4ce93a6a88906"} +,"/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":9,"column":17},"end":{"line":9,"column":55}},"1":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"2":{"start":{"line":11,"column":23},"end":{"line":11,"column":40}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":9,"column":17},"end":{"line":9,"column":18}},"loc":{"start":{"line":9,"column":27},"end":{"line":9,"column":55}},"line":9}},"branchMap":{},"s":{"0":1,"1":5,"2":1},"f":{"0":5},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d29be7f648557f0474151c64e2ffc2eeff8aeb14"} +,"/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":27},"end":{"line":30,"column":1}},"1":{"start":{"line":11,"column":25},"end":{"line":27,"column":4}},"2":{"start":{"line":29,"column":2},"end":{"line":29,"column":62}},"3":{"start":{"line":32,"column":41},"end":{"line":65,"column":1}},"4":{"start":{"line":42,"column":25},"end":{"line":63,"column":4}},"5":{"start":{"line":64,"column":2},"end":{"line":64,"column":62}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":27},"end":{"line":3,"column":28}},"loc":{"start":{"line":10,"column":5},"end":{"line":30,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":41},"end":{"line":32,"column":42}},"loc":{"start":{"line":41,"column":5},"end":{"line":65,"column":1}},"line":41}},"branchMap":{},"s":{"0":2,"1":1,"2":1,"3":2,"4":0,"5":0},"f":{"0":1,"1":0},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"64121f88f74f2700c145bf99f2a9d5af31e58cbb"} +,"/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":33},"end":{"line":12,"column":1}},"1":{"start":{"line":2,"column":2},"end":{"line":11,"column":5}},"2":{"start":{"line":3,"column":4},"end":{"line":10,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":33},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":62},"end":{"line":12,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":29},"end":{"line":2,"column":30}},"loc":{"start":{"line":2,"column":49},"end":{"line":11,"column":3}},"line":2}},"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}}],"line":5},"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}}],"line":7}},"s":{"0":1,"1":1,"2":1},"f":{"0":1,"1":1},"b":{"0":[0,1],"1":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4ff228440cfccf8b1af92ac32e0771b0ff6dfd8b"} +,"/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":2,"column":2},"end":{"line":15,"column":5}},"1":{"start":{"line":2,"column":33},"end":{"line":15,"column":3}}},"fnMap":{"0":{"name":"getAllUpdateIds","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":31}},"loc":{"start":{"line":1,"column":39},"end":{"line":16,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":23},"end":{"line":2,"column":24}},"loc":{"start":{"line":2,"column":33},"end":{"line":15,"column":3}},"line":2}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} +,"/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":3,"column":20},"end":{"line":3,"column":22}},"1":{"start":{"line":4,"column":10},"end":{"line":4,"column":11}},"2":{"start":{"line":6,"column":2},"end":{"line":16,"column":3}},"3":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"4":{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},"5":{"start":{"line":8,"column":6},"end":{"line":8,"column":30}},"6":{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},"7":{"start":{"line":10,"column":6},"end":{"line":10,"column":25}},"8":{"start":{"line":11,"column":6},"end":{"line":11,"column":13}},"9":{"start":{"line":13,"column":6},"end":{"line":13,"column":30}},"10":{"start":{"line":14,"column":6},"end":{"line":14,"column":12}},"11":{"start":{"line":18,"column":2},"end":{"line":18,"column":21}}},"fnMap":{"0":{"name":"maskEmail","decl":{"start":{"line":2,"column":16},"end":{"line":2,"column":25}},"loc":{"start":{"line":2,"column":33},"end":{"line":19,"column":1}},"line":2}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":15,"column":5}},{"start":{"line":9,"column":11},"end":{"line":15,"column":5}}],"line":7},"1":{"loc":{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":9,"column":11},"end":{"line":15,"column":5}},{"start":{"line":12,"column":11},"end":{"line":15,"column":5}}],"line":9},"2":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":61}},"type":"binary-expr","locations":[{"start":{"line":9,"column":15},"end":{"line":9,"column":31}},{"start":{"line":9,"column":35},"end":{"line":9,"column":51}},{"start":{"line":9,"column":55},"end":{"line":9,"column":61}}],"line":9}},"s":{"0":1,"1":1,"2":1,"3":1,"4":14,"5":1,"6":13,"7":10,"8":10,"9":3,"10":3,"11":1},"f":{"0":1},"b":{"0":[1,13],"1":[10,3],"2":[13,12,11]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2c319a415cf9287df92d50f88488af57238eb4bb"} +,"/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":3,"column":2},"end":{"line":6,"column":4}},"1":{"start":{"line":9,"column":2},"end":{"line":12,"column":4}},"2":{"start":{"line":15,"column":2},"end":{"line":18,"column":4}},"3":{"start":{"line":21,"column":2},"end":{"line":24,"column":4}},"4":{"start":{"line":25,"column":2},"end":{"line":28,"column":4}},"5":{"start":{"line":30,"column":2},"end":{"line":30,"column":25}}},"fnMap":{"0":{"name":"stripFeedback","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":29}},"loc":{"start":{"line":1,"column":47},"end":{"line":31,"column":1}},"line":1}},"branchMap":{},"s":{"0":7,"1":7,"2":7,"3":7,"4":7,"5":7},"f":{"0":7},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d0915e4032d8d1101c90ae4a5d38458236eb2b5f"} +,"/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":4,"column":2},"end":{"line":12,"column":7}},"1":{"start":{"line":5,"column":4},"end":{"line":12,"column":6}},"2":{"start":{"line":6,"column":6},"end":{"line":11,"column":9}},"3":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"4":{"start":{"line":8,"column":10},"end":{"line":8,"column":32}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":31}}},"fnMap":{"0":{"name":"initMiddleware","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":51},"end":{"line":13,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":10}},"loc":{"start":{"line":5,"column":4},"end":{"line":12,"column":6}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":37},"end":{"line":12,"column":5}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":6,"column":27},"end":{"line":6,"column":28}},"loc":{"start":{"line":6,"column":39},"end":{"line":11,"column":7}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"type":"if","locations":[{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},{"start":{},"end":{}}],"line":7}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[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":12,"column":2},"end":{"line":24,"column":4}},"1":{"start":{"line":13,"column":22},"end":{"line":13,"column":62}},"2":{"start":{"line":14,"column":18},"end":{"line":14,"column":37}},"3":{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},"4":{"start":{"line":16,"column":6},"end":{"line":16,"column":31}},"5":{"start":{"line":18,"column":26},"end":{"line":18,"column":31}},"6":{"start":{"line":19,"column":22},"end":{"line":21,"column":8}},"7":{"start":{"line":20,"column":8},"end":{"line":20,"column":52}},"8":{"start":{"line":22,"column":6},"end":{"line":22,"column":47}}},"fnMap":{"0":{"name":"validate","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":64},"end":{"line":25,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":10}},"loc":{"start":{"line":12,"column":29},"end":{"line":24,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":34},"end":{"line":19,"column":35}},"loc":{"start":{"line":19,"column":41},"end":{"line":21,"column":7}},"line":19}},"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}}],"line":11},"1":{"loc":{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":23,"column":5}},{"start":{"line":17,"column":11},"end":{"line":23,"column":5}}],"line":15}},"s":{"0":1,"1":1,"2":1,"3":1,"4":0,"5":1,"6":1,"7":2,"8":1},"f":{"0":1,"1":1,"2":2},"b":{"0":[0],"1":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c484cc6eabb2eee8fcbd18f7de461eca0e65b74d"} +,"/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":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":30},"end":{"line":13,"column":45}},"2":{"start":{"line":14,"column":17},"end":{"line":14,"column":28}},"3":{"start":{"line":15,"column":21},"end":{"line":15,"column":50}},"4":{"start":{"line":17,"column":2},"end":{"line":29,"column":9}},"5":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"7":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"9":{"start":{"line":25,"column":6},"end":{"line":25,"column":35}},"10":{"start":{"line":27,"column":6},"end":{"line":27,"column":22}},"11":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":23}},"13":{"start":{"line":36,"column":2},"end":{"line":246,"column":4}},"14":{"start":{"line":249,"column":30},"end":{"line":261,"column":1}},"15":{"start":{"line":250,"column":19},"end":{"line":250,"column":72}},"16":{"start":{"line":252,"column":2},"end":{"line":260,"column":4}}},"fnMap":{"0":{"name":"error404","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":40},"end":{"line":247,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":29,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":249,"column":30},"end":{"line":249,"column":31}},"loc":{"start":{"line":249,"column":52},"end":{"line":261,"column":1}},"line":249}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},{"start":{"line":26,"column":11},"end":{"line":28,"column":5}}],"line":24},"3":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":40,"column":11},"end":{"line":44,"column":11}},"type":"cond-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},{"start":{"line":43,"column":12},"end":{"line":43,"column":14}}],"line":40},"5":{"loc":{"start":{"line":63,"column":21},"end":{"line":63,"column":58}},"type":"cond-expr","locations":[{"start":{"line":63,"column":45},"end":{"line":63,"column":50}},{"start":{"line":63,"column":53},"end":{"line":63,"column":58}}],"line":63},"6":{"loc":{"start":{"line":78,"column":14},"end":{"line":80,"column":57}},"type":"cond-expr","locations":[{"start":{"line":79,"column":18},"end":{"line":79,"column":60}},{"start":{"line":80,"column":18},"end":{"line":80,"column":57}}],"line":78},"7":{"loc":{"start":{"line":130,"column":16},"end":{"line":132,"column":58}},"type":"cond-expr","locations":[{"start":{"line":131,"column":20},"end":{"line":131,"column":58}},{"start":{"line":132,"column":20},"end":{"line":132,"column":58}}],"line":130},"8":{"loc":{"start":{"line":135,"column":16},"end":{"line":137,"column":59}},"type":"cond-expr","locations":[{"start":{"line":136,"column":20},"end":{"line":136,"column":59}},{"start":{"line":137,"column":20},"end":{"line":137,"column":59}}],"line":135},"9":{"loc":{"start":{"line":174,"column":20},"end":{"line":176,"column":63}},"type":"cond-expr","locations":[{"start":{"line":175,"column":24},"end":{"line":175,"column":63}},{"start":{"line":176,"column":24},"end":{"line":176,"column":63}}],"line":174},"10":{"loc":{"start":{"line":226,"column":18},"end":{"line":228,"column":60}},"type":"cond-expr","locations":[{"start":{"line":227,"column":22},"end":{"line":227,"column":60}},{"start":{"line":228,"column":22},"end":{"line":228,"column":60}}],"line":226},"11":{"loc":{"start":{"line":231,"column":18},"end":{"line":233,"column":61}},"type":"cond-expr","locations":[{"start":{"line":232,"column":22},"end":{"line":232,"column":61}},{"start":{"line":233,"column":22},"end":{"line":233,"column":61}}],"line":231},"12":{"loc":{"start":{"line":240,"column":7},"end":{"line":244,"column":7}},"type":"cond-expr","locations":[{"start":{"line":241,"column":8},"end":{"line":241,"column":71}},{"start":{"line":243,"column":8},"end":{"line":243,"column":10}}],"line":240}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":1,"6":0,"7":0,"8":1,"9":0,"10":1,"11":2,"12":1,"13":1,"14":1,"15":0,"16":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[1,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]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a990004def25137dda3561802d6a9ffd51622bbf"} +,"/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":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":30},"end":{"line":13,"column":45}},"2":{"start":{"line":14,"column":17},"end":{"line":14,"column":28}},"3":{"start":{"line":15,"column":21},"end":{"line":15,"column":50}},"4":{"start":{"line":17,"column":2},"end":{"line":29,"column":9}},"5":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"7":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"9":{"start":{"line":25,"column":6},"end":{"line":25,"column":35}},"10":{"start":{"line":27,"column":6},"end":{"line":27,"column":22}},"11":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":23}},"13":{"start":{"line":36,"column":2},"end":{"line":272,"column":4}},"14":{"start":{"line":275,"column":30},"end":{"line":287,"column":1}},"15":{"start":{"line":276,"column":19},"end":{"line":276,"column":72}},"16":{"start":{"line":278,"column":2},"end":{"line":286,"column":4}}},"fnMap":{"0":{"name":"error500","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":32}},"loc":{"start":{"line":11,"column":40},"end":{"line":273,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":29,"column":3}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":275,"column":30},"end":{"line":275,"column":31}},"loc":{"start":{"line":275,"column":52},"end":{"line":287,"column":1}},"line":275}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":24,"column":4},"end":{"line":28,"column":5}},{"start":{"line":26,"column":11},"end":{"line":28,"column":5}}],"line":24},"3":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":40,"column":11},"end":{"line":44,"column":11}},"type":"cond-expr","locations":[{"start":{"line":41,"column":12},"end":{"line":41,"column":52}},{"start":{"line":43,"column":12},"end":{"line":43,"column":14}}],"line":40},"5":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":58}},"type":"cond-expr","locations":[{"start":{"line":74,"column":45},"end":{"line":74,"column":50}},{"start":{"line":74,"column":53},"end":{"line":74,"column":58}}],"line":74},"6":{"loc":{"start":{"line":156,"column":16},"end":{"line":158,"column":58}},"type":"cond-expr","locations":[{"start":{"line":157,"column":20},"end":{"line":157,"column":58}},{"start":{"line":158,"column":20},"end":{"line":158,"column":58}}],"line":156},"7":{"loc":{"start":{"line":161,"column":16},"end":{"line":163,"column":59}},"type":"cond-expr","locations":[{"start":{"line":162,"column":20},"end":{"line":162,"column":59}},{"start":{"line":163,"column":20},"end":{"line":163,"column":59}}],"line":161},"8":{"loc":{"start":{"line":200,"column":20},"end":{"line":202,"column":63}},"type":"cond-expr","locations":[{"start":{"line":201,"column":24},"end":{"line":201,"column":63}},{"start":{"line":202,"column":24},"end":{"line":202,"column":63}}],"line":200},"9":{"loc":{"start":{"line":252,"column":18},"end":{"line":254,"column":60}},"type":"cond-expr","locations":[{"start":{"line":253,"column":22},"end":{"line":253,"column":60}},{"start":{"line":254,"column":22},"end":{"line":254,"column":60}}],"line":252},"10":{"loc":{"start":{"line":257,"column":18},"end":{"line":259,"column":61}},"type":"cond-expr","locations":[{"start":{"line":258,"column":22},"end":{"line":258,"column":61}},{"start":{"line":259,"column":22},"end":{"line":259,"column":61}}],"line":257},"11":{"loc":{"start":{"line":266,"column":7},"end":{"line":270,"column":7}},"type":"cond-expr","locations":[{"start":{"line":267,"column":8},"end":{"line":267,"column":71}},{"start":{"line":269,"column":8},"end":{"line":269,"column":10}}],"line":266}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":1,"6":0,"7":0,"8":1,"9":0,"10":1,"11":2,"12":1,"13":1,"14":1,"15":0,"16":0},"f":{"0":2,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[1,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]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"4828615a79f7c9c552c6d35c197fb8b04cf983cd"} +,"/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":9,"column":0},"end":{"line":9,"column":26}},"1":{"start":{"line":12,"column":2},"end":{"line":24,"column":4}}},"fnMap":{"0":{"name":"MyApp","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":14}},"loc":{"start":{"line":11,"column":41},"end":{"line":25,"column":1}},"line":11}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/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":12,"column":16},"end":{"line":12,"column":40}},"1":{"start":{"line":13,"column":20},"end":{"line":13,"column":31}},"2":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"3":{"start":{"line":16,"column":21},"end":{"line":16,"column":43}},"4":{"start":{"line":18,"column":4},"end":{"line":18,"column":69}},"5":{"start":{"line":20,"column":4},"end":{"line":20,"column":71}},"6":{"start":{"line":22,"column":4},"end":{"line":22,"column":71}},"7":{"start":{"line":24,"column":4},"end":{"line":24,"column":73}},"8":{"start":{"line":26,"column":2},"end":{"line":31,"column":9}},"9":{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},"10":{"start":{"line":28,"column":6},"end":{"line":28,"column":58}},"11":{"start":{"line":29,"column":6},"end":{"line":29,"column":56}},"12":{"start":{"line":33,"column":2},"end":{"line":459,"column":4}},"13":{"start":{"line":462,"column":30},"end":{"line":474,"column":1}},"14":{"start":{"line":463,"column":19},"end":{"line":463,"column":75}},"15":{"start":{"line":465,"column":2},"end":{"line":473,"column":4}}},"fnMap":{"0":{"name":"ErrorPage","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":33}},"loc":{"start":{"line":11,"column":41},"end":{"line":460,"column":1}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":12},"end":{"line":26,"column":13}},"loc":{"start":{"line":26,"column":18},"end":{"line":31,"column":3}},"line":26},"2":{"name":"(anonymous_2)","decl":{"start":{"line":462,"column":30},"end":{"line":462,"column":31}},"loc":{"start":{"line":462,"column":52},"end":{"line":474,"column":1}},"line":462}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":21},"end":{"line":16,"column":43}},"type":"binary-expr","locations":[{"start":{"line":16,"column":21},"end":{"line":16,"column":37}},{"start":{"line":16,"column":41},"end":{"line":16,"column":43}}],"line":16},"1":{"loc":{"start":{"line":18,"column":4},"end":{"line":18,"column":69}},"type":"binary-expr","locations":[{"start":{"line":18,"column":4},"end":{"line":18,"column":20}},{"start":{"line":18,"column":24},"end":{"line":18,"column":69}}],"line":18},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":20,"column":71}},"type":"binary-expr","locations":[{"start":{"line":20,"column":4},"end":{"line":20,"column":22}},{"start":{"line":20,"column":26},"end":{"line":20,"column":71}}],"line":20},"3":{"loc":{"start":{"line":22,"column":4},"end":{"line":22,"column":71}},"type":"binary-expr","locations":[{"start":{"line":22,"column":4},"end":{"line":22,"column":22}},{"start":{"line":22,"column":26},"end":{"line":22,"column":71}}],"line":22},"4":{"loc":{"start":{"line":24,"column":4},"end":{"line":24,"column":73}},"type":"binary-expr","locations":[{"start":{"line":24,"column":4},"end":{"line":24,"column":24}},{"start":{"line":24,"column":28},"end":{"line":24,"column":73}}],"line":24},"5":{"loc":{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},"type":"if","locations":[{"start":{"line":27,"column":4},"end":{"line":30,"column":5}},{"start":{},"end":{}}],"line":27},"6":{"loc":{"start":{"line":28,"column":30},"end":{"line":28,"column":57}},"type":"binary-expr","locations":[{"start":{"line":28,"column":30},"end":{"line":28,"column":51}},{"start":{"line":28,"column":55},"end":{"line":28,"column":57}}],"line":28},"7":{"loc":{"start":{"line":37,"column":11},"end":{"line":41,"column":11}},"type":"cond-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":52}},{"start":{"line":40,"column":12},"end":{"line":40,"column":14}}],"line":37},"8":{"loc":{"start":{"line":53,"column":14},"end":{"line":55,"column":57}},"type":"cond-expr","locations":[{"start":{"line":54,"column":18},"end":{"line":54,"column":53}},{"start":{"line":55,"column":18},"end":{"line":55,"column":57}}],"line":53},"9":{"loc":{"start":{"line":75,"column":21},"end":{"line":75,"column":58}},"type":"cond-expr","locations":[{"start":{"line":75,"column":45},"end":{"line":75,"column":50}},{"start":{"line":75,"column":53},"end":{"line":75,"column":58}}],"line":75},"10":{"loc":{"start":{"line":106,"column":14},"end":{"line":108,"column":57}},"type":"cond-expr","locations":[{"start":{"line":107,"column":18},"end":{"line":107,"column":60}},{"start":{"line":108,"column":18},"end":{"line":108,"column":57}}],"line":106},"11":{"loc":{"start":{"line":143,"column":14},"end":{"line":145,"column":57}},"type":"cond-expr","locations":[{"start":{"line":144,"column":18},"end":{"line":144,"column":53}},{"start":{"line":145,"column":18},"end":{"line":145,"column":57}}],"line":143},"12":{"loc":{"start":{"line":167,"column":14},"end":{"line":169,"column":57}},"type":"cond-expr","locations":[{"start":{"line":168,"column":18},"end":{"line":168,"column":53}},{"start":{"line":169,"column":18},"end":{"line":169,"column":57}}],"line":167},"13":{"loc":{"start":{"line":180,"column":18},"end":{"line":182,"column":60}},"type":"cond-expr","locations":[{"start":{"line":181,"column":22},"end":{"line":181,"column":60}},{"start":{"line":182,"column":22},"end":{"line":182,"column":60}}],"line":180},"14":{"loc":{"start":{"line":185,"column":18},"end":{"line":187,"column":61}},"type":"cond-expr","locations":[{"start":{"line":186,"column":22},"end":{"line":186,"column":61}},{"start":{"line":187,"column":22},"end":{"line":187,"column":61}}],"line":185},"15":{"loc":{"start":{"line":203,"column":19},"end":{"line":213,"column":19}},"type":"cond-expr","locations":[{"start":{"line":204,"column":20},"end":{"line":210,"column":24}},{"start":{"line":212,"column":20},"end":{"line":212,"column":22}}],"line":203},"16":{"loc":{"start":{"line":220,"column":19},"end":{"line":297,"column":19}},"type":"cond-expr","locations":[{"start":{"line":221,"column":20},"end":{"line":253,"column":23}},{"start":{"line":254,"column":22},"end":{"line":297,"column":19}}],"line":220},"17":{"loc":{"start":{"line":254,"column":22},"end":{"line":297,"column":19}},"type":"cond-expr","locations":[{"start":{"line":255,"column":20},"end":{"line":280,"column":23}},{"start":{"line":283,"column":20},"end":{"line":296,"column":26}}],"line":254},"18":{"loc":{"start":{"line":305,"column":22},"end":{"line":307,"column":65}},"type":"cond-expr","locations":[{"start":{"line":306,"column":26},"end":{"line":306,"column":65}},{"start":{"line":307,"column":26},"end":{"line":307,"column":65}}],"line":305},"19":{"loc":{"start":{"line":325,"column":19},"end":{"line":335,"column":19}},"type":"cond-expr","locations":[{"start":{"line":326,"column":20},"end":{"line":332,"column":24}},{"start":{"line":334,"column":20},"end":{"line":334,"column":22}}],"line":325},"20":{"loc":{"start":{"line":342,"column":19},"end":{"line":419,"column":19}},"type":"cond-expr","locations":[{"start":{"line":343,"column":20},"end":{"line":375,"column":23}},{"start":{"line":376,"column":22},"end":{"line":419,"column":19}}],"line":342},"21":{"loc":{"start":{"line":376,"column":22},"end":{"line":419,"column":19}},"type":"cond-expr","locations":[{"start":{"line":377,"column":20},"end":{"line":402,"column":23}},{"start":{"line":405,"column":20},"end":{"line":418,"column":26}}],"line":376},"22":{"loc":{"start":{"line":439,"column":18},"end":{"line":441,"column":60}},"type":"cond-expr","locations":[{"start":{"line":440,"column":22},"end":{"line":440,"column":60}},{"start":{"line":441,"column":22},"end":{"line":441,"column":60}}],"line":439},"23":{"loc":{"start":{"line":444,"column":18},"end":{"line":446,"column":61}},"type":"cond-expr","locations":[{"start":{"line":445,"column":22},"end":{"line":445,"column":61}},{"start":{"line":446,"column":22},"end":{"line":446,"column":61}}],"line":444},"24":{"loc":{"start":{"line":453,"column":7},"end":{"line":457,"column":7}},"type":"cond-expr","locations":[{"start":{"line":454,"column":8},"end":{"line":454,"column":71}},{"start":{"line":456,"column":8},"end":{"line":456,"column":10}}],"line":453}},"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},"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,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]}} +,"/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":11,"column":21},"end":{"line":11,"column":50}},"1":{"start":{"line":12,"column":28},"end":{"line":12,"column":59}},"2":{"start":{"line":14,"column":26},"end":{"line":19,"column":4}},"3":{"start":{"line":15,"column":4},"end":{"line":18,"column":6}},"4":{"start":{"line":21,"column":33},"end":{"line":58,"column":4}},"5":{"start":{"line":22,"column":4},"end":{"line":57,"column":9}},"6":{"start":{"line":60,"column":2},"end":{"line":65,"column":9}},"7":{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},"8":{"start":{"line":62,"column":6},"end":{"line":62,"column":58}},"9":{"start":{"line":63,"column":6},"end":{"line":63,"column":56}},"10":{"start":{"line":67,"column":2},"end":{"line":388,"column":4}},"11":{"start":{"line":391,"column":30},"end":{"line":409,"column":1}},"12":{"start":{"line":392,"column":29},"end":{"line":394,"column":3}},"13":{"start":{"line":395,"column":36},"end":{"line":397,"column":3}},"14":{"start":{"line":399,"column":2},"end":{"line":408,"column":4}}},"fnMap":{"0":{"name":"Home","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":28}},"loc":{"start":{"line":10,"column":36},"end":{"line":389,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":49},"end":{"line":14,"column":50}},"loc":{"start":{"line":14,"column":62},"end":{"line":19,"column":3}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":53},"end":{"line":21,"column":54}},"loc":{"start":{"line":22,"column":4},"end":{"line":57,"column":9}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":60,"column":12},"end":{"line":60,"column":13}},"loc":{"start":{"line":60,"column":18},"end":{"line":65,"column":3}},"line":60},"4":{"name":"(anonymous_4)","decl":{"start":{"line":391,"column":30},"end":{"line":391,"column":31}},"loc":{"start":{"line":391,"column":52},"end":{"line":409,"column":1}},"line":391}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":10},"end":{"line":28,"column":19}},"type":"cond-expr","locations":[{"start":{"line":27,"column":14},"end":{"line":27,"column":18}},{"start":{"line":28,"column":14},"end":{"line":28,"column":19}}],"line":26},"1":{"loc":{"start":{"line":30,"column":18},"end":{"line":30,"column":79}},"type":"cond-expr","locations":[{"start":{"line":30,"column":42},"end":{"line":30,"column":54}},{"start":{"line":30,"column":57},"end":{"line":30,"column":79}}],"line":30},"2":{"loc":{"start":{"line":34,"column":10},"end":{"line":40,"column":74}},"type":"cond-expr","locations":[{"start":{"line":35,"column":14},"end":{"line":37,"column":65}},{"start":{"line":38,"column":14},"end":{"line":40,"column":74}}],"line":34},"3":{"loc":{"start":{"line":35,"column":14},"end":{"line":37,"column":65}},"type":"cond-expr","locations":[{"start":{"line":36,"column":16},"end":{"line":36,"column":65}},{"start":{"line":37,"column":16},"end":{"line":37,"column":65}}],"line":35},"4":{"loc":{"start":{"line":38,"column":14},"end":{"line":40,"column":74}},"type":"cond-expr","locations":[{"start":{"line":39,"column":14},"end":{"line":39,"column":74}},{"start":{"line":40,"column":14},"end":{"line":40,"column":74}}],"line":38},"5":{"loc":{"start":{"line":43,"column":10},"end":{"line":45,"column":49}},"type":"cond-expr","locations":[{"start":{"line":44,"column":14},"end":{"line":44,"column":49}},{"start":{"line":45,"column":14},"end":{"line":45,"column":49}}],"line":43},"6":{"loc":{"start":{"line":47,"column":15},"end":{"line":47,"column":76}},"type":"cond-expr","locations":[{"start":{"line":47,"column":39},"end":{"line":47,"column":56}},{"start":{"line":47,"column":59},"end":{"line":47,"column":76}}],"line":47},"7":{"loc":{"start":{"line":49,"column":10},"end":{"line":49,"column":77}},"type":"cond-expr","locations":[{"start":{"line":49,"column":34},"end":{"line":49,"column":54}},{"start":{"line":49,"column":57},"end":{"line":49,"column":77}}],"line":49},"8":{"loc":{"start":{"line":52,"column":10},"end":{"line":54,"column":62}},"type":"cond-expr","locations":[{"start":{"line":53,"column":14},"end":{"line":53,"column":62}},{"start":{"line":54,"column":14},"end":{"line":54,"column":62}}],"line":52},"9":{"loc":{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},"type":"if","locations":[{"start":{"line":61,"column":4},"end":{"line":64,"column":5}},{"start":{},"end":{}}],"line":61},"10":{"loc":{"start":{"line":62,"column":30},"end":{"line":62,"column":57}},"type":"binary-expr","locations":[{"start":{"line":62,"column":30},"end":{"line":62,"column":51}},{"start":{"line":62,"column":55},"end":{"line":62,"column":57}}],"line":62},"11":{"loc":{"start":{"line":72,"column":10},"end":{"line":72,"column":79}},"type":"cond-expr","locations":[{"start":{"line":72,"column":34},"end":{"line":72,"column":55}},{"start":{"line":72,"column":58},"end":{"line":72,"column":79}}],"line":72},"12":{"loc":{"start":{"line":77,"column":11},"end":{"line":81,"column":11}},"type":"cond-expr","locations":[{"start":{"line":78,"column":12},"end":{"line":78,"column":52}},{"start":{"line":80,"column":12},"end":{"line":80,"column":14}}],"line":77},"13":{"loc":{"start":{"line":85,"column":13},"end":{"line":87,"column":39}},"type":"cond-expr","locations":[{"start":{"line":86,"column":16},"end":{"line":86,"column":39}},{"start":{"line":87,"column":16},"end":{"line":87,"column":39}}],"line":85},"14":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":67}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":67}},{"start":{"line":94,"column":18},"end":{"line":94,"column":67}}],"line":92},"15":{"loc":{"start":{"line":103,"column":14},"end":{"line":105,"column":39}},"type":"cond-expr","locations":[{"start":{"line":104,"column":18},"end":{"line":104,"column":39}},{"start":{"line":105,"column":18},"end":{"line":105,"column":39}}],"line":103},"16":{"loc":{"start":{"line":113,"column":14},"end":{"line":113,"column":77}},"type":"cond-expr","locations":[{"start":{"line":113,"column":38},"end":{"line":113,"column":56}},{"start":{"line":113,"column":59},"end":{"line":113,"column":77}}],"line":113},"17":{"loc":{"start":{"line":118,"column":21},"end":{"line":118,"column":58}},"type":"cond-expr","locations":[{"start":{"line":118,"column":45},"end":{"line":118,"column":50}},{"start":{"line":118,"column":53},"end":{"line":118,"column":58}}],"line":118},"18":{"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}}],"line":124},"19":{"loc":{"start":{"line":137,"column":14},"end":{"line":139,"column":57}},"type":"cond-expr","locations":[{"start":{"line":138,"column":18},"end":{"line":138,"column":60}},{"start":{"line":139,"column":18},"end":{"line":139,"column":57}}],"line":137},"20":{"loc":{"start":{"line":159,"column":16},"end":{"line":161,"column":41}},"type":"cond-expr","locations":[{"start":{"line":160,"column":20},"end":{"line":160,"column":41}},{"start":{"line":161,"column":20},"end":{"line":161,"column":41}}],"line":159},"21":{"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}}],"line":168},"22":{"loc":{"start":{"line":174,"column":14},"end":{"line":176,"column":67}},"type":"cond-expr","locations":[{"start":{"line":175,"column":18},"end":{"line":175,"column":67}},{"start":{"line":176,"column":18},"end":{"line":176,"column":67}}],"line":174},"23":{"loc":{"start":{"line":186,"column":14},"end":{"line":186,"column":77}},"type":"cond-expr","locations":[{"start":{"line":186,"column":38},"end":{"line":186,"column":56}},{"start":{"line":186,"column":59},"end":{"line":186,"column":77}}],"line":186},"24":{"loc":{"start":{"line":197,"column":16},"end":{"line":199,"column":41}},"type":"cond-expr","locations":[{"start":{"line":198,"column":20},"end":{"line":198,"column":41}},{"start":{"line":199,"column":20},"end":{"line":199,"column":41}}],"line":197},"25":{"loc":{"start":{"line":206,"column":14},"end":{"line":206,"column":77}},"type":"cond-expr","locations":[{"start":{"line":206,"column":38},"end":{"line":206,"column":56}},{"start":{"line":206,"column":59},"end":{"line":206,"column":77}}],"line":206},"26":{"loc":{"start":{"line":213,"column":14},"end":{"line":215,"column":67}},"type":"cond-expr","locations":[{"start":{"line":214,"column":18},"end":{"line":214,"column":67}},{"start":{"line":215,"column":18},"end":{"line":215,"column":67}}],"line":213},"27":{"loc":{"start":{"line":225,"column":14},"end":{"line":225,"column":77}},"type":"cond-expr","locations":[{"start":{"line":225,"column":38},"end":{"line":225,"column":56}},{"start":{"line":225,"column":59},"end":{"line":225,"column":77}}],"line":225},"28":{"loc":{"start":{"line":236,"column":18},"end":{"line":240,"column":30}},"type":"cond-expr","locations":[{"start":{"line":237,"column":22},"end":{"line":238,"column":30}},{"start":{"line":239,"column":22},"end":{"line":240,"column":30}}],"line":236},"29":{"loc":{"start":{"line":245,"column":15},"end":{"line":247,"column":78}},"type":"cond-expr","locations":[{"start":{"line":246,"column":18},"end":{"line":246,"column":78}},{"start":{"line":247,"column":18},"end":{"line":247,"column":78}}],"line":245},"30":{"loc":{"start":{"line":250,"column":15},"end":{"line":252,"column":78}},"type":"cond-expr","locations":[{"start":{"line":251,"column":18},"end":{"line":251,"column":78}},{"start":{"line":252,"column":18},"end":{"line":252,"column":78}}],"line":250},"31":{"loc":{"start":{"line":263,"column":22},"end":{"line":265,"column":71}},"type":"cond-expr","locations":[{"start":{"line":264,"column":26},"end":{"line":264,"column":71}},{"start":{"line":265,"column":26},"end":{"line":265,"column":71}}],"line":263},"32":{"loc":{"start":{"line":276,"column":17},"end":{"line":279,"column":28}},"type":"cond-expr","locations":[{"start":{"line":277,"column":20},"end":{"line":277,"column":80}},{"start":{"line":278,"column":20},"end":{"line":279,"column":28}}],"line":276},"33":{"loc":{"start":{"line":282,"column":17},"end":{"line":285,"column":28}},"type":"cond-expr","locations":[{"start":{"line":283,"column":20},"end":{"line":283,"column":80}},{"start":{"line":284,"column":20},"end":{"line":285,"column":28}}],"line":282},"34":{"loc":{"start":{"line":290,"column":21},"end":{"line":294,"column":43}},"type":"cond-expr","locations":[{"start":{"line":291,"column":24},"end":{"line":292,"column":43}},{"start":{"line":293,"column":24},"end":{"line":294,"column":43}}],"line":290},"35":{"loc":{"start":{"line":299,"column":21},"end":{"line":303,"column":43}},"type":"cond-expr","locations":[{"start":{"line":300,"column":24},"end":{"line":301,"column":43}},{"start":{"line":302,"column":24},"end":{"line":303,"column":43}}],"line":299},"36":{"loc":{"start":{"line":310,"column":13},"end":{"line":313,"column":24}},"type":"cond-expr","locations":[{"start":{"line":311,"column":16},"end":{"line":311,"column":76}},{"start":{"line":312,"column":16},"end":{"line":313,"column":24}}],"line":310},"37":{"loc":{"start":{"line":322,"column":16},"end":{"line":324,"column":53}},"type":"cond-expr","locations":[{"start":{"line":323,"column":20},"end":{"line":323,"column":53}},{"start":{"line":324,"column":20},"end":{"line":324,"column":53}}],"line":322},"38":{"loc":{"start":{"line":327,"column":16},"end":{"line":373,"column":17}},"type":"cond-expr","locations":[{"start":{"line":328,"column":18},"end":{"line":349,"column":21}},{"start":{"line":351,"column":18},"end":{"line":372,"column":21}}],"line":327},"39":{"loc":{"start":{"line":382,"column":7},"end":{"line":386,"column":7}},"type":"cond-expr","locations":[{"start":{"line":383,"column":8},"end":{"line":383,"column":71}},{"start":{"line":385,"column":8},"end":{"line":385,"column":10}}],"line":382}},"s":{"0":1,"1":1,"2":1,"3":4,"4":1,"5":1,"6":1,"7":1,"8":0,"9":0,"10":1,"11":1,"12":0,"13":0,"14":0},"f":{"0":1,"1":4,"2":1,"3":1,"4":0},"b":{"0":[1,0],"1":[0,1],"2":[0,1],"3":[0,0],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,1],"9":[0,1],"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,1],"35":[0,1],"36":[0,1],"37":[0,1],"38":[0,1],"39":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cc30978ae8b1c189cfb0f171c33096f58469bd4b"} +,"/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":9,"column":16},"end":{"line":9,"column":40}},"1":{"start":{"line":11,"column":2},"end":{"line":17,"column":9}},"2":{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},"3":{"start":{"line":13,"column":6},"end":{"line":13,"column":58}},"4":{"start":{"line":14,"column":6},"end":{"line":14,"column":56}},"5":{"start":{"line":16,"column":4},"end":{"line":16,"column":41}},"6":{"start":{"line":19,"column":2},"end":{"line":194,"column":4}},"7":{"start":{"line":197,"column":34},"end":{"line":203,"column":2}},"8":{"start":{"line":197,"column":57},"end":{"line":203,"column":1}}},"fnMap":{"0":{"name":"Index","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":29}},"loc":{"start":{"line":8,"column":37},"end":{"line":195,"column":1}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":13}},"loc":{"start":{"line":11,"column":18},"end":{"line":17,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":197,"column":34},"end":{"line":197,"column":35}},"loc":{"start":{"line":197,"column":57},"end":{"line":203,"column":1}},"line":197}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":15,"column":5}},{"start":{},"end":{}}],"line":12},"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}}],"line":13},"2":{"loc":{"start":{"line":23,"column":9},"end":{"line":27,"column":9}},"type":"cond-expr","locations":[{"start":{"line":24,"column":10},"end":{"line":24,"column":50}},{"start":{"line":26,"column":10},"end":{"line":26,"column":12}}],"line":23},"3":{"loc":{"start":{"line":54,"column":19},"end":{"line":54,"column":56}},"type":"cond-expr","locations":[{"start":{"line":54,"column":43},"end":{"line":54,"column":48}},{"start":{"line":54,"column":51},"end":{"line":54,"column":56}}],"line":54},"4":{"loc":{"start":{"line":188,"column":7},"end":{"line":192,"column":7}},"type":"cond-expr","locations":[{"start":{"line":189,"column":8},"end":{"line":189,"column":71}},{"start":{"line":191,"column":8},"end":{"line":191,"column":10}}],"line":188},"5":{"loc":{"start":{"line":199,"column":12},"end":{"line":199,"column":26}},"type":"binary-expr","locations":[{"start":{"line":199,"column":12},"end":{"line":199,"column":18}},{"start":{"line":199,"column":22},"end":{"line":199,"column":26}}],"line":199},"6":{"loc":{"start":{"line":200,"column":23},"end":{"line":200,"column":60}},"type":"binary-expr","locations":[{"start":{"line":200,"column":23},"end":{"line":200,"column":54}},{"start":{"line":200,"column":58},"end":{"line":200,"column":60}}],"line":200}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":1,"6":1,"7":1,"8":0},"f":{"0":1,"1":1,"2":0},"b":{"0":[0,1],"1":[0,0],"2":[0,1],"3":[0,1],"4":[0,1],"5":[0,0],"6":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b17e7654477b23b955914b47b2300f61cb98551f"} +,"/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":11,"column":16},"end":{"line":11,"column":40}},"1":{"start":{"line":12,"column":34},"end":{"line":12,"column":49}},"2":{"start":{"line":13,"column":34},"end":{"line":13,"column":49}},"3":{"start":{"line":14,"column":21},"end":{"line":14,"column":50}},"4":{"start":{"line":16,"column":2},"end":{"line":21,"column":9}},"5":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"6":{"start":{"line":18,"column":6},"end":{"line":18,"column":58}},"7":{"start":{"line":19,"column":6},"end":{"line":19,"column":56}},"8":{"start":{"line":24,"column":4},"end":{"line":24,"column":22}},"9":{"start":{"line":25,"column":4},"end":{"line":25,"column":23}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":22}},"11":{"start":{"line":30,"column":4},"end":{"line":30,"column":23}},"12":{"start":{"line":32,"column":2},"end":{"line":481,"column":4}},"13":{"start":{"line":484,"column":30},"end":{"line":496,"column":1}},"14":{"start":{"line":485,"column":19},"end":{"line":485,"column":76}},"15":{"start":{"line":487,"column":2},"end":{"line":495,"column":4}}},"fnMap":{"0":{"name":"notSupported","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":36}},"loc":{"start":{"line":10,"column":44},"end":{"line":482,"column":1}},"line":10},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":18},"end":{"line":21,"column":3}},"line":16},"2":{"name":"onClickEn","decl":{"start":{"line":23,"column":11},"end":{"line":23,"column":20}},"loc":{"start":{"line":23,"column":23},"end":{"line":26,"column":3}},"line":23},"3":{"name":"onClickFr","decl":{"start":{"line":28,"column":11},"end":{"line":28,"column":20}},"loc":{"start":{"line":28,"column":23},"end":{"line":31,"column":3}},"line":28},"4":{"name":"(anonymous_4)","decl":{"start":{"line":484,"column":30},"end":{"line":484,"column":31}},"loc":{"start":{"line":484,"column":52},"end":{"line":496,"column":1}},"line":484}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":17},"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}}],"line":18},"2":{"loc":{"start":{"line":36,"column":11},"end":{"line":40,"column":11}},"type":"cond-expr","locations":[{"start":{"line":37,"column":12},"end":{"line":37,"column":52}},{"start":{"line":39,"column":12},"end":{"line":39,"column":14}}],"line":36},"3":{"loc":{"start":{"line":79,"column":21},"end":{"line":79,"column":58}},"type":"cond-expr","locations":[{"start":{"line":79,"column":45},"end":{"line":79,"column":50}},{"start":{"line":79,"column":53},"end":{"line":79,"column":58}}],"line":79},"4":{"loc":{"start":{"line":85,"column":14},"end":{"line":87,"column":57}},"type":"cond-expr","locations":[{"start":{"line":86,"column":18},"end":{"line":86,"column":60}},{"start":{"line":87,"column":18},"end":{"line":87,"column":57}}],"line":85},"5":{"loc":{"start":{"line":162,"column":16},"end":{"line":164,"column":58}},"type":"cond-expr","locations":[{"start":{"line":163,"column":20},"end":{"line":163,"column":58}},{"start":{"line":164,"column":20},"end":{"line":164,"column":58}}],"line":162},"6":{"loc":{"start":{"line":167,"column":16},"end":{"line":169,"column":59}},"type":"cond-expr","locations":[{"start":{"line":168,"column":20},"end":{"line":168,"column":59}},{"start":{"line":169,"column":20},"end":{"line":169,"column":59}}],"line":167},"7":{"loc":{"start":{"line":190,"column":20},"end":{"line":192,"column":63}},"type":"cond-expr","locations":[{"start":{"line":191,"column":24},"end":{"line":191,"column":63}},{"start":{"line":192,"column":24},"end":{"line":192,"column":63}}],"line":190},"8":{"loc":{"start":{"line":218,"column":18},"end":{"line":220,"column":61}},"type":"cond-expr","locations":[{"start":{"line":219,"column":22},"end":{"line":219,"column":61}},{"start":{"line":220,"column":22},"end":{"line":220,"column":61}}],"line":218},"9":{"loc":{"start":{"line":223,"column":18},"end":{"line":225,"column":62}},"type":"cond-expr","locations":[{"start":{"line":224,"column":22},"end":{"line":224,"column":62}},{"start":{"line":225,"column":22},"end":{"line":225,"column":62}}],"line":223},"10":{"loc":{"start":{"line":237,"column":18},"end":{"line":239,"column":61}},"type":"cond-expr","locations":[{"start":{"line":238,"column":22},"end":{"line":238,"column":61}},{"start":{"line":239,"column":22},"end":{"line":239,"column":61}}],"line":237},"11":{"loc":{"start":{"line":242,"column":18},"end":{"line":244,"column":62}},"type":"cond-expr","locations":[{"start":{"line":243,"column":22},"end":{"line":243,"column":62}},{"start":{"line":244,"column":22},"end":{"line":244,"column":62}}],"line":242},"12":{"loc":{"start":{"line":256,"column":18},"end":{"line":258,"column":61}},"type":"cond-expr","locations":[{"start":{"line":257,"column":22},"end":{"line":257,"column":61}},{"start":{"line":258,"column":22},"end":{"line":258,"column":61}}],"line":256},"13":{"loc":{"start":{"line":261,"column":18},"end":{"line":263,"column":62}},"type":"cond-expr","locations":[{"start":{"line":262,"column":22},"end":{"line":262,"column":62}},{"start":{"line":263,"column":22},"end":{"line":263,"column":62}}],"line":261},"14":{"loc":{"start":{"line":275,"column":18},"end":{"line":277,"column":61}},"type":"cond-expr","locations":[{"start":{"line":276,"column":22},"end":{"line":276,"column":61}},{"start":{"line":277,"column":22},"end":{"line":277,"column":61}}],"line":275},"15":{"loc":{"start":{"line":280,"column":18},"end":{"line":282,"column":62}},"type":"cond-expr","locations":[{"start":{"line":281,"column":22},"end":{"line":281,"column":62}},{"start":{"line":282,"column":22},"end":{"line":282,"column":62}}],"line":280},"16":{"loc":{"start":{"line":301,"column":28},"end":{"line":301,"column":62}},"type":"cond-expr","locations":[{"start":{"line":301,"column":39},"end":{"line":301,"column":48}},{"start":{"line":301,"column":51},"end":{"line":301,"column":62}}],"line":301},"17":{"loc":{"start":{"line":302,"column":29},"end":{"line":302,"column":69}},"type":"cond-expr","locations":[{"start":{"line":302,"column":40},"end":{"line":302,"column":56}},{"start":{"line":302,"column":59},"end":{"line":302,"column":69}}],"line":302},"18":{"loc":{"start":{"line":377,"column":30},"end":{"line":377,"column":65}},"type":"cond-expr","locations":[{"start":{"line":377,"column":41},"end":{"line":377,"column":49}},{"start":{"line":377,"column":52},"end":{"line":377,"column":65}}],"line":377},"19":{"loc":{"start":{"line":379,"column":31},"end":{"line":379,"column":71}},"type":"cond-expr","locations":[{"start":{"line":379,"column":42},"end":{"line":379,"column":58}},{"start":{"line":379,"column":61},"end":{"line":379,"column":71}}],"line":379},"20":{"loc":{"start":{"line":461,"column":18},"end":{"line":463,"column":60}},"type":"cond-expr","locations":[{"start":{"line":462,"column":22},"end":{"line":462,"column":60}},{"start":{"line":463,"column":22},"end":{"line":463,"column":60}}],"line":461},"21":{"loc":{"start":{"line":466,"column":18},"end":{"line":468,"column":61}},"type":"cond-expr","locations":[{"start":{"line":467,"column":22},"end":{"line":467,"column":61}},{"start":{"line":468,"column":22},"end":{"line":468,"column":61}}],"line":466},"22":{"loc":{"start":{"line":475,"column":7},"end":{"line":479,"column":7}},"type":"cond-expr","locations":[{"start":{"line":476,"column":8},"end":{"line":476,"column":71}},{"start":{"line":478,"column":8},"end":{"line":478,"column":10}}],"line":475}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1,"13":1,"14":0,"15":0},"f":{"0":1,"1":1,"2":0,"3":0,"4":0},"b":{"0":[0,1],"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,1],"22":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"358d7b49d1b8e47fbab66ccb554c68853655ce5f"} +,"/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":3,"column":2},"end":{"line":3,"column":49}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":2,"column":24},"end":{"line":2,"column":31}},"loc":{"start":{"line":2,"column":42},"end":{"line":4,"column":1}},"line":2}},"branchMap":{},"s":{"0":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":8,"column":2},"end":{"line":60,"column":3}},"1":{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},"2":{"start":{"line":14,"column":6},"end":{"line":14,"column":32}},"3":{"start":{"line":16,"column":6},"end":{"line":55,"column":7}},"4":{"start":{"line":17,"column":31},"end":{"line":44,"column":9}},"5":{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},"6":{"start":{"line":47,"column":10},"end":{"line":47,"column":36}},"7":{"start":{"line":49,"column":10},"end":{"line":49,"column":43}},"8":{"start":{"line":50,"column":10},"end":{"line":50,"column":39}},"9":{"start":{"line":53,"column":8},"end":{"line":53,"column":25}},"10":{"start":{"line":54,"column":8},"end":{"line":54,"column":37}},"11":{"start":{"line":58,"column":4},"end":{"line":58,"column":37}},"12":{"start":{"line":59,"column":4},"end":{"line":59,"column":60}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":15},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":33},"end":{"line":61,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":60,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":60,"column":3}},{"start":{"line":57,"column":9},"end":{"line":60,"column":3}}],"line":8},"1":{"loc":{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":56,"column":5}},{"start":{"line":15,"column":11},"end":{"line":56,"column":5}}],"line":10},"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":39}},{"start":{"line":12,"column":6},"end":{"line":12,"column":43}}],"line":11},"3":{"loc":{"start":{"line":20,"column":23},"end":{"line":20,"column":55}},"type":"binary-expr","locations":[{"start":{"line":20,"column":23},"end":{"line":20,"column":42}},{"start":{"line":20,"column":46},"end":{"line":20,"column":55}}],"line":20},"4":{"loc":{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},"type":"if","locations":[{"start":{"line":46,"column":8},"end":{"line":51,"column":9}},{"start":{"line":48,"column":15},"end":{"line":51,"column":9}}],"line":46}},"s":{"0":5,"1":5,"2":2,"3":3,"4":3,"5":2,"6":1,"7":1,"8":1,"9":1,"10":1,"11":0,"12":0},"f":{"0":5},"b":{"0":[5,0],"1":[2,3],"2":[5,4],"3":[3,0],"4":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"daabb193eaa4520bee2cc19293fa4a2ed7f57131"} +,"/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":8,"column":2},"end":{"line":16,"column":3}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":33}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":34}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":41}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":46}},"5":{"start":{"line":14,"column":4},"end":{"line":14,"column":33}},"6":{"start":{"line":15,"column":4},"end":{"line":15,"column":31}},"7":{"start":{"line":17,"column":2},"end":{"line":17,"column":12}}},"fnMap":{"0":{"name":"handler","decl":{"start":{"line":7,"column":30},"end":{"line":7,"column":37}},"loc":{"start":{"line":7,"column":48},"end":{"line":18,"column":1}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":16,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":16,"column":3}},{"start":{"line":13,"column":9},"end":{"line":16,"column":3}}],"line":8}},"s":{"0":2,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2},"f":{"0":2},"b":{"0":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dfacc08f62bbdf218f1c83f7b7931346443a4506"} +,"/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":13,"column":21},"end":{"line":13,"column":45}},"1":{"start":{"line":14,"column":23},"end":{"line":14,"column":55}},"2":{"start":{"line":16,"column":2},"end":{"line":21,"column":9}},"3":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"4":{"start":{"line":18,"column":6},"end":{"line":18,"column":58}},"5":{"start":{"line":19,"column":6},"end":{"line":19,"column":56}},"6":{"start":{"line":23,"column":2},"end":{"line":419,"column":4}},"7":{"start":{"line":424,"column":19},"end":{"line":426,"column":3}},"8":{"start":{"line":428,"column":16},"end":{"line":428,"column":60}},"9":{"start":{"line":429,"column":2},"end":{"line":433,"column":5}},"10":{"start":{"line":430,"column":4},"end":{"line":432,"column":52}},"11":{"start":{"line":434,"column":2},"end":{"line":437,"column":4}},"12":{"start":{"line":440,"column":30},"end":{"line":467,"column":1}},"13":{"start":{"line":442,"column":19},"end":{"line":444,"column":3}},"14":{"start":{"line":446,"column":31},"end":{"line":448,"column":3}},"15":{"start":{"line":449,"column":16},"end":{"line":449,"column":43}},"16":{"start":{"line":451,"column":19},"end":{"line":456,"column":4}},"17":{"start":{"line":452,"column":4},"end":{"line":455,"column":6}},"18":{"start":{"line":458,"column":2},"end":{"line":466,"column":4}}},"fnMap":{"0":{"name":"DynamicBenefitNavigatorPage","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":51}},"loc":{"start":{"line":12,"column":59},"end":{"line":420,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":18},"end":{"line":21,"column":3}},"line":16},"2":{"name":"getStaticPaths","decl":{"start":{"line":422,"column":22},"end":{"line":422,"column":36}},"loc":{"start":{"line":422,"column":39},"end":{"line":438,"column":1}},"line":422},"3":{"name":"(anonymous_3)","decl":{"start":{"line":429,"column":12},"end":{"line":429,"column":13}},"loc":{"start":{"line":429,"column":22},"end":{"line":433,"column":3}},"line":429},"4":{"name":"(anonymous_4)","decl":{"start":{"line":440,"column":30},"end":{"line":440,"column":31}},"loc":{"start":{"line":440,"column":60},"end":{"line":467,"column":1}},"line":440},"5":{"name":"(anonymous_5)","decl":{"start":{"line":451,"column":32},"end":{"line":451,"column":33}},"loc":{"start":{"line":451,"column":42},"end":{"line":456,"column":3}},"line":451}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":20,"column":5}},{"start":{},"end":{}}],"line":17},"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}}],"line":18},"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}}],"line":28},"3":{"loc":{"start":{"line":37,"column":11},"end":{"line":41,"column":11}},"type":"cond-expr","locations":[{"start":{"line":38,"column":12},"end":{"line":38,"column":52}},{"start":{"line":40,"column":12},"end":{"line":40,"column":14}}],"line":37},"4":{"loc":{"start":{"line":45,"column":13},"end":{"line":47,"column":72}},"type":"cond-expr","locations":[{"start":{"line":46,"column":16},"end":{"line":46,"column":61}},{"start":{"line":47,"column":16},"end":{"line":47,"column":72}}],"line":45},"5":{"loc":{"start":{"line":52,"column":14},"end":{"line":52,"column":77}},"type":"cond-expr","locations":[{"start":{"line":52,"column":38},"end":{"line":52,"column":56}},{"start":{"line":52,"column":59},"end":{"line":52,"column":77}}],"line":52},"6":{"loc":{"start":{"line":61,"column":14},"end":{"line":63,"column":39}},"type":"cond-expr","locations":[{"start":{"line":62,"column":18},"end":{"line":62,"column":39}},{"start":{"line":63,"column":18},"end":{"line":63,"column":39}}],"line":61},"7":{"loc":{"start":{"line":71,"column":14},"end":{"line":71,"column":77}},"type":"cond-expr","locations":[{"start":{"line":71,"column":38},"end":{"line":71,"column":56}},{"start":{"line":71,"column":59},"end":{"line":71,"column":77}}],"line":71},"8":{"loc":{"start":{"line":76,"column":21},"end":{"line":76,"column":58}},"type":"cond-expr","locations":[{"start":{"line":76,"column":45},"end":{"line":76,"column":50}},{"start":{"line":76,"column":53},"end":{"line":76,"column":58}}],"line":76},"9":{"loc":{"start":{"line":82,"column":14},"end":{"line":84,"column":57}},"type":"cond-expr","locations":[{"start":{"line":83,"column":18},"end":{"line":83,"column":60}},{"start":{"line":84,"column":18},"end":{"line":84,"column":57}}],"line":82},"10":{"loc":{"start":{"line":98,"column":14},"end":{"line":98,"column":77}},"type":"cond-expr","locations":[{"start":{"line":98,"column":38},"end":{"line":98,"column":56}},{"start":{"line":98,"column":59},"end":{"line":98,"column":77}}],"line":98},"11":{"loc":{"start":{"line":116,"column":16},"end":{"line":118,"column":41}},"type":"cond-expr","locations":[{"start":{"line":117,"column":20},"end":{"line":117,"column":41}},{"start":{"line":118,"column":20},"end":{"line":118,"column":41}}],"line":116},"12":{"loc":{"start":{"line":125,"column":14},"end":{"line":125,"column":77}},"type":"cond-expr","locations":[{"start":{"line":125,"column":38},"end":{"line":125,"column":56}},{"start":{"line":125,"column":59},"end":{"line":125,"column":77}}],"line":125},"13":{"loc":{"start":{"line":143,"column":14},"end":{"line":143,"column":77}},"type":"cond-expr","locations":[{"start":{"line":143,"column":38},"end":{"line":143,"column":56}},{"start":{"line":143,"column":59},"end":{"line":143,"column":77}}],"line":143},"14":{"loc":{"start":{"line":154,"column":16},"end":{"line":156,"column":41}},"type":"cond-expr","locations":[{"start":{"line":155,"column":20},"end":{"line":155,"column":41}},{"start":{"line":156,"column":20},"end":{"line":156,"column":41}}],"line":154},"15":{"loc":{"start":{"line":163,"column":14},"end":{"line":163,"column":77}},"type":"cond-expr","locations":[{"start":{"line":163,"column":38},"end":{"line":163,"column":56}},{"start":{"line":163,"column":59},"end":{"line":163,"column":77}}],"line":163},"16":{"loc":{"start":{"line":182,"column":14},"end":{"line":182,"column":77}},"type":"cond-expr","locations":[{"start":{"line":182,"column":38},"end":{"line":182,"column":56}},{"start":{"line":182,"column":59},"end":{"line":182,"column":77}}],"line":182},"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}}],"line":191},"18":{"loc":{"start":{"line":197,"column":16},"end":{"line":197,"column":73}},"type":"cond-expr","locations":[{"start":{"line":197,"column":40},"end":{"line":197,"column":55}},{"start":{"line":197,"column":58},"end":{"line":197,"column":73}}],"line":197},"19":{"loc":{"start":{"line":200,"column":15},"end":{"line":202,"column":40}},"type":"cond-expr","locations":[{"start":{"line":201,"column":18},"end":{"line":201,"column":40}},{"start":{"line":202,"column":18},"end":{"line":202,"column":40}}],"line":200},"20":{"loc":{"start":{"line":209,"column":16},"end":{"line":209,"column":73}},"type":"cond-expr","locations":[{"start":{"line":209,"column":40},"end":{"line":209,"column":55}},{"start":{"line":209,"column":58},"end":{"line":209,"column":73}}],"line":209},"21":{"loc":{"start":{"line":212,"column":15},"end":{"line":214,"column":40}},"type":"cond-expr","locations":[{"start":{"line":213,"column":18},"end":{"line":213,"column":40}},{"start":{"line":214,"column":18},"end":{"line":214,"column":40}}],"line":212},"22":{"loc":{"start":{"line":233,"column":17},"end":{"line":236,"column":28}},"type":"cond-expr","locations":[{"start":{"line":234,"column":20},"end":{"line":234,"column":80}},{"start":{"line":235,"column":20},"end":{"line":236,"column":28}}],"line":233},"23":{"loc":{"start":{"line":239,"column":17},"end":{"line":242,"column":28}},"type":"cond-expr","locations":[{"start":{"line":240,"column":20},"end":{"line":240,"column":80}},{"start":{"line":241,"column":20},"end":{"line":242,"column":28}}],"line":239},"24":{"loc":{"start":{"line":246,"column":20},"end":{"line":250,"column":36}},"type":"cond-expr","locations":[{"start":{"line":247,"column":24},"end":{"line":248,"column":36}},{"start":{"line":249,"column":24},"end":{"line":250,"column":36}}],"line":246},"25":{"loc":{"start":{"line":253,"column":19},"end":{"line":257,"column":30}},"type":"cond-expr","locations":[{"start":{"line":254,"column":22},"end":{"line":255,"column":30}},{"start":{"line":256,"column":22},"end":{"line":257,"column":30}}],"line":253},"26":{"loc":{"start":{"line":260,"column":19},"end":{"line":264,"column":30}},"type":"cond-expr","locations":[{"start":{"line":261,"column":22},"end":{"line":262,"column":30}},{"start":{"line":263,"column":22},"end":{"line":264,"column":30}}],"line":260},"27":{"loc":{"start":{"line":269,"column":17},"end":{"line":272,"column":28}},"type":"cond-expr","locations":[{"start":{"line":270,"column":20},"end":{"line":270,"column":80}},{"start":{"line":271,"column":20},"end":{"line":272,"column":28}}],"line":269},"28":{"loc":{"start":{"line":276,"column":17},"end":{"line":279,"column":28}},"type":"cond-expr","locations":[{"start":{"line":277,"column":20},"end":{"line":277,"column":80}},{"start":{"line":278,"column":20},"end":{"line":279,"column":28}}],"line":276},"29":{"loc":{"start":{"line":283,"column":17},"end":{"line":286,"column":28}},"type":"cond-expr","locations":[{"start":{"line":284,"column":20},"end":{"line":284,"column":80}},{"start":{"line":285,"column":20},"end":{"line":286,"column":28}}],"line":283},"30":{"loc":{"start":{"line":290,"column":17},"end":{"line":293,"column":28}},"type":"cond-expr","locations":[{"start":{"line":291,"column":20},"end":{"line":291,"column":80}},{"start":{"line":292,"column":20},"end":{"line":293,"column":28}}],"line":290},"31":{"loc":{"start":{"line":296,"column":17},"end":{"line":299,"column":28}},"type":"cond-expr","locations":[{"start":{"line":297,"column":20},"end":{"line":297,"column":80}},{"start":{"line":298,"column":20},"end":{"line":299,"column":28}}],"line":296},"32":{"loc":{"start":{"line":302,"column":17},"end":{"line":305,"column":28}},"type":"cond-expr","locations":[{"start":{"line":303,"column":20},"end":{"line":303,"column":80}},{"start":{"line":304,"column":20},"end":{"line":305,"column":28}}],"line":302},"33":{"loc":{"start":{"line":309,"column":17},"end":{"line":312,"column":28}},"type":"cond-expr","locations":[{"start":{"line":310,"column":20},"end":{"line":310,"column":80}},{"start":{"line":311,"column":20},"end":{"line":312,"column":28}}],"line":309},"34":{"loc":{"start":{"line":315,"column":17},"end":{"line":319,"column":28}},"type":"cond-expr","locations":[{"start":{"line":316,"column":20},"end":{"line":317,"column":28}},{"start":{"line":318,"column":20},"end":{"line":319,"column":28}}],"line":315},"35":{"loc":{"start":{"line":322,"column":17},"end":{"line":326,"column":28}},"type":"cond-expr","locations":[{"start":{"line":323,"column":20},"end":{"line":324,"column":28}},{"start":{"line":325,"column":20},"end":{"line":326,"column":28}}],"line":322},"36":{"loc":{"start":{"line":330,"column":17},"end":{"line":334,"column":28}},"type":"cond-expr","locations":[{"start":{"line":331,"column":20},"end":{"line":332,"column":28}},{"start":{"line":333,"column":20},"end":{"line":334,"column":28}}],"line":330},"37":{"loc":{"start":{"line":337,"column":17},"end":{"line":341,"column":28}},"type":"cond-expr","locations":[{"start":{"line":338,"column":20},"end":{"line":339,"column":28}},{"start":{"line":340,"column":20},"end":{"line":341,"column":28}}],"line":337},"38":{"loc":{"start":{"line":344,"column":17},"end":{"line":348,"column":28}},"type":"cond-expr","locations":[{"start":{"line":345,"column":20},"end":{"line":346,"column":28}},{"start":{"line":347,"column":20},"end":{"line":348,"column":28}}],"line":344},"39":{"loc":{"start":{"line":351,"column":17},"end":{"line":355,"column":28}},"type":"cond-expr","locations":[{"start":{"line":352,"column":20},"end":{"line":353,"column":28}},{"start":{"line":354,"column":20},"end":{"line":355,"column":28}}],"line":351},"40":{"loc":{"start":{"line":359,"column":17},"end":{"line":363,"column":28}},"type":"cond-expr","locations":[{"start":{"line":360,"column":20},"end":{"line":361,"column":28}},{"start":{"line":362,"column":20},"end":{"line":363,"column":28}}],"line":359},"41":{"loc":{"start":{"line":366,"column":17},"end":{"line":370,"column":28}},"type":"cond-expr","locations":[{"start":{"line":367,"column":20},"end":{"line":368,"column":28}},{"start":{"line":369,"column":20},"end":{"line":370,"column":28}}],"line":366},"42":{"loc":{"start":{"line":373,"column":17},"end":{"line":377,"column":28}},"type":"cond-expr","locations":[{"start":{"line":374,"column":20},"end":{"line":375,"column":28}},{"start":{"line":376,"column":20},"end":{"line":377,"column":28}}],"line":373},"43":{"loc":{"start":{"line":381,"column":19},"end":{"line":385,"column":41}},"type":"cond-expr","locations":[{"start":{"line":382,"column":22},"end":{"line":383,"column":41}},{"start":{"line":384,"column":22},"end":{"line":385,"column":41}}],"line":381},"44":{"loc":{"start":{"line":388,"column":19},"end":{"line":392,"column":41}},"type":"cond-expr","locations":[{"start":{"line":389,"column":22},"end":{"line":390,"column":41}},{"start":{"line":391,"column":22},"end":{"line":392,"column":41}}],"line":388},"45":{"loc":{"start":{"line":395,"column":19},"end":{"line":399,"column":41}},"type":"cond-expr","locations":[{"start":{"line":396,"column":22},"end":{"line":397,"column":41}},{"start":{"line":398,"column":22},"end":{"line":399,"column":41}}],"line":395},"46":{"loc":{"start":{"line":403,"column":17},"end":{"line":407,"column":28}},"type":"cond-expr","locations":[{"start":{"line":404,"column":20},"end":{"line":405,"column":28}},{"start":{"line":406,"column":20},"end":{"line":407,"column":28}}],"line":403},"47":{"loc":{"start":{"line":413,"column":7},"end":{"line":417,"column":7}},"type":"cond-expr","locations":[{"start":{"line":414,"column":8},"end":{"line":414,"column":71}},{"start":{"line":416,"column":8},"end":{"line":416,"column":10}}],"line":413},"48":{"loc":{"start":{"line":430,"column":4},"end":{"line":432,"column":51}},"type":"cond-expr","locations":[{"start":{"line":431,"column":9},"end":{"line":431,"column":50}},{"start":{"line":432,"column":9},"end":{"line":432,"column":50}}],"line":430},"49":{"loc":{"start":{"line":453,"column":6},"end":{"line":454,"column":47}},"type":"binary-expr","locations":[{"start":{"line":453,"column":6},"end":{"line":453,"column":47}},{"start":{"line":454,"column":6},"end":{"line":454,"column":47}}],"line":453}},"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,"3":0,"4":0,"5":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],"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],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[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":14,"column":21},"end":{"line":14,"column":50}},"1":{"start":{"line":15,"column":24},"end":{"line":15,"column":51}},"2":{"start":{"line":16,"column":31},"end":{"line":24,"column":3}},"3":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"4":{"start":{"line":25,"column":26},"end":{"line":34,"column":3}},"5":{"start":{"line":37,"column":21},"end":{"line":37,"column":23}},"6":{"start":{"line":39,"column":4},"end":{"line":75,"column":5}},"7":{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},"8":{"start":{"line":41,"column":8},"end":{"line":43,"column":10}},"9":{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},"10":{"start":{"line":45,"column":26},"end":{"line":49,"column":10}},"11":{"start":{"line":46,"column":10},"end":{"line":48,"column":15}},"12":{"start":{"line":50,"column":8},"end":{"line":54,"column":10}},"13":{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},"14":{"start":{"line":56,"column":26},"end":{"line":60,"column":10}},"15":{"start":{"line":57,"column":10},"end":{"line":59,"column":15}},"16":{"start":{"line":61,"column":8},"end":{"line":65,"column":10}},"17":{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},"18":{"start":{"line":67,"column":8},"end":{"line":71,"column":10}},"19":{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},"20":{"start":{"line":73,"column":8},"end":{"line":73,"column":34}},"21":{"start":{"line":77,"column":4},"end":{"line":77,"column":20}},"22":{"start":{"line":80,"column":32},"end":{"line":103,"column":4}},"23":{"start":{"line":81,"column":4},"end":{"line":102,"column":9}},"24":{"start":{"line":105,"column":2},"end":{"line":110,"column":9}},"25":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"26":{"start":{"line":107,"column":6},"end":{"line":107,"column":58}},"27":{"start":{"line":108,"column":6},"end":{"line":108,"column":56}},"28":{"start":{"line":112,"column":2},"end":{"line":783,"column":4}},"29":{"start":{"line":786,"column":30},"end":{"line":807,"column":1}},"30":{"start":{"line":788,"column":29},"end":{"line":790,"column":3}},"31":{"start":{"line":792,"column":31},"end":{"line":794,"column":3}},"32":{"start":{"line":796,"column":2},"end":{"line":806,"column":4}}},"fnMap":{"0":{"name":"BenefitsNavigatorOverview","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":49}},"loc":{"start":{"line":13,"column":57},"end":{"line":784,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":6},"end":{"line":18,"column":7}},"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"line":19},"2":{"name":"generateReactElements","decl":{"start":{"line":36,"column":11},"end":{"line":36,"column":32}},"loc":{"start":{"line":36,"column":39},"end":{"line":78,"column":3}},"line":36},"3":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":43},"end":{"line":45,"column":44}},"loc":{"start":{"line":46,"column":10},"end":{"line":48,"column":15}},"line":46},"4":{"name":"(anonymous_4)","decl":{"start":{"line":56,"column":43},"end":{"line":56,"column":44}},"loc":{"start":{"line":57,"column":10},"end":{"line":59,"column":15}},"line":57},"5":{"name":"(anonymous_5)","decl":{"start":{"line":80,"column":48},"end":{"line":80,"column":49}},"loc":{"start":{"line":81,"column":4},"end":{"line":102,"column":9}},"line":81},"6":{"name":"(anonymous_6)","decl":{"start":{"line":105,"column":12},"end":{"line":105,"column":13}},"loc":{"start":{"line":105,"column":18},"end":{"line":110,"column":3}},"line":105},"7":{"name":"(anonymous_7)","decl":{"start":{"line":786,"column":30},"end":{"line":786,"column":31}},"loc":{"start":{"line":786,"column":52},"end":{"line":807,"column":1}},"line":786}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":31}},{"start":{"line":20,"column":8},"end":{"line":20,"column":29}},{"start":{"line":21,"column":8},"end":{"line":21,"column":37}},{"start":{"line":22,"column":8},"end":{"line":22,"column":31}}],"line":19},"1":{"loc":{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":40,"column":6},"end":{"line":74,"column":7}},{"start":{"line":44,"column":13},"end":{"line":74,"column":7}}],"line":40},"2":{"loc":{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":44,"column":13},"end":{"line":74,"column":7}},{"start":{"line":55,"column":13},"end":{"line":74,"column":7}}],"line":44},"3":{"loc":{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":55,"column":13},"end":{"line":74,"column":7}},{"start":{"line":66,"column":13},"end":{"line":74,"column":7}}],"line":55},"4":{"loc":{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":66,"column":13},"end":{"line":74,"column":7}},{"start":{"line":72,"column":13},"end":{"line":74,"column":7}}],"line":66},"5":{"loc":{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},"type":"if","locations":[{"start":{"line":72,"column":13},"end":{"line":74,"column":7}},{"start":{},"end":{}}],"line":72},"6":{"loc":{"start":{"line":85,"column":10},"end":{"line":87,"column":73}},"type":"cond-expr","locations":[{"start":{"line":86,"column":14},"end":{"line":86,"column":73}},{"start":{"line":87,"column":14},"end":{"line":87,"column":73}}],"line":85},"7":{"loc":{"start":{"line":90,"column":10},"end":{"line":92,"column":48}},"type":"cond-expr","locations":[{"start":{"line":91,"column":14},"end":{"line":91,"column":48}},{"start":{"line":92,"column":14},"end":{"line":92,"column":48}}],"line":90},"8":{"loc":{"start":{"line":94,"column":15},"end":{"line":94,"column":74}},"type":"cond-expr","locations":[{"start":{"line":94,"column":39},"end":{"line":94,"column":55}},{"start":{"line":94,"column":58},"end":{"line":94,"column":74}}],"line":94},"9":{"loc":{"start":{"line":95,"column":14},"end":{"line":95,"column":79}},"type":"cond-expr","locations":[{"start":{"line":95,"column":38},"end":{"line":95,"column":57}},{"start":{"line":95,"column":60},"end":{"line":95,"column":79}}],"line":95},"10":{"loc":{"start":{"line":97,"column":10},"end":{"line":99,"column":48}},"type":"cond-expr","locations":[{"start":{"line":98,"column":14},"end":{"line":98,"column":48}},{"start":{"line":99,"column":14},"end":{"line":99,"column":48}}],"line":97},"11":{"loc":{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},"type":"if","locations":[{"start":{"line":106,"column":4},"end":{"line":109,"column":5}},{"start":{},"end":{}}],"line":106},"12":{"loc":{"start":{"line":107,"column":30},"end":{"line":107,"column":57}},"type":"binary-expr","locations":[{"start":{"line":107,"column":30},"end":{"line":107,"column":51}},{"start":{"line":107,"column":55},"end":{"line":107,"column":57}}],"line":107},"13":{"loc":{"start":{"line":117,"column":10},"end":{"line":117,"column":79}},"type":"cond-expr","locations":[{"start":{"line":117,"column":34},"end":{"line":117,"column":55}},{"start":{"line":117,"column":58},"end":{"line":117,"column":79}}],"line":117},"14":{"loc":{"start":{"line":126,"column":11},"end":{"line":130,"column":11}},"type":"cond-expr","locations":[{"start":{"line":127,"column":12},"end":{"line":127,"column":52}},{"start":{"line":129,"column":12},"end":{"line":129,"column":14}}],"line":126},"15":{"loc":{"start":{"line":134,"column":13},"end":{"line":136,"column":72}},"type":"cond-expr","locations":[{"start":{"line":135,"column":16},"end":{"line":135,"column":61}},{"start":{"line":136,"column":16},"end":{"line":136,"column":72}}],"line":134},"16":{"loc":{"start":{"line":141,"column":14},"end":{"line":143,"column":67}},"type":"cond-expr","locations":[{"start":{"line":142,"column":18},"end":{"line":142,"column":67}},{"start":{"line":143,"column":18},"end":{"line":143,"column":67}}],"line":141},"17":{"loc":{"start":{"line":153,"column":16},"end":{"line":155,"column":41}},"type":"cond-expr","locations":[{"start":{"line":154,"column":20},"end":{"line":154,"column":41}},{"start":{"line":155,"column":20},"end":{"line":155,"column":41}}],"line":153},"18":{"loc":{"start":{"line":163,"column":14},"end":{"line":165,"column":39}},"type":"cond-expr","locations":[{"start":{"line":164,"column":18},"end":{"line":164,"column":39}},{"start":{"line":165,"column":18},"end":{"line":165,"column":39}}],"line":163},"19":{"loc":{"start":{"line":173,"column":14},"end":{"line":173,"column":77}},"type":"cond-expr","locations":[{"start":{"line":173,"column":38},"end":{"line":173,"column":56}},{"start":{"line":173,"column":59},"end":{"line":173,"column":77}}],"line":173},"20":{"loc":{"start":{"line":178,"column":21},"end":{"line":178,"column":58}},"type":"cond-expr","locations":[{"start":{"line":178,"column":45},"end":{"line":178,"column":50}},{"start":{"line":178,"column":53},"end":{"line":178,"column":58}}],"line":178},"21":{"loc":{"start":{"line":184,"column":14},"end":{"line":186,"column":57}},"type":"cond-expr","locations":[{"start":{"line":185,"column":18},"end":{"line":185,"column":60}},{"start":{"line":186,"column":18},"end":{"line":186,"column":57}}],"line":184},"22":{"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}}],"line":200},"23":{"loc":{"start":{"line":220,"column":16},"end":{"line":222,"column":41}},"type":"cond-expr","locations":[{"start":{"line":221,"column":20},"end":{"line":221,"column":41}},{"start":{"line":222,"column":20},"end":{"line":222,"column":41}}],"line":220},"24":{"loc":{"start":{"line":229,"column":14},"end":{"line":229,"column":77}},"type":"cond-expr","locations":[{"start":{"line":229,"column":38},"end":{"line":229,"column":56}},{"start":{"line":229,"column":59},"end":{"line":229,"column":77}}],"line":229},"25":{"loc":{"start":{"line":235,"column":14},"end":{"line":237,"column":67}},"type":"cond-expr","locations":[{"start":{"line":236,"column":18},"end":{"line":236,"column":67}},{"start":{"line":237,"column":18},"end":{"line":237,"column":67}}],"line":235},"26":{"loc":{"start":{"line":247,"column":14},"end":{"line":249,"column":58}},"type":"cond-expr","locations":[{"start":{"line":248,"column":18},"end":{"line":248,"column":58}},{"start":{"line":249,"column":18},"end":{"line":249,"column":58}}],"line":247},"27":{"loc":{"start":{"line":260,"column":16},"end":{"line":262,"column":41}},"type":"cond-expr","locations":[{"start":{"line":261,"column":20},"end":{"line":261,"column":41}},{"start":{"line":262,"column":20},"end":{"line":262,"column":41}}],"line":260},"28":{"loc":{"start":{"line":269,"column":14},"end":{"line":269,"column":77}},"type":"cond-expr","locations":[{"start":{"line":269,"column":38},"end":{"line":269,"column":56}},{"start":{"line":269,"column":59},"end":{"line":269,"column":77}}],"line":269},"29":{"loc":{"start":{"line":276,"column":14},"end":{"line":278,"column":67}},"type":"cond-expr","locations":[{"start":{"line":277,"column":18},"end":{"line":277,"column":67}},{"start":{"line":278,"column":18},"end":{"line":278,"column":67}}],"line":276},"30":{"loc":{"start":{"line":288,"column":14},"end":{"line":290,"column":58}},"type":"cond-expr","locations":[{"start":{"line":289,"column":18},"end":{"line":289,"column":58}},{"start":{"line":290,"column":18},"end":{"line":290,"column":58}}],"line":288},"31":{"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}}],"line":303},"32":{"loc":{"start":{"line":316,"column":24},"end":{"line":318,"column":73}},"type":"cond-expr","locations":[{"start":{"line":317,"column":28},"end":{"line":317,"column":73}},{"start":{"line":318,"column":28},"end":{"line":318,"column":73}}],"line":316},"33":{"loc":{"start":{"line":321,"column":24},"end":{"line":323,"column":68}},"type":"cond-expr","locations":[{"start":{"line":322,"column":28},"end":{"line":322,"column":68}},{"start":{"line":323,"column":28},"end":{"line":323,"column":68}}],"line":321},"34":{"loc":{"start":{"line":332,"column":17},"end":{"line":335,"column":28}},"type":"cond-expr","locations":[{"start":{"line":333,"column":20},"end":{"line":333,"column":80}},{"start":{"line":334,"column":20},"end":{"line":335,"column":28}}],"line":332},"35":{"loc":{"start":{"line":341,"column":20},"end":{"line":343,"column":54}},"type":"cond-expr","locations":[{"start":{"line":342,"column":24},"end":{"line":342,"column":54}},{"start":{"line":343,"column":24},"end":{"line":343,"column":54}}],"line":341},"36":{"loc":{"start":{"line":346,"column":20},"end":{"line":348,"column":54}},"type":"cond-expr","locations":[{"start":{"line":347,"column":24},"end":{"line":347,"column":54}},{"start":{"line":348,"column":24},"end":{"line":348,"column":54}}],"line":346},"37":{"loc":{"start":{"line":351,"column":20},"end":{"line":353,"column":54}},"type":"cond-expr","locations":[{"start":{"line":352,"column":24},"end":{"line":352,"column":54}},{"start":{"line":353,"column":24},"end":{"line":353,"column":54}}],"line":351},"38":{"loc":{"start":{"line":359,"column":20},"end":{"line":363,"column":38}},"type":"cond-expr","locations":[{"start":{"line":360,"column":24},"end":{"line":361,"column":38}},{"start":{"line":362,"column":24},"end":{"line":363,"column":38}}],"line":359},"39":{"loc":{"start":{"line":366,"column":20},"end":{"line":370,"column":32}},"type":"cond-expr","locations":[{"start":{"line":367,"column":24},"end":{"line":368,"column":32}},{"start":{"line":369,"column":24},"end":{"line":370,"column":32}}],"line":366},"40":{"loc":{"start":{"line":373,"column":20},"end":{"line":375,"column":57}},"type":"cond-expr","locations":[{"start":{"line":374,"column":24},"end":{"line":374,"column":57}},{"start":{"line":375,"column":24},"end":{"line":375,"column":57}}],"line":373},"41":{"loc":{"start":{"line":378,"column":20},"end":{"line":380,"column":70}},"type":"cond-expr","locations":[{"start":{"line":379,"column":24},"end":{"line":379,"column":70}},{"start":{"line":380,"column":24},"end":{"line":380,"column":70}}],"line":378},"42":{"loc":{"start":{"line":383,"column":20},"end":{"line":387,"column":32}},"type":"cond-expr","locations":[{"start":{"line":384,"column":24},"end":{"line":385,"column":32}},{"start":{"line":386,"column":24},"end":{"line":387,"column":32}}],"line":383},"43":{"loc":{"start":{"line":395,"column":15},"end":{"line":397,"column":78}},"type":"cond-expr","locations":[{"start":{"line":396,"column":18},"end":{"line":396,"column":78}},{"start":{"line":397,"column":18},"end":{"line":397,"column":78}}],"line":395},"44":{"loc":{"start":{"line":400,"column":15},"end":{"line":402,"column":78}},"type":"cond-expr","locations":[{"start":{"line":401,"column":18},"end":{"line":401,"column":78}},{"start":{"line":402,"column":18},"end":{"line":402,"column":78}}],"line":400},"45":{"loc":{"start":{"line":405,"column":15},"end":{"line":407,"column":78}},"type":"cond-expr","locations":[{"start":{"line":406,"column":18},"end":{"line":406,"column":78}},{"start":{"line":407,"column":18},"end":{"line":407,"column":78}}],"line":405},"46":{"loc":{"start":{"line":411,"column":17},"end":{"line":415,"column":39}},"type":"cond-expr","locations":[{"start":{"line":412,"column":20},"end":{"line":413,"column":39}},{"start":{"line":414,"column":20},"end":{"line":415,"column":39}}],"line":411},"47":{"loc":{"start":{"line":418,"column":17},"end":{"line":422,"column":39}},"type":"cond-expr","locations":[{"start":{"line":419,"column":20},"end":{"line":420,"column":39}},{"start":{"line":421,"column":20},"end":{"line":422,"column":39}}],"line":418},"48":{"loc":{"start":{"line":425,"column":17},"end":{"line":429,"column":39}},"type":"cond-expr","locations":[{"start":{"line":426,"column":20},"end":{"line":427,"column":39}},{"start":{"line":428,"column":20},"end":{"line":429,"column":39}}],"line":425},"49":{"loc":{"start":{"line":433,"column":15},"end":{"line":435,"column":78}},"type":"cond-expr","locations":[{"start":{"line":434,"column":18},"end":{"line":434,"column":78}},{"start":{"line":435,"column":18},"end":{"line":435,"column":78}}],"line":433},"50":{"loc":{"start":{"line":439,"column":17},"end":{"line":442,"column":28}},"type":"cond-expr","locations":[{"start":{"line":440,"column":20},"end":{"line":440,"column":80}},{"start":{"line":441,"column":20},"end":{"line":442,"column":28}}],"line":439},"51":{"loc":{"start":{"line":448,"column":22},"end":{"line":452,"column":50}},"type":"cond-expr","locations":[{"start":{"line":449,"column":26},"end":{"line":450,"column":50}},{"start":{"line":451,"column":26},"end":{"line":452,"column":50}}],"line":448},"52":{"loc":{"start":{"line":455,"column":22},"end":{"line":459,"column":45}},"type":"cond-expr","locations":[{"start":{"line":456,"column":26},"end":{"line":457,"column":45}},{"start":{"line":458,"column":26},"end":{"line":459,"column":45}}],"line":455},"53":{"loc":{"start":{"line":467,"column":23},"end":{"line":471,"column":53}},"type":"cond-expr","locations":[{"start":{"line":468,"column":26},"end":{"line":469,"column":53}},{"start":{"line":470,"column":26},"end":{"line":471,"column":53}}],"line":467},"54":{"loc":{"start":{"line":474,"column":23},"end":{"line":478,"column":53}},"type":"cond-expr","locations":[{"start":{"line":475,"column":26},"end":{"line":476,"column":53}},{"start":{"line":477,"column":26},"end":{"line":478,"column":53}}],"line":474},"55":{"loc":{"start":{"line":482,"column":25},"end":{"line":486,"column":66}},"type":"cond-expr","locations":[{"start":{"line":483,"column":28},"end":{"line":484,"column":66}},{"start":{"line":485,"column":28},"end":{"line":486,"column":66}}],"line":482},"56":{"loc":{"start":{"line":489,"column":25},"end":{"line":493,"column":66}},"type":"cond-expr","locations":[{"start":{"line":490,"column":28},"end":{"line":491,"column":66}},{"start":{"line":492,"column":28},"end":{"line":493,"column":66}}],"line":489},"57":{"loc":{"start":{"line":496,"column":25},"end":{"line":500,"column":66}},"type":"cond-expr","locations":[{"start":{"line":497,"column":28},"end":{"line":498,"column":66}},{"start":{"line":499,"column":28},"end":{"line":500,"column":66}}],"line":496},"58":{"loc":{"start":{"line":509,"column":22},"end":{"line":513,"column":48}},"type":"cond-expr","locations":[{"start":{"line":510,"column":26},"end":{"line":511,"column":48}},{"start":{"line":512,"column":26},"end":{"line":513,"column":48}}],"line":509},"59":{"loc":{"start":{"line":516,"column":22},"end":{"line":520,"column":46}},"type":"cond-expr","locations":[{"start":{"line":517,"column":26},"end":{"line":518,"column":46}},{"start":{"line":519,"column":26},"end":{"line":520,"column":46}}],"line":516},"60":{"loc":{"start":{"line":529,"column":22},"end":{"line":533,"column":50}},"type":"cond-expr","locations":[{"start":{"line":530,"column":26},"end":{"line":531,"column":50}},{"start":{"line":532,"column":26},"end":{"line":533,"column":50}}],"line":529},"61":{"loc":{"start":{"line":536,"column":22},"end":{"line":540,"column":45}},"type":"cond-expr","locations":[{"start":{"line":537,"column":26},"end":{"line":538,"column":45}},{"start":{"line":539,"column":26},"end":{"line":540,"column":45}}],"line":536},"62":{"loc":{"start":{"line":548,"column":23},"end":{"line":552,"column":53}},"type":"cond-expr","locations":[{"start":{"line":549,"column":26},"end":{"line":550,"column":53}},{"start":{"line":551,"column":26},"end":{"line":552,"column":53}}],"line":548},"63":{"loc":{"start":{"line":555,"column":23},"end":{"line":559,"column":53}},"type":"cond-expr","locations":[{"start":{"line":556,"column":26},"end":{"line":557,"column":53}},{"start":{"line":558,"column":26},"end":{"line":559,"column":53}}],"line":555},"64":{"loc":{"start":{"line":563,"column":25},"end":{"line":567,"column":66}},"type":"cond-expr","locations":[{"start":{"line":564,"column":28},"end":{"line":565,"column":66}},{"start":{"line":566,"column":28},"end":{"line":567,"column":66}}],"line":563},"65":{"loc":{"start":{"line":570,"column":25},"end":{"line":574,"column":66}},"type":"cond-expr","locations":[{"start":{"line":571,"column":28},"end":{"line":572,"column":66}},{"start":{"line":573,"column":28},"end":{"line":574,"column":66}}],"line":570},"66":{"loc":{"start":{"line":577,"column":25},"end":{"line":581,"column":66}},"type":"cond-expr","locations":[{"start":{"line":578,"column":28},"end":{"line":579,"column":66}},{"start":{"line":580,"column":28},"end":{"line":581,"column":66}}],"line":577},"67":{"loc":{"start":{"line":590,"column":22},"end":{"line":594,"column":48}},"type":"cond-expr","locations":[{"start":{"line":591,"column":26},"end":{"line":592,"column":48}},{"start":{"line":593,"column":26},"end":{"line":594,"column":48}}],"line":590},"68":{"loc":{"start":{"line":597,"column":22},"end":{"line":601,"column":46}},"type":"cond-expr","locations":[{"start":{"line":598,"column":26},"end":{"line":599,"column":46}},{"start":{"line":600,"column":26},"end":{"line":601,"column":46}}],"line":597},"69":{"loc":{"start":{"line":610,"column":22},"end":{"line":614,"column":50}},"type":"cond-expr","locations":[{"start":{"line":611,"column":26},"end":{"line":612,"column":50}},{"start":{"line":613,"column":26},"end":{"line":614,"column":50}}],"line":610},"70":{"loc":{"start":{"line":617,"column":22},"end":{"line":621,"column":45}},"type":"cond-expr","locations":[{"start":{"line":618,"column":26},"end":{"line":619,"column":45}},{"start":{"line":620,"column":26},"end":{"line":621,"column":45}}],"line":617},"71":{"loc":{"start":{"line":629,"column":23},"end":{"line":633,"column":53}},"type":"cond-expr","locations":[{"start":{"line":630,"column":26},"end":{"line":631,"column":53}},{"start":{"line":632,"column":26},"end":{"line":633,"column":53}}],"line":629},"72":{"loc":{"start":{"line":636,"column":23},"end":{"line":640,"column":53}},"type":"cond-expr","locations":[{"start":{"line":637,"column":26},"end":{"line":638,"column":53}},{"start":{"line":639,"column":26},"end":{"line":640,"column":53}}],"line":636},"73":{"loc":{"start":{"line":644,"column":25},"end":{"line":648,"column":66}},"type":"cond-expr","locations":[{"start":{"line":645,"column":28},"end":{"line":646,"column":66}},{"start":{"line":647,"column":28},"end":{"line":648,"column":66}}],"line":644},"74":{"loc":{"start":{"line":651,"column":25},"end":{"line":655,"column":66}},"type":"cond-expr","locations":[{"start":{"line":652,"column":28},"end":{"line":653,"column":66}},{"start":{"line":654,"column":28},"end":{"line":655,"column":66}}],"line":651},"75":{"loc":{"start":{"line":658,"column":25},"end":{"line":662,"column":66}},"type":"cond-expr","locations":[{"start":{"line":659,"column":28},"end":{"line":660,"column":66}},{"start":{"line":661,"column":28},"end":{"line":662,"column":66}}],"line":658},"76":{"loc":{"start":{"line":665,"column":25},"end":{"line":669,"column":66}},"type":"cond-expr","locations":[{"start":{"line":666,"column":28},"end":{"line":667,"column":66}},{"start":{"line":668,"column":28},"end":{"line":669,"column":66}}],"line":665},"77":{"loc":{"start":{"line":672,"column":25},"end":{"line":676,"column":66}},"type":"cond-expr","locations":[{"start":{"line":673,"column":28},"end":{"line":674,"column":66}},{"start":{"line":675,"column":28},"end":{"line":676,"column":66}}],"line":672},"78":{"loc":{"start":{"line":685,"column":22},"end":{"line":689,"column":48}},"type":"cond-expr","locations":[{"start":{"line":686,"column":26},"end":{"line":687,"column":48}},{"start":{"line":688,"column":26},"end":{"line":689,"column":48}}],"line":685},"79":{"loc":{"start":{"line":692,"column":22},"end":{"line":696,"column":46}},"type":"cond-expr","locations":[{"start":{"line":693,"column":26},"end":{"line":694,"column":46}},{"start":{"line":695,"column":26},"end":{"line":696,"column":46}}],"line":692},"80":{"loc":{"start":{"line":707,"column":17},"end":{"line":710,"column":28}},"type":"cond-expr","locations":[{"start":{"line":708,"column":20},"end":{"line":708,"column":80}},{"start":{"line":709,"column":20},"end":{"line":710,"column":28}}],"line":707},"81":{"loc":{"start":{"line":713,"column":17},"end":{"line":716,"column":28}},"type":"cond-expr","locations":[{"start":{"line":714,"column":20},"end":{"line":714,"column":80}},{"start":{"line":715,"column":20},"end":{"line":716,"column":28}}],"line":713},"82":{"loc":{"start":{"line":719,"column":17},"end":{"line":722,"column":28}},"type":"cond-expr","locations":[{"start":{"line":720,"column":20},"end":{"line":720,"column":80}},{"start":{"line":721,"column":20},"end":{"line":722,"column":28}}],"line":719},"83":{"loc":{"start":{"line":731,"column":17},"end":{"line":734,"column":28}},"type":"cond-expr","locations":[{"start":{"line":732,"column":20},"end":{"line":732,"column":80}},{"start":{"line":733,"column":20},"end":{"line":734,"column":28}}],"line":731},"84":{"loc":{"start":{"line":741,"column":13},"end":{"line":743,"column":40}},"type":"cond-expr","locations":[{"start":{"line":742,"column":16},"end":{"line":742,"column":33}},{"start":{"line":743,"column":16},"end":{"line":743,"column":40}}],"line":741},"85":{"loc":{"start":{"line":777,"column":7},"end":{"line":781,"column":7}},"type":"cond-expr","locations":[{"start":{"line":778,"column":8},"end":{"line":778,"column":71}},{"start":{"line":780,"column":8},"end":{"line":780,"column":10}}],"line":777}},"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,"6":0,"7":0},"b":{"0":[0,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],"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],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[0,0],"61":[0,0],"62":[0,0],"63":[0,0],"64":[0,0],"65":[0,0],"66":[0,0],"67":[0,0],"68":[0,0],"69":[0,0],"70":[0,0],"71":[0,0],"72":[0,0],"73":[0,0],"74":[0,0],"75":[0,0],"76":[0,0],"77":[0,0],"78":[0,0],"79":[0,0],"80":[0,0],"81":[0,0],"82":[0,0],"83":[0,0],"84":[0,0],"85":[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":13,"column":21},"end":{"line":13,"column":50}},"1":{"start":{"line":14,"column":31},"end":{"line":22,"column":3}},"2":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"3":{"start":{"line":23,"column":26},"end":{"line":32,"column":3}},"4":{"start":{"line":34,"column":2},"end":{"line":39,"column":9}},"5":{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},"6":{"start":{"line":36,"column":6},"end":{"line":36,"column":58}},"7":{"start":{"line":37,"column":6},"end":{"line":37,"column":56}},"8":{"start":{"line":41,"column":2},"end":{"line":421,"column":4}},"9":{"start":{"line":424,"column":30},"end":{"line":444,"column":1}},"10":{"start":{"line":426,"column":29},"end":{"line":428,"column":3}},"11":{"start":{"line":430,"column":31},"end":{"line":432,"column":3}},"12":{"start":{"line":434,"column":2},"end":{"line":443,"column":4}}},"fnMap":{"0":{"name":"MscaDashboard","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},"loc":{"start":{"line":12,"column":45},"end":{"line":422,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":6},"end":{"line":16,"column":7}},"loc":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"line":17},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":12},"end":{"line":34,"column":13}},"loc":{"start":{"line":34,"column":18},"end":{"line":39,"column":3}},"line":34},"3":{"name":"(anonymous_3)","decl":{"start":{"line":424,"column":30},"end":{"line":424,"column":31}},"loc":{"start":{"line":424,"column":52},"end":{"line":444,"column":1}},"line":424}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":8},"end":{"line":20,"column":31}},"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":31}},{"start":{"line":18,"column":8},"end":{"line":18,"column":29}},{"start":{"line":19,"column":8},"end":{"line":19,"column":37}},{"start":{"line":20,"column":8},"end":{"line":20,"column":31}}],"line":17},"1":{"loc":{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":38,"column":5}},{"start":{},"end":{}}],"line":35},"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}}],"line":36},"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}}],"line":46},"4":{"loc":{"start":{"line":55,"column":11},"end":{"line":59,"column":11}},"type":"cond-expr","locations":[{"start":{"line":56,"column":12},"end":{"line":56,"column":52}},{"start":{"line":58,"column":12},"end":{"line":58,"column":14}}],"line":55},"5":{"loc":{"start":{"line":63,"column":13},"end":{"line":65,"column":72}},"type":"cond-expr","locations":[{"start":{"line":64,"column":16},"end":{"line":64,"column":61}},{"start":{"line":65,"column":16},"end":{"line":65,"column":72}}],"line":63},"6":{"loc":{"start":{"line":70,"column":14},"end":{"line":72,"column":67}},"type":"cond-expr","locations":[{"start":{"line":71,"column":18},"end":{"line":71,"column":67}},{"start":{"line":72,"column":18},"end":{"line":72,"column":67}}],"line":70},"7":{"loc":{"start":{"line":82,"column":16},"end":{"line":84,"column":41}},"type":"cond-expr","locations":[{"start":{"line":83,"column":20},"end":{"line":83,"column":41}},{"start":{"line":84,"column":20},"end":{"line":84,"column":41}}],"line":82},"8":{"loc":{"start":{"line":92,"column":14},"end":{"line":94,"column":39}},"type":"cond-expr","locations":[{"start":{"line":93,"column":18},"end":{"line":93,"column":39}},{"start":{"line":94,"column":18},"end":{"line":94,"column":39}}],"line":92},"9":{"loc":{"start":{"line":102,"column":14},"end":{"line":102,"column":77}},"type":"cond-expr","locations":[{"start":{"line":102,"column":38},"end":{"line":102,"column":56}},{"start":{"line":102,"column":59},"end":{"line":102,"column":77}}],"line":102},"10":{"loc":{"start":{"line":107,"column":21},"end":{"line":107,"column":58}},"type":"cond-expr","locations":[{"start":{"line":107,"column":45},"end":{"line":107,"column":50}},{"start":{"line":107,"column":53},"end":{"line":107,"column":58}}],"line":107},"11":{"loc":{"start":{"line":113,"column":14},"end":{"line":115,"column":57}},"type":"cond-expr","locations":[{"start":{"line":114,"column":18},"end":{"line":114,"column":60}},{"start":{"line":115,"column":18},"end":{"line":115,"column":57}}],"line":113},"12":{"loc":{"start":{"line":129,"column":14},"end":{"line":131,"column":67}},"type":"cond-expr","locations":[{"start":{"line":130,"column":18},"end":{"line":130,"column":67}},{"start":{"line":131,"column":18},"end":{"line":131,"column":67}}],"line":129},"13":{"loc":{"start":{"line":149,"column":16},"end":{"line":151,"column":41}},"type":"cond-expr","locations":[{"start":{"line":150,"column":20},"end":{"line":150,"column":41}},{"start":{"line":151,"column":20},"end":{"line":151,"column":41}}],"line":149},"14":{"loc":{"start":{"line":158,"column":14},"end":{"line":158,"column":77}},"type":"cond-expr","locations":[{"start":{"line":158,"column":38},"end":{"line":158,"column":56}},{"start":{"line":158,"column":59},"end":{"line":158,"column":77}}],"line":158},"15":{"loc":{"start":{"line":164,"column":14},"end":{"line":166,"column":78}},"type":"cond-expr","locations":[{"start":{"line":165,"column":18},"end":{"line":165,"column":78}},{"start":{"line":166,"column":18},"end":{"line":166,"column":78}}],"line":164},"16":{"loc":{"start":{"line":176,"column":14},"end":{"line":176,"column":77}},"type":"cond-expr","locations":[{"start":{"line":176,"column":38},"end":{"line":176,"column":56}},{"start":{"line":176,"column":59},"end":{"line":176,"column":77}}],"line":176},"17":{"loc":{"start":{"line":187,"column":16},"end":{"line":189,"column":41}},"type":"cond-expr","locations":[{"start":{"line":188,"column":20},"end":{"line":188,"column":41}},{"start":{"line":189,"column":20},"end":{"line":189,"column":41}}],"line":187},"18":{"loc":{"start":{"line":196,"column":14},"end":{"line":196,"column":77}},"type":"cond-expr","locations":[{"start":{"line":196,"column":38},"end":{"line":196,"column":56}},{"start":{"line":196,"column":59},"end":{"line":196,"column":77}}],"line":196},"19":{"loc":{"start":{"line":203,"column":14},"end":{"line":205,"column":78}},"type":"cond-expr","locations":[{"start":{"line":204,"column":18},"end":{"line":204,"column":78}},{"start":{"line":205,"column":18},"end":{"line":205,"column":78}}],"line":203},"20":{"loc":{"start":{"line":215,"column":14},"end":{"line":215,"column":77}},"type":"cond-expr","locations":[{"start":{"line":215,"column":38},"end":{"line":215,"column":56}},{"start":{"line":215,"column":59},"end":{"line":215,"column":77}}],"line":215},"21":{"loc":{"start":{"line":228,"column":20},"end":{"line":230,"column":42}},"type":"cond-expr","locations":[{"start":{"line":229,"column":24},"end":{"line":229,"column":42}},{"start":{"line":230,"column":24},"end":{"line":230,"column":42}}],"line":228},"22":{"loc":{"start":{"line":239,"column":24},"end":{"line":241,"column":73}},"type":"cond-expr","locations":[{"start":{"line":240,"column":28},"end":{"line":240,"column":73}},{"start":{"line":241,"column":28},"end":{"line":241,"column":73}}],"line":239},"23":{"loc":{"start":{"line":244,"column":24},"end":{"line":246,"column":75}},"type":"binary-expr","locations":[{"start":{"line":244,"column":25},"end":{"line":246,"column":68}},{"start":{"line":246,"column":73},"end":{"line":246,"column":75}}],"line":244},"24":{"loc":{"start":{"line":244,"column":25},"end":{"line":246,"column":68}},"type":"cond-expr","locations":[{"start":{"line":245,"column":28},"end":{"line":245,"column":68}},{"start":{"line":246,"column":28},"end":{"line":246,"column":68}}],"line":244},"25":{"loc":{"start":{"line":255,"column":17},"end":{"line":258,"column":28}},"type":"cond-expr","locations":[{"start":{"line":256,"column":20},"end":{"line":256,"column":80}},{"start":{"line":257,"column":20},"end":{"line":258,"column":28}}],"line":255},"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}}],"line":264},"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}}],"line":269},"28":{"loc":{"start":{"line":274,"column":20},"end":{"line":276,"column":54}},"type":"cond-expr","locations":[{"start":{"line":275,"column":24},"end":{"line":275,"column":54}},{"start":{"line":276,"column":24},"end":{"line":276,"column":54}}],"line":274},"29":{"loc":{"start":{"line":282,"column":20},"end":{"line":286,"column":32}},"type":"cond-expr","locations":[{"start":{"line":283,"column":24},"end":{"line":284,"column":32}},{"start":{"line":285,"column":24},"end":{"line":286,"column":32}}],"line":282},"30":{"loc":{"start":{"line":289,"column":20},"end":{"line":293,"column":32}},"type":"cond-expr","locations":[{"start":{"line":290,"column":24},"end":{"line":291,"column":32}},{"start":{"line":292,"column":24},"end":{"line":293,"column":32}}],"line":289},"31":{"loc":{"start":{"line":296,"column":20},"end":{"line":298,"column":57}},"type":"cond-expr","locations":[{"start":{"line":297,"column":24},"end":{"line":297,"column":57}},{"start":{"line":298,"column":24},"end":{"line":298,"column":57}}],"line":296},"32":{"loc":{"start":{"line":301,"column":20},"end":{"line":303,"column":70}},"type":"cond-expr","locations":[{"start":{"line":302,"column":24},"end":{"line":302,"column":70}},{"start":{"line":303,"column":24},"end":{"line":303,"column":70}}],"line":301},"33":{"loc":{"start":{"line":306,"column":20},"end":{"line":310,"column":32}},"type":"cond-expr","locations":[{"start":{"line":307,"column":24},"end":{"line":308,"column":32}},{"start":{"line":309,"column":24},"end":{"line":310,"column":32}}],"line":306},"34":{"loc":{"start":{"line":319,"column":17},"end":{"line":322,"column":28}},"type":"cond-expr","locations":[{"start":{"line":320,"column":20},"end":{"line":320,"column":80}},{"start":{"line":321,"column":20},"end":{"line":322,"column":28}}],"line":319},"35":{"loc":{"start":{"line":325,"column":17},"end":{"line":328,"column":28}},"type":"cond-expr","locations":[{"start":{"line":326,"column":20},"end":{"line":326,"column":80}},{"start":{"line":327,"column":20},"end":{"line":328,"column":28}}],"line":325},"36":{"loc":{"start":{"line":331,"column":17},"end":{"line":334,"column":28}},"type":"cond-expr","locations":[{"start":{"line":332,"column":20},"end":{"line":332,"column":80}},{"start":{"line":333,"column":20},"end":{"line":334,"column":28}}],"line":331},"37":{"loc":{"start":{"line":337,"column":17},"end":{"line":340,"column":28}},"type":"cond-expr","locations":[{"start":{"line":338,"column":20},"end":{"line":338,"column":80}},{"start":{"line":339,"column":20},"end":{"line":340,"column":28}}],"line":337},"38":{"loc":{"start":{"line":343,"column":17},"end":{"line":346,"column":28}},"type":"cond-expr","locations":[{"start":{"line":344,"column":20},"end":{"line":344,"column":80}},{"start":{"line":345,"column":20},"end":{"line":346,"column":28}}],"line":343},"39":{"loc":{"start":{"line":349,"column":17},"end":{"line":352,"column":28}},"type":"cond-expr","locations":[{"start":{"line":350,"column":20},"end":{"line":350,"column":80}},{"start":{"line":351,"column":20},"end":{"line":352,"column":28}}],"line":349},"40":{"loc":{"start":{"line":355,"column":17},"end":{"line":358,"column":28}},"type":"cond-expr","locations":[{"start":{"line":356,"column":20},"end":{"line":356,"column":80}},{"start":{"line":357,"column":20},"end":{"line":358,"column":28}}],"line":355},"41":{"loc":{"start":{"line":361,"column":17},"end":{"line":364,"column":28}},"type":"cond-expr","locations":[{"start":{"line":362,"column":20},"end":{"line":362,"column":80}},{"start":{"line":363,"column":20},"end":{"line":364,"column":28}}],"line":361},"42":{"loc":{"start":{"line":367,"column":17},"end":{"line":370,"column":28}},"type":"cond-expr","locations":[{"start":{"line":368,"column":20},"end":{"line":368,"column":80}},{"start":{"line":369,"column":20},"end":{"line":370,"column":28}}],"line":367},"43":{"loc":{"start":{"line":373,"column":17},"end":{"line":376,"column":28}},"type":"cond-expr","locations":[{"start":{"line":374,"column":20},"end":{"line":374,"column":80}},{"start":{"line":375,"column":20},"end":{"line":376,"column":28}}],"line":373},"44":{"loc":{"start":{"line":379,"column":17},"end":{"line":383,"column":28}},"type":"cond-expr","locations":[{"start":{"line":380,"column":20},"end":{"line":381,"column":28}},{"start":{"line":382,"column":20},"end":{"line":383,"column":28}}],"line":379},"45":{"loc":{"start":{"line":415,"column":7},"end":{"line":419,"column":7}},"type":"cond-expr","locations":[{"start":{"line":416,"column":8},"end":{"line":416,"column":71}},{"start":{"line":418,"column":8},"end":{"line":418,"column":10}}],"line":415}},"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,"1":0,"2":0,"3":0},"b":{"0":[0,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],"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],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[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":13,"column":16},"end":{"line":13,"column":40}},"1":{"start":{"line":14,"column":21},"end":{"line":14,"column":45}},"2":{"start":{"line":15,"column":23},"end":{"line":15,"column":55}},"3":{"start":{"line":17,"column":2},"end":{"line":22,"column":9}},"4":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"5":{"start":{"line":19,"column":6},"end":{"line":19,"column":58}},"6":{"start":{"line":20,"column":6},"end":{"line":20,"column":56}},"7":{"start":{"line":24,"column":2},"end":{"line":450,"column":4}},"8":{"start":{"line":455,"column":19},"end":{"line":457,"column":3}},"9":{"start":{"line":459,"column":16},"end":{"line":459,"column":60}},"10":{"start":{"line":461,"column":2},"end":{"line":465,"column":5}},"11":{"start":{"line":462,"column":4},"end":{"line":464,"column":52}},"12":{"start":{"line":466,"column":2},"end":{"line":469,"column":4}},"13":{"start":{"line":472,"column":30},"end":{"line":498,"column":1}},"14":{"start":{"line":474,"column":19},"end":{"line":476,"column":3}},"15":{"start":{"line":478,"column":31},"end":{"line":480,"column":3}},"16":{"start":{"line":481,"column":16},"end":{"line":481,"column":43}},"17":{"start":{"line":483,"column":19},"end":{"line":488,"column":4}},"18":{"start":{"line":484,"column":4},"end":{"line":487,"column":6}},"19":{"start":{"line":489,"column":2},"end":{"line":497,"column":4}}},"fnMap":{"0":{"name":"OASUpdatePage","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":37}},"loc":{"start":{"line":12,"column":45},"end":{"line":451,"column":1}},"line":12},"1":{"name":"(anonymous_1)","decl":{"start":{"line":17,"column":12},"end":{"line":17,"column":13}},"loc":{"start":{"line":17,"column":18},"end":{"line":22,"column":3}},"line":17},"2":{"name":"getStaticPaths","decl":{"start":{"line":453,"column":22},"end":{"line":453,"column":36}},"loc":{"start":{"line":453,"column":39},"end":{"line":470,"column":1}},"line":453},"3":{"name":"(anonymous_3)","decl":{"start":{"line":461,"column":12},"end":{"line":461,"column":13}},"loc":{"start":{"line":461,"column":22},"end":{"line":465,"column":3}},"line":461},"4":{"name":"(anonymous_4)","decl":{"start":{"line":472,"column":30},"end":{"line":472,"column":31}},"loc":{"start":{"line":472,"column":60},"end":{"line":498,"column":1}},"line":472},"5":{"name":"(anonymous_5)","decl":{"start":{"line":483,"column":32},"end":{"line":483,"column":33}},"loc":{"start":{"line":483,"column":42},"end":{"line":488,"column":3}},"line":483}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{},"end":{}}],"line":18},"1":{"loc":{"start":{"line":19,"column":30},"end":{"line":19,"column":57}},"type":"binary-expr","locations":[{"start":{"line":19,"column":30},"end":{"line":19,"column":51}},{"start":{"line":19,"column":55},"end":{"line":19,"column":57}}],"line":19},"2":{"loc":{"start":{"line":29,"column":10},"end":{"line":29,"column":79}},"type":"cond-expr","locations":[{"start":{"line":29,"column":34},"end":{"line":29,"column":55}},{"start":{"line":29,"column":58},"end":{"line":29,"column":79}}],"line":29},"3":{"loc":{"start":{"line":38,"column":11},"end":{"line":42,"column":11}},"type":"cond-expr","locations":[{"start":{"line":39,"column":12},"end":{"line":39,"column":52}},{"start":{"line":41,"column":12},"end":{"line":41,"column":14}}],"line":38},"4":{"loc":{"start":{"line":46,"column":13},"end":{"line":48,"column":72}},"type":"cond-expr","locations":[{"start":{"line":47,"column":16},"end":{"line":47,"column":61}},{"start":{"line":48,"column":16},"end":{"line":48,"column":72}}],"line":46},"5":{"loc":{"start":{"line":53,"column":14},"end":{"line":53,"column":77}},"type":"cond-expr","locations":[{"start":{"line":53,"column":38},"end":{"line":53,"column":56}},{"start":{"line":53,"column":59},"end":{"line":53,"column":77}}],"line":53},"6":{"loc":{"start":{"line":62,"column":14},"end":{"line":64,"column":39}},"type":"cond-expr","locations":[{"start":{"line":63,"column":18},"end":{"line":63,"column":39}},{"start":{"line":64,"column":18},"end":{"line":64,"column":39}}],"line":62},"7":{"loc":{"start":{"line":72,"column":14},"end":{"line":72,"column":77}},"type":"cond-expr","locations":[{"start":{"line":72,"column":38},"end":{"line":72,"column":56}},{"start":{"line":72,"column":59},"end":{"line":72,"column":77}}],"line":72},"8":{"loc":{"start":{"line":77,"column":21},"end":{"line":77,"column":58}},"type":"cond-expr","locations":[{"start":{"line":77,"column":45},"end":{"line":77,"column":50}},{"start":{"line":77,"column":53},"end":{"line":77,"column":58}}],"line":77},"9":{"loc":{"start":{"line":83,"column":14},"end":{"line":85,"column":57}},"type":"cond-expr","locations":[{"start":{"line":84,"column":18},"end":{"line":84,"column":60}},{"start":{"line":85,"column":18},"end":{"line":85,"column":57}}],"line":83},"10":{"loc":{"start":{"line":99,"column":14},"end":{"line":99,"column":77}},"type":"cond-expr","locations":[{"start":{"line":99,"column":38},"end":{"line":99,"column":56}},{"start":{"line":99,"column":59},"end":{"line":99,"column":77}}],"line":99},"11":{"loc":{"start":{"line":117,"column":16},"end":{"line":119,"column":41}},"type":"cond-expr","locations":[{"start":{"line":118,"column":20},"end":{"line":118,"column":41}},{"start":{"line":119,"column":20},"end":{"line":119,"column":41}}],"line":117},"12":{"loc":{"start":{"line":126,"column":14},"end":{"line":126,"column":77}},"type":"cond-expr","locations":[{"start":{"line":126,"column":38},"end":{"line":126,"column":56}},{"start":{"line":126,"column":59},"end":{"line":126,"column":77}}],"line":126},"13":{"loc":{"start":{"line":132,"column":14},"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}}],"line":132},"14":{"loc":{"start":{"line":144,"column":14},"end":{"line":144,"column":77}},"type":"cond-expr","locations":[{"start":{"line":144,"column":38},"end":{"line":144,"column":56}},{"start":{"line":144,"column":59},"end":{"line":144,"column":77}}],"line":144},"15":{"loc":{"start":{"line":155,"column":16},"end":{"line":157,"column":41}},"type":"cond-expr","locations":[{"start":{"line":156,"column":20},"end":{"line":156,"column":41}},{"start":{"line":157,"column":20},"end":{"line":157,"column":41}}],"line":155},"16":{"loc":{"start":{"line":164,"column":14},"end":{"line":164,"column":77}},"type":"cond-expr","locations":[{"start":{"line":164,"column":38},"end":{"line":164,"column":56}},{"start":{"line":164,"column":59},"end":{"line":164,"column":77}}],"line":164},"17":{"loc":{"start":{"line":171,"column":14},"end":{"line":173,"column":78}},"type":"cond-expr","locations":[{"start":{"line":172,"column":18},"end":{"line":172,"column":78}},{"start":{"line":173,"column":18},"end":{"line":173,"column":78}}],"line":171},"18":{"loc":{"start":{"line":183,"column":14},"end":{"line":183,"column":77}},"type":"cond-expr","locations":[{"start":{"line":183,"column":38},"end":{"line":183,"column":56}},{"start":{"line":183,"column":59},"end":{"line":183,"column":77}}],"line":183},"19":{"loc":{"start":{"line":192,"column":14},"end":{"line":194,"column":78}},"type":"cond-expr","locations":[{"start":{"line":193,"column":18},"end":{"line":193,"column":78}},{"start":{"line":194,"column":18},"end":{"line":194,"column":78}}],"line":192},"20":{"loc":{"start":{"line":200,"column":16},"end":{"line":200,"column":73}},"type":"cond-expr","locations":[{"start":{"line":200,"column":40},"end":{"line":200,"column":55}},{"start":{"line":200,"column":58},"end":{"line":200,"column":73}}],"line":200},"21":{"loc":{"start":{"line":203,"column":15},"end":{"line":205,"column":40}},"type":"cond-expr","locations":[{"start":{"line":204,"column":18},"end":{"line":204,"column":40}},{"start":{"line":205,"column":18},"end":{"line":205,"column":40}}],"line":203},"22":{"loc":{"start":{"line":212,"column":16},"end":{"line":212,"column":73}},"type":"cond-expr","locations":[{"start":{"line":212,"column":40},"end":{"line":212,"column":55}},{"start":{"line":212,"column":58},"end":{"line":212,"column":73}}],"line":212},"23":{"loc":{"start":{"line":215,"column":15},"end":{"line":217,"column":40}},"type":"cond-expr","locations":[{"start":{"line":216,"column":18},"end":{"line":216,"column":40}},{"start":{"line":217,"column":18},"end":{"line":217,"column":40}}],"line":215},"24":{"loc":{"start":{"line":228,"column":15},"end":{"line":230,"column":78}},"type":"cond-expr","locations":[{"start":{"line":229,"column":18},"end":{"line":229,"column":78}},{"start":{"line":230,"column":18},"end":{"line":230,"column":78}}],"line":228},"25":{"loc":{"start":{"line":233,"column":15},"end":{"line":235,"column":78}},"type":"cond-expr","locations":[{"start":{"line":234,"column":18},"end":{"line":234,"column":78}},{"start":{"line":235,"column":18},"end":{"line":235,"column":78}}],"line":233},"26":{"loc":{"start":{"line":242,"column":22},"end":{"line":244,"column":71}},"type":"cond-expr","locations":[{"start":{"line":243,"column":26},"end":{"line":243,"column":71}},{"start":{"line":244,"column":26},"end":{"line":244,"column":71}}],"line":242},"27":{"loc":{"start":{"line":247,"column":22},"end":{"line":249,"column":66}},"type":"cond-expr","locations":[{"start":{"line":248,"column":26},"end":{"line":248,"column":66}},{"start":{"line":249,"column":26},"end":{"line":249,"column":66}}],"line":247},"28":{"loc":{"start":{"line":258,"column":15},"end":{"line":260,"column":78}},"type":"cond-expr","locations":[{"start":{"line":259,"column":18},"end":{"line":259,"column":78}},{"start":{"line":260,"column":18},"end":{"line":260,"column":78}}],"line":258},"29":{"loc":{"start":{"line":263,"column":15},"end":{"line":265,"column":78}},"type":"cond-expr","locations":[{"start":{"line":264,"column":18},"end":{"line":264,"column":78}},{"start":{"line":265,"column":18},"end":{"line":265,"column":78}}],"line":263},"30":{"loc":{"start":{"line":268,"column":15},"end":{"line":270,"column":78}},"type":"cond-expr","locations":[{"start":{"line":269,"column":18},"end":{"line":269,"column":78}},{"start":{"line":270,"column":18},"end":{"line":270,"column":78}}],"line":268},"31":{"loc":{"start":{"line":274,"column":17},"end":{"line":278,"column":39}},"type":"cond-expr","locations":[{"start":{"line":275,"column":20},"end":{"line":276,"column":39}},{"start":{"line":277,"column":20},"end":{"line":278,"column":39}}],"line":274},"32":{"loc":{"start":{"line":281,"column":17},"end":{"line":285,"column":39}},"type":"cond-expr","locations":[{"start":{"line":282,"column":20},"end":{"line":283,"column":39}},{"start":{"line":284,"column":20},"end":{"line":285,"column":39}}],"line":281},"33":{"loc":{"start":{"line":288,"column":17},"end":{"line":292,"column":39}},"type":"cond-expr","locations":[{"start":{"line":289,"column":20},"end":{"line":290,"column":39}},{"start":{"line":291,"column":20},"end":{"line":292,"column":39}}],"line":288},"34":{"loc":{"start":{"line":296,"column":15},"end":{"line":298,"column":78}},"type":"cond-expr","locations":[{"start":{"line":297,"column":18},"end":{"line":297,"column":78}},{"start":{"line":298,"column":18},"end":{"line":298,"column":78}}],"line":296},"35":{"loc":{"start":{"line":301,"column":15},"end":{"line":303,"column":78}},"type":"cond-expr","locations":[{"start":{"line":302,"column":18},"end":{"line":302,"column":78}},{"start":{"line":303,"column":18},"end":{"line":303,"column":78}}],"line":301},"36":{"loc":{"start":{"line":306,"column":15},"end":{"line":308,"column":78}},"type":"cond-expr","locations":[{"start":{"line":307,"column":18},"end":{"line":307,"column":78}},{"start":{"line":308,"column":18},"end":{"line":308,"column":78}}],"line":306},"37":{"loc":{"start":{"line":311,"column":15},"end":{"line":313,"column":79}},"type":"cond-expr","locations":[{"start":{"line":312,"column":18},"end":{"line":312,"column":79}},{"start":{"line":313,"column":18},"end":{"line":313,"column":79}}],"line":311},"38":{"loc":{"start":{"line":316,"column":15},"end":{"line":318,"column":79}},"type":"cond-expr","locations":[{"start":{"line":317,"column":18},"end":{"line":317,"column":79}},{"start":{"line":318,"column":18},"end":{"line":318,"column":79}}],"line":316},"39":{"loc":{"start":{"line":321,"column":15},"end":{"line":323,"column":79}},"type":"cond-expr","locations":[{"start":{"line":322,"column":18},"end":{"line":322,"column":79}},{"start":{"line":323,"column":18},"end":{"line":323,"column":79}}],"line":321},"40":{"loc":{"start":{"line":326,"column":15},"end":{"line":328,"column":79}},"type":"cond-expr","locations":[{"start":{"line":327,"column":18},"end":{"line":327,"column":79}},{"start":{"line":328,"column":18},"end":{"line":328,"column":79}}],"line":326},"41":{"loc":{"start":{"line":331,"column":15},"end":{"line":333,"column":79}},"type":"cond-expr","locations":[{"start":{"line":332,"column":18},"end":{"line":332,"column":79}},{"start":{"line":333,"column":18},"end":{"line":333,"column":79}}],"line":331},"42":{"loc":{"start":{"line":336,"column":15},"end":{"line":338,"column":79}},"type":"cond-expr","locations":[{"start":{"line":337,"column":18},"end":{"line":337,"column":79}},{"start":{"line":338,"column":18},"end":{"line":338,"column":79}}],"line":336},"43":{"loc":{"start":{"line":342,"column":17},"end":{"line":346,"column":39}},"type":"cond-expr","locations":[{"start":{"line":343,"column":20},"end":{"line":344,"column":39}},{"start":{"line":345,"column":20},"end":{"line":346,"column":39}}],"line":342},"44":{"loc":{"start":{"line":349,"column":17},"end":{"line":353,"column":39}},"type":"cond-expr","locations":[{"start":{"line":350,"column":20},"end":{"line":351,"column":39}},{"start":{"line":352,"column":20},"end":{"line":353,"column":39}}],"line":349},"45":{"loc":{"start":{"line":357,"column":15},"end":{"line":359,"column":79}},"type":"cond-expr","locations":[{"start":{"line":358,"column":18},"end":{"line":358,"column":79}},{"start":{"line":359,"column":18},"end":{"line":359,"column":79}}],"line":357},"46":{"loc":{"start":{"line":363,"column":17},"end":{"line":367,"column":39}},"type":"cond-expr","locations":[{"start":{"line":364,"column":20},"end":{"line":365,"column":39}},{"start":{"line":366,"column":20},"end":{"line":367,"column":39}}],"line":363},"47":{"loc":{"start":{"line":370,"column":17},"end":{"line":374,"column":39}},"type":"cond-expr","locations":[{"start":{"line":371,"column":20},"end":{"line":372,"column":39}},{"start":{"line":373,"column":20},"end":{"line":374,"column":39}}],"line":370},"48":{"loc":{"start":{"line":377,"column":17},"end":{"line":381,"column":39}},"type":"cond-expr","locations":[{"start":{"line":378,"column":20},"end":{"line":379,"column":39}},{"start":{"line":380,"column":20},"end":{"line":381,"column":39}}],"line":377},"49":{"loc":{"start":{"line":385,"column":15},"end":{"line":387,"column":79}},"type":"cond-expr","locations":[{"start":{"line":386,"column":18},"end":{"line":386,"column":79}},{"start":{"line":387,"column":18},"end":{"line":387,"column":79}}],"line":385},"50":{"loc":{"start":{"line":390,"column":15},"end":{"line":392,"column":79}},"type":"cond-expr","locations":[{"start":{"line":391,"column":18},"end":{"line":391,"column":79}},{"start":{"line":392,"column":18},"end":{"line":392,"column":79}}],"line":390},"51":{"loc":{"start":{"line":395,"column":15},"end":{"line":397,"column":79}},"type":"cond-expr","locations":[{"start":{"line":396,"column":18},"end":{"line":396,"column":79}},{"start":{"line":397,"column":18},"end":{"line":397,"column":79}}],"line":395},"52":{"loc":{"start":{"line":404,"column":16},"end":{"line":406,"column":62}},"type":"cond-expr","locations":[{"start":{"line":405,"column":20},"end":{"line":405,"column":62}},{"start":{"line":406,"column":20},"end":{"line":406,"column":62}}],"line":404},"53":{"loc":{"start":{"line":409,"column":16},"end":{"line":411,"column":53}},"type":"cond-expr","locations":[{"start":{"line":410,"column":20},"end":{"line":410,"column":53}},{"start":{"line":411,"column":20},"end":{"line":411,"column":53}}],"line":409},"54":{"loc":{"start":{"line":419,"column":12},"end":{"line":421,"column":49}},"type":"cond-expr","locations":[{"start":{"line":420,"column":16},"end":{"line":420,"column":49}},{"start":{"line":421,"column":16},"end":{"line":421,"column":49}}],"line":419},"55":{"loc":{"start":{"line":424,"column":12},"end":{"line":426,"column":76}},"type":"cond-expr","locations":[{"start":{"line":425,"column":16},"end":{"line":425,"column":76}},{"start":{"line":426,"column":16},"end":{"line":426,"column":76}}],"line":424},"56":{"loc":{"start":{"line":431,"column":14},"end":{"line":433,"column":67}},"type":"cond-expr","locations":[{"start":{"line":432,"column":18},"end":{"line":432,"column":67}},{"start":{"line":433,"column":18},"end":{"line":433,"column":67}}],"line":431},"57":{"loc":{"start":{"line":435,"column":14},"end":{"line":437,"column":76}},"type":"cond-expr","locations":[{"start":{"line":436,"column":18},"end":{"line":436,"column":76}},{"start":{"line":437,"column":18},"end":{"line":437,"column":76}}],"line":435},"58":{"loc":{"start":{"line":444,"column":7},"end":{"line":448,"column":7}},"type":"cond-expr","locations":[{"start":{"line":445,"column":8},"end":{"line":445,"column":71}},{"start":{"line":447,"column":8},"end":{"line":447,"column":10}}],"line":444},"59":{"loc":{"start":{"line":462,"column":4},"end":{"line":464,"column":51}},"type":"cond-expr","locations":[{"start":{"line":463,"column":9},"end":{"line":463,"column":50}},{"start":{"line":464,"column":9},"end":{"line":464,"column":50}}],"line":462},"60":{"loc":{"start":{"line":485,"column":6},"end":{"line":486,"column":47}},"type":"binary-expr","locations":[{"start":{"line":485,"column":6},"end":{"line":485,"column":47}},{"start":{"line":486,"column":6},"end":{"line":486,"column":47}}],"line":485}},"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},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":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],"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],"38":[0,0],"39":[0,0],"40":[0,0],"41":[0,0],"42":[0,0],"43":[0,0],"44":[0,0],"45":[0,0],"46":[0,0],"47":[0,0],"48":[0,0],"49":[0,0],"50":[0,0],"51":[0,0],"52":[0,0],"53":[0,0],"54":[0,0],"55":[0,0],"56":[0,0],"57":[0,0],"58":[0,0],"59":[0,0],"60":[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":14,"column":21},"end":{"line":14,"column":50}},"1":{"start":{"line":15,"column":24},"end":{"line":15,"column":51}},"2":{"start":{"line":16,"column":31},"end":{"line":24,"column":3}},"3":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"4":{"start":{"line":25,"column":26},"end":{"line":34,"column":3}},"5":{"start":{"line":36,"column":32},"end":{"line":59,"column":4}},"6":{"start":{"line":37,"column":4},"end":{"line":58,"column":9}},"7":{"start":{"line":61,"column":2},"end":{"line":66,"column":9}},"8":{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},"9":{"start":{"line":63,"column":6},"end":{"line":63,"column":58}},"10":{"start":{"line":64,"column":6},"end":{"line":64,"column":56}},"11":{"start":{"line":68,"column":2},"end":{"line":453,"column":4}},"12":{"start":{"line":456,"column":30},"end":{"line":477,"column":1}},"13":{"start":{"line":458,"column":29},"end":{"line":460,"column":3}},"14":{"start":{"line":462,"column":31},"end":{"line":464,"column":3}},"15":{"start":{"line":466,"column":2},"end":{"line":476,"column":4}}},"fnMap":{"0":{"name":"OasBenefitsEstimator","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":44}},"loc":{"start":{"line":13,"column":52},"end":{"line":454,"column":1}},"line":13},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":6},"end":{"line":18,"column":7}},"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":36,"column":48},"end":{"line":36,"column":49}},"loc":{"start":{"line":37,"column":4},"end":{"line":58,"column":9}},"line":37},"3":{"name":"(anonymous_3)","decl":{"start":{"line":61,"column":12},"end":{"line":61,"column":13}},"loc":{"start":{"line":61,"column":18},"end":{"line":66,"column":3}},"line":61},"4":{"name":"(anonymous_4)","decl":{"start":{"line":456,"column":30},"end":{"line":456,"column":31}},"loc":{"start":{"line":456,"column":52},"end":{"line":477,"column":1}},"line":456}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":8},"end":{"line":22,"column":31}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":31}},{"start":{"line":20,"column":8},"end":{"line":20,"column":29}},{"start":{"line":21,"column":8},"end":{"line":21,"column":37}},{"start":{"line":22,"column":8},"end":{"line":22,"column":31}}],"line":19},"1":{"loc":{"start":{"line":41,"column":10},"end":{"line":43,"column":73}},"type":"cond-expr","locations":[{"start":{"line":42,"column":14},"end":{"line":42,"column":73}},{"start":{"line":43,"column":14},"end":{"line":43,"column":73}}],"line":41},"2":{"loc":{"start":{"line":46,"column":10},"end":{"line":48,"column":55}},"type":"binary-expr","locations":[{"start":{"line":46,"column":11},"end":{"line":48,"column":48}},{"start":{"line":48,"column":53},"end":{"line":48,"column":55}}],"line":46},"3":{"loc":{"start":{"line":46,"column":11},"end":{"line":48,"column":48}},"type":"cond-expr","locations":[{"start":{"line":47,"column":14},"end":{"line":47,"column":48}},{"start":{"line":48,"column":14},"end":{"line":48,"column":48}}],"line":46},"4":{"loc":{"start":{"line":50,"column":15},"end":{"line":50,"column":74}},"type":"cond-expr","locations":[{"start":{"line":50,"column":39},"end":{"line":50,"column":55}},{"start":{"line":50,"column":58},"end":{"line":50,"column":74}}],"line":50},"5":{"loc":{"start":{"line":51,"column":14},"end":{"line":51,"column":79}},"type":"cond-expr","locations":[{"start":{"line":51,"column":38},"end":{"line":51,"column":57}},{"start":{"line":51,"column":60},"end":{"line":51,"column":79}}],"line":51},"6":{"loc":{"start":{"line":53,"column":10},"end":{"line":55,"column":48}},"type":"cond-expr","locations":[{"start":{"line":54,"column":14},"end":{"line":54,"column":48}},{"start":{"line":55,"column":14},"end":{"line":55,"column":48}}],"line":53},"7":{"loc":{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":65,"column":5}},{"start":{},"end":{}}],"line":62},"8":{"loc":{"start":{"line":63,"column":30},"end":{"line":63,"column":57}},"type":"binary-expr","locations":[{"start":{"line":63,"column":30},"end":{"line":63,"column":51}},{"start":{"line":63,"column":55},"end":{"line":63,"column":57}}],"line":63},"9":{"loc":{"start":{"line":73,"column":10},"end":{"line":73,"column":79}},"type":"cond-expr","locations":[{"start":{"line":73,"column":34},"end":{"line":73,"column":55}},{"start":{"line":73,"column":58},"end":{"line":73,"column":79}}],"line":73},"10":{"loc":{"start":{"line":82,"column":11},"end":{"line":86,"column":11}},"type":"cond-expr","locations":[{"start":{"line":83,"column":12},"end":{"line":83,"column":52}},{"start":{"line":85,"column":12},"end":{"line":85,"column":14}}],"line":82},"11":{"loc":{"start":{"line":90,"column":13},"end":{"line":92,"column":72}},"type":"cond-expr","locations":[{"start":{"line":91,"column":16},"end":{"line":91,"column":61}},{"start":{"line":92,"column":16},"end":{"line":92,"column":72}}],"line":90},"12":{"loc":{"start":{"line":97,"column":14},"end":{"line":99,"column":67}},"type":"cond-expr","locations":[{"start":{"line":98,"column":18},"end":{"line":98,"column":67}},{"start":{"line":99,"column":18},"end":{"line":99,"column":67}}],"line":97},"13":{"loc":{"start":{"line":109,"column":16},"end":{"line":111,"column":41}},"type":"cond-expr","locations":[{"start":{"line":110,"column":20},"end":{"line":110,"column":41}},{"start":{"line":111,"column":20},"end":{"line":111,"column":41}}],"line":109},"14":{"loc":{"start":{"line":119,"column":14},"end":{"line":121,"column":39}},"type":"cond-expr","locations":[{"start":{"line":120,"column":18},"end":{"line":120,"column":39}},{"start":{"line":121,"column":18},"end":{"line":121,"column":39}}],"line":119},"15":{"loc":{"start":{"line":129,"column":14},"end":{"line":129,"column":77}},"type":"cond-expr","locations":[{"start":{"line":129,"column":38},"end":{"line":129,"column":56}},{"start":{"line":129,"column":59},"end":{"line":129,"column":77}}],"line":129},"16":{"loc":{"start":{"line":134,"column":21},"end":{"line":134,"column":58}},"type":"cond-expr","locations":[{"start":{"line":134,"column":45},"end":{"line":134,"column":50}},{"start":{"line":134,"column":53},"end":{"line":134,"column":58}}],"line":134},"17":{"loc":{"start":{"line":140,"column":14},"end":{"line":142,"column":57}},"type":"cond-expr","locations":[{"start":{"line":141,"column":18},"end":{"line":141,"column":60}},{"start":{"line":142,"column":18},"end":{"line":142,"column":57}}],"line":140},"18":{"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}}],"line":156},"19":{"loc":{"start":{"line":176,"column":16},"end":{"line":178,"column":41}},"type":"cond-expr","locations":[{"start":{"line":177,"column":20},"end":{"line":177,"column":41}},{"start":{"line":178,"column":20},"end":{"line":178,"column":41}}],"line":176},"20":{"loc":{"start":{"line":185,"column":14},"end":{"line":185,"column":77}},"type":"cond-expr","locations":[{"start":{"line":185,"column":38},"end":{"line":185,"column":56}},{"start":{"line":185,"column":59},"end":{"line":185,"column":77}}],"line":185},"21":{"loc":{"start":{"line":191,"column":14},"end":{"line":193,"column":78}},"type":"cond-expr","locations":[{"start":{"line":192,"column":18},"end":{"line":192,"column":78}},{"start":{"line":193,"column":18},"end":{"line":193,"column":78}}],"line":191},"22":{"loc":{"start":{"line":203,"column":14},"end":{"line":203,"column":77}},"type":"cond-expr","locations":[{"start":{"line":203,"column":38},"end":{"line":203,"column":56}},{"start":{"line":203,"column":59},"end":{"line":203,"column":77}}],"line":203},"23":{"loc":{"start":{"line":214,"column":16},"end":{"line":216,"column":41}},"type":"cond-expr","locations":[{"start":{"line":215,"column":20},"end":{"line":215,"column":41}},{"start":{"line":216,"column":20},"end":{"line":216,"column":41}}],"line":214},"24":{"loc":{"start":{"line":223,"column":14},"end":{"line":223,"column":77}},"type":"cond-expr","locations":[{"start":{"line":223,"column":38},"end":{"line":223,"column":56}},{"start":{"line":223,"column":59},"end":{"line":223,"column":77}}],"line":223},"25":{"loc":{"start":{"line":230,"column":14},"end":{"line":232,"column":78}},"type":"cond-expr","locations":[{"start":{"line":231,"column":18},"end":{"line":231,"column":78}},{"start":{"line":232,"column":18},"end":{"line":232,"column":78}}],"line":230},"26":{"loc":{"start":{"line":242,"column":14},"end":{"line":242,"column":77}},"type":"cond-expr","locations":[{"start":{"line":242,"column":38},"end":{"line":242,"column":56}},{"start":{"line":242,"column":59},"end":{"line":242,"column":77}}],"line":242},"27":{"loc":{"start":{"line":255,"column":20},"end":{"line":259,"column":32}},"type":"cond-expr","locations":[{"start":{"line":256,"column":24},"end":{"line":257,"column":32}},{"start":{"line":258,"column":24},"end":{"line":259,"column":32}}],"line":255},"28":{"loc":{"start":{"line":268,"column":24},"end":{"line":270,"column":73}},"type":"cond-expr","locations":[{"start":{"line":269,"column":28},"end":{"line":269,"column":73}},{"start":{"line":270,"column":28},"end":{"line":270,"column":73}}],"line":268},"29":{"loc":{"start":{"line":273,"column":24},"end":{"line":275,"column":75}},"type":"binary-expr","locations":[{"start":{"line":273,"column":25},"end":{"line":275,"column":68}},{"start":{"line":275,"column":73},"end":{"line":275,"column":75}}],"line":273},"30":{"loc":{"start":{"line":273,"column":25},"end":{"line":275,"column":68}},"type":"cond-expr","locations":[{"start":{"line":274,"column":28},"end":{"line":274,"column":68}},{"start":{"line":275,"column":28},"end":{"line":275,"column":68}}],"line":273},"31":{"loc":{"start":{"line":284,"column":17},"end":{"line":287,"column":28}},"type":"cond-expr","locations":[{"start":{"line":285,"column":20},"end":{"line":285,"column":80}},{"start":{"line":286,"column":20},"end":{"line":287,"column":28}}],"line":284},"32":{"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}}],"line":293},"33":{"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}}],"line":298},"34":{"loc":{"start":{"line":303,"column":20},"end":{"line":305,"column":54}},"type":"cond-expr","locations":[{"start":{"line":304,"column":24},"end":{"line":304,"column":54}},{"start":{"line":305,"column":24},"end":{"line":305,"column":54}}],"line":303},"35":{"loc":{"start":{"line":311,"column":20},"end":{"line":315,"column":32}},"type":"cond-expr","locations":[{"start":{"line":312,"column":24},"end":{"line":313,"column":32}},{"start":{"line":314,"column":24},"end":{"line":315,"column":32}}],"line":311},"36":{"loc":{"start":{"line":318,"column":20},"end":{"line":322,"column":32}},"type":"cond-expr","locations":[{"start":{"line":319,"column":24},"end":{"line":320,"column":32}},{"start":{"line":321,"column":24},"end":{"line":322,"column":32}}],"line":318},"37":{"loc":{"start":{"line":325,"column":20},"end":{"line":327,"column":57}},"type":"cond-expr","locations":[{"start":{"line":326,"column":24},"end":{"line":326,"column":57}},{"start":{"line":327,"column":24},"end":{"line":327,"column":57}}],"line":325},"38":{"loc":{"start":{"line":330,"column":20},"end":{"line":332,"column":70}},"type":"cond-expr","locations":[{"start":{"line":331,"column":24},"end":{"line":331,"column":70}},{"start":{"line":332,"column":24},"end":{"line":332,"column":70}}],"line":330},"39":{"loc":{"start":{"line":335,"column":20},"end":{"line":339,"column":32}},"type":"cond-expr","locations":[{"start":{"line":336,"column":24},"end":{"line":337,"column":32}},{"start":{"line":338,"column":24},"end":{"line":339,"column":32}}],"line":335},"40":{"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}}],"line":347},"41":{"loc":{"start":{"line":356,"column":16},"end":{"line":358,"column":62}},"type":"cond-expr","locations":[{"start":{"line":357,"column":20},"end":{"line":357,"column":62}},{"start":{"line":358,"column":20},"end":{"line":358,"column":62}}],"line":356},"42":{"loc":{"start":{"line":361,"column":16},"end":{"line":363,"column":53}},"type":"cond-expr","locations":[{"start":{"line":362,"column":20},"end":{"line":362,"column":53}},{"start":{"line":363,"column":20},"end":{"line":363,"column":53}}],"line":361},"43":{"loc":{"start":{"line":368,"column":15},"end":{"line":370,"column":78}},"type":"cond-expr","locations":[{"start":{"line":369,"column":18},"end":{"line":369,"column":78}},{"start":{"line":370,"column":18},"end":{"line":370,"column":78}}],"line":368},"44":{"loc":{"start":{"line":373,"column":15},"end":{"line":375,"column":78}},"type":"cond-expr","locations":[{"start":{"line":374,"column":18},"end":{"line":374,"column":78}},{"start":{"line":375,"column":18},"end":{"line":375,"column":78}}],"line":373},"45":{"loc":{"start":{"line":378,"column":15},"end":{"line":380,"column":78}},"type":"cond-expr","locations":[{"start":{"line":379,"column":18},"end":{"line":379,"column":78}},{"start":{"line":380,"column":18},"end":{"line":380,"column":78}}],"line":378},"46":{"loc":{"start":{"line":383,"column":15},"end":{"line":385,"column":78}},"type":"cond-expr","locations":[{"start":{"line":384,"column":18},"end":{"line":384,"column":78}},{"start":{"line":385,"column":18},"end":{"line":385,"column":78}}],"line":383},"47":{"loc":{"start":{"line":389,"column":13},"end":{"line":391,"column":77}},"type":"cond-expr","locations":[{"start":{"line":390,"column":16},"end":{"line":390,"column":77}},{"start":{"line":391,"column":16},"end":{"line":391,"column":77}}],"line":389},"48":{"loc":{"start":{"line":398,"column":16},"end":{"line":400,"column":62}},"type":"cond-expr","locations":[{"start":{"line":399,"column":20},"end":{"line":399,"column":62}},{"start":{"line":400,"column":20},"end":{"line":400,"column":62}}],"line":398},"49":{"loc":{"start":{"line":403,"column":16},"end":{"line":405,"column":53}},"type":"cond-expr","locations":[{"start":{"line":404,"column":20},"end":{"line":404,"column":53}},{"start":{"line":405,"column":20},"end":{"line":405,"column":53}}],"line":403},"50":{"loc":{"start":{"line":411,"column":13},"end":{"line":413,"column":51}},"type":"cond-expr","locations":[{"start":{"line":412,"column":16},"end":{"line":412,"column":51}},{"start":{"line":413,"column":16},"end":{"line":413,"column":51}}],"line":411},"51":{"loc":{"start":{"line":422,"column":12},"end":{"line":424,"column":49}},"type":"cond-expr","locations":[{"start":{"line":423,"column":16},"end":{"line":423,"column":49}},{"start":{"line":424,"column":16},"end":{"line":424,"column":49}}],"line":422},"52":{"loc":{"start":{"line":427,"column":12},"end":{"line":429,"column":76}},"type":"cond-expr","locations":[{"start":{"line":428,"column":16},"end":{"line":428,"column":76}},{"start":{"line":429,"column":16},"end":{"line":429,"column":76}}],"line":427},"53":{"loc":{"start":{"line":434,"column":14},"end":{"line":436,"column":67}},"type":"cond-expr","locations":[{"start":{"line":435,"column":18},"end":{"line":435,"column":67}},{"start":{"line":436,"column":18},"end":{"line":436,"column":67}}],"line":434},"54":{"loc":{"start":{"line":438,"column":14},"end":{"line":440,"column":76}},"type":"cond-expr","locations":[{"start":{"line":439,"column":18},"end":{"line":439,"column":76}},{"start":{"line":440,"column":18},"end":{"line":440,"column":76}}],"line":438},"55":{"loc":{"start":{"line":447,"column":7},"end":{"line":451,"column":7}},"type":"cond-expr","locations":[{"start":{"line":448,"column":8},"end":{"line":448,"column":71}},{"start":{"line":450,"column":8},"end":{"line":450,"column":10}}],"line":447}},"s":{"0":1,"1":1,"2":1,"3":12,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":0,"11":1,"12":1,"13":0,"14":0,"15":0},"f":{"0":1,"1":12,"2":1,"3":1,"4":0},"b":{"0":[12,11,10,9],"1":[0,1],"2":[1,1],"3":[0,1],"4":[0,1],"5":[0,1],"6":[0,1],"7":[0,1],"8":[0,0],"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":[1,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]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a465ad977ed55d793cd1bc64fec740b69ecf555c"} +} diff --git a/main/coverage/lcov-report/base.css b/main/coverage/lcov-report/base.css new file mode 100644 index 0000000000..f418035b46 --- /dev/null +++ b/main/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/main/coverage/lcov-report/block-navigation.js b/main/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000000..cc12130231 --- /dev/null +++ b/main/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/main/coverage/lcov-report/components/atoms/ActionButton.js.html b/main/coverage/lcov-report/components/atoms/ActionButton.js.html new file mode 100644 index 0000000000..54c85fe27e --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/ActionButton.js.html @@ -0,0 +1,781 @@ + + + + + + Code coverage report for components/atoms/ActionButton.js + + + + + + + + + +
+
+

All files / components/atoms ActionButton.js

+
+ +
+ 100% + Statements + 15/15 +
+ + +
+ 84% + Branches + 42/50 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 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  +  +  +  +  +  +  +  +  +  +75x +  +75x +  +75x +  +75x +  +75x +  +  +75x +  +  +  +  +  +  +  +  +  +  +  +  +75x +75x +75x +67x +1x +1x +1x +  +  +  +  +  +75x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +17x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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 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 === "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) => {
+        Eif (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-sm w-fit text-base font-display ${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} 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-sm w-fit text-base font-display ${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} 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,
+ 
+  /**
+   * 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",
+  ]),
+ 
+  /**
+   * 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/main/coverage/lcov-report/components/atoms/ActionButton.stories.js.html b/main/coverage/lcov-report/components/atoms/ActionButton.stories.js.html new file mode 100644 index 0000000000..5555fed555 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +  +  +  +  +  +7x +  +1x +1x +1x +1x +1x +  +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/main/coverage/lcov-report/components/atoms/Alert.js.html b/main/coverage/lcov-report/components/atoms/Alert.js.html new file mode 100644 index 0000000000..cddc650cd8 --- /dev/null +++ b/main/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 + 2/2 +
+ + +
+ 50% + Branches + 2/4 +
+ + +
+ 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 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/atoms/Alert.stories.js.html b/main/coverage/lcov-report/components/atoms/Alert.stories.js.html new file mode 100644 index 0000000000..73a68960ed --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/atoms/Banner.js.html b/main/coverage/lcov-report/components/atoms/Banner.js.html new file mode 100644 index 0000000000..0bc4167e19 --- /dev/null +++ b/main/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 + 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  +  +  +  +  +  +  +4x +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/components/atoms/Banner.stories.js.html b/main/coverage/lcov-report/components/atoms/Banner.stories.js.html new file mode 100644 index 0000000000..053ea3869f --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/atoms/Breadcrumb.js.html b/main/coverage/lcov-report/components/atoms/Breadcrumb.js.html new file mode 100644 index 0000000000..451a0710b3 --- /dev/null +++ b/main/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 + 3/3 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +11x +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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 -ml-4 -my-4 ">
+        <li className="inline-block min-w-0 max-w-full truncate px-1 -my-4">
+          <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 -my-4 px-1"
+                >
+                  <span className="inline-block mr-4">
+                    <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/main/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html b/main/coverage/lcov-report/components/atoms/Breadcrumb.stories.js.html new file mode 100644 index 0000000000..3fcd99fa86 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +  +  +  +  +  +3x +  +1x +1x +  +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/main/coverage/lcov-report/components/atoms/CheckBox.js.html b/main/coverage/lcov-report/components/atoms/CheckBox.js.html new file mode 100644 index 0000000000..07014084d5 --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/CheckBox.js.html @@ -0,0 +1,472 @@ + + + + + + Code coverage report for components/atoms/CheckBox.js + + + + + + + + + +
+
+

All files / components/atoms CheckBox.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 71.42% + Branches + 10/14 +
+ + +
+ 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 +129 +130  +  +  +  +  +  +145x +  +  +  +  +145x +  +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * check box component for forms
+ */
+export function CheckBox(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.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={props.value}
+        type="checkbox"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : props.checked,
+            props.name,
+            props.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}
+      >
+        {props.showRequiredLabel ? (
+          <b className="text-error-border-red" aria-hidden="true">
+            *
+          </b>
+        ) : undefined}{" "}
+        {props.label} {<p className="sr-only">{props.expandState}</p>}
+      </label>
+    </div>
+  );
+}
+ 
+CheckBox.defaultProps = {
+  checked: false,
+  value: "true",
+  showRequiredLabel: false,
+};
+ 
+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/main/coverage/lcov-report/components/atoms/CheckBox.stories.js.html b/main/coverage/lcov-report/components/atoms/CheckBox.stories.js.html new file mode 100644 index 0000000000..b75f76075c --- /dev/null +++ b/main/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

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/atoms/DateModified.js.html b/main/coverage/lcov-report/components/atoms/DateModified.js.html new file mode 100644 index 0000000000..b621ee1d12 --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/DateModified.js.html @@ -0,0 +1,190 @@ + + + + + + Code coverage report for components/atoms/DateModified.js + + + + + + + + + +
+
+

All files / components/atoms DateModified.js

+
+ +
+ 100% + Statements + 9/9 +
+ + +
+ 100% + Branches + 6/6 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 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  +  +  +  +10x +  +10x +10x +4x +2x +2x +  +  +10x +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +4x +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+ 
+export function DateModified(props) {
+  const { t } = useTranslation("common");
+  // TeamCity build dates are received in the format yyyyMMdd
+  let dateFormatted = "NA";
+  if (props.date) {
+    if (!props.date.match(/(?=\S*['-])([a-zA-Z'-]+)/gm)) {
+      dateFormatted = props.date.replace(/^(.{4})(.{2})/gm, "$1-$2-");
+    } else dateFormatted = props.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.defaultProps = {
+  date: process.env.NEXT_PUBLIC_BUILD_DATE,
+};
+ 
+DateModified.propTypes = {
+  // Date string in format yyyyMMdd
+  date: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/atoms/DateModified.stories.js.html b/main/coverage/lcov-report/components/atoms/DateModified.stories.js.html new file mode 100644 index 0000000000..67a148b2ed --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +3x +  +1x +  +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/main/coverage/lcov-report/components/atoms/ErrorLabel.js.html b/main/coverage/lcov-report/components/atoms/ErrorLabel.js.html new file mode 100644 index 0000000000..36d992215a --- /dev/null +++ b/main/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 + 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 +24  +  +  +  +  +  +5x +  +  +  +  +  +  +  +  +13x +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html b/main/coverage/lcov-report/components/atoms/ErrorLabel.stories.js.html new file mode 100644 index 0000000000..ad7344db2a --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +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/main/coverage/lcov-report/components/atoms/HTMList.js.html b/main/coverage/lcov-report/components/atoms/HTMList.js.html new file mode 100644 index 0000000000..6d9cfaa67c --- /dev/null +++ b/main/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 + 6/6 +
+ + +
+ 100% + Branches + 3/3 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 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  +  +  +7x +7x +  +18x +  +13x +  +  +  +  +7x +  +  +  +  +  +  +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/main/coverage/lcov-report/components/atoms/MultiTextField.js.html b/main/coverage/lcov-report/components/atoms/MultiTextField.js.html new file mode 100644 index 0000000000..b0b487fe2b --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/MultiTextField.js.html @@ -0,0 +1,523 @@ + + + + + + Code coverage report for components/atoms/MultiTextField.js + + + + + + + + + +
+
+

All files / components/atoms MultiTextField.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 60% + Branches + 6/10 +
+ + +
+ 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 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147  +  +  +  +  +  +  +  +4x +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * multi line text field
+ */
+export function MultiTextField(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={props.spellCheck}
+        wrap={props.wrap}
+        required={props.required}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-describedby={props.describedby}
+      >
+        {props.value}
+      </textarea>
+    </div>
+  );
+}
+ 
+MultiTextField.defaultProps = {
+  spellCheck: true,
+  wrap: "soft",
+};
+ 
+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/main/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html b/main/coverage/lcov-report/components/atoms/MultiTextField.stories.js.html new file mode 100644 index 0000000000..b0e11f453f --- /dev/null +++ b/main/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

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +1x +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/main/coverage/lcov-report/components/atoms/ProjectInfo.js.html b/main/coverage/lcov-report/components/atoms/ProjectInfo.js.html new file mode 100644 index 0000000000..15e0e1473b --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/ProjectInfo.js.html @@ -0,0 +1,241 @@ + + + + + + Code coverage report for components/atoms/ProjectInfo.js + + + + + + + + + +
+
+

All files / components/atoms ProjectInfo.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 75% + Branches + 3/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 +52 +53  +  +  +  +  +  +3x +3x +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { useTranslation } from "next-i18next";
+import { useState } from "react";
+import { HelpIcon } from "@dts-stn/service-canada-design-system";
+ 
+export function ProjectInfo(props) {
+  const { t } = useTranslation("common");
+  const [showInfo, setShowInfo] = useState(false);
+ 
+  return (
+    <>
+      <div className="grid grid-cols-1 xl:grid-cols-3 gap-x-2 text-[20px]">
+        <strong className="font-body col-span-1">{props.termStarted}</strong>
+        <p className="col-span-2">
+          {!props.dateStarted ? undefined : props.dateStarted.substring(0, 10)}
+        </p>
+        <strong className="font-body col-span-1">{props.termEnded}</strong>
+        <p className="col-span-2">
+          {!props.dateEnded ? undefined : props.dateEnded.substring(0, 10)}
+        </p>
+        <strong className="font-body 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 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/main/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html b/main/coverage/lcov-report/components/atoms/ProjectInfo.stories.js.html new file mode 100644 index 0000000000..8a003d12a1 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +2x +  +1x +  +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 status",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/atoms/RadioButton.js.html b/main/coverage/lcov-report/components/atoms/RadioButton.js.html new file mode 100644 index 0000000000..c0dc73a1ea --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/RadioButton.js.html @@ -0,0 +1,430 @@ + + + + + + Code coverage report for components/atoms/RadioButton.js + + + + + + + + + +
+
+

All files / components/atoms RadioButton.js

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 83.33% + Branches + 10/12 +
+ + +
+ 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 +112 +113 +114 +115 +116  +  +  +  +  +  +16x +  +  +  +  +  +  +16x +  +  +  +  +  +  +  +  +3x +  +  +1x +1x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * Radio input styled as a button
+ **/
+export function RadioButton(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.checked,
+      }
+    : {
+        defaultChecked: props.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) => {
+          Eif (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.defaultProps = {
+  checked: false,
+};
+ 
+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/main/coverage/lcov-report/components/atoms/RadioButton.stories.js.html b/main/coverage/lcov-report/components/atoms/RadioButton.stories.js.html new file mode 100644 index 0000000000..4d7e46b107 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +  +  +  +  +  +  +7x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/atoms/RadioField.js.html b/main/coverage/lcov-report/components/atoms/RadioField.js.html new file mode 100644 index 0000000000..bb8f05971f --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/RadioField.js.html @@ -0,0 +1,427 @@ + + + + + + Code coverage report for components/atoms/RadioField.js + + + + + + + + + +
+
+

All files / components/atoms RadioField.js

+
+ +
+ 83.33% + Statements + 5/6 +
+ + +
+ 50% + Branches + 5/10 +
+ + +
+ 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 +110 +111 +112 +113 +114 +115  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +9x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+ 
+/**
+ * radio field
+ */
+export function RadioField(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        checked: props.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={props.value}
+        type="radio"
+        onChange={(e) =>
+          props.onChange(
+            props.uncontrolled ? !e.currentTarget.checked : props.checked,
+            props.name,
+            props.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(props.checked, props.name, props.value)}
+      >
+        {props.label}
+      </label>
+    </div>
+  );
+}
+ 
+RadioField.defaultProps = {
+  checked: false,
+  value: "true",
+};
+ 
+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/main/coverage/lcov-report/components/atoms/RadioField.stories.js.html b/main/coverage/lcov-report/components/atoms/RadioField.stories.js.html new file mode 100644 index 0000000000..68e3f5a467 --- /dev/null +++ b/main/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

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/atoms/SearchBar.js.html b/main/coverage/lcov-report/components/atoms/SearchBar.js.html new file mode 100644 index 0000000000..e3895bf8d1 --- /dev/null +++ b/main/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 + 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 +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  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/atoms/SearchBar.stories.js.html b/main/coverage/lcov-report/components/atoms/SearchBar.stories.js.html new file mode 100644 index 0000000000..8a62598195 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/atoms/SelectField.js.html b/main/coverage/lcov-report/components/atoms/SelectField.js.html new file mode 100644 index 0000000000..8ff7d80bce --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/SelectField.js.html @@ -0,0 +1,583 @@ + + + + + + Code coverage report for components/atoms/SelectField.js + + + + + + + + + +
+
+

All files / components/atoms SelectField.js

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 50% + Branches + 9/18 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 90.9% + Lines + 10/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 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167  +  +  +  +  +2x +  +2x +  +  +  +  +  +2x +2x +6x +6x +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+export function SelectField(props) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.value,
+      }
+    : {};
+ 
+  Eif (!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.defaultProps = {
+  value: "",
+};
+ 
+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/main/coverage/lcov-report/components/atoms/SelectField.stories.js.html b/main/coverage/lcov-report/components/atoms/SelectField.stories.js.html new file mode 100644 index 0000000000..b026126984 --- /dev/null +++ b/main/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

+
+ +
+ 80% + Statements + 4/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 75% + Lines + 3/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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +1x +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/main/coverage/lcov-report/components/atoms/TableOfContents.js.html b/main/coverage/lcov-report/components/atoms/TableOfContents.js.html new file mode 100644 index 0000000000..0d146b1452 --- /dev/null +++ b/main/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 + 3/3 +
+ + +
+ 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 +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  +  +  +2x +  +  +  +  +  +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/main/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html b/main/coverage/lcov-report/components/atoms/TableOfContents.stories.js.html new file mode 100644 index 0000000000..11335921a7 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/atoms/TextField.js.html b/main/coverage/lcov-report/components/atoms/TextField.js.html new file mode 100644 index 0000000000..e7e65aa370 --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/TextField.js.html @@ -0,0 +1,613 @@ + + + + + + Code coverage report for components/atoms/TextField.js + + + + + + + + + +
+
+

All files / components/atoms TextField.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 61.11% + Branches + 11/18 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +6x +  +6x +  +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ErrorLabel } from "./ErrorLabel";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * text field component
+ */
+export function TextField(props) {
+  const { t } = useTranslation("common");
+ 
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.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={props.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.defaultProps = {
+  value: "",
+  type: "text",
+};
+ 
+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/main/coverage/lcov-report/components/atoms/TextField.stories.js.html b/main/coverage/lcov-report/components/atoms/TextField.stories.js.html new file mode 100644 index 0000000000..ada058235d --- /dev/null +++ b/main/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

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 87.5% + Lines + 7/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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/atoms/index.html b/main/coverage/lcov-report/components/atoms/index.html new file mode 100644 index 0000000000..130417c1aa --- /dev/null +++ b/main/coverage/lcov-report/components/atoms/index.html @@ -0,0 +1,566 @@ + + + + + + Code coverage report for components/atoms + + + + + + + + + +
+
+

All files components/atoms

+
+ +
+ 95.83% + Statements + 184/192 +
+ + +
+ 72.18% + Branches + 109/151 +
+ + +
+ 86.79% + Functions + 46/53 +
+ + +
+ 95.48% + Lines + 169/177 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ActionButton.js +
+
100%15/1584%42/50100%3/3100%15/15
ActionButton.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
Alert.js +
+
100%2/250%2/4100%1/1100%2/2
Alert.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Banner.js +
+
100%3/3100%0/0100%1/1100%3/3
Banner.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Breadcrumb.js +
+
100%3/3100%2/2100%2/2100%3/3
Breadcrumb.stories.js +
+
100%5/5100%0/0100%1/1100%4/4
CheckBox.js +
+
100%5/571.42%10/14100%2/2100%5/5
CheckBox.stories.js +
+
90.9%10/11100%0/050%1/290%9/10
DateModified.js +
+
100%9/9100%6/6100%1/1100%9/9
DateModified.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
ErrorLabel.js +
+
100%2/2100%0/0100%1/1100%2/2
ErrorLabel.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
HTMList.js +
+
100%6/6100%3/3100%4/4100%6/6
MultiTextField.js +
+
100%5/560%6/10100%2/2100%5/5
MultiTextField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
ProjectInfo.js +
+
100%4/475%3/4100%1/1100%4/4
ProjectInfo.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
RadioButton.js +
+
90%9/1083.33%10/12100%3/390%9/10
RadioButton.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
RadioField.js +
+
83.33%5/650%5/1066.66%2/383.33%5/6
RadioField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
SearchBar.js +
+
100%2/2100%0/0100%1/1100%2/2
SearchBar.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
SelectField.js +
+
90.9%10/1150%9/1875%3/490.9%10/11
SelectField.stories.js +
+
80%4/5100%0/050%1/275%3/4
TableOfContents.js +
+
100%3/3100%0/0100%2/2100%3/3
TableOfContents.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
TextField.js +
+
100%6/661.11%11/18100%2/2100%6/6
TextField.stories.js +
+
88.88%8/9100%0/050%1/287.5%7/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/index.html b/main/coverage/lcov-report/components/index.html new file mode 100644 index 0000000000..9dc088a7ac --- /dev/null +++ b/main/coverage/lcov-report/components/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for components + + + + + + + + + +
+
+

All files components

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

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/00%0/00%0/00%0/0
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/index.js.html b/main/coverage/lcov-report/components/index.js.html new file mode 100644 index 0000000000..5d42f1f21d --- /dev/null +++ b/main/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/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ 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/main/coverage/lcov-report/components/molecules/CallToAction.js.html b/main/coverage/lcov-report/components/molecules/CallToAction.js.html new file mode 100644 index 0000000000..fc42ced47e --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/CallToAction.js.html @@ -0,0 +1,445 @@ + + + + + + Code coverage report for components/molecules/CallToAction.js + + + + + + + + + +
+
+

All files / components/molecules CallToAction.js

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 62.5% + Branches + 5/8 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+import Link from "next/link";
+import { useTranslation } from "next-i18next";
+ 
+/**
+ * A section that will have a title, small description, and a link to some action we want to user to make
+ */
+export function CallToAction(props) {
+  const { t } = useTranslation("common");
+  return (
+    <div className="bg-[#ebf2fc] text-[#333] my-12">
+      <div className="layout-container pb-10 pt-10 text-sm md:text-base">
+        <div>
+          <div className="flex flex-col">
+            <div className="flex -my-2">
+              <img
+                className="mb-2 -ml-4"
+                src="/cta_icon.svg"
+                alt=""
+                width="60"
+                height="53"
+              />
+              <h3 className="lg:text-h1 ml-2">
+                <>{props.title}</>
+              </h3>
+            </div>
+            <aside className="pt-3 border-l-2 ml-2 lg:ml-3.5 border-custom-blue-blue xl:w-3/4">
+              {props.description ? (
+                <div className="pl-4">
+                  <p className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line">
+                    {props.description}
+                  </p>
+                  <p className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line">
+                    {props.disclaimer}
+                  </p>
+                </div>
+              ) : (
+                <div
+                  className="text-base lg:text-p ml-6 pb-3 whitespace-pre-line"
+                  dangerouslySetInnerHTML={{ __html: props.html }}
+                />
+              )}
+              <div className="ml-6">
+                <p className="flex mb-4 pl-4 text-center">
+                  <ActionButton
+                    id="become-a-participant-btn"
+                    custom={`py-1.5 px-3 rounded text-white text-base lg:text-p font-display bg-custom-blue-dark hover:bg-custom-blue-light border border-custom-blue-darker active:bg-custom-blue-darker hover:ring-2 hover:ring-white`}
+                    className=""
+                    href={props.href}
+                    text={props.hrefText}
+                    expandIcon={
+                      props.feedbackActive ? (
+                        <img
+                          className="px-2"
+                          src="/feedback-icon-white.svg"
+                          alt=""
+                        />
+                      ) : undefined
+                    }
+                    onClick={props.feedbackActive ? props.clicked : undefined}
+                    ariaExpanded={props.ariaExpanded}
+                  />
+                </p>
+                {props.showPrivacyLink && (
+                  <Link href={t("privacyRedirect")} locale={props.lang}>
+                    <a className="pl-4 text-base lg:text-p underline flex xl:inline lg:mr-10">
+                      {t("privacyLinkText")}
+                    </a>
+                  </Link>
+                )}
+              </div>
+            </aside>
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+CallToAction.propTypes = {
+  /**
+   * title of the call to action
+   */
+  title: PropTypes.string.isRequired,
+ 
+  /**
+   * a short description about what the call to action is about - string format
+   */
+  description: PropTypes.string,
+  /**
+   * a short disclaimer after the description - ie. for a sign up banner an explanation that participation is voluntary
+   */
+  disclaimer: PropTypes.string,
+ 
+  /**
+   * a short description about what the call to action is about - html format
+   */
+  html: PropTypes.string,
+ 
+  /**
+   * the url to the action
+   */
+  href: PropTypes.string.isRequired,
+ 
+  /**
+   * url text to be displayed
+   */
+  hrefText: PropTypes.string.isRequired,
+ 
+  /**
+   * Aria expanded state
+   */
+  ariaExpanded: PropTypes.string,
+ 
+  /**
+   * Show or hide privacy link
+   */
+  showPrivacyLink: PropTypes.bool,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/molecules/CallToAction.stories.js.html b/main/coverage/lcov-report/components/molecules/CallToAction.stories.js.html new file mode 100644 index 0000000000..bb909ec72d --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/CallToAction.stories.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for components/molecules/CallToAction.stories.js + + + + + + + + + +
+
+

All files / components/molecules CallToAction.stories.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 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  +  +  +  +  +  +  +  +3x +  +1x +1x +1x +  +  +  +  +  +  +1x +  +  +  +  +  + 
import React from "react";
+import { CallToAction } from "./CallToAction";
+ 
+export default {
+  title: "Components/Molecules/CallToAction",
+  component: CallToAction,
+};
+ 
+const Template = (args) => <CallToAction {...args} />;
+ 
+export const Primary = Template.bind({});
+export const Secondary = Template.bind({});
+Primary.args = {
+  title: "the title",
+  description: "a description that should be short and concise",
+  href: "#",
+  hrefText: "the link text",
+};
+ 
+Secondary.args = {
+  title: "the title",
+  html: "<h1>Title</h1><p>Text</p>",
+  href: "#",
+  hrefText: "the link text",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/molecules/Card.js.html b/main/coverage/lcov-report/components/molecules/Card.js.html new file mode 100644 index 0000000000..57fa747d8f --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/Card.js.html @@ -0,0 +1,547 @@ + + + + + + Code coverage report for components/molecules/Card.js + + + + + + + + + +
+
+

All files / components/molecules Card.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 64.28% + Branches + 9/14 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +3x +5x +  +  +  +  +  +  +5x +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from "react";
+import PropTypes from "prop-types";
+import Link from "next/link";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * 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={`group card-shadow border border-custom-gray-border rounded-md pb-4 hover:cursor-pointer ${
+          "border-" + tagColour
+        }`}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+      >
+        {props.showImage ? (
+          <div className="h-80 flex justify-center">
+            <img
+              src={props.imgSrc}
+              alt={props.imgAlt}
+              className="object-contain rounded-md"
+            />
+          </div>
+        ) : (
+          ""
+        )}
+        <div className="flex">
+          <p className="block font-display text-lg text-custom-blue-projects-link font-bold underline underline-offset-4 my-1 py-2 px-6 items-center group-hover:no-underline group-hover:text-custom-blue-projects-link-hover">
+            {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>
+        ) : (
+          ""
+        )}
+        <p className="text-custom-gray-text mx-6 leading-30px text-lg">
+          {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.isRequired,
+ 
+  /**
+   * the test id for unit tests
+   */
+  dataTestId: PropTypes.string,
+ 
+  /**
+   * the test id for cypress test
+   */
+  dataCy: PropTypes.string,
+ 
+  /**
+   * 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/main/coverage/lcov-report/components/molecules/Card.stories.js.html b/main/coverage/lcov-report/components/molecules/Card.stories.js.html new file mode 100644 index 0000000000..3faa84bf2c --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 12/12 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +  +  +  +  +  +  +  +3x +  +1x +1x +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/main/coverage/lcov-report/components/molecules/CopyToClipboard.js.html b/main/coverage/lcov-report/components/molecules/CopyToClipboard.js.html new file mode 100644 index 0000000000..e51b7bc2a9 --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/CopyToClipboard.js.html @@ -0,0 +1,493 @@ + + + + + + Code coverage report for components/molecules/CopyToClipboard.js + + + + + + + + + +
+
+

All files / components/molecules CopyToClipboard.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 50% + Branches + 1/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 +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  +  +  +  +  +4x +  +  +  +  +4x +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import Clipboard from "react-copy-to-clipboard";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+export function CopyToClipboard(props) {
+  const ifControlledProps = !props.uncontrolled
+    ? {
+        value: props.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={props.type}
+        onChange={(e) => props.onChange(e.currentTarget.value)}
+        {...ifControlledProps}
+        data-testid={props.dataTestId}
+        data-cy={props.dataCy}
+        aria-label={props.aria_label}
+      />
+      <Clipboard text={props.value}>
+        <ActionButton
+          id={props.buttonId}
+          className={`w-full ${props.buttonStyle}`}
+          onClick={props.onClick}
+        >
+          {props.buttonText}
+        </ActionButton>
+      </Clipboard>
+    </div>
+  );
+}
+ 
+CopyToClipboard.defaultProps = {
+  value: "",
+  type: "text",
+};
+ 
+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/main/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html b/main/coverage/lcov-report/components/molecules/CopyToClipboard.stories.js.html new file mode 100644 index 0000000000..04b272ceb1 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/molecules/Details.js.html b/main/coverage/lcov-report/components/molecules/Details.js.html new file mode 100644 index 0000000000..286fab4404 --- /dev/null +++ b/main/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 + 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 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45  +  +  +  +  +  +22x +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/components/molecules/Details.stories.js.html b/main/coverage/lcov-report/components/molecules/Details.stories.js.html new file mode 100644 index 0000000000..2156d6c7ce --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +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/main/coverage/lcov-report/components/molecules/ErrorBox.js.html b/main/coverage/lcov-report/components/molecules/ErrorBox.js.html new file mode 100644 index 0000000000..5d8b0ed070 --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/ErrorBox.js.html @@ -0,0 +1,292 @@ + + + + + + Code coverage report for components/molecules/ErrorBox.js + + + + + + + + + +
+
+

All files / components/molecules ErrorBox.js

+
+ +
+ 100% + Statements + 5/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 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  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +9x +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +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(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"
+      >
+        {props.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.defaultProps = {
+  errors: [],
+};
+ 
+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/main/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html b/main/coverage/lcov-report/components/molecules/ErrorBox.stories.js.html new file mode 100644 index 0000000000..8b0786f0c7 --- /dev/null +++ b/main/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

+
+ +
+ 80% + Statements + 4/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 75% + Lines + 3/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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +1x +  +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/main/coverage/lcov-report/components/molecules/FeedbackWidget.js.html b/main/coverage/lcov-report/components/molecules/FeedbackWidget.js.html new file mode 100644 index 0000000000..657e3f619b --- /dev/null +++ b/main/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

+
+ +
+ 66.66% + Statements + 34/51 +
+ + +
+ 40.9% + Branches + 9/22 +
+ + +
+ 50% + Functions + 5/10 +
+ + +
+ 66.66% + Lines + 34/51 +
+ + +
+

+ 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  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +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 +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html b/main/coverage/lcov-report/components/molecules/FeedbackWidget.stories.js.html new file mode 100644 index 0000000000..2755d6f12b --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +4x +  +1x +  +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/main/coverage/lcov-report/components/molecules/Filter.js.html b/main/coverage/lcov-report/components/molecules/Filter.js.html new file mode 100644 index 0000000000..c453485901 --- /dev/null +++ b/main/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 + 3/3 +
+ + +
+ 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 +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  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/molecules/Filter.stories.js.html b/main/coverage/lcov-report/components/molecules/Filter.stories.js.html new file mode 100644 index 0000000000..9e4fb16108 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +3x +  +1x +  +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/main/coverage/lcov-report/components/molecules/List.js.html b/main/coverage/lcov-report/components/molecules/List.js.html new file mode 100644 index 0000000000..0321bbb37f --- /dev/null +++ b/main/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 + 7/7 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 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  +  +  +  +  +  +2x +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/main/coverage/lcov-report/components/molecules/List.stories.js.html b/main/coverage/lcov-report/components/molecules/List.stories.js.html new file mode 100644 index 0000000000..b9c956df13 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/molecules/Menu.js.html b/main/coverage/lcov-report/components/molecules/Menu.js.html new file mode 100644 index 0000000000..fdeba5bfb9 --- /dev/null +++ b/main/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

+
+ +
+ 90% + Statements + 9/10 +
+ + +
+ 60% + Branches + 6/10 +
+ + +
+ 75% + Functions + 3/4 +
+ + +
+ 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 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/molecules/Menu.stories.js.html b/main/coverage/lcov-report/components/molecules/Menu.stories.js.html new file mode 100644 index 0000000000..673a9b2c95 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +3x +  +1x +  +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/main/coverage/lcov-report/components/molecules/OptionalListField.js.html b/main/coverage/lcov-report/components/molecules/OptionalListField.js.html new file mode 100644 index 0000000000..c576523b45 --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/OptionalListField.js.html @@ -0,0 +1,541 @@ + + + + + + Code coverage report for components/molecules/OptionalListField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalListField.js

+
+ +
+ 75% + Statements + 12/16 +
+ + +
+ 73.68% + Branches + 14/19 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 75% + Lines + 12/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 +145 +146 +147 +148 +149 +150 +151 +152 +153  +  +  +  +  +  +  +  +  +5x +5x +1x +  +  +1x +  +  +1x +  +  +  +5x +5x +  +  +5x +5x +  +  +  +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +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(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;
+    }
+    Eif (b.props.label < a.props.label) {
+      return 1;
+    }
+    return 0;
+  });
+  return (
+    <>
+      {props.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.defaultProps = {
+  controlType: "checkbox",
+};
+ 
+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/main/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html b/main/coverage/lcov-report/components/molecules/OptionalListField.stories.js.html new file mode 100644 index 0000000000..4cba6db167 --- /dev/null +++ b/main/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

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/molecules/OptionalTextField.js.html b/main/coverage/lcov-report/components/molecules/OptionalTextField.js.html new file mode 100644 index 0000000000..dc8158d7eb --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/OptionalTextField.js.html @@ -0,0 +1,877 @@ + + + + + + Code coverage report for components/molecules/OptionalTextField.js + + + + + + + + + +
+
+

All files / components/molecules OptionalTextField.js

+
+ +
+ 78.57% + Statements + 11/14 +
+ + +
+ 80.95% + Branches + 17/21 +
+ + +
+ 50% + Functions + 2/4 +
+ + +
+ 78.57% + Lines + 11/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 +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  +  +  +  +  +  +  +  +  +  +  +  +132x +132x +132x +132x +3x +  +  +  +3x +3x +  +  +3x +  +  +  +132x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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(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 (
+    <>
+      {props.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}
+        />
+      )}
+      {props.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.defaultProps = {
+  controlType: "checkbox",
+};
+ 
+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/main/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html b/main/coverage/lcov-report/components/molecules/OptionalTextField.stories.js.html new file mode 100644 index 0000000000..ff5290e181 --- /dev/null +++ b/main/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

+
+ +
+ 92.3% + Statements + 12/13 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +1x +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/main/coverage/lcov-report/components/molecules/Quote.js.html b/main/coverage/lcov-report/components/molecules/Quote.js.html new file mode 100644 index 0000000000..fb70fb28fe --- /dev/null +++ b/main/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 + 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 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/molecules/Quote.stories.js.html b/main/coverage/lcov-report/components/molecules/Quote.stories.js.html new file mode 100644 index 0000000000..abe05f760f --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +  +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/main/coverage/lcov-report/components/molecules/TextButtonField.js.html b/main/coverage/lcov-report/components/molecules/TextButtonField.js.html new file mode 100644 index 0000000000..c1beb114bf --- /dev/null +++ b/main/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 + 4/4 +
+ + +
+ 75% + Branches + 6/8 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +6x +5x +  +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html b/main/coverage/lcov-report/components/molecules/TextButtonField.stories.js.html new file mode 100644 index 0000000000..abe774ce97 --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 10/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 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  +  +  +  +  +  +  +  +6x +  +1x +1x +1x +1x +  +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/main/coverage/lcov-report/components/molecules/index.html b/main/coverage/lcov-report/components/molecules/index.html new file mode 100644 index 0000000000..eafec317e2 --- /dev/null +++ b/main/coverage/lcov-report/components/molecules/index.html @@ -0,0 +1,491 @@ + + + + + + Code coverage report for components/molecules + + + + + + + + + +
+
+

All files components/molecules

+
+ +
+ 86.91% + Statements + 186/214 +
+ + +
+ 65.09% + Branches + 69/106 +
+ + +
+ 78.43% + Functions + 40/51 +
+ + +
+ 86% + Lines + 172/200 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
CallToAction.js +
+
100%3/362.5%5/8100%1/1100%3/3
CallToAction.stories.js +
+
100%6/6100%0/0100%1/1100%5/5
Card.js +
+
100%5/564.28%9/14100%1/1100%5/5
Card.stories.js +
+
100%12/12100%0/0100%1/1100%11/11
CopyToClipboard.js +
+
100%5/550%1/2100%2/2100%5/5
CopyToClipboard.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Details.js +
+
100%2/2100%0/0100%1/1100%2/2
Details.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
ErrorBox.js +
+
100%5/5100%0/0100%3/3100%5/5
ErrorBox.stories.js +
+
80%4/5100%0/050%1/275%3/4
FeedbackWidget.js +
+
66.66%34/5140.9%9/2250%5/1066.66%34/51
FeedbackWidget.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Filter.js +
+
100%3/3100%0/0100%2/2100%3/3
Filter.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
List.js +
+
100%7/7100%2/2100%2/2100%6/6
List.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Menu.js +
+
90%9/1060%6/1075%3/490%9/10
Menu.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
OptionalListField.js +
+
75%12/1673.68%14/19100%3/375%12/16
OptionalListField.stories.js +
+
92.3%12/13100%0/050%1/291.66%11/12
OptionalTextField.js +
+
78.57%11/1480.95%17/2150%2/478.57%11/14
OptionalTextField.stories.js +
+
92.3%12/13100%0/050%1/291.66%11/12
Quote.js +
+
100%2/2100%0/0100%1/1100%2/2
Quote.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
TextButtonField.js +
+
100%4/475%6/8100%1/1100%4/4
TextButtonField.stories.js +
+
100%10/10100%0/0100%1/1100%9/9
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/organisms/Footer.js.html b/main/coverage/lcov-report/components/organisms/Footer.js.html new file mode 100644 index 0000000000..c2898b460d --- /dev/null +++ b/main/coverage/lcov-report/components/organisms/Footer.js.html @@ -0,0 +1,439 @@ + + + + + + Code coverage report for components/organisms/Footer.js + + + + + + + + + +
+
+

All files / components/organisms Footer.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +8x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { ActionButton } from "../atoms/ActionButton";
+ 
+/**
+ * footer element for all pages
+ */
+ 
+export function Footer(props) {
+  return (
+    <div className="w-full">
+      <div className="w-full h-auto footerBackground bg-custom-blue-dark">
+        <div
+          className="w-full py-7 layout-container"
+          role="navigation"
+          aria-labelledby="footerNav1"
+        >
+          <h3 className="sr-only" id="footerNav1">
+            {props.footerNav1}
+          </h3>
+          <ul className="flex flex-col text-xs lg:grid lg:grid-cols-2 xl:grid xl:grid-cols-3 lg:gap-1 -ml-4">
+            {" "}
+            {props.footerBoxLinks.map((value, index) => {
+              return (
+                <li
+                  key={index}
+                  className="text-xs text-white w-64 lg:w-80 my-2.5 hover:underline list-none"
+                >
+                  <a className="font-body" href={value.footerBoxlink}>
+                    {value.footerBoxLinkText}
+                  </a>
+                </li>
+              );
+            })}
+          </ul>
+        </div>
+      </div>
+      <div className="w-full h-full bg-footer-background-color pb-4">
+        <div className="h-auto bg-footer-white pt-5 layout-container flex flex-col xl:flex xl:flex-row md:justify-between">
+          <div
+            className="mt-3.5 xl:mt-5"
+            role="navigation"
+            aria-labelledby="footerNav2"
+          >
+            <h3 className="sr-only" id="footerNav2">
+              {props.footerNav2}
+            </h3>
+            <ul className="flex flex-col md:grid md:grid-cols-2 xl:flex lg:flex-row -ml-4">
+              {props.links.map((value, index) => {
+                return (
+                  <li
+                    key={index}
+                    className={
+                      index === 0
+                        ? "lg:mb-4 mb-5 lg:list-inside list-disc xl:list-none text-xxs"
+                        : "lg:mb-4 mb-5 lg:list-inside list-disc text-xxs"
+                    }
+                  >
+                    <a
+                      className="text-xs font-body hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                      data-cy="social-media-link"
+                      href={value.link}
+                    >
+                      {value.linkText}
+                    </a>
+                  </li>
+                );
+              })}
+            </ul>
+          </div>
+          <div className="flex items-center justify-between">
+            <ActionButton
+              id="TopOfPageButton"
+              href="#"
+              custom="text-left w-32 flex flex-col lg:hidden"
+              text={props.topOfPage}
+              icon="icon-up-caret"
+              iconEnd
+            />
+            <span className="flex relative footer-logo">
+              <img src={props.footerLogoImage} alt={props.footerLogoAltText} />
+            </span>
+          </div>
+        </div>
+      </div>
+    </div>
+  );
+}
+ 
+Footer.propTypes = {
+  /**
+   * array of objects containing the link text and link
+   */
+  footerBoxLinks: PropTypes.arrayOf(
+    PropTypes.shape({
+      footerBoxlink: PropTypes.string.isRequired,
+      footerBoxLinkText: PropTypes.string.isRequired,
+    })
+  ),
+  /**
+   * array of objects containing the link text and link
+   */
+  links: PropTypes.arrayOf(
+    PropTypes.shape({
+      link: PropTypes.string.isRequired,
+      linkText: PropTypes.string.isRequired,
+    })
+  ),
+ 
+  /**
+   * alt text for footer canada-ca logo
+   */
+  footerLogoAltText: PropTypes.string.isRequired,
+ 
+  /**
+   * image path for footer logo
+   */
+  footerLogoImage: PropTypes.string.isRequired,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/organisms/Footer.stories.js.html b/main/coverage/lcov-report/components/organisms/Footer.stories.js.html new file mode 100644 index 0000000000..f1df94a846 --- /dev/null +++ b/main/coverage/lcov-report/components/organisms/Footer.stories.js.html @@ -0,0 +1,349 @@ + + + + + + Code coverage report for components/organisms/Footer.stories.js + + + + + + + + + +
+
+

All files / components/organisms Footer.stories.js

+
+ +
+ 100% + Statements + 4/4 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +1x +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Footer } from "./Footer";
+import logo from "../../public/wmms-blk.svg";
+ 
+export default {
+  title: "Components/Organisms/Footer",
+  component: Footer,
+};
+ 
+const Template = (args) => <Footer {...args} />;
+ 
+export const Primary = Template.bind({});
+Primary.args = {
+  links: [
+    {
+      link: "https://some-link-1.com",
+      linkText: "some-link-1",
+    },
+    {
+      link: "https://some-link-2.com",
+      linkText: "some-lin-2",
+    },
+    {
+      link: "https://some-link-3.com",
+      linkText: "some-link-3",
+    },
+    {
+      link: "https://some-link-4.com",
+      linkText: "some-link-4",
+    },
+    {
+      link: "https://some-link-5.com",
+      linkText: "some-link-5",
+    },
+    {
+      link: "https://some-link-6.com",
+      linkText: "some-link-6",
+    },
+    {
+      link: "https://some-link-7.com",
+      linkText: "some-link-7",
+    },
+    {
+      link: "https://some-link-8.com",
+      linkText: "some-link-8",
+    },
+  ],
+ 
+  footerBoxLinks: [
+    {
+      footerBoxlink: "https://some-link-11.com",
+      footerBoxLinkText: "some-link-11",
+    },
+    {
+      footerBoxlink: "https://some-link-22.com",
+      footerBoxLinkText: "some-lin-22",
+    },
+    {
+      footerBoxlink: "https://some-link-33.com",
+      footerBoxLinkText: "some-link-33",
+    },
+    {
+      footerBoxlink: "https://some-link-44.com",
+      footerBoxLinkText: "some-link-44",
+    },
+    {
+      footerBoxlink: "https://some-link-55.com",
+      footerBoxLinkText: "some-link-55",
+    },
+    {
+      footerBoxlink: "https://some-link-66.com",
+      footerBoxLinkText: "some-link-66",
+    },
+    {
+      footerBoxlink: "https://some-link-77.com",
+      footerBoxLinkText: "some-link-77",
+    },
+    {
+      footerBoxlink: "https://some-link-88.com",
+      footerBoxLinkText: "some-link-88",
+    },
+  ],
+ 
+  footerLogoAltText: "Symbol of the Government of Canada",
+  footerLogoImage: logo,
+  reportBtnText: "Report a problem",
+  reportDescription:
+    "Experiencing an issue with this product or have you spotted an error?",
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/organisms/Layout.js.html b/main/coverage/lcov-report/components/organisms/Layout.js.html new file mode 100644 index 0000000000..f875d377c7 --- /dev/null +++ b/main/coverage/lcov-report/components/organisms/Layout.js.html @@ -0,0 +1,760 @@ + + + + + + Code coverage report for components/organisms/Layout.js + + + + + + + + + +
+
+

All files / components/organisms Layout.js

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 66.66% + Branches + 12/18 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +7x +7x +7x +  +  +  +  +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from "prop-types";
+import { Banner } from "../atoms/Banner";
+import { Footer } from "@dts-stn/service-canada-design-system";
+import { PhaseBanner } from "./PhaseBanner";
+import { ReportAProblem } from "./ReportAProblem";
+import Link from "next/link";
+import { useTranslation } from "next-i18next";
+import { DateModified } from "../atoms/DateModified";
+import { Breadcrumb } from "../atoms/Breadcrumb";
+ 
+/**
+ * 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,
+  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">
+      <nav className="skip-main">
+        <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"
+          href="#pageMainTitle"
+          data-cy-button={"skip-Content"}
+          draggable="false"
+        >
+          {t("skipToMainContentBtn")}
+        </a>
+      </nav>
+      <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 flex-col flex lg:flex lg:flex-row justify-between  mt-2">
+          <div
+            className="flex flex-row justify-between items-center lg:mt-7 mt-1.5"
+            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"
+              />
+            </a>
+            <h3 className="sr-only">{t("languageSelection")}</h3>
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink1"
+              className="visible lg:invisible ml-6 sm:ml-16 underline font-body font-bold text-canada-footer-font lg:text-sm text-base hover:text-canada-footer-hover-font-blue"
+            >
+              {language === "en" ? "EN" : "FR"}
+            </Link>
+          </div>
+          <div className="flex-col flex">
+            <Link
+              key={language}
+              href={langUrl}
+              locale={language}
+              data-testid="languageLink3"
+              className="lg:visible invisible pb-0 lg:pb-2 self-end underline 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-t pb-2 mt-4">
+          <div className="layout-container mt-10 mb-2">
+            <Breadcrumb items={breadcrumbItems} />
+          </div>
+        </div>
+      </header>
+ 
+      <main>
+        {bannerText && bannerTitle ? (
+          <Banner siteTitle={bannerTitle} headline={bannerText} />
+        ) : null}
+        <div>{children}</div>
+        <div className="mt-12">
+          <h2 className="sr-only">{t("siteFooter")}</h2>
+          <div className="layout-container mt-5">
+            <ReportAProblem />
+          </div>
+          <div className="layout-container mb-2">
+            <DateModified date={dateModifiedOverride} />
+          </div>
+        </div>
+      </main>
+ 
+      <Footer
+        id="footer"
+        lang={locale}
+        btnLink={"#"}
+        brandLinks={[
+          {
+            id: "link1",
+            text: t("footerSocialMedia"),
+            href: t("footerSocialMediaURL"),
+          },
+          {
+            id: "link2",
+            text: t("footerMobileApp"),
+            href: t("footerMobileAppURL"),
+          },
+          {
+            id: "link3",
+            text: t("footerTermsAndCondition"),
+            href: t("footerTermsAndConditionURL"),
+          },
+          {
+            id: "link4",
+            text: t("footerPrivacy"),
+            href: t("footerPrivacyURL"),
+          },
+        ]}
+      />
+    </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,
+  /**
+   * Manual override for date modified component
+   */
+  dateModifiedOverride: PropTypes.string,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/components/organisms/Layout.stories.js.html b/main/coverage/lcov-report/components/organisms/Layout.stories.js.html new file mode 100644 index 0000000000..649c9f8ab3 --- /dev/null +++ b/main/coverage/lcov-report/components/organisms/Layout.stories.js.html @@ -0,0 +1,199 @@ + + + + + + Code coverage report for components/organisms/Layout.stories.js + + + + + + + + + +
+
+

All files / components/organisms Layout.stories.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +  +  +  +  +  +  +1x +7x +  +  +  +  +  +  +  +  +  +  +  +  +7x +  +1x +1x +  +1x +  +  +  +  +1x +  +  +  +  +  + 
import React from "react";
+import { Layout } from "./Layout";
+ 
+export default {
+  title: "Components/Organisms/Layout",
+  component: Layout,
+};
+ 
+const sampleText = () => {
+  return (
+    <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>
+  );
+};
+ 
+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/main/coverage/lcov-report/components/organisms/PhaseBanner.js.html b/main/coverage/lcov-report/components/organisms/PhaseBanner.js.html new file mode 100644 index 0000000000..f9cb1536df --- /dev/null +++ b/main/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

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 87.5% + Branches + 7/8 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 90.9% + Lines + 10/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  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +3x +3x +3x +  +3x +1x +  +  +1x +  +  +1x +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +4x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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-circle-color">
+        <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-xs text-white border 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 className="lg:ml-4 xl:ml-8 xxl:ml-12">
+            <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/main/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html b/main/coverage/lcov-report/components/organisms/PhaseBanner.stories.js.html new file mode 100644 index 0000000000..6aab30574c --- /dev/null +++ b/main/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

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 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  +  +  +  +  +  +  +  +2x +  +1x +1x +  +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/main/coverage/lcov-report/components/organisms/ReportAProblem.js.html b/main/coverage/lcov-report/components/organisms/ReportAProblem.js.html new file mode 100644 index 0000000000..46ecad5af4 --- /dev/null +++ b/main/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

+
+ +
+ 93.33% + Statements + 28/30 +
+ + +
+ 92.85% + Branches + 13/14 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 93.1% + Lines + 27/29 +
+ + +
+

+ 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  +  +  +  +  +  +  +  +  +  +  +  +  +  +20x +19x +  +19x +  +19x +  +3x +  +  +3x +3x +24x +21x +1x +  +  +  +  +  +3x +  +3x +  +  +3x +5x +5x +  +  +  +3x +3x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +3x +21x +  +  +  +3x +  +  +  +  +  +  +  +  +  +  +  +  +3x +1x +  +  +3x +  +  +19x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +6x +  +  +  +  +  + 
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">
+            {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/main/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html b/main/coverage/lcov-report/components/organisms/ReportAProblem.stories.js.html new file mode 100644 index 0000000000..72c79c1531 --- /dev/null +++ b/main/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

+
+ +
+ 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  +  +  +  +  +  +  +  +5x +  +1x + 
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/main/coverage/lcov-report/components/organisms/index.html b/main/coverage/lcov-report/components/organisms/index.html new file mode 100644 index 0000000000..d61549c4a9 --- /dev/null +++ b/main/coverage/lcov-report/components/organisms/index.html @@ -0,0 +1,221 @@ + + + + + + Code coverage report for components/organisms + + + + + + + + + +
+
+

All files components/organisms

+
+ +
+ 95.83% + Statements + 69/72 +
+ + +
+ 80.95% + Branches + 34/42 +
+ + +
+ 92.85% + Functions + 13/14 +
+ + +
+ 95.52% + Lines + 64/67 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Footer.js +
+
100%4/4100%2/2100%3/3100%4/4
Footer.stories.js +
+
100%4/4100%0/0100%1/1100%3/3
Layout.js +
+
100%6/666.66%12/18100%1/1100%6/6
Layout.stories.js +
+
100%8/8100%0/0100%2/2100%7/7
PhaseBanner.js +
+
90.9%10/1187.5%7/8100%2/290.9%10/11
PhaseBanner.stories.js +
+
100%6/6100%0/0100%1/1100%5/5
ReportAProblem.js +
+
93.33%28/3092.85%13/1466.66%2/393.1%27/29
ReportAProblem.stories.js +
+
100%3/3100%0/0100%1/1100%2/2
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/favicon.png b/main/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000..c1525b811a Binary files /dev/null and b/main/coverage/lcov-report/favicon.png differ diff --git a/main/coverage/lcov-report/index.html b/main/coverage/lcov-report/index.html new file mode 100644 index 0000000000..5f36a2b1a9 --- /dev/null +++ b/main/coverage/lcov-report/index.html @@ -0,0 +1,281 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 74.62% + Statements + 550/737 +
+ + +
+ 32.53% + Branches + 381/1171 +
+ + +
+ 66.48% + Functions + 125/188 +
+ + +
+ 73.57% + Lines + 515/700 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
components +
+
0%0/00%0/00%0/00%0/0
components/atoms +
+
95.83%184/19272.18%109/15186.79%46/5395.48%169/177
components/molecules +
+
86.91%186/21465.09%69/10678.43%40/5186%172/200
components/organisms +
+
95.83%69/7280.95%34/4292.85%13/1495.52%64/67
lib/notify +
+
66.66%4/6100%0/050%1/266.66%4/6
lib/utils +
+
91.3%21/2381.81%9/1166.66%4/695.23%20/21
middlewares +
+
53.33%8/1520%1/542.85%3/753.33%8/15
pages +
+
52.17%48/9237.08%89/24052.17%12/2352.74%48/91
pages/api +
+
86.36%19/2283.33%10/1266.66%2/386.36%19/22
pages/projects/benefits-navigator +
+
0%0/520%0/2740%0/140%0/52
pages/projects/dashboard +
+
0%0/130%0/940%0/40%0/13
pages/projects/oas-benefits-estimator +
+
30.55%11/3625.42%60/23636.36%4/1130.55%11/36
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/lib/notify/index.html b/main/coverage/lcov-report/lib/notify/index.html new file mode 100644 index 0000000000..1ddf452df4 --- /dev/null +++ b/main/coverage/lcov-report/lib/notify/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for lib/notify + + + + + + + + + +
+
+

All files lib/notify

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

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
submitEmail.js +
+
66.66%4/6100%0/050%1/266.66%4/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/lib/notify/submitEmail.js.html b/main/coverage/lcov-report/lib/notify/submitEmail.js.html new file mode 100644 index 0000000000..9e746b1010 --- /dev/null +++ b/main/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

+
+ +
+ 66.66% + Statements + 4/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 1/2 +
+ + +
+ 66.66% + Lines + 4/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  +  +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/main/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html b/main/coverage/lcov-report/lib/utils/createBreadcrumbs.js.html new file mode 100644 index 0000000000..a05cc5c85c --- /dev/null +++ b/main/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 + 3/3 +
+ + +
+ 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 +131x +1x +1x +  +  +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html b/main/coverage/lcov-report/lib/utils/getAllUpdateIds.js.html new file mode 100644 index 0000000000..fbc4ac2759 --- /dev/null +++ b/main/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/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 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 +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/main/coverage/lcov-report/lib/utils/index.html b/main/coverage/lcov-report/lib/utils/index.html new file mode 100644 index 0000000000..92e0cf0668 --- /dev/null +++ b/main/coverage/lcov-report/lib/utils/index.html @@ -0,0 +1,161 @@ + + + + + + Code coverage report for lib/utils + + + + + + + + + +
+
+

All files lib/utils

+
+ +
+ 91.3% + Statements + 21/23 +
+ + +
+ 81.81% + Branches + 9/11 +
+ + +
+ 66.66% + Functions + 4/6 +
+ + +
+ 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
createBreadcrumbs.js +
+
100%3/350%2/4100%2/2100%3/3
getAllUpdateIds.js +
+
0%0/2100%0/00%0/20%0/1
maskEmail.js +
+
100%12/12100%7/7100%1/1100%11/11
stripFeedback.js +
+
100%6/6100%0/0100%1/1100%6/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/lib/utils/maskEmail.js.html b/main/coverage/lcov-report/lib/utils/maskEmail.js.html new file mode 100644 index 0000000000..cab0f15ec3 --- /dev/null +++ b/main/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 + 12/12 +
+ + +
+ 100% + Branches + 7/7 +
+ + +
+ 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  +  +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/main/coverage/lcov-report/lib/utils/stripFeedback.js.html b/main/coverage/lcov-report/lib/utils/stripFeedback.js.html new file mode 100644 index 0000000000..5783aaedb1 --- /dev/null +++ b/main/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 + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 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  +  +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/main/coverage/lcov-report/middlewares/index.html b/main/coverage/lcov-report/middlewares/index.html new file mode 100644 index 0000000000..c239981c16 --- /dev/null +++ b/main/coverage/lcov-report/middlewares/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for middlewares + + + + + + + + + +
+
+

All files middlewares

+
+ +
+ 53.33% + Statements + 8/15 +
+ + +
+ 20% + Branches + 1/5 +
+ + +
+ 42.85% + Functions + 3/7 +
+ + +
+ 53.33% + Lines + 8/15 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
initMiddleware.js +
+
0%0/60%0/20%0/40%0/6
joi.js +
+
88.88%8/933.33%1/3100%3/388.88%8/9
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/middlewares/initMiddleware.js.html b/main/coverage/lcov-report/middlewares/initMiddleware.js.html new file mode 100644 index 0000000000..b46735521c --- /dev/null +++ b/main/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/6 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/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  +  +  +  +  +  +  +  +  +  +  +  +  + 
// 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) => {
+        if (result instanceof Error) {
+          return reject(result);
+        }
+        return resolve(result);
+      });
+    });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/middlewares/joi.js.html b/main/coverage/lcov-report/middlewares/joi.js.html new file mode 100644 index 0000000000..b96f9fe2f9 --- /dev/null +++ b/main/coverage/lcov-report/middlewares/joi.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for middlewares/joi.js + + + + + + + + + +
+
+

All files / middlewares joi.js

+
+ +
+ 88.88% + Statements + 8/9 +
+ + +
+ 33.33% + Branches + 1/3 +
+ + +
+ 100% + Functions + 3/3 +
+ + +
+ 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  +  +  +  +  +  +  +  +  +  +  +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/main/coverage/lcov-report/pages/404.js.html b/main/coverage/lcov-report/pages/404.js.html new file mode 100644 index 0000000000..2fbfe8461c --- /dev/null +++ b/main/coverage/lcov-report/pages/404.js.html @@ -0,0 +1,868 @@ + + + + + + Code coverage report for pages/404.js + + + + + + + + + +
+
+

All files / pages 404.js

+
+ +
+ 70.58% + Statements + 12/17 +
+ + +
+ 50% + Branches + 13/26 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 70.58% + Lines + 12/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 +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  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+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 (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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>
+        <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={pageData.scContentEn.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentEn.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language={"en"} />
+            </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={pageData.scContentFr.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentFr.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language="fr" />
+            </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>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error404Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/500.js.html b/main/coverage/lcov-report/pages/500.js.html new file mode 100644 index 0000000000..519f023336 --- /dev/null +++ b/main/coverage/lcov-report/pages/500.js.html @@ -0,0 +1,946 @@ + + + + + + Code coverage report for pages/500.js + + + + + + + + + +
+
+

All files / pages 500.js

+
+ +
+ 70.58% + Statements + 12/17 +
+ + +
+ 50% + Branches + 12/24 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 70.58% + Lines + 12/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 +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  +  +  +  +  +  +  +  +  +  +  +2x +2x +2x +2x +  +2x +1x +  +  +  +  +  +1x +  +  +1x +  +  +  +  +2x +1x +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { useTranslation } from "next-i18next";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+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 (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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>
+        <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={pageData.scContentEn.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentEn.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language={"en"} />
+            </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={pageData.scContentFr.json[3].content[1].data.href}
+                      className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                    >
+                      {pageData.scContentFr.json[3].content[1].value}
+                    </Link>
+                  </p>
+                </div>
+              </div>
+              <ReportAProblem language="fr" />
+            </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>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("error500Query");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/_app.js.html b/main/coverage/lcov-report/pages/_app.js.html new file mode 100644 index 0000000000..a385c89496 --- /dev/null +++ b/main/coverage/lcov-report/pages/_app.js.html @@ -0,0 +1,166 @@ + + + + + + Code coverage report for pages/_app.js + + + + + + + + + +
+
+

All files / pages _app.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 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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";
+ 
+config.autoAddCss = false;
+ 
+function MyApp({ Component, pageProps }) {
+  return (
+    <>
+      <Head>
+        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+        <meta
+          name="og:builddate"
+          content={process.env.NEXT_PUBLIC_BUILD_DATE}
+        />
+        <meta name="og:buildid" content={process.env.NEXT_PUBLIC_BUILD_ID} />
+      </Head>
+      <Component {...pageProps} />
+    </>
+  );
+}
+ 
+export default appWithTranslation(MyApp);
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/api/healthcheck.js.html b/main/coverage/lcov-report/pages/api/healthcheck.js.html new file mode 100644 index 0000000000..fe1a710ba1 --- /dev/null +++ b/main/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/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 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 +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/main/coverage/lcov-report/pages/api/index.html b/main/coverage/lcov-report/pages/api/index.html new file mode 100644 index 0000000000..91b5631ac2 --- /dev/null +++ b/main/coverage/lcov-report/pages/api/index.html @@ -0,0 +1,146 @@ + + + + + + Code coverage report for pages/api + + + + + + + + + +
+
+

All files pages/api

+
+ +
+ 86.36% + Statements + 19/22 +
+ + +
+ 83.33% + Branches + 10/12 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 86.36% + Lines + 19/22 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
healthcheck.js +
+
0%0/1100%0/00%0/10%0/1
report-a-problem.js +
+
84.61%11/1380%8/10100%1/184.61%11/13
robots.js +
+
100%8/8100%2/2100%1/1100%8/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/api/report-a-problem.js.html b/main/coverage/lcov-report/pages/api/report-a-problem.js.html new file mode 100644 index 0000000000..b20dc23106 --- /dev/null +++ b/main/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

+
+ +
+ 84.61% + Statements + 11/13 +
+ + +
+ 80% + Branches + 8/10 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 84.61% + Lines + 11/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  +  +  +  +  +  +  +5x +  +5x +  +  +  +2x +  +3x +3x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +1x +  +1x +1x +  +  +1x +1x +  +  +  +  +  +  +  +  +  + 
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/main/coverage/lcov-report/pages/api/robots.js.html b/main/coverage/lcov-report/pages/api/robots.js.html new file mode 100644 index 0000000000..6fccac4386 --- /dev/null +++ b/main/coverage/lcov-report/pages/api/robots.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for pages/api/robots.js + + + + + + + + + +
+
+

All files / pages/api robots.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 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  +  +  +  +  +  +  +2x +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");
+  } else {
+    res.write("User-agent: *\n");
+    res.write("Disallow: /\n");
+  }
+  res.end();
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/error.js.html b/main/coverage/lcov-report/pages/error.js.html new file mode 100644 index 0000000000..50f07040ea --- /dev/null +++ b/main/coverage/lcov-report/pages/error.js.html @@ -0,0 +1,1507 @@ + + + + + + Code coverage report for pages/error.js + + + + + + + + + +
+
+

All files / pages error.js

+
+ +
+ 0% + Statements + 0/16 +
+ + +
+ 0% + Branches + 0/50 +
+ + +
+ 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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import Link from "next/link";
+import { ReportAProblem } from "../components/organisms/ReportAProblem";
+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(() => {
+    if (props.adobeAnalyticsUrl) {
+      window.adobeDataLayer = window.adobeDataLayer || [];
+      window.adobeDataLayer.push({ event: "pageLoad" });
+    }
+  }, []);
+ 
+  return (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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>
+          <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={
+                                pageData.scContentEn.json[9].content[0].data
+                                  .href
+                              }
+                              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={
+                            pageData.scContentEn.json[10].content[1].data.href
+                          }
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentEn.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+                <ReportAProblem language="en" />
+              </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={
+                                pageData.scContentFr.json[9].content[0].data
+                                  .href
+                              }
+                              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={
+                            pageData.scContentFr.json[10].content[1].data.href
+                          }
+                          className="underline hover:text-canada-footer-hover-font-blue text-canada-footer-font"
+                        >
+                          {pageData.scContentFr.json[10].content[1].value}
+                        </Link>
+                      </p>
+                    </div>
+                  )}
+                </div>
+                <ReportAProblem language="fr" />
+              </div>
+            </div>
+          </section>
+        </main>
+        <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>
+      </div>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("customErrorQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/home.js.html b/main/coverage/lcov-report/pages/home.js.html new file mode 100644 index 0000000000..eba50ab072 --- /dev/null +++ b/main/coverage/lcov-report/pages/home.js.html @@ -0,0 +1,1312 @@ + + + + + + Code coverage report for pages/home.js + + + + + + + + + +
+
+

All files / pages home.js

+
+ +
+ 66.66% + Statements + 10/15 +
+ + +
+ 47.5% + Branches + 38/80 +
+ + +
+ 80% + Functions + 4/5 +
+ + +
+ 66.66% + Lines + 10/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 +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  +  +  +  +  +  +  +  +  +  +1x +1x +  +1x +4x +  +  +  +  +  +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, useState } from "react";
+import Card from "../components/molecules/Card";
+import { ContextualAlert } from "@dts-stn/service-canada-design-system";
+import aemServiceInstance from "../services/aemServiceInstance";
+import { Heading } from "@dts-stn/service-canada-design-system";
+ 
+export default function Home(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [experimentsData] = useState(props.experimentsData);
+ 
+  const currentProjects = experimentsData.filter((project) => {
+    return (
+      project.scLabProjectStatus[0] ===
+      "gc:custom/decd-endc/project-status/current"
+    );
+  });
+ 
+  const displayCurrentProjects = currentProjects.map((project) => (
+    <li key={project.scId} className="list-none ml-0">
+      <Card
+        showImage
+        showTag={
+          project.scTitleEn === "Old Age Security Benefits Estimator"
+            ? true
+            : false
+        }
+        tagLabel={props.locale === "en" ? "New update" : "Nouvelle mise à jour"}
+        tag="new_update"
+        imgSrc={
+          // TODO images should always be fetched from the same place in the response data i.e. using the socialMediaImage field
+          project.scId === "BENEFITS-NAVIGATOR-OVERVIEW"
+            ? props.locale === "en"
+              ? `${project.scFragments[0].scImageEn._publishUrl}`
+              : `${project.scFragments[0].scImageFr._publishUrl}`
+            : props.locale === "en"
+            ? `https://www.canada.ca${project.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${project.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          props.locale === "en"
+            ? project.scSocialMediaImageAltTextEn
+            : project.scSocialMediaImageAltTextFr
+        }
+        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>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* Primary HTML Meta Tags */}
+          <title>
+            {props.locale === "en"
+              ? pageData.scShortTitleEn
+              : pageData.scShortTitleFr}
+          </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>
+        <section className="layout-container">
+          <div className="grid grid-cols-4">
+            <div className="col-span-4">
+              <Heading
+                tabIndex="-1"
+                id="pageMainTitle"
+                title={
+                  props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[0].content[0]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[0].content[0]
+                        .value
+                }
+              />
+            </div>
+            <p className="font-body col-span-4 xl:col-span-2 row-start-2">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                : pageData.scFragments[0].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="font-body col-span-4 xl:col-span-2 row-start-3 pt-4 xxl:pt-0">
+              {props.locale === "en"
+                ? pageData.scFragments[0].scContentEn.json[2].content[0].value
+                : pageData.scFragments[0].scContentFr.json[2].content[0].value}
+            </p>
+            <div className="hidden xl:grid col-span-2 col-start-3 row-start-2 row-span-2">
+              <div className="flex justify-center">
+                <span
+                  className="w-full"
+                  style={{ height: "260px", width: "380px", minWidth: "380px" }}
+                  role="presentation"
+                >
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[1].scImageEn._publishUrl
+                        : pageData.scFragments[1].scImageFr._publishUrl
+                    }
+                    alt=""
+                  />
+                </span>
+              </div>
+            </div>
+          </div>
+          <div className="lg:flex">
+            <span className="w-full">
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[3].content[0]
+                      .value}{" "}
+              </h2>
+              <p className="font-body">
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[4].content[0]
+                      .value}{" "}
+              </p>
+              <ul>
+                <li>
+                  <p className="font-body">
+                    {props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[5].content[0]
+                          .content[0].value
+                      : pageData.scFragments[0].scContentFr.json[5].content[0]
+                          .content[0].value}{" "}
+                  </p>
+                </li>
+                <li>
+                  <p className="font-body">
+                    {props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[5].content[1]
+                          .content[0].value
+                      : pageData.scFragments[0].scContentFr.json[5].content[1]
+                          .content[0].value}{" "}
+                  </p>
+                </li>
+              </ul>
+            </span>
+          </div>
+          <h2>
+            {props.locale === "en"
+              ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+              : pageData.scFragments[0].scContentFr.json[6].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[2].scTitleEn
+                  : pageData.scFragments[2].scTitleFr
+              }
+              message_body={
+                props.locale === "en" ? (
+                  <>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[2].scContentEn.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                ) : (
+                  <>
+                    {
+                      pageData.scFragments[2].scContentFr.json[0].content[0]
+                        .value
+                    }
+                    <a
+                      className="underline text-canada-footer-font hover:text-canada-footer-hover-font-blue"
+                      href={
+                        pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .data.href
+                      }
+                    >
+                      {
+                        pageData.scFragments[2].scContentFr.json[0].content[1]
+                          .value
+                      }
+                    </a>
+                    {
+                      pageData.scFragments[2].scContentEn.json[0].content[2]
+                        .value
+                    }
+                  </>
+                )
+              }
+            />
+          </div>
+          <ul className="grid lg:grid-cols-2 gap-x-4 gap-y-4 list-none ml-0">
+            {displayCurrentProjects}
+          </ul>
+        </section>
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "homePageQuery"
+  );
+  const { data: experimentsData } = await aemServiceInstance.getFragment(
+    "projectQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      experimentsData: experimentsData.scLabsPagev1List.items,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/index.html b/main/coverage/lcov-report/pages/index.html new file mode 100644 index 0000000000..54d22217f9 --- /dev/null +++ b/main/coverage/lcov-report/pages/index.html @@ -0,0 +1,206 @@ + + + + + + Code coverage report for pages + + + + + + + + + +
+
+

All files pages

+
+ +
+ 52.17% + Statements + 48/92 +
+ + +
+ 37.08% + Branches + 89/240 +
+ + +
+ 52.17% + Functions + 12/23 +
+ + +
+ 52.74% + Lines + 48/91 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
404.js +
+
70.58%12/1750%13/2666.66%2/370.58%12/17
500.js +
+
70.58%12/1750%12/2466.66%2/370.58%12/17
_app.js +
+
0%0/2100%0/00%0/10%0/2
error.js +
+
0%0/160%0/500%0/30%0/16
home.js +
+
66.66%10/1547.5%38/8080%4/566.66%10/15
index.js +
+
66.66%6/928.57%4/1466.66%2/375%6/8
notsupported.js +
+
50%8/1647.82%22/4640%2/550%8/16
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/index.js.html b/main/coverage/lcov-report/pages/index.js.html new file mode 100644 index 0000000000..77af7ea803 --- /dev/null +++ b/main/coverage/lcov-report/pages/index.js.html @@ -0,0 +1,694 @@ + + + + + + Code coverage report for pages/index.js + + + + + + + + + +
+
+

All files / pages index.js

+
+ +
+ 66.66% + Statements + 6/9 +
+ + +
+ 28.57% + Branches + 4/14 +
+ + +
+ 66.66% + Functions + 2/3 +
+ + +
+ 75% + Lines + 6/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 +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  +  +  +  +  +  +  +  +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>
+        {props.adobeAnalyticsUrl ? (
+          <script src={props.adobeAnalyticsUrl} />
+        ) : (
+          ""
+        )}
+ 
+        {/* 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")}`} />
+      </Head>
+      <main 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>
+      </main>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getServerSideProps = async ({ locale }) => ({
+  props: {
+    locale: locale ?? "en",
+    adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL ?? "",
+    ...(await serverSideTranslations(locale, ["common"])),
+  },
+});
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/notsupported.js.html b/main/coverage/lcov-report/pages/notsupported.js.html new file mode 100644 index 0000000000..b9a2290136 --- /dev/null +++ b/main/coverage/lcov-report/pages/notsupported.js.html @@ -0,0 +1,1573 @@ + + + + + + Code coverage report for pages/notsupported.js + + + + + + + + + +
+
+

All files / pages notsupported.js

+
+ +
+ 50% + Statements + 8/16 +
+ + +
+ 47.82% + Branches + 22/46 +
+ + +
+ 40% + Functions + 2/5 +
+ + +
+ 50% + Lines + 8/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 +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  +  +  +  +  +  +  +  +  +  +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 (
+    <>
+      <div className="min-h-screen relative">
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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>
+        <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>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  const { data } = await aemServiceInstance.getFragment("notsupportedQuery");
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations("en", ["common"])),
+      ...(await serverSideTranslations("fr", ["common"])),
+      pageData: data.scLabsErrorPagev1ByPath,
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html b/main/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html new file mode 100644 index 0000000000..cbfc592409 --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/benefits-navigator/[id].js.html @@ -0,0 +1,1486 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/[id].js + + + + + + + + + +
+
+

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

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 0% + Branches + 0/100 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { CTA, Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function DynamicBenefitNavigatorPage(props) {
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    if (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>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <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.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" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <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[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].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[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].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>
+        <section className="layout-container mb-12">
+          <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`}
+            >
+              {props.locale === "en"
+                ? dictionary[9].scTermEn
+                : dictionary[9].scTermFr}
+            </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`}
+            >
+              {props.locale === "en"
+                ? dictionary[4].scTermEn
+                : dictionary[4].scTermFr}
+            </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>
+ 
+          {/* Main */}
+          <div id="mainContentSection" className="flex flex-row-reverse mt-12">
+            <div className="hidden md:block">
+              <img
+                src={pageData.scFragments[1].scImageEn._publishUrl}
+                alt=""
+                height={pageData.scFragments[1].scImageEn.height}
+                width={pageData.scFragments[1].scImageEn.width}
+              />
+            </div>
+            <div className="w-[750px] grow">
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[2].content[0]
+                      .value}
+                <a
+                  className="underline underline-offset-4"
+                  href={
+                    props.locale === "en"
+                      ? pageData.scFragments[0].scContentEn.json[2].content[1]
+                          .data.href
+                      : pageData.scFragments[0].scContentFr.json[2].content[1]
+                          .data.href
+                  }
+                >
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[2].content[1]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[2].content[1]
+                        .value}
+                </a>
+                <span className="text-lg pl-1">
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[2].content[2]
+                        .value
+                    : pageData.scFragments[0].scContentFr.json[2].content[2]
+                        .value}
+                </span>
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[4].content[0]
+                      .value}
+              </p>
+ 
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[5].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[6].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[6].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[7].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[7].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[8].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[8].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[9].content[0].value
+                  : pageData.scFragments[0].scContentFr.json[9].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[10].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[10].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[11].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[11].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[12].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[12].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[13].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[13].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[14].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[14].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[15].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[15].content[0]
+                      .value}
+              </p>
+ 
+              <h2>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[16].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[16].content[0]
+                      .value}
+              </h2>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[17].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[17].content[0]
+                      .value}
+              </p>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[18].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[18].content[0]
+                      .value}
+              </p>
+              <ul>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[0]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[0]
+                        .content[0].value}
+                </li>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[1]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[1]
+                        .content[0].value}
+                </li>
+                <li>
+                  {props.locale === "en"
+                    ? pageData.scFragments[0].scContentEn.json[19].content[2]
+                        .content[0].value
+                    : pageData.scFragments[0].scContentFr.json[19].content[2]
+                        .content[0].value}
+                </li>
+              </ul>
+              <p>
+                {props.locale === "en"
+                  ? pageData.scFragments[0].scContentEn.json[20].content[0]
+                      .value
+                  : pageData.scFragments[0].scContentFr.json[20].content[0]
+                      .value}
+              </p>
+            </div>
+          </div>
+        </section>
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+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.locale === "en"
+      ? (path.params.id = path.params.id.slice(32))
+      : (path.params.id = path.params.id.slice(35));
+  });
+  return {
+    paths,
+    fallback: false,
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "benefitsNavigatorArticlesQuery"
+  );
+  // 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 (
+      page.scPageNameEn.slice(32) === params.id ||
+      page.scPageNameFr.slice(35) === params.id
+    );
+  });
+ 
+  return {
+    props: {
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/benefits-navigator/index.html b/main/coverage/lcov-report/pages/projects/benefits-navigator/index.html new file mode 100644 index 0000000000..739ee5237c --- /dev/null +++ b/main/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

+
+ +
+ 0% + Statements + 0/52 +
+ + +
+ 0% + Branches + 0/274 +
+ + +
+ 0% + Functions + 0/14 +
+ + +
+ 0% + Lines + 0/52 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/190%0/1000%0/60%0/19
index.js +
+
0%0/330%0/1740%0/80%0/33
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html b/main/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html new file mode 100644 index 0000000000..6e368234ba --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/benefits-navigator/index.js.html @@ -0,0 +1,2506 @@ + + + + + + Code coverage report for pages/projects/benefits-navigator/index.js + + + + + + + + + +
+
+

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

+
+ +
+ 0% + Statements + 0/33 +
+ + +
+ 0% + Branches + 0/174 +
+ + +
+ 0% + Functions + 0/8 +
+ + +
+ 0% + Lines + 0/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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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 { CTA, Collapse } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function BenefitsNavigatorOverview(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  function generateReactElements(json) {
+    const elements = [];
+ 
+    for (const item of json) {
+      if (item.nodeType === "paragraph") {
+        elements.push(
+          <p key={elements.length}>{generateReactElements(item.content)}</p>
+        );
+      } else if (item.nodeType === "unordered-list") {
+        const listItems = item.content.map((listItem, index) => (
+          <li key={index} className="my-0">
+            {generateReactElements(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">
+            {generateReactElements(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">
+            {generateReactElements(item.content)}
+          </li>
+        );
+      } else if (item.nodeType === "text") {
+        elements.push(item.value);
+      }
+    }
+ 
+    return elements;
+  }
+ 
+  const displayProjectUpdates = updatesData.map((update) => (
+    <li key={update.scId} className="list-none ml-0 col-span-12 lg:col-span-4">
+      <Card
+        showImage
+        imgSrc={
+          props.locale === "en"
+            ? `https://www.canada.ca${update.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${update.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          props.locale === "en"
+            ? update.scSocialMediaImageAltTextEn
+            : update.scSocialMediaImageAltTextFr
+        }
+        title={props.locale === "en" ? update.scTitleEn : update.scTitleFr}
+        href={props.locale === "en" ? update.scPageNameEn : update.scPageNameFr}
+        description={`${
+          props.locale === "en"
+            ? props.dictionary.items[9].scTermEn
+            : props.dictionary.items[9].scTermFr
+        } ${update.scDateModifiedOverwrite}`}
+      />
+    </li>
+  ));
+ 
+  useEffect(() => {
+    if (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>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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[0].scImageEn._publishUrl}
+          />
+          <meta
+            property="og:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scImageAltTextEn
+                : pageData.scFragments[0].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[0].scImageEn._publishUrl}
+          />
+          <meta
+            property="twitter:image:alt"
+            content={
+              props.locale === "en"
+                ? pageData.scFragments[0].scImageAltTextEn
+                : pageData.scFragments[0].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.scFragments[2].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[2].scContentFr.json[0].content[0]
+                          .value
+                  }
+                />
+              </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">
+                    <img
+                      src={
+                        props.locale === "en"
+                          ? pageData.scFragments[0].scImageEn._publishUrl
+                          : pageData.scFragments[0].scImageFr._publishUrl
+                      }
+                      alt={
+                        props.locale === "en"
+                          ? pageData.scFragments[0].scImageAltTextEn
+                          : pageData.scFragments[0].scImageAltTextFr
+                      }
+                      width={468}
+                      height={462}
+                    />
+                  </div>
+                </div>
+              </div>
+              <p className="row-start-2 font-body text-lg mb-4">
+                {props.locale === "en"
+                  ? pageData.scFragments[2].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[2].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[2].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[1].scTitleEn
+                      : pageData.scFragments[1].scTitleFr
+                  }
+                  stage={
+                    props.locale === "en"
+                      ? stageDictionary.en[pageData.scLabProjectStage]
+                      : stageDictionary.fr[pageData.scLabProjectStage]
+                  }
+                  summary={
+                    props.locale === "en"
+                      ? pageData.scFragments[2].scContentEn.json[4].content[0]
+                          .value
+                      : pageData.scFragments[2].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[3].scContentEn.json[0].content[0].value
+                : pageData.scFragments[3].scContentFr.json[0].content[0].value}
+            </h2>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[1].content[0].value
+                : pageData.scFragments[3].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[2].content[0].value
+                : pageData.scFragments[3].scContentFr.json[2].content[0].value}
+            </p>
+            <ul className="col-span-12 xl:col-span-8">
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[0]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[0]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[1]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[1]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[2]
+                      .content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 xl:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[3].scContentEn.json[4].content[0].value
+                : pageData.scFragments[3].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[4].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[4].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">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </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">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[0].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[0].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[0].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[0].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                    </ul>
+                  </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[4].scFragments[0].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[0].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].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">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </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">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[1].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[1].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[1].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[1].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                    </ul>
+                  </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[4].scFragments[1].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[1].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].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">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageEn._publishUrl
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageAltTextEn
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scImageAltTextFr
+                    }
+                    className="w-full"
+                  />
+                </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">
+                    <h3 className="mb-2">
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scContentEn
+                            .json[0].content[0].value
+                        : pageData.scFragments[4].scFragments[2].scContentFr
+                            .json[0].content[0].value}
+                    </h3>
+                    <p>
+                      {props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scContentEn
+                            .json[1].content[0].value
+                        : pageData.scFragments[4].scFragments[2].scContentFr
+                            .json[1].content[0].value}
+                    </p>
+                    <ul>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[0].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[0].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[1].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[1].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[2].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[2].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[3].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[3].content[0].value}
+                      </li>
+                      <li>
+                        {props.locale === "en"
+                          ? pageData.scFragments[4].scFragments[2].scContentEn
+                              .json[2].content[4].content[0].value
+                          : pageData.scFragments[4].scFragments[2].scContentFr
+                              .json[2].content[4].content[0].value}
+                      </li>
+                    </ul>
+                  </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[4].scFragments[2].scFragments[0]
+                            .scLongDescHeadingEn
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescHeadingFr
+                    }
+                    children={generateReactElements(
+                      props.locale === "en"
+                        ? pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescEn.json
+                        : pageData.scFragments[4].scFragments[2].scFragments[0]
+                            .scLongDescFr.json
+                    )}
+                  />
+                </div>
+              </div>
+            </div>
+            <section
+              id="BENEFITS-NAVIGATOR-HELP-DESIGN"
+              className="grid grid-cols-12 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>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[2].content[0]
+                      .value}
+                <a
+                  className="underline underline-offset-4"
+                  href={`mailto:${pageData.scFragments[5].scContentEn.json[2].content[1].value}`}
+                >
+                  {pageData.scFragments[5].scContentEn.json[2].content[1].value}
+                </a>
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[5].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[5].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+            </section>
+          </div>
+ 
+          {/* Todo: add locale files and use i18next for translations */}
+          <h2>
+            {props.locale === "en"
+              ? "Project updates"
+              : "Mises à jour du projet"}
+          </h2>
+          <ul className="grid lg:grid-cols-12 gap-x-4 lg:gap-y-12 list-none ml-0">
+            {displayProjectUpdates}
+          </ul>
+        </div>
+ 
+        {/* <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        /> */}
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+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"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      updatesData: pageData.scLabsPagev1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/dashboard/index.html b/main/coverage/lcov-report/pages/projects/dashboard/index.html new file mode 100644 index 0000000000..5e3ebf696e --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/dashboard/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for pages/projects/dashboard + + + + + + + + + +
+
+

All files pages/projects/dashboard

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/94 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/130%0/940%0/40%0/13
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/dashboard/index.js.html b/main/coverage/lcov-report/pages/projects/dashboard/index.js.html new file mode 100644 index 0000000000..cd2d9c1471 --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/dashboard/index.js.html @@ -0,0 +1,1417 @@ + + + + + + Code coverage report for pages/projects/dashboard/index.js + + + + + + + + + +
+
+

All files / pages/projects/dashboard index.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/94 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
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 { CTA } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function MscaDashboard(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  useEffect(() => {
+    if (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>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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">
+          <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">
+                    <img
+                      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={468}
+                      height={462}
+                    />
+                  </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[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>
+          <section id="pageMainContent">
+            <div className="grid grid-cols-12">
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[0].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[0].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[1].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[1].content[0]
+                      .value}
+              </p>
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[2].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[2].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[3].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[3].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[4].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[4].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[5].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[5].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[6].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[6].content[0]
+                      .value}
+              </p>
+              <h2 className="col-span-12">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[7].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[7].content[0]
+                      .value}
+              </h2>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[8].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[8].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[9].content[0].value
+                  : pageData.scFragments[3].scContentFr.json[9].content[0]
+                      .value}
+              </p>
+              <p className="col-span-12 xl:col-span-8">
+                {props.locale === "en"
+                  ? pageData.scFragments[3].scContentEn.json[10].content[0]
+                      .value
+                  : pageData.scFragments[3].scContentFr.json[10].content[0]
+                      .value}
+              </p>
+            </div>
+          </section>
+        </div>
+        {/* <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        /> */}
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+export const getStaticProps = async ({ locale }) => {
+  // get page data from AEM
+  const { data: pageData } = await aemServiceInstance.getFragment(
+    "mscadPageQuery"
+  );
+  // get dictionary
+  const { data: dictionary } = await aemServiceInstance.getFragment(
+    "dictionaryQuery"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html b/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html new file mode 100644 index 0000000000..c8326e92ba --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/[id].js.html @@ -0,0 +1,1579 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/[id].js + + + + + + + + + +
+
+

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

+
+ +
+ 0% + Statements + 0/20 +
+ + +
+ 0% + Branches + 0/122 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Head from "next/head";
+import { serverSideTranslations } from "next-i18next/serverSideTranslations";
+import { useTranslation } from "next-i18next";
+import { Layout } from "../../../components/organisms/Layout";
+import { ActionButton } from "../../../components/atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { getAllUpdateIds } from "../../../lib/utils/getAllUpdateIds";
+import { CTA, Heading } from "@dts-stn/service-canada-design-system";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function OASUpdatePage(props) {
+  const { t } = useTranslation("common");
+  const [pageData] = useState(props.pageData);
+  const [dictionary] = useState(props.dictionary.items);
+ 
+  useEffect(() => {
+    if (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>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <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.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" ? pageData.scTitleEn : pageData.scTitleFr
+            }
+          />
+          <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[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].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[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].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>
+        <section className="layout-container mb-12">
+          <Heading
+            tabIndex="-1"
+            id="pageMainTitle"
+            title={
+              props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[0].content[0].value
+                : pageData.scFragments[1].scContentFr.json[0].content[0].value
+            }
+          />
+          <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`}
+            >
+              {props.locale === "en"
+                ? dictionary[9].scTermEn
+                : dictionary[9].scTermFr}
+            </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`}
+            >
+              {props.locale === "en"
+                ? dictionary[4].scTermEn
+                : dictionary[4].scTermFr}
+            </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
+            id="mainContentSection"
+            className="grid grid-cols-12 pt-16 gap-x-2"
+          >
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[1].content[0].value
+                : pageData.scFragments[1].scContentFr.json[1].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[2].content[0].value
+                : pageData.scFragments[1].scContentFr.json[2].content[0].value}
+            </p>
+            <div className="hidden lg:grid col-start-9 col-span-4 row-start-1 row-span-2">
+              <div className="flex justify-center">
+                <div className="h-auto max-w-xs">
+                  <img
+                    src={
+                      props.locale === "en"
+                        ? pageData.scFragments[0].scImageEn._publishUrl
+                        : pageData.scFragments[0].scImageFr._publishUrl
+                    }
+                    alt={
+                      props.locale === "en"
+                        ? pageData.scFragments[0].scImageAltTextEn
+                        : pageData.scFragments[0].scImageAltTextFr
+                    }
+                    width={468}
+                    height={462}
+                  />
+                </div>
+              </div>
+            </div>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[3].content[0].value
+                : pageData.scFragments[1].scContentFr.json[3].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[4].content[0].value
+                : pageData.scFragments[1].scContentFr.json[4].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[5].content[0].value
+                : pageData.scFragments[1].scContentFr.json[5].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[0]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[1]
+                      .content[0].value}
+              </li>
+              <li>
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[6].content[2]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[6].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[7].content[0].value
+                : pageData.scFragments[1].scContentFr.json[7].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[8].content[0].value
+                : pageData.scFragments[1].scContentFr.json[8].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[9].content[0].value
+                : pageData.scFragments[1].scContentFr.json[9].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[10].content[0].value
+                : pageData.scFragments[1].scContentFr.json[10].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[11].content[0].value
+                : pageData.scFragments[1].scContentFr.json[11].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[12].content[0].value
+                : pageData.scFragments[1].scContentFr.json[12].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[13].content[0].value
+                : pageData.scFragments[1].scContentFr.json[13].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[14].content[0].value
+                : pageData.scFragments[1].scContentFr.json[14].content[0].value}
+            </p>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[15].content[0].value
+                : pageData.scFragments[1].scContentFr.json[15].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[16].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[16].content[0]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[16].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[16].content[1]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[17].content[0].value
+                : pageData.scFragments[1].scContentFr.json[17].content[0].value}
+            </p>
+            <ul className="col-span-12 lg:col-span-8">
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[0]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[0]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[1]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[1]
+                      .content[0].value}
+              </li>
+              <li className="text-[20px]">
+                {props.locale === "en"
+                  ? pageData.scFragments[1].scContentEn.json[18].content[2]
+                      .content[0].value
+                  : pageData.scFragments[1].scContentFr.json[18].content[2]
+                      .content[0].value}
+              </li>
+            </ul>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[19].content[0].value
+                : pageData.scFragments[1].scContentFr.json[19].content[0].value}
+            </p>
+            <h2 className="col-span-12">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[20].content[0].value
+                : pageData.scFragments[1].scContentFr.json[20].content[0].value}
+            </h2>
+            <p className="col-span-12 lg:col-span-8">
+              {props.locale === "en"
+                ? pageData.scFragments[1].scContentEn.json[21].content[0].value
+                : pageData.scFragments[1].scContentFr.json[21].content[0].value}
+            </p>
+            <ActionButton
+              id="feedback-btn"
+              style="secondary"
+              custom="col-span-12 mt-8"
+              href={
+                props.locale === "en"
+                  ? pageData.scFragments[2].scDestinationURLEn
+                  : pageData.scFragments[2].scDestinationURLFr
+              }
+              text={
+                props.locale === "en"
+                  ? pageData.scFragments[2].scTitleEn
+                  : pageData.scFragments[2].scTitleFr
+              }
+              ariaExpanded={props.ariaExpanded}
+            />
+          </div>
+        </section>
+        <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[3].scTitleEn
+              : pageData.scFragments[3].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[3].scContentEn.json[0].content[0].value
+              : pageData.scFragments[3].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[3].scLabsButton[0].scTitleEn
+                : pageData.scFragments[3].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[3].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[3].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        />
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+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.locale === "en"
+      ? (path.params.id = path.params.id.slice(36))
+      : (path.params.id = path.params.id.slice(38));
+  });
+  return {
+    paths,
+    fallback: false,
+  };
+}
+ 
+export const getStaticProps = async ({ locale, params }) => {
+  // Get pages data
+  const { data } = await aemServiceInstance.getFragment(
+    "oasBenefitsEstimatorArticlesQuery"
+  );
+  // 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 (
+      page.scPageNameEn.slice(36) === params.id ||
+      page.scPageNameFr.slice(38) === params.id
+    );
+  });
+  return {
+    props: {
+      locale: locale,
+      pageData: pageData[0],
+      dictionary: dictionary.dictionaryV1List,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      ...(await serverSideTranslations(locale, ["common", "vc"])),
+    },
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html b/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.html new file mode 100644 index 0000000000..5e8114535d --- /dev/null +++ b/main/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

+
+ +
+ 30.55% + Statements + 11/36 +
+ + +
+ 25.42% + Branches + 60/236 +
+ + +
+ 36.36% + Functions + 4/11 +
+ + +
+ 30.55% + Lines + 11/36 +
+ + +
+

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

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
[id].js +
+
0%0/200%0/1220%0/60%0/20
index.js +
+
68.75%11/1652.63%60/11480%4/568.75%11/16
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html b/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html new file mode 100644 index 0000000000..cbfdbe3665 --- /dev/null +++ b/main/coverage/lcov-report/pages/projects/oas-benefits-estimator/index.js.html @@ -0,0 +1,1516 @@ + + + + + + Code coverage report for pages/projects/oas-benefits-estimator/index.js + + + + + + + + + +
+
+

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

+
+ +
+ 68.75% + Statements + 11/16 +
+ + +
+ 52.63% + Branches + 60/114 +
+ + +
+ 80% + Functions + 4/5 +
+ + +
+ 68.75% + Lines + 11/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 +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  +  +  +  +  +  +  +  +  +  +  +  +  +1x +1x +1x +  +  +12x +  +  +  +  +  +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 { ActionButton } from "../../../components//atoms/ActionButton";
+import { useEffect, useState } from "react";
+import aemServiceInstance from "../../../services/aemServiceInstance";
+import { ProjectInfo } from "../../../components/atoms/ProjectInfo";
+import { CTA } from "@dts-stn/service-canada-design-system";
+import { Heading } from "@dts-stn/service-canada-design-system";
+import Card from "../../../components/molecules/Card";
+import { createBreadcrumbs } from "../../../lib/utils/createBreadcrumbs";
+ 
+export default function OasBenefitsEstimator(props) {
+  const [pageData] = useState(props.pageData.item);
+  const [updatesData] = useState(props.updatesData);
+  const [filteredDictionary] = useState(
+    props.dictionary.items.filter(
+      (item) =>
+        item.scId === "STARTED" ||
+        item.scId === "ENDED" ||
+        item.scId === "PROJECT-STAGE" ||
+        item.scId === "SUMMARY"
+    )
+  );
+  const stageDictionary = {
+    en: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Beta",
+    },
+    fr: {
+      "gc:custom/decd-endc/project-stage/alpha": "Alpha",
+      "gc:custom/decd-endc/project-stage/beta": "Bêta",
+    },
+  };
+ 
+  const displayProjectUpdates = updatesData.map((update) => (
+    <li key={update.scId} className="list-none ml-0 col-span-12 lg:col-span-4">
+      <Card
+        showImage
+        imgSrc={
+          props.locale === "en"
+            ? `https://www.canada.ca${update.scSocialMediaImageEn._path}`
+            : `https://www.canada.ca${update.scSocialMediaImageFr._path}`
+        }
+        imgAlt={
+          (props.locale === "en"
+            ? update.scSocialMediaImageAltTextEn
+            : update.scSocialMediaImageAltTextFr) ?? ""
+        }
+        title={props.locale === "en" ? update.scTitleEn : update.scTitleFr}
+        href={props.locale === "en" ? update.scPageNameEn : update.scPageNameFr}
+        description={`${
+          props.locale === "en"
+            ? props.dictionary.items[9].scTermEn
+            : props.dictionary.items[9].scTermFr
+        } ${update.scDateModifiedOverwrite}`}
+      />
+    </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
+        )}
+      >
+        <Head>
+          {props.adobeAnalyticsUrl ? (
+            <script src={props.adobeAnalyticsUrl} />
+          ) : (
+            ""
+          )}
+ 
+          {/* 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">
+          <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.scFragments[0].scContentEn.json[0].content[0]
+                          .value
+                      : pageData.scFragments[0].scContentFr.json[0].content[0]
+                          .value
+                  }
+                />
+              </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">
+                    <img
+                      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={468}
+                      height={462}
+                    />
+                  </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[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>
+          <h2>
+            {props.locale === "en"
+              ? props.dictionary.items[11].scTermEn
+              : props.dictionary.items[11].scTermFr}
+          </h2>
+          <ul className="grid lg:grid-cols-12 gap-x-4 lg:gap-y-12 list-none ml-0 mb-12">
+            {displayProjectUpdates}
+          </ul>
+        </div>
+ 
+        <CTA
+          heading={
+            props.locale === "en"
+              ? pageData.scFragments[6].scTitleEn
+              : pageData.scFragments[6].scTitleFr
+          }
+          body={
+            props.locale === "en"
+              ? pageData.scFragments[6].scContentEn.json[0].content[0].value
+              : pageData.scFragments[6].scContentFr.json[0].content[0].value
+          }
+          ButtonProps={{
+            id: "cta-btn",
+            text:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scTitleEn
+                : pageData.scFragments[6].scLabsButton[0].scTitleFr,
+            href:
+              props.locale === "en"
+                ? pageData.scFragments[6].scLabsButton[0].scDestinationURLEn
+                : pageData.scFragments[6].scLabsButton[0].scDestinationURLFr,
+            className:
+              "w-fit bg-[#26374A] mt-4 text-white visited:text-white hover:bg-[#1C578A] hover:no-underline hover:text-white active:bg-[#16446C]",
+          }}
+          containerClass="layout-container my-4"
+        />
+      </Layout>
+      {props.adobeAnalyticsUrl ? (
+        <script type="text/javascript">_satellite.pageBottom()</script>
+      ) : (
+        ""
+      )}
+    </>
+  );
+}
+ 
+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"
+  );
+ 
+  return {
+    props: {
+      locale: locale,
+      adobeAnalyticsUrl: process.env.ADOBE_ANALYTICS_URL,
+      pageData: pageData.scLabsPagev1ByPath,
+      updatesData: pageData.scLabsPagev1ByPath.item.scLabProjectUpdates,
+      dictionary: dictionary.dictionaryV1List,
+      ...(await serverSideTranslations(locale, ["common"])),
+    },
+    // revalidate: 10,
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/main/coverage/lcov-report/prettify.css b/main/coverage/lcov-report/prettify.css new file mode 100644 index 0000000000..b317a7cda3 --- /dev/null +++ b/main/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/main/coverage/lcov-report/prettify.js b/main/coverage/lcov-report/prettify.js new file mode 100644 index 0000000000..b3225238f2 --- /dev/null +++ b/main/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/main/coverage/lcov-report/sort-arrow-sprite.png b/main/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000..6ed68316eb Binary files /dev/null and b/main/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/main/coverage/lcov-report/sorter.js b/main/coverage/lcov-report/sorter.js new file mode 100644 index 0000000000..2bb296a8ca --- /dev/null +++ b/main/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/main/coverage/lcov.info b/main/coverage/lcov.info new file mode 100644 index 0000000000..849e14b12d --- /dev/null +++ b/main/coverage/lcov.info @@ -0,0 +1,3039 @@ +TN: +SF:components/index.js +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ActionButton.js +FN:8,ActionButton +FN:35,(anonymous_1) +FN:38,(anonymous_2) +FNF:3 +FNH:3 +FNDA:75,ActionButton +FNDA:75,(anonymous_1) +FNDA:1,(anonymous_2) +DA:11,75 +DA:13,75 +DA:15,75 +DA:17,75 +DA:19,75 +DA:22,75 +DA:35,75 +DA:36,75 +DA:37,75 +DA:38,67 +DA:39,1 +DA:40,1 +DA:41,1 +DA:47,75 +DA:108,17 +LF:15 +LH:15 +BRDA:22,0,0,5 +BRDA:22,0,1,70 +BRDA:24,1,0,2 +BRDA:24,1,1,68 +BRDA:26,2,0,1 +BRDA:26,2,1,67 +BRDA:28,3,0,1 +BRDA:28,3,1,66 +BRDA:30,4,0,2 +BRDA:30,4,1,64 +BRDA:37,5,0,67 +BRDA:37,5,1,8 +BRDA:39,6,0,1 +BRDA:39,6,1,0 +BRDA:39,7,0,1 +BRDA:39,7,1,0 +BRDA:47,8,0,19 +BRDA:47,8,1,56 +BRDA:50,9,0,6 +BRDA:50,9,1,13 +BRDA:55,10,0,19 +BRDA:55,10,1,11 +BRDA:62,11,0,0 +BRDA:62,11,1,19 +BRDA:62,12,0,19 +BRDA:62,12,1,4 +BRDA:67,13,0,4 +BRDA:67,13,1,15 +BRDA:67,14,0,19 +BRDA:67,14,1,4 +BRDA:73,15,0,0 +BRDA:73,15,1,56 +BRDA:74,16,0,12 +BRDA:74,16,1,44 +BRDA:80,17,0,56 +BRDA:80,17,1,17 +BRDA:83,18,0,24 +BRDA:83,18,1,32 +BRDA:85,19,0,0 +BRDA:85,19,1,56 +BRDA:85,20,0,56 +BRDA:85,20,1,0 +BRDA:88,21,0,6 +BRDA:88,21,1,50 +BRDA:88,22,0,56 +BRDA:88,22,1,6 +BRDA:101,23,0,0 +BRDA:101,23,1,56 +BRDA:101,24,0,56 +BRDA:101,24,1,0 +BRF:50 +BRH:42 +end_of_record +TN: +SF:components/atoms/ActionButton.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:8,7 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:22,1 +DA:29,1 +DA:36,1 +DA:43,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Alert.js +FN:11,Alert +FNF:1 +FNH:1 +FNDA:2,Alert +DA:12,2 +DA:41,1 +LF:2 +LH:2 +BRDA:16,0,0,0 +BRDA:16,0,1,2 +BRDA:20,1,0,0 +BRDA:20,1,1,2 +BRF:4 +BRH:2 +end_of_record +TN: +SF:components/atoms/Alert.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:4,(anonymous_0) +DA:8,4 +DA:9,4 +DA:28,4 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Banner.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/Breadcrumb.js +FN:9,Breadcrumb +FN:23,(anonymous_1) +FNF:2 +FNH:2 +FNDA:11,Breadcrumb +FNDA:4,(anonymous_1) +DA:10,11 +DA:24,4 +DA:50,4 +LF:3 +LH:3 +BRDA:22,0,0,2 +BRDA:22,0,1,8 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/atoms/Breadcrumb.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:8,3 +DA:10,1 +DA:11,1 +DA:13,1 +LF:4 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/CheckBox.js +FN:6,CheckBox +FN:24,(anonymous_1) +FNF:2 +FNH:2 +FNDA:145,CheckBox +FNDA:6,(anonymous_1) +DA:7,145 +DA:12,145 +DA:25,6 +DA:54,9 +DA:60,9 +LF:5 +LH:5 +BRDA:7,0,0,12 +BRDA:7,0,1,133 +BRDA:15,1,0,127 +BRDA:15,1,1,18 +BRDA:26,2,0,4 +BRDA:26,2,1,2 +BRDA:32,3,0,0 +BRDA:32,3,1,145 +BRDA:39,4,0,0 +BRDA:39,4,1,145 +BRDA:40,5,0,0 +BRDA:40,5,1,145 +BRDA:43,6,0,0 +BRDA:43,6,1,145 +BRF:14 +BRH:10 +end_of_record +TN: +SF:components/atoms/CheckBox.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +DA:49,1 +DA:50,1 +LF:10 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/DateModified.js +FN:4,DateModified +FNF:1 +FNH:1 +FNDA:10,DateModified +DA:5,10 +DA:7,10 +DA:8,10 +DA:9,4 +DA:10,2 +DA:11,2 +DA:14,10 +DA:28,4 +DA:32,4 +LF:9 +LH:9 +BRDA:8,0,0,4 +BRDA:8,0,1,6 +BRDA:9,1,0,2 +BRDA:9,1,1,2 +BRDA:18,2,0,6 +BRDA:18,2,1,4 +BRF:6 +BRH:6 +end_of_record +TN: +SF:components/atoms/DateModified.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:8,3 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.js +FN:6,ErrorLabel +FNF:1 +FNH:1 +FNDA:5,ErrorLabel +DA:7,5 +DA:16,13 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ErrorLabel.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/HTMList.js +FN:3,HTMList +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FN:8,(anonymous_3) +FNF:4 +FNH:4 +FNDA:7,HTMList +FNDA:7,(anonymous_1) +FNDA:18,(anonymous_2) +FNDA:13,(anonymous_3) +DA:4,7 +DA:5,7 +DA:7,18 +DA:9,13 +DA:14,7 +DA:21,1 +LF:6 +LH:6 +BRDA:3,0,0,5 +BRDA:14,1,0,6 +BRDA:14,1,1,1 +BRF:3 +BRH:3 +end_of_record +TN: +SF:components/atoms/MultiTextField.js +FN:8,MultiTextField +FN:41,(anonymous_1) +FNF:2 +FNH:2 +FNDA:4,MultiTextField +FNDA:1,(anonymous_1) +DA:9,4 +DA:11,4 +DA:41,1 +DA:57,8 +DA:62,8 +LF:5 +LH:5 +BRDA:14,0,0,0 +BRDA:14,0,1,4 +BRDA:19,1,0,1 +BRDA:19,1,1,3 +BRDA:23,2,0,0 +BRDA:23,2,1,4 +BRDA:33,3,0,0 +BRDA:33,3,1,4 +BRDA:36,4,0,0 +BRDA:36,4,1,4 +BRF:10 +BRH:6 +end_of_record +TN: +SF:components/atoms/MultiTextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:2,(anonymous_1) +DA:9,0 +DA:18,2 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/ProjectInfo.js +FN:6,ProjectInfo +FNF:1 +FNH:1 +FNDA:3,ProjectInfo +DA:7,3 +DA:8,3 +DA:10,3 +DA:45,2 +LF:4 +LH:4 +BRDA:15,0,0,0 +BRDA:15,0,1,3 +BRDA:19,1,0,1 +BRDA:19,1,1,2 +BRF:4 +BRH:3 +end_of_record +TN: +SF:components/atoms/ProjectInfo.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioButton.js +FN:6,RadioButton +FN:22,(anonymous_1) +FN:25,(anonymous_2) +FNF:3 +FNH:3 +FNDA:16,RadioButton +FNDA:3,(anonymous_1) +FNDA:1,(anonymous_2) +DA:7,16 +DA:14,16 +DA:23,3 +DA:26,1 +DA:27,1 +DA:28,1 +DA:29,0 +DA:31,1 +DA:51,2 +DA:55,2 +LF:10 +LH:9 +BRDA:7,0,0,15 +BRDA:7,0,1,1 +BRDA:12,1,0,1 +BRDA:12,1,1,1 +BRDA:26,2,0,1 +BRDA:26,2,1,0 +BRDA:28,3,0,0 +BRDA:28,3,1,1 +BRDA:41,4,0,4 +BRDA:41,4,1,12 +BRDA:42,5,0,4 +BRDA:42,5,1,12 +BRF:12 +BRH:10 +end_of_record +TN: +SF:components/atoms/RadioButton.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:9,7 +DA:11,1 +DA:12,1 +DA:20,1 +DA:21,1 +DA:30,1 +DA:31,1 +DA:40,1 +DA:41,1 +DA:50,1 +DA:51,1 +LF:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/RadioField.js +FN:6,RadioField +FN:24,(anonymous_1) +FN:42,(anonymous_2) +FNF:3 +FNH:2 +FNDA:8,RadioField +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:7,8 +DA:12,8 +DA:25,1 +DA:42,0 +DA:50,9 +DA:55,9 +LF:6 +LH:5 +BRDA:7,0,0,8 +BRDA:7,0,1,0 +BRDA:15,1,0,0 +BRDA:15,1,1,8 +BRDA:26,2,0,0 +BRDA:26,2,1,1 +BRDA:32,3,0,0 +BRDA:32,3,1,8 +BRDA:39,4,0,0 +BRDA:39,4,1,8 +BRF:10 +BRH:5 +end_of_record +TN: +SF:components/atoms/RadioField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.js +FN:6,SearchBar +FNF:1 +FNH:1 +FNDA:2,SearchBar +DA:7,2 +DA:33,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SearchBar.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/SelectField.js +FN:5,SelectField +FN:15,(anonymous_1) +FN:49,(anonymous_2) +FN:60,(anonymous_3) +FNF:4 +FNH:3 +FNDA:2,SelectField +FNDA:6,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:8,(anonymous_3) +DA:6,2 +DA:8,2 +DA:14,2 +DA:15,2 +DA:16,6 +DA:17,6 +DA:21,2 +DA:49,0 +DA:61,8 +DA:84,1 +DA:88,1 +LF:11 +LH:10 +BRDA:8,0,0,0 +BRDA:8,0,1,2 +BRDA:14,1,0,2 +BRDA:14,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,2 +BRDA:29,3,0,0 +BRDA:29,3,1,2 +BRDA:33,4,0,0 +BRDA:33,4,1,2 +BRDA:40,5,0,0 +BRDA:40,5,1,2 +BRDA:43,6,0,0 +BRDA:43,6,1,2 +BRDA:48,7,0,0 +BRDA:48,7,1,2 +BRDA:67,8,0,0 +BRDA:67,8,1,2 +BRF:18 +BRH:9 +end_of_record +TN: +SF:components/atoms/SelectField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:2,(anonymous_1) +DA:9,0 +DA:18,2 +DA:20,1 +DA:21,1 +LF:4 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.js +FN:3,TableOfContents +FN:9,(anonymous_1) +FNF:2 +FNH:2 +FNDA:2,TableOfContents +FNDA:2,(anonymous_1) +DA:4,2 +DA:10,2 +DA:25,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TableOfContents.stories.js +FN:8,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:8,2 +DA:10,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/atoms/TextField.js +FN:8,TextField +FN:61,(anonymous_1) +FNF:2 +FNH:2 +FNDA:6,TextField +FNDA:2,(anonymous_1) +DA:9,6 +DA:11,6 +DA:16,6 +DA:61,2 +DA:71,8 +DA:76,8 +LF:6 +LH:6 +BRDA:11,0,0,3 +BRDA:11,0,1,3 +BRDA:19,1,0,0 +BRDA:19,1,1,6 +BRDA:24,2,0,1 +BRDA:24,2,1,5 +BRDA:28,3,0,0 +BRDA:28,3,1,6 +BRDA:35,4,0,0 +BRDA:35,4,1,6 +BRDA:46,5,0,0 +BRDA:46,5,1,6 +BRDA:49,6,0,0 +BRDA:49,6,1,6 +BRDA:50,7,0,0 +BRDA:50,7,1,6 +BRDA:60,8,0,0 +BRDA:60,8,1,6 +BRF:18 +BRH:11 +end_of_record +TN: +SF:components/atoms/TextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:9,0 +DA:18,4 +DA:20,1 +DA:21,1 +DA:29,1 +DA:30,1 +DA:39,1 +DA:40,1 +LF:8 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CallToAction.js +FN:9,CallToAction +FNF:1 +FNH:1 +FNDA:3,CallToAction +DA:10,3 +DA:11,3 +DA:81,1 +LF:3 +LH:3 +BRDA:29,0,0,2 +BRDA:29,0,1,1 +BRDA:53,1,0,0 +BRDA:53,1,1,3 +BRDA:61,2,0,0 +BRDA:61,2,1,3 +BRDA:65,3,0,3 +BRDA:65,3,1,0 +BRF:8 +BRH:5 +end_of_record +TN: +SF:components/molecules/CallToAction.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:12,1 +DA:13,1 +DA:20,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Card.js +FN:10,(anonymous_0) +FNF:1 +FNH:1 +FNDA:5,(anonymous_0) +DA:10,3 +DA:11,5 +DA:18,5 +DA:20,5 +DA:92,3 +LF:5 +LH:5 +BRDA:18,0,0,5 +BRDA:18,0,1,4 +BRDA:29,1,0,2 +BRDA:29,1,1,3 +BRDA:43,2,0,0 +BRDA:43,2,1,5 +BRDA:44,3,0,0 +BRDA:44,3,1,0 +BRDA:55,4,0,2 +BRDA:55,4,1,3 +BRDA:66,5,0,0 +BRDA:66,5,1,5 +BRDA:76,6,0,0 +BRDA:76,6,1,5 +BRF:14 +BRH:9 +end_of_record +TN: +SF:components/molecules/Card.stories.js +FN:10,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:10,3 +DA:12,1 +DA:13,1 +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:11 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.js +FN:5,CopyToClipboard +FN:20,(anonymous_1) +FNF:2 +FNH:2 +FNDA:4,CopyToClipboard +FNDA:1,(anonymous_1) +DA:6,4 +DA:11,4 +DA:20,1 +DA:39,2 +DA:44,2 +LF:5 +LH:5 +BRDA:6,0,0,4 +BRDA:6,0,1,0 +BRF:2 +BRH:1 +end_of_record +TN: +SF:components/molecules/CopyToClipboard.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.js +FN:6,Details +FNF:1 +FNH:1 +FNDA:22,Details +DA:7,22 +DA:19,7 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Details.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.js +FN:7,ErrorBox +FN:23,(anonymous_1) +FN:29,(anonymous_2) +FNF:3 +FNH:3 +FNDA:3,ErrorBox +FNDA:9,(anonymous_1) +FNDA:1,(anonymous_2) +DA:8,3 +DA:24,9 +DA:29,1 +DA:43,1 +DA:47,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/ErrorBox.stories.js +FN:8,(anonymous_0) +FN:21,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:3,(anonymous_1) +DA:9,0 +DA:21,3 +DA:23,1 +DA:25,1 +LF:4 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.js +FN:15,(anonymous_0) +FN:31,(anonymous_1) +FN:42,(anonymous_2) +FN:43,(anonymous_3) +FN:57,setFocusAfterSubmit +FN:71,(anonymous_5) +FN:176,(anonymous_6) +FN:201,(anonymous_7) +FN:272,(anonymous_8) +FN:273,(anonymous_9) +FNF:10 +FNH:5 +FNDA:10,(anonymous_0) +FNDA:7,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,setFocusAfterSubmit +FNDA:1,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +DA:15,5 +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:121,10 +DA:176,0 +DA:202,0 +DA:203,0 +DA:272,0 +DA:274,0 +DA:300,5 +LF:51 +LH:34 +BRDA:32,0,0,2 +BRDA:32,0,1,5 +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:22 +BRH:9 +end_of_record +TN: +SF:components/molecules/FeedbackWidget.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:4,(anonymous_0) +DA:9,4 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.js +FN:7,Filter +FN:19,(anonymous_1) +FNF:2 +FNH:2 +FNDA:3,Filter +FNDA:9,(anonymous_1) +DA:8,3 +DA:20,9 +DA:40,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Filter.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/List.js +FN:6,List +FN:10,(anonymous_1) +FNF:2 +FNH:2 +FNDA:2,List +FNDA:8,(anonymous_1) +DA:7,2 +DA:8,2 +DA:12,8 +DA:15,8 +DA:16,8 +DA:31,1 +LF:6 +LH:6 +BRDA:15,0,0,6 +BRDA:15,0,1,2 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/molecules/List.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Menu.js +FN:9,Menu +FN:29,(anonymous_1) +FN:44,(anonymous_2) +FN:63,(anonymous_3) +FNF:4 +FNH:3 +FNDA:4,Menu +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:12,(anonymous_3) +DA:11,4 +DA:12,4 +DA:13,4 +DA:15,4 +DA:29,1 +DA:44,0 +DA:64,12 +DA:65,12 +DA:67,12 +DA:94,1 +LF:10 +LH:9 +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 +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:3,(anonymous_0) +DA:9,3 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalListField.js +FN:9,OptionalListField +FN:11,(anonymous_1) +FN:22,(anonymous_2) +FNF:3 +FNH:3 +FNDA:5,OptionalListField +FNDA:1,(anonymous_1) +FNDA:5,(anonymous_2) +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:31,5 +DA:79,1 +DA:83,1 +LF:16 +LH:12 +BRDA:10,0,0,5 +BRDA:10,0,1,2 +BRDA:12,1,0,0 +BRDA:12,1,1,1 +BRDA:18,2,0,0 +BRDA:18,2,1,1 +BRDA:23,3,0,0 +BRDA:23,3,1,5 +BRDA:26,4,0,5 +BRDA:26,4,1,0 +BRDA:33,5,0,4 +BRDA:33,5,1,1 +BRDA:60,6,0,4 +BRDA:60,6,1,1 +BRDA:60,7,0,5 +BRDA:60,7,1,2 +BRDA:60,7,2,4 +BRDA:63,8,0,0 +BRDA:63,8,1,4 +BRF:19 +BRH:14 +end_of_record +TN: +SF:components/molecules/OptionalListField.stories.js +FN:10,(anonymous_0) +FN:20,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:4,(anonymous_1) +DA:11,0 +DA:20,4 +DA:22,1 +DA:23,1 +DA:48,1 +DA:49,1 +DA:76,1 +DA:77,1 +DA:104,1 +DA:105,1 +DA:133,1 +DA:134,1 +LF:12 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/OptionalTextField.js +FN:12,OptionalTextField +FN:16,(anonymous_1) +FN:76,(anonymous_2) +FN:94,(anonymous_3) +FNF:4 +FNH:2 +FNDA:132,OptionalTextField +FNDA:3,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:13,132 +DA:14,132 +DA:15,132 +DA:16,132 +DA:17,3 +DA:18,0 +DA:19,0 +DA:21,3 +DA:22,3 +DA:25,3 +DA:26,0 +DA:29,132 +DA:106,7 +DA:110,7 +LF:14 +LH:11 +BRDA:13,0,0,132 +BRDA:13,0,1,131 +BRDA:17,1,0,0 +BRDA:17,1,1,3 +BRDA:25,2,0,0 +BRDA:25,2,1,3 +BRDA:31,3,0,132 +BRDA:31,3,1,131 +BRDA:47,4,0,132 +BRDA:47,4,1,1 +BRDA:61,5,0,4 +BRDA:61,5,1,128 +BRDA:61,6,0,132 +BRDA:61,6,1,131 +BRDA:61,6,2,129 +BRDA:62,7,0,2 +BRDA:62,7,1,2 +BRDA:76,8,0,0 +BRDA:76,8,1,2 +BRDA:94,9,0,0 +BRDA:94,9,1,2 +BRF:21 +BRH:17 +end_of_record +TN: +SF:components/molecules/OptionalTextField.stories.js +FN:8,(anonymous_0) +FN:18,(anonymous_1) +FNF:2 +FNH:1 +FNDA:0,(anonymous_0) +FNDA:3,(anonymous_1) +DA:9,0 +DA:18,3 +DA:20,1 +DA:21,1 +DA:32,1 +DA:33,1 +DA:45,1 +DA:46,1 +DA:59,1 +DA:60,1 +DA:72,1 +DA:73,1 +LF:12 +LH:11 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.js +FN:6,Quote +FNF:1 +FNH:1 +FNDA:2,Quote +DA:7,2 +DA:21,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/Quote.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:13,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/molecules/TextButtonField.js +FN:7,TextButtonField +FNF:1 +FNH:1 +FNDA:6,TextButtonField +DA:10,6 +DA:11,5 +DA:15,6 +DA:44,1 +LF:4 +LH:4 +BRDA:10,0,0,5 +BRDA:10,0,1,1 +BRDA:11,1,0,2 +BRDA:11,1,1,3 +BRDA:17,2,0,0 +BRDA:17,2,1,6 +BRDA:26,3,0,6 +BRDA:26,3,1,0 +BRF:8 +BRH:6 +end_of_record +TN: +SF:components/molecules/TextButtonField.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:6,(anonymous_0) +DA:9,6 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:16,1 +DA:24,1 +DA:31,1 +DA:39,1 +LF:9 +LH:9 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Footer.js +FN:8,Footer +FN:22,(anonymous_1) +FN:48,(anonymous_2) +FNF:3 +FNH:3 +FNDA:1,Footer +FNDA:8,(anonymous_1) +FNDA:8,(anonymous_2) +DA:9,1 +DA:23,8 +DA:49,8 +DA:89,1 +LF:4 +LH:4 +BRDA:53,0,0,1 +BRDA:53,0,1,7 +BRF:2 +BRH:2 +end_of_record +TN: +SF:components/organisms/Footer.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:1,(anonymous_0) +DA:9,1 +DA:11,1 +DA:12,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/Layout.js +FN:14,(anonymous_0) +FNF:1 +FNH:1 +FNDA:7,(anonymous_0) +DA:14,3 +DA:27,7 +DA:28,7 +DA:29,7 +DA:34,7 +DA:158,3 +LF:6 +LH:6 +BRDA:28,0,0,0 +BRDA:28,0,1,7 +BRDA:30,1,0,7 +BRDA:30,1,1,0 +BRDA:30,2,0,7 +BRDA:30,2,1,7 +BRDA:50,3,0,0 +BRDA:50,3,1,7 +BRDA:72,4,0,7 +BRDA:72,4,1,0 +BRDA:86,5,0,7 +BRDA:86,5,1,0 +BRDA:99,6,0,7 +BRDA:99,6,1,0 +BRDA:112,7,0,2 +BRDA:112,7,1,5 +BRDA:112,8,0,7 +BRDA:112,8,1,2 +BRF:18 +BRH:12 +end_of_record +TN: +SF:components/organisms/Layout.stories.js +FN:9,(anonymous_0) +FN:23,(anonymous_1) +FNF:2 +FNH:2 +FNDA:7,(anonymous_0) +FNDA:7,(anonymous_1) +DA:9,1 +DA:10,7 +DA:23,7 +DA:25,1 +DA:26,1 +DA:28,1 +DA:33,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/PhaseBanner.js +FN:12,(anonymous_0) +FN:24,(anonymous_1) +FNF:2 +FNH:2 +FNDA:3,(anonymous_0) +FNDA:1,(anonymous_1) +DA:12,4 +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:34,3 +DA:112,4 +LF:11 +LH:10 +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 +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:9,2 +DA:11,1 +DA:12,1 +DA:14,1 +DA:19,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +end_of_record +TN: +SF:components/organisms/ReportAProblem.js +FN:14,ReportAProblem +FN:20,(anonymous_1) +FN:84,(anonymous_2) +FNF:3 +FNH:2 +FNDA:20,ReportAProblem +FNDA:3,(anonymous_1) +FNDA:0,(anonymous_2) +DA:15,20 +DA:16,19 +DA:18,19 +DA:20,19 +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:98,19 +DA:373,6 +LF:29 +LH:27 +BRDA:27,0,0,21 +BRDA:27,0,1,3 +BRDA:28,1,0,1 +BRDA:28,1,1,20 +BRDA:51,2,0,0 +BRDA:51,2,1,3 +BRDA:91,3,0,1 +BRDA:91,3,1,2 +BRDA:105,4,0,1 +BRDA:105,4,1,18 +BRDA:124,5,0,1 +BRDA:124,5,1,18 +BRDA:350,6,0,2 +BRDA:350,6,1,16 +BRF:14 +BRH:13 +end_of_record +TN: +SF:components/organisms/ReportAProblem.stories.js +FN:9,(anonymous_0) +FNF:1 +FNH:1 +FNDA:5,(anonymous_0) +DA:9,5 +DA:11,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/notify/submitEmail.js +FN:3,(anonymous_0) +FN:32,(anonymous_1) +FNF:2 +FNH:1 +FNDA:1,(anonymous_0) +FNDA:0,(anonymous_1) +DA:3,2 +DA:11,1 +DA:29,1 +DA:32,2 +DA:42,0 +DA:64,0 +LF:6 +LH:4 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/createBreadcrumbs.js +FN:1,(anonymous_0) +FN:2,(anonymous_1) +FNF:2 +FNH:2 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +DA:1,1 +DA:2,1 +DA:3,1 +LF:3 +LH:3 +BRDA:5,0,0,0 +BRDA:5,0,1,1 +BRDA:7,1,0,0 +BRDA:7,1,1,1 +BRF:4 +BRH:2 +end_of_record +TN: +SF:lib/utils/getAllUpdateIds.js +FN:1,getAllUpdateIds +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,getAllUpdateIds +FNDA:0,(anonymous_1) +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:lib/utils/maskEmail.js +FN:2,maskEmail +FNF:1 +FNH:1 +FNDA:1,maskEmail +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:11 +LH:11 +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/stripFeedback.js +FN:1,stripFeedback +FNF:1 +FNH:1 +FNDA:7,stripFeedback +DA:3,7 +DA:9,7 +DA:15,7 +DA:21,7 +DA:25,7 +DA:30,7 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record +TN: +SF:middlewares/initMiddleware.js +FN:3,initMiddleware +FN:4,(anonymous_1) +FN:5,(anonymous_2) +FN:6,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,initMiddleware +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:10,0 +LF:6 +LH:0 +BRDA:7,0,0,0 +BRDA:7,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:middlewares/joi.js +FN:11,validate +FN:12,(anonymous_1) +FN:19,(anonymous_2) +FNF:3 +FNH:3 +FNDA:1,validate +FNDA:1,(anonymous_1) +FNDA:2,(anonymous_2) +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:9 +LH:8 +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:11,error404 +FN:17,(anonymous_1) +FN:249,(anonymous_2) +FNF:3 +FNH:2 +FNDA:2,error404 +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,2 +DA:13,2 +DA:14,2 +DA:15,2 +DA:17,2 +DA:18,1 +DA:19,0 +DA:20,0 +DA:24,1 +DA:25,0 +DA:27,1 +DA:32,2 +DA:33,1 +DA:36,1 +DA:249,1 +DA:250,0 +DA:252,0 +LF:17 +LH:12 +BRDA:18,0,0,0 +BRDA:18,0,1,1 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,1 +BRDA:32,3,0,1 +BRDA:32,3,1,1 +BRDA:40,4,0,0 +BRDA:40,4,1,1 +BRDA:63,5,0,0 +BRDA:63,5,1,1 +BRDA:78,6,0,0 +BRDA:78,6,1,1 +BRDA:130,7,0,0 +BRDA:130,7,1,1 +BRDA:135,8,0,0 +BRDA:135,8,1,1 +BRDA:174,9,0,0 +BRDA:174,9,1,1 +BRDA:226,10,0,0 +BRDA:226,10,1,1 +BRDA:231,11,0,0 +BRDA:231,11,1,1 +BRDA:240,12,0,0 +BRDA:240,12,1,1 +BRF:26 +BRH:13 +end_of_record +TN: +SF:pages/500.js +FN:11,error500 +FN:17,(anonymous_1) +FN:275,(anonymous_2) +FNF:3 +FNH:2 +FNDA:2,error500 +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,2 +DA:13,2 +DA:14,2 +DA:15,2 +DA:17,2 +DA:18,1 +DA:19,0 +DA:20,0 +DA:24,1 +DA:25,0 +DA:27,1 +DA:32,2 +DA:33,1 +DA:36,1 +DA:275,1 +DA:276,0 +DA:278,0 +LF:17 +LH:12 +BRDA:18,0,0,0 +BRDA:18,0,1,1 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:24,2,0,0 +BRDA:24,2,1,1 +BRDA:32,3,0,1 +BRDA:32,3,1,1 +BRDA:40,4,0,0 +BRDA:40,4,1,1 +BRDA:74,5,0,0 +BRDA:74,5,1,1 +BRDA:156,6,0,0 +BRDA:156,6,1,1 +BRDA:161,7,0,0 +BRDA:161,7,1,1 +BRDA:200,8,0,0 +BRDA:200,8,1,1 +BRDA:252,9,0,0 +BRDA:252,9,1,1 +BRDA:257,10,0,0 +BRDA:257,10,1,1 +BRDA:266,11,0,0 +BRDA:266,11,1,1 +BRF:24 +BRH:12 +end_of_record +TN: +SF:pages/_app.js +FN:11,MyApp +FNF:1 +FNH:0 +FNDA:0,MyApp +DA:9,0 +DA:12,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:pages/error.js +FN:11,ErrorPage +FN:26,(anonymous_1) +FN:462,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,ErrorPage +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:12,0 +DA:13,0 +DA:14,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:22,0 +DA:24,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:33,0 +DA:462,0 +DA:463,0 +DA:465,0 +LF:16 +LH:0 +BRDA:16,0,0,0 +BRDA:16,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:20,2,0,0 +BRDA:20,2,1,0 +BRDA:22,3,0,0 +BRDA:22,3,1,0 +BRDA:24,4,0,0 +BRDA:24,4,1,0 +BRDA:27,5,0,0 +BRDA:27,5,1,0 +BRDA:28,6,0,0 +BRDA:28,6,1,0 +BRDA:37,7,0,0 +BRDA:37,7,1,0 +BRDA:53,8,0,0 +BRDA:53,8,1,0 +BRDA:75,9,0,0 +BRDA:75,9,1,0 +BRDA:106,10,0,0 +BRDA:106,10,1,0 +BRDA:143,11,0,0 +BRDA:143,11,1,0 +BRDA:167,12,0,0 +BRDA:167,12,1,0 +BRDA:180,13,0,0 +BRDA:180,13,1,0 +BRDA:185,14,0,0 +BRDA:185,14,1,0 +BRDA:203,15,0,0 +BRDA:203,15,1,0 +BRDA:220,16,0,0 +BRDA:220,16,1,0 +BRDA:254,17,0,0 +BRDA:254,17,1,0 +BRDA:305,18,0,0 +BRDA:305,18,1,0 +BRDA:325,19,0,0 +BRDA:325,19,1,0 +BRDA:342,20,0,0 +BRDA:342,20,1,0 +BRDA:376,21,0,0 +BRDA:376,21,1,0 +BRDA:439,22,0,0 +BRDA:439,22,1,0 +BRDA:444,23,0,0 +BRDA:444,23,1,0 +BRDA:453,24,0,0 +BRDA:453,24,1,0 +BRF:50 +BRH:0 +end_of_record +TN: +SF:pages/home.js +FN:10,Home +FN:14,(anonymous_1) +FN:21,(anonymous_2) +FN:60,(anonymous_3) +FN:391,(anonymous_4) +FNF:5 +FNH:4 +FNDA:1,Home +FNDA:4,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:11,1 +DA:12,1 +DA:14,1 +DA:15,4 +DA:21,1 +DA:22,1 +DA:60,1 +DA:61,1 +DA:62,0 +DA:63,0 +DA:67,1 +DA:391,1 +DA:392,0 +DA:395,0 +DA:399,0 +LF:15 +LH:10 +BRDA:26,0,0,1 +BRDA:26,0,1,0 +BRDA:30,1,0,0 +BRDA:30,1,1,1 +BRDA:34,2,0,0 +BRDA:34,2,1,1 +BRDA:35,3,0,0 +BRDA:35,3,1,0 +BRDA:38,4,0,0 +BRDA:38,4,1,1 +BRDA:43,5,0,0 +BRDA:43,5,1,1 +BRDA:47,6,0,0 +BRDA:47,6,1,1 +BRDA:49,7,0,0 +BRDA:49,7,1,1 +BRDA:52,8,0,0 +BRDA:52,8,1,1 +BRDA:61,9,0,0 +BRDA:61,9,1,1 +BRDA:62,10,0,0 +BRDA:62,10,1,0 +BRDA:72,11,0,0 +BRDA:72,11,1,1 +BRDA:77,12,0,0 +BRDA:77,12,1,1 +BRDA:85,13,0,0 +BRDA:85,13,1,1 +BRDA:92,14,0,0 +BRDA:92,14,1,1 +BRDA:103,15,0,0 +BRDA:103,15,1,1 +BRDA:113,16,0,0 +BRDA:113,16,1,1 +BRDA:118,17,0,0 +BRDA:118,17,1,1 +BRDA:124,18,0,0 +BRDA:124,18,1,1 +BRDA:137,19,0,0 +BRDA:137,19,1,1 +BRDA:159,20,0,0 +BRDA:159,20,1,1 +BRDA:168,21,0,0 +BRDA:168,21,1,1 +BRDA:174,22,0,0 +BRDA:174,22,1,1 +BRDA:186,23,0,0 +BRDA:186,23,1,1 +BRDA:197,24,0,0 +BRDA:197,24,1,1 +BRDA:206,25,0,0 +BRDA:206,25,1,1 +BRDA:213,26,0,0 +BRDA:213,26,1,1 +BRDA:225,27,0,0 +BRDA:225,27,1,1 +BRDA:236,28,0,0 +BRDA:236,28,1,1 +BRDA:245,29,0,0 +BRDA:245,29,1,1 +BRDA:250,30,0,0 +BRDA:250,30,1,1 +BRDA:263,31,0,0 +BRDA:263,31,1,1 +BRDA:276,32,0,0 +BRDA:276,32,1,1 +BRDA:282,33,0,0 +BRDA:282,33,1,1 +BRDA:290,34,0,0 +BRDA:290,34,1,1 +BRDA:299,35,0,0 +BRDA:299,35,1,1 +BRDA:310,36,0,0 +BRDA:310,36,1,1 +BRDA:322,37,0,0 +BRDA:322,37,1,1 +BRDA:327,38,0,0 +BRDA:327,38,1,1 +BRDA:382,39,0,0 +BRDA:382,39,1,1 +BRF:80 +BRH:38 +end_of_record +TN: +SF:pages/index.js +FN:8,Index +FN:11,(anonymous_1) +FN:197,(anonymous_2) +FNF:3 +FNH:2 +FNDA:1,Index +FNDA:1,(anonymous_1) +FNDA:0,(anonymous_2) +DA:9,1 +DA:11,1 +DA:12,1 +DA:13,0 +DA:14,0 +DA:16,1 +DA:19,1 +DA:197,1 +LF:8 +LH:6 +BRDA:12,0,0,0 +BRDA:12,0,1,1 +BRDA:13,1,0,0 +BRDA:13,1,1,0 +BRDA:23,2,0,0 +BRDA:23,2,1,1 +BRDA:54,3,0,0 +BRDA:54,3,1,1 +BRDA:188,4,0,0 +BRDA:188,4,1,1 +BRDA:199,5,0,0 +BRDA:199,5,1,0 +BRDA:200,6,0,0 +BRDA:200,6,1,0 +BRF:14 +BRH:4 +end_of_record +TN: +SF:pages/notsupported.js +FN:10,notSupported +FN:16,(anonymous_1) +FN:23,onClickEn +FN:28,onClickFr +FN:484,(anonymous_4) +FNF:5 +FNH:2 +FNDA:1,notSupported +FNDA:1,(anonymous_1) +FNDA:0,onClickEn +FNDA:0,onClickFr +FNDA:0,(anonymous_4) +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:32,1 +DA:484,1 +DA:485,0 +DA:487,0 +LF:16 +LH:8 +BRDA:17,0,0,0 +BRDA:17,0,1,1 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,1 +BRDA:79,3,0,0 +BRDA:79,3,1,1 +BRDA:85,4,0,0 +BRDA:85,4,1,1 +BRDA:162,5,0,0 +BRDA:162,5,1,1 +BRDA:167,6,0,0 +BRDA:167,6,1,1 +BRDA:190,7,0,0 +BRDA:190,7,1,1 +BRDA:218,8,0,0 +BRDA:218,8,1,1 +BRDA:223,9,0,0 +BRDA:223,9,1,1 +BRDA:237,10,0,0 +BRDA:237,10,1,1 +BRDA:242,11,0,0 +BRDA:242,11,1,1 +BRDA:256,12,0,0 +BRDA:256,12,1,1 +BRDA:261,13,0,0 +BRDA:261,13,1,1 +BRDA:275,14,0,0 +BRDA:275,14,1,1 +BRDA:280,15,0,0 +BRDA:280,15,1,1 +BRDA:301,16,0,0 +BRDA:301,16,1,1 +BRDA:302,17,0,0 +BRDA:302,17,1,1 +BRDA:377,18,0,0 +BRDA:377,18,1,1 +BRDA:379,19,0,0 +BRDA:379,19,1,1 +BRDA:461,20,0,0 +BRDA:461,20,1,1 +BRDA:466,21,0,0 +BRDA:466,21,1,1 +BRDA:475,22,0,0 +BRDA:475,22,1,1 +BRF:46 +BRH:22 +end_of_record +TN: +SF:pages/api/healthcheck.js +FN:2,handler +FNF:1 +FNH:0 +FNDA:0,handler +DA:3,0 +LF:1 +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: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 +LF:13 +LH:11 +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:8,2 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:14,1 +DA:15,1 +DA:17,2 +LF:8 +LH:8 +BRDA:8,0,0,1 +BRDA:8,0,1,1 +BRF:2 +BRH:2 +end_of_record +TN: +SF:pages/projects/benefits-navigator/[id].js +FN:12,DynamicBenefitNavigatorPage +FN:16,(anonymous_1) +FN:422,getStaticPaths +FN:429,(anonymous_3) +FN:440,(anonymous_4) +FN:451,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,DynamicBenefitNavigatorPage +FNDA:0,(anonymous_1) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:13,0 +DA:14,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:23,0 +DA:424,0 +DA:428,0 +DA:429,0 +DA:430,0 +DA:434,0 +DA:440,0 +DA:442,0 +DA:446,0 +DA:449,0 +DA:451,0 +DA:452,0 +DA:458,0 +LF:19 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRDA:18,1,0,0 +BRDA:18,1,1,0 +BRDA:28,2,0,0 +BRDA:28,2,1,0 +BRDA:37,3,0,0 +BRDA:37,3,1,0 +BRDA:45,4,0,0 +BRDA:45,4,1,0 +BRDA:52,5,0,0 +BRDA:52,5,1,0 +BRDA:61,6,0,0 +BRDA:61,6,1,0 +BRDA:71,7,0,0 +BRDA:71,7,1,0 +BRDA:76,8,0,0 +BRDA:76,8,1,0 +BRDA:82,9,0,0 +BRDA:82,9,1,0 +BRDA:98,10,0,0 +BRDA:98,10,1,0 +BRDA:116,11,0,0 +BRDA:116,11,1,0 +BRDA:125,12,0,0 +BRDA:125,12,1,0 +BRDA:143,13,0,0 +BRDA:143,13,1,0 +BRDA:154,14,0,0 +BRDA:154,14,1,0 +BRDA:163,15,0,0 +BRDA:163,15,1,0 +BRDA:182,16,0,0 +BRDA:182,16,1,0 +BRDA:191,17,0,0 +BRDA:191,17,1,0 +BRDA:197,18,0,0 +BRDA:197,18,1,0 +BRDA:200,19,0,0 +BRDA:200,19,1,0 +BRDA:209,20,0,0 +BRDA:209,20,1,0 +BRDA:212,21,0,0 +BRDA:212,21,1,0 +BRDA:233,22,0,0 +BRDA:233,22,1,0 +BRDA:239,23,0,0 +BRDA:239,23,1,0 +BRDA:246,24,0,0 +BRDA:246,24,1,0 +BRDA:253,25,0,0 +BRDA:253,25,1,0 +BRDA:260,26,0,0 +BRDA:260,26,1,0 +BRDA:269,27,0,0 +BRDA:269,27,1,0 +BRDA:276,28,0,0 +BRDA:276,28,1,0 +BRDA:283,29,0,0 +BRDA:283,29,1,0 +BRDA:290,30,0,0 +BRDA:290,30,1,0 +BRDA:296,31,0,0 +BRDA:296,31,1,0 +BRDA:302,32,0,0 +BRDA:302,32,1,0 +BRDA:309,33,0,0 +BRDA:309,33,1,0 +BRDA:315,34,0,0 +BRDA:315,34,1,0 +BRDA:322,35,0,0 +BRDA:322,35,1,0 +BRDA:330,36,0,0 +BRDA:330,36,1,0 +BRDA:337,37,0,0 +BRDA:337,37,1,0 +BRDA:344,38,0,0 +BRDA:344,38,1,0 +BRDA:351,39,0,0 +BRDA:351,39,1,0 +BRDA:359,40,0,0 +BRDA:359,40,1,0 +BRDA:366,41,0,0 +BRDA:366,41,1,0 +BRDA:373,42,0,0 +BRDA:373,42,1,0 +BRDA:381,43,0,0 +BRDA:381,43,1,0 +BRDA:388,44,0,0 +BRDA:388,44,1,0 +BRDA:395,45,0,0 +BRDA:395,45,1,0 +BRDA:403,46,0,0 +BRDA:403,46,1,0 +BRDA:413,47,0,0 +BRDA:413,47,1,0 +BRDA:430,48,0,0 +BRDA:430,48,1,0 +BRDA:453,49,0,0 +BRDA:453,49,1,0 +BRF:100 +BRH:0 +end_of_record +TN: +SF:pages/projects/benefits-navigator/index.js +FN:13,BenefitsNavigatorOverview +FN:18,(anonymous_1) +FN:36,generateReactElements +FN:45,(anonymous_3) +FN:56,(anonymous_4) +FN:80,(anonymous_5) +FN:105,(anonymous_6) +FN:786,(anonymous_7) +FNF:8 +FNH:0 +FNDA:0,BenefitsNavigatorOverview +FNDA:0,(anonymous_1) +FNDA:0,generateReactElements +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:14,0 +DA:15,0 +DA:16,0 +DA:19,0 +DA:25,0 +DA:37,0 +DA:39,0 +DA:40,0 +DA:41,0 +DA:44,0 +DA:45,0 +DA:46,0 +DA:50,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:61,0 +DA:66,0 +DA:67,0 +DA:72,0 +DA:73,0 +DA:77,0 +DA:80,0 +DA:81,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:112,0 +DA:786,0 +DA:788,0 +DA:792,0 +DA:796,0 +LF:33 +LH:0 +BRDA:19,0,0,0 +BRDA:19,0,1,0 +BRDA:19,0,2,0 +BRDA:19,0,3,0 +BRDA:40,1,0,0 +BRDA:40,1,1,0 +BRDA:44,2,0,0 +BRDA:44,2,1,0 +BRDA:55,3,0,0 +BRDA:55,3,1,0 +BRDA:66,4,0,0 +BRDA:66,4,1,0 +BRDA:72,5,0,0 +BRDA:72,5,1,0 +BRDA:85,6,0,0 +BRDA:85,6,1,0 +BRDA:90,7,0,0 +BRDA:90,7,1,0 +BRDA:94,8,0,0 +BRDA:94,8,1,0 +BRDA:95,9,0,0 +BRDA:95,9,1,0 +BRDA:97,10,0,0 +BRDA:97,10,1,0 +BRDA:106,11,0,0 +BRDA:106,11,1,0 +BRDA:107,12,0,0 +BRDA:107,12,1,0 +BRDA:117,13,0,0 +BRDA:117,13,1,0 +BRDA:126,14,0,0 +BRDA:126,14,1,0 +BRDA:134,15,0,0 +BRDA:134,15,1,0 +BRDA:141,16,0,0 +BRDA:141,16,1,0 +BRDA:153,17,0,0 +BRDA:153,17,1,0 +BRDA:163,18,0,0 +BRDA:163,18,1,0 +BRDA:173,19,0,0 +BRDA:173,19,1,0 +BRDA:178,20,0,0 +BRDA:178,20,1,0 +BRDA:184,21,0,0 +BRDA:184,21,1,0 +BRDA:200,22,0,0 +BRDA:200,22,1,0 +BRDA:220,23,0,0 +BRDA:220,23,1,0 +BRDA:229,24,0,0 +BRDA:229,24,1,0 +BRDA:235,25,0,0 +BRDA:235,25,1,0 +BRDA:247,26,0,0 +BRDA:247,26,1,0 +BRDA:260,27,0,0 +BRDA:260,27,1,0 +BRDA:269,28,0,0 +BRDA:269,28,1,0 +BRDA:276,29,0,0 +BRDA:276,29,1,0 +BRDA:288,30,0,0 +BRDA:288,30,1,0 +BRDA:303,31,0,0 +BRDA:303,31,1,0 +BRDA:316,32,0,0 +BRDA:316,32,1,0 +BRDA:321,33,0,0 +BRDA:321,33,1,0 +BRDA:332,34,0,0 +BRDA:332,34,1,0 +BRDA:341,35,0,0 +BRDA:341,35,1,0 +BRDA:346,36,0,0 +BRDA:346,36,1,0 +BRDA:351,37,0,0 +BRDA:351,37,1,0 +BRDA:359,38,0,0 +BRDA:359,38,1,0 +BRDA:366,39,0,0 +BRDA:366,39,1,0 +BRDA:373,40,0,0 +BRDA:373,40,1,0 +BRDA:378,41,0,0 +BRDA:378,41,1,0 +BRDA:383,42,0,0 +BRDA:383,42,1,0 +BRDA:395,43,0,0 +BRDA:395,43,1,0 +BRDA:400,44,0,0 +BRDA:400,44,1,0 +BRDA:405,45,0,0 +BRDA:405,45,1,0 +BRDA:411,46,0,0 +BRDA:411,46,1,0 +BRDA:418,47,0,0 +BRDA:418,47,1,0 +BRDA:425,48,0,0 +BRDA:425,48,1,0 +BRDA:433,49,0,0 +BRDA:433,49,1,0 +BRDA:439,50,0,0 +BRDA:439,50,1,0 +BRDA:448,51,0,0 +BRDA:448,51,1,0 +BRDA:455,52,0,0 +BRDA:455,52,1,0 +BRDA:467,53,0,0 +BRDA:467,53,1,0 +BRDA:474,54,0,0 +BRDA:474,54,1,0 +BRDA:482,55,0,0 +BRDA:482,55,1,0 +BRDA:489,56,0,0 +BRDA:489,56,1,0 +BRDA:496,57,0,0 +BRDA:496,57,1,0 +BRDA:509,58,0,0 +BRDA:509,58,1,0 +BRDA:516,59,0,0 +BRDA:516,59,1,0 +BRDA:529,60,0,0 +BRDA:529,60,1,0 +BRDA:536,61,0,0 +BRDA:536,61,1,0 +BRDA:548,62,0,0 +BRDA:548,62,1,0 +BRDA:555,63,0,0 +BRDA:555,63,1,0 +BRDA:563,64,0,0 +BRDA:563,64,1,0 +BRDA:570,65,0,0 +BRDA:570,65,1,0 +BRDA:577,66,0,0 +BRDA:577,66,1,0 +BRDA:590,67,0,0 +BRDA:590,67,1,0 +BRDA:597,68,0,0 +BRDA:597,68,1,0 +BRDA:610,69,0,0 +BRDA:610,69,1,0 +BRDA:617,70,0,0 +BRDA:617,70,1,0 +BRDA:629,71,0,0 +BRDA:629,71,1,0 +BRDA:636,72,0,0 +BRDA:636,72,1,0 +BRDA:644,73,0,0 +BRDA:644,73,1,0 +BRDA:651,74,0,0 +BRDA:651,74,1,0 +BRDA:658,75,0,0 +BRDA:658,75,1,0 +BRDA:665,76,0,0 +BRDA:665,76,1,0 +BRDA:672,77,0,0 +BRDA:672,77,1,0 +BRDA:685,78,0,0 +BRDA:685,78,1,0 +BRDA:692,79,0,0 +BRDA:692,79,1,0 +BRDA:707,80,0,0 +BRDA:707,80,1,0 +BRDA:713,81,0,0 +BRDA:713,81,1,0 +BRDA:719,82,0,0 +BRDA:719,82,1,0 +BRDA:731,83,0,0 +BRDA:731,83,1,0 +BRDA:741,84,0,0 +BRDA:741,84,1,0 +BRDA:777,85,0,0 +BRDA:777,85,1,0 +BRF:174 +BRH:0 +end_of_record +TN: +SF:pages/projects/dashboard/index.js +FN:12,MscaDashboard +FN:16,(anonymous_1) +FN:34,(anonymous_2) +FN:424,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,MscaDashboard +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:13,0 +DA:14,0 +DA:17,0 +DA:23,0 +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:41,0 +DA:424,0 +DA:426,0 +DA:430,0 +DA:434,0 +LF:13 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRDA:17,0,2,0 +BRDA:17,0,3,0 +BRDA:35,1,0,0 +BRDA:35,1,1,0 +BRDA:36,2,0,0 +BRDA:36,2,1,0 +BRDA:46,3,0,0 +BRDA:46,3,1,0 +BRDA:55,4,0,0 +BRDA:55,4,1,0 +BRDA:63,5,0,0 +BRDA:63,5,1,0 +BRDA:70,6,0,0 +BRDA:70,6,1,0 +BRDA:82,7,0,0 +BRDA:82,7,1,0 +BRDA:92,8,0,0 +BRDA:92,8,1,0 +BRDA:102,9,0,0 +BRDA:102,9,1,0 +BRDA:107,10,0,0 +BRDA:107,10,1,0 +BRDA:113,11,0,0 +BRDA:113,11,1,0 +BRDA:129,12,0,0 +BRDA:129,12,1,0 +BRDA:149,13,0,0 +BRDA:149,13,1,0 +BRDA:158,14,0,0 +BRDA:158,14,1,0 +BRDA:164,15,0,0 +BRDA:164,15,1,0 +BRDA:176,16,0,0 +BRDA:176,16,1,0 +BRDA:187,17,0,0 +BRDA:187,17,1,0 +BRDA:196,18,0,0 +BRDA:196,18,1,0 +BRDA:203,19,0,0 +BRDA:203,19,1,0 +BRDA:215,20,0,0 +BRDA:215,20,1,0 +BRDA:228,21,0,0 +BRDA:228,21,1,0 +BRDA:239,22,0,0 +BRDA:239,22,1,0 +BRDA:244,23,0,0 +BRDA:244,23,1,0 +BRDA:244,24,0,0 +BRDA:244,24,1,0 +BRDA:255,25,0,0 +BRDA:255,25,1,0 +BRDA:264,26,0,0 +BRDA:264,26,1,0 +BRDA:269,27,0,0 +BRDA:269,27,1,0 +BRDA:274,28,0,0 +BRDA:274,28,1,0 +BRDA:282,29,0,0 +BRDA:282,29,1,0 +BRDA:289,30,0,0 +BRDA:289,30,1,0 +BRDA:296,31,0,0 +BRDA:296,31,1,0 +BRDA:301,32,0,0 +BRDA:301,32,1,0 +BRDA:306,33,0,0 +BRDA:306,33,1,0 +BRDA:319,34,0,0 +BRDA:319,34,1,0 +BRDA:325,35,0,0 +BRDA:325,35,1,0 +BRDA:331,36,0,0 +BRDA:331,36,1,0 +BRDA:337,37,0,0 +BRDA:337,37,1,0 +BRDA:343,38,0,0 +BRDA:343,38,1,0 +BRDA:349,39,0,0 +BRDA:349,39,1,0 +BRDA:355,40,0,0 +BRDA:355,40,1,0 +BRDA:361,41,0,0 +BRDA:361,41,1,0 +BRDA:367,42,0,0 +BRDA:367,42,1,0 +BRDA:373,43,0,0 +BRDA:373,43,1,0 +BRDA:379,44,0,0 +BRDA:379,44,1,0 +BRDA:415,45,0,0 +BRDA:415,45,1,0 +BRF:94 +BRH:0 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/[id].js +FN:12,OASUpdatePage +FN:17,(anonymous_1) +FN:453,getStaticPaths +FN:461,(anonymous_3) +FN:472,(anonymous_4) +FN:483,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,OASUpdatePage +FNDA:0,(anonymous_1) +FNDA:0,getStaticPaths +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:13,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:24,0 +DA:455,0 +DA:459,0 +DA:461,0 +DA:462,0 +DA:466,0 +DA:472,0 +DA:474,0 +DA:478,0 +DA:481,0 +DA:483,0 +DA:484,0 +DA:489,0 +LF:20 +LH:0 +BRDA:18,0,0,0 +BRDA:18,0,1,0 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:29,2,0,0 +BRDA:29,2,1,0 +BRDA:38,3,0,0 +BRDA:38,3,1,0 +BRDA:46,4,0,0 +BRDA:46,4,1,0 +BRDA:53,5,0,0 +BRDA:53,5,1,0 +BRDA:62,6,0,0 +BRDA:62,6,1,0 +BRDA:72,7,0,0 +BRDA:72,7,1,0 +BRDA:77,8,0,0 +BRDA:77,8,1,0 +BRDA:83,9,0,0 +BRDA:83,9,1,0 +BRDA:99,10,0,0 +BRDA:99,10,1,0 +BRDA:117,11,0,0 +BRDA:117,11,1,0 +BRDA:126,12,0,0 +BRDA:126,12,1,0 +BRDA:132,13,0,0 +BRDA:132,13,1,0 +BRDA:144,14,0,0 +BRDA:144,14,1,0 +BRDA:155,15,0,0 +BRDA:155,15,1,0 +BRDA:164,16,0,0 +BRDA:164,16,1,0 +BRDA:171,17,0,0 +BRDA:171,17,1,0 +BRDA:183,18,0,0 +BRDA:183,18,1,0 +BRDA:192,19,0,0 +BRDA:192,19,1,0 +BRDA:200,20,0,0 +BRDA:200,20,1,0 +BRDA:203,21,0,0 +BRDA:203,21,1,0 +BRDA:212,22,0,0 +BRDA:212,22,1,0 +BRDA:215,23,0,0 +BRDA:215,23,1,0 +BRDA:228,24,0,0 +BRDA:228,24,1,0 +BRDA:233,25,0,0 +BRDA:233,25,1,0 +BRDA:242,26,0,0 +BRDA:242,26,1,0 +BRDA:247,27,0,0 +BRDA:247,27,1,0 +BRDA:258,28,0,0 +BRDA:258,28,1,0 +BRDA:263,29,0,0 +BRDA:263,29,1,0 +BRDA:268,30,0,0 +BRDA:268,30,1,0 +BRDA:274,31,0,0 +BRDA:274,31,1,0 +BRDA:281,32,0,0 +BRDA:281,32,1,0 +BRDA:288,33,0,0 +BRDA:288,33,1,0 +BRDA:296,34,0,0 +BRDA:296,34,1,0 +BRDA:301,35,0,0 +BRDA:301,35,1,0 +BRDA:306,36,0,0 +BRDA:306,36,1,0 +BRDA:311,37,0,0 +BRDA:311,37,1,0 +BRDA:316,38,0,0 +BRDA:316,38,1,0 +BRDA:321,39,0,0 +BRDA:321,39,1,0 +BRDA:326,40,0,0 +BRDA:326,40,1,0 +BRDA:331,41,0,0 +BRDA:331,41,1,0 +BRDA:336,42,0,0 +BRDA:336,42,1,0 +BRDA:342,43,0,0 +BRDA:342,43,1,0 +BRDA:349,44,0,0 +BRDA:349,44,1,0 +BRDA:357,45,0,0 +BRDA:357,45,1,0 +BRDA:363,46,0,0 +BRDA:363,46,1,0 +BRDA:370,47,0,0 +BRDA:370,47,1,0 +BRDA:377,48,0,0 +BRDA:377,48,1,0 +BRDA:385,49,0,0 +BRDA:385,49,1,0 +BRDA:390,50,0,0 +BRDA:390,50,1,0 +BRDA:395,51,0,0 +BRDA:395,51,1,0 +BRDA:404,52,0,0 +BRDA:404,52,1,0 +BRDA:409,53,0,0 +BRDA:409,53,1,0 +BRDA:419,54,0,0 +BRDA:419,54,1,0 +BRDA:424,55,0,0 +BRDA:424,55,1,0 +BRDA:431,56,0,0 +BRDA:431,56,1,0 +BRDA:435,57,0,0 +BRDA:435,57,1,0 +BRDA:444,58,0,0 +BRDA:444,58,1,0 +BRDA:462,59,0,0 +BRDA:462,59,1,0 +BRDA:485,60,0,0 +BRDA:485,60,1,0 +BRF:122 +BRH:0 +end_of_record +TN: +SF:pages/projects/oas-benefits-estimator/index.js +FN:13,OasBenefitsEstimator +FN:18,(anonymous_1) +FN:36,(anonymous_2) +FN:61,(anonymous_3) +FN:456,(anonymous_4) +FNF:5 +FNH:4 +FNDA:1,OasBenefitsEstimator +FNDA:12,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:0,(anonymous_4) +DA:14,1 +DA:15,1 +DA:16,1 +DA:19,12 +DA:25,1 +DA:36,1 +DA:37,1 +DA:61,1 +DA:62,1 +DA:63,0 +DA:64,0 +DA:68,1 +DA:456,1 +DA:458,0 +DA:462,0 +DA:466,0 +LF:16 +LH:11 +BRDA:19,0,0,12 +BRDA:19,0,1,11 +BRDA:19,0,2,10 +BRDA:19,0,3,9 +BRDA:41,1,0,0 +BRDA:41,1,1,1 +BRDA:46,2,0,1 +BRDA:46,2,1,1 +BRDA:46,3,0,0 +BRDA:46,3,1,1 +BRDA:50,4,0,0 +BRDA:50,4,1,1 +BRDA:51,5,0,0 +BRDA:51,5,1,1 +BRDA:53,6,0,0 +BRDA:53,6,1,1 +BRDA:62,7,0,0 +BRDA:62,7,1,1 +BRDA:63,8,0,0 +BRDA:63,8,1,0 +BRDA:73,9,0,0 +BRDA:73,9,1,1 +BRDA:82,10,0,0 +BRDA:82,10,1,1 +BRDA:90,11,0,0 +BRDA:90,11,1,1 +BRDA:97,12,0,0 +BRDA:97,12,1,1 +BRDA:109,13,0,0 +BRDA:109,13,1,1 +BRDA:119,14,0,0 +BRDA:119,14,1,1 +BRDA:129,15,0,0 +BRDA:129,15,1,1 +BRDA:134,16,0,0 +BRDA:134,16,1,1 +BRDA:140,17,0,0 +BRDA:140,17,1,1 +BRDA:156,18,0,0 +BRDA:156,18,1,1 +BRDA:176,19,0,0 +BRDA:176,19,1,1 +BRDA:185,20,0,0 +BRDA:185,20,1,1 +BRDA:191,21,0,0 +BRDA:191,21,1,1 +BRDA:203,22,0,0 +BRDA:203,22,1,1 +BRDA:214,23,0,0 +BRDA:214,23,1,1 +BRDA:223,24,0,0 +BRDA:223,24,1,1 +BRDA:230,25,0,0 +BRDA:230,25,1,1 +BRDA:242,26,0,0 +BRDA:242,26,1,1 +BRDA:255,27,0,0 +BRDA:255,27,1,1 +BRDA:268,28,0,0 +BRDA:268,28,1,1 +BRDA:273,29,0,1 +BRDA:273,29,1,1 +BRDA:273,30,0,0 +BRDA:273,30,1,1 +BRDA:284,31,0,0 +BRDA:284,31,1,1 +BRDA:293,32,0,0 +BRDA:293,32,1,1 +BRDA:298,33,0,0 +BRDA:298,33,1,1 +BRDA:303,34,0,0 +BRDA:303,34,1,1 +BRDA:311,35,0,0 +BRDA:311,35,1,1 +BRDA:318,36,0,0 +BRDA:318,36,1,1 +BRDA:325,37,0,0 +BRDA:325,37,1,1 +BRDA:330,38,0,0 +BRDA:330,38,1,1 +BRDA:335,39,0,0 +BRDA:335,39,1,1 +BRDA:347,40,0,0 +BRDA:347,40,1,1 +BRDA:356,41,0,0 +BRDA:356,41,1,1 +BRDA:361,42,0,0 +BRDA:361,42,1,1 +BRDA:368,43,0,0 +BRDA:368,43,1,1 +BRDA:373,44,0,0 +BRDA:373,44,1,1 +BRDA:378,45,0,0 +BRDA:378,45,1,1 +BRDA:383,46,0,0 +BRDA:383,46,1,1 +BRDA:389,47,0,0 +BRDA:389,47,1,1 +BRDA:398,48,0,0 +BRDA:398,48,1,1 +BRDA:403,49,0,0 +BRDA:403,49,1,1 +BRDA:411,50,0,0 +BRDA:411,50,1,1 +BRDA:422,51,0,0 +BRDA:422,51,1,1 +BRDA:427,52,0,0 +BRDA:427,52,1,1 +BRDA:434,53,0,0 +BRDA:434,53,1,1 +BRDA:438,54,0,0 +BRDA:438,54,1,1 +BRDA:447,55,0,0 +BRDA:447,55,1,1 +BRF:114 +BRH:60 +end_of_record