{"version":3,"file":"js/app.bcb92519.js","mappings":"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","sources":["webpack://reporter/./src/App.vue?3c19","webpack://reporter/./src/components/Footer.vue?0861","webpack://reporter/./src/components/Navigation.vue?ae11","webpack://reporter/./src/components/global/qualtrics.vue?b259","webpack://reporter/./src/components/home/ChartTile.vue?2086","webpack://reporter/./src/components/home/FeatureArea.vue?4992","webpack://reporter/./src/components/home/MapTile.vue?e42c","webpack://reporter/./src/components/home/Matchmaker.vue?3cd2","webpack://reporter/./src/components/home/ProjectsSearch.vue?a393","webpack://reporter/./src/components/home/PublicationsSearch.vue?1a06","webpack://reporter/./src/components/home/SearchTile.vue?24a4","webpack://reporter/./src/components/home/SearchTiles.vue?e9ef","webpack://reporter/./src/components/searchFields/ControlList.vue?02d6","webpack://reporter/./src/components/searchFields/Field.vue?e2e2","webpack://reporter/./src/components/searchFields/FieldError.vue?8cb9","webpack://reporter/./src/components/searchFields/FieldTooltip.vue?c2b9","webpack://reporter/./src/components/searchFields/InputDate.vue?508a","webpack://reporter/./src/components/searchFields/InputRange.vue?5171","webpack://reporter/./src/components/searchFields/InputText.vue?557e","webpack://reporter/./src/components/searchFields/MultiSelect.vue?2754","webpack://reporter/./src/components/searchFields/MultiSelectList.vue?b5f3","webpack://reporter/./src/components/searchFields/SmartSearch.vue?60ed","webpack://reporter/./src/components/searchFields/transitionCollapseHeight.vue?da0d","webpack://reporter/./src/views/Home.vue?633c","webpack://reporter/./src/App.vue","webpack://reporter/./src/globalMixins.js","webpack://reporter/./src/global.js","webpack://reporter/./src/App.vue?7ccd","webpack://reporter/./src/views/Home.vue","webpack://reporter/./src/components/home/FeatureArea.vue","webpack://reporter/./src/components/home/FeatureArea.vue?93be","webpack://reporter/./src/components/home/SearchTiles.vue","webpack://reporter/./src/components/home/SearchTile.vue","webpack://reporter/./src/components/home/ProjectsSearch.vue","webpack://reporter/./src/components/home/ProjectsSearch.vue?b85a","webpack://reporter/./src/components/home/PublicationsSearch.vue","webpack://reporter/./src/components/home/PublicationsSearch.vue?ffba","webpack://reporter/./src/components/home/Matchmaker.vue","webpack://reporter/./src/components/home/Matchmaker.vue?7f64","webpack://reporter/./src/components/home/SearchTile.vue?8ce4","webpack://reporter/./src/components/home/SearchTiles.vue?48f0","webpack://reporter/./src/components/home/MapTile.vue","webpack://reporter/./src/components/home/MapTile.vue?c5b5","webpack://reporter/./src/components/home/ChartTile.vue","webpack://reporter/./src/components/home/ChartTile.vue?97c2","webpack://reporter/./src/views/Home.vue?9051","webpack://reporter/./src/router.js","webpack://reporter/./src/shared/appsettings.service.js","webpack://reporter/./src/store.js","webpack://reporter/./src/filters.js","webpack://reporter/./src/main.js","webpack://reporter/./src/searchFieldSpecs.js","webpack://reporter/./src/sharedSpecs.js","webpack://reporter/./src/shared/breakpoints.utils.js","webpack://reporter/./src/shared/event-bus.js","webpack://reporter/./src/shared/querydata.mixin.js","webpack://reporter/./src/shared/config.js","webpack://reporter/./src/shared/user.service.js","webpack://reporter/./src/components/Footer.vue","webpack://reporter/./src/components/Footer.vue?7cca","webpack://reporter/./src/components/Navigation.vue","webpack://reporter/./src/components/UserMenu.vue","webpack://reporter/./src/components/UserMenu.vue?144d","webpack://reporter/./src/components/Navigation.vue?399a","webpack://reporter/./src/components/QueryDetailsForm.vue","webpack://reporter/./src/components/QueryDetailsForm.vue?55da","webpack://reporter/./src/components/global/qualtrics.vue","webpack://reporter/./src/components/global/qualtrics.vue?4b95","webpack://reporter/./src/components/searchFields/Field.vue","webpack://reporter/./src/components/searchFields/MultiSelect.vue","webpack://reporter/./src/components/searchFields/MultiSelectList.vue","webpack://reporter/./src/components/searchFields/transitionCollapseHeight.vue","webpack://reporter/./src/components/searchFields/transitionCollapseHeight.vue?f060","webpack://reporter/./src/components/searchFields/MultiSelectList.vue?ae14","webpack://reporter/./src/components/searchFields/ControlList.vue","webpack://reporter/./src/components/searchFields/ControlList.vue?d746","webpack://reporter/./src/components/searchFields/MultiSelect.vue?ea11","webpack://reporter/./src/components/searchFields/InputText.vue","webpack://reporter/./src/components/searchFields/InputText.vue?034b","webpack://reporter/./src/components/searchFields/InputDate.vue","webpack://reporter/./src/components/searchFields/InputDate.vue?5efd","webpack://reporter/./src/components/searchFields/InputRange.vue","webpack://reporter/./src/components/searchFields/InputRange.vue?f2d8","webpack://reporter/./src/components/searchFields/Field.vue?27e2","webpack://reporter/./src/components/searchFields/FieldError.vue","webpack://reporter/./src/components/searchFields/FieldError.vue?1455","webpack://reporter/./src/components/searchFields/FieldTooltip.vue","webpack://reporter/./src/components/searchFields/FieldTooltip.vue?a93f","webpack://reporter/./src/components/searchFields/SmartSearch.vue","webpack://reporter/./src/components/searchFields/SmartSearch.vue?c7a8","webpack://reporter/./src/App.vue?db61","webpack://reporter/./src/components/Footer.vue?39f9","webpack://reporter/./src/components/Navigation.vue?e638","webpack://reporter/./src/components/global/qualtrics.vue?ab25","webpack://reporter/./src/components/home/ChartTile.vue?3324","webpack://reporter/./src/components/home/FeatureArea.vue?7559","webpack://reporter/./src/components/home/MapTile.vue?6f1c","webpack://reporter/./src/components/home/Matchmaker.vue?0749","webpack://reporter/./src/components/home/ProjectsSearch.vue?c773","webpack://reporter/./src/components/home/PublicationsSearch.vue?eea5","webpack://reporter/./src/components/home/SearchTile.vue?5921","webpack://reporter/./src/components/home/SearchTiles.vue?2ca0","webpack://reporter/./src/components/searchFields/ControlList.vue?b5c5","webpack://reporter/./src/components/searchFields/Field.vue?51d3","webpack://reporter/./src/components/searchFields/FieldError.vue?d3c4","webpack://reporter/./src/components/searchFields/FieldTooltip.vue?9995","webpack://reporter/./src/components/searchFields/InputDate.vue?e844","webpack://reporter/./src/components/searchFields/InputRange.vue?54cc","webpack://reporter/./src/components/searchFields/InputText.vue?db38","webpack://reporter/./src/components/searchFields/MultiSelect.vue?e5d7","webpack://reporter/./src/components/searchFields/MultiSelectList.vue?f91a","webpack://reporter/./src/components/searchFields/SmartSearch.vue?bf20","webpack://reporter/./src/components/searchFields/transitionCollapseHeight.vue?ca2a","webpack://reporter/./src/views/Home.vue?0d75","webpack://reporter/webpack/bootstrap","webpack://reporter/webpack/runtime/chunk loaded","webpack://reporter/webpack/runtime/compat get default export","webpack://reporter/webpack/runtime/define property getters","webpack://reporter/webpack/runtime/ensure chunk","webpack://reporter/webpack/runtime/get javascript chunk filename","webpack://reporter/webpack/runtime/global","webpack://reporter/webpack/runtime/hasOwnProperty shorthand","webpack://reporter/webpack/runtime/load script","webpack://reporter/webpack/runtime/make namespace object","webpack://reporter/webpack/runtime/node module decorator","webpack://reporter/webpack/runtime/publicPath","webpack://reporter/webpack/runtime/jsonp chunk loading","webpack://reporter/webpack/startup"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../static/img/header-background.jpg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"../static/img/header-background-m.jpg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath fill=%27none%27 stroke=%27%23dee2e6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27m6 10 3 3 6-6%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3E%3Ccircle r=%272%27 fill=%27%23fff%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3E%3Ccircle r=%273%27 fill=%27rgba%280, 0, 0, 0.25%29%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3E%3Ccircle r=%273%27 fill=%27%2380aacb%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3E%3Ccircle r=%273%27 fill=%27%23fff%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3E%3Ccircle r=%273%27 fill=%27rgba%28255, 255, 255, 0.25%29%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3E%3Cpath fill=%27%2329c047%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23c32d2d%27%3E%3Ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3E%3Cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3E%3Ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23c32d2d%27 stroke=%27none%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3E%3Cpath stroke=%27rgba%2833, 37, 41, 0.75%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 30 30%27%3E%3Cpath stroke=%27rgba%28255, 255, 255, 0.55%29%27 stroke-linecap=%27round%27 stroke-miterlimit=%2710%27 stroke-width=%272%27 d=%27M4 7h22M4 15h22M4 23h22%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27 stroke=%27%23212529%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m2 5 6 6 6-6%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27none%27 stroke=%27%2300223c%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m2 5 6 6 6-6%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%236798c0%27%3E%3Cpath fill-rule=%27evenodd%27 d=%27M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath d=%27M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3E%3Cpath d=%27M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_20___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 fill=%27%23fff%27%3E%3Cpath d=%27M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\nvar ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"body,html{margin:0;padding:0;position:relative}.nowrap{white-space:nowrap}.breakall{word-break:break-all}.btn-group-lg>.btn,.btn-lg{font-weight:500}.btn-round{font-weight:700;border-radius:30px}.btn-toggle{border:0;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:4px 8px;background-color:#fff;border-left:1px solid #b0b0b0;border-right:1px solid #b0b0b0;position:relative}.btn-toggle .button-icon{display:none;position:absolute;top:6px;left:6px;height:15px}.btn-toggle.active{background-color:#0d518c;color:#fff;pointer-events:none}.btn-toggle.active .button-icon{display:inline;fill:#fff}.btn-toggle.active.button-with-icon{padding-left:25px}.btn-toggle:first-child{border-left:none}.btn-toggle:last-child{border-right:none}.input-group{border-radius:5px}.field-wrapper,.search-field{position:relative}.search-field{margin-bottom:2em}.search-field .field-help-text{margin-top:.5em;color:#757575;line-height:1.2em;font-size:13px;letter-spacing:-.02em}.search-field .transition{position:absolute;width:calc(100% - 30px)}.search-field .loader{border-width:2px}@media screen and (max-width:767px){.search-field .field-title{display:block;width:100%}}.search-field .custom-checkbox.custom-control{z-index:unset}.field-title,.page-title,.page-title-text{display:inline-block;position:relative;font-size:24px;font-weight:500;line-height:1em;margin-bottom:.75em}@media screen and (max-width:1250px)and (min-width:1200px){.field-title,.page-title,.page-title-text{font-size:22px}}.field-title a,.page-title a,.page-title-text a{color:#fff}.field-title a:active,.field-title a:focus,.field-title a:hover,.page-title a:active,.page-title a:focus,.page-title a:hover,.page-title-text a:active,.page-title-text a:focus,.page-title-text a:hover{color:#fff;text-decoration:none}.field-title:after,.page-title-text:after,.page-title:after{content:\\\"\\\";position:absolute;bottom:-.2em;left:0;line-height:1em;width:100%;height:4px;background-color:transparent}.field-selected-count{position:relative;display:inline-block;padding:0 .35em;top:-2px;height:20px;font-size:14px;font-weight:700;background-color:#e7f1fb;color:#20558a;border-radius:20px}.field-selected-count.field-count-exceeded{color:#c32d2d;background-color:#f9edeb}.field-help-text{font-size:14px;font-weight:500;margin-top:5px;line-height:1.2em}.field-error .input-group .input-text__input{-webkit-box-shadow:0 0 0 2px #d86262;box-shadow:0 0 0 2px #d86262}.field-error .input-group .input-text__input:focus{-webkit-box-shadow:0 0 0 3px rgba(216,98,98,.75);box-shadow:0 0 0 3px rgba(216,98,98,.75)}.text-highlight{background-color:rgba(216,98,98,.5);border-radius:3px;-webkit-box-shadow:0 0 0 2px rgba(216,98,98,.5);box-shadow:0 0 0 2px rgba(216,98,98,.5)}.widget-button{display:inline-block;padding:3px 8px;background-color:#fff;color:#555;border:none;border-radius:3px;font-size:14px;font-weight:500;font-family:Roboto,Helvetica,Arial,sans-serif;-webkit-transition:.3s;transition:.3s;vertical-align:middle}.widget-button:not(.nohover){cursor:pointer}.widget-button:not(.nohover):focus,.widget-button:not(.nohover):hover{background-color:#0566b1;color:#fff;text-decoration:none;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.5);box-shadow:0 2px 5px rgba(0,0,0,.5);outline:none}.widget-button:not(.nohover):focus .dropdown-icon,.widget-button:not(.nohover):focus .widget-button-icon .color1,.widget-button:not(.nohover):hover .dropdown-icon,.widget-button:not(.nohover):hover .widget-button-icon .color1{fill:#fff}.widget-button.disabled,.widget-button:disabled{opacity:.6}.widget-button.disabled:focus,.widget-button.disabled:hover,.widget-button:disabled:focus,.widget-button:disabled:hover{background-color:#eee;color:#555;-webkit-box-shadow:none;box-shadow:none}.widget-button.disabled:focus .widget-button-icon .color1,.widget-button.disabled:hover .widget-button-icon .color1,.widget-button:disabled:focus .widget-button-icon .color1,.widget-button:disabled:hover .widget-button-icon .color1{fill:#555}.widget-button .dropdown-icon{width:15px;height:15px;margin-left:5px}.widget-button-icon{position:relative;top:-1px;width:18px;height:18px;vertical-align:middle}.widget-button-icon .color1{-webkit-transition:.3s;transition:.3s;fill:#555}.widget-button-share{padding:2px 6px}.widget-button-share.highlight,.widget-button-share.highlight:focus,.widget-button-share.highlight:hover{color:#087235;background-color:#d3f5e1}.widget-button-share.highlight .color1,.widget-button-share.highlight:focus .color1,.widget-button-share.highlight:hover .color1{fill:#087235}.widget-button-share .widget-button-icon{width:15px;height:15px;left:5px}.feature-area-wrapper{background-color:#063c63;background:-webkit-gradient(linear,left top,right top,color-stop(1%,#063c63),color-stop(50%,#1c496f),color-stop(75%,#347a7d),to(#507b82));background:linear-gradient(90deg,#063c63 1%,#1c496f 50%,#347a7d 75%,#507b82)}.feature-area{padding:calc(4em + 64px) 20px 0;background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") #1f5581 no-repeat 50% fixed;background-size:cover;color:#fff;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover}@media only screen and (max-width:480px){.feature-area{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") #1f5581 no-repeat 50% fixed;background-size:cover}}.feature-area.feature-area-compact{padding-top:calc(2em + 64px);padding-bottom:0}.feature-area .pageHeader{padding:0 0 2em;position:relative}.feature-area .search-form-container{position:relative;padding:15px 0;padding:21.6px 24px;color:#212529;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);height:100%;-webkit-transition:.3s;transition:.3s}.search-form .stackable-fields .search-field{margin-bottom:5px}.search-form .custom-control,.search-form .form-check-inline{margin-top:5px;position:static;z-index:100}.search-form .field-title{width:100%}.search-form .field-title .field-tooltip{top:25px;left:0;width:200%}.search-form .row .col-lg-4:nth-child(3n+1) .field-title{position:unset}.search-form .row .col-lg-4:nth-child(3n+3) .field-tooltip{right:0;left:auto}.search-form .row .col-lg-6 .field-tooltip{width:150%}.search-form .row .col-lg-6 .field-title{position:unset}.search-form .row .col-lg-2 .field-tooltip{width:400%}.search-form .row .col-lg-2 .custom-control{z-index:unset;position:unset}.search-form .row .col-md-9 .field-tooltip{width:100%}@media screen and (min-width:768px)and (max-width:991px){.search-form .row .col-md-6:nth-child(2n) .field-tooltip{right:0;left:auto}.search-form .row .col-lg-6.col-md-6 .field-tooltip,.search-form .row .col-md-6:nth-child(odd) .field-tooltip{left:0;right:auto}}@media screen and (max-width:768px){.search-form .row .col-sm-12 .field-tooltip{left:0;width:95%;right:auto}}.block-input,.form-check-inline{margin-top:5px}.block-input{padding-left:0;display:block}.fixed-header{position:absolute;top:0;width:100%}.fixed-head{position:fixed;top:0}.fixed-head~.chartDataTable:not(.content-with-sidebar){padding-top:70px}.sidebar{width:250px;background-color:#ececec;float:left;z-index:1}.sidebar:not(.fixed-head){position:relative}@media screen and (max-width:1300px){.sidebar{width:200px}}@media screen and (max-width:991px){.sidebar{position:relative;width:100%;float:none}.sidebar.fixed-head{position:fixed;top:0;background-color:#ececec;z-index:1}}.sidebar .nav-tabs{padding:5px;border:none}.content-with-sidebar{padding-left:250px}@media screen and (max-width:1300px){.content-with-sidebar{padding-left:200px}}@media screen and (max-width:991px){.content-with-sidebar{padding-left:0}}.project-number-group .project-number-or{display:block;width:100%}.project-number-group .project-number-multi .input-group,.project-number-group .project-number-split .search-field{-webkit-transition:.3s;transition:.3s}.project-number-group .project-number-multi.search-field.disabled .input-group,.project-number-group .project-number-split .search-field.disabled{opacity:.25}.project-number-group .project-number-split .col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.project-number-group .project-number-split .col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.project-number-group .project-number-split .col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.project-number-multi{margin-bottom:.25em}.project-number-split{margin-top:.25em}.project-number-split .input-text__input.textInput{padding:10px 0;letter-spacing:0;text-align:center}@media(min-width:768px)and (max-width:780px),(min-width:992px)and (max-width:1140px){.project-number-split .input-text__input.textInput{font-family:Roboto Condensed,sans-serif}}.project-number-split .field-help-text{text-align:center}.project-number-split .char-2{-webkit-box-flex:0;-ms-flex:0 0 14.66667%;flex:0 0 14.66667%;max-width:14.66667%}.project-number-split .char-4{-webkit-box-flex:0;-ms-flex:0 0 20.66667%;flex:0 0 20.66667%;max-width:20.66667%}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}#app-body{overflow-x:hidden;overflow-y:scroll}#app-body .mx-datepicker{width:100%}#app-body .mx-input{display:inline-block;margin:0;width:100%;overflow:auto;font-size:15px;resize:vertical;min-height:42px;z-index:2;padding:.72rem .5rem;height:calc(2.875rem + 2px);background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}#app-body .mx-datepicker-popup{-webkit-box-shadow:none;box-shadow:none;border:1px solid #aaa}.no-data{padding:20px 20px;font-size:18px}.vue-slider-mark{display:none}.searchResults{width:100%;border-top:4px solid #ececec;min-height:120vh}.slide-enter-active,.slide-leave-active{-webkit-transition:1s;transition:1s}.slide-enter{opacity:0}.slide-enter,.slide-leave-to{-webkit-transform:translate(100%);transform:translate(100%)}.mx-calendar-content{overflow:auto}@media screen and (max-width:768px){.tableContainer{margin-top:5px}}.data-table{width:100%;background-color:#fff;font-size:16px;z-index:11}@media screen and (max-width:1300px){.data-table{font-size:14px}}@media screen and (max-width:1200px){.data-table{font-size:13px}}@media screen and (max-width:768px){.data-table{border-top:3px solid #20558a}}.data-table tr td,.data-table tr th{line-height:1.2em}.data-table tr td:first-child,.data-table tr th:first-child{padding-left:4px}.data-table tr td:last-child,.data-table tr th:last-child{padding-right:4px}.data-table tr td.column-appl_type_code,.data-table tr th.column-appl_type_code{padding-right:1px}.data-table tr td.column-activity_code,.data-table tr td.column-support_yr,.data-table tr th.column-activity_code,.data-table tr th.column-support_yr{padding-left:0;padding-right:1px}.data-table tr td.column-ic_serial_num,.data-table tr th.column-ic_serial_num{padding-left:0;padding-right:0}.data-table tr td.column-subproject_id,.data-table tr th.column-subproject_id{padding-left:0}.data-table tr td.column-appl_type_code,.data-table tr th.column-appl_type_code{max-width:1.7em}.data-table tr td.column-appl_type_code[colspan=\\\"4\\\"],.data-table tr th.column-appl_type_code[colspan=\\\"4\\\"]{width:9em;word-break:break-all}.data-table tr td.column-appl_type_code[colspan=\\\"5\\\"],.data-table tr th.column-appl_type_code[colspan=\\\"5\\\"]{width:15em;word-break:break-all}.data-table tr td.column-activity_code,.data-table tr th.column-activity_code{width:1.77em}.data-table tr td.column-ic_serial_num,.data-table tr th.column-ic_serial_num{width:4.5em}.data-table tr td.column-support_yr,.data-table tr th.column-support_yr{width:2.43em}.data-table tr td.column-funding,.data-table tr th.column-funding{padding-right:13px}.data-table tr td .additional-data,.data-table tr th .additional-data{margin-top:15px;display:block;white-space:pre;font-weight:700}.data-table tr.title-row{font-size:18px;font-weight:600}@media screen and (max-width:1300px){.data-table tr.title-row{font-size:16px}}@media screen and (max-width:1200px){.data-table tr.title-row{font-size:15px}}.data-table tr.title-row td{padding-top:10px;padding-bottom:4px}.data-table tr.title-row a{color:#1f5581;text-decoration:none}@media screen and (max-width:768px){.data-table tr.title-row a{display:inline-block;line-height:1.2em}}.data-table tbody tr:not(.title-row){border-bottom:1px solid #dedede}@media screen and (max-width:768px){.data-table tfoot{background-color:#ebfbe7}.data-table tfoot:before{display:block;content:\\\"Total\\\";margin:5px;font-size:16px;font-weight:700;border-bottom:3px solid #29c047}}.data-table tfoot .footer-note{padding:10px 0 25px;font-size:15px}.data-table tfoot .footer-note:first-child{font-weight:400}.data-table th{background-color:#1f5581;color:#fff;padding:6px 7px 6px;border-right:1px solid #1f5581;white-space:pre-wrap;word-wrap:break-word;font-family:inherit;border-top:4px solid #1f5581;border-bottom:4px solid #1f5581;position:relative}.data-table th a{color:#fff}.data-table th .field-tooltip{right:0;left:auto}.data-table th.sortby{background-color:#336495;cursor:pointer}.data-table th.sortby.asc,.data-table th.sortby:focus.asc,.data-table th.sortby:hover.asc{border-top-color:#17bb48;border-bottom-color:#336495}.data-table th.sortby.desc,.data-table th.sortby:focus.desc,.data-table th.sortby:hover.desc{border-top-color:#336495;border-bottom-color:#17bb48}.data-table th.sortby span{padding-right:17px}.data-table th.sortable:focus,.data-table th.sortable:hover{background-color:#336495;border-color:#336495}.data-table th.sortable:focus span,.data-table th.sortable:hover span{cursor:pointer}.data-table th span.no-break{white-space:pre}.data-table th span.centerAlign{text-align:center;display:block}.data-table .arrow{height:13px;width:13px;fill:#fff;position:absolute;right:3px;top:calc(50% - 5px)}.data-table td{position:relative;padding:6px 3px 6px 5px;color:#3f3f3f;vertical-align:top}@media screen and (max-width:1300px){.data-table td{padding:4px 2px 4px 4px}}@media screen and (max-width:1200px){.data-table td{padding:3px 2px 3px 3px}}.data-table td.rightAlign{text-align:right}.data-table td.centerAlign{text-align:center}.data-table td.no-break{white-space:pre;padding-right:25px}.data-table td.column-activity_code,.data-table td.column-appl_type_code,.data-table td.column-ic_serial_num,.data-table td.column-subproject_id,.data-table td.column-support_yr,.data-table td.column-support_yr_suffix_code{font-family:Roboto Mono,Roboto,sans-serif}.data-table td.column-core_project_num{width:20%}.data-table td.column-author_list{width:25%}.data-table td.column-{min-width:80px}@media screen and (max-width:768px){.data-table td.column-activity_code,.data-table td.column-appl_type_code,.data-table td.column-ic_serial_num,.data-table td.column-subproject_id,.data-table td.column-support_yr{display:inline-block!important;width:auto!important;padding-right:0!important}.data-table td.column-activity_code:before,.data-table td.column-appl_type_code:before,.data-table td.column-ic_serial_num:before,.data-table td.column-subproject_id:before,.data-table td.column-support_yr:before{display:none}}.data-table td.column-activity_code,.data-table td.column-ic_serial_num,.data-table td.column-support_yr{padding-left:0!important}@media screen and (max-width:768px){.data-table td.column-support_yr a:before{content:\\\"-\\\";display:inline-block}}.data-table td.column-support_yr:before{content:\\\"-\\\"}.data-table td.column-support_yr_suffix_code{padding-left:0!important}@media screen and (max-width:768px){.data-table td.column-support_yr_suffix_code a:before{content:\\\"-\\\";display:inline-block}}.data-table td.column-support_yr_suffix_code:before{content:\\\"-\\\"}.data-table td.column-full_name{width:300px}.data-table td.column-ic_abbr{width:125px}.data-table td.column-po_email{line-height:1.5em;width:390px;min-height:33px;outline:none;border:none}.data-table td.column-po_email a{text-decoration:none}.data-table td.column-po_email .view-email{margin-right:5px;margin-top:0;padding:3px 8px;min-width:80px}.data-table td.column-po_email .info{color:#757575;font-size:14px}.data-table td.column-po_email .hidden-text-placeholder{height:25px;display:block;-webkit-transition:.2s;transition:.2s;color:#1f5581;background-color:#ececec;padding:3px 8px}.data-table td.column-po_email .hidden-text-placeholder.email0{width:120px}.data-table td.column-po_email .hidden-text-placeholder.email1{width:100px}.data-table td.column-po_email .hidden-text-placeholder.email2{width:110px}.data-table td.column-po_email .hidden-text-placeholder.email3{width:125px}.data-table td.column-po_email .hidden-text-placeholder.email4{width:95px}.data-table td.column-po_email .hidden-text-placeholder.email5{width:105px}.data-table td.column-po_email .hidden-text-placeholder.email6{width:115px}.data-table td.column-po_email .hidden-text-placeholder.email7{width:135px}.data-table td.column-po_email .hidden-text-placeholder span{display:none}.data-table td.column-po_email:focus .hidden-text-placeholder,.data-table td.column-po_email:hover .hidden-text-placeholder{width:95px;padding:3px 2px 3px 8px;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.25);box-shadow:0 2px 3px rgba(0,0,0,.25);border-radius:15px;color:#fff;background-color:#1f5581}.data-table td.column-po_email:focus .hidden-text-placeholder span,.data-table td.column-po_email:hover .hidden-text-placeholder span{display:block}.data-table td.column-po_email:focus .hidden-text-placeholder:focus,.data-table td.column-po_email:focus .hidden-text-placeholder:hover,.data-table td.column-po_email:hover .hidden-text-placeholder:focus,.data-table td.column-po_email:hover .hidden-text-placeholder:hover{background-color:#1f5581;color:#fff}.data-table td .sub-text{font-size:14px;font-weight:700;color:#757575}.data-table td .contact-pi-link{margin-left:1em}@media screen and (max-width:768px){.data-table td .contact-pi-link{margin-left:0}.data-table td .contact-pi-link:after{content:\\\";\\\"}.data-table td .contact-pi-link.spacer{display:inline}}.data-table td .contact-pi-link~.spacer{margin-left:1em}@media screen and (max-width:768px){.data-table td .contact-pi-link~.spacer{display:inline}.data-table td .contact-pi-link~.spacer:after{content:\\\";\\\"}}.data-table td .contact-pi-link .icon-exit-link{margin-left:3px}.data-table td .icon-contact-pi{position:absolute;margin-top:1px;width:1em;height:1em;margin-left:-1em;color:#b1c5d4}@media screen and (max-width:768px){.data-table td .icon-contact-pi{position:relative;margin-left:0}}.data-table td a{text-decoration:underline;color:#3f3f3f}.data-table td a:after{margin-bottom:4px}.data-table td a.button{margin-top:-4px;padding:3px 2px 3px 8px;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.25);box-shadow:0 2px 3px rgba(0,0,0,.25);border-radius:15px;text-decoration:none;display:inline-block;min-width:4.25em;color:#1f5581;background-color:#ececec}.data-table td a.button .row-button-icon{width:14px;height:14px;fill:#20558a}.data-table td a.button:not(.disabled):focus,.data-table td a.button:not(.disabled):hover{background-color:#1f5581;color:#fff}.data-table td a.button:not(.disabled):focus i,.data-table td a.button:not(.disabled):hover i{border-color:#fff}.data-table td a.button:not(.disabled):focus .row-button-icon,.data-table td a.button:not(.disabled):hover .row-button-icon{fill:#fff}.data-table td a.disabled{opacity:.7;cursor:not-allowed}.data-table td .icon a{margin-bottom:7px;margin-right:7px;text-align:left}.data-table td .icon a .row-button-icon{fill:#20558a}.data-table td .icon a .row-button-icon.icon-google{fill:#c32d2d}.data-table td .icon a .row-button-icon.icon-pubmed_cited{fill:#102f68}.data-table td i{border-color:#1f5581;margin-left:4px}.data-table td .spacer{padding-top:5px;display:block}.data-table td .spacer:first-child{padding-top:0}.data-table td .italics{font-style:italic}.data-table td .smallScreen{display:none}@media screen and (max-width:768px){.data-table td.centerAlign,.data-table td.rightAlign{text-align:left}.data-table td .smallScreen{display:block}.data-table td .noSmallScreen{display:none}.data-table td a.button{background:transparent;-webkit-box-shadow:none;box-shadow:none;text-decoration:underline}.data-table td a.button:focus,.data-table td a.button:hover{background-color:transparent;color:#1f5581}}.data-table.fixed-within{position:absolute;top:0}.drill-down-header{padding:5px 10px 10px}.drill-down-header .drill-down-label{font-size:16px;padding:0 10px 0 0}.drill-down-header .drill-down-label span{font-weight:700}.drill-down-header .back-btn{background-color:#0d518c;color:#fff;display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;-webkit-transition:.3s;transition:.3s}.drill-down-header .back-btn:active,.drill-down-header .back-btn:hover{text-decoration:none;border:none}.drill-down-header .back-btn:focus{border:none}.data-section .data-table{border-bottom-right-radius:5px}.data-section .data-table,.data-section .data-table tbody tr:last-child td:first-child{border-bottom-left-radius:5px}.data-section .data-table tbody tr:last-child td:last-child{border-bottom-right-radius:5px}.project-details-page .project-details .project-description .section-header+.data-section.tableOnly{border-radius:5px;background-color:#fff}.home{position:relative;z-index:10}.home .search-buttons{font-size:18px;margin-top:0;margin-top:1.5em;margin-bottom:1.5em}.home .search-buttons.advanced-search{margin-top:0;margin-bottom:0}@media screen and (min-width:768px){.home .search-buttons.advanced-search.search-buttons-top{margin-top:-42px}}.home .search-buttons .btn{padding-left:0;padding-right:0}.home .search-buttons .btn+.btn{margin-left:.75em}.home .btn-search{width:55%}.home .btn-search:disabled{opacity:1}.home .btn-clear{width:calc(45% - .75em)}.tile{padding:21.6px 24px;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);height:100%;-webkit-transition:.3s;transition:.3s;outline:none;overflow:hidden}@media screen and (max-width:768px){.tile{padding-left:10px;padding-right:10px}}.tile-chart{width:100%;height:240px}.global-tooltip{position:absolute;width:auto;background-color:rgba(0,0,0,.6);border-radius:5px;padding:2px 5px;color:#fff;font-size:14px;z-index:101}.hightlight-text em,.project-details-page .project-basics .title em,.term em{color:#000;font-weight:500;font-style:normal;background-color:#fff280;-webkit-box-shadow:0 0 0 3px #fff280;box-shadow:0 0 0 3px #fff280}.term em{font-weight:600}.project-details-page .project-basics .title em{color:#102f68}.home-charts+.search-tiles-container{min-height:430px}.tile-link{display:inline-block;margin:10px 0 0;padding:5px 8px 5px 12px;background-color:#ececec;border-radius:15px;color:#333;font-weight:700;cursor:pointer}@media screen and (max-width:1250px)and (min-width:1200px){.tile-link{font-size:13px}}.tile-link:focus,.tile-link:hover{text-decoration:none;background-color:#e7f1fb;color:#20558a}.tile-link:focus .arrow-right,.tile-link:hover .arrow-right{fill:#20558a}.tile-link .arrow-right{position:relative;margin-left:5px;top:-1px;width:15px;height:15px;fill:#333}.field-error-message{display:block;width:100%;margin-top:5px;color:#cc4545;font-weight:500;border-radius:4px}.field-error-message.error-large{padding:2em;background-color:snow;text-align:center;font-size:18px;font-weight:700;border-radius:5px}.error-code{font-size:12px;font-weight:400}.news-sections .loading{bottom:15px}.news-sections .loading .loader{top:100px!important}:root .dropdown-header,:root .dropdown-item,_:-ms-fullscreen{white-space:normal}:root .dropdown-menu,_:-ms-fullscreen{min-width:8rem}#skip-nav{top:-30px;left:3px;width:auto;height:auto;padding:4px 8px;z-index:1070;position:absolute;background-color:#f2f2f2;-webkit-transition:.3s;transition:.3s;border-radius:5px;opacity:0}.exporter-icons:focus,.exporter-icons:hover{color:#fff;text-decoration:none}.icon-xml{-webkit-box-shadow:0 5px 15px #bd7e24;box-shadow:0 5px 15px #bd7e24;background:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#f39823),to(#c58325));background:linear-gradient(180deg,#f39823 1%,#c58325)}.icon-csv,.icon-xml{color:#fff;text-decoration:none;padding:1px 7px}.icon-csv{-webkit-box-shadow:0 8px 15px -3px #4b9724;box-shadow:0 8px 15px -3px #4b9724;background:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#5fb62f),to(#4b9624));background:linear-gradient(180deg,#5fb62f 1%,#4b9624)}table.blue-header thead tr th{background-color:#1f5581;color:#fff;padding:6px 7px 6px;border-right:1px solid #1f5581;white-space:pre-wrap;word-wrap:break-word;font-family:inherit;border-top:4px solid #1f5581;border-bottom:4px solid #1f5581}.feature-description a{color:#fff;text-decoration:underline;font-weight:700}.feature-description a:active,.feature-description a:focus,.feature-description a:hover{color:#fff}.form-check-input:hover{background-color:#c9e3fd;border-color:#0566b1}/*!\\n * Bootstrap  v5.3.3 (https://getbootstrap.com/)\\n * Copyright 2011-2024 The Bootstrap Authors\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\\n */:root,[data-bs-theme=light]{--bs-blue:#20558a;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e33eed;--bs-red:#c32d2d;--bs-orange:#e96639;--bs-yellow:#fda808;--bs-green:#29c047;--bs-teal:#00cdd3;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#015496;--bs-secondary:#6c757d;--bs-success:#29c047;--bs-info:#0dcaf0;--bs-warning:#fda808;--bs-danger:#c32d2d;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:1,84,150;--bs-secondary-rgb:108,117,125;--bs-success-rgb:41,192,71;--bs-info-rgb:13,202,240;--bs-warning-rgb:253,168,8;--bs-danger-rgb:195,45,45;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#00223c;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#104d1c;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#654303;--bs-danger-text-emphasis:#4e1212;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#ccddea;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d4f2da;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#ffeece;--bs-danger-bg-subtle:#f3d5d5;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#99bbd5;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a9e6b5;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#fedc9c;--bs-danger-border-subtle:#e7abab;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",\\\"Noto Sans\\\",\\\"Liberation Sans\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\",\\\"Noto Color Emoji\\\";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#015496;--bs-link-color-rgb:1,84,150;--bs-link-decoration:underline;--bs-link-hover-color:#014378;--bs-link-hover-color-rgb:1,67,120;--bs-code-color:#e33eed;--bs-highlight-color:#212529;--bs-highlight-bg:#ffeece;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0,0,0,.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0,0,0,.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(1,84,150,.25);--bs-form-valid-color:#29c047;--bs-form-valid-border-color:#29c047;--bs-form-invalid-color:#c32d2d;--bs-form-invalid-border-color:#c32d2d}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222,226,230,.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222,226,230,.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6798c0;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#7fd991;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#fecb6b;--bs-danger-text-emphasis:#db8181;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#00111e;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#08260e;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332202;--bs-danger-bg-subtle:#270909;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#01325a;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#19732b;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#986505;--bs-danger-border-subtle:#751b1b;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6798c0;--bs-link-hover-color:#85adcd;--bs-link-color-rgb:103,152,192;--bs-link-hover-color-rgb:133,173,205;--bs-code-color:#ee8bf4;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#654303;--bs-border-color:#495057;--bs-border-color-translucent:hsla(0,0%,100%,.15);--bs-form-valid-color:#7fd991;--bs-form-valid-border-color:#7fd991;--bs-form-invalid-color:#db8181;--bs-form-invalid-border-color:#db8181}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media(min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media(min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:\\\"— \\\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:30px;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width:576px){.container,.container-sm{max-width:540px}}@media(min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media(min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media(min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media(min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:30px;--bs-gutter-y:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y)*-1);margin-right:calc(var(--bs-gutter-x)*-.5);margin-left:calc(var(--bs-gutter-x)*-.5)}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{width:auto}.row-cols-1>*,.row-cols-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-1>*{width:100%}.row-cols-2>*{width:50%}.row-cols-2>*,.row-cols-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-3>*{width:33.33333333%}.row-cols-4>*{width:25%}.row-cols-4>*,.row-cols-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-5>*{width:20%}.row-cols-6>*{width:16.66666667%}.col-auto,.row-cols-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-auto{width:auto}.col-1{width:8.33333333%}.col-1,.col-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-2{width:16.66666667%}.col-3{width:25%}.col-3,.col-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-4{width:33.33333333%}.col-5{width:41.66666667%}.col-5,.col-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-6{width:50%}.col-7{width:58.33333333%}.col-7,.col-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-8{width:66.66666667%}.col-9{width:75%}.col-10,.col-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-10{width:83.33333333%}.col-11{width:91.66666667%}.col-11,.col-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-12{width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media(min-width:576px){.col-sm{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{width:auto}.row-cols-sm-1>*,.row-cols-sm-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-sm-1>*{width:100%}.row-cols-sm-2>*{width:50%}.row-cols-sm-2>*,.row-cols-sm-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-sm-3>*{width:33.33333333%}.row-cols-sm-4>*{width:25%}.row-cols-sm-4>*,.row-cols-sm-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-sm-5>*{width:20%}.row-cols-sm-6>*{width:16.66666667%}.col-sm-auto,.row-cols-sm-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-auto{width:auto}.col-sm-1{width:8.33333333%}.col-sm-1,.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-3,.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-5,.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-7,.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10,.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-11,.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-sm-12{width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media(min-width:768px){.col-md{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{width:auto}.row-cols-md-1>*,.row-cols-md-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-md-1>*{width:100%}.row-cols-md-2>*{width:50%}.row-cols-md-2>*,.row-cols-md-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-md-3>*{width:33.33333333%}.row-cols-md-4>*{width:25%}.row-cols-md-4>*,.row-cols-md-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-md-5>*{width:20%}.row-cols-md-6>*{width:16.66666667%}.col-md-auto,.row-cols-md-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-auto{width:auto}.col-md-1{width:8.33333333%}.col-md-1,.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-3,.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-5,.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-7,.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10,.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-11,.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-md-12{width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media(min-width:992px){.col-lg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{width:auto}.row-cols-lg-1>*,.row-cols-lg-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-lg-1>*{width:100%}.row-cols-lg-2>*{width:50%}.row-cols-lg-2>*,.row-cols-lg-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-lg-3>*{width:33.33333333%}.row-cols-lg-4>*{width:25%}.row-cols-lg-4>*,.row-cols-lg-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-lg-5>*{width:20%}.row-cols-lg-6>*{width:16.66666667%}.col-lg-auto,.row-cols-lg-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-auto{width:auto}.col-lg-1{width:8.33333333%}.col-lg-1,.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-3,.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-5,.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-7,.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10,.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-11,.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-lg-12{width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media(min-width:1200px){.col-xl{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{width:auto}.row-cols-xl-1>*,.row-cols-xl-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xl-1>*{width:100%}.row-cols-xl-2>*{width:50%}.row-cols-xl-2>*,.row-cols-xl-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xl-3>*{width:33.33333333%}.row-cols-xl-4>*{width:25%}.row-cols-xl-4>*,.row-cols-xl-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xl-5>*{width:20%}.row-cols-xl-6>*{width:16.66666667%}.col-xl-auto,.row-cols-xl-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-auto{width:auto}.col-xl-1{width:8.33333333%}.col-xl-1,.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-2{width:16.66666667%}.col-xl-3{width:25%}.col-xl-3,.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-4{width:33.33333333%}.col-xl-5{width:41.66666667%}.col-xl-5,.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-6{width:50%}.col-xl-7{width:58.33333333%}.col-xl-7,.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-8{width:66.66666667%}.col-xl-9{width:75%}.col-xl-10,.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-10{width:83.33333333%}.col-xl-11{width:91.66666667%}.col-xl-11,.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xl-12{width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media(min-width:1400px){.col-xxl{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{width:auto}.row-cols-xxl-1>*,.row-cols-xxl-auto>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xxl-1>*{width:100%}.row-cols-xxl-2>*{width:50%}.row-cols-xxl-2>*,.row-cols-xxl-3>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xxl-3>*{width:33.33333333%}.row-cols-xxl-4>*{width:25%}.row-cols-xxl-4>*,.row-cols-xxl-5>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.row-cols-xxl-5>*{width:20%}.row-cols-xxl-6>*{width:16.66666667%}.col-xxl-auto,.row-cols-xxl-6>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-auto{width:auto}.col-xxl-1{width:8.33333333%}.col-xxl-1,.col-xxl-2{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-2{width:16.66666667%}.col-xxl-3{width:25%}.col-xxl-3,.col-xxl-4{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-4{width:33.33333333%}.col-xxl-5{width:41.66666667%}.col-xxl-5,.col-xxl-6{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-6{width:50%}.col-xxl-7{width:58.33333333%}.col-xxl-7,.col-xxl-8{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-8{width:66.66666667%}.col-xxl-9{width:75%}.col-xxl-10,.col-xxl-9{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-10{width:83.33333333%}.col-xxl-11{width:91.66666667%}.col-xxl-11,.col-xxl-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.col-xxl-12{width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb),0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb),0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb),0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);-webkit-box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)));box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width)*2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped-columns>:not(caption)>tr>:nth-child(2n),.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#ccddea;--bs-table-border-color:#a3b1bb;--bs-table-striped-bg:#c2d2de;--bs-table-striped-color:#000;--bs-table-active-bg:#b8c7d3;--bs-table-active-color:#000;--bs-table-hover-bg:#bdccd8;--bs-table-hover-color:#000}.table-primary,.table-secondary{color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000}.table-success{--bs-table-color:#000;--bs-table-bg:#d4f2da;--bs-table-border-color:#aac2ae;--bs-table-striped-bg:#c9e6cf;--bs-table-striped-color:#000;--bs-table-active-bg:#bfdac4;--bs-table-active-color:#000;--bs-table-hover-bg:#c4e0ca;--bs-table-hover-color:#000}.table-info,.table-success{color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000}.table-warning{--bs-table-color:#000;--bs-table-bg:#ffeece;--bs-table-border-color:#ccbea5;--bs-table-striped-bg:#f2e2c4;--bs-table-striped-color:#000;--bs-table-active-bg:#e6d6b9;--bs-table-active-color:#000;--bs-table-hover-bg:#ecdcbf;--bs-table-hover-color:#000}.table-danger,.table-warning{color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f3d5d5;--bs-table-border-color:#c2aaaa;--bs-table-striped-bg:#e7caca;--bs-table-striped-color:#000;--bs-table-active-bg:#dbc0c0;--bs-table-active-color:#000;--bs-table-hover-bg:#e1c5c5;--bs-table-hover-color:#000}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000}.table-dark,.table-light{color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-control{-webkit-transition:none;transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#80aacb;outline:0;-webkit-box-shadow:0 0 0 .25rem rgba(1,84,150,.25);box-shadow:0 0 0 .25rem rgba(1,84,150,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-webkit-input-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:-ms-input-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::-ms-input-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + var(--bs-border-width)*2);padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + var(--bs-border-width)*2);padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + var(--bs-border-width)*2)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + var(--bs-border-width)*2)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + var(--bs-border-width)*2)}.form-control-color{width:3rem;height:calc(1.5em + .75rem + var(--bs-border-width)*2);padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + var(--bs-border-width)*2)}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + var(--bs-border-width)*2)}.form-select{--bs-form-select-bg-img:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-select{-webkit-transition:none;transition:none}}.form-select:focus{border-color:#80aacb;outline:0;-webkit-box-shadow:0 0 0 .25rem rgba(1,84,150,.25);box-shadow:0 0 0 .25rem rgba(1,84,150,.25)}.form-select[multiple],.form-select[size]:not([size=\\\"1\\\"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);-ms-flex-negative:0;flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:50%;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:brightness(90%);filter:brightness(90%)}.form-check-input:focus{border-color:#80aacb;outline:0;-webkit-box-shadow:0 0 0 .25rem rgba(1,84,150,.25);box-shadow:0 0 0 .25rem rgba(1,84,150,.25)}.form-check-input:checked{background-color:#015496;border-color:#015496}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.form-check-input[type=checkbox]:indeterminate{background-color:#015496;border-color:#015496;--bs-form-check-bg-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:0;border-radius:2em;-webkit-transition:background-position .15s ease-in-out;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-switch .form-check-input{-webkit-transition:none;transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.form-switch .form-check-input:checked{background-position:100%;--bs-form-switch-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;-webkit-filter:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(1,84,150,.25);box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(1,84,150,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(1,84,150,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#015496;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b3cce0}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#015496;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b3cce0}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + var(--bs-border-width)*2);min-height:calc(3.5rem + var(--bs-border-width)*2);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:opacity .1s ease-in-out,-webkit-transform .1s ease-in-out;transition:opacity .1s ease-in-out,-webkit-transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out,-webkit-transform .1s ease-in-out}@media(prefers-reduced-motion:reduce){.form-floating>label{-webkit-transition:none;transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-webkit-input-placeholder,.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext:-ms-input-placeholder,.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::-ms-input-placeholder,.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:not(:-ms-input-placeholder),.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\\\"\\\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:not(:-ms-input-placeholder)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\\\"\\\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label:after,.form-floating>.form-control:focus~label:after,.form-floating>.form-control:not(:placeholder-shown)~label:after,.form-floating>.form-select~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:\\\"\\\";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label:after,.form-floating>:disabled~label:after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width)*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size=\\\"1\\\"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size=\\\"1\\\"]{--bs-form-select-bg-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3.75rem + 1.5em)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size=\\\"1\\\"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size=\\\"1\\\"]{--bs-form-select-bg-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3.75rem + 1.5em)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{-webkit-box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.15),0 1px 1px rgba(0,0,0,.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb),.5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.btn{-webkit-transition:none;transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;-webkit-box-shadow:var(--bs-btn-focus-box-shadow);box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;-webkit-box-shadow:var(--bs-btn-focus-box-shadow);box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{-webkit-box-shadow:var(--bs-btn-focus-box-shadow);box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{-webkit-box-shadow:var(--bs-btn-focus-box-shadow);box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#015496;--bs-btn-border-color:#015496;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#014780;--bs-btn-hover-border-color:#014378;--bs-btn-focus-shadow-rgb:39,110,166;--bs-btn-active-color:#fff;--bs-btn-active-bg:#014378;--bs-btn-active-border-color:#013f71;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#015496;--bs-btn-disabled-border-color:#015496}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#000;--bs-btn-bg:#29c047;--bs-btn-border-color:#29c047;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#49c963;--bs-btn-hover-border-color:#3ec659;--bs-btn-focus-shadow-rgb:35,163,60;--bs-btn-active-color:#000;--bs-btn-active-bg:#54cd6c;--bs-btn-active-border-color:#3ec659;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#29c047;--bs-btn-disabled-border-color:#29c047}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#fda808;--bs-btn-border-color:#fda808;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#fdb52d;--bs-btn-hover-border-color:#fdb121;--bs-btn-focus-shadow-rgb:215,143,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#fdb939;--bs-btn-active-border-color:#fdb121;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#fda808;--bs-btn-disabled-border-color:#fda808}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#c32d2d;--bs-btn-border-color:#c32d2d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#a62626;--bs-btn-hover-border-color:#9c2424;--bs-btn-focus-shadow-rgb:204,77,77;--bs-btn-active-color:#fff;--bs-btn-active-bg:#9c2424;--bs-btn-active-border-color:#922222;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#c32d2d;--bs-btn-disabled-border-color:#c32d2d}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#015496;--bs-btn-border-color:#015496;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#015496;--bs-btn-hover-border-color:#015496;--bs-btn-focus-shadow-rgb:1,84,150;--bs-btn-active-color:#fff;--bs-btn-active-bg:#015496;--bs-btn-active-border-color:#015496;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#015496;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#015496;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#29c047;--bs-btn-border-color:#29c047;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#29c047;--bs-btn-hover-border-color:#29c047;--bs-btn-focus-shadow-rgb:41,192,71;--bs-btn-active-color:#000;--bs-btn-active-bg:#29c047;--bs-btn-active-border-color:#29c047;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#29c047;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#29c047;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#fda808;--bs-btn-border-color:#fda808;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#fda808;--bs-btn-hover-border-color:#fda808;--bs-btn-focus-shadow-rgb:253,168,8;--bs-btn-active-color:#000;--bs-btn-active-bg:#fda808;--bs-btn-active-border-color:#fda808;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fda808;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#fda808;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#c32d2d;--bs-btn-border-color:#c32d2d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#c32d2d;--bs-btn-hover-border-color:#c32d2d;--bs-btn-focus-shadow-rgb:195,45,45;--bs-btn-active-color:#fff;--bs-btn-active-bg:#c32d2d;--bs-btn-active-border-color:#c32d2d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#c32d2d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#c32d2d;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:39,110,166;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}@media(prefers-reduced-motion:reduce){.fade{-webkit-transition:none;transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@media(prefers-reduced-motion:reduce){.collapsing{-webkit-transition:none;transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;-webkit-transition:width .35s ease;transition:width .35s ease}@media(prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{-webkit-transition:none;transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#015496;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:hsla(0,0%,100%,.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#015496;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width)*-1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width)*-1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion:reduce){.nav-link{-webkit-transition:none;transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;-webkit-box-shadow:0 0 0 .25rem rgba(1,84,150,.25);box-shadow:0 0 0 .25rem rgba(1,84,150,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(var(--bs-nav-tabs-border-width)*-1);border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(var(--bs-nav-tabs-border-width)*-1);border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#015496}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb),0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb),0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb),0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb),1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb),0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar,.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{-ms-flex-wrap:inherit;flex-wrap:inherit}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);-webkit-transition:var(--bs-navbar-toggler-transition);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion:reduce){.navbar-toggler{-webkit-transition:none;transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;-webkit-box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width);box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:50%;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media(min-width:576px){.navbar-expand-sm{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:768px){.navbar-expand-md{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:992px){.navbar-expand-lg{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1200px){.navbar-expand-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width:1400px){.navbar-expand-xxl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;-webkit-transform:none!important;transform:none!important;-webkit-transition:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:hsla(0,0%,100%,.55);--bs-navbar-hover-color:hsla(0,0%,100%,.75);--bs-navbar-disabled-color:hsla(0,0%,100%,.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:hsla(0,0%,100%,.1)}.navbar-dark,.navbar[data-bs-theme=dark],[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb),0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:15px;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(var(--bs-card-title-spacer-y)*-.5);color:var(--bs-card-subtitle-color)}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(var(--bs-card-cap-padding-x)*-.5);margin-bottom:calc(var(--bs-card-cap-padding-y)*-1);margin-left:calc(var(--bs-card-cap-padding-x)*-.5);border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(var(--bs-card-cap-padding-x)*-.5);margin-left:calc(var(--bs-card-cap-padding-x)*-.5)}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width:576px){.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \");--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(1,84,150,.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;-webkit-transition:var(--bs-accordion-transition);transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion:reduce){.accordion-button{-webkit-transition:none;transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);-webkit-box-shadow:inset 0 calc(var(--bs-accordion-border-width)*-1) 0 var(--bs-accordion-border-color);box-shadow:inset 0 calc(var(--bs-accordion-border-width)*-1) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);-webkit-transform:var(--bs-accordion-btn-icon-transform);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{-ms-flex-negative:0;flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:\\\"\\\";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);-webkit-transition:var(--bs-accordion-btn-icon-transition);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion:reduce){.accordion-button:after{-webkit-transition:none;transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;-webkit-box-shadow:var(--bs-accordion-btn-focus-box-shadow);box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \");--bs-accordion-btn-active-icon:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider,\\\"/\\\")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(1,84,150,.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#015496;--bs-pagination-active-border-color:#015496;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.page-link{-webkit-transition:none;transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;-webkit-box-shadow:var(--bs-pagination-focus-box-shadow);box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width)*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#015496;--bs-progress-bar-transition:width 0.6s ease;height:var(--bs-progress-height);font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress,.progress-bar,.progress-stacked{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden}.progress-bar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);-webkit-transition:var(--bs-progress-bar-transition);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion:reduce){.progress-bar{-webkit-transition:none;transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media(prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#015496;--bs-list-group-active-border-color:#015496;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,\\\".\\\") \\\". \\\";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(var(--bs-list-group-border-width)*-1);border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}@media(min-width:576px){.list-group-horizontal-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}}@media(min-width:768px){.list-group-horizontal-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}}@media(min-width:992px){.list-group-horizontal-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1200px){.list-group-horizontal-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}}@media(min-width:1400px){.list-group-horizontal-xxl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(var(--bs-list-group-border-width)*-1);border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(1,84,150,.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);-webkit-box-sizing:content-box;box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close,.btn-close:hover{color:var(--bs-btn-close-color)}.btn-close:hover{text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;-webkit-box-shadow:var(--bs-btn-close-focus-shadow);box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white,[data-bs-theme=dark] .btn-close{-webkit-filter:var(--bs-btn-close-white-filter);filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:30px;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb),0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb),0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);-webkit-box-shadow:var(--bs-toast-box-shadow);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(var(--bs-toast-padding-x)*-.5);margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-50px);transform:translateY(-50px)}@media(prefers-reduced-motion:reduce){.modal.fade .modal-dialog{-webkit-transition:none;transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content,.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex}.modal-content{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(var(--bs-modal-header-padding-y)*-.5) calc(var(--bs-modal-header-padding-x)*-.5) calc(var(--bs-modal-header-padding-y)*-.5) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media(min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media(min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(var(--bs-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,.bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(var(--bs-tooltip-arrow-height)*-1);width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,.bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(var(--bs-tooltip-arrow-height)*-1)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,.bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(var(--bs-tooltip-arrow-height)*-1);width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,.bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:after,.popover .popover-arrow:before{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-top>.popover-arrow:before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,.bs-popover-top>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-end>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,.bs-popover-end>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:before{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,.bs-popover-bottom>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(var(--bs-popover-arrow-width)*-.5);content:\\\"\\\";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc((var(--bs-popover-arrow-height))*-1 - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-start>.popover-arrow:before{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,.bs-popover-start>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:\\\"\\\"}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media(prefers-reduced-motion:reduce){.carousel-item{-webkit-transition:none;transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;-webkit-transition:opacity 0s .6s;transition:opacity 0s .6s}@media(prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{-webkit-transition:none;transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;-webkit-transition:opacity .15s ease;transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{-webkit-transition:none;transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \")}.carousel-control-next-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;-webkit-transition:opacity .6s ease;transition:opacity .6s ease}@media(prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{-webkit-transition:none;transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{-webkit-filter:invert(1) grayscale(100);filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{-webkit-filter:invert(1) grayscale(100);filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;-webkit-animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spinner-border{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media(prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media(max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}}@media(max-width:575.98px)and (prefers-reduced-motion:reduce){.offcanvas-sm{-webkit-transition:none;transition:none}}@media(max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom,.offcanvas-sm.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas-sm.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{-webkit-transform:none;transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media(min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media(max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}}@media(max-width:767.98px)and (prefers-reduced-motion:reduce){.offcanvas-md{-webkit-transition:none;transition:none}}@media(max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom,.offcanvas-md.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas-md.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{-webkit-transform:none;transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media(min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media(max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}}@media(max-width:991.98px)and (prefers-reduced-motion:reduce){.offcanvas-lg{-webkit-transition:none;transition:none}}@media(max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom,.offcanvas-lg.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas-lg.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{-webkit-transform:none;transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media(min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media(max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}}@media(max-width:1199.98px)and (prefers-reduced-motion:reduce){.offcanvas-xl{-webkit-transition:none;transition:none}}@media(max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom,.offcanvas-xl.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas-xl.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{-webkit-transform:none;transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media(min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media(max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}}@media(max-width:1399.98px)and (prefers-reduced-motion:reduce){.offcanvas-xxl{-webkit-transition:none;transition:none}}@media(max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom,.offcanvas-xxl.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas-xxl.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{-webkit-transform:none;transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media(min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;-webkit-transition:var(--bs-offcanvas-transition);transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion:reduce){.offcanvas{-webkit-transition:none;transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas.offcanvas-bottom,.offcanvas.offcanvas-top{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%}.offcanvas.offcanvas-bottom{border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{-webkit-transform:none;transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin:calc(var(--bs-offcanvas-padding-y)*-.5) calc(var(--bs-offcanvas-padding-x)*-.5) calc(var(--bs-offcanvas-padding-y)*-.5) auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:\\\"\\\"}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix:after{display:block;clear:both;content:\\\"\\\"}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#000!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(1,67,120,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(1,67,120,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(84,205,108,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(84,205,108,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(253,185,57,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(253,185,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(156,36,36,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(156,36,36,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;-webkit-box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:.375rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{-ms-flex-negative:0;flex-shrink:0;width:1em;height:1em;fill:currentcolor;-webkit-transition:transform .2s ease-in-out;transition:transform .2s ease-in-out}@media(prefers-reduced-motion:reduce){.icon-link>.bi{-webkit-transition:none;transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{-webkit-transform:var(--bs-icon-link-transform,translate3d(.25em,0,0));transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:\\\"\\\"}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.85714%}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}.sticky-top{top:0}.sticky-bottom,.sticky-top{position:sticky;z-index:1020}.sticky-bottom{bottom:0}@media(min-width:576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width:768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width:992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width:1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width:1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch}.hstack,.vstack{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;align-self:stretch}.vstack{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:\\\"\\\"}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;-ms-flex-item-align:stretch;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-none{display:none!important}.shadow{-webkit-box-shadow:var(--bs-box-shadow)!important;box-shadow:var(--bs-box-shadow)!important}.shadow-sm{-webkit-box-shadow:var(--bs-box-shadow-sm)!important;box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{-webkit-box-shadow:var(--bs-box-shadow-lg)!important;box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{-webkit-box-shadow:none!important;box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb),var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb),var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb),var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb),var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb),var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb),var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb),var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb),var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important}.translate-middle-x{-webkit-transform:translateX(-50%)!important;transform:translateX(-50%)!important}.translate-middle-y{-webkit-transform:translateY(-50%)!important;transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column,.flex-row{-webkit-box-direction:normal!important}.flex-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse,.flex-row-reverse{-webkit-box-direction:reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:hsla(0,0%,100%,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media(min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column,.flex-sm-row{-webkit-box-direction:normal!important}.flex-sm-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-sm-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-sm-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-sm-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-sm-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-sm-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-sm-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-sm-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-sm-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-sm-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media(min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column,.flex-md-row{-webkit-box-direction:normal!important}.flex-md-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-md-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-md-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-md-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-md-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-md-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-md-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-md-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-md-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-md-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media(min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column,.flex-lg-row{-webkit-box-direction:normal!important}.flex-lg-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-lg-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-lg-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-lg-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-lg-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-lg-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-lg-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-lg-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-lg-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-lg-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media(min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column,.flex-xl-row{-webkit-box-direction:normal!important}.flex-xl-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xl-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xl-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-xl-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-xl-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-xl-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-xl-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-xl-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-xl-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-xl-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media(min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xxl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{-webkit-box-flex:1!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xxl-row{-webkit-box-orient:horizontal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xxl-column,.flex-xxl-row{-webkit-box-direction:normal!important}.flex-xxl-column{-webkit-box-orient:vertical!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xxl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xxl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xxl-grow-0{-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xxl-grow-1{-webkit-box-flex:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xxl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xxl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xxl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xxl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xxl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xxl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xxl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xxl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xxl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xxl-evenly{-webkit-box-pack:space-evenly!important;-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xxl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xxl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xxl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xxl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xxl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xxl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xxl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xxl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xxl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xxl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xxl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xxl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xxl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xxl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xxl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xxl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xxl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xxl-first{-webkit-box-ordinal-group:0!important;-ms-flex-order:-1!important;order:-1!important}.order-xxl-0{-webkit-box-ordinal-group:1!important;-ms-flex-order:0!important;order:0!important}.order-xxl-1{-webkit-box-ordinal-group:2!important;-ms-flex-order:1!important;order:1!important}.order-xxl-2{-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important}.order-xxl-3{-webkit-box-ordinal-group:4!important;-ms-flex-order:3!important;order:3!important}.order-xxl-4{-webkit-box-ordinal-group:5!important;-ms-flex-order:4!important;order:4!important}.order-xxl-5{-webkit-box-ordinal-group:6!important;-ms-flex-order:5!important;order:5!important}.order-xxl-last{-webkit-box-ordinal-group:7!important;-ms-flex-order:6!important;order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-webkit-column-gap:0!important;-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-webkit-column-gap:.25rem!important;-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-webkit-column-gap:.5rem!important;-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-webkit-column-gap:1rem!important;-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-webkit-column-gap:1.5rem!important;-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-webkit-column-gap:3rem!important;-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media(min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}.d-print-none{display:none!important}}body,html{background-color:#ececec;font-size:14px;font-family:Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Roboto,sans-serif;font-weight:500;color:#0566b1}.form-control{background-color:#ececec;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.35);box-shadow:0 1px 2px 0 rgba(0,0,0,.35);color:#495057}.form-text.text-muted.small,small.form-text.text-muted{color:#757575!important;font-size:13px;font-weight:500}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter,.fade-leave-to{opacity:0}.widget-button-criteria{padding:3px 10px 1px;border-radius:15px;font-weight:700}.widget-button-criteria span{display:inline-block;margin-right:5px}.widget-button-criteria .widget-button-icon{margin-top:-2px;margin-right:6px;width:13px;height:13px;fill:#555;-webkit-transition:.3s;transition:.3s}.widget-button-criteria:focus .widget-button-icon,.widget-button-criteria:hover .widget-button-icon{fill:#fff}.search-criteria-page{display:inline-block;width:calc(100% - 220px)}@media screen and (max-width:768px){.search-criteria-page{display:block;width:100%}}.feature-area .search-results-section{display:inline-block;width:220px}.feature-area .criteria{margin-left:15px}.feature-area .criteria:first-of-type{margin-left:0}.feature-area .criteria .title{font-weight:700}.feature-area .action-buttons .widget-button{margin-left:10px;padding:5px 22px 5px 22px;font-weight:700;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.25);box-shadow:0 2px 3px rgba(0,0,0,.25)}.feature-area .action-buttons .widget-button.disabled{cursor:not-allowed}.feature-area .action-buttons .widget-button .export-loader{position:absolute;left:13px;top:7px;width:5em;height:5em}.feature-area .search-criteria-section{width:calc(100% - 410px);display:inline-block;vertical-align:top;position:relative}.feature-area .search-criteria-section.full-row{display:block;width:100%}.feature-area .smart-search-section{width:100%;display:inline-block;vertical-align:top;position:relative}.visulization-menu{padding:10px 0 0}.visulization-menu span{display:block;font-size:16px;padding-bottom:7px}.visulization-menu span span{display:inline;color:#616161;font-size:12px;font-weight:500}.visulization-menu .icon-btn-container{-webkit-box-shadow:0 2px 3px rgba(0,0,0,.2);box-shadow:0 2px 3px rgba(0,0,0,.2);border-radius:5px}.visulization-menu .chart-menu{padding-left:0;margin-bottom:0;list-style:none}.visulization-menu .chart-menu .nav-icon{display:block;margin:0 auto;width:18px;height:20px;fill:#015496;-webkit-transition:.3s;transition:.3s}.visulization-menu .chart-menu .active .nav-icon{fill:#fff}@media screen and (max-width:991px){.feature-area .search-criteria-section,.feature-area .search-results-section{display:block;width:200%}}@media screen and (max-width:991px)and (max-width:768px){.feature-area .search-criteria-section,.feature-area .search-results-section{width:100%}}@media screen and (max-width:991px){.feature-area .action-buttons .widget-button,.feature-area .action-buttons .widget-button-dataset{display:inline-block;width:calc(50% - 5px);margin:5px 0}.feature-area .action-buttons .widget-button+.widget-button,.feature-area .action-buttons .widget-button+.widget-button-dataset,.feature-area .action-buttons .widget-button-dataset+.widget-button,.feature-area .action-buttons .widget-button-dataset+.widget-button-dataset{margin-left:10px}.feature-area .action-buttons .widget-button .widget-button,.feature-area .action-buttons .widget-button-dataset .widget-button{width:100%;margin:0}.feature-area .smart-search-section{width:100%}}.sort-note{position:absolute;right:10px;font-size:16px;padding-top:7px}.sort-note span{font-weight:700}@media screen and (max-width:992px){.sort-note{position:relative;margin-left:10px;margin-bottom:10px}.feature-area .action-buttons .widget-button{width:100%;margin:5px 0}}.title-container{display:inline-block}.title-container .page-title{font-size:28px;margin-bottom:5px;margin-right:15px}.title-container .page-title:after{background-color:#29c047}.title-container .page-title.has-modifier{margin-right:.25em}.title-container .page-title-modifier{font-size:28px}.title-divider{display:inline-block;margin-top:-8px;margin-right:8px;width:8px;height:22px;fill:#fff}.sub-title{font-size:16px}.sub-title .sub-note{font-size:12px;line-height:1em}.quick-search .title-container .page-title:after{background-color:#fda808}.quick-search .data-table th.sortby.asc,.quick-search .data-table th.sortby:focus.asc,.quick-search .data-table th.sortby:hover.asc{border-top-color:#fda808;border-bottom-color:#336495}.quick-search .data-table th.sortby.desc,.quick-search .data-table th.sortby:focus.desc,.quick-search .data-table th.sortby:hover.desc{border-top-color:#336495;border-bottom-color:#fda808}#matchmaker-projects .title-container .page-title:after{background-color:#e96639}#matchmaker-projects .data-table th.sortby.asc,#matchmaker-projects .data-table th.sortby:focus.asc,#matchmaker-projects .data-table th.sortby:hover.asc{border-top-color:#e96639;border-bottom-color:#336495}#matchmaker-projects .data-table th.sortby.desc,#matchmaker-projects .data-table th.sortby:focus.desc,#matchmaker-projects .data-table th.sortby:hover.desc{border-top-color:#336495;border-bottom-color:#e96639}.loading{position:absolute;width:100%;height:100%;z-index:1000}.loading.loading-map{background-color:transparent;z-index:1}.loading.loading-map .loader-bg{opacity:0}.loading.loading-map .loader{top:10px;left:10px}.loading .loader-bg{position:absolute;top:0;left:0;height:100%;width:100%;background-color:#fff;opacity:.75}.loader,.loader:after{border-radius:50%;width:10em;height:10em}.loader{color:#20558a;font-size:3px;left:calc(50% - 5em);top:100px;text-indent:-9999em;border-top:1.1em solid #ccc;border-right:1.1em solid #ccc;border-bottom:1.1em solid #ccc;border-left:1.1em solid #20558a;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s linear infinite;animation:load8 1.1s linear infinite;z-index:10;overflow:hidden}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loader{position:absolute}.button-loader{position:relative;left:2px;top:2px;width:5em;height:5em;display:inline-block}.nav-tabs{border-bottom:none}.main-tabs .nav-item{margin-right:3px;margin-bottom:0}.main-tabs .nav-item.disabled{cursor:not-allowed}@media screen and (max-width:768px){.main-tabs .nav-item{display:block;width:100%}.main-tabs .nav-item .nav-link{border-radius:20px;margin-bottom:5px}.main-tabs .nav-item .nav-link.active{margin-top:0}}.main-tabs .nav-item .nav-link{margin-top:0;padding:.25rem 1rem;color:#fff;background-color:#5778a2;border-top-left-radius:.25rem;border-top-right-radius:.25rem;font-weight:500;font-size:18px;border:none;-webkit-transition:.3s;transition:.3s}.main-tabs .nav-item .nav-link.active{margin-top:-3px;padding:calc(.25rem + 3px) 1rem .25rem;background-color:#ececec;color:#333}.main-tabs .nav-item .nav-link.disabled{opacity:.5;cursor:not-allowed;background-color:#5778a2;color:#fff}.main-tabs .nav-item .nav-link:not(.active):focus,.main-tabs .nav-item .nav-link:not(.active):hover{margin-top:-3px;padding:.25rem 1rem calc(.25rem + 3px)}.search-results-container .searchResults table:not(#recaptcha_table) .th-label,table:not(#recaptcha_table) .th-label{position:absolute;display:none;font-size:.9em}@media screen and (max-width:480px){.search-results-container .searchResults table:not(#recaptcha_table) .th-label,table:not(#recaptcha_table) .th-label{position:relative;margin-bottom:0}}@media screen and (min-width:768px){.search-results-container .searchResults table:not(#recaptcha_table) .td-content,table:not(#recaptcha_table) .td-content{padding-left:0!important}}@media screen and (max-width:767px){.search-results-container .searchResults table:not(#recaptcha_table),table:not(#recaptcha_table){width:100%}.search-results-container .searchResults table:not(#recaptcha_table) thead,table:not(#recaptcha_table) thead{border:none;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.search-results-container .searchResults table:not(#recaptcha_table) th,table:not(#recaptcha_table) th{display:none}.search-results-container .searchResults table:not(#recaptcha_table) tr,table:not(#recaptcha_table) tr{display:block}.search-results-container .searchResults table:not(#recaptcha_table) tr.srch-res-record-row-title,table:not(#recaptcha_table) tr.srch-res-record-row-title{padding-top:.5em}.search-results-container .searchResults table:not(#recaptcha_table) tr.srch-res-record-row,table:not(#recaptcha_table) tr.srch-res-record-row{padding-bottom:.5em;border-bottom:1px solid #ccc}.search-results-container .searchResults table:not(#recaptcha_table) tr td,table:not(#recaptcha_table) tr td{display:block;width:100%;padding:0 .6em 0 .6em;border:none!important;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.6em}.search-results-container .searchResults table:not(#recaptcha_table) tr td .th-label,table:not(#recaptcha_table) tr td .th-label{display:inline-block}.search-results-container .searchResults table:not(#recaptcha_table) tr td .td-content,table:not(#recaptcha_table) tr td .td-content{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:134px}.search-results-container .searchResults table:not(#recaptcha_table) tr td:before,table:not(#recaptcha_table) tr td:before{content:attr(data-label) \\\":\\\";font-size:14px;font-weight:700;padding-right:5px;float:left}.search-results-container .searchResults table:not(#recaptcha_table) tr td .srch-similarProjects img,table:not(#recaptcha_table) tr td .srch-similarProjects img{display:none}.search-results-container .searchResults table:not(#recaptcha_table) tr td .sim-FyTotalCostAmt,table:not(#recaptcha_table) tr td .sim-FyTotalCostAmt{text-align:left}.search-results-container .searchResults table:not(#recaptcha_table) tr td.empty,table:not(#recaptcha_table) tr td.empty{display:none}.search-results-container .searchResults table:not(#recaptcha_table) tr td.yes,table:not(#recaptcha_table) tr td.yes{width:120px;color:#fff}.search-results-container .searchResults table:not(#recaptcha_table) tr td.yes p,table:not(#recaptcha_table) tr td.yes p{left:80px}.search-results-container .searchResults table:not(#recaptcha_table) tr td.title-row,table:not(#recaptcha_table) tr td.title-row{padding-top:.5em}.search-results-container .searchResults table:not(#recaptcha_table) tr td.title-row:before,table:not(#recaptcha_table) tr td.title-row:before{display:none}.search-results-container .searchResults table:not(#recaptcha_table) tr td.column-appl_type_code[colspan=\\\"4\\\"],table:not(#recaptcha_table) tr td.column-appl_type_code[colspan=\\\"4\\\"]{max-width:100%}}@media screen and (max-width:480px){.search-results-container .searchResults table:not(#recaptcha_table) .td-content,table:not(#recaptcha_table) .td-content{padding-left:0!important}}@media screen and (max-width:767px){.k-widget table tr td,.k-widget table tr td .td-content{-webkit-box-sizing:border-box;box-sizing:border-box}#dataTable #visTable tr:last-child td:first-child:before,#pubExpGridOther tr:last-child td:before{content:\\\"\\\"}#dataTable #visTable td{text-align:left;font-size:14px}#dataTable #visTable td[data-label=Summary]{font-size:15px;color:#102f68}.search-results-container .advanced-search-results .adv-srch-details .proj_tab_container .proj_tab_section .det-sec table#proj-funding:not(#recaptcha_table){border:none}.search-results-container .advanced-search-results .adv-srch-details .proj_tab_container .proj_tab_section .det-sec table#proj-funding:not(#recaptcha_table) tr:hover{background:transparent}.search-results-container .advanced-search-results .adv-srch-details .proj_tab_container .proj_tab_section .det-sec table#proj-funding:not(#recaptcha_table) tr td{padding-left:0}}.sysAppMessage .fas{z-index:101;position:relative}.sysAppMessage .fas:focus{outline:none}.sysAppMessage .btn-close{position:absolute;z-index:200;right:5px;top:5px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".footer[data-v-5019359a]{margin-top:25px;padding:30px 0;font-size:13px;color:#555;background-color:#ececec;text-align:center}.footer a[data-v-5019359a]{text-decoration:none}.footer ul[data-v-5019359a]{padding:0;list-style:none}.footer ul li[data-v-5019359a]{display:inline-block}.footer ul li a[data-v-5019359a]{padding:0 15px;color:#555}.footer ul li+li a[data-v-5019359a]{border-left:1px solid #b2b2b2}.footer .footer-tagline[data-v-5019359a]{margin:20px 0 0}.footer-version[data-v-5019359a]{text-align:left;margin-bottom:3em;font-size:14px}.footer-version a[data-v-5019359a]{color:#555;font-weight:400}.version[data-v-5019359a]{font-weight:500}.data-last-update[data-v-5019359a]{font-size:13px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"../../static/img/header-background-m.jpg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".row-header[data-v-fc85597c]{-webkit-transition:.3s;transition:.3s}.row-full[data-v-fc85597c]{max-width:none}.navigation[data-v-fc85597c]{position:absolute;top:0;left:0;z-index:50;width:100%;background:#02243d;background:-webkit-gradient(linear,left top,right top,from(rgba(3,24,53,.45)),to(rgba(2,36,61,.25)));background:linear-gradient(90deg,rgba(3,24,53,.45) 0,rgba(2,36,61,.25))}.navigation.dark-theme[data-v-fc85597c]{background:-webkit-gradient(linear,left top,right top,color-stop(1%,#063c63),color-stop(50%,#1c496f),color-stop(75%,#347a7d),to(#507b82));background:linear-gradient(90deg,#063c63 1%,#1c496f 50%,#347a7d 75%,#507b82)}.navbar[data-v-fc85597c]{padding-left:5px;padding-right:5px;width:100%;color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.navbar a[data-v-fc85597c]{color:#fff;text-decoration:none}.navbar-brand[data-v-fc85597c]{font-size:24px;font-weight:500}.logo-text[data-v-fc85597c],.navbar-brand svg[data-v-fc85597c]{vertical-align:middle}.logo-text[data-v-fc85597c]{display:inline-block;padding:0 .5em .1em .25em}.navbar-collapse[data-v-fc85597c]{text-align:right;position:relative}.navbar-collapse.show div[data-v-fc85597c]:after{content:\\\"\\\";background-color:#1f5581;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");background-position:center 0;background-size:cover;opacity:1;top:0;left:-5px;bottom:0;right:0;position:absolute;z-index:-1;height:105%;width:105%}.logo[data-v-fc85597c]{display:inline-block;width:64px;height:40px;fill:#fff}@media screen and (max-width:768px){.link-report .logo-text[data-v-fc85597c]{display:none}}.logo-divider[data-v-fc85597c]{display:inline-block;margin-right:.4em;width:15px;height:40px;fill:hsla(0,0%,100%,.5)}@media screen and (max-width:768px){.logo-divider[data-v-fc85597c]{display:none}}.navbar-dark .navbar-nav .nav-link[data-v-fc85597c]{font-size:20px;color:#fff}.nav-item+.nav-item[data-v-fc85597c]{margin-left:1em}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".survey-container[data-v-97337c3a]:has(#embed-survey:not(:empty)){margin-top:35px}.survey-container #embed-survey[data-v-97337c3a]:not(:empty){position:fixed;bottom:0;border-radius:5px 5px 0 0;overflow:hidden;right:0;z-index:1001;border-left:1px solid #0092d0;background:#ececec;min-width:325px;padding:0 0 2px 10px}.survey-container #embed-survey[data-v-97337c3a]:not(:empty):before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:4px;background-color:#0092d0}.survey-container #embed-survey:not(:empty) button[data-v-97337c3a]{border-radius:15px!important}.survey-container #embed-survey:not(:empty) button[data-v-97337c3a]:active,.survey-container #embed-survey:not(:empty) button[data-v-97337c3a]:focus,.survey-container #embed-survey:not(:empty) button[data-v-97337c3a]:hover{outline:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tile[data-v-1d9292d1]{position:relative;overflow:hidden}.tile[data-v-1d9292d1]:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:4px;background-color:#0092d0}.sub-title[data-v-1d9292d1]{display:block;margin-bottom:-18px;font-size:13px;font-weight:700;color:#757575}.search-tile-outer[data-v-1d9292d1]{position:absolute;padding:15px}@media screen and (max-width:768px){.search-tile-outer[data-v-1d9292d1]{padding-left:10px;padding-right:10px}}.search-tile-outer.animate[data-v-1d9292d1]{-webkit-transition:.3s;transition:.3s}@media screen and (max-width:1199px){.search-tile-outer[data-v-1d9292d1]{position:relative;top:auto!important;left:auto!important;bottom:auto!important;right:auto!important;width:100%!important;height:auto!important}}.search-tile[data-v-1d9292d1]{padding:21.6px 24px;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);height:100%;-webkit-transition:.3s;transition:.3s;outline:none;overflow:hidden}@media screen and (max-width:768px){.search-tile[data-v-1d9292d1]{padding-left:10px;padding-right:10px}}.search-tile[data-v-1d9292d1]:focus:not(.active),.search-tile[data-v-1d9292d1]:hover:not(.active){-webkit-box-shadow:0 4px 16px 0 rgba(0,0,0,.45);box-shadow:0 4px 16px 0 rgba(0,0,0,.45)}.search-tile.active[data-v-1d9292d1]{height:auto;-webkit-transition:0s;transition:0s;overflow:visible}.search-tile.active .tile-content[data-v-1d9292d1]{position:relative}.search-tile.active .tile-description[data-v-1d9292d1]{position:absolute}.field-title[data-v-1d9292d1]{margin-bottom:1em;color:#212529}.field-title a[data-v-1d9292d1]:active,.field-title a[data-v-1d9292d1]:focus,.field-title a[data-v-1d9292d1]:hover{text-decoration:none}.tile-content-wrapper[data-v-1d9292d1]{position:relative}.tile-content[data-v-1d9292d1]{position:absolute;top:0;left:0;margin-left:-15px;padding-left:0;padding-right:0;width:calc(100% + 30px);-webkit-transition:.3s;transition:.3s}.tile-description[data-v-1d9292d1]{font-size:16px;font-weight:400}.hide-content[data-v-1d9292d1]{opacity:0;pointer-events:none}.legacy-link[data-v-1d9292d1]{display:inline-block;margin:10px 0 20px;padding:5px 8px 5px 12px;background-color:#ececec;border-radius:15px;color:#333;font-weight:700}@media screen and (max-width:1250px)and (min-width:1200px){.legacy-link[data-v-1d9292d1]{font-size:13px}}.legacy-link[data-v-1d9292d1]:focus,.legacy-link[data-v-1d9292d1]:hover{text-decoration:none;background-color:#e7f1fb;color:#20558a}.legacy-link:focus .arrow-right[data-v-1d9292d1],.legacy-link:hover .arrow-right[data-v-1d9292d1]{fill:#20558a}.legacy-link .arrow-right[data-v-1d9292d1]{position:relative;margin-left:5px;top:-1px;width:15px;fill:#333}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".vue3-tutorial__window-container{--vue3-tutorial-step-bg-color:#454d5d;--vue3-tutorial-mask-color:rgba(0,0,0,.5)}.feature-area>.container-fluid>.row{padding:0 20px}.smart-search{max-width:700px}.preview-note{border-radius:5px;background-color:rgba(215,230,219,.55);color:#212529;font-weight:500;position:relative;overflow:hidden}.preview-note .title{font-size:19px;font-weight:700}.preview-note:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:4px;background-color:#c0dfc3}.preview-note .btn-container{font-weight:700}.preview-note .btn-container .feedback{background-color:#e6fce8;text-decoration:none;border-radius:25px;color:#2a5d34;padding:5px 15px}.preview-note .btn-container .feedback:focus,.preview-note .btn-container .feedback:hover{background-color:#2a5d34;color:#fff;text-decoration:none}@media screen and (max-width:1199px){.feature-area{padding:2em 5px;padding-top:calc(2em + 64px)}.feature-area .field-help-text{position:relative}.smart-search{width:100%}}.v-tour--active .navigation:before,.v-tour--active:before{position:fixed;content:\\\"\\\";width:100%;height:100%;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.5);z-index:10}.v-tour--active .home,.v-tour--active .loading,.v-tour--active .preview-note{z-index:unset}.v-tour--active .v-tour__target--highlighted{-webkit-box-shadow:0 0 20px #81bbfb;box-shadow:0 0 20px #81bbfb;outline:2px solid #9ccbff}.v-tour--active .v-step__content{text-align:left}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tile[data-v-755c3ebc]{position:relative;overflow:hidden}.tile[data-v-755c3ebc]:before{content:\\\"\\\";position:absolute;top:0;left:0;width:100%;height:4px;background-color:#36cfd4}.sub-title[data-v-755c3ebc]{display:block;margin-bottom:-18px;font-size:13px;font-weight:700;color:#757575}.search-tile-outer[data-v-755c3ebc]{position:absolute;padding:15px}@media screen and (max-width:768px){.search-tile-outer[data-v-755c3ebc]{padding-left:10px;padding-right:10px}}.search-tile-outer.animate[data-v-755c3ebc]{-webkit-transition:.3s;transition:.3s}@media screen and (max-width:1199px){.search-tile-outer[data-v-755c3ebc]{position:relative;top:auto!important;left:auto!important;bottom:auto!important;right:auto!important;width:100%!important;height:auto!important}}.search-tile[data-v-755c3ebc]{padding:21.6px 24px;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);height:100%;-webkit-transition:.3s;transition:.3s;outline:none;overflow:hidden}@media screen and (max-width:768px){.search-tile[data-v-755c3ebc]{padding-left:10px;padding-right:10px}}.search-tile[data-v-755c3ebc]:focus:not(.active),.search-tile[data-v-755c3ebc]:hover:not(.active){-webkit-box-shadow:0 4px 16px 0 rgba(0,0,0,.45);box-shadow:0 4px 16px 0 rgba(0,0,0,.45)}.search-tile.active[data-v-755c3ebc]{height:auto;-webkit-transition:0s;transition:0s;overflow:visible}.search-tile.active .tile-content[data-v-755c3ebc]{position:relative}.search-tile.active .tile-description[data-v-755c3ebc]{position:absolute}.field-title[data-v-755c3ebc]{margin-bottom:1em;color:#212529}.field-title a[data-v-755c3ebc]:active,.field-title a[data-v-755c3ebc]:focus,.field-title a[data-v-755c3ebc]:hover{text-decoration:none}.tile-content-wrapper[data-v-755c3ebc]{position:relative}.tile-content[data-v-755c3ebc]{position:absolute;top:0;left:0;margin-left:-15px;padding-left:0;padding-right:0;width:calc(100% + 30px);-webkit-transition:.3s;transition:.3s}.tile-description[data-v-755c3ebc]{font-size:16px;font-weight:400}.hide-content[data-v-755c3ebc]{opacity:0;pointer-events:none}.legacy-link[data-v-755c3ebc]{display:inline-block;margin:10px 0 20px;padding:5px 8px 5px 12px;background-color:#ececec;border-radius:15px;color:#333;font-weight:700}@media screen and (max-width:1250px)and (min-width:1200px){.legacy-link[data-v-755c3ebc]{font-size:13px}}.legacy-link[data-v-755c3ebc]:focus,.legacy-link[data-v-755c3ebc]:hover{text-decoration:none;background-color:#e7f1fb;color:#20558a}.legacy-link:focus .arrow-right[data-v-755c3ebc],.legacy-link:hover .arrow-right[data-v-755c3ebc]{fill:#20558a}.legacy-link .arrow-right[data-v-755c3ebc]{position:relative;margin-left:5px;top:-1px;width:15px;fill:#333}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".loader[data-v-a036b158]{display:inline-block;position:relative;vertical-align:middle;width:4em;height:4em;top:-2px;left:0;margin-left:.5em;border-width:2px;border-top-color:hsla(0,0%,100%,.25);border-right-color:hsla(0,0%,100%,.25);border-bottom-color:hsla(0,0%,100%,.25);border-left-color:#fff}.btn-primary[data-v-a036b158]{--bs-btn-color:#fff;--bs-btn-bg:#c54721;--bs-btn-border-color:#c54721;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#a73c1c;--bs-btn-hover-border-color:#9e391a;--bs-btn-focus-shadow-rgb:206,99,66;--bs-btn-active-color:#fff;--bs-btn-active-bg:#9e391a;--bs-btn-active-border-color:#943519;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#c54721;--bs-btn-disabled-border-color:#c54721}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".loader[data-v-a28160d6]{display:inline-block;position:relative;vertical-align:middle;width:4em;height:4em;top:-2px;left:0;margin-left:.5em;border-width:2px;border-top-color:hsla(0,0%,100%,.25);border-right-color:hsla(0,0%,100%,.25);border-bottom-color:hsla(0,0%,100%,.25);border-left-color:#fff}.search-field[data-v-a28160d6]{-webkit-transition:.3s;transition:.3s}.loading .search-field[data-v-a28160d6]{opacity:.5}.lessPadding[data-v-a28160d6]{padding:0 2px}.hidden[data-v-a28160d6]{opacity:0}.hidden-absolute[data-v-a28160d6]{position:absolute;opacity:0}.animate[data-v-a28160d6]{-webkit-transition:.3s;transition:.3s}.search-field-container[data-v-a28160d6]{position:relative}.alert-light span[data-v-a28160d6]{color:#757575}.search-utility-buttons[data-v-a28160d6]{text-align:center;margin-top:10px}.btn-primary[data-v-a28160d6]{--bs-btn-color:#fff;--bs-btn-bg:#0f7422;--bs-btn-border-color:#0f7422;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d631d;--bs-btn-hover-border-color:#0c5d1b;--bs-btn-focus-shadow-rgb:51,137,67;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0c5d1b;--bs-btn-active-border-color:#0b571a;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0f7422;--bs-btn-disabled-border-color:#0f7422}.btn-round[data-v-a28160d6]{--bs-btn-color:#000;--bs-btn-bg:#ebfbe7;--bs-btn-border-color:#ebfbe7;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#eefceb;--bs-btn-hover-border-color:#edfbe9;--bs-btn-focus-shadow-rgb:200,213,196;--bs-btn-active-color:#000;--bs-btn-active-bg:#effcec;--bs-btn-active-border-color:#edfbe9;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ebfbe7;--bs-btn-disabled-border-color:#ebfbe7;color:#0f7422;min-width:calc(33% - 15px)}.fade-enter-active[data-v-a28160d6],.fade-leave-active[data-v-a28160d6]{-webkit-transition:opacity .5s;transition:opacity .5s}.fade-enter[data-v-a28160d6],.fade-leave-to[data-v-a28160d6]{opacity:0}.slide-fade-enter-active[data-v-a28160d6]{-webkit-transition:all .3s ease;transition:all .3s ease}.slide-fade-leave-active[data-v-a28160d6]{-webkit-transition:all .3s cubic-bezier(1,.5,.8,1);transition:all .3s cubic-bezier(1,.5,.8,1)}.slide-fade-enter[data-v-a28160d6],.slide-fade-leave-to[data-v-a28160d6]{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:0}.absolute-fade-fade-enter-active[data-v-a28160d6]{-webkit-transition:all .3s ease;transition:all .3s ease;position:absolute}.absolute-fade-fade-leave-active[data-v-a28160d6]{-webkit-transition:all .3s cubic-bezier(1,.5,.8,1);transition:all .3s cubic-bezier(1,.5,.8,1)}.absolute-fade-fade-enter[data-v-a28160d6],.absolute-fade-fade-leave-to[data-v-a28160d6]{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:0}.show-more-banner[data-v-a28160d6]:hover{border:1px solid #015496;cursor:pointer;background-color:#f0f0f0}@-webkit-keyframes shake-a28160d6{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}@keyframes shake-a28160d6{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}.show-more-banner[data-v-a28160d6]:hover{-webkit-animation:shake-a28160d6 .82s cubic-bezier(.36,.07,.19,.97) both;animation:shake-a28160d6 .82s cubic-bezier(.36,.07,.19,.97) both;-webkit-transform:translateZ(0);transform:translateZ(0)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".loader[data-v-632250e8]{display:inline-block;position:relative;vertical-align:middle;width:4em;height:4em;top:-2px;left:0;margin-left:.5em;border-width:2px;border-top-color:hsla(0,0%,100%,.25);border-right-color:hsla(0,0%,100%,.25);border-bottom-color:hsla(0,0%,100%,.25);border-left-color:#fff}.btn-primary[data-v-632250e8]{--bs-btn-color:#fff;--bs-btn-bg:#ad4ab3;--bs-btn-border-color:#ad4ab3;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#933f98;--bs-btn-hover-border-color:#8a3b8f;--bs-btn-focus-shadow-rgb:185,101,190;--bs-btn-active-color:#fff;--bs-btn-active-bg:#8a3b8f;--bs-btn-active-border-color:#823886;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#ad4ab3;--bs-btn-disabled-border-color:#ad4ab3}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".search-tile-outer[data-v-4a47be6c]{position:absolute;padding:15px}.search-tile-outer.active[data-v-4a47be6c]{position:relative;margin:-30px 0 0 -15px}@media screen and (max-width:1199px){.search-tile-outer.active[data-v-4a47be6c]{margin:0}}@media screen and (max-width:768px){.search-tile-outer[data-v-4a47be6c]{padding-left:10px;padding-right:10px}}.search-tile-outer.animate[data-v-4a47be6c]{-webkit-transition:.3s;transition:.3s}@media screen and (max-width:1199px){.search-tile-outer[data-v-4a47be6c]{position:relative;top:auto!important;left:auto!important;bottom:auto!important;right:auto!important;width:100%!important;height:auto!important}}.search-tile-outer.simple-sizing[data-v-4a47be6c]{position:relative;display:block;width:75%;float:left}.search-tile-outer.simple-sizing~.search-tile-outer[data-v-4a47be6c]{width:25%}@media screen and (max-width:1199px)and (min-width:992px){.search-tile-outer.simple-sizing~.search-tile-outer[data-v-4a47be6c]{width:33.4%!important}}.search-tile-outer.simple-sizing .tile-content[data-v-4a47be6c]{position:static;height:auto}.search-tile-outer.simple-sizing .tile-content.hide-content[data-v-4a47be6c]{position:absolute}.search-tile[data-v-4a47be6c]{padding:21.6px 24px;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);height:100%;min-height:194px;-webkit-transition:.3s;transition:.3s;outline:none;overflow:hidden}@media screen and (max-width:768px){.search-tile[data-v-4a47be6c]{padding-left:10px;padding-right:10px}}.search-tile[data-v-4a47be6c]:focus:not(.active),.search-tile[data-v-4a47be6c]:hover:not(.active){-webkit-box-shadow:0 4px 16px 0 rgba(0,0,0,.45);box-shadow:0 4px 16px 0 rgba(0,0,0,.45)}.search-tile.active[data-v-4a47be6c]{height:auto;min-height:418px;-webkit-transition:0s;transition:0s;overflow:visible}.search-tile.active .tile-content[data-v-4a47be6c]{position:relative}.search-tile.active .tile-description[data-v-4a47be6c]{position:absolute}.field-title[data-v-4a47be6c]{margin-bottom:1em;color:#212529}.field-title[data-v-4a47be6c]:after{background-color:#20558a}.field-title.title-advanced-projects-search[data-v-4a47be6c]:after{background-color:#29c047}.field-title.title-publications-search[data-v-4a47be6c]:after{background-color:#e33eed}.field-title.title-matchmaker[data-v-4a47be6c]:after{background-color:#e96639}.field-title a[data-v-4a47be6c]:active,.field-title a[data-v-4a47be6c]:focus,.field-title a[data-v-4a47be6c]:hover{text-decoration:none}.tile-content-wrapper[data-v-4a47be6c]{position:relative;font-size:16px}.tile-content[data-v-4a47be6c]{position:absolute;top:0;left:0;padding-left:0;padding-right:0;-webkit-transition:.3s;transition:.3s}.tile-description[data-v-4a47be6c]{font-weight:400}.hide-content[data-v-4a47be6c]{opacity:0;pointer-events:none;min-width:0!important;display:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".search-tiles[data-v-cabecec4]{position:relative;margin-left:-15px;margin-right:-15px;margin-top:-10px;margin-bottom:-15px;padding:30px 15px 0;width:calc(100% + 30px);-webkit-transition:.3s;transition:.3s}@media screen and (max-width:768px){.search-tiles[data-v-cabecec4]{padding-left:0;padding-right:0}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".field-title[data-v-2d284598]{font-size:18px;overflow:visible}.field-title.group-title[data-v-2d284598]{font-size:14px}.field-help-text[data-v-2d284598]{margin:0;margin-left:calc(1.45rem + .5em)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".field-tooltip-icon{display:inline-block;width:20px;height:20px;background:none;border:none;padding:0;top:-1px;margin:0 4px}.field-tooltip-icon .svg{z-index:22;color:#20558a}.field-tooltip-icon:focus,.field-tooltip-icon:hover{outline:none;color:#0566b1}.field-tooltip-icon:focus .field-tooltip,.field-tooltip-icon:hover .field-tooltip{display:block;pointer-events:all;opacity:1;color:#212529}@media screen and (max-width:767px){.field-tooltip-icon{float:right}}.field-tooltip{position:absolute;top:100%;left:25%;z-index:110;padding:10px;border-radius:5px;width:300px;font-size:14px;text-align:left;line-height:1.5em;background-color:#e7f1fb;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);pointer-events:none;opacity:0;-webkit-transition:.3s;transition:.3s;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default}.field-tooltip a{word-break:break-all;color:#20558a;text-decoration:none}.field-tooltip a.no-break{word-break:break-word}.field-tooltip a:active,.field-tooltip a:focus,.field-tooltip a:hover{color:#0566b1}.field-tooltip p{margin-top:.5em}@media screen and (max-width:767px){.field-tooltip{left:auto;right:0}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".input-text[data-v-be4eafe6]{position:relative}.field-title[data-v-be4eafe6]{margin-bottom:.5em;font-size:18px;font-weight:400;overflow:visible;color:#212529}.input-group[data-v-be4eafe6]{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.35);box-shadow:0 1px 2px 0 rgba(0,0,0,.35);background-color:#ececec;border-radius:5px}.date-selection-options[data-v-be4eafe6]{display:none;padding:10px 10px 0}.date-selection-options .label[data-v-be4eafe6]{display:inline-block;border-right:none;font-weight:700;padding:5px 7px 10px 0}.date-selection-options .options[data-v-be4eafe6]{text-align:right}.date-selection-options .options ul[data-v-be4eafe6]{padding:7px 0;-webkit-box-shadow:3px 5px 6px 0 rgba(0,0,0,.25);box-shadow:3px 5px 6px 0 rgba(0,0,0,.25);border-radius:5px;display:inline}.date-selection-options .options ul li[data-v-be4eafe6]{display:inline-block;padding:5px 5px;border-top:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.25)}.date-selection-options .options ul li[data-v-be4eafe6]:last-child{border-radius:0 5px 5px 0;border-right:none}.date-selection-options .options ul li[data-v-be4eafe6]:first-child{border-radius:5px 0 0 5px}.date-selection-options .options ul li.active[data-v-be4eafe6]{border-right:none;background-color:#20558a}.date-selection-options .options ul li.active a[data-v-be4eafe6]{color:#fff}.date-selection-options .options ul li.active[data-v-be4eafe6]:hover{background-color:#102f68}.date-selection-options .options ul li a[data-v-be4eafe6]:hover,.date-selection-options .options ul li.active:hover a[data-v-be4eafe6]{text-decoration:none}.mx-datepicker-popup .date-selection-options[data-v-be4eafe6]{display:block}.mx-datepicker-range[data-v-be4eafe6]{width:100%;background-color:transparent}span.display-date[data-v-be4eafe6]{display:inline-block;margin:0;overflow:auto;font-size:16px;min-height:42px;z-index:2;padding:.72rem .5rem;height:calc(2.875rem + 2px);background-color:#ececec;position:absolute;line-height:1.4;fill:rgba(0,0,0,.25);width:100%}span.display-date .svg-icon[data-v-be4eafe6]{position:absolute;right:9px;height:12px;top:16px}span.display-date .svg-icon .color1[data-v-be4eafe6]{fill:rgba(0,0,0,.25)}.mx-calendar .mx-calendar-content[data-v-be4eafe6]{overflow:visible!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".slider[data-v-612acf58]{width:100%!important}.field-title[data-v-612acf58]{margin-bottom:.5em;font-size:18px;font-weight:400;overflow:visible;color:#212529}.inline[data-v-612acf58]{display:inline-block;width:calc(50% - 2px);margin-bottom:10px}.inline[data-v-612acf58]:first-child{margin-right:4px}.inline input[data-v-612acf58]{overflow:hidden;padding:.45rem .5rem;width:100%;height:auto;min-height:calc(2.875rem + 2px);max-height:calc(8.625rem + 6px);background-color:#ececec;color:#495057;border-radius:5px;border:none;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.35);box-shadow:0 1px 2px 0 rgba(0,0,0,.35);font-size:15px;-webkit-transition:.3s;transition:.3s}.inline input[data-v-612acf58]:focus{border-color:#1998fd;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(1,84,150,.25);box-shadow:0 0 0 .2rem rgba(1,84,150,.25)}.inline .subtitle[data-v-612acf58]{font-size:14px}.loader[data-v-612acf58]{display:inline-block;position:relative;top:3px;left:6px;margin-top:-10px;width:18px;height:18px}.loading-failed .field-title[data-v-612acf58]{color:#757575}.loading-failed .field-wrapper[data-v-612acf58]{opacity:.25}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"textarea.textInput[data-v-2ca8dd39]{overflow:hidden;resize:true}.count[data-v-2ca8dd39]{margin-top:2px;color:#555}.input-text[data-v-2ca8dd39]{position:relative}.field-title[data-v-2ca8dd39]{margin-bottom:.5em;font-size:18px;font-weight:400;overflow:visible;color:#212529}.input-group[data-v-2ca8dd39]{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.35);box-shadow:0 1px 2px 0 rgba(0,0,0,.35);background-color:#ececec;border-radius:5px}.form-control[data-v-2ca8dd39]{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-color:transparent}.input-text__input-group[data-v-2ca8dd39]{padding:.45rem .5rem;width:100%;min-height:calc(2.875rem + 2px);height:auto;background-color:#ececec;border-radius:5px;font-size:15px;-webkit-transition:.3s;transition:.3s}.input-text__input-group.active[data-v-2ca8dd39]{border-color:#1998fd;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(1,84,150,.25);box-shadow:0 0 0 .2rem rgba(1,84,150,.25)}.input-text__tags[data-v-2ca8dd39]{display:inline;margin:0;padding:.5rem 0;list-style:none}.input-text__tag[data-v-2ca8dd39]{position:relative;display:inline-block;padding:.1em 1.5em .1em .5em;margin:.15rem .4rem .15rem 0;background-color:#e7f1fb;border-radius:12px;font-size:14px;font-weight:700;color:#333;-webkit-box-shadow:0 1px 5px 0 rgba(0,0,0,.25);box-shadow:0 1px 5px 0 rgba(0,0,0,.25);-webkit-transition:.3s;transition:.3s}.input-text__tag[data-v-2ca8dd39]:focus,.input-text__tag[data-v-2ca8dd39]:hover{-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.35);box-shadow:0 2px 8px 0 rgba(0,0,0,.35)}.input-text__tag__remove[data-v-2ca8dd39]{position:absolute;top:0;right:0;padding:0;border:none;background:none;width:1.75em;height:1.75em;text-align:center;cursor:pointer;vertical-align:middle}.input-text__tag__remove svg[data-v-2ca8dd39]{padding:.4em .4em .5em .5em;width:1.75em;height:1.75em;fill:rgba(0,0,0,.25)}.input-text__tag__remove:focus svg[data-v-2ca8dd39],.input-text__tag__remove:hover svg[data-v-2ca8dd39]{fill:#e96639}.input-text-highlight[data-v-2ca8dd39]{position:absolute;color:transparent;white-space:pre-wrap;z-index:1;pointer-events:none;overflow:hidden}.input-text-highlight+.input-text__input[data-v-2ca8dd39]{border-radius:5px}.input-text__input[data-v-2ca8dd39]{display:inline-block;margin:0;width:100%;overflow:auto;font-size:15px;resize:vertical;min-height:42px;z-index:2}.input-text__input.active[data-v-2ca8dd39]:not(:disabled),.input-text__input[data-v-2ca8dd39]:focus:not(:disabled){border-color:#1998fd;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(1,84,150,.25);box-shadow:0 0 0 .2rem rgba(1,84,150,.25)}.project-number-split .input-text__input[data-v-2ca8dd39]{resize:none}.project-number-split .col-sm-1[data-v-2ca8dd39]{-webkit-box-flex:0;-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.multiselect__remove_all[data-v-2ca8dd39]{float:right;margin-right:-.2em;padding:0;border:none;background:none;width:1.4em;height:1.4em;text-align:center;cursor:pointer;z-index:10;vertical-align:middle}.multiselect__remove_all svg[data-v-2ca8dd39]{position:relative;margin-top:-.2em;padding:0 .25em;width:1.4em;height:1.4em;fill:rgba(16,47,104,.4)}.multiselect__remove_all:focus svg[data-v-2ca8dd39],.multiselect__remove_all:hover svg[data-v-2ca8dd39]{fill:#e96639}.input-text__dropdown[data-v-2ca8dd39]{position:absolute;top:100%;left:0;min-width:100%;max-width:200%;height:0;background-color:#fff;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);border-radius:5px;overflow:auto;z-index:10;-webkit-transition:.3s;transition:.3s}.input-text__dropdown.open[data-v-2ca8dd39]{height:200px}.max-reached[data-v-2ca8dd39]{-webkit-animation:maxCharacters-2ca8dd39 .3s ease-in-out normal forwards;animation:maxCharacters-2ca8dd39 .3s ease-in-out normal forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transform-origin:left;transform-origin:left}@-webkit-keyframes maxCharacters-2ca8dd39{0%{font-weight:700;color:#333}50%{-webkit-transform:scale(1.05);transform:scale(1.05);color:#c32d2d}to{font-weight:700;color:#c32d2d}}@keyframes maxCharacters-2ca8dd39{0%{font-weight:700;color:#333}50%{-webkit-transform:scale(1.05);transform:scale(1.05);color:#c32d2d}to{font-weight:700;color:#c32d2d}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".multiselect[data-v-3a3b21ee]{position:relative}.field-title[data-v-3a3b21ee]{margin-bottom:.5em;color:#212529;font-size:18px;font-weight:400;overflow:visible}.input-group[data-v-3a3b21ee]{overflow:hidden;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.35);box-shadow:0 1px 2px 0 rgba(0,0,0,.35);-webkit-transition:.3s;transition:.3s;height:auto;min-height:calc(2.875rem + 2px);max-height:calc(8.625rem + 6px)}.input-group.inactive[data-v-3a3b21ee]{height:calc(2.875rem + 2px)}.input-group.focused[data-v-3a3b21ee]{border-color:#1998fd;-webkit-box-shadow:0 0 0 .2rem rgba(1,84,150,.25);box-shadow:0 0 0 .2rem rgba(1,84,150,.25)}.form-control[data-v-3a3b21ee]{background-color:transparent}.multiselect__input-group[data-v-3a3b21ee]{position:relative;padding:.25rem .5rem;width:100%;height:auto;min-height:calc(2.875rem + 2px);max-height:calc(8.625rem + 6px);background-color:#ececec;border-radius:5px;font-size:15px;-webkit-transition:.3s;transition:.3s;overflow:hidden;scroll-behavior:smooth}.multiselect__input-group.active[data-v-3a3b21ee]{overflow-x:hidden;overflow-y:scroll;border-color:#1998fd;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(1,84,150,.25);box-shadow:0 0 0 .2rem rgba(1,84,150,.25)}.multiselect__input-group.active .multiselect__input[data-v-3a3b21ee]{margin:.15rem 0;height:1.6em}.multiselect__input-group.disabled[data-v-3a3b21ee]{opacity:.5}.multiselect__input-group[data-v-3a3b21ee] ::-webkit-input-placeholder{font-size:14px;font-weight:500;color:#757575}.multiselect__input-group[data-v-3a3b21ee] ::-moz-placeholder{font-size:14px;font-weight:500;color:#757575}.multiselect__input-group[data-v-3a3b21ee] :-ms-input-placeholder{font-size:14px;font-weight:500;color:#757575}.multiselect__input-group[data-v-3a3b21ee] :-moz-placeholder{font-size:14px;font-weight:500;color:#757575}.multiselect__tags[data-v-3a3b21ee]{display:inline;margin:0;padding:.5rem 0;list-style:none}.multiselect__tag[data-v-3a3b21ee]{position:relative;display:inline-block;padding:.1em 1.5em .1em .5em;margin:.15rem .4rem .15rem 0;background-color:#e7f1fb;border-radius:12px;font-size:14px;font-weight:700;color:#333;-webkit-box-shadow:0 1px 5px 0 rgba(0,0,0,.25);box-shadow:0 1px 5px 0 rgba(0,0,0,.25);-webkit-transition:.3s;transition:.3s;float:left}.multiselect__tag[data-v-3a3b21ee]:focus,.multiselect__tag[data-v-3a3b21ee]:hover{-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.35);box-shadow:0 2px 8px 0 rgba(0,0,0,.35)}.multiselect__tag__remove[data-v-3a3b21ee]{position:absolute;top:0;right:0;padding:0;border:none;background:none;width:1.75em;height:1.75em;text-align:center;cursor:pointer;vertical-align:middle}.multiselect__tag__remove .svg[data-v-3a3b21ee]{padding:.4em .4em .5em .5em;width:1.75em;height:1.75em;color:rgba(16,47,104,.4)}.multiselect__tag__remove:focus .svg[data-v-3a3b21ee],.multiselect__tag__remove:hover .svg[data-v-3a3b21ee]{color:#e96639}.multiselect__tag__remove_all[data-v-3a3b21ee]{position:absolute;top:.45em;right:.25em;padding:0;border:none;background:none;width:2em;height:2em;text-align:center;cursor:pointer;z-index:10;vertical-align:middle}.multiselect__tag__remove_all .svg[data-v-3a3b21ee]{padding:.4em .4em .5em .5em;width:2em;height:2em;color:rgba(0,0,0,.25)}.multiselect__tag__remove_all:focus .svg[data-v-3a3b21ee],.multiselect__tag__remove_all:hover .svg[data-v-3a3b21ee]{color:#e96639}.multiselect__remove_all[data-v-3a3b21ee]{float:right;margin-right:-.2em;padding:0;border:none;background:none;width:1.4em;height:1.4em;text-align:center;cursor:pointer;z-index:10;vertical-align:middle}.multiselect__remove_all .svg[data-v-3a3b21ee]{position:relative;margin-top:-.2em;padding:0 .25em;width:1.4em;height:1.4em;color:rgba(16,47,104,.4)}.multiselect__remove_all:focus .svg[data-v-3a3b21ee],.multiselect__remove_all:hover .svg[data-v-3a3b21ee]{color:#e96639}.multiselect__expand[data-v-3a3b21ee]{position:absolute;top:.45em;right:.25em;margin-right:-.25em;padding:.4em .4em .5em .5em;width:2em;height:2em;color:rgba(0,0,0,.25);z-index:20;background-color:#ececec;-webkit-box-shadow:0 0 15px #ececec;box-shadow:0 0 15px #ececec;border-radius:5px}.multiselect__select_all[data-v-3a3b21ee]{--bs-btn-color:#000;--bs-btn-bg:#fff;--bs-btn-border-color:#fff;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#fff;--bs-btn-hover-border-color:#fff;--bs-btn-focus-shadow-rgb:217,217,217;--bs-btn-active-color:#000;--bs-btn-active-bg:#fff;--bs-btn-active-border-color:#fff;--bs-btn-active-shadow:inset 0 3px 5px rgba(0,0,0,.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#fff;--bs-btn-disabled-border-color:#fff;position:absolute;bottom:0;width:100%;height:30px;color:#20558a;font-weight:700;border-radius:0;-webkit-box-shadow:0 1px 5px 0 rgba(0,0,0,.25);box-shadow:0 1px 5px 0 rgba(0,0,0,.25)}.multiselect__select_all[data-v-3a3b21ee]:focus,.multiselect__select_all[data-v-3a3b21ee]:hover{background-color:#20558a;border-color:#20558a;color:#fff}.multiselect__select_all.multiselect__deselect_all[data-v-3a3b21ee]:focus,.multiselect__select_all.multiselect__deselect_all[data-v-3a3b21ee]:hover{background-color:#fff;border-color:#fff;color:#c32d2d}.multiselect__input[data-v-3a3b21ee]{margin:0;padding:0;font-size:15px;width:100%;height:1.6em;-webkit-transition:.3s;transition:.3s;overflow:visible;border:none}.multiselect__input[data-v-3a3b21ee],.multiselect__input[data-v-3a3b21ee]:focus{-webkit-box-shadow:none;box-shadow:none}.multiselect__input[data-v-3a3b21ee]:disabled{opacity:.5}.multiselect__dropdown[data-v-3a3b21ee]{position:absolute;top:100%;left:0;padding-bottom:0;min-width:100%;max-width:200%;height:0;background-color:#fff;-webkit-box-shadow:0 2px 8px 0 rgba(0,0,0,.25);box-shadow:0 2px 8px 0 rgba(0,0,0,.25);border-radius:5px;overflow:hidden;z-index:100;-webkit-transition:.3s;transition:.3s}.multiselect__dropdown.wide[data-v-3a3b21ee]{width:130%}@media screen and (max-width:768px){.multiselect__dropdown.wide[data-v-3a3b21ee]{width:100%}}.multiselect__dropdown.open[data-v-3a3b21ee]{padding-bottom:30px;height:200px}.multiselect__dropdown .multiselect__dropdown_scroll[data-v-3a3b21ee]{overflow:auto;height:100%}.multiselect__dropdown_scroll_loading[data-v-3a3b21ee]{opacity:.5;pointer-events:none}.loader[data-v-3a3b21ee]{display:inline-block;position:relative;top:3px;left:6px;margin-top:-10px;width:18px;height:18px}.loading-failed .field-title[data-v-3a3b21ee]{color:#757575}.loading-failed .field-wrapper[data-v-3a3b21ee]{opacity:.25}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".multiselect__list[data-v-583a7fc7]{list-style:none;padding:0;margin:0}.multiselect__list .multiselect__list__item[data-v-583a7fc7]{font-size:14px}.multiselect__list .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]{position:relative;display:inline-block;padding:.25em .75em .25em 1.5em;width:100%;border:none;background:none;text-align:left;line-height:1.2em;font-weight:500;z-index:1}.multiselect__list .multiselect__list__item .multiselect__list__item_button.active[data-v-583a7fc7],.multiselect__list .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]:focus,.multiselect__list .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]:hover{background-color:#c9e3fd}.multiselect__list .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]{background-color:#20558a;color:#fff}.multiselect__list .multiselect__list__item.selected .multiselect__list__item_button.active[data-v-583a7fc7],.multiselect__list .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]:focus,.multiselect__list .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]:hover{background-color:#0566b1}.multiselect__list .multiselect__list__item.selected .multiselect__expand_toggle .multiselect__expand_toggle__icon[data-v-583a7fc7]{color:#fff}.multiselect__list .multiselect__list__item .multiselect__list__item[data-v-583a7fc7]{margin-left:1.5em}.multiselect__list .multiselect__list__item .multiselect__list__item:first-child>.multiselect__list__item_button[data-v-583a7fc7]:after{top:.25em;height:calc(100% - .25em)}.multiselect__list .multiselect__list__item .multiselect__list__item:last-child>.multiselect__list__item_button[data-v-583a7fc7]:after{height:calc(100% - .25em)}.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]{padding:.25em .75em .25em 1em;font-weight:400}.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]:after{content:\\\"\\\";position:absolute;top:0;left:0;width:3px;height:100%;background-color:#f2f2f2}.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button.has-children[data-v-583a7fc7]{padding-left:1.5em}.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button.has-children[data-v-583a7fc7]:after{display:none}.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button.active[data-v-583a7fc7]:after,.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]:focus:after,.multiselect__list .multiselect__list__item .multiselect__list__item .multiselect__list__item_button[data-v-583a7fc7]:hover:after{top:0;height:100%;background-color:#0566b1}.multiselect__list .multiselect__list__item .multiselect__list__item:first-child:last-child>.multiselect__list__item_button[data-v-583a7fc7]:after{top:.25em;height:calc(100% - .5em)}.multiselect__list .multiselect__list__item .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]:after{top:0;height:100%;background-color:#0566b1}.multiselect__list .multiselect__list__item .multiselect__list__item.selected .multiselect__list__item_button.active[data-v-583a7fc7]:after,.multiselect__list .multiselect__list__item .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]:focus:after,.multiselect__list .multiselect__list__item .multiselect__list__item.selected .multiselect__list__item_button[data-v-583a7fc7]:hover:after{background-color:#20558a}.multiselect__expand_toggle[data-v-583a7fc7]{display:block;position:relative;margin-bottom:-1.5em;padding:0 .25em;width:1.5em;height:1.5em;background:none;border:none;outline:none;z-index:5}.multiselect__expand_toggle .multiselect__expand_toggle__icon[data-v-583a7fc7]{width:100%;height:100%;-webkit-transition:.3s;transition:.3s;color:#99aed8}.multiselect__expand_toggle.expanded .multiselect__expand_toggle__icon[data-v-583a7fc7]{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.multiselect__expand_toggle:focus .multiselect__expand_toggle__icon[data-v-583a7fc7],.multiselect__expand_toggle:hover .multiselect__expand_toggle__icon[data-v-583a7fc7]{color:#0566b1}.multiselect__expand_toggle:focus~.multiselect__list__item_button[data-v-583a7fc7],.multiselect__expand_toggle:hover~.multiselect__list__item_button[data-v-583a7fc7]{background-color:#c9e3fd}.slide-fade-enter-active[data-v-583a7fc7],.slide-fade-leave-active[data-v-583a7fc7]{-webkit-transition:.3s;transition:.3s}.slide-fade-enter[data-v-583a7fc7],.slide-fade-leave-to[data-v-583a7fc7]{opacity:0;height:0}.slide-fade-enter[data-v-583a7fc7],.slide-fade-leave-to[data-v-583a7fc7]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".input-group[data-v-6ea8a8d9]{margin-bottom:.25rem}.form-control[data-v-6ea8a8d9]{z-index:1}.input-group-append[data-v-6ea8a8d9]{z-index:2}.smartSearchContainer span[data-v-6ea8a8d9]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.smartSearchContainer .clearIcon[data-v-6ea8a8d9]{position:absolute;right:10px;top:15px;z-index:100;color:gray;font-size:small;cursor:default}.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-ms-clear,.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-ms-reveal{display:none;width:0;height:0}.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-webkit-search-cancel-button,.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-webkit-search-decoration,.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-webkit-search-results-button,.smartSearchContainer input[type=search][data-v-6ea8a8d9]::-webkit-search-results-decoration{display:none}.btn-primary.disabled[data-v-6ea8a8d9],.btn-primary[data-v-6ea8a8d9]:disabled{opacity:1;background-color:#102f68;border-color:#102f68}.btn-lg[data-v-6ea8a8d9]{padding-left:1.75em;padding-right:1.75em}@media screen and (max-width:768px){.btn-lg[data-v-6ea8a8d9]{padding-left:.75em;padding-right:.75em}}.btn-orange[data-v-6ea8a8d9]{background-color:#c58100}.btn-orange[data-v-6ea8a8d9]:active,.btn-orange[data-v-6ea8a8d9]:hover{background-color:#fda808!important}.field-title[data-v-6ea8a8d9]{font-size:28px}.field-title[data-v-6ea8a8d9]:after{background-color:#fda808}.field-help-text[data-v-6ea8a8d9]{width:100%}.field-error-message[data-v-6ea8a8d9]{color:#fff}.slide-fade-enter-active[data-v-6ea8a8d9],.slide-fade-leave-active[data-v-6ea8a8d9]{-webkit-transition:.3s;transition:.3s}.slide-fade-enter[data-v-6ea8a8d9],.slide-fade-leave-to[data-v-6ea8a8d9]{-webkit-transform:translateY(10px);transform:translateY(10px);opacity:0}.loader[data-v-6ea8a8d9]{top:6px;left:-34px;height:26px;width:26px}.advanced-link[data-v-6ea8a8d9]{position:absolute;display:inline-block;margin-top:5px;padding:.2em .5em;font-size:14px;font-weight:500;line-height:1.2em;color:#fff;background-color:hsla(0,0%,100%,.25);border-radius:1em;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.25);box-shadow:0 2px 3px rgba(0,0,0,.25);-webkit-transition:.3s;transition:.3s}.advanced-link[data-v-6ea8a8d9]:focus,.advanced-link[data-v-6ea8a8d9]:hover{color:#20558a;background-color:#fff;text-decoration:none}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".enter-active[data-v-b0f7829a],.leave-active[data-v-b0f7829a]{overflow:hidden;-webkit-transition:.3s ease;transition:.3s ease}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".home-charts[data-v-02ad7961]{margin-top:30px}@media screen and (max-width:768px){.tile-container[data-v-02ad7961]{padding-left:0;padding-right:0;margin-left:-5px;margin-right:-5px;width:calc(100% + 10px)}}@media screen and (max-width:991px){.tile-container+.tile-container[data-v-02ad7961]{margin-top:30px}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<template>\r\n  <div id=\"app\">\r\n\t<a href=\"#reporter-content\" id=\"skip-nav\" rel=\"noopener\">\r\n      Skip Navigation Links\r\n    </a>\r\n\r\n\t<template v-if=\"applicationMsg\">\r\n\t\t<b-collapse class=\"collapse sysAppMessage\" visible id=\"applicationMsgInfo\">\r\n\t\t\t<template v-for=\"(msg, ind) in applicationMsg.info\">\r\n\t\t\t\t<button v-if=\"ind == 0 && msg.message\" type=\"button\" class=\"btn-close\" v-b-toggle.applicationMsgInfo aria-label=\"Close\"></button>\r\n\t\t\t\t<div class=\"alert m-0 alert-info\" :class=\"getClass(ind, applicationMsg.info.length)\" role=\"alert\" v-if=\"msg.message\" v-html=\"msg.message\">\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t</b-collapse>\r\n\t\t<b-collapse class=\"collapse sysAppMessage\" visible id=\"applicationMsgWarning\">\r\n\t\t\t<template v-for=\"(msg, ind) in applicationMsg.warning\">\r\n\t\t\t\t<button v-if=\"ind == 0 && msg.message\" type=\"button\" class=\"btn-close\" v-b-toggle.applicationMsgWarning aria-label=\"Close\"></button>\r\n\t\t\t\t<div class=\"alert m-0 alert-warning\"\r\n\t\t\t\t\t:class=\"getClass(ind, applicationMsg.warning.length)\" role=\"alert\" v-if=\"msg.message\" v-html=\"msg.message\">\r\n\t\t\t\t</div>\r\n\t\t\t</template>\r\n\t\t</b-collapse>\r\n\t\t<b-collapse class=\"collapse sysAppMessage\" visible id=\"applicationMsgError\">\r\n\t\t\t<div v-for=\"(msg, ind) in applicationMsg.error\">\r\n\t\t\t\t<button v-if=\"ind == 0 && msg.message\" type=\"button\" class=\"btn-close\" v-b-toggle.applicationMsgError aria-label=\"Close\"></button>\r\n\t\t\t\t<div class=\"alert m-0 alert-danger\" :class=\"getClass(ind, applicationMsg.error.length)\" role=\"alert\" v-if=\"msg.message\" v-html=\"msg.message\">\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</b-collapse>\r\n\t</template>\r\n\r\n    <div class=\"position-relative\">\r\n\t\t<div id=\"nav\">\r\n\t\t<navigation></navigation>\r\n\t\t</div>\r\n\r\n\t\t<div id=\"reporter-content\">\r\n\t\t\t<router-view />\r\n\t\t</div>\r\n\t\t<div class=\"col-10 offset-1\">\r\n\t\t<footer-nav  :exporterPage=\"false\" v-if=\"showFooter\"/>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<Qualtrics />\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport Navigation from '@/components/Navigation.vue';\r\nimport FooterNav from '@/components/Footer.vue';\r\nimport { mapGetters } from 'vuex';\r\nimport Qualtrics from '@/components/global/qualtrics.vue';\r\n\r\nexport default {\r\n\tname: 'app',\r\n\tcompatConfig: { MODE: 3 },\r\n\tcomponents: {\r\n\t\tNavigation,\r\n\t\tFooterNav,\r\n\t\tQualtrics\r\n\t},\r\n\tdata: function () {\r\n\t\treturn {\r\n\t\t\tshowFooter: true,\r\n\t\t\tapplicationMsg: null\r\n\t\t};\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['externalURLs'])\r\n\t},\r\n    watch: {\r\n        '$route.name': function (val) {\r\n            switch (val) {\r\n\t\t\t\tcase 'smartSearch':\r\n\t\t\t\tcase 'home':\r\n\t\t\t\tcase 'publications-search':\r\n\t\t\t\tcase 'advanced-search':\r\n\t\t\t\tcase 'matchmaker':\r\n\t\t\t\t\tthis.showFooter = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.showFooter = false;\r\n            }\r\n        }\r\n    },\r\n\tasync created() {\r\n\t\tvar requestedURLs = [\r\n            'reporter_application_message'\r\n        ];\r\n\r\n        await this.$store.dispatch('getAppSettingsPropertyByNameAction', requestedURLs);\r\n\r\n\t\tthis.getMessage();\r\n\t},\r\n\tmethods: {\r\n\t\tgetMessage () {\r\n\t\t\tif(this.externalURLs && this.externalURLs.reporter_application_message) {\r\n\t\t\t\tvar msg = this.externalURLs.reporter_application_message;\r\n\t\t\t\tvar formattedJSON = JSON.parse(JSON.stringify(eval('(' + msg + ')')));\r\n\t\t\t\tvar msgTypes = formattedJSON.message;\r\n\t\t\t\tthis.applicationMsg = {};\r\n\t\t\t\tfor (let i = 0; i < msgTypes.length; i++) {\r\n\t\t\t\t\tif (!this.applicationMsg[msgTypes[i].type]) {\r\n\t\t\t\t\t\tthis.applicationMsg[msgTypes[i].type] = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.applicationMsg[msgTypes[i].type].push(msgTypes[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetClass (ind, totalCnt) {\r\n\t\t\tif (totalCnt === 1) {\r\n\t\t\t\treturn '';\r\n\t\t\t} else {\r\n\t\t\t\tif (ind === 0) {\r\n\t\t\t\t\treturn 'border-bottom-0';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 'border-top-0';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '@/scss/main.scss';\r\n.sysAppMessage {\r\n\t.fas {\r\n\t\tz-index: 101;\r\n\t\tposition: relative;\r\n\t\t&:focus {\r\n\t\t\toutline: none;\r\n\t\t}\r\n\t}\r\n\t.btn-close {\r\n\t\tposition: absolute;\r\n\t\tz-index:200;\r\n\t\tright:5px;\r\n\t\ttop:5px;\r\n\t}\r\n}\r\n\r\n</style>","import { mapActions, mapGetters } from 'vuex';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n  computed: {\r\n    ...mapGetters([\r\n      'searchFacetCriteria',\r\n      'matchmakerFacetCriteria',\r\n      'publicationsFacetCriteria',\r\n      'graphSettings',\r\n      'searchType',\r\n      'currentExportTab',\r\n      'selectedPerson',\r\n      'editSearchCriteria',\r\n      'externalURLs'\r\n    ]),\r\n  },\r\n  data () {\r\n    return {\r\n      notificationSystem: {\r\n        options: {\r\n          show: {\r\n            theme: 'dark',\r\n            icon: 'icon-person',\r\n            position: 'topCenter',\r\n            progressBarColor: 'rgb(0, 255, 184)',\r\n            buttons: [\r\n              ['<button>Ok</button>', function (instance, toast) {\r\n                alert(\"Hello world!\");\r\n              }, true],\r\n              ['<button>Close</button>', function (instance, toast) {\r\n                instance.hide({\r\n                  transitionOut: 'fadeOutUp',\r\n                  onClosing: function (instance, toast, closedBy) {\r\n                    console.info('closedBy: ' + closedBy);\r\n                  }\r\n                }, toast, 'buttonName');\r\n              }]\r\n            ],\r\n            onOpening: function (instance, toast) {\r\n              console.info('callback abriu!');\r\n            },\r\n            onClosing: function (instance, toast, closedBy) {\r\n              console.info('closedBy: ' + closedBy);\r\n            }\r\n          },\r\n          ballon: {\r\n            balloon: true,\r\n            position: 'bottomCenter'\r\n          },\r\n          info: {\r\n            position: 'bottomLeft'\r\n          },\r\n          success: {\r\n            position: 'bottomRight'\r\n          },\r\n          warning: {\r\n            position: 'topLeft'\r\n          },\r\n          error: {\r\n            close: true,\r\n            position: 'topRight',\r\n            timeout: 5000,\r\n            overlay: false,\r\n          },\r\n          question: {\r\n            timeout: 20000,\r\n            close: false,\r\n            overlay: true,\r\n            toastOnce: true,\r\n            id: 'question',\r\n            zindex: 999,\r\n            position: 'center',\r\n            buttons: [\r\n              ['<button><b>YES</b></button>', function (instance, toast) {\r\n                instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');\r\n              }, true],\r\n              ['<button>NO</button>', function (instance, toast) {\r\n                instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');\r\n              }]\r\n            ],\r\n            onClosing: function (instance, toast, closedBy) {\r\n              console.info('Closing | closedBy: ' + closedBy);\r\n            },\r\n            onClosed: function (instance, toast, closedBy) {\r\n              console.info('Closed | closedBy: ' + closedBy);\r\n            }\r\n          }\r\n        }\r\n      }\r\n    };\r\n  },\r\n  mounted () {\r\n    setTimeout(() => {\r\n      this.initWindowEvents();\r\n    }, 1);\r\n\r\n    bus.$on('get:searchCriteria', () => {\r\n      if (!this.isLoadingSearchCriteria) {\r\n        this.isLoadingSearchCriteria = true;\r\n        this.getSearchCriteria();\r\n      }\r\n    });\r\n\r\n    bus.$off('update:searchResults');\r\n    bus.$on('update:searchResults', (flag, callback) => {\r\n      switch (this.$route.name) {\r\n        case 'list':\r\n        case 'home':\r\n        case 'advanced-search':\r\n        case 'matchmaker':\r\n        case 'publications-search':\r\n          this.getProjectSearchResults(flag, callback);\r\n          break;\r\n        case 'charts':\r\n          this.getProjectSearchGraphData(flag, callback);\r\n          break;\r\n        case 'map':\r\n          this.getProjectSearchMapData(flag, (data) => {\r\n            this.updateURLSearchId(data.meta.search_id);\r\n            setTimeout(() => {\r\n              if (callback) {\r\n                callback(data);\r\n              } else {\r\n                bus.$emit('update:reviseSearchMap');\r\n              }\r\n            }, 11);\r\n          });\r\n      }\r\n    });\r\n\r\n    bus.$off('update:searchResultsData');\r\n    bus.$on('update:searchResultsData', (data) => {\r\n      switch (this.$route.name) {\r\n        case 'list':\r\n          this.setSearchMeta(data.meta);\r\n          this.updateURLSearchId(data.meta.search_id);\r\n          this.updateProjectSearchResults(data);\r\n          break;\r\n        case 'charts':\r\n          this.setSearchMeta(data.meta);\r\n          this.handleGraphData(data);\r\n          this.updateURLSearchId(data.meta.search_id);\r\n          setTimeout(() => {\r\n            bus.$emit('update:reviseSearchCharts');\r\n          }, 1);\r\n          break;\r\n        case 'map':\r\n          this.setSearchMeta(data.meta);\r\n          this.updateURLSearchId(data.meta.search_id);\r\n          setTimeout(() => {\r\n            bus.$emit('update:reviseSearchMap', false);\r\n          }, 1);\r\n          break;\r\n        default:\r\n      }\r\n      setTimeout(() => {\r\n        bus.$emit('init:facet');\r\n      },1);\r\n    });\r\n\r\n    bus.$off('clear:searchResults');\r\n    bus.$on('clear:searchResults', (params) => {\r\n      this.clearSearchResults(params);\r\n    });\r\n\r\n    bus.$off('update:facets');\r\n    bus.$on('update:facets', () => {\r\n      bus.$emit('init:facet');\r\n    });\r\n  },\r\n  beforeDestroy () {\r\n    bus.$off('update:searchResults');\r\n    bus.$off('clear:searchResults');\r\n    bus.$off('update:searchResultsData');\r\n    bus.$off('update:facets');\r\n  },\r\n  methods: {\r\n    ...mapActions([\r\n      'setSearchCriteria',\r\n      'setEditSearchCriteria',\r\n      'setSearchMeta',\r\n      'setSearchResults',\r\n      'updateSearchResults',\r\n      'setEditSearchResultsFlag',\r\n      'setGraphData',\r\n      'setCirclesData',\r\n      'setPublicationResults',\r\n      'setCoreProjCountPub',\r\n      'setProjectDetails',\r\n      'setExportFields',\r\n      'setPatentResults',\r\n      'setClinicalStudyResults',\r\n      'setMatchmakerResults',\r\n      'setMatchmakerPOResults',\r\n      'updatePublicationResults',\r\n      'updatePatentResults',\r\n      'updateClinicalStudyResults',\r\n      'updateMatchmakerResults',\r\n      'setSearchFacetCriteria',\r\n      'setSearchFacetData',\r\n      'updateSearchResultsFacets',\r\n      'setPublicationsFacetData',\r\n      'setPublicationsFacetCriteria',\r\n      'setMatchmakerFacetData',\r\n      'setMatchmakerFacetCriteria',\r\n      'setSearchType',\r\n      'setPersonSummaryProjects',\r\n      'setSelectedPerson',\r\n      'resetNewsResults'\r\n    ]),\r\n    initWindowEvents () {\r\n      var self = this,\r\n        sections = document.getElementsByClassName('sidebar-sections');\r\n\r\n      screen.orientation.addEventListener(\"change\", (event) => {\r\n          window.scrollTo(0, 0);\r\n      });\r\n      window.onscroll = function ($event) {\r\n        if (self.$route && self.$route.name && (self.$route.name === 'project-details' || self.$route.name === 'publications-project-details' || self.$route.name.indexOf('search-project-details') === 0)) {\r\n          window.fixHeaders('project-basics', true);\r\n\r\n          let activeTab = document.querySelector('.sidebar a.active');\r\n          for (let i = 0; i < sections.length; i++) {\r\n            let currentSection = sections[i].getAttribute('id');\r\n            let currentSectionHeader = sections[i].querySelector('.section-header');\r\n            let bounding = currentSectionHeader.getBoundingClientRect();\r\n\r\n            if (\r\n              bounding.top >= 0 &&\r\n              bounding.left >= 0 &&\r\n              bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight)\r\n            ) {\r\n              if (activeTab && !self.scrollLock) {\r\n                activeTab.classList.remove('active');\r\n              }\r\n              let navBarTab = document.querySelector('a[href*=\"' + currentSection + '\"]');\r\n              if (navBarTab && self.loadSectionData) {\r\n                self.loadSectionData(currentSection);\r\n                // break;\r\n              }\r\n            }\r\n          }\r\n          if (!self.scrollLock) {\r\n            for (let i = 0; i < sections.length; i++) {\r\n              let currentSection = sections[i].getAttribute('id');\r\n              if (window.pageYOffset < (sections[i].offsetTop + sections[i].offsetHeight - 150)) {\r\n                if (currentSection) {\r\n                  if (activeTab) {\r\n                    activeTab.classList.remove('active');\r\n                  }\r\n                  let navBarTab = document.querySelector('a[href*=\"' + currentSection + '\"]');\r\n                  if (navBarTab) {\r\n                    navBarTab.classList.add('active');\r\n                    break;\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n        } else {\r\n          bus.$emit('update:scroll');\r\n        }\r\n      }\r\n\r\n      window.addEventListener('resize', () => {\r\n        window.calculateViewPortSize ? window.calculateViewPortSize() : null;\r\n\r\n        document.querySelector(\"#scrollTable\") ? document.querySelector(\"#scrollTable\").removeAttribute(\"style\") : null;\r\n        bus.$emit('update:resize');\r\n        if (self.$route.name === 'project-details' || self.$route.name === 'search-project-details' || self.$route.name === 'news') {\r\n          var tables = document.getElementsByClassName('fixed-within'),\r\n            containerParent,\r\n            curTableObj;\r\n\r\n          for (let i = 0; i < tables.length; i++) {\r\n            curTableObj = tables[i];\r\n            containerParent = window.closest(curTableObj, '.project-description');\r\n\r\n            window.sizeTableHeader(containerParent.getAttribute('id'));\r\n          }\r\n        }\r\n      });\r\n    },\r\n    getPublicationSearchResults (changedCriteria, callback) {\r\n      if (changedCriteria && this.publicationResultsTable) {\r\n        this.publicationResultsTable.offset = 0;\r\n        this.countLoader = true;\r\n      }\r\n\r\n      var searchCriteriaTemp = {\r\n        criteria: {},\r\n        facet_filters: this.publicationsFacetCriteria,\r\n        limit: this.publicationResultsTable ? this.publicationResultsTable.limit : 100,\r\n        offset: this.publicationResultsTable ? this.publicationResultsTable.offset : 0,\r\n        sort_field: this.publicationResultsTable ? this.publicationResultsTable.sortField : null,\r\n        sort_order: this.publicationResultsTable ? this.publicationResultsTable.sort_order : 'desc'\r\n      },\r\n        searchParam,\r\n        key,\r\n        value;\r\n\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchCriteriaTemp['search_id'] = this.$route.params.search_id;\r\n      } else {\r\n        key = this.searchCriteria['publications_field'];\r\n        value = _.filter(this.searchCriteria['publications_text'].split(/[;,\\s*]+/gi), id => !!id);\r\n\r\n        searchParam = {\r\n          publications_search: {\r\n            [key]: value\r\n          }\r\n        };\r\n        searchCriteriaTemp.criteria = searchParam;\r\n      }\r\n\r\n      if (!!callback) {\r\n        window.fetchPublicationSearchResults(searchCriteriaTemp, callback);\r\n      } else {\r\n        window.fetchPublicationSearchResults(searchCriteriaTemp, this.updatePublicationsSearchResults);\r\n      }\r\n    },\r\n    updatePublicationsSearchResults (data) {\r\n      this.publicationResultsTable.isLoading = false;\r\n      this.publicationResultsTable.loadingMoreData = false;\r\n      this.publicationResultsTable.loadingMoreData = false;\r\n\r\n      if (this.$refs && this.$refs.dataTable) {\r\n        this.$refs.dataTable.loadingMoreData = false;\r\n      }\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setPublicationResults(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          data.meta.sort_field = this.publicationResultsTable.sortField;\r\n          data.meta.sort_order = this.publicationResultsTable.sortOrder;\r\n          if (this.publicationResultsTable.offset === 0) {\r\n            this.setPublicationResults(data);\r\n          } else {\r\n            this.updatePublicationResults(data);\r\n          }\r\n          if (this.$refs && this.$refs.dataTable) {\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          setTimeout(() => {\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    getMatchmakerSearchResults (changedCriteria, newSearch, callback) {\r\n      if (changedCriteria && this.matchMakerListTable) {\r\n        this.matchMakerListTable.offset = 0;\r\n      }\r\n\r\n      var searchCriteriaTemp = {\r\n        criteria: {},\r\n        facet_filters: this.matchmakerFacetCriteria,\r\n        limit: this.matchMakerListTable ? this.matchMakerListTable.limit : 100,\r\n        offset: this.matchMakerListTable ? this.matchMakerListTable.offset : 0,\r\n        sort_field: this.matchMakerListTable ? this.matchMakerListTable.sortField : '',\r\n        sort_order: this.matchMakerListTable ? this.matchMakerListTable.sortOrder : ''\r\n      },\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      searchParam = {\r\n        title: '',\r\n        text: this.searchCriteria['matchmaker_text'],\r\n        include_active_projects: true\r\n        // text: 'this is a test Warburg Effect',\r\n        // fiscal_years: '',\r\n        // agencies: ''\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchCriteriaTemp['search_id'] = this.$route.params.search_id;\r\n        searchCriteriaTemp.criteria = {\r\n          include_active_projects: this.$refs.facets && this.$refs.facets.$refs.facets ? this.$refs.facets.$refs.facets.facetCriteria.is_active_projects : true\r\n        }\r\n      } else {\r\n        if (this.$refs.facets && this.$refs.facets.$refs.facets) {\r\n          if (!newSearch) {\r\n            searchParam.include_active_projects = this.$refs.facets.$refs.facets.facetCriteria.is_active_projects;\r\n          } else {\r\n            this.$refs.facets.$refs.facets.facetCriteria.is_active_projects = true;\r\n          }\r\n        }\r\n        searchCriteriaTemp.criteria = searchParam;\r\n      }\r\n      // if (this.$refs.Charts && (this.$refs.Charts.loadingDrillDownData || this.$refs.Charts.loadSlide)) {\r\n      //     searchParam.criteria = this.chartProjectsSearchCriteria;\r\n      //     searchParam.facet_filters = this.chartProjectsFilterBy;\r\n      // }\r\n\r\n      // if (this.projectListTable && this.projectListTable.sortField) {\r\n      //     searchParam.sort_field = this.projectListTable.sortField;\r\n      //     searchParam.sort_order = this.projectListTable.sortOrder\r\n      // }\r\n\r\n      // if (this.projectListTable) {\r\n      //     this.projectListTable.isLoading = true;\r\n      // }\r\n      // if (this.$refs && this.$refs.searchCriteria) {\r\n      //     this.$refs.searchCriteria.showCriteria = false;\r\n      // }\r\n\r\n      if (!!callback) {\r\n        window.getMatchmakerResults(searchCriteriaTemp, callback);\r\n      } else {\r\n        window.getMatchmakerResults(searchCriteriaTemp, this.updateMatchmakerSearchResults);\r\n      }\r\n    },\r\n    getMatchmakerPOResults (changedCriteria, newSearch, callback) {\r\n      if (changedCriteria && this.POListTable) {\r\n        this.POListTable.offset = 0;\r\n        this.POListTable.limit = 100;\r\n      }\r\n\r\n      var searchCriteriaTemp = {\r\n        criteria: {},\r\n        facet_filters: this.matchmakerFacetCriteria,\r\n        limit: this.POListTable ? this.POListTable.limit : 100,\r\n        offset: this.POListTable ? this.POListTable.offset : 0,\r\n        sort_order: this.POListTable ? this.POListTable.sortOrder : '',\r\n        sort_field: this.POListTable ? this.POListTable.sortField : ''\r\n      },\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      searchParam = {\r\n        title: '',\r\n        text: this.searchCriteria['matchmaker_text'],\r\n        include_active_projects: true\r\n        // text: 'this is a test Warburg Effect',\r\n        // fiscal_years: '',\r\n        // agencies: ''\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchCriteriaTemp['search_id'] = this.$route.params.search_id;\r\n        searchCriteriaTemp['cache_id'] = this.$store.state.matchMakerResults ? this.$store.state.matchMakerResults.meta.properties.CacheId : null\r\n        searchCriteriaTemp.criteria = {\r\n          include_active_projects: this.$refs.facets && this.$refs.facets.$refs.facets ? this.$refs.facets.$refs.facets.facetCriteria.is_active_projects : true\r\n        }\r\n      } else {\r\n        if (this.$refs.facets && this.$refs.facets.$refs.facets) {\r\n          if (!newSearch) {\r\n            searchParam.include_active_projects = this.$refs.facets.$refs.facets.facetCriteria.is_active_projects;\r\n          } else {\r\n            this.$refs.facets.$refs.facets.facetCriteria.is_active_projects = true;\r\n          }\r\n        }\r\n        searchCriteriaTemp.criteria = searchParam;\r\n      }\r\n\r\n      if (!!callback) {\r\n        window.getMatchmakerPOResults(searchCriteriaTemp, callback);\r\n      } else {\r\n        window.getMatchmakerPOResults(searchCriteriaTemp, this.updateMatchmakerPOResults);\r\n      }\r\n    },\r\n    updateMatchmakerSearchResults (data) {\r\n      this.matchMakerListTable.loadingMoreData = false;\r\n\r\n      // if (data.meta && data.results) {\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setMatchmakerResults(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          this.setSearchMeta(data.meta);\r\n          if (this.matchMakerListTable.offset === 0) {\r\n            this.setMatchmakerResults(data);\r\n          } else {\r\n            this.updateMatchmakerResults(data);\r\n          }\r\n          if (this.matchMakerListTable.selectedSortColumn) {\r\n            this.matchMakerListTable.isLoading = true;\r\n            this.setSortDetails(null, this.matchMakerListTable.selectedSortColumn);\r\n          } else if (this.$refs && this.$refs.dataTable) {\r\n            this.matchMakerListTable.isLoading = false;\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          bus.$emit('matchmaker:updateChartFacet');\r\n          setTimeout(() => {\r\n            this.matchMakerListTable.selectedSortColumn = null;\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    updateMatchmakerPOResults (data) {\r\n      this.POListTable.isLoading = false;\r\n      this.POListTable.loadingMoreData = false;\r\n      this.captchaValidated = false;\r\n\r\n      // if (data.meta && data.results) {\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setMatchmakerPOResults(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          if (this.isCaptchaRequested) {\r\n            this.captchaValidated = true;\r\n          }\r\n          this.setSearchMeta(data.meta);\r\n          if (this.POListTable.offset === 0) {\r\n            this.setMatchmakerPOResults(data);\r\n          } else {\r\n            this.updateMatchmakerPOResults(data);\r\n          }\r\n          if (this.$refs && this.$refs.dataTable) {\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          setTimeout(() => {\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    getNewSearchCriteria (changedCriteria) {\r\n      var searchCriteriaTemp = copyData(this.searchCriteria),\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      if (this.searchType === 'Smart') {\r\n        searchCriteriaTemp = copyData(this.$store.state.searchCriteriaDefault);\r\n        searchCriteriaTemp['smart_search_text'] = this.searchCriteria['smart_search_text'];\r\n        searchCriteriaTemp['fiscal_years'] = '';\r\n      } else {\r\n        if ((changedCriteria || !this.$route.params.search_id) && (searchCriteriaTemp['fiscal_years'] === null || searchCriteriaTemp['fiscal_years'].length === 0 || searchCriteriaTemp['fiscal_years'] === '')) {\r\n          searchCriteriaTemp['fiscal_years'] = ['ap'];\r\n        }\r\n      }\r\n\r\n      parsedCriteria = window.parseCriteria(searchCriteriaTemp, { isSubmitForm: false });\r\n      criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n      return criteria;\r\n    },\r\n    getProjectSearchResults (changedCriteria, callback) {\r\n      if (changedCriteria && this.projectListTable) {\r\n        this.projectListTable.offset = 0;\r\n      }\r\n\r\n      // var searchCriteriaTemp = copyData(this.searchCriteria),\r\n      //     parsedCriteria,\r\n      //     criteria,\r\n      //     searchParam;\r\n\r\n      // if (this.searchType === 'Smart') {\r\n      //     searchCriteriaTemp = copyData(this.$store.state.searchCriteriaDefault);\r\n      //     searchCriteriaTemp['smart_search_text'] = this.searchCriteria['smart_search_text'];\r\n      //     searchCriteriaTemp['fiscal_years'] = '';\r\n      // } else {\r\n      //     if ((changedCriteria || !this.$route.params.search_id) && (searchCriteriaTemp['fiscal_years'] === null || searchCriteriaTemp['fiscal_years'].length === 0 || searchCriteriaTemp['fiscal_years'] === '')) {\r\n      //         searchCriteriaTemp['fiscal_years'] = ['ap'];\r\n      //     }\r\n      // }\r\n\r\n      // parsedCriteria = window.parseCriteria(searchCriteriaTemp, {isSubmitForm: false});\r\n      // criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n      let criteria = this.getNewSearchCriteria(changedCriteria),\r\n        searchParam;\r\n\r\n      searchParam = {\r\n        offset: this.projectListTable ? this.projectListTable.offset : 0,\r\n        limit: this.projectListTable ? this.projectListTable.limit : 100,\r\n        facet_filters: this.searchFacetCriteria,\r\n        criteria: criteria,\r\n        is_shared: this.$route.query['shared'] ? true : false\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      if (this.$refs.Charts && (this.$refs.Charts.loadingDrillDownData || this.$refs.Charts.loadSlide)) {\r\n        searchParam.criteria = this.chartProjectsSearchCriteria;\r\n        searchParam.facet_filters = this.chartProjectsFilterBy;\r\n      }\r\n\r\n      if (this.projectListTable && this.projectListTable.sortField) {\r\n        searchParam.sort_field = this.projectListTable.sortField;\r\n        searchParam.sort_order = this.projectListTable.sortOrder;\r\n      }\r\n\r\n      if (this.projectListTable) {\r\n        this.projectListTable.isLoading = true;\r\n      }\r\n\r\n      if (callback) {\r\n        window.getSearchResults(searchParam, callback);\r\n      } else {\r\n        window.getSearchResults(searchParam, this.updateProjectSearchResults);\r\n      }\r\n\r\n    },\r\n    updateURLSearchId (searchId, page) {\r\n\r\n      if (!page) {\r\n        page = this.$route.path.split(this.$route.params.search_id)[1];\r\n      }\r\n\r\n      if (searchId !== this.$route.params.search_id) {\r\n        let url = '/search/' + searchId + page;\r\n\r\n        if (this.$parent.sortField) {\r\n          url += '?sort_field=' + this.projectListTable.sortField + '&sort_order=' + this.projectListTable.sortOrder;\r\n        }\r\n\r\n        this.$router.push(url);\r\n      }\r\n    },\r\n    updateProjectSearchResults (data) {\r\n      this.loading = false;\r\n      if (this.projectListTable) {\r\n        this.projectListTable.isLoading = false;\r\n      }\r\n      if (data.meta && data.results) {\r\n        this.updateURLSearchId(data.meta.search_id);\r\n\r\n\r\n        this.setSearchMeta(data.meta);\r\n        if (!data.meta.sorted_by_relevance && this.$refs.dataTable && this.$refs.dataTable.table && this.$refs.dataTable.table.sortField === '') {\r\n          this.$refs.dataTable.table.sortField = 'name';\r\n          this.$refs.dataTable.table.sortOrder = 'asc';\r\n        }\r\n        if (data.meta.offset === 0) {\r\n          this.setSearchResults(data.results);\r\n        } else {\r\n          this.updateSearchResults(data.results);\r\n        }\r\n        if (this.$refs && this.$refs.dataTable) {\r\n          this.$refs.dataTable.table.loadingMoreData = false;\r\n          this.$refs.dataTable.initTableData();\r\n        } else if (this.$parent.$parent.$refs && this.$parent.$parent.$refs.dataTable) {\r\n          this.$parent.$parent.$refs.dataTable.table.isLoading = false;\r\n          this.$parent.$parent.$refs.dataTable.table.loadingMoreData = false;\r\n          this.$parent.$parent.$refs.dataTable.initTableData();\r\n        }\r\n        if (this.$refs && this.$refs.Charts) {\r\n          if (this.$refs.Charts.chartType === 'circle') {\r\n            this.$refs.Charts.circlesTable.loadingMoreData = false;\r\n            this.$refs.Charts.$refs.circlesTable.initTableData();\r\n          } else {\r\n            this.$refs.Charts.loadingDrillDownData = false;\r\n            this.$refs.Charts.loadSlide = true;\r\n            this.$refs.Charts.$refs.dataTable.initTableData();\r\n          }\r\n        } else if (this.$parent.$parent.$refs && this.$parent.$parent.$refs.Charts) {\r\n          this.$parent.$parent.$refs.Charts.loadingDrillDownData = false;\r\n          this.$parent.$parent.$refs.Charts.loadSlide = true;\r\n          this.$parent.$parent.$refs.Charts.$refs.dataTable.initTableData();\r\n        }\r\n        this.$nextTick(() => {\r\n          if (data.results.length > 0) {\r\n            window.fixHeaders('scrollTable');\r\n          }\r\n        });\r\n      }\r\n    },\r\n    setProjectSortDetails (selectedSortColumn) {\r\n      var selectedSortField = this.getFieldNameFromSettings(selectedSortColumn),\r\n        facetToQueryStr;\r\n\r\n      if (this.projectListTable.sortField === selectedSortField) {\r\n        this.projectListTable.sortOrder = (this.projectListTable.sortOrder === 'asc' ? 'desc' : 'asc');\r\n      } else {\r\n        this.projectListTable.sortOrder = selectedSortColumn.sortOrder;\r\n      }\r\n      this.projectListTable.sortField = selectedSortField;\r\n      this.projectListTable.offset = 0;\r\n\r\n      facetToQueryStr = this.$refs.facets.generateQueryString();\r\n      facetToQueryStr['sort_field'] = this.projectListTable.sortField;\r\n      facetToQueryStr['sort_order'] = this.projectListTable.sortOrder;\r\n\r\n      this.$router.push({ query: facetToQueryStr });\r\n      gtag('event','Click', {\r\n\t\t'event_category': 'Search Results',\r\n\t\t'event_label': 'Search Results - sorted on ' + this.projectListTable.sortField + ' (' + this.projectListTable.sortOrder + ')',\r\n\t\t'value': this.projectListTable.sortField + ' (' + this.projectListTable.sortOrder + ')'\r\n\t  });\t\r\n\t  \r\n      this.getProjectSearchResults();\r\n\r\n      //future function\r\n    },\r\n    setMatchmakerSortDetails (selectedSortColumn) {\r\n      var selectedSortField = this.getFieldNameFromSettings(selectedSortColumn),\r\n        facetToQueryStr;\r\n\r\n      if (this.projectListTable.sortField === selectedSortField) {\r\n        this.projectListTable.sortOrder = (this.projectListTable.sortOrder === 'asc' ? 'desc' : 'asc');\r\n      } else {\r\n        this.projectListTable.sortOrder = selectedSortColumn.sortOrder;\r\n      }\r\n      this.projectListTable.sortField = selectedSortField;\r\n      this.projectListTable.offset = 0;\r\n\r\n      facetToQueryStr = this.$refs.facets.generateQueryString();\r\n      facetToQueryStr['sort_field'] = this.projectListTable.sortField;\r\n      facetToQueryStr['sort_order'] = this.projectListTable.sortOrder;\r\n\r\n      this.$router.push({ query: facetToQueryStr });\r\n\t  gtag('event','Click', {\r\n\t\t'event_category': 'Search Results',\r\n\t\t'event_label': 'Search Results - sorted on ' + this.projectListTable.sortField + ' (' + this.projectListTable.sortOrder + ')',\r\n\t\t'value': this.projectListTable.sortField + ' (' + this.projectListTable.sortOrder + ')'\r\n\t  });\t\r\n      this.getMatchmakerSearchResults();\r\n\r\n      //future function\r\n    },\r\n    setProjectPageNumber (requestedPage) {\r\n      if (requestedPage === this.pageName) {\r\n        this.projectListTable.loadingMoreData = true;\r\n        this.projectListTable.offset += this.projectListTable.limit;\r\n\t\tgtag('event','Scroll', {\r\n\t\t\t'event_category': 'Search Results',\r\n\t\t\t'event_label': 'Search Results - page no ' + this.projectListTable.offset / this.projectListTable.limit,\r\n\t\t\t'value': this.projectListTable.offset / this.projectListTable.limit\r\n\t\t});\t\r\n\r\n        this.getProjectSearchResults();\r\n      }\r\n      //future function\r\n    },\r\n    getSearchCriteria (callback) {\r\n      var search_id = this.$route.params.search_id;\r\n\r\n      if (search_id && search_id.indexOf('CID-') !== 0) {\r\n        window.getProjectSearchCriteria(search_id, this.updateProjectSearchCriteria, callback);\r\n      }\r\n    },\r\n    updateProjectSearchCriteria (data, callback) {\r\n      var projNumSplit = {},\r\n        projNumApplIds = '', projNumFields = '',\r\n        multiSelectData,\r\n        fieldObj,\r\n        searchCriteriaMissing = !this.searchCriteria || !this.searchCriteria.project_start_date;\r\n\r\n      this.setEditSearchResultsFlag(true);\r\n      this.isLoadingSearchCriteria = false;\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setEditSearchCriteria(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        for (let field in data) {\r\n          if (data[field]) {\r\n            switch (field) {\r\n              case 'project_num_split':\r\n              case 'advanced_text_search':\r\n                for (let subField in data[field]) {\r\n                  if (data[field][subField]) {\r\n                    if (subField === 'search_field') {\r\n                      this.setEditSearchCriteria({\r\n                        field: subField,\r\n                        data: copyData(data[field][subField]).split(',')\r\n                      });\r\n                      if (searchCriteriaMissing) {\r\n                        this.setSearchCriteria({\r\n                          field: subField,\r\n                          data: copyData(data[field][subField]).split(',')\r\n                        });\r\n                      }\r\n                    } else {\r\n                      this.setEditSearchCriteria({\r\n                        field: subField,\r\n                        data: copyData(data[field][subField])\r\n                      });\r\n                      if (searchCriteriaMissing) {\r\n                        this.setSearchCriteria({\r\n                          field: subField,\r\n                          data: copyData(data[field][subField])\r\n                        });\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n                if (!data[field]['operator']) {\r\n                  this.setEditSearchCriteria({\r\n                    field: 'operator',\r\n                    data: 'advanced'\r\n                  });\r\n                  if (searchCriteriaMissing) {\r\n                    this.setSearchCriteria({\r\n                      field: 'operator',\r\n                      data: 'advanced'\r\n                    });\r\n                  }\r\n                }\r\n                if (!data[field]['search_field']) {\r\n                  this.setEditSearchCriteria({\r\n                    field: 'search_field',\r\n                    data: ['All']\r\n                  });\r\n                  if (searchCriteriaMissing) {\r\n                    this.setSearchCriteria({\r\n                      field: 'search_field',\r\n                      data: ['All']\r\n                    });\r\n                  }\r\n                }\r\n                break;\r\n              case 'org_cities':\r\n              case 'foa':\r\n                this.setEditSearchCriteria({\r\n                  field: field,\r\n                  data: data[field]\r\n                });\r\n                if (searchCriteriaMissing) {\r\n                  this.setSearchCriteria({\r\n                    field: field,\r\n                    data: data[field]\r\n                  });\r\n                }\r\n                break;\r\n              case 'pi_names':\r\n              case 'pi_profile_ids':\r\n                this.setEditSearchCriteria({\r\n                  field: 'pi__field_text',\r\n                  data: data[field]\r\n                });\r\n                this.setEditSearchCriteria({\r\n                  field: field,\r\n                  data: data[field]\r\n                });\r\n                if (searchCriteriaMissing) {\r\n                  this.setSearchCriteria({\r\n                    field: 'pi__field_text',\r\n                    data: data[field]\r\n                  });\r\n                  this.setSearchCriteria({\r\n                    field: field,\r\n                    data: data[field]\r\n                  });\r\n                }\r\n                break;\r\n              case 'po_names':\r\n              case 'po_profile_ids':\r\n                this.setEditSearchCriteria({\r\n                  field: 'po__field_text',\r\n                  data: data[field]\r\n                });\r\n                this.setEditSearchCriteria({\r\n                  field: field,\r\n                  data: data[field]\r\n                });\r\n                if (searchCriteriaMissing) {\r\n                  this.setSearchCriteria({\r\n                    field: 'po__field_text',\r\n                    data: data[field]\r\n                  });\r\n                  this.setSearchCriteria({\r\n                    field: field,\r\n                    data: data[field]\r\n                  });\r\n                }\r\n                break;\r\n              case 'project_nums':\r\n              case 'appl_ids':\r\n                projNumFields = field;\r\n                projNumApplIds += (projNumApplIds === '' ? '' : ';') +  data[field];\r\n                break;\r\n              case 'fiscal_years':\r\n                multiSelectData = data[field].split(';')\r\n                this.setEditSearchCriteria({\r\n                  field: 'fiscal_years',\r\n                  data: multiSelectData\r\n                });\r\n                this.setSearchCriteria({\r\n                  field: 'fiscal_years',\r\n                  data: multiSelectData\r\n                });\r\n                break; \r\n              case 'smart_search_text':\r\n                if (data[field] && data[field] !== '') {\r\n                  this.setSearchType('Smart');\r\n                  this.$store.state.searchCriteria['smart_search_text'] = data[field];\r\n                }\r\n                this.setEditSearchCriteria({\r\n                  field: field,\r\n                  data: data[field]\r\n                });\r\n                break;\r\n              default:\r\n                if (field === 'spending_categories') {\r\n                  for (let key in window.searchFieldSpecs) {\r\n                    if (window.searchFieldSpecs[key] && window.searchFieldSpecs[key].id === field) {\r\n                      fieldObj = window.searchFieldSpecs[key];\r\n                      break;\r\n                    }\r\n                  }\r\n                  if (!data[fieldObj.additionalControl.options[0].id]) {\r\n                    this.setEditSearchCriteria({\r\n                      field: fieldObj.additionalControl.options[0].id,\r\n                      data: false\r\n                    });\r\n                  }\r\n                }\r\n                \r\n                multiSelectData = data[field];\r\n                if (typeof data[field] === 'string') {\r\n                  multiSelectData = data[field].split(';')\r\n                }\r\n                if (field === 'funding_mechanism') {\r\n                  multiSelectData.push(data[field]);\r\n                }\r\n                this.setEditSearchCriteria({\r\n                  field: field,\r\n                  data: multiSelectData\r\n                });\r\n                this.setSearchCriteria({\r\n                  field: field,\r\n                  data: ''\r\n                });\r\n            }\r\n          }\r\n        }\r\n        if (projNumApplIds !== '') {\r\n          this.setEditSearchCriteria({\r\n            field: 'project_nums__field_text',\r\n            data: projNumApplIds\r\n          });\r\n          this.setEditSearchCriteria({\r\n            field: projNumFields,\r\n            data: projNumApplIds.split(';')\r\n          });\r\n          if (searchCriteriaMissing) {\r\n            this.setSearchCriteria({\r\n              field: 'project_nums__field_text',\r\n              data: projNumApplIds\r\n            });\r\n            this.setSearchCriteria({\r\n              field: projNumFields,\r\n              data: projNumApplIds.split(';')\r\n            });\r\n          }\r\n        }\r\n        if (!data.smart_search_text || data.smart_search_text === '') {\r\n          this.setSearchType('Advanced');\r\n        }\r\n      }\r\n\r\n      if (callback) {\r\n        callback();\r\n      }\r\n      bus.$emit('criteria:received');\r\n    },\r\n    getFieldNameFromSettings (sortCol) {\r\n      var fieldName = sortCol.fieldName;\r\n\r\n      if (sortCol.subField) {\r\n        fieldName = sortCol.subField;\r\n      }\r\n      else if (sortCol.sortFieldName) {\r\n        return fieldName = sortCol.sortFieldName;\r\n      }\r\n      return fieldName;\r\n    },\r\n    getSearchResultsFacets (changedCriteria, callback) {\r\n      var searchCriteriaTemp = this.searchCriteria ? copyData(this.searchCriteria) : {},\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      if (this.searchType === 'Smart') {\r\n        searchCriteriaTemp = copyData(this.$store.state.searchCriteriaDefault);\r\n        searchCriteriaTemp['smart_search_text'] = this.searchCriteria['smart_search_text'];\r\n        searchCriteriaTemp['fiscal_years'] = '';\r\n      } else {\r\n        if ((changedCriteria || !this.$route.params.search_id) && (!searchCriteriaTemp['fiscal_years'] || searchCriteriaTemp['fiscal_years'] === null || searchCriteriaTemp['fiscal_years'].length === 0 || searchCriteriaTemp['fiscal_years'] === '')) {\r\n          searchCriteriaTemp['fiscal_years'] = ['ap'];\r\n        }\r\n        if (this.$route.name === 'pi-summary' || this.selectedPerson) {\r\n          if (this.selectedPerson) {\r\n            if (this.selectedPerson.role === 'pi') {\r\n              searchCriteriaTemp['pi_profile_ids'] = this.selectedPerson.profile_id;\r\n            } else if (this.selectedPerson.role === 'po') {\r\n              searchCriteriaTemp['po_names'] = this.selectedPerson.name;\r\n            }\r\n          } else {\r\n            searchCriteriaTemp['pi_profile_ids'] = this.$route.params.profile_id;\r\n          }\r\n        }\r\n      }\r\n\r\n      // console.log(this.searchCriteria);\r\n\r\n      // this.getSearchCriteria();\r\n\r\n      parsedCriteria = window.parseCriteria(searchCriteriaTemp, { isSubmitForm: false });\r\n      criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n      searchParam = {\r\n        facet_filters: this.searchFacetCriteria,\r\n        criteria: criteria,\r\n        is_shared: this.$route.query['shared'] ? true : false\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      window.getSearchFacets('Projects', searchParam, callback, this.$route.name);\r\n    },\r\n    getMatchmakerSearchFacets (changedCriteria, callback) {\r\n      if (changedCriteria && this.projectListTable) {\r\n        this.projectListTable.offset = 0;\r\n      }\r\n\r\n      var searchCriteriaTemp = {\r\n        criteria: {},\r\n        facet_filters: this.matchmakerFacetCriteria,\r\n        limit: this.projectListTable ? this.projectListTable.limit : 100,\r\n        offset: this.projectListTable ? this.projectListTable.offset : 0\r\n        // sort_field: '',\r\n        // sort_order: ''\r\n      },\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      searchParam = {\r\n        title: '',\r\n        text: this.searchCriteria['matchmaker_text'],\r\n        include_active_projects: true\r\n        // text: 'this is a test Warburg Effect',\r\n        // fiscal_years: '',\r\n        // agencies: ''\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchCriteriaTemp['search_id'] = this.$route.params.search_id;\r\n        searchCriteriaTemp['cache_id'] = this.$store.matchMakerResults ? this.$store.matchMakerResults.meta.properties.CacheId : null\r\n\r\n      } else {\r\n        if (!changedCriteria && this.$refs.facets && this.$refs.facets.$refs.facets) {\r\n          searchParam.include_active_projects = this.$refs.facets.$refs.facets.facetCriteria.is_active_projects;\r\n        }\r\n        searchCriteriaTemp.criteria = searchParam;\r\n      }\r\n\r\n      window.getSearchFacets('Matchmaker', searchCriteriaTemp, callback, this.$route.name);\r\n    },\r\n    getPublicationsFacets (changedCriteria, callback) {\r\n      var parsedCriteria = window.parseCriteria(this.searchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          facet_filters: this.searchFacetCriteria,\r\n          criteria: criteria,\r\n          is_shared: this.$route.query['shared'] ? true : false,\r\n          Cache_Id: this.$store.state.publicationResults ? this.$store.state.publicationResults.meta.properties.CacheId : null,\r\n          After_Key: this.$store.state.publicationResults ? this.$store.state.publicationResults.meta.properties.AfterKey : null\r\n        };\r\n\r\n      this.countLoader = true;\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      window.getPublicationsFacets(searchParam, callback);\r\n    },\r\n    getProjectSearchGraphData (changedCriteria, callback) {\r\n      var parsedCriteria = window.parseCriteria(this.searchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          facet_filters: this.searchFacetCriteria,\r\n          summarized_by: this.graphSettings.summaryBy.value,\r\n          plotted_by: this.graphSettings.plotBy,\r\n          limit_count: 100,\r\n          criteria: criteria,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n      // if (this.sortField) {\r\n      //     searchParam.sort_field = this.sortField;\r\n      //     searchParam.sort_order = this.sortOrder\r\n      // }\r\n\r\n      if (this.$refs.Charts) {\r\n        this.$refs.Charts.loadingGraphData = true;\r\n      }\r\n\r\n      if (callback) {\r\n        window.getSearchResults(searchParam, callback);\r\n      } else {\r\n        window.getSearchGraphData(searchParam, this.handleGraphData);\r\n      }\r\n    },\r\n    handleGraphData (data) {\r\n      var totalFunding = 0,\r\n        subprojectCount = 0,\r\n        projectCount = 0,\r\n        totalSubProjectFunding = 0,\r\n        footerDataObj,\r\n        url = '';\r\n\r\n      if (this.$refs.Charts) {\r\n        this.$refs.Charts.loadingGraphData = false;\r\n      }\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setGraphData(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data && data.meta && data.meta.search_id !== this.$route.params.search_id) {\r\n          url = '/search/' + data.meta.search_id + '/projects/charts';//?searchMode=' + this.searchType;\r\n\r\n          this.$router.push(url);\r\n        }\r\n        this.setSearchMeta(data.meta);\r\n        for (let i = 0; i < data.results.length; i++) {\r\n          totalFunding += data.results[i].project_funding_amt;\r\n          projectCount += data.results[i].project_count;\r\n          totalSubProjectFunding += data.results[i].sub_project_funding_amt;\r\n          subprojectCount += data.results[i].subproject_count;\r\n        }\r\n\r\n        footerDataObj = {\r\n          'group_by': 'Total',\r\n          project_funding_amt: totalFunding,\r\n          project_count: projectCount,\r\n          sub_project_funding_amt: totalSubProjectFunding,\r\n          subproject_count: subprojectCount,\r\n        };\r\n        if (this.$refs.Charts && this.$refs.Charts.summaryBy.value === 'FundingIC') {\r\n          footerDataObj.project_count = '(*)',\r\n            data.footerNote = \"(*) Because projects can be co-funded by more than one institute or center, the sum of the Projects column in this table may exceed the actual number of projects.\";\r\n        }\r\n        data.footerData = [];\r\n        data.footerData.push(footerDataObj);\r\n        this.setGraphData(data);\r\n        if (this.$refs && this.$refs.Charts) {\r\n          this.$refs.Charts.initChart();\r\n        }\r\n      }\r\n    },\r\n    getProjectsForCharts (callback) {\r\n      var parsedCriteria = window.parseCriteria(this.chartProjectsSearchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          offset: this.$refs.Charts.drillDownTable.offset,\r\n          limit: this.$refs.Charts.drillDownTable.limit,\r\n          facet_filters: this.chartProjectsFilterBy,\r\n          criteria: criteria,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (this.$refs.Charts.drillDownTable.sortField) {\r\n        searchParam.sort_field = this.$refs.Charts.drillDownTable.sortField;\r\n        searchParam.sort_order = this.$refs.Charts.drillDownTable.sortOrder\r\n      }\r\n\r\n      this.$refs.Charts.drillDownTable.isLoading = true;\r\n      window.getSearchResults(searchParam, callback);\r\n    },\r\n    getProjectSearchCirclesData (changedCriteria) {\r\n      var parsedCriteria = window.parseCriteria(this.searchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          facet_filters: this.searchFacetCriteria,\r\n          limit_count: 100,\r\n          criteria: criteria,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      if (this.$refs.Charts) {\r\n        this.$refs.Charts.loadingCirclesData = true;\r\n      }\r\n\r\n      this.serviceError = null;\r\n      window.getSearchCirclesData(searchParam, this.handleCirclesData);\r\n    },\r\n    handleCirclesData (data) {\r\n      // var totalFunding = 0,\r\n      //     subprojectCount = 0,\r\n      //     projectCount = 0,\r\n      //     totalSubProjectFunding = 0,\r\n      //     footerDataObj,\r\n      //     url = '';\r\n\r\n      if (this.$refs.Charts) {\r\n        this.$refs.Charts.loadingCirclesData = false;\r\n      }\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setCirclesData(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        this.setCirclesData(data);\r\n        if (data && data.clusters &&  data.clusters.length > 0) {\r\n          this.$refs.Charts.initGraph();\r\n        }\r\n      }\r\n    },\r\n    getProjectsForCircles (callback) {\r\n      var searchParam = {\r\n        offset: this.$refs.Charts.circlesTable.offset,\r\n        limit: this.$refs.Charts.circlesTable.limit,\r\n        facet_filters: null,\r\n        criteria: {\r\n          appl_ids: this.$refs.Charts.selectedApplIds,\r\n          fiscal_years: this.searchType === \"Smart\" || this.$store.state.searchCriteria.is_smart_search\r\n            ? this.getAllFiscalYears() : this.getFYListFromCriteria(),\r\n          is_agency_admin: true,\r\n          matchmaker_field: \"project\"\r\n        },\r\n        is_shared: this.$route.query['shared'] ? true : false\r\n      };\r\n\r\n      if (this.$refs.Charts.circlesTable.sortField) {\r\n        searchParam.sort_field = this.$refs.Charts.circlesTable.sortField;\r\n        searchParam.sort_order = this.$refs.Charts.circlesTable.sortOrder\r\n      }\r\n\r\n      this.$refs.Charts.circlesTable.isLoading = true;\r\n      window.getSearchResults(searchParam, callback);\r\n    },\r\n    getProjectSearchMapData (changedCriteria, callback) {\r\n      let criteria = this.getNewSearchCriteria(changedCriteria),\r\n        searchParam;\r\n\r\n      if (changedCriteria && this.projectListTable) {\r\n        this.projectListTable.offset = 0;\r\n      }\r\n\r\n      searchParam = {\r\n        offset: this.projectListTable ? this.projectListTable.offset : 0,\r\n        limit: this.projectListTable ? this.projectListTable.limit : 100,\r\n        facet_filters: this.searchFacetCriteria,\r\n        criteria: criteria,\r\n        is_shared: this.$route.query['shared'] ? true : false\r\n      };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      // if (this.$refs.Charts && (this.$refs.Charts.loadingDrillDownData || this.$refs.Charts.loadSlide)) {\r\n      //     searchParam.criteria = this.chartProjectsSearchCriteria;\r\n      //     searchParam.facet_filters = this.chartProjectsFilterBy;\r\n      // }\r\n\r\n      if (this.projectListTable && this.projectListTable.sortField) {\r\n        searchParam.sort_field = this.projectListTable.sortField;\r\n        searchParam.sort_order = this.projectListTable.sortOrder\r\n      }\r\n\r\n      if (this.projectListTable) {\r\n        this.projectListTable.isLoading = true;\r\n      }\r\n      if (this.$refs && this.$refs.searchCriteria) {\r\n        this.$refs.searchCriteria.showCriteria = false;\r\n      }\r\n\r\n      if (callback) {\r\n        window.getSearchResults(searchParam, callback);\r\n      } else {\r\n        window.getSearchResults(searchParam, this.updateProjectSearchResults);\r\n      }\r\n\r\n    },\r\n    getPublicationResults (changedCriteria) {\r\n      if (changedCriteria) {\r\n        this.publicationTable.offset = 0;\r\n        this.countLoader = true;\r\n      }\r\n      var parsedCriteria = window.parseCriteria(this.searchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          offset: this.publicationTable.offset,\r\n          limit: this.publicationTable.limit,\r\n          facet_filters: this.searchFacetCriteria,\r\n          criteria: criteria,\r\n          is_shared: this.$route.query['shared'] ? true : false,\r\n          CoreProjSortField: 'fiscal_year',           // hardcoded to fetch top 10000 publications\r\n          CoreProjSortOrder: 'desc',\r\n          Cache_Id: this.$store.state.publicationResults ? this.$store.state.publicationResults.meta.properties.CacheId : null\r\n        };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      if (this.publicationTable.sortField && this.publicationTable.sortField !== '') {\r\n        searchParam.sort_field = this.publicationTable.sortField;\r\n        searchParam.sort_order = this.publicationTable.sortOrder\r\n      }\r\n\r\n      this.publicationTable.isLoading = true;\r\n      if (this.$refs && this.$refs.searchCriteria) {\r\n        this.$refs.searchCriteria.showCriteria = false;\r\n      }\r\n\t  \r\n\t  gtag('event','Click', {\r\n\t\t\t'event_category': 'Publication Results',\r\n\t\t\t'event_label': 'Publication Results (page# ' + (this.publicationTable.offset === 0 ? 0 : this.publicationTable.offset / this.publicationTable.offset) + ')',\r\n\t\t\t'value': 'Publication Results (page# ' + (this.publicationTable.offset === 0 ? 0 : this.publicationTable.offset / this.publicationTable.offset) + ')'\r\n\t\t});\r\n      window.getPublicationsResults(searchParam, this.updatePublicationsResults);\r\n    },\r\n    updatePublicationsResults (data) {\r\n      this.publicationTable.isLoading = false;\r\n      this.publicationTable.loadingMoreData = false;\r\n      // if (data.meta && data.results) {\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setPublicationResults(null);\r\n        this.countLoader = false;\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          data.meta.sort_field = this.publicationTable.sortField;\r\n          data.meta.sort_order = this.publicationTable.sortOrder;\r\n          // this.setPublicationResults(data);\r\n          // if (data.meta.properties && data.meta.properties.Shared_Facet) {\r\n          //     this.updateSearchResultsFacets(data.meta.properties.Shared_Facet);\r\n          // }\r\n          if (this.publicationTable.offset === 0) {\r\n            this.setPublicationResults(data);\r\n          } else {\r\n            this.updatePublicationResults(data);\r\n          }\r\n          if (this.$refs && this.$refs.dataTable) {\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          if (data.results.length == 0) {\r\n            this.countLoader = false;\r\n          }\r\n          setTimeout(() => {\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    logPublicationsPage () {\r\n    gtag('event','Click', {\r\n\t  'event_category': 'Publication Results',\r\n\t  'event_label': 'Publication Page Access Log',\r\n\t   'value': 'Publication Page Access Log'\r\n\t});\t\r\n      window.logPublicationsPage();\r\n    },\r\n    setPublicationSortDetails (selectedSortColumn, tableName, callback) {\r\n      var selectedSortField = this.getFieldNameFromSettings(selectedSortColumn),\r\n        facetToQueryStr = {};\r\n\r\n      if (this[tableName].sortField === selectedSortField) {\r\n        this[tableName].sortOrder = (this[tableName].sortOrder === 'asc' ? 'desc' : 'asc');\r\n      } else {\r\n        this[tableName].sortOrder = selectedSortColumn.sortOrder;\r\n      }\r\n      this[tableName].sortField = selectedSortField;\r\n      this[tableName].offset = 0;\r\n      // this.$router.push({ query: { 'sort_field': this[tableName].sortField, 'sort_order': this[tableName].sortOrder }});\r\n      if (this.$refs && this.$refs.facets)\r\n        facetToQueryStr = this.$refs.facets.generateQueryString();\r\n      \r\n      facetToQueryStr['sort_field'] = this[tableName].sortField;\r\n      facetToQueryStr['sort_order'] = this[tableName].sortOrder;\r\n\r\n      if (tableName !== 'publicationResultsTable') {\r\n        this.$router.push({ query: facetToQueryStr });\r\n      }\r\n\r\n\t  gtag('event','Click', {\r\n\t\t'event_category': 'Publication Results',\r\n\t\t'event_label': 'Publication Results - sorted on ' + this[tableName].sortField + ' (' + this[tableName].sortOrder + ')',\r\n\t\t'value': 'Publication Results - sorted on ' + this[tableName].sortField + ' (' + this[tableName].sortOrder + ')'\r\n\t  });\t\t\r\n      \r\n      callback(false);\r\n      //future function\r\n    },\r\n    getPatents (changedCriteria, callback) {\r\n      if (changedCriteria && this.patentTable) {\r\n        this.patentTable.offset = 0;\r\n        this.countLoader = true;\r\n      }\r\n      var tempSearchCriteria = copyData(this.searchCriteria),\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      parsedCriteria = window.parseCriteria(tempSearchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          offset: this.patentTable.offset,\r\n          limit: this.patentTable.limit,\r\n          facet_filters: this.searchFacetCriteria,\r\n          criteria: criteria,\r\n          Cache_Id: this.$store.state.patentResults ? this.$store.state.patentResults.meta.properties.CacheId : null,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      if (this.patentTable && this.patentTable.sortField) {\r\n        searchParam.sort_field = this.patentTable.sortField;\r\n        searchParam.sort_order = this.patentTable.sortOrder;\r\n      }\r\n\r\n      this.patentTable.isLoading = true;\r\n      if (this.$refs && this.$refs.searchCriteria) {\r\n        this.$refs.searchCriteria.showCriteria = false;\r\n      }\r\n      window.getPatentResults(searchParam, this.updatePatents);\r\n    },\r\n    updatePatents (data) {\r\n      this.patentTable.isLoading = false;\r\n      this.patentTable.loadingMoreData = false;\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setPatentResults(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          data.meta.sort_field = this.patentTable.sortField;\r\n          data.meta.sort_order = this.patentTable.sortOrder;\r\n          if (this.patentTable.offset === 0) {\r\n            this.setPatentResults(data);\r\n          } else {\r\n            this.updatePatentResults(data);\r\n          }\r\n          if (this.$refs && this.$refs.dataTable) {\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          setTimeout(() => {\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    getClinicalStudies (changedCriteria, callback) {\r\n      if (changedCriteria && this.clinicalStudyTable) {\r\n        this.clinicalStudyTable.offset = 0;\r\n      }\r\n      var tempSearchCriteria = copyData(this.searchCriteria),\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      parsedCriteria = window.parseCriteria(tempSearchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          offset: this.clinicalStudyTable ? this.clinicalStudyTable.offset : 0,\r\n          limit: this.clinicalStudyTable ? this.clinicalStudyTable.limit : 100,\r\n          facet_filters: this.searchFacetCriteria,\r\n          criteria: criteria,\r\n          Cache_Id: this.$store.state.clinicalStudyResults ? this.$store.state.clinicalStudyResults.meta.properties.CacheId : null,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (!changedCriteria && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n\r\n      if (this.clinicalStudyTable && this.clinicalStudyTable.sortField) {\r\n        searchParam.sort_field = this.clinicalStudyTable.sortField;\r\n        searchParam.sort_order = this.clinicalStudyTable.sortOrder;\r\n      }\r\n\r\n      if (this.clinicalStudyTable) {\r\n        this.clinicalStudyTable.isLoading = true;\r\n      }\r\n      if (this.$refs && this.$refs.searchCriteria) {\r\n        this.$refs.searchCriteria.showCriteria = false;\r\n      }\r\n      window.getClinicalStudyResults(searchParam, this.updateClinicalResults);\r\n    },\r\n    updateClinicalResults (data) {\r\n      if (this.clinicalStudyTable) {\r\n        this.clinicalStudyTable.isLoading = false;\r\n        this.clinicalStudyTable.loadingMoreData = false;\r\n      }\r\n\r\n      if (!data || (data && data.status && data.status !== 200)) {\r\n        this.setClinicalStudyResults(null);\r\n        this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n        return false;\r\n      } else {\r\n        if (data) {\r\n          data.meta.sort_field = this.clinicalStudyTable.sortField;\r\n          data.meta.sort_order = this.clinicalStudyTable.sortOrder;\r\n          if (this.clinicalStudyTable.offset === 0) {\r\n            this.setClinicalStudyResults(data);\r\n          } else {\r\n            this.updateClinicalStudyResults(data);\r\n          }\r\n          if (this.$refs && this.$refs.dataTable) {\r\n            this.$refs.dataTable.initTableData();\r\n          }\r\n          setTimeout(() => {\r\n            if (data.results.length > 0) {\r\n              window.fixHeaders('scrollTable');\r\n            }\r\n          }, 10);\r\n        }\r\n      }\r\n    },\r\n    getNewsData (newsType, callback) {\r\n      var curTableName = newsType + 'Table',\r\n        curTableRefName = newsType + 'DataTable',\r\n        searchParam = {\r\n          offset: this[curTableName].offset,\r\n          limit: this[curTableName].limit,\r\n          facet_filters: this.searchFacetCriteria,\r\n          is_shared: this.$route.query['shared'] ? true : false,\r\n          newsType: newsType,\r\n          searchid: this.$route.params.search_id,\r\n          sort_field: this[curTableName] ? this[curTableName].sortField : null,\r\n          sort_order: this[curTableName] ? this[curTableName].sortOrder : null\r\n        };\r\n\r\n      if (this.newsResults[newsType] && this.newsResults[newsType].meta && this.newsResults[newsType].meta.properties) {\r\n        searchParam.last_item = this.newsResults[newsType].meta.properties.lastItem;\r\n      }\r\n      if (this.newsResults[newsType] && this.newsResults[newsType].meta && this.newsResults[newsType].meta.properties) {\r\n        searchParam.Cache_Id = this.newsResults[newsType].meta.properties.CacheId;\r\n      }\r\n      if (this.$refs && this.$refs.searchCriteria) {\r\n        this.$refs.searchCriteria.showCriteria = false;\r\n      }\r\n      window.getNewsResultsByType(searchParam, newsType, callback);\r\n    },\r\n    getNewsCount (newsType, callback) {\r\n      var curTableName = newsType + 'Table',\r\n        curTableRefName = newsType + 'DataTable',\r\n        searchParam = {\r\n          offset: this[curTableName].offset,\r\n          newsType: newsType,\r\n          facet_filters: this.searchFacetCriteria,\r\n          searchid: this.$route.params.search_id,\r\n        };\r\n\r\n      if (this.newsResults[newsType] && this.newsResults[newsType].meta && this.newsResults[newsType].meta.properties) {\r\n        searchParam.Cache_Id = this.newsResults[newsType].meta.properties.CacheId;\r\n        searchParam.last_item = this.newsResults[newsType].meta.properties.lastItem;\r\n      }\r\n      if (this.newsCount[newsType] && this.newsCount[newsType].lastItem) {\r\n        searchParam.last_item = this.newsCount[newsType].lastItem;\r\n      }\r\n      window.getNewsCountByType(searchParam, newsType, callback);\r\n    },\r\n    getProjectsFromChart (callback, filterBy) {\r\n      var parsedCriteria = window.parseCriteria(this.searchCriteria, { isSubmitForm: false }),\r\n        criteria = window.stringifySearchCriteriaFields(parsedCriteria),\r\n        searchParam = {\r\n          offset: this.chartTable.offset,\r\n          limit: this.chartTable.limit,\r\n          facet_filters: filterBy,\r\n          criteria: criteria,\r\n          search_id: this.$route.params.search_id,\r\n          is_shared: this.$route.query['shared'] ? true : false\r\n        };\r\n\r\n      if (this.chartTable.sortField) {\r\n        searchParam.sort_field = this.chartTable.sortField;\r\n        searchParam.sort_order = this.chartTable.sortOrder\r\n      }\r\n\r\n      window.getSearchResults(searchParam, callback);\r\n    },\r\n    getProjectInfo (project_id, requestedSection, callback) {\r\n      var searchParam = {\r\n        \"project_id\": project_id\r\n      };\r\n\r\n      if (this.$route.params && this.$route.params.search_id) {\r\n        searchParam['search_id'] = this.$route.params.search_id;\r\n      }\r\n      switch (requestedSection) {\r\n        case 'projectHistory':\r\n          searchParam = {\r\n            \"project_id\": project_id,\r\n            sort_field: this.detailsHistoryTable.sortField,\r\n            sort_order: this.detailsHistoryTable.sortOrder,\r\n            offset: this.detailsHistoryTable.offset\r\n          }\r\n          break;\r\n        case 'subProjects':\r\n          searchParam = {\r\n            \"project_id\": project_id,\r\n            sort_field: this.detailsSubProjectsTable.sortField,\r\n            sort_order: this.detailsSubProjectsTable.sortOrder,\r\n            offset: this.detailsSubProjectsTable.offset\r\n          }\r\n          break;\r\n        case 'similarProjects':\r\n          searchParam = {\r\n            \"project_id\": project_id,\r\n            sort_field: this.detailsSimilarProjectsTable.sortField,\r\n            sort_order: this.detailsSimilarProjectsTable.sortOrder,\r\n            offset: this.detailsSimilarProjectsTable.offset\r\n          }\r\n          break;\r\n        case 'PressRelease':\r\n        case 'ResearchMatters':\r\n        case 'AIRS':\r\n        case 'ARRA':\r\n        case 'AIMRS':\r\n          searchParam = {\r\n            \"project_id\": this.$route.params.appl_id,\r\n            \"Newstype\": requestedSection,\r\n            \"grant_Num_Or_Full_Proj_Num\": project_id,\r\n            \"limit\": this['details' + requestedSection + 'Table'].limit\r\n          }\r\n          break;\r\n      }\r\n      gtag('event','Click', {\r\n\t\t'event_category': 'Project Details',\r\n\t\t'event_label': 'Project Details (' + requestedSection + ') for - ' + project_id,\r\n\t\t'value': 'Project Details (' + requestedSection + ') for - ' + project_id\r\n\t  });\t\r\n      window.getProjectBasicInfo(searchParam, requestedSection, callback);\r\n    },\r\n    getExportFields () {\r\n      window.getExportFields(this.updateExportFields);\r\n    },\r\n    updateExportFields (data) {\r\n      if (this.$refs && this.$refs.exportModule) {\r\n        this.$refs.exportModule.loadExportFields = false;\r\n      }\r\n      this.setExportFields(data);\r\n    },\r\n    getApplId (coreProjNum, callback) {\r\n\r\n\t   gtag('event','Click', {\r\n\t\t'event_category': 'Publications Hitlist',\r\n\t\t'event_label': 'Appl Id for core project number: ' + coreProjNum,\r\n\t\t'value': 'Appl Id for core project number: ' + coreProjNum\r\n\t  });\t\r\n      window.findApplId(coreProjNum, callback);\r\n    },\r\n    getExportFile (searchParam, callback, exportSectionName) {\r\n      var self = this,\r\n        analyticsLabel = this.$route.name === 'list' ? 'search results' : this.$route.name,\r\n        exportSectionName = exportSectionName ? exportSectionName : this.$route.name;\r\n\r\n\t  gtag('event','Click', {\r\n\t\t'event_category': 'Export',\r\n\t\t'event_label': analyticsLabel + '(search id: ' + this.$route.params.search_id + ')',\r\n\t\t'value': analyticsLabel + '(search id: ' + this.$route.params.search_id + ')'\r\n\t  });\t\r\n      window.getExportFileName(exportSectionName, searchParam, callback);\r\n    },\r\n    getExportStatus (exportId, callback) {\r\n      window.getExportStatus(this.currentExportTab, exportId, callback);\r\n    },\r\n    getProjectsForPersonSummary (callback) {\r\n      var searchCriteriaTemp = {\r\n        fiscal_years: \"ap\",\r\n        pi_profile_ids: this.$route.params.pi_id,\r\n        po_names: this.$route.params.po_name\r\n      },\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      parsedCriteria = window.parseCriteria(searchCriteriaTemp, { isSubmitForm: false });\r\n      criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n      searchParam = {\r\n        offset: 0,\r\n        limit: 100,\r\n        facet_filters: null,\r\n        criteria: criteria,\r\n      };\r\n\r\n      if (callback) {\r\n        window.getSearchResults(searchParam, callback);\r\n      } else {\r\n        window.getSearchResults(searchParam, this.handlePIProjects);\r\n      }\r\n    },\r\n    handlePIProjects (data) {\r\n      var id,\r\n        myWindow;\r\n\r\n      this.$router.push({ path: '/search/' + data.meta.search_id + '/projects' });\r\n      this.$nextTick(() => {\r\n        this.setPersonSummaryProjects(data);\r\n        if (this.$refs && this.$refs.dataTable) {\r\n          this.$refs.dataTable.initTableData();\r\n        }\r\n      });\r\n    },\r\n    getProjectsForReportSmartSearch (callback) {\r\n      var searchCriteriaTemp = {\r\n        fiscal_years: \"ap\",\r\n        smart_search_text: this.$route.params.queryString\r\n      },\r\n        parsedCriteria,\r\n        criteria,\r\n        searchParam;\r\n\r\n      parsedCriteria = window.parseCriteria(searchCriteriaTemp, { isSubmitForm: false });\r\n      criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n      searchParam = {\r\n        offset: 0,\r\n        limit: 100,\r\n        facet_filters: null,\r\n        criteria: criteria,\r\n      };\r\n\r\n      if (callback) {\r\n        window.getSearchResults(searchParam, callback);\r\n      }\r\n    },\r\n    clearSearchResults (options) {\r\n      if (options.resetFacets) {\r\n        if (this.$refs.facets) {\r\n          this.$refs.facets.resetFacets();\r\n        } else {\r\n          this.setSearchFacetCriteria(null);\r\n          this.setSearchFacetData(null);\r\n          this.setPublicationsFacetData(null);\r\n          this.setPublicationsFacetCriteria(null);\r\n          this.setMatchmakerFacetData(null);\r\n          this.setMatchmakerFacetCriteria(null);\r\n        }\r\n      }\r\n      this.setPatentResults(null);\r\n      this.setClinicalStudyResults(null);\r\n      this.setPublicationResults(null);\r\n      this.setCoreProjCountPub(null);\r\n      this.setSearchResults(null);\r\n      this.setMatchmakerResults(null);\r\n      this.setMatchmakerPOResults(null);\r\n      this.setGraphData(null);\r\n      this.setCirclesData(null);\r\n      this.resetNewsResults(null);\r\n    },\r\n    parseFacetFiltersFromURL () {\r\n      var filtersArr = this.$route.query ? this.$route.query : [], //.filters ? this.$route.query.filters.split('$') : [],\r\n        facetCriteria = this.$store.state.searchFacetCriteria ? this.$store.state.searchFacetCriteria : {},\r\n        valArr;\r\n\r\n      for (let key in filtersArr) {\r\n        if (filtersArr[key]) {\r\n          valArr = filtersArr[key].split(';');\r\n          switch (key) {\r\n            case 'fy':\r\n              facetCriteria['fiscal_years'] = valArr;\r\n              break;\r\n            case 'org':\r\n              facetCriteria['org_names'] = valArr;\r\n              break;\r\n            case 'PI':\r\n              valArr = decodeURI(filtersArr[key]).split(';');\r\n              facetCriteria['principal_investigators'] = valArr;\r\n              break;\r\n            case 'projects':\r\n              facetCriteria['is_active_projects'] = true;\r\n              break;\r\n            case 'searchMode':\r\n              break;\r\n            default:\r\n              facetCriteria[key] = valArr;\r\n          }\r\n        }\r\n      }\r\n\r\n      // for (let i = 0; i < filtersArr.length; i++) {\r\n      //     if (filtersArr[i].trim() !== '') {\r\n      //         valArr = filtersArr[i].split(';');\r\n      //         switch (valArr[0]) {\r\n      //             case 'fy':\r\n      //                 facetCriteria['fiscal_years']  = valArr.slice(1);\r\n      //                 break;\r\n      //             case 'org':\r\n      //                 facetCriteria['org_names']  = valArr.slice(1);\r\n      //                 break;\r\n      //             case 'PI':\r\n      //                 facetCriteria['principal_investigators']  = valArr.slice(1);\r\n      //                 break;\r\n      //             case 'projects':\r\n      //                 facetCriteria['is_active_projects']  = true;\r\n      //                 break;\r\n      //             default:\r\n      //                 facetCriteria[valArr[0]]  = valArr.slice(1);\r\n      //         }\r\n      //     }\r\n      // }\r\n      this.updateSearchResultsFacets(facetCriteria);\r\n      return facetCriteria;\r\n    },\r\n    saveSharedSearchID (shared_as) {\r\n      var controllerArr = this.$route.path.split('/'),\r\n        searchParam = {\r\n          search_id: this.$route.params.search_id,\r\n          shared_as: shared_as,\r\n          controller: controllerArr && controllerArr.length > 0 ? controllerArr[controllerArr.length - 1] : '',\r\n          url: location.href,\r\n        };\r\n\r\n      window.saveSharedURL(searchParam);\r\n    },\r\n    getAllFiscalYears () {\r\n      var fyList = [],\r\n        fyLookUp = this.$store.state.lookup.fiscal_years;\r\n\r\n      for (let i = 0; i < fyLookUp.length; i++) {\r\n        fyList.push(fyLookUp[i].value);\r\n      }\r\n      return fyList.join(\";\");\r\n    },\r\n    getFYListFromCriteria () {\r\n      var criteriaTemp = this.$store.state.searchCriteria,\r\n        fyList = [];\r\n\r\n      if (criteriaTemp && criteriaTemp.fiscal_years) {\r\n        if (criteriaTemp.fiscal_years && typeof criteriaTemp.fiscal_years[0] === \"object\") {\r\n          fyList = criteriaTemp.fiscal_years.map(fy => {\r\n            return fy.value;\r\n          });\r\n          return fyList.join(';')\r\n        }\r\n        if (criteriaTemp.fiscal_years && criteriaTemp.fiscal_years instanceof Array && criteriaTemp.fiscal_years.length > 0) {\r\n          return criteriaTemp.fiscal_years.join(\";\");\r\n        }\r\n        return criteriaTemp.fiscal_years.join(\";\");\r\n      }\r\n      return \"ap\";\r\n    },\r\n    buildURLWithParams (url, params) {\r\n      if (url && params) {\r\n        for (var i = 0; i < params.length; i++) {\r\n          url = url.replace('{{' + i + '}}', params[0]);\r\n        }\r\n        return url;\r\n      }\r\n      return '';\r\n    }\r\n  }\r\n}\r\n","import bus from '@/shared/event-bus.js';\r\n\r\n(function () {\r\n    var isIE = false,\r\n        isMobile = false,\r\n        ieVer,\r\n        isAtLeastIE11,\r\n        xhrList = [];\r\n\r\n    window.searchFieldCache = {};\r\n    window.serverless = location.port === '8080';\r\n    window.default = {\r\n        resultsLimit: 50\r\n    }\r\n\r\n    window.copyData = (data) => {\r\n        return data ? JSON.parse(JSON.stringify(data)) : data;\r\n    };\r\n\r\n    window.addCommas = (value) => {\r\n        if (typeof value === 'number') {\r\n            return value.toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,');\r\n        } else {\r\n            return value;\r\n        }\r\n    };\r\n\r\n    window.consoleStyle = {\r\n        'warn': 'color: orange; font-weight: bold; background-color: #000; border-radius: 2px; padding: 0 0.25em',\r\n        'error': 'color: red; font-weight: bold; background-color: #000; border-radius: 2px; padding: 0 0.25em',\r\n        'reset': 'color: inherit'\r\n    };\r\n\r\n    // Returns the version of Internet Explorer or a -1\r\n    // (indicating the use of another browser).\r\n    function getInternetExplorerVersion () {\r\n        var rv = -1, // Return value assumes failure.\r\n            ua,\r\n            re;\r\n\r\n        if (navigator.appName === 'Microsoft Internet Explorer') {\r\n            ua = navigator.userAgent;\r\n            re = new RegExp('MSIE ([0-9]{1,}[\\.0-9]{0,})');\r\n            if (re.exec(ua) !== null) {\r\n                rv = parseFloat(RegExp.$1);\r\n            }\r\n        }\r\n\r\n        return rv;\r\n    }\r\n\r\n    ieVer = getInternetExplorerVersion();\r\n    isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));\r\n\r\n    if (ieVer > 0 || isAtLeastIE11) {\r\n        isIE = true;\r\n    }\r\n\r\n    if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) {\r\n        isMobile = true;\r\n    }\r\n\r\n    window.isIE = isIE;\r\n    window.ieVer = ieVer;\r\n    window.isAtLeastIE11 = isAtLeastIE11;\r\n\r\n    window.isMobile = isMobile;\r\n\r\n\r\n    window.snakeToCamel = (s) => {\r\n        return s.replace(/(\\_\\w)/g, function (m) {\r\n            return m[1].toUpperCase();\r\n        });\r\n    };\r\n\r\n    window.pxToNumber = (prop) => {\r\n        return Number(prop.substring(0, prop.length - 2));\r\n    };\r\n\r\n    window.getScrollbarWidth = () => {\r\n        var inner = document.createElement('div'),\r\n            outer = document.createElement('div'),\r\n            width1,\r\n            width2;\r\n\r\n        inner.style.width = '100%';\r\n        inner.style.height = '200px';\r\n        inner.style.overflow = 'hidden';\r\n        inner.innerText = 'test';\r\n\r\n        outer.style.width = '200px';\r\n        outer.style.height = '150px';\r\n        outer.style.position = 'absolute';\r\n        outer.style.top = '0';\r\n        outer.style.left = '0';\r\n        outer.style.visibility = 'hidden';\r\n        outer.style.overflow = 'scroll';\r\n\r\n        outer.appendChild(inner);\r\n        document.body.appendChild(outer);\r\n\r\n        width1 = outer.offsetWidth;\r\n        width2 = inner.offsetWidth;\r\n\r\n        if (!isIE) {\r\n            outer.remove();\r\n        } else {\r\n            outer.parentNode.removeChild(outer);\r\n        }\r\n\r\n        return (width1 - width2);\r\n    };\r\n\r\n    window.getNthIndex = (str, pat, n) => {\r\n        var L = str.length,\r\n            i = -1;\r\n\r\n        while (n-- && i++ < L) {\r\n            i = str.indexOf(pat, i);\r\n\r\n            if (i < 0) {\r\n                break;\r\n            }\r\n        }\r\n\r\n        return i;\r\n    };\r\n\r\n    window.scrollbarWidth = window.getScrollbarWidth();\r\n\r\n    window.searchResultsXHR = null;\r\n\r\n    window.getSearchResults = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.searchResultsXHR) {\r\n            window.searchResultsXHR.abort();\r\n        }\r\n\r\n        window.searchResultsXHR = new XMLHttpRequest();\r\n\r\n        // remove criteria if Search ID exists\r\n        if (params.search_id) {\r\n            params.criteria = {};\r\n        }\r\n\r\n        if (params.criteria && ((params.criteria.fiscal_years && params.criteria.fiscal_years.length === 0) || !params.criteria.fiscal_years)) {\r\n            params.criteria.fiscal_years = \"ap\";\r\n        }\r\n\r\n        // if (!params.facet_filters || Object.keys(window.parseFacetsFromURL()).length !== 0) {\r\n        //     params.facet_filters = {\r\n        //         // fiscal_years: [],\r\n        //         // org_names: [],\r\n        //         // agencies: [],\r\n        //         // states: [],\r\n        //         // countries: [],\r\n        //         // principal_investigators: []\r\n        //     };\r\n        // }\r\n\r\n        // if (params.facet_filters && Object.keys(window.parseFacetsFromURL()).length !== 0) {\r\n        //     Object.assign(params.facet_filters, window.parseFacetsFromURL());\r\n        // }\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        //if (window.serverless || this.serverless) {\r\n        // /   url = '/data/projects-search.json';\r\n        //    requestType = 'GET';\r\n        //} else {\r\n        // convert id to camelCase for lookup service\r\n        url = '/services/Projects/search/';\r\n        //}\r\n        // }\r\n        // {\r\n        //     \"criteria\": {\r\n        //       \"fiscalYears\": \"string\",\r\n        //       \"piNames\": \"string\",\r\n        //       \"orgNames\": \"string\",\r\n        //       \"piProfileIds\": \"string\"\r\n        //     },\r\n        //     \"offset\": 0,\r\n        //     \"limit\": 0,\r\n        //     \"sortField\": \"string\",\r\n        //     \"sortOrder\": \"string\"\r\n        // }\r\n\r\n        window.searchResultsXHR.open(requestType, url, true);\r\n        window.searchResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.searchResultsXHR.onload = () => {\r\n        \r\n\t\tgtag('event','timing_complete', {\r\n\t\t\t'name' : url,\r\n\t\t\t'value' :  'search',\r\n\t\t\t'event_category' : 'Search Service'\r\n\t\t});\r\n\t\t\r\n            if (window.searchResultsXHR.status === 200) {\r\n                data = JSON.parse(window.searchResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n                // } else {\r\n                // console.warn('%cSearch Results %cservice: ' + window.searchResultsXHR.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\r\n                // this.serverlessFallback(callback);\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.searchResultsXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.searchResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.searchResultsXHR);\r\n            }\r\n        };\r\n\r\n        window.searchResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.publicationSearchResultsXHR = null;\r\n    window.fetchPublicationSearchResults = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.publicationSearchResultsXHR) {\r\n            window.publicationSearchResultsXHR.abort();\r\n        }\r\n\r\n        window.publicationSearchResultsXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Publication/PubSearch';\r\n\r\n        window.publicationSearchResultsXHR.open(requestType, url, true);\r\n        window.publicationSearchResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.publicationSearchResultsXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\r\n\r\n            if (window.publicationSearchResultsXHR.status === 200) {\r\n                data = JSON.parse(window.publicationSearchResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.publicationSearchResultsXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.publicationSearchResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.publicationSearchResultsXHR);\r\n            }\r\n        };        \r\n\r\n        window.publicationSearchResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.publicationCoreProjCountXHR = null;\r\n    window.fetchPublicationCoreProjCount = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.publicationCoreProjCountXHR) {\r\n            window.publicationCoreProjCountXHR.abort();\r\n        }\r\n\r\n        window.publicationCoreProjCountXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Publication/CoreProjectsCount';\r\n\r\n        window.publicationCoreProjCountXHR.open(requestType, url, true);\r\n        window.publicationCoreProjCountXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.publicationCoreProjCountXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.publicationCoreProjCountXHR.status === 200) {\r\n                data = JSON.parse(window.publicationCoreProjCountXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.publicationCoreProjCountXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.publicationCoreProjCountXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.publicationCoreProjCountXHR);\r\n            }\r\n        };\r\n\t\t\r\n        window.publicationCoreProjCountXHR.send(serializedParams);\r\n    };\r\n\r\n    window.NonNIHPublCountXHR = null;\r\n    window.fetchNonNIHPublCount = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.NonNIHPublCountXHR) {\r\n            window.NonNIHPublCountXHR.abort();\r\n        }\r\n\r\n        window.NonNIHPublCountXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Publication/NonNIHPubCount';\r\n\r\n        window.NonNIHPublCountXHR.open(requestType, url, true);\r\n        window.NonNIHPublCountXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.NonNIHPublCountXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\r\n\t\t\t\r\n            if (window.NonNIHPublCountXHR.status === 200) {\r\n                data = JSON.parse(window.NonNIHPublCountXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.NonNIHPublCountXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.NonNIHPublCountXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.NonNIHPublCountXHR);\r\n            }\r\n        };\r\n\t\t\r\n        window.NonNIHPublCountXHR.send(serializedParams);\r\n    };\r\n\r\n    window.matchmakerSearchResultsXHR = null;\r\n    window.getMatchmakerResults = (params, callback) => {\r\n        // var xhr = new XMLHttpRequest(),\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.matchmakerSearchResultsXHR) {\r\n            window.matchmakerSearchResultsXHR.abort();\r\n        }\r\n\r\n        window.matchmakerSearchResultsXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/MatchMaker/Projects';\r\n\r\n        window.matchmakerSearchResultsXHR.open(requestType, url, true);\r\n        window.matchmakerSearchResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.matchmakerSearchResultsXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\r\n\t\t\r\n            if (window.matchmakerSearchResultsXHR.status === 200) {\r\n                data = JSON.parse(window.matchmakerSearchResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.matchmakerSearchResultsXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.matchmakerSearchResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.matchmakerSearchResultsXHR);\r\n            }\r\n        };\r\n\t\t\r\n        window.matchmakerSearchResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.matchmakerPOResultsXHR = null;\r\n    window.getMatchmakerPOResults = (params, callback) => {\r\n        // var xhr = new XMLHttpRequest(),\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.matchmakerPOResultsXHR) {\r\n            window.matchmakerPOResultsXHR.abort();\r\n        }\r\n\r\n        window.matchmakerPOResultsXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/MatchMaker/ProjectPO';\r\n\r\n        window.matchmakerPOResultsXHR.open(requestType, url, true);\r\n        window.matchmakerPOResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.matchmakerPOResultsXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t\r\n           \r\n            if (window.matchmakerPOResultsXHR.status === 200) {\r\n                data = JSON.parse(window.matchmakerPOResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.matchmakerPOResultsXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.matchmakerPOResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.matchmakerPOResultsXHR);\r\n            }\r\n        };\r\n\r\n        window.matchmakerPOResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.patentsSearchResultsXHR = null;\r\n    window.getPatentResults = (params, callback) => {\r\n        // var xhr = new XMLHttpRequest(),\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.patentsSearchResultsXHR) {\r\n            window.patentsSearchResultsXHR.abort();\r\n        }\r\n\r\n        window.patentsSearchResultsXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Patents/Search';\r\n\r\n        window.patentsSearchResultsXHR.open(requestType, url, true);\r\n        window.patentsSearchResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.patentsSearchResultsXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.patentsSearchResultsXHR.status === 200) {\r\n                data = JSON.parse(window.patentsSearchResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    // callback(window.patentsSearchResultsXHR);\r\n                    callback();\r\n                }\r\n            }\r\n        };\r\n\r\n        window.patentsSearchResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                // callback(window.patentsSearchResultsXHR);\r\n                callback();\r\n            }\r\n        };\r\n\r\n        window.patentsSearchResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.pubSearchResultsXHR = null;\r\n    window.getPublicationsResults = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.pubSearchResultsXHR) {\r\n            window.pubSearchResultsXHR.abort();\r\n        }\r\n\r\n        window.pubSearchResultsXHR = new XMLHttpRequest();\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Publication/Search';\r\n\r\n        window.pubSearchResultsXHR.open(requestType, url, true);\r\n        window.pubSearchResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.pubSearchResultsXHR.onload = () => {\r\n\t\tgtag('event','timing_complete', {\r\n\t\t\t'name' : url,\r\n\t\t\t'value' :  'search',\r\n\t\t\t'event_category' : 'Publications Service'\r\n\t\t});           \r\n\r\n            if (window.pubSearchResultsXHR.status === 200) {\r\n                data = JSON.parse(window.pubSearchResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    // callback(window.pubSearchResultsXHR);\r\n                    callback();\r\n                }\r\n            }\r\n        };\r\n\r\n        window.pubSearchResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                // callback(window.pubSearchResultsXHR);\r\n                callback();\r\n            }\r\n        };\r\n\r\n        window.pubSearchResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.patentsCountXHR = null;\r\n    window.fetchPatentsCount = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.patentsCountXHR) {\r\n            window.patentsCountXHR.abort();\r\n        }\r\n\r\n        window.patentsCountXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Patents/PatentsCount';\r\n\r\n        window.patentsCountXHR.open(requestType, url, true);\r\n        window.patentsCountXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.patentsCountXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.patentsCountXHR.status === 200) {\r\n                data = JSON.parse(window.patentsCountXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.patentsCountXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.patentsCountXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.patentsCountXHR);\r\n            }\r\n        };\r\n\t\t\r\n        window.patentsCountXHR.send(serializedParams);\r\n    };\r\n\r\n    window.clinicalStudyResultsXHR = null;\r\n    window.getClinicalStudyResults = (params, callback) => {\r\n        // var xhr = new XMLHttpRequest(),\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.clinicalStudyResultsXHR) {\r\n            window.clinicalStudyResultsXHR.abort();\r\n        }\r\n\r\n        window.clinicalStudyResultsXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/ClinicalStudies/Search';\r\n\r\n        window.clinicalStudyResultsXHR.open(requestType, url, true);\r\n        window.clinicalStudyResultsXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.clinicalStudyResultsXHR.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.clinicalStudyResultsXHR.status === 200) {\r\n                data = JSON.parse(window.clinicalStudyResultsXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    // callback(window.clinicalStudyResultsXHR);\r\n                    callback();\r\n                }\r\n            }\r\n        };\r\n\r\n        window.clinicalStudyResultsXHR.onerror = () => {\r\n            if (callback) {\r\n                // callback(window.clinicalStudyResultsXHR);\r\n                callback();\r\n            }\r\n        };\r\n\r\n        window.clinicalStudyResultsXHR.send(serializedParams);\r\n    };\r\n\r\n    window.newsDataXHR = {};\r\n    window.getNewsResultsByType = (params, newsType, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.newsDataXHR[newsType]) {\r\n            window.newsDataXHR[newsType].abort();\r\n        }\r\n\r\n        window.newsDataXHR[newsType] = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/News/newsResults';\r\n\r\n        window.newsDataXHR[newsType].open(requestType, url, true);\r\n        window.newsDataXHR[newsType].setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.newsDataXHR[newsType].onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.newsDataXHR[newsType].status === 200) {\r\n                data = JSON.parse(window.newsDataXHR[newsType].response);\r\n\r\n                if (callback) {\r\n                    callback(data, newsType);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.newsDataXHR, newsType);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.newsDataXHR[newsType].onerror = () => {\r\n            if (callback) {\r\n                callback(window.newsDataXHR, newsType);\r\n            }\r\n        };\r\n\r\n        window.newsDataXHR[newsType].send(serializedParams);\r\n    };\r\n\r\n    window.newsCountXHR = {};\r\n    window.getNewsCountByType = (params, newsType, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.newsCountXHR[newsType]) {\r\n            window.newsCountXHR[newsType].abort();\r\n        }\r\n\r\n        window.newsCountXHR[newsType] = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/News/newsCount';\r\n\r\n        window.newsCountXHR[newsType].open(requestType, url, true);\r\n        window.newsCountXHR[newsType].setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.newsCountXHR[newsType].onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Service'\r\n\t\t\t});\t           \r\n\r\n            if (window.newsCountXHR[newsType].status === 200) {\r\n                data = JSON.parse(window.newsCountXHR[newsType].response);\r\n\r\n                if (callback) {\r\n                    callback(data, newsType);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback();\r\n                }\r\n            }\r\n        };\r\n\r\n        window.newsCountXHR[newsType].onerror = () => {\r\n            if (callback) {\r\n                callback();\r\n            }\r\n        };\r\n\r\n        window.newsCountXHR[newsType].send(serializedParams);\r\n    };\r\n\r\n    window.getProjectSearchCriteria = (searchId, callback, callback2) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url,\r\n            data,\r\n            requestType = 'GET';\r\n\r\n        url = '/services/Projects/SearchCriteria?searchId=' + searchId;\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search-criteria',\r\n\t\t\t\t'event_category' : 'Search Criteria Service'\r\n\t\t\t});\t      \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.responseText);\r\n\r\n                if (callback) {\r\n                    callback(data, callback2);\r\n                }\r\n                // } else {\r\n                // console.warn('%cSearch Results %cservice: ' + xhr.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\r\n                // this.serverlessFallback(callback);\r\n            } else {\r\n                if (callback) {\r\n                    // callback(xhr);\r\n                    callback();\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                // callback(xhr);\r\n                callback();\r\n            }\r\n        };\r\n\r\n        xhr.send();\r\n    };\r\n\r\n    window.getExportFields = (callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url,\r\n            data,\r\n            requestType = 'GET';\r\n\r\n        url = '/services/Lookup/exportfields';\r\n        // url = '/data/ProjectExportFields.json';\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'Project Export  Fields',\r\n\t\t\t\t'event_category' : 'Export'\r\n\t\t\t});\t  \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.responseText);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n                // } else {\r\n                // console.warn('%cSearch Results %cservice: ' + xhr.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\r\n                // this.serverlessFallback(callback);\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\t\t\r\n        xhr.send();\r\n    };\r\n\r\n    window.getExportFileName = (hitListType, params, callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        switch (hitListType) {\r\n            case 'matchmaker-projects':\r\n                url = '/services/ProjectsExport/Matchmakerprojects';\r\n                break;\r\n            case 'patents':\r\n                url = '/services/PatentsExport';\r\n                break;\r\n            case 'publications':\r\n                url = '/services/PublicationsExport';\r\n                break;\r\n            case 'publication-search-results':\r\n                url = '/services/PublicationsExport/PublicationsSearchExport';\r\n                break;\r\n            case 'subProjects':\r\n                url = '/services/ProjectsExport/Subprojects';\r\n                break;\r\n            case 'projectHistory':\r\n                url = '/services/ProjectsExport/History';\r\n                break;\r\n            case 'clinicalStudies':\r\n                url = '/services/ClinicalStudiesExport';\r\n                break;\r\n            case 'similarProjects':\r\n                url = '/services/ProjectsExport/History';\r\n                break;\r\n            default:\r\n                url = '/services/ProjectsExport/SearchResults';\r\n        }\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'Project Export CSV',\r\n\t\t\t\t'event_category' : 'Export'\r\n\t\t\t});\t \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.responseText);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\r\n        xhr.send(serializedParams);\r\n    };\r\n\r\n    window.getExportStatus = (hitListType, exportId, callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url,\r\n            data,\r\n            requestType = 'GET',\r\n            timeStamp = '&t=' + new Date().getTime();\r\n\r\n        switch (hitListType) {\r\n            case 'patents':\r\n                url = '/services/PatentsExport/status?exportId=' + exportId + timeStamp;\r\n                break;\r\n            case 'publications':\r\n            case 'publication-search-results':\r\n                url = '/services/PublicationsExport/status?pubExportId=' + exportId + timeStamp;\r\n                break;\r\n            case 'clinicalStudies':\r\n                url = '/services/ClinicalStudiesExport/status?exportId=' + exportId + timeStamp;\r\n                break;\r\n            default:\r\n                url = '/services/ProjectsExport/status?exportId=' + exportId + timeStamp;\r\n        }\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'Project Export Status',\r\n\t\t\t\t'event_category' : 'Export'\r\n\t\t\t});\t \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.responseText);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\r\n        xhr.send();\r\n    };\r\n\r\n    window.parseFacetsFromURL = () => {\r\n        function getParams () {\r\n            var vars = {},\r\n                parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {\r\n                    vars[key] = value.split(';');\r\n                });\r\n\r\n            return vars;\r\n        }\r\n\r\n        return getParams();\r\n    };\r\n\r\n    window.getSearchFacets = (api, params, callback, routeName) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        // remove criteria if Search ID exists\r\n        if (params.search_id && routeName !== 'map') {\r\n            params.criteria = {};\r\n        } else if (routeName === 'map') {\r\n            // force exclude subprojects to match for facet values, since map always excludes\r\n            params.criteria.exclude_subprojects = true;\r\n            if (!params.criteria.fiscal_years || params.criteria.fiscal_years.length === 0) {\r\n                params.criteria.fiscal_years = 'ap';\r\n            }\r\n        }\r\n\r\n        // if (!params.facet_filters || Object.keys(window.parseFacetsFromURL()).length !== 0) {\r\n        //     params.facet_filters = {\r\n        //         // fiscal_years: [],\r\n        //         // org_names: [],\r\n        //         // agencies: [],\r\n        //         // states: [],\r\n        //         // countries: [],\r\n        //         // principal_investigators: []\r\n        //     };\r\n        // }\r\n\r\n        // if (params.facet_filters && Object.keys(window.parseFacetsFromURL()).length !== 0) {\r\n        //     Object.assign(params.facet_filters, window.parseFacetsFromURL());\r\n        // }\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/' + api + '/facets/';\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search-facets',\r\n\t\t\t\t'event_category' : 'Search Facet Service'\r\n\t\t\t});\t \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };        \r\n\r\n        xhr.send(serializedParams);\r\n    };\r\n\r\n    window.getJSON = ({ url: url, callback: callback }) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            // serializedParams,\r\n            data,\r\n            requestType = 'GET';\r\n\r\n        // serializedParams = JSON.stringify(params);\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {           \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };        \r\n\r\n        xhr.send();\r\n    };\r\n\r\n    window.getPublicationsFacets = (params, callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Publication/PubYear/Facets';\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'publications-facets',\r\n\t\t\t\t'event_category' : 'Publications Facet Service'\r\n\t\t\t});\t \r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\r\n        xhr.send(serializedParams);\r\n    };\r\n\r\n    window.parseCriteria = (tempCriteria, options) => {\r\n        var criteria = copyData(tempCriteria);\r\n        // parse search criteria to not include children\r\n        // if parent is selected\r\n        let newCriteria = {};\r\n        if (options.isSubmitForm) {\r\n            for (let field in window.searchFieldSpecs) {\r\n                if (window.searchFieldSpecs[field].additionalControl && (!criteria[window.searchFieldSpecs[field].id] || criteria[window.searchFieldSpecs[field].id].length === 0)) {\r\n                    for (let i = 0; i < window.searchFieldSpecs[field].additionalControl.options.length; i++) {\r\n                        criteria[window.searchFieldSpecs[field].additionalControl.options[i].id] = '';\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        for (let field in criteria) {\r\n            if (typeof criteria[field] !== 'string' && typeof criteria[field] !== 'boolean') {\r\n                // setup each multiselect field\r\n                if ((criteria[field] && criteria[field].length !== 0)) {\r\n                    newCriteria[field] = [];\r\n                }\r\n\r\n                if (criteria[field]) {\r\n                    if (typeof criteria[field][0] === 'string') {\r\n                        newCriteria[field] = copyData(criteria[field]);\r\n                    } else if (typeof criteria[field][0] === 'object') {\r\n                        for (let i = 0; i < criteria[field].length; i++) {\r\n                            let isParentSelected = false;\r\n\r\n                            if (criteria[field][i].parent_value) {\r\n                                isParentSelected = criteria[field].some((item) => {\r\n                                    return item.value === criteria[field][i].parent_value;\r\n                                });\r\n                            }\r\n\r\n                            // only add value to parsed criteria if\r\n                            // its parent value is not selected\r\n                            if (!isParentSelected) {\r\n                                newCriteria[field].push(criteria[field][i]);\r\n                            }\r\n                        }\r\n\r\n                        // TODO: use field specific delimiter in future\r\n                        // newCriteria[field] = newCriteria[field].join(';');\r\n                    } else if (!Array.isArray(criteria[field])) {\r\n                        newCriteria[field] = {};\r\n                        newCriteria[field] = copyData(criteria[field]);\r\n                    }\r\n                }\r\n            } else if (field.toLowerCase().indexOf('__field_text') === -1 || options.isEditCriteria) {\r\n                // if name contains 'field_text' do not pass in search\r\n                if (criteria[field] !== null && criteria[field] !== '' && criteria[field] !== undefined) {\r\n                    // only pass field if it has content\r\n                    if (field === 'foa') {\r\n                        criteria[field] = criteria[field].replace(/,/ig, ';');\r\n                    }\r\n                    newCriteria[field] = copyData(criteria[field]);\r\n                }\r\n            }\r\n        }\r\n\r\n        return newCriteria;\r\n    };\r\n\r\n    window.stringifySearchCriteriaFields = (criteria, options) => {\r\n        var stringifiedCriteria = {},\r\n            fieldObj, depObj,\r\n            srcFld;\r\n\r\n        for (let field in criteria) {\r\n            if (typeof criteria[field] !== 'string' && typeof criteria[field] !== 'boolean') {\r\n                if (field === 'search_field' && (!options || !options.isEditCriteria)) {\r\n                    for (srcFld in window.searchFieldSpecs) {\r\n                        if (window.searchFieldSpecs[srcFld] && window.searchFieldSpecs[srcFld].id === field) {\r\n                            fieldObj = window.searchFieldSpecs[srcFld];\r\n                            break;\r\n                        }\r\n                    }\r\n\r\n                    if (criteria[fieldObj.dependentField]) {\r\n                        if (!stringifiedCriteria['advanced_text_search']) {\r\n                            stringifiedCriteria['advanced_text_search'] = {}\r\n                        }\r\n                        if (JSON.stringify(fieldObj.defaultValues.sort()).toLowerCase() === JSON.stringify(criteria[field].sort()).toLowerCase() || !criteria[field]) {\r\n                            stringifiedCriteria['advanced_text_search'][field] = copyData(fieldObj.dbValues).join(',');\r\n                        } else {\r\n                            stringifiedCriteria['advanced_text_search'][field] = copyData(criteria[field]).join(',');\r\n                        }\r\n                    }\r\n                    fieldObj = null;\r\n                } else {\r\n                    if (!criteria[field] || (criteria[field] && criteria[field].length !== 0)) {\r\n                        stringifiedCriteria[field] = [];\r\n                    }\r\n\r\n                    if (typeof criteria[field][0] === 'string') {\r\n                        stringifiedCriteria[field] = criteria[field].join(';');\r\n                        stringifiedCriteria[field] = stringifiedCriteria[field]  ? stringifiedCriteria[field].replace(/(\\x{0080}-\\x{0099})/ig, '').replace(/(\\x00-\\x09\\x0B-\\x0C\\x0E-\\x1F)/ig, '') : stringifiedCriteria[field];\r\n                    } else if (typeof criteria[field][0] === 'object') {\r\n\r\n                        for (let i = 0; i < criteria[field].length; i++) {\r\n                            if (criteria[field][i].value) {\r\n                                stringifiedCriteria[field].push(criteria[field][i].value);\r\n                            }\r\n                        }\r\n\r\n                        // TODO: use field specific delimiter in future\r\n                        stringifiedCriteria[field] = stringifiedCriteria[field].join(';');\r\n                    } else if (!Array.isArray(criteria[field])) {\r\n                        stringifiedCriteria[field] = {};\r\n                        stringifiedCriteria[field] = copyData(criteria[field]);\r\n                    }\r\n                }\r\n                // } else if (field.toLowerCase().indexOf('__free_text') !== -1 || options && options.isEditCriteria) {\r\n                //     // set free text field to main field\r\n                //     if (criteria[field]) {\r\n                //         // only pass field if it has content\r\n                //         if (!options || !options.isEditCriteria) {\r\n                //             stringifiedCriteria[field.replace('__free_text', '')] = criteria[field];\r\n                //             stringifiedCriteria[field] = criteria[field];\r\n                //             stringifiedCriteria[field] = null;\r\n                //         } else {\r\n                //             stringifiedCriteria[field] = criteria[field];\r\n                //         }\r\n                //     }\r\n            } else if (field.toLowerCase().indexOf('__field_text') === -1) {\r\n                // if name contains 'field_text' do not pass in search\r\n                switch (field) {\r\n                    case 'appl_type_code':\r\n                    case 'activity_code':\r\n                    case 'ic_code':\r\n                    case 'serial_num':\r\n                    case 'support_year':\r\n                    case 'suffix_code':\r\n                        if (!stringifiedCriteria['project_num_split']) {\r\n                            stringifiedCriteria['project_num_split'] = {}\r\n                        }\r\n                        stringifiedCriteria['project_num_split'][field] = copyData(criteria[field]);\r\n                        break;\r\n                    case 'search_text':\r\n                        if (!stringifiedCriteria['advanced_text_search']) {\r\n                            stringifiedCriteria['advanced_text_search'] = {}\r\n                        }\r\n                        for (srcFld in window.searchFieldSpecs) {\r\n                            if (window.searchFieldSpecs[srcFld] && window.searchFieldSpecs[srcFld].id === field) {\r\n                                fieldObj = window.searchFieldSpecs[srcFld];\r\n                                break;\r\n                            }\r\n                        }\r\n                        if (fieldObj) {\r\n                            for (srcFld in window.searchFieldSpecs) {\r\n                                if (window.searchFieldSpecs[srcFld] && window.searchFieldSpecs[srcFld].id === fieldObj.dependentField) {\r\n                                    depObj = window.searchFieldSpecs[srcFld];\r\n                                    break;\r\n                                }\r\n                            }\r\n\r\n                            if ((field !== 'search_text' && criteria['search_text']) || field === 'search_text') {\r\n                                stringifiedCriteria['advanced_text_search'][field] = escape(copyData(criteria[field]));\r\n                                if (!criteria[fieldObj.dependentField]) {\r\n                                    stringifiedCriteria['advanced_text_search'][fieldObj.dependentField] = depObj.dbValues.join(',');\r\n                                }\r\n                            }\r\n                        }\r\n                        break;\r\n                    case 'operator':\r\n                        if (!stringifiedCriteria['advanced_text_search']) {\r\n                            stringifiedCriteria['advanced_text_search'] = {}\r\n                        }\r\n                        if ((field !== 'search_text' && criteria['search_text']) || field === 'search_text') {\r\n                            stringifiedCriteria['advanced_text_search'][field] = escape(copyData(criteria[field]));\r\n                        }\r\n                        break;\r\n                    default:\r\n                        if (criteria[field]) {\r\n                            // only pass field if it has content\r\n                            stringifiedCriteria[field] = copyData(criteria[field]);\r\n                            if (typeof criteria[field] === 'string') {\r\n                                stringifiedCriteria[field] = stringifiedCriteria[field]  ? stringifiedCriteria[field].replace(/​/ig,'') : stringifiedCriteria[field];\r\n                            }\r\n                        }\r\n                }\r\n            }\r\n        }\r\n\r\n        return stringifiedCriteria;\r\n    };\r\n\r\n    window.captchaXHR = null;\r\n\r\n    window.getCaptchaData = (params, callback) => {\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (window.captchaXHR) {\r\n            window.captchaXHR.abort();\r\n        }\r\n\r\n        window.captchaXHR = new XMLHttpRequest();\r\n\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        url = '/services/Projects/PiPoEmails';\r\n\r\n        window.captchaXHR.open(requestType, url, true);\r\n        window.captchaXHR.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        window.captchaXHR.onload = () => {            \r\n\r\n            if (window.captchaXHR.status === 200) {\r\n                data = JSON.parse(window.captchaXHR.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n                // } else {\r\n                // console.warn('%cSearch Results %cservice: ' + window.captchaXHR.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\r\n                // this.serverlessFallback(callback);\r\n            } else {\r\n                if (callback) {\r\n                    callback(window.captchaXHR);\r\n                }\r\n            }\r\n        };\r\n\r\n        window.captchaXHR.onerror = () => {\r\n            if (callback) {\r\n                callback(window.captchaXHR);\r\n            }\r\n        };\r\n\r\n        window.captchaXHR.send(serializedParams);\r\n    };\r\n\r\n    window.getHighestValueInData = (data) => {\r\n        let values = [],\r\n            max;\r\n\r\n        for (let i = 0; i < data.length; i++) {\r\n            if (!isNaN(Number(data[i].value))) {\r\n                values.push(data[i].value);\r\n            }\r\n        }\r\n\r\n        if (values.length !== 0) {\r\n            max = Math.max(...values);\r\n\r\n            return max;\r\n        }\r\n\r\n        return false;\r\n    };\r\n\r\n    window.fixHeaders = (container, isNonTable) => {\r\n        // fixed table header and left menu\r\n        if (document.getElementById(container)) {\r\n            // if (document.getElementById(container) && document.getElementById('clnTable')) {\r\n            if (!isNonTable) {\r\n                var tableContainer = document.getElementById(container),\r\n                    table = tableContainer.querySelectorAll('table:not(.fixed-header)')[0],\r\n                    tableHeader = table ? table.getElementsByTagName('thead')[0].cloneNode(true) : null,\r\n                    resultsArea = document.getElementsByClassName('dataTable')[0],\r\n                    chartArea = document.getElementsByClassName('chart-container'),\r\n                    mapArea = document.getElementsByClassName('map-container'),\r\n                    eTop = resultsArea ? resultsArea.offsetTop : 0,\r\n                    fixedHeaderAboveTable = document.getElementsByClassName('drill-down-header'),\r\n                    tHeader = document.getElementById('clnTable'),\r\n                    scrollTable = document.getElementsByClassName('data-table')[0],\r\n                    tableContainer = document.getElementsByClassName('tableContainer'),\r\n                    eTableTop = tableContainer && tableContainer.length > 0 ? tableContainer[0].offsetTop : 0,\r\n                    winW = window.innerWidth,\r\n                    fixedHeaderAndLeftSidebar;\r\n\r\n                window.sizeTableHeader(container);\r\n                if (resultsArea && resultsArea.offsetParent && resultsArea.offsetParent.offsetTop && resultsArea.offsetParent.offsetTop > eTop) {\r\n                    eTop = resultsArea.offsetParent.offsetTop;\r\n                }\r\n                if (chartArea && chartArea.length > 0) {\r\n                    fixedHeaderAndLeftSidebar = document.querySelectorAll('.sidebar');\r\n                } else if (!table) {\r\n                    fixedHeaderAndLeftSidebar = document.querySelectorAll('#' + container + ', .sidebar');\r\n                } else {\r\n                    fixedHeaderAndLeftSidebar = document.querySelectorAll('#clnTable, .sidebar');\r\n                }\r\n                // if (eTop - window.pageYOffset < 0  && resultsArea.offsetHeight > window.innerHeight) {\r\n\r\n                if (eTop - window.pageYOffset < 0) {\r\n                    if (winW >= 993) {\r\n                        for (let i = 0; i < fixedHeaderAndLeftSidebar.length; i++) {\r\n                            fixedHeaderAndLeftSidebar[i].classList.add('fixed-head');\r\n                        }\r\n                    } else {\r\n                        if (chartArea && chartArea.length > 0) {\r\n                            fixedHeaderAndLeftSidebar = document.querySelectorAll('.fixed-head')[0];\r\n                        } else {\r\n                            fixedHeaderAndLeftSidebar = document.querySelectorAll('#clnTable')[0];\r\n                        }\r\n                        if (fixedHeaderAndLeftSidebar) {\r\n                            fixedHeaderAndLeftSidebar.classList.add('fixed-head');\r\n                        }\r\n                        //fixedHeaderAndLeftSidebar.style.top = leftBar.clientHeight + 'px';\r\n                    }\r\n                } else {\r\n                    for (let i = 0; i < fixedHeaderAndLeftSidebar.length; i++) {\r\n                        fixedHeaderAndLeftSidebar[i].classList.remove('fixed-head');\r\n                        if (chartArea && chartArea.length > 0) {\r\n                            tHeader ? tHeader.style.top = 0 : '';\r\n                            scrollTable ? scrollTable.style.marginTop = 0 : '';\r\n                        }\r\n                        if (winW < 993 && fixedHeaderAndLeftSidebar[i].classList.value.indexOf('data-table') !== -1) {\r\n                            fixedHeaderAndLeftSidebar[i].style.top = 0;\r\n                        }\r\n                    }\r\n\r\n                }\r\n\r\n                if (chartArea && chartArea.length > 0) {\r\n                    if (winW < 993) {\r\n                        eTableTop = eTop + eTableTop;\r\n                    } else {\r\n                        eTableTop = eTop + chartArea[0].offsetHeight;\r\n                        if (mapArea && mapArea.length > 0) {\r\n                            eTableTop += mapArea[0].offsetHeight;\r\n                        }\r\n                        if (fixedHeaderAboveTable && fixedHeaderAboveTable.length > 0) { // Stick drilldown headers to top\r\n                            if (eTableTop - window.pageYOffset < 0) {\r\n                                fixedHeaderAboveTable[0].classList.add('fixed-head');\r\n                            } else {\r\n                                fixedHeaderAboveTable[0].classList.remove('fixed-head');\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                    if (eTableTop - window.pageYOffset < 0) {\r\n                        // if (chartArea && chartArea.length > 0 && winW >= 993) {\r\n                        //     tHeader.style.top = chartArea[0].offsetHeight + 'px';\r\n                        // }\r\n                        if (fixedHeaderAboveTable && fixedHeaderAboveTable.length > 0) { // Leave space for drilldown header if present\r\n                            tHeader.style.top = fixedHeaderAboveTable[0].offsetHeight + 'px';\r\n                        } else {\r\n                            tHeader.style.top = '0px';\r\n                        }\r\n\r\n                        tHeader.classList.add('fixed-head');\r\n                    } else {\r\n                        if (tHeader) {\r\n                            tHeader.classList.remove('fixed-head');\r\n                            tHeader.style.top = 0;\r\n                        }\r\n                    }\r\n                }\r\n            } else {\r\n                var tableContainer = document.getElementById(container),\r\n                    eTop = tableContainer.parentNode.parentNode.offsetTop,\r\n                    winW = window.innerWidth,\r\n                    fixedHeaderAndLeftSidebar;\r\n\r\n                fixedHeaderAndLeftSidebar = document.querySelectorAll('#' + container + ', .sidebar');\r\n                // if (eTop - window.pageYOffset < 0  && resultsArea.offsetHeight > window.innerHeight) {\r\n                if (eTop - window.pageYOffset < 0) {\r\n                    if (winW >= 993) {\r\n                        for (let i = 0; i < fixedHeaderAndLeftSidebar.length; i++) {\r\n                            fixedHeaderAndLeftSidebar[i].classList.add('fixed-head');\r\n                        }\r\n                    } else {\r\n                        fixedHeaderAndLeftSidebar = document.querySelectorAll('#' + container)[0];\r\n                        fixedHeaderAndLeftSidebar.classList.add('fixed-head');\r\n                    }\r\n                } else {\r\n                    for (let i = 0; i < fixedHeaderAndLeftSidebar.length; i++) {\r\n                        fixedHeaderAndLeftSidebar[i].classList.remove('fixed-head');\r\n                        if (winW < 993 && fixedHeaderAndLeftSidebar[i].classList.value.indexOf('data-table') !== -1) {\r\n                            fixedHeaderAndLeftSidebar[i].style.top = 0;\r\n                        }\r\n                    }\r\n\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    window.sizeTableHeader = (container) => {\r\n        var tableContainer = document.getElementById(container),\r\n            table = tableContainer.querySelectorAll('table:not(.fixed-header):not(.fixed-within)'),\r\n            fixedHeader = tableContainer.querySelectorAll('.fixed-header:not(.project-basics), #smart-search-bar, .fixed-within'),\r\n            newWidth = 0,\r\n            newHeight = 0,\r\n            newTableHeaders,\r\n            orgTableHeaders;\r\n\r\n        if (fixedHeader.length !== 0) {\r\n            for (let i = 0; i < fixedHeader.length; i++) {\r\n                orgTableHeaders = table ? table[i].getElementsByTagName('th') : []\r\n                fixedHeader[i].style.width = table ? table[i].clientWidth + 'px' : '100%';\r\n                newTableHeaders = fixedHeader[i].getElementsByTagName('th')\r\n\r\n                for (let j = 0; j < orgTableHeaders.length; j++) {\r\n                    newWidth = orgTableHeaders[j].offsetWidth;\r\n                    newHeight = orgTableHeaders[j].offsetHeight;\r\n                    if (newTableHeaders && newTableHeaders[j]) {\r\n                        newTableHeaders[j].style.width = newWidth + 'px';\r\n                        newTableHeaders[j].style.height = newHeight + 'px';\r\n                    }\r\n                }\r\n            }\r\n        } else {\r\n            tableContainer.style.width = tableContainer.parentNode.clientWidth + 'px';\r\n        }\r\n    }\r\n\r\n    window.createCookie = (name, value, days) => {\r\n        var expires,\r\n            domain = window.location.hostname,\r\n            protocol = window.location.protocol,\r\n            secure = (protocol !== 'http:') ? 'secure' : '',\r\n            fullCookie = '';\r\n\r\n        if (days) {\r\n            var date = new Date();\r\n            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n            expires = '; expires=' + date.toGMTString();\r\n        } else {\r\n            expires = '';\r\n        }\r\n\r\n        document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + expires + '; path=/; ' + secure;\r\n    }\r\n\r\n    window.readCookie = (name) => {\r\n\r\n        //TODO: update variable names to be descriptive\r\n        var nameEQ = encodeURIComponent(name) + '=',\r\n            ca = document.cookie.split(';'),\r\n            c,\r\n            i;\r\n\r\n        for (i = 0; i < ca.length; i++) {\r\n            c = ca[i];\r\n\r\n            while (c.charAt(0) === ' ') {\r\n                c = c.substring(1, c.length);\r\n            }\r\n\r\n            if (c.indexOf(nameEQ) === 0) {\r\n                return decodeURIComponent(c.substring(nameEQ.length, c.length));\r\n            }\r\n        }\r\n\r\n        //does this need to return at all?\r\n        return null;\r\n    }\r\n\r\n    window.getSearchGraphData = (params, callback, urlOverride) => {\r\n        if (xhrList['graphData']) {\r\n            xhrList['graphData'].abort();\r\n        }\r\n\r\n        xhrList['graphData'] = new XMLHttpRequest();\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (params.criteria && params.criteria.fiscal_years) {\r\n            params.criteria.fiscal_years = params.criteria.fiscal_years.replace(/ap(;*)/, '');\r\n            // if (params.criteria.fiscal_years.trim() === '') {\r\n            //     delete params.criteria.fiscal_years;\r\n            // }\r\n        }\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        if (urlOverride) {\r\n            url = urlOverride;\r\n        } else {\r\n            url = '/services/Visualization/';\r\n        }\r\n        // if (window.serverless || this.serverless) {\r\n        //    url = '/data/graph-data.json';\r\n        //    requestType = 'GET';\r\n        // } else {\r\n        // url = '/services/Visualization/';\r\n        // url = '/services/Chart/';\r\n        // }\r\n\r\n        xhrList['graphData'].open(requestType, url, true);\r\n        xhrList['graphData'].setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhrList['graphData'].onload = () => {\r\n\t\t\tgtag('event','', {\r\n        'event_category': '',\r\n        'event_label': '',\r\n        'value': 'asda'\r\n      })\r\n\t\t\t\r\n\r\n            if (xhrList['graphData'].status === 200) {\r\n                data = JSON.parse(xhrList['graphData'].response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhrList['graphData']);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhrList['graphData'].onerror = () => {\r\n            if (callback) {\r\n                callback(xhrList['graphData']);\r\n            }\r\n        };\r\n\t\t\r\n        xhrList['graphData'].send(serializedParams);\r\n    };\r\n\r\n    window.getSearchCirclesData = (params, callback, urlOverride) => {\r\n        if (xhrList['circlesData']) {\r\n            xhrList['circlesData'].abort();\r\n        }\r\n\r\n        xhrList['circlesData'] = new XMLHttpRequest();\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (params.criteria && params.criteria.fiscal_years) {\r\n            params.criteria.fiscal_years = params.criteria.fiscal_years.replace(/ap(;*)/, '');\r\n            // if (params.criteria.fiscal_years.trim() === '') {\r\n            //     delete params.criteria.fiscal_years;\r\n            // }\r\n        }\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        if (urlOverride) {\r\n            url = urlOverride;\r\n        } else {\r\n            url = '/services/Cluster/ClusterData';\r\n        }\r\n\r\n        xhrList['circlesData'].open(requestType, url, true);\r\n        xhrList['circlesData'].setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhrList['circlesData'].onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Search Circles Visualization Service'\r\n\t\t\t});\r\n\r\n            if (xhrList['circlesData'].status === 200) {\r\n                data = JSON.parse(xhrList['circlesData'].response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhrList['circlesData']);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhrList['circlesData'].onerror = () => {\r\n            if (callback) {\r\n                callback(xhrList['circlesData']);\r\n            }\r\n        };\r\n\r\n        xhrList['circlesData'].send(serializedParams);\r\n    };\r\n\r\n    window.getMapData = (params, callback, callback2, urlOverride) => {\r\n        if (xhrList.mapData) {\r\n            xhrList.mapData.abort();\r\n        }\r\n\r\n        xhrList.mapData = new XMLHttpRequest();\r\n        var serializedParams,\r\n            url,\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        if (params && params.criteria && params.criteria.fiscal_years) {\r\n            params.criteria.fiscal_years = params.criteria.fiscal_years.replace(/ap(;*)/, '');\r\n            // if (params.criteria.fiscal_years.trim() === '') {\r\n            //     delete params.criteria.fiscal_years;\r\n            // }\r\n        }\r\n        serializedParams = JSON.stringify(params);\r\n\r\n        if (urlOverride) {\r\n            url = '/services/Map/' + urlOverride;\r\n        } else {\r\n            url = '/services/Map/DataByCountry';\r\n        }\r\n        // if (window.serverless || this.serverless) {\r\n        //    url = '/data/graph-data.json';\r\n        //    requestType = 'GET';\r\n        // } else {\r\n        // url = '/services/Visualization/';\r\n        // url = '/services/Chart/';\r\n        // }\r\n\r\n        xhrList.mapData.open(requestType, url, true);\r\n        xhrList.mapData.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhrList.mapData.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Map Visualization Service'\r\n\t\t\t});\r\n\r\n            if (xhrList.mapData.status === 200) {\r\n                data = JSON.parse(xhrList.mapData.response);\r\n\r\n                if (callback) {\r\n                    callback(data, callback2);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhrList.mapData, callback2);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhrList.mapData.onerror = () => {\r\n            if (callback) {\r\n                callback(xhrList.mapData, callback2);\r\n            }\r\n        };\r\n\r\n        xhrList.mapData.send(serializedParams);\r\n    };\r\n\r\n    window.getTextWidth = (text, font) => {\r\n        // re-use canvas object for better performance\r\n        var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement('canvas')),\r\n            context = canvas.getContext('2d'),\r\n            metrics,\r\n            textWidth = 0,\r\n            i;\r\n\r\n        context.font = font;\r\n\r\n        // if multi-line text\r\n        if (text) {\r\n            if (text.toString().indexOf('\\n') !== -1) {\r\n                text = text.toString().split('\\n');\r\n\r\n                // find longest line\r\n                for (i = 0; i < text.length; i++) {\r\n                    metrics = context.measureText(text[i]);\r\n\r\n                    if (metrics.width > textWidth) {\r\n                        textWidth = metrics.width;\r\n                    }\r\n                }\r\n            } else {\r\n                metrics = context.measureText(text);\r\n                textWidth = metrics.width;\r\n            }\r\n        }\r\n\r\n        return textWidth;\r\n    }\r\n\r\n    window.getProjectBasicInfo = (params, infoType, callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            serializedParams = '',\r\n            url,\r\n            data,\r\n            requestType = 'GET';\r\n\r\n        switch (infoType) {\r\n            case 'basicInfo':\r\n                url = '/services/Projects/ProjectInfo?projectId=' + params.project_id;\r\n                if (params.search_id && params.search_id.indexOf('CID-') !== 0) {\r\n                    url += '&searchId=' + params.search_id;\r\n                }\r\n                break;\r\n            case 'otherDetails':\r\n                url = '/services/Projects/ProjectDetail?projectId=' + params.project_id;\r\n                break;\r\n            case 'patents':\r\n                url = '/services/Projects/Patents?projectId=' + params.project_id;\r\n                break;\r\n            case 'publications':\r\n                url = '/services/Projects/Publications?projectId=' + params.project_id;\r\n                break;\r\n            case 'clinicalStudies':\r\n                url = '/services/Projects/ClinicalStudies?projectId=' + params.project_id;\r\n                break;\r\n            case 'projectHistory':\r\n                url = '/services/Projects/ProjectHistory';\r\n                requestType = 'POST';\r\n                serializedParams = JSON.stringify(params);\r\n                break;\r\n            case 'subProjects':\r\n                url = '/services/Projects/ProjectSubProjects';\r\n                requestType = 'POST';\r\n                serializedParams = JSON.stringify(params);\r\n                break;\r\n            case 'outcomes':\r\n                url = '/services/Projects/ProjectOutcomes?projectId=' + params.project_id;\r\n                break;\r\n            case 'similarProjects':\r\n                url = '/services/Projects/SimilarProjects';\r\n                requestType = 'POST';\r\n                serializedParams = JSON.stringify(params);\r\n                break;\r\n            case 'PressRelease':\r\n            case 'ResearchMatters':\r\n            case 'AIRS':\r\n            case 'ARRA':\r\n            case 'AIMRS':\r\n                url = '/services/Projects/NewsResults';\r\n                requestType = 'POST';\r\n                serializedParams = JSON.stringify(params);\r\n                break;\r\n        }\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Publications Service'\r\n\t\t\t});\r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.response);\r\n\r\n                if (callback) {\r\n                    callback(data, infoType);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\r\n        xhr.send(serializedParams);\r\n    }\r\n\r\n    window.findApplId = (params, callback) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url = '/services/Publication/FetchApplId',\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Publications Service'\r\n\t\t\t});\r\n\r\n            if (xhr.status === 200) {\r\n                data = JSON.parse(xhr.response);\r\n\r\n                if (callback) {\r\n                    callback(data);\r\n                }\r\n            } else {\r\n                if (callback) {\r\n                    callback(xhr);\r\n                }\r\n            }\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n            if (callback) {\r\n                callback(xhr);\r\n            }\r\n        };\r\n\r\n        xhr.send('\"' + params + '\"');\r\n    }\r\n\r\n    window.logPublicationsPage = () => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url = '/services/Publication/PubLog',\r\n            data,\r\n            requestType = 'POST';\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Publications Service'\r\n\t\t\t});\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n        };\r\n\r\n        xhr.send();\r\n    }\r\n\r\n    window.saveSharedURL = (params) => {\r\n        var xhr = new XMLHttpRequest(),\r\n            url = '/services/Shared/Mark',\r\n            data,\r\n            requestType = 'POST',\r\n            serializedParams = JSON.stringify(params);\r\n\r\n        xhr.open(requestType, url, true);\r\n        xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n        xhr.onload = () => {\r\n\t\t\tgtag('event','timing_complete', {\r\n\t\t\t\t'name' : url,\r\n\t\t\t\t'value' :  'search',\r\n\t\t\t\t'event_category' : 'Save Share URL Service'\r\n\t\t\t});\r\n        };\r\n\r\n        xhr.onerror = () => {\r\n        };\r\n\t\t\r\n        xhr.send(serializedParams);\r\n    }\r\n\r\n    function toCSV (csv, filename) {\r\n        var csvData,\r\n            textEncoder,\r\n            csvContentEncoded,\r\n            blob,\r\n            IEwindow;\r\n\r\n        if (typeof (TextEncoder) !== 'undefined') {\r\n            textEncoder = new TextEncoder('utf-8');\r\n            csvContentEncoded = textEncoder.encode(['\\ufeff' + csv]);\r\n            // Create blob\r\n            blob = new Blob([csvContentEncoded], {\r\n                type: 'attachment/csv;charset=utf-8'\r\n            });\r\n\r\n            csvData = URL.createObjectURL(blob);\r\n        } else {\r\n            if (isIE) {\r\n                if (window.ieVer === 9) {\r\n                    IEwindow = window.open();\r\n                    IEwindow.document.write('sep=,\\r\\n' + csv);\r\n                    IEwindow.document.close();\r\n                    IEwindow.document.execCommand('SaveAs', true, filename + '.csv');\r\n                    IEwindow.close();\r\n                } else {\r\n                    blob = new Blob(['\\uFEFF' + csv], {\r\n                        type: 'text/csv;charset=utf-8'\r\n                    });\r\n\r\n                    csvData = URL.createObjectURL(blob);\r\n                }\r\n            } else {\r\n                csvData = 'data:attachment/csv;charset=utf-8,' + encodeURIComponent(csv);\r\n            }\r\n        }\r\n\r\n        // download file\r\n        if (isIE) {\r\n            if (window.navigator.msSaveOrOpenBlob) { // check for IE\r\n                navigator.msSaveBlob(blob, filename);\r\n            }\r\n        } else {\r\n            var downloadLink = document.createElement('a');\r\n\r\n            downloadLink.setAttribute('id', 'csv-download');\r\n            downloadLink.setAttribute('href', csvData);\r\n            downloadLink.setAttribute('download', filename);\r\n            downloadLink.setAttribute('style', 'opacity: 0;');\r\n            downloadLink.innerText = 'Download';\r\n\r\n            document.querySelector('body').appendChild(downloadLink);\r\n            document.getElementById('csv-download').click();\r\n            document.getElementById('csv-download').remove();\r\n        }\r\n    }\r\n\r\n    window.exportDataToCSV = function (filename, columns, data) {\r\n        // Temporary delimiter characters unlikely to be typed by keyboard\r\n        // This is to avoid accidentally splitting the actual contents\r\n        var tmpColDelim = String.fromCharCode(11), // vertical tab character\r\n            tmpRowDelim = String.fromCharCode(0), // null character\r\n\r\n            // actual delimiter characters for CSV format\r\n            colDelim = '\",\"',\r\n            rowDelim = '\"\\r\\n\"',\r\n            exportData = [],\r\n            tempDataRow = null,\r\n            tempPiNameList = null,\r\n            monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n                \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n            ],\r\n            tempArray,\r\n            dt = new Date(),\r\n            csv = '\"',\r\n            filename = filename + '_' + dt.getDate() + '' + monthNames[dt.getMonth()] + '' + dt.getFullYear() + '_' + dt.getHours() + '' + dt.getMinutes() + '' + dt.getSeconds() + '.csv',\r\n            urlData = '';\r\n\t\t\r\n\t\tgtag('event','Click', {\r\n\t\t\t'event_category': 'Export CSV',\r\n\t\t\t'event_label': filename,\r\n\t\t\t'value': 'Export CSV: ' + filename\r\n\t\t});\t\r\n\r\n        // event header\r\n        tempArray = [];\r\n        for (let col in columns) {\r\n            if (columns[col].isVisible || columns[col].exportOnly) {\r\n                tempArray.push(columns[col].displayName.replace(/\\u00a0/g, \" \"));\r\n            }\r\n        }\r\n\r\n        exportData.push(tempArray.join(tmpColDelim));\r\n\r\n        function buildURLString (row, col) {\r\n            var tempURL = col.refURL;\r\n\r\n            for (let i = 0; i < col.urlFields.length; i++) {\r\n                if (row[col.urlFields[i]]) {\r\n                    tempURL = tempURL.replace('{{field' + i + '}}', row[col.urlFields[i]]);\r\n                }\r\n            }\r\n            if (tempURL.indexOf(\"{{\") !== -1) {\r\n                return '';\r\n            }\r\n            return tempURL;\r\n        }\r\n\r\n\r\n        function parseExportData (dataRow) { // per data row\r\n            tempArray = [];\r\n\r\n            for (let col in columns) {\r\n                const column = columns[col];\r\n\r\n                if (column.isVisible || column.exportOnly) {\r\n                    if (typeof (dataRow[column.fieldName]) === 'string' && dataRow[column.fieldName].indexOf('\"') !== -1) {\r\n                        dataRow[column.fieldName] = dataRow[column.fieldName].split('\"').join('\"\"');\r\n                    } else if (dataRow[column.fieldName] === null) {\r\n                        dataRow[column.fieldName] = \"\";\r\n                    }\r\n\r\n                    switch (column.fieldName) {\r\n                        case 'project_funding_amt':\r\n                        case 'sub_project_funding_amt':\r\n                            if (dataRow[column.fieldName]) {\r\n                                tempArray.push(window.filters.formatCurrency(dataRow[column.fieldName]));\r\n                            } else {\r\n                                tempArray.push('');\r\n                            }\r\n                            break;\r\n                        case 'relative_citation_ratio':\r\n                            if (dataRow[column.fieldName]) {\r\n                                tempArray.push(window.filters.round(dataRow[column.fieldName]));\r\n                            }\r\n                            break;\r\n                        default:\r\n                            if (column.refURLField) {\r\n                                urlData = dataRow[column.refURLField] ? (dataRow[column.refURLField].value ? dataRow[column.refURLField].value : dataRow[column.refURLField]) : '';\r\n                                if (dataRow[column.fieldName]) {\r\n                                    urlData = \"<a href='\" + urlData + \"' target='_blank' rel='noopener'>\" + dataRow[column.fieldName] + \"</a>\";\r\n                                } else if (column.fieldText) {\r\n                                    urlData = \"<a href='\" + urlData + \"' target='_blank' rel='noopener'>\" + column.fieldText + \"</a>\";\r\n                                }\r\n                                tempArray.push(urlData);\r\n                            }\r\n                            else if (column.refURL) {\r\n                                urlData = buildURLString(dataRow, column);\r\n                                if (urlData !== '') {\r\n                                    if (dataRow[column.fieldName]) {\r\n                                        urlData = \"<a href='\" + urlData + \"' target='_blank' rel='noopener'>\" + dataRow[column.fieldName] + \"</a>\";\r\n                                    } else if (column.fieldText) {\r\n                                        urlData = \"<a href='\" + urlData + \"' target='_blank' rel='noopener'>\" + column.fieldText + \"</a>\";\r\n                                    }\r\n                                    tempArray.push(urlData);\r\n                                } else {\r\n                                    if (column.fieldName) {\r\n                                        tempArray.push(dataRow[column.fieldName]);\r\n                                    } else {\r\n                                        tempArray.push('');\r\n                                    }\r\n                                }\r\n                            } else {\r\n                                if (dataRow[column.fieldName]) {\r\n                                    tempArray.push(dataRow[column.fieldName]);\r\n                                } else {\r\n                                    tempArray.push('');\r\n                                }\r\n                            }\r\n                    }\r\n                }\r\n            }\r\n\r\n            exportData.push(tempArray.join(tmpColDelim));\r\n        }\r\n\r\n        // event data\r\n        for (let j = 0; j < data.length; j++) {\r\n            parseExportData(data[j]);\r\n        }\r\n\r\n        // travel requests data\r\n        exportData.push('');\r\n        exportData.push('');\r\n\r\n        // compile all data\r\n        csv += exportData.join(tmpRowDelim)\r\n            .split(tmpRowDelim).join(rowDelim)\r\n            .split(tmpColDelim).join(colDelim);\r\n\r\n        csv += '\"';\r\n\r\n        toCSV(csv, filename);\r\n    };\r\n\r\n\r\n    window.getPreviousMonday = function (week) {\r\n        var date = new Date(),\r\n            day = date.getDay(),\r\n            prevWeekCnt = ((week - 1) * 7),\r\n            prevSaturday,\r\n            prevSatStr;\r\n\r\n        if (date.getDay() === 6) {\r\n            prevSaturday = date.setDate(date.getDate() - week * 7);\r\n        } else {\r\n            prevSaturday = date.setDate(date.getDate() - 1 - prevWeekCnt - day);\r\n        }\r\n\r\n        prevSaturday = new Date(prevSaturday);\r\n        let prevSatMon = prevSaturday.getMonth() + 1;\r\n        let prevSatDt = prevSaturday.getDate();\r\n\r\n        return (prevSatMon < 10 ? '0' : '') + prevSatMon + '/' + (prevSatDt < 10 ? '0' : '') + prevSatDt + '/' + prevSaturday.getFullYear();\r\n    }\r\n\r\n    window.getVueComp = (dom) => {\r\n        var key,\r\n            comp;\r\n\r\n        // parse if jQuery element\r\n        // if (dom[0]) {\r\n        //     dom = dom[0];\r\n        // }\r\n\r\n        for (key in dom) {\r\n            if (key.indexOf('__vue') !== -1) {\r\n                comp = dom[key];\r\n\r\n                return comp;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    // google maps requires window level function for callback\r\n    // this function will pass back to vue map component\r\n    window.initGoogleMap = function () {\r\n        // emit map init event\r\n        bus.$emit('map:init')\r\n    }\r\n\r\n    window.offset = (el) => {\r\n        var rect = el.getBoundingClientRect(),\r\n            scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n            scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n        return {\r\n            top: rect.top + scrollTop,\r\n            left: rect.left + scrollLeft\r\n        };\r\n    };\r\n\r\n    window.getAbsoluteHeight = (el) => {\r\n        // Get the DOM Node if you pass in a string\r\n        el = (typeof el === 'string') ? document.querySelector(el) : el;\r\n\r\n        var styles = window.getComputedStyle(el),\r\n            margin = parseFloat(styles['marginTop']) + parseFloat(styles['marginBottom']);\r\n\r\n        return Math.ceil(el.offsetHeight + margin);\r\n    };\r\n\r\n    window.stateCodeToName = {\r\n        'AL': 'Alabama',\r\n        'AK': 'Alaska',\r\n        'AZ': 'Arizona',\r\n        'AR': 'Arkansas',\r\n        'CA': 'California',\r\n        'CO': 'Colorado',\r\n        'CT': 'Connecticut',\r\n        'DE': 'Delaware',\r\n        'DC': 'District of Columbia',\r\n        'FL': 'Florida',\r\n        'GA': 'Georgia',\r\n        'HI': 'Hawaii',\r\n        'ID': 'Idaho',\r\n        'IL': 'Illinois',\r\n        'IN': 'Indiana',\r\n        'IA': 'Iowa',\r\n        'KS': 'Kansas',\r\n        'KY': 'Kentucky',\r\n        'LA': 'Louisiana',\r\n        'ME': 'Maine',\r\n        'MD': 'Maryland',\r\n        'MA': 'Massachusetts',\r\n        'MI': 'Michigan',\r\n        'MN': 'Minnesota',\r\n        'MS': 'Mississippi',\r\n        'MO': 'Missouri',\r\n        'MT': 'Montana',\r\n        'NE': 'Nebraska',\r\n        'NV': 'Nevada',\r\n        'NH': 'New Hampshire',\r\n        'NJ': 'New Jersey',\r\n        'NM': 'New Mexico',\r\n        'NY': 'New York',\r\n        'NC': 'North Carolina',\r\n        'ND': 'North Dakota',\r\n        'OH': 'Ohio',\r\n        'OK': 'Oklahoma',\r\n        'OR': 'Oregon',\r\n        'PW': 'Palau',\r\n        'PA': 'Pennsylvania',\r\n        'RI': 'Rhode Island',\r\n        'SC': 'South Carolina',\r\n        'SD': 'South Dakota',\r\n        'TN': 'Tennessee',\r\n        'TX': 'Texas',\r\n        'UT': 'Utah',\r\n        'VT': 'Vermont',\r\n        'VA': 'Virginia',\r\n        'WA': 'Washington',\r\n        'WV': 'West Virginia',\r\n        'WI': 'Wisconsin',\r\n        'WY': 'Wyoming',\r\n        // US Territories\r\n        'AS': 'American Samoa',\r\n        'GU': 'Guam',\r\n        'MP': 'Northern Mariana Islands',\r\n        'PR': 'Puerto Rico',\r\n        'VI': 'Virgin Islands'\r\n    };\r\n\r\n    window.stateNameToCode = {\r\n        'ALABAMA': 'AL',\r\n        'ALASKA': 'AK',\r\n        'ARIZONA': 'AZ',\r\n        'ARKANSAS': 'AR',\r\n        'CALIFORNIA': 'CA',\r\n        'COLORADO': 'CO',\r\n        'CONNECTICUT': 'CT',\r\n        'DELAWARE': 'DE',\r\n        'DIST OF COL': 'DC',\r\n        'FLORIDA': 'FL',\r\n        'GEORGIA': 'GA',\r\n        'GUAM': 'GU',\r\n        'HAWAII': 'HI',\r\n        'IDAHO': 'ID',\r\n        'ILLINOIS': 'IL',\r\n        'INDIANA': 'IN',\r\n        'IOWA': 'IA',\r\n        'KANSAS': 'KS',\r\n        'KENTUCKY': 'KY',\r\n        'LOUISIANA': 'LA',\r\n        'MAINE': 'ME',\r\n        'MARYLAND': 'MD',\r\n        'MASSACHUSETTS': 'MA',\r\n        'MICHIGAN': 'MI',\r\n        'MINNESOTA': 'MN',\r\n        'MISSISSIPPI': 'MS',\r\n        'MISSOURI': 'MO',\r\n        'MONTANA': 'MT',\r\n        'NEBRASKA': 'NE',\r\n        'NEVADA': 'NV',\r\n        'NEW HAMPSHIRE': 'NH',\r\n        'NEW JERSEY': 'NJ',\r\n        'NEW MEXICO': 'NM',\r\n        'NEW YORK': 'NY',\r\n        'NORTH CAROLINA': 'NC',\r\n        'NORTH DAKOTA': 'ND',\r\n        'OHIO': 'OH',\r\n        'OKLAHOMA': 'OK',\r\n        'OREGON': 'OR',\r\n        'PENNSYLVANIA': 'PA',\r\n        'RHODE ISLAND': 'RI',\r\n        'SOUTH CAROLINA': 'SC',\r\n        'SOUTH DAKOTA': 'SD',\r\n        'TENNESSEE': 'TN',\r\n        'TEXAS': 'TX',\r\n        'UTAH': 'UT',\r\n        'VERMONT': 'VT',\r\n        'VIRGINIA': 'VA',\r\n        'WASHINGTON': 'WA',\r\n        'WEST VIRGINIA': 'WV',\r\n        'WISCONSIN': 'WI',\r\n        'WYOMING': 'WY',\r\n        // US Territories\r\n        'AMERICAN SAMOA': 'AS',\r\n        'GUAM': 'GU',\r\n        'NORTHERN MARIANA ISLANDS': 'MP',\r\n        'PUERTO RICO': 'PR',\r\n        'VIRGIN ISLANDS': 'VI'\r\n    };\r\n\r\n    window.getElementY = (element) => {\r\n        // return window.pageYOffset + document.querySelector(query).getBoundingClientRect().top;\r\n        return window.pageYOffset + element.getBoundingClientRect().top;\r\n    };\r\n\r\n    window.doScrolling = (element, duration) => {\r\n        var startingY = window.pageYOffset,\r\n            elementY = window.getElementY(element),\r\n            // If element is close to page's bottom then window will scroll only to some position above the element.\r\n            targetY = document.body.scrollHeight - elementY < window.innerHeight ? document.body.scrollHeight - window.innerHeight : elementY,\r\n            diff = targetY - startingY,\r\n            // Easing function: easeInOutCubic\r\n            // From: https://gist.github.com/gre/1650294\r\n            easing = function (t) {\r\n                return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\r\n            },\r\n            start;\r\n\r\n        if (!diff) {\r\n            return\r\n        }\r\n\r\n        // Bootstrap our animation - it will get called right before next frame shall be rendered.\r\n        window.requestAnimationFrame(function step (timestamp) {\r\n            if (!start) {\r\n                start = timestamp;\r\n            }\r\n            // Elapsed miliseconds since start of scrolling.\r\n            let time = timestamp - start,\r\n                // Get percent of completion in range [0, 1].\r\n                percent = Math.min(time / duration, 1);\r\n            // Apply the easing.\r\n            // It can cause bad-looking slow frames in browser performance tool, so be careful.\r\n            percent = easing(percent);\r\n\r\n            window.scrollTo(0, startingY + diff * percent);\r\n\r\n            // Proceed with animation as long as we wanted it to.\r\n            if (time < duration) {\r\n                window.requestAnimationFrame(step);\r\n            }\r\n        });\r\n    };\r\n\r\n    window.closest = (el, selector) => {\r\n        var matchesFn;\r\n\r\n        // find vendor prefix\r\n        ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (fn) {\r\n            if (typeof document.body[fn] == 'function') {\r\n                matchesFn = fn;\r\n                return true;\r\n            }\r\n            return false;\r\n        })\r\n\r\n        var parent;\r\n\r\n        // traverse parents\r\n        while (el) {\r\n            parent = el.parentElement;\r\n            if (parent && parent[matchesFn](selector)) {\r\n                return parent;\r\n            }\r\n            el = parent;\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n})();\r\n\r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=f5605a28\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=f5605a28&lang=scss\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n    <div class=\"home\">\r\n\r\n        <FeatureArea />\r\n\r\n        <div class=\"col-10 offset-1\">\r\n            <div class=\"home-charts\">\r\n                <div class=\"row\">\r\n                <div class=\"col-lg-4 tile-container\" id=\"mapChart\">\r\n                    <mapTile name=\"Active Funding by State\" subTitle=\"Select a state to view projects\"  />\r\n                </div>\r\n                <div class=\"col-lg-8 tile-container\" id=\"barChart\">\r\n                    <chartTile name=\"Active Projects by Institute/Center\" subTitle=\"Select a bar to view projects for an Institute/Center\" />\r\n                </div>\r\n                </div>\r\n            </div>\r\n\r\n            <SearchTiles />\r\n        </div>\r\n\r\n\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n// @ is an alias to /src\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport FeatureArea from '@/components/home/FeatureArea.vue'\r\nimport SearchTiles from '@/components/home/SearchTiles.vue'\r\nimport MapTile from '@/components/home/MapTile.vue'\r\nimport ChartTile from '@/components/home/ChartTile.vue'\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'home',\r\n    components: {\r\n        FeatureArea,\r\n        SearchTiles,\r\n        MapTile,\r\n        ChartTile\r\n    },\r\n    data: function () {\r\n        return {\r\n            chartSearchId: null,\r\n            mapSearchId: null\r\n        };\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setFullscreen',\r\n            'setEditSearchResultsFlag',\r\n            'setSearchMode',\r\n            'setSelectedPerson'\r\n        ])\r\n    },\r\n    async created () {\r\n      this.setEditSearchResultsFlag(false);\r\n      this.setFullscreen(false);\r\n\r\n        // if (window.readCookie('searchMode')) {\r\n        //     this.$router.push('/advanced-search');\r\n        //     this.setSearchMode('advanced-search');\r\n        // } else {\r\n        //     this.setSearchMode('');\r\n        // }\r\n    },\r\n    mounted () {\r\n\r\n\r\n        this.setSelectedPerson(null);\r\n        switch (this.$route.path) {\r\n            case '/advanced-search':\r\n            case '/matchmaker':\r\n            case '/publications':\r\n                // document.getElementById('search-tiles').scrollIntoView();\r\n                let target = document.getElementById('search-tiles');\r\n\r\n                setTimeout(() => {\r\n                    window.doScrolling(target, 400);\r\n                }, 500);\r\n\r\n                break;\r\n            default:\r\n                if (!window.isMobile) {\r\n                    document.getElementById('smartSearch').focus();\r\n                }\r\n                break;\r\n        }\r\n\r\n        // reset criteria when going to home page\r\n        this.$store.state.searchCriteria = copyData(this.$store.state.searchCriteriaDefault);\r\n        bus.$emit('update:freeText');\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.home-charts {\r\n  margin-top: 30px;\r\n}\r\n.tile-container {\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 0;\r\n        padding-right: 0;\r\n        margin-left: -5px;\r\n        margin-right: -5px;\r\n        width: calc(100% + 10px);\r\n    }\r\n\r\n    + .tile-container {\r\n        @media screen and (max-width: $screen-sm-max) {\r\n            margin-top: 30px;\r\n        }\r\n    }\r\n}\r\n</style>","<template>\r\n    <div class=\"feature-area-wrapper\">\r\n        <div class=\"feature-area\">\r\n            <div class=\"col-10 offset-1\">\r\n                <div class=\"row\">\r\n\r\n                    <div class=\"col-lg-8 col-md-12 col-sm-12\">\r\n\r\n                        <div class=\"mx-auto mb-3\">\r\n                            <SmartSearch :showTitle=\"true\" :showHelpText=\"true\" fromPage=\"home\" />\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div class=\"preview-note col-lg-4 col-md-12 col-sm-12 mb-3\">\r\n\r\n                        <div class=\"p-3\">\r\n                            <div class=\"title\">Welcome to the NIH RePORTER</div>\r\n                            Each award supported by NIH promotes efforts to seek fundamental knowledge about the nature and behavior of living systems and/or the application of that knowledge to enhance health, lengthen life, and reduce illness and disability.\r\n\r\n                            <div class=\"btn-container row mt-4\">\r\n                                <div class=\"col-12\">\r\n                                    <span class=\"text-start\">\r\n                                        <a href  @click.prevent=\"startTour()\" class=\"feedback\" rel=\"noopener\">Guided Tour</a>\r\n                                    </span>\r\n                                    <span class=\"float-end\"\r\n                                        v-show=\"externalURLs && feedbackURL\">\r\n                                        <a :href=\"feedbackURL\" @click.prevent=\"openFeedback()\"\r\n                                            class=\"feedback\" rel=\"noopener\">Feedback</a>\r\n                                    </span>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <vue3-tutorial name=\"myTour\" :tutorial=\"tutorialSteps\" :open=\"tutorialIsRunning\"></vue3-tutorial>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\nimport SmartSearch from '@/components/searchFields/SmartSearch.vue';\r\nimport breakpoints from '@/shared/breakpoints.utils.js';\r\nimport vue3Tutorial from 'vue3-tutorial';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'FeatureArea',\r\n    components: {\r\n        SmartSearch,\r\n        vue3Tutorial\r\n    },\r\n    data: function () {\r\n        return {\r\n            displayName: 'Quick Search',\r\n            feedbackURL: '',\r\n            tutorialIsRunning: false,\r\n            myOptions: {\r\n\t\t\t\thighlight: true,\r\n                arrowAnimation : false,\r\n\t\t\t\ttexts: {\r\n\t\t\t\t\tfinishButton: 'End Tour',\r\n\t\t\t\t\tpreviousButton: 'Back',\r\n\t\t\t\t\tnextButton: 'Next',\r\n\t\t\t\t\tbuttonStop: 'End Tour'\r\n\t\t\t\t}\r\n\t\t\t},\r\n            tutorialSteps: {\r\n                name: 'Reporter',\r\n                steps: []\r\n            },\r\n            animationTime: 501,\r\n            steps: [],\r\n\t\t\tallStepList: [\r\n                {\r\n\t\t\t\t\tid: 'smartSearchStep',\r\n\t\t\t\t\ttarget: '.smart-search',\r\n\t\t\t\t\ttitle: 'Welcome to NIH RePORTER Quick Search',\r\n\t\t\t\t\tcontent: `Designed around the most frequently searched items, Quick Search automatically queries across multiple fields, returning relevant results for common queries.`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'advancedSearchStep',\r\n\t\t\t\t\ttarget: '#advanced_search',\r\n                    title: 'Advanced Projects Search',\r\n\t\t\t\t\tcontent: `To search precisely using defined data fields, scroll down to search using the most common data fields on the Advanced Projects Search form.`,\r\n                    before: type => new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tif (this.$route.path === \"/advanced-search\" && this.$tours['myTour'].steps.length === 6) {\r\n                            resolve(document.getElementById('btnMiniSearch').click());\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'allSearchFieldsStep',\r\n\t\t\t\t\ttarget: '#advanced_search',\r\n                    title: 'All Search Fields',\r\n\t\t\t\t\tcontent: `Expand the search form to show the full list of available search fields, where you can set up any search possible with RePORTER.`,\r\n\t\t\t\t\tbefore: type => new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tif (this.$route.path !== \"/advanced-search\") {\r\n                            resolve(document.getElementById('btnShowHideForm').click());\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n                    params: {\r\n                        placement: 'top'\r\n                    }\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'mapStep',\r\n\t\t\t\t\ttarget: '#mapChart',\r\n                    title: 'Active Funding by State',\r\n\t\t\t\t\tcontent: `Hover over the map to see the project counts and funding data by state. Click on a state to view the detailed listing of projects.`,\r\n                    params: {\r\n                        placement: 'top'\r\n                    }\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'barStep',\r\n\t\t\t\t\ttarget: '#barChart',\r\n                    title: 'Active Projects by Institute / Center',\r\n\t\t\t\t\tcontent: `Hover over the bar chart to see project counts for the Institute or Center listed. Click on a bar to view the detailed listing of projects for that IC.`,\r\n                    params: {\r\n                        placement: 'top'\r\n                    }\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'myreporterStep',\r\n\t\t\t\t\ttarget: '#user-menu-dd',\r\n                    title: 'MyRePORTER',\r\n\t\t\t\t\tcontent: `Sign In to MyRePORTER to save searches and set email alerts for newly funded projects, new publications, or related news.`,\r\n                    before: type => new Promise((resolve, reject) => {\r\n                        if (this.breakpoints.lt.lg && !this.breakpoints.lg && document.querySelectorAll(\".navbar-toggler.collapsed\").length > 0) {\r\n                            resolve(document.querySelector(\".navbar-toggler\").click());\r\n                        } else {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n            ],\r\n\t\t\tadvancedSteps: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'smartSearchStep',\r\n\t\t\t\t\ttarget: '.smart-search',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\ttitle: 'Welcome to NIH RePORTER Quick Search',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: `Designed around the most frequently searched items, Quick Search automatically queries across multiple fields, returning relevant results for common queries.`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'advancedSearchStep',\r\n\t\t\t\t\ttarget: '#advanced_search',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\ttitle: 'Advanced Projects Search'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: `To search precisely using defined data fields, scroll down to search using the most common data fields on the Advanced Projects Search form.`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'mapStep',\r\n\t\t\t\t\ttarget: '#mapChart',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\ttitle: 'Active Funding by State'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: `Hover over the map to see the project counts and funding data by state. Click on a state to view the detailed listing of projects.`,\r\n                    params: {\r\n                        placement: 'top'\r\n                    }\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'barStep',\r\n\t\t\t\t\ttarget: '#barChart',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\ttitle: 'Active Projects by Institute / Center'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: `Hover over the bar chart to see project counts for the Institute or Center listed. Click on a bar to view the detailed listing of projects for that IC.`,\r\n                    params: {\r\n                        placement: 'top'\r\n                    }\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'myreporterStep',\r\n\t\t\t\t\ttarget: '.btnMyReporter',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\ttitle: 'MyRePORTER'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcontent: `Sign In to MyRePORTER to save searches and set email alerts for newly funded projects, new publications, or related news.`,\r\n                    before: type => new Promise((resolve, reject) => {\r\n                        if (this.breakpoints.lt.lg && !this.breakpoints.lg && document.querySelectorAll(\".navbar-toggler.collapsed\").length > 0) {\r\n                            document.querySelector(\".navbar-toggler\").click();\r\n                            setTimeout(function () {\r\n                                resolve(true);\r\n                            });\r\n                        } else {\r\n\t\t\t\t\t\t\tresolve(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t],\r\n            myCallbacks: {\r\n                onPreviousStep: this.myPrevStepCallback,\r\n                onNextStep: this.myNextStepCallback,\r\n                onFinish: this.myFinishCallback,\r\n                onSkip: this.myFinishCallback\r\n            }\r\n        };\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'externalURLs'\r\n        ]),\r\n        breakpoints: () => breakpoints.screen\r\n    },\r\n    mounted: async function () {\r\n        bus.$on('get:appsettings', () => {\r\n            this.feedbackURL = this.externalURLs['reporter_feedback_url'];\r\n        });\r\n\r\n        this.tutorialIsRunning = false;\r\n    },\r\n    methods: {\r\n        async openFeedback () {\r\n            var id = (new Date()).getTime();\r\n\r\n            window.open(this.feedbackURL, id, \"toolbar=1,scrollbars=1,location=0,statusbar=0,menubar=1,resizable=1,width=900,height=800,left = 250,top =150\");\r\n        },\r\n        startTour () {\r\n\t\t\tif (this.$route.path === \"/advanced-search\") {\r\n                this.tutorialSteps.steps = this.advancedSteps;\r\n            } else {\r\n                this.tutorialSteps.steps = this.allStepList;\r\n            }\r\n\t\t\t//this.$refs['myTour'].start();\r\n            this.tutorialIsRunning = true;\r\n\t\t},\r\n        stepCallback (forwardDirection) {\r\n            var homeTour = this.$tours['myTour'],\r\n                nextPrevStep = forwardDirection ? homeTour.currentStep + 1 : homeTour.currentStep - 1,\r\n                currentTar  = homeTour.steps[nextPrevStep].target,\r\n                tarId = homeTour.steps[nextPrevStep].id,\r\n                sysAppMsgnodes = document.querySelectorAll('.collapse.sysAppMessage'),\r\n                sysAppMsgnodesHt = 0;\r\n\r\n            for (var i = 0; i < sysAppMsgnodes.length; i++) {\r\n                sysAppMsgnodesHt = sysAppMsgnodesHt + sysAppMsgnodes[i].clientHeight\r\n            }\r\n\r\n            if (!forwardDirection && document.querySelector(\".navbar-toggler.not-collapsed\")) {\r\n                document.querySelector(\".navbar-toggler.not-collapsed\").click();\r\n            }\r\n            switch (tarId) {\r\n                case 'advancedSearchStep':\r\n                case 'allSearchFieldsStep':\r\n                        setTimeout(() => {\r\n                            window.scrollTo(0, document.querySelectorAll('.search-tiles')[0].parentElement.offsetTop +  document.querySelector('.feature-area-wrapper').offsetHeight - document.querySelector(\".v-step\").clientHeight + sysAppMsgnodesHt);\r\n                        }, this.animationTime);\r\n                        break;\r\n                case 'mapStep':\r\n                case 'barStep':\r\n                        setTimeout(() => {\r\n                            let sectionHeight = this.breakpoints.lt.lg && !this.breakpoints.lg ?  document.querySelector(currentTar).offsetTop : 0;\r\n\r\n                            window.scrollTo(0, document.querySelector('.home-charts').parentElement.offsetTop + sectionHeight);\r\n                        });\r\n                        break;\r\n                case 'myreporterStep':\r\n                case 'smartSearchStep':\r\n                        setTimeout(() => {\r\n                            window.scrollTo(0, 0);\r\n                        }, this.animationTime);\r\n                        break;\r\n            }\r\n        },\r\n        myPrevStepCallback () {\r\n            this.stepCallback(false);\r\n        },\r\n        myNextStepCallback () {\r\n            this.stepCallback(true);\r\n        },\r\n        myFinishCallback () {\r\n            if (this.breakpoints.lt.lg && !this.breakpoints.lg && document.querySelector(\".navbar-toggler.not-collapsed\")) {\r\n                document.querySelector(\".navbar-toggler.not-collapsed\").click();\r\n            }\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '@/scss/variables.scss';\r\n\r\n$quickSearchMaxWidth: 700px;\r\n\r\n.vue3-tutorial__window-container{\r\n    --vue3-tutorial-step-bg-color: #454d5d;\r\n    --vue3-tutorial-mask-color: rgba(0,0,0,.5)\r\n}\r\n.feature-area {\r\n\r\n    > .container-fluid > .row {\r\n        padding: 0 20px;\r\n    }\r\n}\r\n\r\n.smart-search {\r\n\r\n\r\n    max-width: $quickSearchMaxWidth;\r\n\r\n}\r\n\r\n.preview-note {\r\n    border-radius: 5px;\r\n    background-color: rgba(215, 230, 219, 0.55);\r\n    color: #212529;\r\n    font-weight: 500;\r\n    position: relative;\r\n    overflow: hidden;\r\n\r\n    .title {\r\n        font-size: 19px;\r\n        font-weight: bold;\r\n    }\r\n\r\n\r\n    &:before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 4px;\r\n        background-color: #c0dfc3;\r\n    }\r\n\r\n    .btn-container {\r\n        font-weight: bold;\r\n        .feedback {\r\n            background-color: #E6FCE8;\r\n            text-decoration: none;\r\n            border-radius: 25px;\r\n            color: #2A5D34;\r\n            padding: 5px 15px;\r\n            &:hover,\r\n            &:focus {\r\n                background-color: #2A5D34;\r\n                color: #fff;\r\n                text-decoration: none;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n@media screen and (max-width: $screen-md-max) {\r\n    .feature-area {\r\n        padding: 2em 5px;\r\n        padding-top: calc(2em + #{$header-height});\r\n        .field-help-text {\r\n            position: relative;\r\n        }\r\n    }\r\n\r\n    .smart-search {\r\n        width: 100%;\r\n    }\r\n}\r\n\r\n\r\n.v-tour--active {\r\n\t&:before {\r\n\t\tposition: fixed;\r\n\t\tcontent: '';\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tbackground-color: rgba(0,0,0,0.5);\r\n\t\tz-index: 10;\r\n\t}\r\n\r\n\t.navigation {\r\n\t\t&:before {\r\n\t\t\tposition: fixed;\r\n\t\tcontent: '';\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tbackground-color: rgba(0,0,0,0.5);\r\n\t\tz-index: 10;\r\n\t\t}\r\n\t}\r\n\r\n\t.preview-note, .home, .preview-note, .loading {\r\n\t\tz-index: unset;\r\n\t}\r\n\r\n\t.v-tour__target--highlighted {\r\n\t\tbox-shadow: 0 0 20px #81bbfb;\r\n\t\toutline: 2px solid #9ccbff;\r\n\t}\r\n\r\n    .v-step__content {\r\n        text-align: left;\r\n    }\r\n}\r\n</style>","import { render } from \"./FeatureArea.vue?vue&type=template&id=7fb362c2\"\nimport script from \"./FeatureArea.vue?vue&type=script&lang=js\"\nexport * from \"./FeatureArea.vue?vue&type=script&lang=js\"\n\nimport \"./FeatureArea.vue?vue&type=style&index=0&id=7fb362c2&lang=scss\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n    <div class=\"search-tiles-container\">\r\n        <div class=\"row\">\r\n            <div class=\"search-tiles\" :class=\"{'simple-sizing': simpleSizing}\" ref=\"searchTiles\" id=\"search-tiles\">\r\n                <SearchTile\r\n                    name=\"Advanced Projects Search\"\r\n                    :index=\"0\"\r\n                    :active=\"activeTile === 0\"\r\n                    :tileMode=\"true\"\r\n                    description=\"Search using specific criteria to find <strong>NIH projects</strong> and <strong>funding information</strong>.\"\r\n                    ref=\"tile0\"\r\n                    path=\"\"\r\n                    titleId=\"advanced_search\"\r\n                />\r\n                <!-- :position=\"[0, 0]\" -->\r\n                <SearchTile\r\n                    name=\"Publications Search\"\r\n                    :index=\"1\"\r\n                    :active=\"activeTile === 1\"\r\n                    :tileMode=\"true\"\r\n                    description=\"Find publications associated with extramural or intramural funded projects using PubMed IDs (PMID) or PubMed Central IDs (PMC ID).\"\r\n                    ref=\"tile1\"\r\n                    path=\"publications\"\r\n                    titleId=\"publications_search\"\r\n                />\r\n                <!-- description=\"Search using <strong>PubMed IDs</strong> or <strong>PubMed Central IDs</strong>.\" -->\r\n                <!-- :position=\"[2, 0]\" -->\r\n                <SearchTile\r\n                    name=\"Matchmaker\"\r\n                    :index=\"2\"\r\n                    :active=\"activeTile === 2\"\r\n                    :tileMode=\"true\"\r\n                    description=\"Find potential Program Officials, ICs, and review panels for your research.\"\r\n                    ref=\"tile2\"\r\n                    path=\"matchmaker\"\r\n                    titleId=\"matchmaker_search\"\r\n                />\r\n                <!-- refLink='https://projectreporter.nih.gov/reporter_matchmaker.cfm?source=RPCO&new=1' -->\r\n                <!-- description=\"Search using <strong>abstracts</strong> or other <strong>scientific text</strong>.\" -->\r\n                <!-- :position=\"[2, 1]\" -->\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport SearchTile from '@/components/home/SearchTile.vue'\r\n\r\nexport default {\r\n    name: 'SearchTiles',\r\n    components: {\r\n        SearchTile\r\n    },\r\n    data: function () {\r\n        return {\r\n            simpleSizing: false,\r\n            breakPoint: 1200,\r\n            width: 0,\r\n            height: 0,\r\n            minHeightDefault: 300,\r\n            minHeight: 300,\r\n            activeTile: 0,\r\n            lastActiveTile: 0,\r\n            inactiveTile: 0,\r\n            totalTiles: 3,\r\n            smallTileContentWidth: null,\r\n            largeTileContentWidth: null,\r\n            layout: [\r\n                [0, 0], // Projects Search Position\r\n                [2, 0], // Publications Search Position\r\n                [2, 1]  // Matchmaker Position\r\n            ],\r\n            layoutGrid: [\r\n                [0, null], // x1: [y1, y2]\r\n                [null, null], // x2: [y1, y2]\r\n                [2, 1] // x3: [y1, y2]\r\n            ]\r\n\r\n            // layout: [\r\n            //     [2, 0], // Projects Search Position\r\n            //     [2, 1], // Publications Search Position\r\n            //     [0, 0]  // Matchmaker Position\r\n            // ],\r\n            // layoutGrid: [\r\n            //     [2, null], // x1: [y1, y2]\r\n            //     [null, null], // x2: [y1, y2]\r\n            //     [0, 1] // x3: [y1, y2]\r\n            // ]\r\n\r\n            // displayName: 'Smart Search'\r\n        };\r\n    },\r\n    created () {\r\n        switch (this.$route.path) {\r\n            case '/matchmaker':\r\n                this.activeTile = 2;\r\n                this.layout = [\r\n                    [2, 0], // Projects Search Position\r\n                    [2, 1], // Publications Search Position\r\n                    [0, 0]  // Matchmaker Position\r\n                ];\r\n                this.layoutGrid = [\r\n                    [2, null], // x1: [y1, y2]\r\n                    [null, null], // x2: [y1, y2]\r\n                    [0, 1] // x3: [y1, y2]\r\n                ];\r\n                break;\r\n            case '/publications':\r\n                this.activeTile = 1;\r\n                this.layout = [\r\n                    [2, 0], // Projects Search Position\r\n                    [0, 0], // Publications Search Position\r\n                    [2, 1]  // Matchmaker Position\r\n                ];\r\n                this.layoutGrid = [\r\n                    [1, null], // x1: [y1, y2]\r\n                    [null, null], // x2: [y1, y2]\r\n                    [0, 2] // x3: [y1, y2]\r\n                ];\r\n                break;\r\n        }\r\n    },\r\n    mounted () {\r\n        if (!this.simpleSizing) {\r\n            window.addEventListener('resize', this.resize);\r\n\r\n            // run updateSize twice, as the tile sizing updates parent sizing\r\n            // fix in future if possible to only run once\r\n            this.updateSize();\r\n\r\n            setTimeout(() => {\r\n                this.updateSize();\r\n                // this.$parent.$parent.showFooter = true;\r\n            }, 1);\r\n        }\r\n\r\n        document.addEventListener('keydown', this.handleInputEvent);\r\n\r\n        setTimeout(() => {\r\n            this.$parent.$parent.showFooter = true;\r\n        }, 301);\r\n    },\r\n    destroyed () {\r\n        document.removeEventListener('keydown', this.handleInputEvent);\r\n    },\r\n    methods: {\r\n        resize () {\r\n            this.smallTileContentWidth = null;\r\n            this.largeTileContentWidth = null;\r\n            this.updateSize();\r\n        },\r\n        updateSize () {\r\n            if (this.$refs.searchTiles) {\r\n\r\n\r\n                this.width = this.$refs.searchTiles.offsetWidth;\r\n                // this.height = this.$refs.searchTiles.offsetWidth * .333;\r\n                this.height = this.$refs.searchTiles.offsetWidth * .25;\r\n\r\n                if (this.height < this.minHeight) {\r\n                    this.height = this.minHeight;\r\n                }\r\n\r\n                // this.updateHeight();\r\n            }\r\n\r\n            // console.log(this.height);\r\n            // console.log(this.minHeight);\r\n\r\n            this.$nextTick(() => {\r\n                for (let j = 0; j < this.totalTiles; j++) {\r\n                    if (this.$refs && this.$refs['tile'+j] && this.$refs['tile'+j].sizeAndPosition) {\r\n                        this.$refs['tile'+j].sizeAndPosition();\r\n                    }\r\n                }\r\n            });\r\n        },\r\n\r\n        updateHeight (height) {\r\n            if (this.$refs.searchTiles) {\r\n                let paddingTop = parseInt(window.getComputedStyle(this.$refs.searchTiles).paddingTop),\r\n                    paddingBottom = parseInt(window.getComputedStyle(this.$refs.searchTiles).paddingBottom),\r\n                    heightWhenTilesAreStacking = 0,\r\n                    self = this;\r\n\r\n                setTimeout(() => {\r\n                    if (self.breakPoint > self.$refs.searchTiles.clientWidth) {\r\n                        let tiles = document.querySelectorAll('.search-tile-outer');\r\n                        for (let i = 0; i < tiles.length; i++) {\r\n                            heightWhenTilesAreStacking += parseInt(tiles[i].offsetHeight);\r\n                        }\r\n\r\n                        height = heightWhenTilesAreStacking;\r\n                    }\r\n\r\n                    // self.$refs.searchTiles.style.height = (height + paddingTop + paddingBottom) + 'px';\r\n                    self.$refs.searchTiles.style.minHeight = (height + paddingTop + paddingBottom) + 'px';\r\n                }, 301);\r\n            }\r\n        },\r\n\r\n        getInactiveTileIndex () {\r\n            let i;\r\n\r\n            for (i = 0; i < this.totalTiles; i++) {\r\n                if (this.$refs['tile'+i].index !== this.activeTile && this.$refs['tile'+i].index !== this.lastActiveTile) {\r\n                    return this.$refs['tile'+i].index;\r\n                }\r\n            }\r\n        },\r\n        handleInputEvent (event) {\r\n            let enterOnTile = false;\r\n            if (event.target.classList.value.indexOf('search-tile') !== -1) {\r\n                enterOnTile = true;\r\n            }\r\n            if (event.keyCode === 13 && !enterOnTile) {\r\n                var $this = this;\r\n                // console.log(this.$refs['tile' + this.activeTile].$refs.tileContent);\r\n                setTimeout(() => {\r\n                    if (event.srcElement.id !== 'smartSearch') {\r\n                        if ($this.$refs && $this.$refs['tile' + $this.activeTile] && $this.$refs['tile' + $this.activeTile].$refs.tileContent)\r\n                            $this.$refs['tile' + $this.activeTile].$refs.tileContent.search();\r\n                    }\r\n                }, 601);\r\n            }\r\n        },\r\n\r\n        // shrinkActiveTile () {\r\n        //     let i;\r\n\r\n        //     for (i = 0; i < this.$children.length; i++) {\r\n        //         if (this.$children[i].index === this.activeTile) {\r\n        //             this.$children[i].animate();\r\n        //             this.$children[i].shrinkTile();\r\n        //             this.$children[i].moveTile();\r\n\r\n        //             return false;\r\n        //         }\r\n        //     }\r\n        // },\r\n\r\n        // moveInactiveTile () {\r\n        //     // slide tile which is not active, nor was the previous\r\n        //     // active tile, across the grid without changing size\r\n        //     let i;\r\n\r\n        //     for (i = 0; i < this.$children.length; i++) {\r\n        //         if (this.$children[i].index !== this.activeTile && this.$children[i].index !== this.lastActiveTile) {\r\n        //             this.$children[i].animate();\r\n        //             this.$children[i].moveTile();\r\n\r\n        //             return false;\r\n        //         }\r\n        //     }\r\n        // }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.search-tiles {\r\n    position: relative;\r\n    margin-left: -$tile-spacing;\r\n    margin-right: -$tile-spacing;\r\n    margin-top: -10px;\r\n    margin-bottom: -15px;\r\n    padding: 30px 15px 0px;\r\n    width: calc(100% + (#{$tile-spacing} * 2));\r\n    transition: 0.3s;\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 0px;\r\n        padding-right: 0px;\r\n    }\r\n}\r\n</style>","<template>\r\n    <div class=\"search-tile-outer\" :class=\"{'simple-sizing': simpleSizing}\" :id=\"titleId\">\r\n        <div class=\"search-tile\" ref=\"tile\" tabindex=\"0\" @click=\"clickTile()\" @keyup.enter=\"clickTile()\">\r\n        <!-- <div class=\"search-tile\" ref=\"tile\" tabindex=\"0\" :class=\"{'disabled': index !== 0, 'active': active}\"> -->\r\n            <div class=\"search-tile-inner\" ref=\"tileInner\" tabindex=\"-1\">\r\n                <div class=\"field-title\" :class=\"'title-' + tileClass\" ref=\"fieldTitle\" tabindex=\"-1\">\r\n                    {{name}}\r\n                </div>\r\n                <div class=\"tile-content-wrapper\" tabindex=\"-1\">\r\n                    <component class=\"tile-content\" tabindex=\"-1\" :class=\"!isActive ? 'hide-content' : ''\" :is=\"tileComponent\" ref=\"tileContent\" :style=\"maximizedContentStyle\"></component>\r\n                    <div v-if=\"description\" class=\"tile-description\" :class=\"isActive ? 'hide-content' : ''\"  ref=\"tileMinimizedContent\" :style=\"minimizedContentStyle\">\r\n                        <div v-html=\"description\"></div>\r\n                        <a :href=\"refLink\" v-if=\"refLink\" class=\"tile-link\" target=\"_blank\" title=\"Access legacy version here\">\r\n                            Legacy {{name}} <i class=\"fas fa-chevron-right arrow-right\"></i>\r\n                        </a>\r\n                        <div v-else class=\"tile-link\">\r\n                            Get Started\r\n\t\t\t\t\t\t\t<i class=\"fas fa-chevron-right arrow-right\"></i>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <router-view></router-view>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport AdvancedProjectsSearch from '@/components/home/ProjectsSearch.vue'\r\nimport PublicationsSearch from '@/components/home/PublicationsSearch.vue'\r\nimport Matchmaker from '@/components/home/Matchmaker.vue'\r\n\r\nexport default {\r\n    name: 'SearchTile',\r\n    components: {\r\n        AdvancedProjectsSearch,\r\n        PublicationsSearch,\r\n        Matchmaker\r\n    },\r\n    computed: {\r\n        tileComponent () {\r\n            return this.name.replace(/\\s/g,'');\r\n        },\r\n        tileClass () {\r\n            return this.name.replace(/\\s/g,'-').toLowerCase();\r\n        },\r\n        minimizedContentStyle () {\r\n            return this.$parent.smallTileContentWidth ? 'max-width: ' + this.$parent.smallTileContentWidth + 'px;' : '';\r\n        },\r\n        maximizedContentStyle () {\r\n            return this.$parent.largeTileContentWidth ? 'min-width: ' + this.$parent.largeTileContentWidth + 'px;' : '';\r\n        }\r\n    },\r\n    props: {\r\n        name: {\r\n            required: true\r\n        },\r\n        index: {\r\n            required: true\r\n        },\r\n        description: {\r\n            required: false\r\n        },\r\n        active: {\r\n            required: false\r\n        },\r\n        tileMode: {\r\n            required: true\r\n        },\r\n        refLink: {\r\n            required: false\r\n        },\r\n        path: {\r\n            required: false\r\n        },\r\n        titleId: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            simpleSizing: this.$parent.simpleSizing,\r\n            isActive: this.active,\r\n            width: 0,\r\n            height: 0,\r\n            minHeight: 0,\r\n            smallTilePercent: .25,\r\n            largeTilePercent: .75,\r\n            margin: 15,\r\n            padding: 24,\r\n            position: this.$parent.layout[this.index],\r\n            oppositeX: 0,\r\n            newLastActiveY: 0,\r\n            top: 0,\r\n            left: 0,\r\n            expanded: false,\r\n            defaultDuration: 301\r\n        };\r\n    },\r\n    mounted () {\r\n    },\r\n    methods: {\r\n        sizeAndPosition () {\r\n            this.setSize();\r\n            this.setPosition();\r\n        },\r\n\r\n        setSize () {\r\n            if (this.isActive) {\r\n                this.growTile();\r\n            } else {\r\n                this.shrinkTile();\r\n            }\r\n        },\r\n\r\n        setPosition () {\r\n            var self = this;\r\n\r\n            switch (self.position[0]) { // x\r\n                case 0: // left\r\n                    self.left = self.margin;\r\n                    break;\r\n                case 1: // middle\r\n                    self.left = self.$parent.width * self.smallTilePercent;\r\n                    break;\r\n                case 2: // right\r\n                    self.left = self.$parent.width * self.largeTilePercent;\r\n                    break;\r\n            }\r\n\r\n            switch (self.position[1]) { // y\r\n                case 0: // top\r\n                    self.top = self.margin * 2;\r\n                    break;\r\n                case 1: // bottom\r\n                    self.top = (self.$parent.height * 0.5) + (self.margin * 2);\r\n\r\n                    setTimeout(() => {\r\n                        // get tile above\r\n                        let tileAboveIndex = self.$parent.layoutGrid[self.position[0]][0],\r\n                            tileAbove = self.$parent.$refs['tile' + tileAboveIndex],\r\n                            tileAboveHeight = tileAbove ? tileAbove.getMinimizedContentHeight() : 0;\r\n\r\n                        self.top = tileAboveHeight + (self.margin * 4);\r\n                        self.$el.style.top = self.top + 'px';\r\n\r\n                    }, 1);\r\n                    break;\r\n            }\r\n\r\n\r\n            self.$el.style.top = self.top + 'px';\r\n            self.$el.style.left = self.left + 'px';\r\n\r\n            self.$parent.layout[self.index] = self.position;\r\n            self.$parent.layoutGrid[self.position[0]][self.position[1]] = self.index;\r\n        },\r\n\r\n        animate (duration) {\r\n            if (duration === undefined) {\r\n                duration = this.defaultDuration;\r\n            }\r\n\r\n            // if (this.isActive) {\r\n            //     this.$refs.tile.classList.remove('active');\r\n            // }\r\n\r\n            this.$el.classList.add('animate');\r\n\r\n            setTimeout(() => {\r\n                this.$el.classList.remove('animate');\r\n\r\n                // setTimeout(() => {\r\n                //     if (this.isActive) {\r\n                //         this.$refs.tile.classList.add('active');\r\n                //     }\r\n                // }, 1);\r\n            }, duration);\r\n        },\r\n\r\n        clickTile () {\r\n            let curPath = copyData(this.path);\r\n            if (this.$parent.activeTile !== this.index && this.tileMode) {\r\n                this.$router.push({ path:'/' + curPath}).then(() => {\r\n                // process the updated route params\r\n            });\r\n\r\n                // update which tile is which so we can move them accordingly\r\n                this.$parent.lastActiveTile = this.$parent.activeTile;\r\n                this.$parent.activeTile = this.index;\r\n                this.$parent.inactiveTile = this.$parent.getInactiveTileIndex();\r\n\r\n                // expand this tile\r\n                this.animate();\r\n                this.growTile();\r\n\r\n                // check this tile position and move\r\n                switch (this.position[0]) {\r\n                    case 0:\r\n                        this.oppositeX = 2;\r\n\r\n                        if (this.position[1] !== 0) {\r\n                            this.moveTileAnimated(this.position[0], 0);\r\n                        }\r\n\r\n                        break;\r\n                    case 1:\r\n                        this.oppositeX = null;\r\n                        this.moveTileAnimated(2, 0);\r\n\r\n                        break;\r\n                    case 2:\r\n                        this.oppositeX = 0;\r\n                        this.moveTileAnimated(1, 0);\r\n\r\n                        break;\r\n                }\r\n\r\n                // shrink and move last active tile\r\n                this.$parent.$refs['tile'+this.$parent.lastActiveTile].shrinkTileAnimated();\r\n\r\n                if (this.$parent.layout[this.$parent.lastActiveTile][0] === 0) {\r\n                    // move last active tile if in top left of grid\r\n                    // switching Y as needed\r\n                    this.$parent.$refs['tile'+this.$parent.lastActiveTile].moveTileAnimated(0, this.position[1]);\r\n                } else if (this.$parent.layout[this.$parent.lastActiveTile][0] === 1) {\r\n                    // move last active tile if in center to the right of grid\r\n                    // switching Y as needed\r\n                    this.$parent.$refs['tile'+this.$parent.lastActiveTile].moveTileAnimated(2, this.position[1]);\r\n                }\r\n\r\n                // move inactive tile around\r\n                if (this.position[1] === 0) {\r\n                    // if this tile is on top of grid\r\n                    if (this.$parent.layoutGrid[this.position[0]][1] === this.$parent.inactiveTile) {\r\n                        // if inactive tile is below\r\n                        // slide tile to opposite side of grid\r\n                        this.$parent.$refs['tile'+this.$parent.inactiveTile].moveTileAnimated(this.oppositeX, 1);\r\n                    }\r\n                } else if (this.position[1] === 1) {\r\n                    // if this tile is on bottom of grid\r\n                    if (this.$parent.layoutGrid[this.position[0]][0] === this.$parent.inactiveTile) {\r\n                        // if inactive tile is above\r\n                        // slide tile to opposite side of grid\r\n                        this.$parent.$refs['tile'+this.$parent.inactiveTile].moveTileAnimated(this.oppositeX, 0);\r\n                    }\r\n                }\r\n\r\n                // update active status\r\n                this.$parent.$refs['tile'+this.$parent.lastActiveTile].isActive = false;\r\n                this.$parent.$refs['tile'+this.$parent.inactiveTile].isActive = false;\r\n                this.isActive = true;\r\n\r\n                gtag('event','Click', {\r\n\t\t\t\t\t'event_category': 'Home',\r\n\t\t\t\t\t'event_label': 'Expand Search Tile - ' + this.name,\r\n\t\t\t\t\t'value': 'Expand Search Tile - ' + this.name\r\n\t\t\t\t});\t\r\n            }\r\n        },\r\n\r\n        shrinkTileAnimated () {\r\n            this.animate();\r\n            this.shrinkTile();\r\n        },\r\n\r\n        getMinimizedContentHeight () {\r\n            let titleHeight = window.getAbsoluteHeight(this.$refs.fieldTitle),\r\n                contentHeight = window.getAbsoluteHeight(this.$refs.tileMinimizedContent);\r\n\r\n                return titleHeight + contentHeight + (this.padding * 2);\r\n        },\r\n\r\n        shrinkTile () {\r\n            this.$nextTick(() => {\r\n                this.width = (this.$parent.width * this.smallTilePercent) - this.margin;\r\n                this.minHeight = 0;\r\n\r\n                if (this.$refs && this.$refs.tile) {\r\n                    let minimizedContentHeight = this.getMinimizedContentHeight();\r\n\r\n                    this.height = minimizedContentHeight;\r\n                    this.$refs.tile.style.minHeight = minimizedContentHeight + 'px';\r\n\r\n                    this.$el.classList.remove('active');\r\n                    this.$refs.tile.classList.remove('active');\r\n                }\r\n\r\n                this.updateSize();\r\n\r\n                // revert to mini form when tile is collapsed\r\n                if (this.$refs && this.$refs.tileContent && this.$refs.tileContent.showAllFields != undefined) {\r\n                    setTimeout(() => {\r\n                        this.$refs.tileContent.showAllFields = false;\r\n                    }, this.defaultDuration);\r\n                }\r\n            });\r\n        },\r\n\r\n        getOtherTiles () {\r\n            var tileIndices = [0, 1, 2],\r\n                thisTileIndex = tileIndices.indexOf(this.index);\r\n\r\n            tileIndices.splice(thisTileIndex, 1);\r\n\r\n            return tileIndices;\r\n        },\r\n\r\n        growTile () {\r\n            this.$nextTick(() => {\r\n                if (this.$refs && this.$refs.tileContent && !this.$refs.tileContent.showAllFields) {\r\n                    this.$parent.minHeight = this.getFormHeight();\r\n                }\r\n\r\n                this.width = (this.$parent.width * this.largeTilePercent) - this.margin;\r\n                // this.height = this.$parent.height;\r\n                this.height = this.getFormHeight() + (this.margin * 2);\r\n                // this.minHeight = this.$parent.height - (this.margin * 2);\r\n\r\n                // set min-height after tile has finished animating\r\n                setTimeout(() => {\r\n                    if (this.$refs && this.$refs.tile) {\r\n                        this.$refs.tile.style.minHeight = this.minHeight + 'px';\r\n\r\n                        // set active class to allow fluid resizing\r\n                        // as content changes\r\n                        this.$el.classList.add('active');\r\n                        this.$refs.tile.classList.add('active');\r\n                    }\r\n                }, this.defaultDuration);\r\n\r\n                this.updateSize();\r\n            });\r\n        },\r\n\r\n        getFieldTitleHeight () {\r\n            //return text height + margin bottom\r\n            let fieldTitle = this.$refs.fieldTitle,\r\n                fieldTitleMarginProp = fieldTitle ? window.getComputedStyle(fieldTitle).marginBottom : \"0\",\r\n                // fieldTitleMargin = Number(fieldTitleMarginProp.substring(0, fieldTitleMarginProp.length - 2)),\r\n                fieldTitleMargin = window.pxToNumber(fieldTitleMarginProp),\r\n                fieldTitleFullHeight = (fieldTitle ? (fieldTitle.offsetHeight) : 0) + fieldTitleMargin;\r\n\r\n                return fieldTitleFullHeight;\r\n        },\r\n\r\n        getTilePadding () {\r\n            let tileStyle = this.$refs.tile ? window.getComputedStyle(this.$refs.tile) : null,\r\n                paddingTop = tileStyle ? tileStyle.paddingTop : \"0\",\r\n                paddingBottom = tileStyle ? tileStyle.paddingBottom : \"0\",\r\n                padding = window.pxToNumber(paddingTop) + window.pxToNumber(paddingBottom);\r\n\r\n                return padding;\r\n        },\r\n\r\n        getFormHeight () {\r\n            var tileContentHeight = 0;\r\n\r\n            if (this.$refs.tileContent && this.$refs.tileContent.$e1) {\r\n                tileContentHeight = this.$refs.tileContent.$el.offsetHeight;\r\n            }\r\n            return tileContentHeight + this.getFieldTitleHeight() + this.getTilePadding();\r\n        },\r\n\r\n        toggleFullForm () {\r\n            if (this.isActive) {\r\n                this.$el.classList.remove('active');\r\n                if (this.$refs.tile) {\r\n                    this.$refs.tile.classList.remove('active');\r\n                }\r\n            }\r\n\r\n            if (this.isActive) {\r\n                setTimeout(() => {\r\n                    this.$el.classList.add('active');\r\n                    this.$refs.tile.classList.add('active');\r\n                }, this.defaultDuration);\r\n            }\r\n\r\n            // setTimeout(() => {\r\n            //     this.height = this.getFormHeight();\r\n\r\n            //     if (!this.simpleSizing) {\r\n            //         this.updateSize();\r\n            //     }\r\n\r\n            //     setTimeout(() => {\r\n            //         this.$refs.tileContent.showAllFields = !this.$refs.tileContent.showAllFields;\r\n\r\n            //         // if (this.$refs.tileContent.showAllFields) {\r\n            //         //     this.$parent.minHeight = copyData(this.height);\r\n            //         // } else {\r\n            //         //     this.$parent.minHeight = copyData(this.$parent.minHeightDefault);\r\n            //         // }\r\n\r\n            //         this.animate();\r\n\r\n            //         setTimeout(() => {\r\n            //             this.height = this.getFormHeight();\r\n            //             if (!this.simpleSizing) {\r\n            //                 this.updateSize();\r\n            //             }\r\n\r\n            //             if (this.isActive) {\r\n            //                 setTimeout(() => {\r\n            //                     this.$refs.tile.classList.add('active');\r\n            //                 }, this.defaultDuration);\r\n            //             }\r\n            //         }, 1);\r\n            //     }, 1);\r\n            // }, 1);\r\n\r\n        },\r\n\r\n        // increaseHeight () {\r\n        //     this.height = this.getFormHeight();\r\n\r\n        //     // console.log('new height', this.height);\r\n\r\n        //     this.animate();\r\n        //     setTimeout(() => {\r\n        //         this.updateSize();\r\n        //     }, 1);\r\n        // },\r\n\r\n        // decreaseHeight () {\r\n        //     this.height = this.getFullFormHeight();\r\n\r\n        //     console.log('new height', this.height);\r\n\r\n        //     this.animate();\r\n        //     this.updateSize();\r\n        // },\r\n\r\n\r\n\r\n        updateSize () {\r\n            if (this.width !== 0) {\r\n                this.$el.style.width = this.width + 'px';\r\n            }\r\n\r\n            // if (this.height < this.minHeight) {\r\n            //     this.height = this.minHeight;\r\n            // }\r\n\r\n            this.$el.style.height = this.height + 'px';\r\n            // this.$refs.tile.style.minHeight = this.minHeight + 'px';\r\n\r\n            if (this.isActive) {\r\n                if (this.$refs && this.$refs.tile) {\r\n                    let otherTiles = this.getOtherTiles(),\r\n                        heightOfOtherTiles = 0;\r\n\r\n                    for (let i = 0; i < otherTiles.length; i++) {\r\n                        heightOfOtherTiles += this.$parent.$refs['tile' + otherTiles[i]].getMinimizedContentHeight();\r\n                    }\r\n\r\n                    if (this.height < heightOfOtherTiles) {\r\n                        this.$parent.updateHeight(heightOfOtherTiles + (this.margin * 4));\r\n                    } else {\r\n                        this.$parent.updateHeight(this.height);\r\n                    }\r\n\r\n                    if (this.$parent.largeTileContentWidth !== this.$refs.tileContent.$el.offsetWidth) {\r\n                        this.$parent.largeTileContentWidth = this.$refs.tileContent.$el.offsetWidth;\r\n                    }\r\n\r\n                    setTimeout(() => {\r\n                        this.$el.style.height = null;\r\n                    }, 301);\r\n                }\r\n            } else {\r\n                if ( this.$refs.tileMinimizedContent) {\r\n                    if (this.$parent.smallTileContentWidth !== this.$refs.tileMinimizedContent.offsetWidth) {\r\n                        this.$parent.smallTileContentWidth = this.$refs.tileMinimizedContent.offsetWidth;\r\n                    }\r\n                }\r\n            }\r\n        },\r\n\r\n        clearSize () {\r\n            if (this.width !== 0) {\r\n                this.$el.style.width = '';\r\n            }\r\n\r\n            this.$el.style.height = '';\r\n        },\r\n\r\n        moveTileAnimated (x, y) {\r\n            this.animate();\r\n            this.moveTile(x, y);\r\n        },\r\n\r\n        moveTile (x, y) {\r\n            this.$nextTick(() => {\r\n                this.position[0] = x;\r\n                this.position[1] = y;\r\n\r\n                this.setPosition();\r\n            });\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.search-tile-outer {\r\n    position: absolute;\r\n    padding: $tile-spacing;\r\n\r\n    &.active {\r\n        position: relative;\r\n        margin: -30px 0 0 -15px;\r\n        @media screen and (max-width: $screen-md-max) {\r\n            margin: 0;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &.animate {\r\n        transition: 0.3s;\r\n\r\n        // &,\r\n        // &.search-tile {\r\n        //     transition: 0.3s;\r\n        //     // transition: 0s;\r\n        // }\r\n    }\r\n    @media screen and (max-width: $screen-md-max) {\r\n        // override fancy positioning on mobile\r\n        position: relative;\r\n        top: auto !important;\r\n        left: auto !important;\r\n        bottom: auto !important;\r\n        right: auto !important;\r\n        width: 100% !important;\r\n        height: auto !important;\r\n    }\r\n\r\n    &.simple-sizing {\r\n        position: relative;\r\n        display: block;\r\n        width: 75%;\r\n        float: left;\r\n\r\n        ~ .search-tile-outer {\r\n            width: 25%;\r\n\r\n            @media screen and (max-width: $screen-md-max) and (min-width: $screen-md-min) {\r\n                // override fancy positioning on mobile\r\n                width: 33.4% !important;\r\n            }\r\n        }\r\n        // .search-tile {\r\n        //     width: 25%;\r\n        //     &.active {\r\n        //         width: 75%;\r\n        //     }\r\n        // }\r\n        .tile-content {\r\n            position: static;\r\n            height: auto;\r\n\r\n            &.hide-content {\r\n                position: absolute;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n.search-tile {\r\n    $tile-padding: 24px;\r\n\r\n    padding: $tile-padding * 0.9 $tile-padding;\r\n    background-color: #fff;\r\n    border-radius: $input-radius;\r\n    box-shadow: 0 2px 8px 0px rgba(0,0,0,0.25);\r\n    height: 100%;\r\n    min-height: 194px;\r\n    transition: 0.3s;\r\n    outline: none;\r\n    overflow: hidden;\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &:hover:not(.active),\r\n    &:focus:not(.active) {\r\n        box-shadow: 0 4px 16px 0px rgba(0,0,0,0.45);\r\n    }\r\n\r\n    &.active {\r\n        height: auto;\r\n        min-height: 418px;\r\n        transition: 0s;\r\n        overflow: visible;\r\n        // position: relative;\r\n\r\n        .tile-content {\r\n            position: relative;\r\n        }\r\n\r\n        .tile-description {\r\n            position: absolute;\r\n        }\r\n    }\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 1em;\r\n    color: #212529;\r\n    &:after {\r\n        background-color: $blue;\r\n    }\r\n\r\n    &.title-advanced-projects-search {\r\n        &:after {\r\n            background-color: $green;\r\n        }\r\n    }\r\n    &.title-publications-search {\r\n        &:after {\r\n            background-color: $pink;\r\n        }\r\n    }\r\n    &.title-matchmaker {\r\n        &:after {\r\n            background-color: $orange;\r\n        }\r\n    }\r\n\r\n    a {\r\n        &:hover, &:active, &:focus {\r\n            text-decoration: none;\r\n        }\r\n    }\r\n}\r\n\r\n.tile-content-wrapper {\r\n    position: relative;\r\n    font-size: 16px;\r\n}\r\n\r\n.tile-content {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    padding-left: 0;\r\n    padding-right: 0;\r\n    transition: 0.3s;\r\n}\r\n\r\n.tile-description {\r\n    // margin-top: 8px;\r\n    // font-size: 16px;\r\n    font-weight: 400;\r\n}\r\n\r\n.hide-content {\r\n    opacity: 0;\r\n    pointer-events: none;\r\n    min-width: 0px !important;\r\n    display: none;\r\n}\r\n\r\n</style>","<template>\r\n    <div :class=\"loading ? 'loading' : ''\">\r\n        <!-- Mini Search Form -->\r\n        <div class=\"search-form\" v-if=\"!showAllFields\">\r\n            <div class=\"row\">\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"FiscalYear\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"PI\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"Organization\" />\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"AgencyIC\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"ProjectNumber\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 search-buttons\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"reset()\"\r\n                        v-if=\"!refpage\"\r\n                    >\r\n                        Reset\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"cancel()\"\r\n                        v-if=\"refpage\"\r\n                    >\r\n                        Cancel\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-primary btn-search\"\r\n                        @click.stop=\"search()\"\r\n                        :disabled=\"loading\"\r\n                    >\r\n                        Search\r\n                        <div class=\"loader\" v-if=\"loading\"></div>\r\n                    </button>\r\n                    <field-error\r\n                        v-if=\"serviceError\"\r\n                        :message=\"serviceErrorMessage\"\r\n                        :errorCode=\"serviceError\"\r\n                    />\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <!-- Full Search Form -->\r\n        <div class=\"search-form\" v-if=\"showAllFields\">\r\n            <div\r\n                class=\"col-12 text-end advanced-search\"\r\n            >\r\n                <button\r\n                    type=\"button\"\r\n                    class=\"btn btn-lg btn-outline-secondary ms-2\"\r\n                    @click.stop=\"reset()\"\r\n                    v-if=\"!refpage\"\r\n                >\r\n                    <!-- @keydown.stop.prevent=\"reset()\" -->\r\n                    Reset\r\n                </button>\r\n                <button\r\n                    type=\"button\"\r\n                    class=\"btn btn-lg btn-outline-secondary ms-2\"\r\n                    @click.stop=\"cancel()\"\r\n                    v-if=\"refpage\"\r\n                >\r\n                    Cancel\r\n                </button>\r\n\r\n                <button\r\n                    type=\"button\"\r\n                    class=\"btn btn-lg btn-primary ms-2\"\r\n                    @click.stop=\"search()\"\r\n                    :disabled=\"loading\"\r\n                >\r\n                    Search\r\n                    <div class=\"loader\" v-if=\"loading\"></div>\r\n                </button>\r\n                <field-error\r\n                    v-if=\"serviceError\"\r\n                    :message=\"serviceErrorMessage\"\r\n                    :errorCode=\"serviceError\"\r\n                />\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                    <h4>Researcher and Organization</h4>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"FiscalYear\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"PI\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"Organization\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 search-field-container\">\r\n                    <field name=\"City\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 search-field-container\">\r\n                    <field name=\"State\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 search-field-container\">\r\n                    <field name=\"Country\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 search-field-container\">\r\n                    <field name=\"CongressionalDistrict\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"DepartmentTypes\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"OrganizationTypes\"/>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                    <h4>Text Search</h4>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n\r\n\r\n                <div class=\"col-lg-2 col-md-2 col-sm-12\">\r\n                    <field name=\"Operator\"/>\r\n                </div>\r\n\r\n                <div class=\"col-lg-6 col-md-6 col-sm-12\">\r\n                    <field name=\"SearchText\"/>\r\n                </div>\r\n\r\n                <div class=\"col-lg-4 col-md-4 col-sm-12\">\r\n                    <field name=\"TextSearchField\"/>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                    <h4>Project Details</h4>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"AgencyIC\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"SpendingCategories\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"fundingMechanisms\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"AwardTypes\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 project-number-group\">\r\n                    <field name=\"ProjectNumber\" class=\"project-number-multi\" />\r\n                    <div class=\"row project-number-split\">\r\n                        <div class=\"project-number-or\">OR</div>\r\n                        <div class=\"col-lg-1 col-md-1 col-sm-1 lessPadding char-1\">\r\n                            <field name=\"appl_type_code\" />\r\n                        </div>\r\n                        <div class=\"col-lg-2 col-md-2 col-sm-2 lessPadding char-3\">\r\n                            <field name=\"activity_code\" />\r\n                        </div>\r\n                        <div class=\"col-lg-2 col-md-2 col-sm-2 lessPadding char-2\">\r\n                            <field name=\"ic_code\" />\r\n                        </div>\r\n                        <div class=\"col-lg-3 col-md-3 col-sm-3 lessPadding char-6\">\r\n                            <field name=\"serial_num\" />\r\n                        </div>\r\n                        <div class=\"col-lg-2 col-md-2 col-sm-2 lessPadding char-2\">\r\n                          <field name=\"support_year\" />\r\n                        </div>\r\n                        <div class=\"col-lg-2 col-md-2 col-sm-2 lessPadding char-4\">\r\n                            <field name=\"suffix_code\" />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"ActivityCodes\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"CooperativeAgreement\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"StudySections\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"PO\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"ProjectStartDate\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"ProjectEndDate\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"AwardNoticeDate\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"FOA\"/>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12\">\r\n                    <h4>Additional Filters</h4>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row\">\r\n\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"covid19\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"AwardAmountRange\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12 stackable-fields\">\r\n                    <field name=\"ExcludeSubprojects\"/>\r\n                    <field name=\"outcomesOnly\"/>\r\n                    <field name=\"multiplePIOnly\"/>\r\n                    <field name=\"newlyAddedProjectsOnly\"/>\r\n                </div>\r\n                <div class=\"col-lg-4 col-md-6 col-sm-12\">\r\n                    <field name=\"ARRASearch\"/>\r\n                </div>\r\n            </div>\r\n\r\n            <!-- <div class=\"row justify-content-end\"> -->\r\n                <div class=\"col-12 text-end\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-outline-secondary ms-2\"\r\n                        @click.stop=\"reset()\"\r\n                        v-if=\"!refpage\"\r\n                    >\r\n                        <!-- @keydown.stop.prevent=\"reset()\" -->\r\n                        Reset\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-outline-secondary ms-2\"\r\n                        @click.stop=\"cancel()\"\r\n                        v-if=\"refpage\"\r\n                    >\r\n                        Cancel\r\n                    </button>\r\n\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-primary ms-2\"\r\n                        @click.stop=\"search()\"\r\n                        :disabled=\"loading\"\r\n                    >\r\n                        Search\r\n                        <div class=\"loader\" v-if=\"loading\"></div>\r\n                    </button>\r\n                    <field-error\r\n                        v-if=\"serviceError\"\r\n                        :message=\"serviceErrorMessage\"\r\n                        :errorCode=\"serviceError\"\r\n                    />\r\n                </div>\r\n            <!-- </div> -->\r\n        </div>\r\n\r\n        <div class=\"row\" v-if=\"!showAllFields\">\r\n            <div class=\"col-12 text-center\">\r\n\r\n                <button class=\"w-100 alert alert-light show-more-banner\" id=\"btnShowHideForm\" role=\"alert\" @click.stop=\"toggleAllFields\">\r\n                    <strong class=\"text-primary\">Looking for additional search fields?</strong>\r\n                    <span class=\"ms-3\">\r\n                        Click here to view All Search Fields\r\n                        <span class=\"ms-3\"><i class=\"fas fa-expand-alt\"></i></span>\r\n                    </span>\r\n                </button>\r\n\r\n            </div>\r\n        </div>\r\n        <div class=\"row\" v-else>\r\n            <div class=\"col-md-12 search-utility-buttons\">\r\n                <button class=\"btn btn-sm btn-light btn-show-all-fields\" @click.stop=\"toggleAllFields\" id=\"btnMiniSearch\">\r\n                    <span v-show=\"showAllFields\"><i class=\"fas fa-compress-alt\"></i></span> <!-- Workaround for FA, use NPM version of FA instead -->\r\n                    <span v-show=\"!showAllFields\"><i class=\"fas fa-expand-alt\"></i></span>\r\n                    {{ showAllFields ? 'Mini Search' : 'All Search Fields' }}\r\n                </button>\r\n            </div>\r\n            <!-- <div class=\"col-md-12\">\r\n                Data as of {{lastRefreshed}}\r\n            </div> -->\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport Field from '@/components/searchFields/Field.vue';\r\nimport FieldError from '@/components/searchFields/FieldError.vue'\r\nimport globalMixins from '@/globalMixins';\r\n// import MultiSelect from '@/components/searchFields/MultiSelect.vue';\r\n// import InputText from '@/components/searchFields/InputText.vue';\r\n\r\n// import FiscalYear from '@/components/searchFields/FiscalYear.vue';\r\n// import AgencyIC from '@/components/searchFields/AgencyIC.vue';\r\n\r\nimport QueryDetailsForm from '@/components/QueryDetailsForm.vue';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'ProjectsSearch',\r\n    mixins: [globalMixins],\r\n    components: {\r\n        Field,\r\n        FieldError,\r\n        QueryDetailsForm\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchFieldErrors',\r\n            'editSearchResults',\r\n            'searchFacetCriteria',\r\n            'editSearchCriteria',\r\n            'searchType',\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    props: {\r\n        refpage: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            showAllFields: false,\r\n            parsedCriteria: null,\r\n            loading: false,\r\n            criteria: null,\r\n            sharedSpec: window.searchFieldSpecs,\r\n            serviceErrorMessage: '',\r\n            serviceError: null,\r\n            // lastRefreshed: window.getPreviousMonday(1)\r\n        };\r\n    },\r\n    created () {\r\n        if (this.$route.path === '/advanced-search') {\r\n            this.showAllFields = true;\r\n            this.setSearchMode('advanced-search');\r\n        }\r\n\r\n        var criteria = window.parseCriteria(this.$store.state.searchCriteria, {});\r\n\r\n        // reset existing search criteria when user is on home page search form\r\n        if (this.$store.state.editSearchResults) {\r\n            this.setEditSearchCriteria(null);\r\n        }\r\n\r\n        this.criteria = criteria;\r\n        this.parsedCriteria = window.stringifySearchCriteriaFields(criteria, {isEditCriteria: true});\r\n\r\n        bus.$on('load:advance-search', () => {\r\n            if (!this.showAllFields) {\r\n                this.toggleAllFields();\r\n            }\r\n        });\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setSearchMeta',\r\n            'setSearchResults',\r\n            'setEditSearchResultsFlag',\r\n            'setSearchMode',\r\n            'setSearchType',\r\n            'setSearchFieldErrors',\r\n            'setCurrentQueryDetailsAction',\r\n            'setEditSearchCriteria'\r\n        ]),\r\n        // handleInputEvent (event) {\r\n        //     let SmartSearchText = this.$store.state.searchCriteria.smart_search_text;\r\n\r\n        //     if (event.keyCode === 13) {\r\n        //         if (SmartSearchText === '' || SmartSearchText === null || SmartSearchText === undefined) {\r\n        //             if (event.target && event.target.classList && !event.target.classList.contains('btn-clear') && !event.target.classList.contains('multiselect__remove_all') && !event.target.classList.contains('multiselect__tag__remove') && !event.target.classList.contains('btn-show-all-fields')) {\r\n        //                 event.preventDefault();\r\n\r\n        //                 //submit search\r\n        //                 this.search();\r\n        //             }\r\n        //         }\r\n        //     }\r\n        // },\r\n        // parseCriteria (criteria) {\r\n        //     // parse search criteria to not include children\r\n        //     // if parent is selected\r\n        //     let newCriteria = {};\r\n\r\n        //     for (let field in criteria) {\r\n        //         if (typeof criteria[field] !== 'string') {\r\n        //             // setup each multiselect field\r\n        //             if (criteria[field].length !== 0) {\r\n        //                 newCriteria[field] = [];\r\n        //             }\r\n\r\n        //             if (typeof criteria[field][0] === 'string') {\r\n        //                 newCriteria[field] = copyData(criteria[field]);\r\n        //             } else if (typeof criteria[field][0] === 'object') {\r\n        //                 for (let i = 0; i < criteria[field].length; i++) {\r\n        //                     let isParentSelected = false;\r\n\r\n        //                     // console.log('value', criteria[field][i].value);\r\n        //                     // console.log('parent', criteria[field][i].parent_value);\r\n\r\n        //                     if (criteria[field][i].parent_value) {\r\n        //                         isParentSelected = criteria[field].some((item) => {\r\n        //                             // console.log('item', item.value);\r\n        //                             // console.log(item.value === criteria[field][i].parent_value);\r\n        //                             return item.value === criteria[field][i].parent_value;\r\n        //                         });\r\n        //                     }\r\n\r\n        //                     // console.log('isParentSelected', isParentSelected);\r\n\r\n        //                     // only add value to parsed criteria if\r\n        //                     // its parent value is not selected\r\n        //                     if (!isParentSelected) {\r\n        //                         newCriteria[field].push(criteria[field][i]);\r\n        //                     }\r\n        //                 }\r\n\r\n        //                 // TODO: use field specific delimiter in future\r\n        //                 // newCriteria[field] = newCriteria[field].join(';');\r\n        //             }\r\n        //         } else if (field.toLowerCase().indexOf('__field_text') === -1) {\r\n        //             // if name contains 'field_text' do not pass in search\r\n        //             if (criteria[field]) {\r\n        //                 // only pass field if it has content\r\n        //                 newCriteria[field] = copyData(criteria[field]);\r\n        //             }\r\n        //         }\r\n        //     }\r\n\r\n        //     return newCriteria;\r\n        // },\r\n\r\n        // stringifySearchCriteriaFields (criteria) {\r\n        //     var stringifiedCriteria = {};\r\n\r\n        //     for (let field in criteria) {\r\n        //         if (typeof criteria[field] !== 'string') {\r\n        //             if (criteria[field].length !== 0) {\r\n        //                 stringifiedCriteria[field] = [];\r\n        //             }\r\n\r\n        //             if (typeof criteria[field][0] === 'string') {\r\n        //                 stringifiedCriteria[field] = criteria[field].join(';');\r\n        //             } else if (typeof criteria[field][0] === 'object') {\r\n\r\n        //                 for (let i = 0; i < criteria[field].length; i++) {\r\n        //                     if (criteria[field][i].value) {\r\n        //                         stringifiedCriteria[field].push(criteria[field][i].value);\r\n        //                     }\r\n        //                 }\r\n\r\n        //                 // TODO: use field specific delimiter in future\r\n        //                 stringifiedCriteria[field] = stringifiedCriteria[field].join(';');\r\n        //             }\r\n        //         } else if (field.toLowerCase().indexOf('__field_text') === -1) {\r\n        //             // if name contains 'field_text' do not pass in search\r\n        //             if (criteria[field]) {\r\n        //                 // only pass field if it has content\r\n        //                 stringifiedCriteria[field] = criteria[field];\r\n        //             }\r\n        //         }\r\n        //     }\r\n\r\n        //     return stringifiedCriteria;\r\n        // },\r\n\r\n        reset () {\r\n            //TODO: use actions/mutators....do not edit state directly from components.\r\n            this.$store.state.searchCriteria = copyData(this.$store.state.searchCriteriaDefault);\r\n            for (let field in this.searchFieldErrors) {\r\n                this.setSearchFieldErrors({\r\n                    field: field\r\n                });\r\n            }\r\n\r\n            //TODO: use actions/mutators....do not edit state directly from components.\r\n            if (!(Object.keys(this.$store.state.editSearchCriteria).length === 0 && this.$store.state.editSearchCriteria.constructor === Object)) {\r\n                this.$store.state.editSearchCriteria = copyData(this.$store.state.searchCriteriaDefault);\r\n            }\r\n\r\n            bus.$emit('reset');\r\n\r\n            this.serviceError = null;\r\n\t\t\t\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t'event_label': 'Projects Search - Reset',\r\n\t\t\t\t'value': 'Projects Search - Reset'\r\n\t\t\t});\t\r\n        },\r\n\r\n        cancel () {\r\n            this.$parent.showCriteria = false;\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Results',\r\n\t\t\t\t'event_label': 'Projects Search Results - Cancel',\r\n\t\t\t\t'value': 'Projects Search Results - Cancel'\r\n\t\t\t});\t\r\n        },\r\n\r\n        clear () {\r\n            this.setSearchCriteria(null);\r\n            this.serviceError = null;\r\n\t\t\t\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t'event_label': 'Projects Search - Clear',\r\n\t\t\t\t'value': 'Projects Search - Clear'\r\n\t\t\t});\t\r\n        },\r\n\r\n        toggleAllFields () {\r\n            if (this.$parent.toggleFullForm) {\r\n                this.$parent.toggleFullForm();\r\n            }\r\n\r\n            if (this.showAllFields) {\r\n                this.$router.push('/');\r\n                this.setSearchMode('');\r\n                // window.createCookie('searchMode', '', 1);\r\n                window.sessionStorage.setItem('searchMode', '');\r\n\t\t\t\tgtag('event','Click', {\r\n\t\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t\t'event_label':'Projects Search - Hide Fields',\r\n\t\t\t\t\t'value': 'Projects Search - Hide Fields'\r\n\t\t\t\t});\t\r\n            } else {\r\n                this.setEditSearchCriteria(null);\r\n                this.$router.push('/advanced-search');\r\n                this.setSearchMode('advanced-search');\r\n                // window.createCookie('searchMode', 'advanced-search', 1);\r\n                window.sessionStorage.setItem('advanced-search', '');\r\n\t\t\t\tgtag('event','Click', {\r\n\t\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t\t'event_label': 'Projects Search - Show All Fields',\r\n\t\t\t\t\t'value': 'Projects Search - Show All Fields'\r\n\t\t\t\t});\t\r\n            }\r\n\r\n            this.showAllFields = !this.showAllFields;\r\n        },\r\n\r\n        showHideFields () {\r\n            var fieldContainers = this.$el.getElementsByClassName('search-field-container');\r\n\r\n            if (!this.showAllFields) {\r\n                for (let i = 0; i < fieldContainers.length; i++) {\r\n                    let container = fieldContainers[i],\r\n                        field = container.getElementsByClassName('search-field')[0];\r\n\r\n                    setTimeout(() => {\r\n                        let openHeight = field.offsetHeight;\r\n\r\n                        // field.style.position = 'absolute';\r\n                        field.classList.add('transition');\r\n\r\n                        container.style.height = '0px';\r\n                        container.style.transition = '0.3s';\r\n                        container.style.overflow = 'hidden';\r\n\r\n                        setTimeout(() => {\r\n                            container.style.height = openHeight + 'px';\r\n\r\n                            setTimeout(() => {\r\n                                container.style.transition = '';\r\n                                container.style.overflow = '';\r\n                                // field.style.position = '';\r\n                                field.classList.remove('transition');\r\n                                // container.style.height = '';\r\n                            }, 3000);\r\n                        }, 1);\r\n                    }, 1);\r\n                    // });\r\n                }\r\n            } else {\r\n                for (let i = 0; i < fieldContainers.length; i++) {\r\n                    let container = fieldContainers[i],\r\n                        field = container.getElementsByClassName('search-field')[0];\r\n\r\n                    this.$nextTick(() => {\r\n                        // console.log(field);\r\n                        // console.log('offsetHeight', field.offsetHeight);\r\n\r\n                        // let openHeight = field.offsetHeight;\r\n                        // field.style.position = 'absolute';\r\n                        field.classList.add('transition');\r\n\r\n                        container.style.transition = '0.3s';\r\n                        container.style.height = '0px';\r\n                        container.style.overflow = 'hidden';\r\n                        // setTimeout(() => {\r\n                        //     container.style.height = openHeight + '0px';\r\n                        setTimeout(() => {\r\n                            // container.style.height = '';\r\n                            container.style.transition = '';\r\n                            container.style.overflow = '';\r\n                            // field.style.position = '';\r\n                            field.classList.remove('transition');\r\n                        }, 3000);\r\n                        // }, 1);\r\n                    });\r\n                }\r\n            }\r\n        },\r\n\r\n        formHasErrors () {\r\n            for (let field in this.searchFieldErrors) {\r\n                if (this.searchFieldErrors[field].preventSearch) {\r\n                    return true;\r\n                }\r\n            }\r\n\r\n            return false;\r\n        },\r\n\r\n        search () {\r\n            if (this.searchCriteria['smart_search_text']) {\r\n                this.searchCriteria['smart_search_text'] = '';\r\n            }\r\n            if (this.searchCriteria['matchmaker_text']) {\r\n                this.searchCriteria['matchmaker_text'] = '';\r\n            }\r\n            if (this.searchCriteria['publications_text']) {\r\n                this.searchCriteria['publications_text'] = '';\r\n            }\r\n\r\n            var parsedCriteria = window.parseCriteria(this.searchCriteria, {isEditCriteria: false, isSubmitForm: true}),\r\n                criteria = window.stringifySearchCriteriaFields(parsedCriteria, {});\r\n\r\n            this.serviceError = null;\r\n\r\n            if (!this.formHasErrors()) {\r\n\t\t\t\tgtag('event','Click', {\r\n\t\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t\t'event_label': 'Projects Search - Submit',\r\n\t\t\t\t\t'value': 'Projects Search - Submit'\r\n\t\t\t\t});\t\r\n\r\n                //remove the currentQueryDetails when doing a new search...\r\n                this.setCurrentQueryDetailsAction(null);\r\n\r\n                this.loading = true;\r\n\r\n                this.setEditSearchResultsFlag(false);\r\n                this.setEditSearchCriteria(null);\r\n                \r\n                this.setSearchType('Advanced');\r\n                this.clearSearchResults({resetFacets: true});\r\n                this.getProjectSearchResults(false, this.searchResults);\r\n            } else {\r\n                console.error('form validation error');\r\n            }\r\n\t\t\t\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t'event_label': 'Projects Search - Submit',\r\n\t\t\t\t'value': 'Projects Search - Submit'\r\n\t\t\t});\t\t\t\t\t\r\n        },\r\n\r\n        searchResults (data) {\r\n            this.loading = false;\r\n\r\n            if (data && data.status && data.status !== 200) {\r\n                if (!data.results) {\r\n                    this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n                    return false;\r\n                }\r\n            } else if (!data) {\r\n                this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n            } else {\r\n                if (data.meta && data.results) {\r\n                    var url = '/search/';\r\n                    this.setSearchMeta(data.meta);\r\n                    this.setSearchResults(data.results);\r\n\r\n                    // default to Project results\r\n                    url += data.meta.search_id + '/projects';//?searchMode=' + this.searchType;\r\n\r\n                    if (this.$parent.sortField) {\r\n                        url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                    }\r\n                    this.$router.push(url);\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import '@/scss/variables.scss';\r\n@import 'node_modules/bootstrap/scss/_mixins';\r\n\r\n.loader {\r\n    display: inline-block;\r\n    position: relative;\r\n    vertical-align: middle;\r\n    width: 4em;\r\n    height: 4em;\r\n    top: -2px;\r\n    left: 0;\r\n    margin-left: 0.5em;\r\n    border-width: 2px;\r\n    border-top-color: rgba(255, 255, 255, 0.25);\r\n    border-right-color: rgba(255, 255, 255, 0.25);\r\n    border-bottom-color: rgba(255, 255, 255, 0.25);\r\n    border-left-color: rgba(255, 255, 255, 1);\r\n}\r\n\r\n.search-field {\r\n    transition: 0.3s;\r\n}\r\n\r\n.loading {\r\n    .search-field {\r\n        opacity: 0.5;\r\n    }\r\n}\r\n\r\n.lessPadding {\r\n    padding: 0 2px;\r\n}\r\n\r\n.hidden {\r\n    opacity: 0;\r\n    // visibility: hidden;\r\n}\r\n\r\n.hidden-absolute {\r\n    position: absolute;\r\n    opacity: 0;\r\n    // visibility: hidden;\r\n}\r\n\r\n.animate {\r\n    transition: 0.3s;\r\n}\r\n\r\n// .search-form {\r\n// }\r\n\r\n.search-field-container {\r\n    position: relative;\r\n}\r\n\r\n.alert-light {\r\n    span {\r\n        color: $grey-med;\r\n    }\r\n}\r\n// .search-buttons {\r\n//     font-size: 18px;\r\n//     margin-top: 0;\r\n//     margin-top: 1.5em;\r\n//     margin-bottom: 1.5em;\r\n//     &.advanced-search {\r\n//         margin-top: 0;\r\n//         margin-bottom: 0;\r\n//         &.search-buttons-top {\r\n//             @media screen and (min-width: $screen-sm) {\r\n//                 margin-top: -42px;\r\n//             }\r\n//         }\r\n//     }\r\n//     .btn {\r\n//         padding-left: 0;\r\n//         padding-right: 0;\r\n//         + .btn {\r\n//             margin-left: 0.75em;\r\n//         }\r\n//     }\r\n// }\r\n\r\n.search-utility-buttons {\r\n    text-align: center;\r\n    margin-top: 10px;\r\n}\r\n\r\n// .btn-clear {\r\n//     width: calc(45% - 0.75em);\r\n// }\r\n\r\n// .btn-search {\r\n//     width: 55%;\r\n\r\n//     &:disabled {\r\n//         opacity: 1;\r\n//     }\r\n// }\r\n\r\n.btn-primary {\r\n    // background-color: $green-dark;\r\n\r\n    @include button-variant($green-dark, $green-dark);\r\n}\r\n\r\n.btn-round {\r\n    @include button-variant($green-light, $green-light);\r\n    color: $green-dark;\r\n\r\n    min-width: calc(33% - #{$grid-gutter-width * 0.5});\r\n}\r\n\r\n\r\n.fade-enter-active, .fade-leave-active {\r\n  transition: opacity .5s;\r\n}\r\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\r\n  opacity: 0;\r\n}\r\n\r\n\r\n/* Enter and leave animations can use different */\r\n/* durations and timing functions.              */\r\n.slide-fade-enter-active {\r\n  transition: all .3s ease;\r\n}\r\n.slide-fade-leave-active {\r\n  transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);\r\n}\r\n.slide-fade-enter, .slide-fade-leave-to\r\n/* .slide-fade-leave-active below version 2.1.8 */ {\r\n  transform: translateY(10px);\r\n  opacity: 0;\r\n}\r\n\r\n/* Enter and leave animations can use different */\r\n/* durations and timing functions.              */\r\n.absolute-fade-fade-enter-active {\r\n  transition: all .3s ease;\r\n  position: absolute;\r\n}\r\n.absolute-fade-fade-leave-active {\r\n  transition: all .3s cubic-bezier(1.0, 0.5, 0.8, 1.0);\r\n}\r\n.absolute-fade-fade-enter, .absolute-fade-fade-leave-to\r\n/* .absolute-fade-fade-leave-active below version 2.1.8 */ {\r\n  transform: translateY(10px);\r\n  opacity: 0;\r\n}\r\n\r\n.show-more-banner:hover {\r\n    border: 1px solid $primary;\r\n    cursor: pointer;\r\n    // color: green;\r\n    background-color: #F0F0F0;\r\n}\r\n\r\n//https://css-tricks.com/snippets/css/shake-css-keyframe-animation/\r\n@keyframes shake {\r\n  10%, 90% {\r\n    transform: translate3d(-1px, 0, 0);\r\n  }\r\n\r\n  20%, 80% {\r\n    transform: translate3d(2px, 0, 0);\r\n  }\r\n\r\n  30%, 50%, 70% {\r\n    transform: translate3d(-4px, 0, 0);\r\n  }\r\n\r\n  40%, 60% {\r\n    transform: translate3d(4px, 0, 0);\r\n  }\r\n}\r\n\r\n.show-more-banner:hover {\r\n  animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;\r\n  transform: translate3d(0, 0, 0);\r\n//   backface-visibility: hidden;\r\n//   perspective: 1000px;\r\n}\r\n\r\n</style>\r\n","import { render } from \"./ProjectsSearch.vue?vue&type=template&id=a28160d6&scoped=true\"\nimport script from \"./ProjectsSearch.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsSearch.vue?vue&type=script&lang=js\"\n\nimport \"./ProjectsSearch.vue?vue&type=style&index=0&id=a28160d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a28160d6\"]])\n\nexport default __exports__","<template>\r\n    <div :class=\"loading ? 'loading' : ''\">\r\n        <div class=\"search-form\" id=\"pub_search_form\">\r\n            <div class=\"row\">\r\n                <div class=\"col-md-9 col-sm-12\">\r\n                    <field name=\"PublicationsText\" ref=\"publicationsText\"/>\r\n                </div>\r\n                <div class=\"col-md-3 col-sm-12\">\r\n                    <field name=\"PublicationsField\"/>\r\n                </div>\r\n            </div>\r\n             <div class=\"row\">\r\n                <div class=\"col-md-4 search-buttons offset-md-8\">\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"reset()\"\r\n                        v-if=\"!refpage\"\r\n                    >\r\n                        Reset\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"cancel()\"\r\n                        v-if=\"refpage\"\r\n                    >\r\n                        Cancel\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-primary btn-search\"\r\n                        @click.stop=\"search()\"\r\n                        :disabled=\"loading\"\r\n                    >\r\n                        Search\r\n                        <div class=\"loader\" v-if=\"loading\"></div>\r\n                    </button>\r\n                    <field-error\r\n                        v-if=\"serviceError\"\r\n                        :message=\"serviceErrorMessage\"\r\n                        :errorCode=\"serviceError\"\r\n                    />\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n// import SmartSearch from '@/components/searchFields/SmartSearch.vue'\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport Field from '@/components/searchFields/Field.vue';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport globalMixins from '@/globalMixins';\r\n\r\nexport default {\r\n    name: 'PublicationsSearch',\r\n    mixins: [globalMixins],\r\n    components: {\r\n        Field,\r\n        FieldError\r\n        // SmartSearch\r\n    },\r\n    props: {\r\n        refpage: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            loading: false,\r\n            serviceErrorMessage: '',\r\n            serviceError: null,\r\n            id: 'publications_text'\r\n        };\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n          'searchCriteria',\r\n          'externalURLs'\r\n        ])\r\n    },\r\n    mounted () {\r\n\r\n        this.initEvents();\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setEditSearchResultsFlag',\r\n            'setSearchMeta',\r\n            'setPublicationResults',\r\n            'setSearchFieldErrors'\r\n        ]),\r\n        initEvents () {\r\n            var inputControl = document.querySelectorAll(\"#pub_search_form textarea\")[0];\r\n            inputControl.addEventListener('keydown', this.handleInputEvent);\r\n            inputControl.addEventListener('paste', (event) => {\r\n                this.handleInputEvent(event);\r\n\t\t\t\t\r\n\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Paste - ' + this.title,\r\n\t\t\t\t\t'value': this.title\r\n\t\t\t\t});\t\r\n            });\r\n        },\r\n        handleInputEvent (event) {\r\n             var $this = this,\r\n                tempDomEle = document.createElement('div'),\r\n                tempChilds,\r\n                refinedText = '';\r\n\r\n            setTimeout(function () {\r\n                tempDomEle.innerHTML = copyData($this.$store.state.searchCriteria[$this.id].replace(\"onerror\", \"\"));\r\n                tempChilds = tempDomEle.childNodes;\r\n                for (let i = 0; i <tempChilds.length; i++) {\r\n                    if (tempChilds[i].nodeType !== 1) {\r\n                        refinedText += (tempChilds[i].textContent);\r\n                    }\r\n                }\r\n                $this.$store.state.searchCriteria[$this.id] = refinedText;\r\n\r\n                // if press enter search!\r\n                if (event.keyCode === 13) {\r\n                    $this.search();\r\n                }\r\n            }, 1);\r\n        },\r\n        formHasErrors () {\r\n            for (let field in this.searchFieldErrors) {\r\n                if (this.searchFieldErrors[field].preventSearch) {\r\n                    return true;\r\n                }\r\n            }\r\n\r\n            return false;\r\n        },\r\n        search () {\r\n            let thisID = this.id;\r\n\r\n            if (this.searchCriteria['smart_search_text']) {\r\n                this.searchCriteria['smart_search_text'] = '';\r\n            }\r\n            if (this.searchCriteria['matchmaker_text']) {\r\n                this.searchCriteria['matchmaker_text'] = '';\r\n            }\r\n            if (this.searchCriteria['publications_field'] === 'pmc_id') {\r\n                this.$store.state.searchCriteria[thisID] = this.$store.state.searchCriteria[thisID].replace(/PMC/ig,'');\r\n            }\r\n\r\n            if ((thisID && this.$store.state.searchCriteria[thisID] && this.$store.state.searchCriteria[thisID].length === 0) || !thisID || !this.$store.state.searchCriteria[thisID]) {\r\n                if (!this.$store.state.searchFieldErrors[thisID]) {\r\n                   this.$store.state.searchFieldErrors[thisID] = '';\r\n                }\r\n                this.setSearchFieldErrors({\r\n                    field: thisID,\r\n                    message: 'Please enter PMID or PMC ID to search',\r\n                    preventSearch: true\r\n                });\r\n            } else if (thisID && this.$store.state.searchCriteria[thisID] && this.$store.state.searchCriteria[thisID].length < 3) {\r\n                this.setSearchFieldErrors({\r\n                    field: thisID,\r\n                    message: 'Please enter at least 3 characters to search',\r\n                    preventSearch: true\r\n                });\r\n            } else {\r\n                var parsedCriteria = window.parseCriteria(this.searchCriteria, {isEditCriteria: false, isSubmitForm: true}),\r\n                    criteria = window.stringifySearchCriteriaFields(parsedCriteria, {});\r\n\r\n                if (!this.formHasErrors()) {\r\n\t\t\t\t\tgtag('event', 'Click', {\r\n\t\t\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t\t\t'event_label': 'Publications Search - Submit',\r\n\t\t\t\t\t\t'value': 'Publications Search - Submit'\r\n\t\t\t\t\t});\t\r\n\t\t\t\t\t\r\n                    this.loading = true;\r\n\r\n                    this.setEditSearchResultsFlag(false);\r\n                    this.setSearchType('Advanced');\r\n\r\n                    this.clearSearchResults({resetFacets: true});\r\n\r\n                    this.getPublicationSearchResults(false, this.handleSearchResults);\r\n                } else {\r\n                    console.error('form validation error');\r\n                }\r\n            }\r\n        },\r\n        handleSearchResults (data) {\r\n            this.loading = false;\r\n\r\n            if (!data || (data && data.status && data.status !== 200)) {\r\n                if (data && data.status === 204) {\r\n                    this.serviceErrorMessage = 'No publications found.';\r\n                    this.serviceError = 'Please try again with different PMIDs or PMC IDs';\r\n                } else if (data && data.status === 400) {\r\n                    this.serviceErrorMessage = 'Too many PMIDs or PMCIDs.';\r\n                    this.serviceError = 'Please try again with up to 1000 PMIDs or PMC IDs';\r\n                }\r\n                else {\r\n                    this.serviceErrorMessage = 'Unknown error.';\r\n                    this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n                }\r\n\r\n                return false;\r\n            } else {\r\n                if (data && data.meta && data.results) {\r\n                    var url = '/publications/';\r\n                    this.setSearchMeta(data.meta);\r\n                    this.setPublicationResults(data);\r\n\r\n                    url += data.meta.search_id + '';\r\n\r\n                    if (this.$parent.sortField) {\r\n                        url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                    }\r\n                    this.$router.push(url);\r\n                }\r\n            }\r\n        },\r\n        reset () {\r\n            this.serviceError = null;\r\n            this.$refs.publicationsText.$refs.field.reset();\r\n            this.$refs.publicationsText.$refs.field.$refs.input.focus();\r\n\r\n\t\t\tgtag('event', 'Click', {\r\n\t\t\t\t'event_category': 'Publications Search Home',\r\n\t\t\t\t'event_label': 'Publications Search - Reset',\r\n\t\t\t\t'value': 'Publications Search - Reset'\r\n\t\t\t});\t\r\n        },\r\n        cancel () {\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import '@/scss/variables.scss';\r\n@import 'node_modules/bootstrap/scss/_mixins';\r\n\r\n.loader {\r\n    display: inline-block;\r\n    position: relative;\r\n    vertical-align: middle;\r\n    width: 4em;\r\n    height: 4em;\r\n    top: -2px;\r\n    left: 0;\r\n    margin-left: 0.5em;\r\n    border-width: 2px;\r\n    border-top-color: rgba(255, 255, 255, 0.25);\r\n    border-right-color: rgba(255, 255, 255, 0.25);\r\n    border-bottom-color: rgba(255, 255, 255, 0.25);\r\n    border-left-color: rgba(255, 255, 255, 1);\r\n}\r\n\r\n.btn-primary {\r\n    @include button-variant($pink-dark, $pink-dark);\r\n}\r\n</style>\r\n","import { render } from \"./PublicationsSearch.vue?vue&type=template&id=632250e8&scoped=true\"\nimport script from \"./PublicationsSearch.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationsSearch.vue?vue&type=script&lang=js\"\n\nimport \"./PublicationsSearch.vue?vue&type=style&index=0&id=632250e8&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-632250e8\"]])\n\nexport default __exports__","<template>\r\n    <div :class=\"loading ? 'loading' : ''\">\r\n        <div class=\"search-form\">\r\n            <div class=\"row\">\r\n                <div class=\"col-md-9 col-sm-12\">\r\n                    <field name=\"MatchmakerText\" ref=\"matchmakerText\"/>\r\n                </div>\r\n                <div class=\"col-md-3 col-sm-12\">\r\n                    <field name=\"MatchmakerField\"/>\r\n                </div>\r\n                <div\r\n                    class=\"col-md-4 search-buttons offset-md-8\"\r\n                >\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"reset()\"\r\n                        v-if=\"!refpage\"\r\n                    >\r\n                        <!-- @keydown.stop.prevent=\"reset()\" -->\r\n                        Reset\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-secondary btn-clear\"\r\n                        @click.stop=\"cancel()\"\r\n                        v-if=\"refpage\"\r\n                    >\r\n                        Cancel\r\n                    </button>\r\n                    <button\r\n                        type=\"button\"\r\n                        class=\"btn btn-lg btn-primary btn-search\"\r\n                        @click.stop=\"search()\"\r\n                        :disabled=\"loading\"\r\n                    >\r\n                        Search\r\n                        <div class=\"loader\" v-if=\"loading\"></div>\r\n                    </button>\r\n                    <field-error\r\n                        v-if=\"serviceError\"\r\n                        :message=\"serviceErrorMessage\"\r\n                        :errorCode=\"serviceError\"\r\n                    />\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport Field from '@/components/searchFields/Field.vue';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport globalMixins from '@/globalMixins';\r\nimport { HttpStatusCode } from 'axios';\r\n\r\nexport default {\r\n    name: 'Matchmaker',\r\n    mixins: [globalMixins],\r\n    components: {\r\n        Field,\r\n        FieldError\r\n    },\r\n    props: {\r\n        refpage: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            loading: false,\r\n            serviceErrorMessage: null,\r\n            serviceErrorMessageText: 'No concepts found.',\r\n            serviceErrorMessageDetails: 'Please try again using text containing scientific concepts from the NIH RCDC Thesaurus.',\r\n            serviceError: null\r\n        };\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchFieldErrors',\r\n            'matchmakerFacetCriteria',\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    watch: {\r\n        'searchCriteria.matchmaker_field': function (val, oldVal) {\r\n            this.serviceError = null;\r\n        }\r\n    },\r\n    mounted () {\r\n\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setMatchmakerResults',\r\n            'setMatchmakerFacetCriteria',\r\n            'setSearchResults',\r\n            'setSearchMode',\r\n       //     'setSearchType',\r\n            'setMatchmakerPOResults'\r\n        ]),\r\n        formHasErrors () {\r\n            for (let field in this.searchFieldErrors) {\r\n                if (this.searchFieldErrors[field].preventSearch) {\r\n                    return true;\r\n                }\r\n            }\r\n\r\n            return false;\r\n        },\r\n        handleSearchResults (data) {\r\n            this.loading = false;\r\n\r\n          if (!data || (data && data.status && data.status !== HttpStatusCode.Ok)) {\r\n                if (data && data.status === HttpStatusCode.NoContent) { \r\n                    this.serviceErrorMessage = this.serviceErrorMessageText;\r\n                    this.serviceError = this.serviceErrorMessageDetails;\r\n                }\r\n                else {\r\n                    this.serviceErrorMessage = \"\";\r\n                    this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n                }\r\n\r\n                return false;\r\n            } else {\r\n                if (data && data.meta && data.results) {\r\n                    var url = '/matchmaker/';\r\n                    this.setSearchMeta(data.meta);\r\n                    this.setMatchmakerResults(data);\r\n\r\n                    // default to Project results\r\n                    url += data.meta.search_id + '/projects';\r\n\r\n                    localStorage.setItem('matchmakerSearchText' + data.meta.search_id, this.searchCriteria.matchmaker_text);\r\n\r\n                    // console.log(this.searchCriteria.matchmaker_text);\r\n                    // console.log(localStorage.getItem('matchmakerSearchText' + data.meta.search_id));\r\n\r\n                    if (this.$parent.sortField) {\r\n                        url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                    }\r\n                    this.$router.push(url);\r\n                }\r\n                // var url = '/matchmaker/results';\r\n\r\n                // this.setMatchmakerResults(data.results);\r\n\r\n                // if (this.$parent.sortField) {\r\n                //     url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                // }\r\n                // this.$router.push(url);\r\n            }\r\n        },\r\n        handlePOResults (data) {\r\n            this.loading = false;\r\n\r\n            if (data && data.status && data.status !== HttpStatusCode.Ok) {\r\n                if (data && data.status === HttpStatusCode.NoContent) { \r\n                    this.serviceErrorMessage = this.serviceErrorMessageText;\r\n                    this.serviceError = this.serviceErrorMessageDetails;\r\n                }\r\n                else {\r\n                    this.serviceErrorMessage = \"\";\r\n                    this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n                }\r\n                return false;\r\n            } else {\r\n                if (data && data.meta && data.results) {\r\n                    var url = '/matchmaker/';\r\n                    this.setSearchMeta(data.meta);\r\n                    this.setMatchmakerPOResults(data);\r\n\r\n                    // default to Project results\r\n                    url += data.meta.search_id + '/POs';\r\n\r\n                    localStorage.setItem('matchmakerSearchText' + data.meta.search_id, this.searchCriteria.matchmaker_text);\r\n\r\n                    // console.log(this.searchCriteria.matchmaker_text);\r\n                    // console.log(localStorage.getItem('matchmakerSearchText' + data.meta.search_id));\r\n\r\n                    if (this.$parent.sortField) {\r\n                        url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                    }\r\n                    this.$router.push(url);\r\n                }\r\n                // var url = '/matchmaker/results';\r\n\r\n                // this.setMatchmakerResults(data.results);\r\n\r\n                // if (this.$parent.sortField) {\r\n                //     url += '&sort_field=' + this.$parent.sortField + '&sort_order=' + this.$parent.sortOrder;\r\n                // }\r\n                // this.$router.push(url);\r\n            }\r\n        },\r\n        search () {\r\n            if (this.searchCriteria['smart_search_text']) {\r\n                this.searchCriteria['smart_search_text'] = '';\r\n            }\r\n            if (this.searchCriteria['publications_text']) {\r\n                this.searchCriteria['publications_text'] = '';\r\n            }\r\n            // this.matchmakerFacetCriteria['is_active_projects'] = true;\r\n            // this.setMatchmakerFacetCriteria();\r\n\r\n            // console.log(this.matchmakerFacetCriteria['is_active_projects']);\r\n\r\n            // window.firstLoadFacets = {\r\n            //     is_active_projects: true,\r\n            //     fiscal_years: ['ap']\r\n            // };\r\n\r\n            var parsedCriteria = window.parseCriteria(this.searchCriteria, {isEditCriteria: false, isSubmitForm: true}),\r\n                criteria = window.stringifySearchCriteriaFields(parsedCriteria, {});\r\n\r\n            if (!this.formHasErrors()) {\r\n\t\t\t\tgtag('event', 'Click', {\r\n\t\t\t\t\t'event_category': this.refpage ? 'Search Results' : 'Home',\r\n\t\t\t\t\t'event_label': 'Matchmaker Search - Submit',\r\n\t\t\t\t\t'value': 'Matchmaker Search - Submit'\r\n\t\t\t\t});\t\r\n\r\n                this.loading = true;\r\n\r\n                this.setEditSearchResultsFlag(false);\r\n           //     this.setSearchType('Advanced');\r\n\r\n                // this.setSearchType('Matchmaker');\r\n                this.clearSearchResults({resetFacets: true});\r\n                if (this.searchCriteria.matchmaker_field === 'po') {\r\n                    this.getMatchmakerPOResults(false, true, this.handlePOResults);\r\n                } else {\r\n                    this.getMatchmakerSearchResults(false, true, this.handleSearchResults);\r\n                }\r\n                // this.getProjectSearchResults(false, this.searchResults);\r\n            } else {\r\n                console.error('form validation error');\r\n            }\r\n        },\r\n        reset () {\r\n            this.serviceError = null;\r\n            this.$refs.matchmakerText.$refs.field.reset();\r\n            this.$refs.matchmakerText.$refs.field.$refs.input.focus();\r\n\t\t\tgtag('event', 'Click', {\r\n\t\t\t\t'event_category': 'Matchmaker Home',\r\n\t\t\t\t'event_label': 'Matchmaker search - Reset',\r\n\t\t\t\t'value': 'Matchmaker search - Reset'\r\n\t\t\t});\t\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import '@/scss/variables.scss';\r\n@import 'node_modules/bootstrap/scss/_mixins';\r\n\r\n.loader {\r\n    display: inline-block;\r\n    position: relative;\r\n    vertical-align: middle;\r\n    width: 4em;\r\n    height: 4em;\r\n    top: -2px;\r\n    left: 0;\r\n    margin-left: 0.5em;\r\n    border-width: 2px;\r\n    border-top-color: rgba(255, 255, 255, 0.25);\r\n    border-right-color: rgba(255, 255, 255, 0.25);\r\n    border-bottom-color: rgba(255, 255, 255, 0.25);\r\n    border-left-color: rgba(255, 255, 255, 1);\r\n}\r\n\r\n.btn-primary {\r\n    // background-color: $green-dark;\r\n\r\n    @include button-variant($orange-dark, $orange-dark);\r\n}\r\n</style>","import { render } from \"./Matchmaker.vue?vue&type=template&id=a036b158&scoped=true\"\nimport script from \"./Matchmaker.vue?vue&type=script&lang=js\"\nexport * from \"./Matchmaker.vue?vue&type=script&lang=js\"\n\nimport \"./Matchmaker.vue?vue&type=style&index=0&id=a036b158&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a036b158\"]])\n\nexport default __exports__","import { render } from \"./SearchTile.vue?vue&type=template&id=4a47be6c&scoped=true\"\nimport script from \"./SearchTile.vue?vue&type=script&lang=js\"\nexport * from \"./SearchTile.vue?vue&type=script&lang=js\"\n\nimport \"./SearchTile.vue?vue&type=style&index=0&id=4a47be6c&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4a47be6c\"]])\n\nexport default __exports__","import { render } from \"./SearchTiles.vue?vue&type=template&id=cabecec4&scoped=true\"\nimport script from \"./SearchTiles.vue?vue&type=script&lang=js\"\nexport * from \"./SearchTiles.vue?vue&type=script&lang=js\"\n\nimport \"./SearchTiles.vue?vue&type=style&index=0&id=cabecec4&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cabecec4\"]])\n\nexport default __exports__","<template>\r\n    <!-- <div class=\"search-tile-outer\"> -->\r\n        <!--<div class=\"search-tile\" ref=\"tile\" tabindex=\"0\" @click=\"clickTile()\" @keyup.enter=\"clickTile()\">-->\r\n        <div class=\"tile\" ref=\"tile\">\r\n            <div class=\"search-tile-inner\" ref=\"tileInner\">\r\n                <div class=\"field-title\" ref=\"fieldTitle\">\r\n                    <!-- <a :href=\"refLink\" v-if=\"refLink\" target=\"_blank\" title=\"Access legacy version here\">{{name}}</a> -->\r\n                    <!-- <template v-else>{{name}}</template> -->\r\n                    {{name}}\r\n                    <span v-if=\"subTitle\" class=\"sub-title\">{{subTitle}}</span>\r\n                </div>\r\n                <div class=\"tile-content-wrapper\">\r\n                    <div v-if=\"loading\" class=\"loading\"><div class=\"loader-bg\"></div><span class=\"loader\">Loading...</span></div>\r\n                    <div class=\"tile-chart\" ref=\"eChartsDOM\" v-if=\"!serviceError\"></div>\r\n                    <div class=\"field-error-message error-large\" v-if=\"serviceError\">\r\n                        Unable to load map data\r\n                        <div class=\"error-code\">\r\n                        {{serviceError}}\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    <!-- </div> -->\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport * as echarts from 'echarts';\r\nimport globalMixins from '@/globalMixins';\r\nexport default {\r\n    name: 'MapTile',\r\n    components: {\r\n    },\r\n    mixins: [globalMixins],\r\n    computed: {\r\n        tileComponent () {\r\n            return this.name.replace(/\\s/g,'');\r\n        },\r\n        tileClass () {\r\n            return this.name.replace(/\\s/g,'-').toLowerCase();\r\n        },\r\n        ...mapGetters([\r\n            'homePageMapData',\r\n            'externalURLs',\r\n            'homeMapSearchId'\r\n        ])\r\n    },\r\n    props: {\r\n        name: {\r\n            required: true\r\n        },\r\n        subTitle: {\r\n            required: false\r\n        },\r\n        description: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            init: false,\r\n            isActive: this.active,\r\n            loading: true,\r\n            width: 0,\r\n            height: 0,\r\n            minHeight: 0,\r\n            baseMinHeight: 0,\r\n            smallTilePercent: .25,\r\n            largeTilePercent: .75,\r\n            margin: 15,\r\n            oppositeX: 0,\r\n            newLastActiveY: 0,\r\n            top: 0,\r\n            left: 0,\r\n            expanded: false,\r\n            defaultDuration: 301,\r\n            eChart: null,\r\n            animate: true,\r\n            resizeTimeout: null,\r\n            serviceError: null,\r\n            // searchParams: {\r\n            //     search_type: \"Advanced\",\r\n            //     facet_filters: {\r\n            //         fiscal_years: [],\r\n            //         org_names: [],\r\n            //         agencies: [],\r\n            //         states: [],\r\n            //         countries: [],\r\n            //         principal_investigators: []\r\n            //     },\r\n            //     summarized_by: \"Agency\",\r\n            //     plotted_by: \"count\",\r\n            //     limit_count: 100,\r\n            //     criteria: {\r\n            //         fiscal_years: \"\",\r\n            //         // is_agency_admin: true,\r\n            //         // agencies: \"NIH\"\r\n            //     },\r\n            //     search_id: this.searchId\r\n            // }\r\n            geoData: null,\r\n            mapData: null,\r\n            heatMapMinValue: 0,\r\n            heatMapMaxValue: 0,\r\n            searchParam: {\r\n                search_id: null,\r\n                // facet_filters: null,\r\n                // view_by: 'Organizations',\r\n                map_filters: {\r\n                    states: [],\r\n                    countries: ['UNITED STATES'],\r\n                    cong_dists: []\r\n                },\r\n                home_page_map: true,\r\n            },\r\n            stateCodeToName: window.stateCodeToName,\r\n            stateNameToCode: window.stateNameToCode,\r\n        };\r\n    },\r\n    mounted () {\r\n        this.eChartsInit();\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setCurrentQueryDetailsAction',\r\n            'setSearchFacetData',\r\n            'setSearchMeta',\r\n            'setSearchCriteria',\r\n            'setSearchResults',\r\n            'setHomePageMapData',\r\n            'setSearchType',\r\n            'setHomeMapSearchId'\r\n        ]),\r\n        eChartsInit () {\r\n            let processClick = (event, name) => {\r\n\r\n                    let stateCode = window.stateNameToCode[name.toUpperCase()];\r\n\r\n                    if (event.ctrlKey || event.metaKey) {\r\n                        let routeData = this.$router.resolve({\r\n                            path: '/search/' + this.homeMapSearchId + '/projects/map',\r\n                            query: {\r\n                                states: stateCode\r\n                            }\r\n                        });\r\n                        window.open(routeData.href, '_blank');\r\n                    } else {\r\n                        this.setSearchMeta(null);\r\n                        this.setSearchResults(null);\r\n                        this.setSearchCriteria(null);\r\n                        this.setEditSearchCriteria(null);\r\n                        this.setSearchFacetData(null);\r\n                        this.setSearchType('Advanced');\r\n                        this.clearSearchResults({resetFacets: true});\r\n                        this.setCurrentQueryDetailsAction(null);\r\n\r\n                        window.firstLoadFacets = {\r\n                            states: [stateCode]\r\n                        };\r\n                        this.$nextTick(() => {\r\n                            console.log(this.homeMapSearchId);\r\n                            this.$router.push({\r\n                                path: '/search/' + this.homeMapSearchId + '/projects/map',\r\n                                query: {\r\n                                    states: stateCode\r\n                                }\r\n                            });\r\n                        });\r\n                    }\r\n                };\r\n\r\n            this.eChart = echarts.init(this.$refs.eChartsDOM);\r\n\r\n            this.eChart.on('click', (params) => {\r\n                if (params && params.name) {\r\n                    processClick(params.event.event, params.name);\r\n                }\r\n            });\r\n\r\n            window.addEventListener('resize', () => {\r\n                this.resizeChart();\r\n            });\r\n\r\n            // if (!this.homePageMapData) {\r\n            //     this.mapData = this.homePageMapData;\r\n            // }\r\n\r\n            window.getJSON({\r\n                url: '/data/geo-usa.json',\r\n                // callback: this.eChartsBuild\r\n                callback: this.setGeoDataAndGetChartData\r\n                // callback: this.getChartData\r\n            });\r\n\r\n            this.inti = true;\r\n        },\r\n        setGeoDataAndGetChartData (geoData) {\r\n            this.geoData = geoData;\r\n\r\n            if (!this.homePageMapData) {\r\n                this.getChartData();\r\n            } else {\r\n                this.eChartsBuild();\r\n            }\r\n        },\r\n        getChartData () {\r\n            window.getMapData(this.searchParam, this.parseData, this.eChartsBuild, 'DataByCountry');\r\n        },\r\n        parseData (data, callback) {\r\n\r\n            if (!data.results) {\r\n                this.serviceError = this.externalURLs.reporter_project_search_error_message;\r\n                this.loading = false;\r\n\r\n                return false;\r\n            }\r\n\r\n            this.setHomeMapSearchId(data.meta.search_id)\r\n            let states = data.results[0].states,\r\n                state,\r\n                territoriesToExclude = [\r\n                    'AS',\r\n                    'VI',\r\n                    'GU',\r\n                    // 'PR',\r\n                    // 'DC'\r\n                ];\r\n\r\n\r\n\r\n            this.heatMapMinValue = data.results[0].projects_funding_amount;\r\n            this.heatMapMaxValue = 0;\r\n\r\n            this.mapData = [];\r\n\r\n            for (let i = 0; i < states.length; i++) {\r\n                state = states[i];\r\n\r\n                // console.log(d[d.indexOf(this.stateCodeToName[state.code])], this.stateCodeToName[state.code], this.stateCodeToName[state.code] === d[d.indexOf(this.stateCodeToName[state.code])]);\r\n\r\n                if (territoriesToExclude.indexOf(state.code) === -1 && this.stateCodeToName[state.code]) {\r\n                    // console.log(this.stateCodeToName[state.code]);\r\n                    this.mapData.push({\r\n                        name: this.stateCodeToName[state.code],\r\n                        value: state.projects_funding_amount,\r\n                        projects: state.projects_count,\r\n                    });\r\n\r\n                    if (state.projects_funding_amount < this.heatMapMinValue) {\r\n                        this.heatMapMinValue = state.projects_funding_amount;\r\n                    }\r\n\r\n                    if (state.projects_funding_amount > this.heatMapMaxValue) {\r\n                        this.heatMapMaxValue = state.projects_funding_amount;\r\n                    }\r\n\r\n                // } else {\r\n                    // console.log(d[d.indexOf(this.stateCodeToName[state.code])]);\r\n                }\r\n            }\r\n\r\n            this.setHomePageMapData({\r\n                heatMapMinValue: this.heatMapMinValue,\r\n                heatMapMaxValue: this.heatMapMaxValue,\r\n                mapData: this.mapData\r\n            });\r\n\r\n            if (callback) {\r\n                callback();\r\n            }\r\n        },\r\n        resizeChart () {\r\n            if (this.animate) {\r\n                this.eChart.setOption({\r\n                    animation: false\r\n                });\r\n            }\r\n\r\n            try {\r\n                this.eChart.resize();\r\n            } catch (er) {\r\n                \r\n            }\r\n\r\n            if (this.resizeTimeout) {\r\n                clearTimeout(this.resizeTimeout);\r\n            }\r\n\r\n            this.resizeTimeout = setTimeout(() => {\r\n                this.animate = true;\r\n\r\n                this.eChart.setOption({\r\n                    animation: true\r\n                });\r\n            }, 300);\r\n        },\r\n        eChartsBuild () {\r\n            this.loading = false;\r\n            // console.log(geoData);\r\n            echarts.registerMap('USA', this.geoData, {\r\n                Alaska: {\r\n                    left: -126,\r\n                    top: 22,\r\n                    width: 15,\r\n                    height: 9\r\n                },\r\n                Hawaii: {\r\n                    left: -110,\r\n                    top: 24,\r\n                    width: 4.956631\r\n                },\r\n                'Puerto Rico': {\r\n                    left: -72,\r\n                    top: 24,\r\n                    // use actual size\r\n                    width: 1.643082\r\n                }\r\n            });\r\n\r\n            var mapSettings = {\r\n                    stateNameColor: '#000',\r\n                    stateBorderColor: '#fff',\r\n                    stateBackgroundColor: 'rgb(247, 245, 241)',\r\n                    stateBackgroundColorOnHover: '#FAECAF',\r\n                    stateBorderColorOnHover: '#FBA803',\r\n                    stateBorderWidth: 1,\r\n                    stateBorderWidthOnHover: 2\r\n                },\r\n                option = {\r\n                    tooltip: {\r\n                        confine: true,\r\n                        trigger: 'item',\r\n                        showDelay: 0,\r\n                        transitionDuration: 0.3,\r\n                        formatter: function (params) {\r\n                            let tooltipContent = '<strong>' + params.name + '</strong><br>' + 'Projects: ' + window.filters.addCommas(params.data.projects) + '<br>Funding: ' + window.filters.formatCurrency(params.value);\r\n\r\n                            return tooltipContent;\r\n                        }\r\n                    },\r\n                    visualMap: {\r\n                        show: false,\r\n                        left: 'right',\r\n                        min: this.homePageMapData.heatMapMinValue,\r\n                        max: this.homePageMapData.heatMapMaxValue,\r\n                        inRange: {\r\n                            color: ['#a8e8b6', '#59b6bc', '#3fa6bd', '#3fa6bd', '#0081bf', '#0081bf', '#0067aa', '#0067aa', '#003884']\r\n                            // color: ['#a8e8b6', '#59b6bc', '#3fa6bd', '#0081bf', '#0067aa', '#003884']\r\n                        },\r\n                        text:['High','Low'],\r\n                        // calculable: true\r\n                    },\r\n                    toolbox: {\r\n                        show: false\r\n                    },\r\n                    series: [\r\n                        {\r\n                            // name: 'USA PopEstimates',\r\n                            type: 'map',\r\n                            roam: false,\r\n                            map: 'USA',\r\n                            // itemStyle:{\r\n                            //     emphasis:{label:{show:true}}\r\n                            // },\r\n                            zoom: 1.2,\r\n                            // scaleLimit: {\r\n                            //     min: 1.2,\r\n                            //     max: 1.2\r\n                            // },\r\n                            label: {\r\n                                show: false\r\n                            },\r\n                            itemStyle: {\r\n                                areaColor: mapSettings.stateBackgroundColor,\r\n                                borderColor: mapSettings.stateBorderColor,\r\n                                borderWidth: mapSettings.stateBorderWidth\r\n                            },\r\n                            emphasis: {\r\n                                itemStyle: {\r\n                                    areaColor: mapSettings.stateBackgroundColorOnHover,\r\n                                    borderColor: mapSettings.stateBorderColorOnHover,\r\n                                    borderWidth: mapSettings.stateBorderWidthOnHover\r\n                                },\r\n                                label: {\r\n                                    show: false\r\n                                }\r\n                            },\r\n                            // textFixed: {\r\n                            //     Alaska: [20, -20]\r\n                            // },\r\n                            data: this.homePageMapData.mapData,\r\n                            // data:[\r\n                            //     {name: 'Alabama', value: 4822023},\r\n                            //     {name: 'Alaska', value: 731449},\r\n                            //     {name: 'Arizona', value: 6553255},\r\n                            //     {name: 'Arkansas', value: 2949131},\r\n                            //     {name: 'California', value: 38041430},\r\n                            //     {name: 'Colorado', value: 5187582},\r\n                            //     {name: 'Connecticut', value: 3590347},\r\n                            //     {name: 'Delaware', value: 917092},\r\n                            //     {name: 'District of Columbia', value: 632323},\r\n                            //     {name: 'Florida', value: 19317568},\r\n                            //     {name: 'Georgia', value: 9919945},\r\n                            //     {name: 'Hawaii', value: 1392313},\r\n                            //     {name: 'Idaho', value: 1595728},\r\n                            //     {name: 'Illinois', value: 12875255},\r\n                            //     {name: 'Indiana', value: 6537334},\r\n                            //     {name: 'Iowa', value: 3074186},\r\n                            //     {name: 'Kansas', value: 2885905},\r\n                            //     {name: 'Kentucky', value: 4380415},\r\n                            //     {name: 'Louisiana', value: 4601893},\r\n                            //     {name: 'Maine', value: 1329192},\r\n                            //     {name: 'Maryland', value: 5884563},\r\n                            //     {name: 'Massachusetts', value: 6646144},\r\n                            //     {name: 'Michigan', value: 9883360},\r\n                            //     {name: 'Minnesota', value: 5379139},\r\n                            //     {name: 'Mississippi', value: 2984926},\r\n                            //     {name: 'Missouri', value: 6021988},\r\n                            //     {name: 'Montana', value: 1005141},\r\n                            //     {name: 'Nebraska', value: 1855525},\r\n                            //     {name: 'Nevada', value: 2758931},\r\n                            //     {name: 'New Hampshire', value: 1320718},\r\n                            //     {name: 'New Jersey', value: 8864590},\r\n                            //     {name: 'New Mexico', value: 2085538},\r\n                            //     {name: 'New York', value: 19570261},\r\n                            //     {name: 'North Carolina', value: 9752073},\r\n                            //     {name: 'North Dakota', value: 699628},\r\n                            //     {name: 'Ohio', value: 11544225},\r\n                            //     {name: 'Oklahoma', value: 3814820},\r\n                            //     {name: 'Oregon', value: 3899353},\r\n                            //     {name: 'Pennsylvania', value: 12763536},\r\n                            //     {name: 'Rhode Island', value: 1050292},\r\n                            //     {name: 'South Carolina', value: 4723723},\r\n                            //     {name: 'South Dakota', value: 833354},\r\n                            //     {name: 'Tennessee', value: 6456243},\r\n                            //     {name: 'Texas', value: 26059203},\r\n                            //     {name: 'Utah', value: 2855287},\r\n                            //     {name: 'Vermont', value: 626011},\r\n                            //     {name: 'Virginia', value: 8185867},\r\n                            //     {name: 'Washington', value: 6897012},\r\n                            //     {name: 'West Virginia', value: 1855413},\r\n                            //     {name: 'Wisconsin', value: 5726398},\r\n                            //     {name: 'Wyoming', value: 576412},\r\n                            //     {name: 'Puerto Rico', value: 3667084}\r\n                            // ]\r\n                        }\r\n                    ]\r\n                };\r\n\r\n            this.eChart.setOption(option);\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.tile {\r\n    position: relative;\r\n    overflow: hidden;\r\n\r\n    &:before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 4px;\r\n        background-color: $teal-charts;\r\n    }\r\n}\r\n\r\n.sub-title {\r\n    display: block;\r\n    margin-bottom: -18px;\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    color: #757575;\r\n}\r\n\r\n.search-tile-outer {\r\n    position: absolute;\r\n    padding: $tile-spacing;\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &.animate {\r\n        transition: 0.3s;\r\n\r\n        // &,\r\n        // &.search-tile {\r\n        //     transition: 0.3s;\r\n        //     // transition: 0s;\r\n        // }\r\n    }\r\n    @media screen and (max-width: $screen-md-max) {\r\n        // override fancy positioning on mobile\r\n        position: relative;\r\n        top: auto !important;\r\n        left: auto !important;\r\n        bottom: auto !important;\r\n        right: auto !important;\r\n        width: 100% !important;\r\n        height: auto !important;\r\n    }\r\n}\r\n\r\n.search-tile {\r\n    $tile-padding: 24px;\r\n\r\n    padding: $tile-padding * 0.9 $tile-padding;\r\n    background-color: #fff;\r\n    border-radius: $input-radius;\r\n    box-shadow: 0 2px 8px 0px rgba(0,0,0,0.25);\r\n    height: 100%;\r\n    transition: 0.3s;\r\n    outline: none;\r\n    overflow: hidden;\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &:hover:not(.active),\r\n    &:focus:not(.active) {\r\n        box-shadow: 0 4px 16px 0px rgba(0,0,0,0.45);\r\n    }\r\n\r\n    &.active {\r\n        height: auto;\r\n        transition: 0s;\r\n        overflow: visible;\r\n\r\n        .tile-content {\r\n            position: relative;\r\n        }\r\n\r\n        .tile-description {\r\n            position: absolute;\r\n        }\r\n    }\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 1em;\r\n    color: #212529;\r\n    // &:after {\r\n    //     background-color: $blue;\r\n    // }\r\n\r\n    a {\r\n        &:hover, &:active, &:focus {\r\n            text-decoration: none;\r\n        }\r\n    }\r\n}\r\n\r\n.tile-content-wrapper {\r\n    position: relative;\r\n}\r\n\r\n.tile-content {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    // margin-top: 3px;\r\n    margin-left: -15px;\r\n    padding-left: 0;\r\n    padding-right: 0;\r\n    width: calc(100% + #{$grid-gutter-width});\r\n    transition: 0.3s;\r\n}\r\n\r\n.tile-description {\r\n    // margin-top: 8px;\r\n    font-size: 16px;\r\n    font-weight: 400;\r\n}\r\n\r\n.hide-content {\r\n    opacity: 0;\r\n    pointer-events: none;\r\n}\r\n\r\n.legacy-link {\r\n    display: inline-block;\r\n    margin: 10px 0 20px;\r\n    padding: 5px 8px 5px 12px;\r\n    background-color: $grey-lighter;\r\n    border-radius: 15px;\r\n    color: #333;\r\n    font-weight: 700;\r\n\r\n    @media screen and (max-width: 1250px) and (min-width: 1200px) {\r\n        font-size: 13px;\r\n    }\r\n\r\n    &:hover,\r\n    &:focus {\r\n        text-decoration: none;\r\n        background-color: #E7F1FB;\r\n        color: $blue;\r\n\r\n        .arrow-right {\r\n            fill: $blue;\r\n        }\r\n    }\r\n\r\n    .arrow-right {\r\n        position: relative;\r\n        margin-left: 5px;\r\n        top: -1px;\r\n        width: 15px;\r\n        fill: #333;\r\n    }\r\n}\r\n\r\n</style>\r\n","import { render } from \"./MapTile.vue?vue&type=template&id=755c3ebc&scoped=true\"\nimport script from \"./MapTile.vue?vue&type=script&lang=js\"\nexport * from \"./MapTile.vue?vue&type=script&lang=js\"\n\nimport \"./MapTile.vue?vue&type=style&index=0&id=755c3ebc&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-755c3ebc\"]])\n\nexport default __exports__","<template>\r\n    <!-- <div class=\"search-tile-outer\"> -->\r\n        <!--<div class=\"search-tile\" ref=\"tile\" tabindex=\"0\" @click=\"clickTile()\" @keyup.enter=\"clickTile()\">-->\r\n        <div class=\"tile\" ref=\"tile\">\r\n            <div class=\"search-tile-inner\" ref=\"tileInner\">\r\n                <div class=\"field-title\" ref=\"fieldTitle\">\r\n                    <!-- <a :href=\"refLink\" v-if=\"refLink\" target=\"_blank\" title=\"Access legacy version here\">{{name}}</a> -->\r\n                    <!-- <template v-else>{{name}}</template> -->\r\n                    {{name}}\r\n                    <span v-if=\"subTitle\" class=\"sub-title\">{{subTitle}}</span>\r\n                </div>\r\n                <div class=\"tile-content-wrapper\">\r\n                    <div v-if=\"loading\" class=\"loading\"><div class=\"loader-bg\"></div><span class=\"loader\">Loading...</span></div>\r\n                    <div class=\"tile-chart\" ref=\"eChartsDOM\" v-if=\"!serviceError\"></div>\r\n                    <div class=\"field-error-message error-large\" v-if=\"serviceError\">\r\n                        Unable to load chart data\r\n                        <div class=\"error-code\">\r\n                        {{serviceError}}\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    <!-- </div> -->\r\n</template>\r\n\r\n<script>\r\nimport * as echarts from 'echarts';\r\nimport 'echarts/lib/component/tooltip';\r\nimport {mapGetters, mapActions} from 'vuex';\r\nimport globalMixins from '@/globalMixins';\r\n\r\nexport default {\r\n    name: 'ChartTile',\r\n    components: {\r\n    },\r\n    mixins: [globalMixins],\r\n    computed: {\r\n        tileComponent () {\r\n            return this.name.replace(/\\s/g,'');\r\n        },\r\n        tileClass () {\r\n            return this.name.replace(/\\s/g,'-').toLowerCase();\r\n        },\r\n        ...mapGetters([\r\n          'homePageChartData',\r\n          'externalURLs',\r\n          'homeChartSearchId'\r\n        ])\r\n    },\r\n    props: {\r\n        name: {\r\n            required: true\r\n        },\r\n        subTitle: {\r\n            required: false\r\n        },\r\n        description: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            init: false,\r\n            isActive: this.active,\r\n            loading: true,\r\n            width: 0,\r\n            height: 0,\r\n            minHeight: 0,\r\n            baseMinHeight: 0,\r\n            smallTilePercent: .25,\r\n            largeTilePercent: .75,\r\n            margin: 15,\r\n            oppositeX: 0,\r\n            newLastActiveY: 0,\r\n            top: 0,\r\n            left: 0,\r\n            expanded: false,\r\n            defaultDuration: 301,\r\n            eChart: null,\r\n            animate: true,\r\n            resizeTimeout: null,\r\n            tooltipHoverIC: null,\r\n            serviceError: null\r\n        };\r\n    },\r\n    mounted () {\r\n        this.eChartsInit();\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setCurrentQueryDetailsAction',\r\n            'setSearchFacetCriteria',\r\n            'setSearchFacetData',\r\n            'updateSearchResultsFacets',\r\n            'setSearchMeta',\r\n            'setSearchCriteria',\r\n            'setSearchResults',\r\n            'setHomePageChartData',\r\n            'setHomeChartSearchId'\r\n        ]),\r\n        eChartsInit () {\r\n            let searchParams = {\r\n                    facet_filters: {\r\n                        fiscal_years: [],\r\n                        org_names: [],\r\n                        agencies: [],\r\n                        states: [],\r\n                        countries: [],\r\n                        principal_investigators: []\r\n                    },\r\n                    summarized_by: \"Agency\",\r\n                    plotted_by: \"count\",\r\n                    limit_count: 100,\r\n                    criteria: {\r\n                        fiscal_years: \"\",\r\n                        is_agency_admin: true,\r\n                        agencies: \"NIH\"\r\n                    },\r\n                    home_page_chart: true,\r\n                    search_id: null\r\n                },\r\n                processClick = (event, name) => {\r\n                    if (event.ctrlKey || event.metaKey) {\r\n                        let routeData = this.$router.resolve({\r\n                            path: '/search/' + this.homeChartSearchId + '/projects',\r\n                            query: {\r\n                                agencies: name\r\n                            }\r\n                        });\r\n                        window.open(routeData.href, '_blank');\r\n                    } else {\r\n                        this.setSearchMeta(null);\r\n                        this.setSearchResults(null);\r\n                        this.setSearchCriteria(null);\r\n                        this.setEditSearchCriteria(null);\r\n                        this.setSearchFacetData(null);\r\n                        this.setSearchType('Advanced');\r\n                        this.clearSearchResults({resetFacets: true});\r\n                        this.setCurrentQueryDetailsAction(null);\r\n\r\n                        window.firstLoadFacets = {\r\n                            agencies: [name]\r\n                        };\r\n\r\n                        this.$nextTick(() => {\r\n                            this.$router.push({\r\n                                path: '/search/' + this.homeChartSearchId + '/projects',\r\n                                query: {\r\n                                    agencies: name\r\n                                }\r\n                            });\r\n                        });\r\n                    }\r\n                };\r\n\r\n            this.eChart = echarts.init(this.$refs.eChartsDOM);\r\n\r\n\r\n\r\n            // this.eChart.on('click', (params) => {\r\n            //     if (params && params.name) {\r\n            //         processClick(params.name);\r\n            //     }\r\n            // });\r\n\r\n            this.$refs.eChartsDOM.addEventListener('click', (event) => {\r\n                if (this.tooltipHoverIC) {\r\n                    processClick(event, this.tooltipHoverIC);\r\n                }\r\n            });\r\n\r\n            window.addEventListener('resize', () => {\r\n                this.resizeChart();\r\n            });\r\n\r\n            if (!this.homePageChartData) {\r\n                window.getSearchGraphData(searchParams, (data) => {\r\n                    if (data) {\r\n                        this.setHomeChartSearchId(data.meta.search_id);\r\n                        // this.loading = false;\r\n                        this.parseData(data, this.eChartsBuild);\r\n                    }\r\n                }, '/services/Chart/');\r\n            } else {\r\n                // this.loading = false;\r\n                this.eChartsBuild(this.homePageChartData);\r\n            }\r\n\r\n            this.init = true;\r\n        },\r\n        parseData (data, callback) {\r\n            if (!data.results) {\r\n                  this.serviceError = this.externalURLs.reporter_project_search_error_message.error_message;\r\n                  this.loading = false;\r\n\r\n                return false;\r\n            }\r\n\r\n            let xAxis = [],\r\n                counts = [],\r\n                color = [\r\n                    '#084081',\r\n                    '#2283ba',\r\n                    '#67c1cb',\r\n                    '#b4e2ba',\r\n                    '#faecaf',\r\n                    '#f7bb6c',\r\n                    '#f78c55',\r\n                    '#C54A53'\r\n                ];\r\n\r\n            data.results.sort((a, b) => {\r\n                return (a.group_by > b.group_by) ? 1 : -1;\r\n            });\r\n\r\n            for (let i = 0; i < data.results.length; i++) {\r\n                // temp fix to parse out NIH total from chart data\r\n                if (data.results[i].group_by !== 'NIH') {\r\n                    xAxis.push(data.results[i].group_by);\r\n                    counts.push({\r\n                        value: data.results[i].project_count,\r\n                        itemStyle: {\r\n                            color: color[i % color.length]\r\n                        }\r\n                    });\r\n                }\r\n            }\r\n\r\n            this.setHomePageChartData({\r\n                xAxis: xAxis,\r\n                counts: counts\r\n            });\r\n\r\n            callback(this.homePageChartData);\r\n        },\r\n        resizeChart () {\r\n            if (this.animate) {\r\n                this.eChart.setOption({\r\n                    animation: false\r\n                });\r\n            }\r\n\r\n            try {\r\n                this.eChart.resize();\r\n            } catch (er) {\r\n                \r\n            }\r\n\r\n            if (this.resizeTimeout) {\r\n                clearTimeout(this.resizeTimeout);\r\n            }\r\n\r\n            this.resizeTimeout = setTimeout(() => {\r\n                this.animate = true;\r\n\r\n                this.eChart.setOption({\r\n                    animation: true\r\n                });\r\n            }, 300);\r\n        },\r\n        eChartsBuild (data) {\r\n            var option = {\r\n                grid: {\r\n                    top: 10,\r\n                    right: 5,\r\n                    bottom: 52,\r\n                    left: 65\r\n                },\r\n                tooltip: {\r\n                    confine: true,\r\n                    trigger: 'item',\r\n                    // triggerOn: 'click',\r\n                    axisPointer: {\r\n                        shadowStyle: {\r\n                            color: 'rgba(8, 130, 220, 0.1)'\r\n                        },\r\n                        type: 'shadow',\r\n                        z: '0',\r\n                    },\r\n                    formatter: (params) => {\r\n                        this.tooltipHoverIC = params.name;\r\n\r\n                        return '<strong>Active Projects</strong><br>' + params.marker + params.name + ': ' + window.addCommas(params.value);\r\n                    }\r\n                },\r\n                xAxis: {\r\n                    type: 'category',\r\n                    nameLocation: 'center',\r\n                    axisLabel: {\r\n                        rotate: 90\r\n                    },\r\n                    data: data.xAxis\r\n                    // data: [\"NCI\", \"NIAID\", \"NIGMS\", \"NHLBI\", \"NINDS\", \"NIDDK\", \"NIA\", \"NIMH\", \"NICHD\", \"NIDA\", \"NEI\", \"NIAMS\", \"NIEHS\", \"NIDCD\", \"NIAAA\", \"NIBIB\", \"NIDCR\", \"OD\", \"NHGRI\", \"NCATS\", \"NIMHD\", \"NINR\", \"FIC\", \"NCCIH\", \"NLM\", \"CLC\", \"CIT\"]\r\n                    // data: [\"CIT\", \"CLC\", \"FIC\", \"NCATS\", \"NCCIH\", \"NCI\", \"NEI\", \"NHGRI\", \"NHLBI\", \"NIA\", \"NIAAA\", \"NIAID\", \"NIAMS\", \"NIBIB\", \"NICHD\", \"NIDA\", \"NIDCD\", \"NIDCR\", \"NIDDK\", \"NIEHS\", \"NIGMS\", \"NIMH\", \"NIMHD\", \"NINDS\", \"NINR\", \"NLM\", \"OD\"]\r\n                },\r\n                yAxis: {\r\n                    type: 'value',\r\n                    name: 'Number of Active Projects',\r\n                    nameLocation: 'center',\r\n                    nameGap: 50,\r\n                    nameTextStyle: {\r\n                        fontWeight: 'bold',\r\n                        fontFamily: 'sans-serif'\r\n                    },\r\n                },\r\n                series: [{\r\n                    data: data.counts,\r\n                    // data: [9555, 8296, 7738, 6988, 5066, 4877, 4764, 3953, 3533, 2979, 1964, 1685, 1499, 1405, 1314, 1157, 1137, 753, 695, 588, 542, 434, 401, 376, 259, 138, 12],\r\n                    // data: [\r\n                    //     {\r\n                    //         \"value\": 12,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#084081\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 138,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#2283ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 401,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#67c1cb\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 588,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#b4e2ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 376,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#faecaf\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 9555,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f7bb6c\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1964,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f78c55\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 695,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#C54A53\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 6988,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#084081\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 4764,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#2283ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1314,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#67c1cb\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 8296,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#b4e2ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1685,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#faecaf\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1157,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f7bb6c\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 3533,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f78c55\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 2979,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#C54A53\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1405,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#084081\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1137,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#2283ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 4877,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#67c1cb\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 1499,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#b4e2ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 7738,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#faecaf\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 3953,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f7bb6c\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 542,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#f78c55\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 5066,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#C54A53\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 434,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#084081\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 259,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#2283ba\"\r\n                    //         }\r\n                    //     },\r\n                    //     {\r\n                    //         \"value\": 753,\r\n                    //         \"itemStyle\": {\r\n                    //         \"color\": \"#67c1cb\"\r\n                    //         }\r\n                    //     }\r\n                    // ],\r\n                    type: 'bar'\r\n                }]\r\n            };\r\n\r\n            this.loading = false;\r\n\r\n            this.eChart.setOption(option);\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.tile {\r\n    position: relative;\r\n    overflow: hidden;\r\n\r\n    &:before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 4px;\r\n        background-color: $blue-charts;\r\n    }\r\n}\r\n\r\n.sub-title {\r\n    display: block;\r\n    margin-bottom: -18px;\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    color: #757575;\r\n}\r\n\r\n.search-tile-outer {\r\n    position: absolute;\r\n    padding: $tile-spacing;\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &.animate {\r\n        transition: 0.3s;\r\n\r\n        // &,\r\n        // &.search-tile {\r\n        //     transition: 0.3s;\r\n        //     // transition: 0s;\r\n        // }\r\n    }\r\n    @media screen and (max-width: $screen-md-max) {\r\n        // override fancy positioning on mobile\r\n        position: relative;\r\n        top: auto !important;\r\n        left: auto !important;\r\n        bottom: auto !important;\r\n        right: auto !important;\r\n        width: 100% !important;\r\n        height: auto !important;\r\n    }\r\n}\r\n\r\n.search-tile {\r\n    $tile-padding: 24px;\r\n\r\n    padding: $tile-padding * 0.9 $tile-padding;\r\n    background-color: #fff;\r\n    border-radius: $input-radius;\r\n    box-shadow: 0 2px 8px 0px rgba(0,0,0,0.25);\r\n    height: 100%;\r\n    transition: 0.3s;\r\n    outline: none;\r\n    overflow: hidden;\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 10px;\r\n        padding-right: 10px;\r\n    }\r\n\r\n    &:hover:not(.active),\r\n    &:focus:not(.active) {\r\n        box-shadow: 0 4px 16px 0px rgba(0,0,0,0.45);\r\n    }\r\n\r\n    &.active {\r\n        height: auto;\r\n        transition: 0s;\r\n        overflow: visible;\r\n\r\n        .tile-content {\r\n            position: relative;\r\n        }\r\n\r\n        .tile-description {\r\n            position: absolute;\r\n        }\r\n    }\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 1em;\r\n    color: #212529;\r\n    // &:after {\r\n    //     background-color: $blue;\r\n    // }\r\n\r\n    a {\r\n        &:hover, &:active, &:focus {\r\n            text-decoration: none;\r\n        }\r\n    }\r\n}\r\n\r\n.tile-content-wrapper {\r\n    position: relative;\r\n}\r\n\r\n.tile-content {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    // margin-top: 3px;\r\n    margin-left: -15px;\r\n    padding-left: 0;\r\n    padding-right: 0;\r\n    width: calc(100% + #{$grid-gutter-width});\r\n    transition: 0.3s;\r\n}\r\n\r\n.tile-description {\r\n    // margin-top: 8px;\r\n    font-size: 16px;\r\n    font-weight: 400;\r\n}\r\n\r\n.hide-content {\r\n    opacity: 0;\r\n    pointer-events: none;\r\n}\r\n\r\n.legacy-link {\r\n    display: inline-block;\r\n    margin: 10px 0 20px;\r\n    padding: 5px 8px 5px 12px;\r\n    background-color: $grey-lighter;\r\n    border-radius: 15px;\r\n    color: #333;\r\n    font-weight: 700;\r\n\r\n    @media screen and (max-width: 1250px) and (min-width: 1200px) {\r\n        font-size: 13px;\r\n    }\r\n\r\n    &:hover,\r\n    &:focus {\r\n        text-decoration: none;\r\n        background-color: #E7F1FB;\r\n        color: $blue;\r\n\r\n        .arrow-right {\r\n            fill: $blue;\r\n        }\r\n    }\r\n\r\n    .arrow-right {\r\n        position: relative;\r\n        margin-left: 5px;\r\n        top: -1px;\r\n        width: 15px;\r\n        fill: #333;\r\n    }\r\n}\r\n\r\n\r\n</style>\r\n","import { render } from \"./ChartTile.vue?vue&type=template&id=1d9292d1&scoped=true\"\nimport script from \"./ChartTile.vue?vue&type=script&lang=js\"\nexport * from \"./ChartTile.vue?vue&type=script&lang=js\"\n\nimport \"./ChartTile.vue?vue&type=style&index=0&id=1d9292d1&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1d9292d1\"]])\n\nexport default __exports__","import { render } from \"./Home.vue?vue&type=template&id=02ad7961&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\n\nimport \"./Home.vue?vue&type=style&index=0&id=02ad7961&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-02ad7961\"]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router'\r\nimport Home from './views/Home.vue'\r\nimport qs from 'qs';\r\n\r\n\r\n  \r\nconst router = createRouter({\r\n  history: createWebHistory(),\r\n  base: process.env.BASE_URL,\r\n  routes: [\r\n    {\r\n      path: '/',\r\n      name: 'home',\r\n      component: Home\r\n    },\r\n    {\r\n      path: '/matchmaker',\r\n      name: 'matchmaker',\r\n      component: Home\r\n    },\r\n    {\r\n      path: '/advanced-search',\r\n      name: 'advanced-search',\r\n      component: Home\r\n    },\r\n    {\r\n      path: '/publications',\r\n      name: 'publications-search',\r\n      component: Home\r\n    },\r\n    {\r\n      path: '/about',\r\n      name: 'about',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/About.vue')\r\n    },\r\n    {\r\n      path: '/smartSearch/:queryString',\r\n      name: 'smartSearch',\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ReportSmartSearch.vue'),\r\n      alias: '/quickSearch/:queryString'\r\n    },\r\n    {\r\n      path: '/PISearch/:pi_id',\r\n      name: 'PISearch',\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/PersonSummary.vue')\r\n    },\r\n    {\r\n      path: '/PISearch/:pi_id/:pi_name',\r\n      name: 'PISearchName',\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/PersonSummary.vue')\r\n    },\r\n    {\r\n      path: '/POSearch/:po_name',\r\n      name: 'POSearch',\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/PersonSummary.vue')\r\n    },\r\n    {\r\n      path: '/search/:search_id/projects/charts',\r\n      name: 'charts',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/SearchResults.vue'),\r\n      alias: '/share/:search_id/projects/charts'\r\n    },\r\n    {\r\n      path: '/search/:search_id/projects/map',\r\n      name: 'map',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/SearchResults.vue')\r\n    },\r\n    {\r\n      path: '/search/:search_id/projects',\r\n      name: 'list',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/SearchResults.vue'),\r\n      alias: ['/share/:search_id/projects']\r\n    },\r\n    {\r\n      path: '/pi_summary/:profile_id/:search_id/projects',\r\n      name: 'pi_list',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/SearchResults.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details',\r\n      path: '/search/:search_id/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details-map',\r\n      path: '/search/:search_id/projects/map/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'publications-project-details',\r\n      path: '/publications/:search_id/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import( /* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details-publications',\r\n      path: '/search/:search_id/publications/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details-news',\r\n      path: '/search/:search_id/news/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details-charts',\r\n      path: '/search/:search_id/projects/charts/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'search-project-details-matchmaker',\r\n      path: '/search/:search_id/projects/matchmaker/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      name: 'project-details',\r\n      path: '/project-details/:appl_id',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ProjectDetails.vue')\r\n    },\r\n    {\r\n      path: '/search/:search_id/publications',\r\n      name: 'publications',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/Publications.vue'),\r\n      alias: '/share/:search_id/publications'\r\n    },\r\n    {\r\n      path: '/search/:search_id/patents',\r\n      name: 'patents',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/Patents.vue'),\r\n      alias: '/share/:search_id/patents'\r\n    },\r\n    {\r\n      path: '/search/:search_id/clinicalStudies',\r\n      name: 'clinicalStudies',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/ClinicalStudies.vue'),\r\n      alias: '/share/:search_id/clinicalStudies'\r\n    },\r\n    {\r\n      path: '/search/:search_id/news',\r\n      name: 'news',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './views/News.vue')\r\n    },\r\n    {\r\n      path: '/release-notes',\r\n      name: 'release-notes',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import(/* webpackChunkName: \"about\" */ './components/ReleaseNotes.vue')\r\n    },\r\n    // {\r\n    //   path: '/pi_summary/:profile_id',\r\n    //   name: 'pi-summary',\r\n    //   // route level code-splitting\r\n    //   // this generates a separate chunk (about.[hash].js) for this route\r\n    //   // which is lazy-loaded when the route is visited.\r\n    //   component: () => import(/* webpackChunkName: \"about\" */ './views/PersonSummary.vue')\r\n    // },\r\n    {\r\n      path: '/matchmaker/:search_id/projects',\r\n      name: 'matchmaker-projects',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import( /* webpackChunkName: \"about\" */ './views/MatchmakerResults.vue')\r\n    },\r\n    {\r\n      path: '/matchmaker/:search_id/POs',\r\n      name: 'matchmaker-pos',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import( /* webpackChunkName: \"about\" */ './views/MatchmakerResults.vue')\r\n    },\r\n    {\r\n      path: '/publications/:search_id',\r\n      name: 'publication-search-results',\r\n      // route level code-splitting\r\n      // this generates a separate chunk (about.[hash].js) for this route\r\n      // which is lazy-loaded when the route is visited.\r\n      component: () => import( /* webpackChunkName: \"about\" */ './views/PublicationSearchResults.vue')\r\n    },\r\n    {\r\n      path: '/dashboard',\r\n      name: 'dashboard',\r\n      component: () => import(/* webpackChunkName: \"dashboard\" */ './views/Dashboard.vue')\r\n    },\r\n    {\r\n      path: '/search/:search_id/bridge',\r\n      name: 'query-bridge',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './views/QueryBridge.vue')\r\n    },\r\n    {\r\n      path: '/exporter',\r\n      name: 'exporter-projects',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/projects.vue'),\r\n      props: { tabName: 'PROJECT' },\r\n      alias: ['/exporter/projects']\r\n    },\r\n    {\r\n      path: '/exporter/abstracts',\r\n      name: 'exporter-abstracts',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/projects.vue'),\r\n      props: { tabName: 'ABSTRACT' }\r\n    },\r\n    {\r\n      path: '/exporter/publications',\r\n      name: 'exporter-publications',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/projects.vue'),\r\n      props: { tabName: 'PUBLICATION' }\r\n    },\r\n    {\r\n      path: '/exporter/patents',\r\n      name: 'exporter-patent',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/CSPatents.vue')\r\n    },\r\n    {\r\n      path: '/exporter/clinicalstudies',\r\n      name: 'exporter-clinicalstudy',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/CSPatents.vue')\r\n    },\r\n    {\r\n      path: '/exporter/linktables',\r\n      name: 'exporter-linktables',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/projects.vue'),\r\n      props: { tabName: 'LINK' }\r\n    },\r\n    {\r\n      path: '/exporter/crisp',\r\n      name: 'crisp_project',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/crisp-projects-abstracts.vue'),\r\n      alias: ['/exporter/crisp-projects']\r\n    },\r\n    {\r\n      path: '/exporter/crisp-abstracts',\r\n      name: 'crisp_abstract',\r\n      component: () => import(/* webpackChunkName: \"querybridge\" */ './components/exporter/crisp-projects-abstracts.vue')\r\n    },\r\n\r\n    { path: '/:pathMatch(.*)*', redirect: '/#/' }\r\n  ],\r\n  // set custom query resolver\r\n  parseQuery (query) {\r\n    return qs.parse(decodeURIComponent(query));\r\n  },\r\n  stringifyQuery (query) {\r\n    var result = qs.stringify(query);\r\n\r\n    return result ? (decodeURIComponent(result)) : '';\r\n  }\r\n});\r\n\r\nexport default router;\r\n","import axios, * as others from 'axios';\r\n\r\nconst API = \"/services/AppSettings\"; //relative...\r\n\r\nconst getPropertyByName = async function (propNameList) {\r\n    try {\r\n        const response = await axios.post(`${API}/getSettingByName`, propNameList);\r\n\r\n        if (response.status !== 200) throw Error(response.message);\r\n\r\n        return response.data;\r\n    }\r\n    catch (error) {\t\t\r\n        return null;\r\n    }\r\n\r\n};\r\n\r\nexport const appSettingsService = {\r\n    getPropertyByName\r\n}\r\n","import {createStore} from 'vuex';\r\nimport { appSettingsService } from '@/shared/appsettings.service.js'\r\n\r\n\r\n\r\n// global function used to parse both active\r\n// Search Criteria and Default Search Critera\r\nvar parseCriteria = (criteria, state, payload) => {\r\n    if (payload) {\r\n        if (payload.data !== null && payload.data !== undefined) {\r\n            // save search criteria for field passed in\r\n            state[criteria][payload.field] = payload.data;\r\n        } else if (payload.add) {\r\n            state[criteria][payload.field] = state[criteria][payload.field].concat(payload.add);\r\n        } else if (payload.remove) {\r\n            for (let i = 0; i < payload.remove.length; i++) {\r\n                state[criteria][payload.field] = state[criteria][payload.field].filter((item) => {\r\n                    if (item.value !== payload.remove[i].value) {\r\n                        return item;\r\n                    }\r\n                });\r\n            }\r\n        } else if (typeof payload === 'string') {\r\n            state[criteria][payload.field] = payload;\r\n        }\r\n    } else {\r\n        var searchFields = window.searchFieldSpecs,\r\n            fieldObj;\r\n\r\n        // reset search criteria if nothing is passed\r\n        for (let field in state[criteria]) {\r\n            fieldObj = _.filter(searchFields, searchFld => searchFld.id === field);\r\n            if (typeof state[criteria][field] === 'string') {\r\n                state[criteria][field] = fieldObj && fieldObj.length > 0 && fieldObj[0].defaultValues ? fieldObj[0].defaultValues : '';\r\n            } else {\r\n                state[criteria][field] = fieldObj && fieldObj.length > 0 && fieldObj[0].defaultValues ? fieldObj[0].defaultValues : [];\r\n            }\r\n        }\r\n    }\r\n\r\n    localStorage.setItem(criteria, JSON.stringify(payload));\r\n};\r\n\r\nvar parseFilters = (criteria, state, payload) => {\r\n    //for (let field in payload) {\r\n    if (payload) {\r\n        state[criteria] = {};\r\n\r\n        for (let i = 0; i < payload.facets.length; i++) { // Need to update it\r\n            state[criteria][payload.facets[i].name] = [];\r\n        }\r\n    } else {\r\n        state[criteria] = payload;\r\n    }\r\n};\r\n\r\nexport default createStore({\r\n    state: {\r\n        searchCriteria: {\r\n            // dynmically populated by search fields\r\n        },\r\n        searchCriteriaDefault: {\r\n            // dynmically populated by search fields\r\n        },\r\n        editSearchCriteria: {\r\n\r\n        },\r\n        editSearchResults: false,\r\n        searchFieldErrors: {\r\n            // dynmically populated by search fields\r\n        },\r\n        searchMeta: null,\r\n        searchResults: null,\r\n        publicationResults: null,\r\n        matchmakerResults: null,\r\n        matchmakerPOResults: null,\r\n        patentResults: null,\r\n        clinicalStudyResults: null,\r\n        newsResults: {\r\n            PressRelease: null,\r\n            ResearchMatters: null,\r\n            AIRS: null,\r\n            ARRA: null,\r\n            AIMRS: null\r\n        },\r\n        newsCount: {\r\n            PressRelease: null,\r\n            ResearchMatters: null,\r\n            AIRS: null,\r\n            ARRA: null,\r\n            AIMRS: null\r\n        },\r\n        lookup: {\r\n            // dynmically populated by search fields\r\n        },\r\n        fullscreen: false,\r\n        externalURLs: {},\r\n        searchFacetCriteria: null,\r\n        searchFacetData: null,\r\n        publicationsFacetCriteria: null,\r\n        publicationsFacetData: null,\r\n        coreProjCountPub: null,\r\n        matchmakerFacetCriteria: null,\r\n        matchmakerFacetData: null,\r\n        searchMode: '',\r\n        graphData: null,\r\n        circlesData: null,\r\n        graphSettings: null,\r\n        searchType: '',\r\n        exportCriteria: '',\r\n        projectDetails: {\r\n            basicInfo: null,\r\n            description: null,\r\n            otherDetails: null,\r\n            funding: null,\r\n            spendingCategories: null,\r\n            publications: null,\r\n            patents: null,\r\n            history: null,\r\n            subProjects: null,\r\n            projectOutcomes: null,\r\n            clinicalStudies: null,\r\n            similarProjects: null,\r\n            PressRelease: null,\r\n            ResearchMatters: null,\r\n            AIRS: null,\r\n            ARRA: null,\r\n            AIMRS: null\r\n            // dynmically populated by search fields\r\n        },\r\n        exportFields: null,\r\n        isExportingFile: false,\r\n        currentExportTab: '',\r\n        defaultFieldsToExport: [],\r\n        piSummaryProjects: null,\r\n        homePageChartData: null,\r\n        homePageMapData: null,\r\n        selectedPerson: null,\r\n        selectedRowId: null,\r\n        noDataErrorMsg: 'No records found matching your search criteria. Please alter your query and try again.',\r\n        invalidProjectIdMsg: 'The data you requested is not available in RePORTER.',\r\n        currentQueryDetails: null,\r\n        loggedInUser: null,\r\n        savedSearches: null,\r\n        userPreferences: null,\r\n        homeMapSearchId:null,\r\n        homeChartSearchId:null\r\n    },\r\n    getters: {\r\n        searchCriteria: state => state.searchCriteria,\r\n        searchCriteriaDefault: state => state.searchCriteriaDefault,\r\n        editSearchCriteria: state => state.editSearchCriteria,\r\n        editSearchResults: state => state.editSearchResults,\r\n        searchFieldErrors: state => state.searchFieldErrors,\r\n        searchMeta: state => state.searchMeta,\r\n        searchResults: state => state.searchResults,\r\n        searchResultsTableMeta: state => state.searchResultsTableMeta,\r\n        publicationResults: state => state.publicationResults,\r\n        matchmakerResults: state => state.matchmakerResults,\r\n        matchmakerPOResults: state => state.matchmakerPOResults,\r\n        patentResults: state => state.patentResults,\r\n        clinicalStudyResults: state => state.clinicalStudyResults,\r\n        newsResults: state => state.newsResults,\r\n        newsCount: state => state.newsCount,\r\n        lookup: state => state.lookup,\r\n        fullscreen: state => state.fullscreen,\r\n        externalURLs: state => state.externalURLs,\r\n        searchFacetCriteria: state => state.searchFacetCriteria,\r\n        searchFacetData: state => state.searchFacetData,\r\n        publicationsFacetCriteria: state => state.publicationsFacetCriteria,\r\n        publicationsFacetData: state => state.publicationsFacetData,\r\n        coreProjCountPub: state => state.coreProjCountPub,\r\n        matchmakerFacetCriteria: state => state.matchmakerFacetCriteria,\r\n        matchmakerFacetData: state => state.matchmakerFacetData,\r\n        searchMode: state => state.searchMode,\r\n        graphData: state => state.graphData,\r\n        circlesData: state => state.circlesData,\r\n        graphSettings: state => state.graphSettings,\r\n        searchType: state => state.searchType,\r\n        exportCriteria: state => state.exportCriteria,\r\n        projectDetails: state => state.projectDetails,\r\n        exportFields: state => state.exportFields,\r\n        isExportingFile: state => state.isExportingFile,\r\n        currentExportTab: state => state.currentExportTab,\r\n        defaultFieldsToExport: state => state.defaultFieldsToExport,\r\n        piSummaryProjects: state => state.piSummaryProjects,\r\n        homePageChartData: state => state.homePageChartData,\r\n        homePageMapData: state => state.homePageMapData,\r\n        selectedPerson: state => state.selectedPerson,\r\n        selectedRowId: state => state.selectedRowId,\r\n        noDataErrorMsg: state => state.noDataErrorMsg,\r\n        invalidProjectIdMsg: state => state.invalidProjectIdMsg,\r\n        currentQueryDetails: state => state.currentQueryDetails,\r\n        loggedInUser: state => state.loggedInUser,\r\n        savedSearches: state => state.savedSearches,\r\n        userPreferences: state => state.userPreferences,\r\n        homeChartSearchId: state => state.homeChartSearchId,\r\n        homeMapSearchId: state => state.homeMapSearchId,\r\n    },\r\n    mutations: {\r\n        setSearchCriteria (state, payload) {\r\n            parseCriteria('searchCriteria', state, payload);\r\n        },\r\n        setSearchCriteriaDefault (state, payload) {\r\n            parseCriteria('searchCriteriaDefault', state, payload);\r\n        },\r\n        setEditSearchCriteria (state, payload) {\r\n            parseCriteria('editSearchCriteria', state, payload);\r\n        },\r\n        setEditSearchResultsFlag (state, payload) {\r\n            state.editSearchResults = payload;\r\n        },\r\n        setSearchFieldErrors (state, payload) {\r\n\r\n            if (payload.message) {\r\n                state.searchFieldErrors[payload.field] = {\r\n                    message: payload.message,\r\n                    lookupFailed: payload.lookupFailed,\r\n                    preventSearch: payload.preventSearch\r\n                };\r\n            } else {\r\n                state.searchFieldErrors[payload.field] = {\r\n                    message: '',\r\n                    lookupFailed: false,\r\n                    preventSearch: false\r\n                };\r\n            }\r\n\r\n            localStorage.setItem('searchFieldErrors', JSON.stringify(payload));\r\n        },\r\n        setSearchMeta (state, payload) {\r\n            state.searchMeta = payload;\r\n\r\n            localStorage.setItem('searchMeta', JSON.stringify(payload));\r\n        },\r\n        setSearchResults (state, payload) {\r\n            state.searchResults = payload;\r\n\r\n            localStorage.setItem('searchResults', JSON.stringify(payload));\r\n        },\r\n        setPublicationResults (state, payload) {\r\n            state.publicationResults = payload;\r\n        },\r\n        updatePublicationResults (state, payload) {\r\n            state.publicationResults.results = state.publicationResults.results.concat(payload.results);\r\n        },\r\n        setMatchmakerResults (state, payload) {\r\n            state.matchmakerResults = payload;\r\n\r\n            localStorage.setItem('matchmakerResults', JSON.stringify(payload));\r\n        },\r\n        updateMatchmakerResults (state, payload) {\r\n            state.matchmakerResults.results = state.matchmakerResults.results.concat(payload.results);\r\n\r\n            localStorage.setItem('matchmakerResults', JSON.stringify(state.matchmakerResults));\r\n        },\r\n        setMatchmakerPOResults (state, payload) {\r\n            state.matchmakerPOResults = payload;\r\n\r\n            localStorage.setItem('matchmakerPOResults', JSON.stringify(payload));\r\n        },\r\n        updateMatchmakerPOResults (state, payload) {\r\n            state.matchmakerPOResults.results = state.matchmakerPOResults.concat(payload.results);\r\n\r\n            localStorage.setItem('matchmakerPOResults', JSON.stringify(state.matchmakerPOResults));\r\n        },\r\n        setPatentResults (state, payload) {\r\n            state.patentResults = payload;\r\n\r\n            localStorage.setItem('patentResults', JSON.stringify(payload));\r\n        },\r\n        updatePatentResults (state, payload) {\r\n            state.patentResults.results = state.patentResults.results.concat(payload.results);\r\n\r\n            localStorage.setItem('patentResults', JSON.stringify(state.patentResults));\r\n        },\r\n        setClinicalStudyResults (state, payload) {\r\n            state.clinicalStudyResults = payload;\r\n\r\n            localStorage.setItem('clinicalStudyResults', JSON.stringify(payload));\r\n        },\r\n        updateClinicalStudyResults (state, payload) {\r\n            state.clinicalStudyResults.results = state.clinicalStudyResults.results.concat(payload.results);\r\n\r\n            localStorage.setItem('clinicalStudyResults', JSON.stringify(state.clinicalStudyResults));\r\n        },\r\n        setNewsResults (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.newsResults[payload.name] = payload.data;\r\n            }\r\n        },\r\n        updateNewsResults (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.newsResults[payload.name].meta.properties = payload.data.meta.properties;\r\n                state.newsResults[payload.name].results = state.newsResults[payload.name].results.concat(payload.data.results);\r\n            }\r\n        },\r\n        updateMetaNewsResults (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.newsResults[payload.name].meta = payload.data.meta;\r\n            }\r\n        },\r\n        setNewsCount (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.newsCount[payload.name] = {\r\n                    total: payload.data.results[0],\r\n                    totalCoreProjects: payload.data.meta.total,\r\n                    lastItem: payload.data.meta.properties ? payload.data.meta.properties.lastItem : null\r\n                };\r\n            }\r\n        },\r\n        resetNewsResults (state, payload) {\r\n            state.newsResults = {\r\n                PressRelease: payload,\r\n                ResearchMatters: payload,\r\n                AIRS: payload,\r\n                ARRA: payload,\r\n                AIMRS: payload\r\n            };\r\n            state.newsCount = {\r\n                PressRelease: payload,\r\n                ResearchMatters: payload,\r\n                AIRS: payload,\r\n                ARRA: payload,\r\n                AIMRS: payload\r\n            };\r\n        },\r\n        updateSearchResults (state, payload) {\r\n            state.searchResults = state.searchResults.concat(payload);\r\n            localStorage.setItem('searchResults', JSON.stringify(payload));\r\n        },\r\n        setSearchResultsTableMeta (state, payload) {\r\n            state.searchResultsTableMeta = payload;\r\n\r\n            localStorage.setItem('searchResultsTableMeta', JSON.stringify(payload));\r\n        },\r\n        setLookup (state, payload) {\r\n            if (payload && payload.field && payload.data) {\r\n                state.lookup[payload.field] = payload.data;\r\n\r\n                localStorage.setItem('Lookup', JSON.stringify(payload));\r\n            }\r\n        },\r\n        setFullscreen (state, payload) {\r\n            state.fullscreen = payload;\r\n\r\n            localStorage.setItem('searchResultsTableMeta', JSON.stringify(payload));\r\n        },\r\n        addPropertyToAppSettings (state, payload) {\r\n            if (payload && payload.data) {\r\n                _.merge(state.externalURLs, payload.data);\r\n            }\r\n        },\r\n        setSearchFacetCriteria (state, payload) {\r\n            parseFilters('searchFacetCriteria', state, payload);\r\n        },\r\n        updateSearchFacetCriteria (state, payload) {\r\n            if (payload && payload.field && payload.data) {\r\n                state.searchFacetCriteria[payload.field] = payload.data;\r\n            }\r\n        },\r\n        setSearchFacetData (state, payload) {\r\n            state.searchFacetData = payload;\r\n        },\r\n        updateSearchResultsFacets (state, payload) {\r\n            state.searchFacetCriteria = payload;\r\n        },\r\n        setPublicationsFacetCriteria (state, payload) {\r\n            parseFilters('publicationsFacetCriteria', state, payload);\r\n        },\r\n        setPublicationsFacetData (state, payload) {\r\n            state.publicationsFacetData = payload;\r\n        },\r\n        updatePublicationsFacets (state, payload) {\r\n            state.publicationsFacetCriteria = payload;\r\n        },\r\n        setCoreProjCountPub (state, payload) {\r\n            state.coreProjCountPub = payload;\r\n        },\r\n        setMatchmakerFacetCriteria (state, payload) {\r\n            parseFilters('matchmakerFacetCriteria', state, payload);\r\n        },\r\n        setMatchmakerFacetData (state, payload) {\r\n            state.matchmakerFacetData = payload;\r\n        },\r\n        updateMatchmakerFacetCriteria (state, payload) {\r\n            state.matchmakerFacetCriteria = payload;\r\n        },\r\n        updatePublicationsFacetCriteria (state, payload) {\r\n            state.publicationsFacetCriteria = payload;\r\n        },\r\n        setSearchMode (state, payload) {\r\n            state.searchMode = payload;\r\n        },\r\n        setGraphData (state, payload) {\r\n            state.graphData = payload;\r\n        },\r\n        setCirclesData (state, payload) {\r\n            state.circlesData = payload;\r\n        },\r\n        updateGraphData (state, payload) {\r\n            if (state.graphData) {\r\n                state.graphData.meta = payload.meta;\r\n                state.graphData.results = state.graphData.results.concat(payload.results);\r\n            } else {\r\n                state.graphData = payload;\r\n            }\r\n        },\r\n        setGraphSettings (state, payload) {\r\n            state.graphSettings = payload;\r\n        },\r\n        setSearchType (state, payload) {\r\n            state.searchType = payload;\r\n        },\r\n        setExportCriteria (state, payload) {\r\n            state.exportCriteria = payload;\r\n        },\r\n        setProjectDetails (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.projectDetails[payload.name] = payload.data;\r\n            }\r\n            // state.projectDetails = payload;\r\n        },\r\n        resetProjectDetails (state, payload) {\r\n            state.projectDetails = {\r\n                basicInfo: payload,\r\n                description: payload,\r\n                otherDetails: payload,\r\n                funding: payload,\r\n                spendingCategories: payload,\r\n                publications: payload,\r\n                patents: payload,\r\n                history: payload,\r\n                subProjects: payload,\r\n                projectOutcomes: payload,\r\n                clinicalStudies: payload,\r\n                similarProjects: payload,\r\n                PressRelease: payload,\r\n                ResearchMatters: payload,\r\n                AIRS: payload,\r\n                ARRA: payload,\r\n                AIMRS: payload\r\n                // dynmically populated by search fields\r\n            }\r\n            // state.projectDetails = payload;\r\n        },\r\n        updateProjectDetails (state, payload) {\r\n            if (payload && payload.name && payload.data) {\r\n                state.projectDetails[payload.name].results = state.projectDetails[payload.name].results.concat(payload.data.results);\r\n\r\n                localStorage.setItem('projectDetails', JSON.stringify(payload));\r\n            }\r\n        },\r\n        setExportFields (state, payload) {\r\n            state.exportFields = payload;\r\n        },\r\n        setExportingFileFlag (state, payload) {\r\n            state.isExportingFile = payload;\r\n        },\r\n        setCurrentExportTab (state, payload) {\r\n            state.currentExportTab = payload;\r\n        },\r\n        setDefaultfieldsToExport (state, payload) {\r\n            state.defaultFieldsToExport = payload;\r\n        },\r\n        setPersonSummaryProjects (state, payload) {\r\n            state.piSummaryProjects = payload;\r\n        },\r\n        setHomePageChartData (state, payload) {\r\n            state.homePageChartData = payload;\r\n        },\r\n        setHomePageMapData (state, payload) {\r\n            state.homePageMapData = payload;\r\n        },\r\n        setSelectedPerson (state, payload) {\r\n            state.selectedPerson = payload;\r\n        },\r\n        setSelectedRowId (state, payload) {\r\n            state.selectedRowId = payload;\r\n        },\r\n        setCurrentQueryDetails (state, payload) {\r\n            state.currentQueryDetails = payload;\r\n        },\r\n        setLoggedInUser (state, payload) {\r\n            state.loggedInUser = payload;\r\n        },\r\n        setSavedSearches (state, payload) {\r\n            state.savedSearches = payload;\r\n        },\r\n        setUserPreferences (state, payload) {\r\n            state.userPreferences = payload;\r\n        },\r\n        updateUserPreferences (state, payload) {\r\n            let prefIndex = _.findIndex(state.userPreferences, up => up.preference_name === payload.name);\r\n\r\n            if (prefIndex != -1) {\r\n                state.userPreferences[prefIndex].preference_value = payload.value;\r\n            }\r\n        },\r\n        setHomeMapSearchId (state, payload) {\r\n            state.homeMapSearchId = payload;\r\n        },\r\n        setHomeChartSearchId (state, payload) {\r\n            state.homeChartSearchId = payload;\r\n        }\r\n    },\r\n    actions: {\r\n        setSearchCriteria ({ commit }, payload) {\r\n            commit('setSearchCriteria', payload);\r\n        },\r\n        setSearchCriteriaDefault ({ commit }, payload) {\r\n            commit('setSearchCriteriaDefault', payload);\r\n        },\r\n        setEditSearchCriteria ({ commit }, payload) {\r\n            commit('setEditSearchCriteria', payload);\r\n        },\r\n        setEditSearchResultsFlag ({ commit }, payload) {\r\n            commit('setEditSearchResultsFlag', payload);\r\n        },\r\n        setSearchFieldErrors ({ commit }, payload) {\r\n            commit('setSearchFieldErrors', payload);\r\n        },\r\n        setSearchMeta ({ commit }, payload) {\r\n            commit('setSearchMeta', payload);\r\n        },\r\n        setSearchResults ({ commit }, payload) {\r\n            commit('setSearchResults', payload);\r\n        },\r\n        setMatchmakerResults ({ commit }, payload) {\r\n            commit('setMatchmakerResults', payload);\r\n        },\r\n        updateMatchmakerResults ({ commit }, payload) {\r\n            commit('updateMatchmakerResults', payload);\r\n        },\r\n        setMatchmakerPOResults ({ commit }, payload) {\r\n            commit('setMatchmakerPOResults', payload);\r\n        },\r\n        updateMatchmakerPOResults ({ commit }, payload) {\r\n            commit('updateMatchmakerPOResults', payload);\r\n        },\r\n        setPublicationResults ({ commit }, payload) {\r\n            commit('setPublicationResults', payload);\r\n        },\r\n        updatePublicationResults ({ commit }, payload) {\r\n            commit('updatePublicationResults', payload);\r\n        },\r\n        setPatentResults ({ commit }, payload) {\r\n            commit('setPatentResults', payload);\r\n        },\r\n        updatePatentResults ({ commit }, payload) {\r\n            commit('updatePatentResults', payload);\r\n        },\r\n        setClinicalStudyResults ({ commit }, payload) {\r\n            commit('setClinicalStudyResults', payload);\r\n        },\r\n        updateClinicalStudyResults ({ commit }, payload) {\r\n            commit('updateClinicalStudyResults', payload);\r\n        },\r\n        setNewsResults ({ commit }, payload) {\r\n            commit('setNewsResults', payload);\r\n        },\r\n        updateNewsResults ({ commit }, payload) {\r\n            commit('updateNewsResults', payload);\r\n        },\r\n        updateMetaNewsResults ({ commit }, payload) {\r\n            commit('updateMetaNewsResults', payload);\r\n        },\r\n        setNewsCount ({ commit }, payload) {\r\n            commit('setNewsCount', payload);\r\n        },\r\n        resetNewsResults ({ commit }, payload) {\r\n            commit('resetNewsResults', payload);\r\n        },\r\n        updateSearchResults ({ commit }, payload) {\r\n            commit('updateSearchResults', payload);\r\n        },\r\n        setSearchResultsTableMeta ({ commit }, payload) {\r\n            commit('setSearchResultsTableMeta', payload);\r\n        },\r\n        setLookup ({ commit }, payload) {\r\n            commit('setLookup', payload);\r\n        },\r\n        setFullscreen ({ commit }, payload) {\r\n            commit('setFullscreen', payload);\r\n        },\r\n        addPropertyToAppSettings ({ commit }, payload) {\r\n            commit('addPropertyToAppSettings', payload);\r\n        },\r\n        async getAppSettingsAction ({ commit }) {\r\n            let _appSettings = await appSettingsService.getAppSettings(); //axios call\r\n            commit('setAppSettings', _appSettings);\r\n        },\r\n        async getAppSettingsPropertyByNameAction ({ commit }, payload) {\r\n            let data = await appSettingsService.getPropertyByName(payload); //axios call\r\n            commit('addPropertyToAppSettings', { data });\r\n        },\r\n        setSearchFacetCriteria ({ commit }, payload) {\r\n            commit('setSearchFacetCriteria', payload);\r\n        },\r\n        updateSearchFacetCriteria ({ commit }, payload) {\r\n            commit('updateSearchFacetCriteria', payload);\r\n        },\r\n        setSearchFacetData ({ commit }, payload) {\r\n            commit('setSearchFacetData', payload);\r\n        },\r\n        updateSearchResultsFacets ({ commit }, payload) {\r\n            commit('updateSearchResultsFacets', payload);\r\n        },\r\n        setPublicationsFacetCriteria ({ commit }, payload) {\r\n            commit('setPublicationsFacetCriteria', payload);\r\n        },\r\n        setPublicationsFacetData ({ commit }, payload) {\r\n            commit('setPublicationsFacetData', payload);\r\n        },\r\n        updatePublicationsFacets ({ commit }, payload) {\r\n            commit('updatePublicationsFacets', payload);\r\n        },\r\n        setCoreProjCountPub ({ commit }, payload) {\r\n            commit('setCoreProjCountPub', payload);\r\n        },\r\n        setMatchmakerFacetCriteria ({ commit }, payload) {\r\n            commit('setMatchmakerFacetCriteria', payload);\r\n        },\r\n        setMatchmakerFacetData ({ commit }, payload) {\r\n            commit('setMatchmakerFacetData', payload);\r\n        },\r\n        updateMatchmakerFacetCriteria ({ commit }, payload) {\r\n            commit('updateMatchmakerFacetCriteria', payload);\r\n        },\r\n        updatePublicationsFacetCriteria ({ commit }, payload) {\r\n            commit('updatePublicationsFacetCriteria', payload);\r\n        },\r\n        setSearchMode ({ commit }, payload) {\r\n            commit('setSearchMode', payload);\r\n        },\r\n        setGraphData ({ commit }, payload) {\r\n            commit('setGraphData', payload);\r\n        },\r\n        setCirclesData ({ commit }, payload) {\r\n            commit('setCirclesData', payload);\r\n        },\r\n        updateGraphData ({ commit }, payload) {\r\n            commit('updateGraphData', payload);\r\n        },\r\n        setGraphSettings ({ commit }, payload) {\r\n            commit('setGraphSettings', payload);\r\n        },\r\n        setSearchType ({ commit }, payload) {\r\n            commit('setSearchType', payload);\r\n        },\r\n        setExportCriteria ({ commit }, payload) {\r\n            commit('setExportCriteria', payload);\r\n        },\r\n        setProjectDetails ({ commit }, payload) {\r\n            commit('setProjectDetails', payload);\r\n        },\r\n        resetProjectDetails ({ commit }, payload) {\r\n            commit('resetProjectDetails', payload);\r\n        },\r\n        updateProjectDetails ({ commit }, payload) {\r\n            commit('updateProjectDetails', payload);\r\n        },\r\n        setExportFields ({ commit }, payload) {\r\n            commit('setExportFields', payload);\r\n        },\r\n        setExportingFileFlag ({ commit }, payload) {\r\n            commit('setExportingFileFlag', payload);\r\n        },\r\n        setCurrentExportTab ({ commit }, payload) {\r\n            commit('setCurrentExportTab', payload);\r\n        },\r\n        setDefaultfieldsToExport ({ commit }, payload) {\r\n            commit('setDefaultfieldsToExport', payload);\r\n        },\r\n        setPersonSummaryProjects ({ commit }, payload) {\r\n            commit('setPersonSummaryProjects', payload);\r\n        },\r\n        setHomePageChartData ({ commit }, payload) {\r\n            commit('setHomePageChartData', payload);\r\n        },\r\n        setHomePageMapData ({ commit }, payload) {\r\n            commit('setHomePageMapData', payload);\r\n        },\r\n        setSelectedPerson ({ commit }, payload) {\r\n            commit('setSelectedPerson', payload);\r\n        },\r\n        setSelectedRowId ({ commit }, payload) {\r\n            commit('setSelectedRowId', payload);\r\n        },\r\n        setCurrentQueryDetailsAction ({ commit }, payload) {\r\n            commit('setCurrentQueryDetails', payload);\r\n        },\r\n        setLoggedInUser ({ commit }, payload) {\r\n            commit('setLoggedInUser', payload);\r\n        },\r\n        setSavedSearches ({ commit }, payload) {\r\n            commit('setSavedSearches', payload);\r\n        },\r\n        setUserPreferences ({ commit }, payload) {\r\n            commit('setUserPreferences', payload);\r\n        },\r\n        updateUserPreferences ({ commit }, payload) {\r\n            commit('updateUserPreferences', payload);\r\n        },\r\n        setHomeMapSearchId ({ commit }, payload) {\r\n            commit('setHomeMapSearchId', payload);\r\n        },\r\n        setHomeChartSearchId ({ commit }, payload) {\r\n            commit('setHomeChartSearchId', payload);\r\n        }\r\n    }\r\n});\r\n","export default window.filters = {\r\n    getFirstPIName (nameList) {\r\n        if (nameList !== undefined && nameList !== null) {\r\n            nameList = nameList.split(';');\r\n            if (nameList.length > 1) {\r\n                if ($.trim(nameList[0]) === ',') {\r\n                    return '';\r\n                }\r\n\r\n                return $.trim(nameList[0]);\r\n            } else {\r\n                if ($.trim(nameList[0]) === ',') {\r\n                    return '';\r\n                }\r\n\r\n                return $.trim(nameList[0]);\r\n            }\r\n        }\r\n    },\r\n    removeFirstPIName (nameList) {\r\n        if (nameList !== undefined && nameList !== null) {\r\n            nameList = nameList.split(';');\r\n            var uniqueNames = [];\r\n\r\n            $.each(nameList, function (i, el) {\r\n                if ($.inArray(el, uniqueNames) === -1) {\r\n                    uniqueNames.push(el);\r\n                }\r\n            });\r\n\r\n            if (uniqueNames.length > 1) {\r\n                uniqueNames.shift();\r\n                uniqueNames = '; ' + uniqueNames.join('; ');\r\n                return uniqueNames;\r\n            }\r\n        }\r\n    },\r\n    removeFirstNameWithEmail (nameList, email) {\r\n        if (nameList !== undefined && nameList !== null) {\r\n            nameList = nameList.split(';');\r\n            var uniqueNames = [];\r\n\r\n            $.each(nameList, function (i, el) {\r\n                if ($.inArray(el, uniqueNames) === -1) {\r\n                    uniqueNames.push(el);\r\n                }\r\n            });\r\n\r\n            if (uniqueNames.length > 1) {\r\n                uniqueNames.shift();\r\n                uniqueNames = '; ' + uniqueNames.join('; ');\r\n                return uniqueNames + '<br><br>Contact: ' + email;\r\n            } else {\r\n                return '<br><br>Contact: ' + email;\r\n            }\r\n        }\r\n    },\r\n\r\n    splitArrayWithParam (array, param) {\r\n    if (array && param) {\r\n        if ($.isNumeric(array)) {\r\n            array = array.toString();\r\n        }\r\n\r\n        return array.split(param);\r\n    }\r\n    },\r\n\r\n    formatDate (value, format) {\r\n    var date,\r\n        month,\r\n        day,\r\n        year,\r\n        monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n            \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n        ];\r\n\r\n    if (value) {\r\n        date = new Date(value);\r\n\r\n        month = (date.getMonth() + 1);\r\n        day = date.getDate();\r\n        year = date.getFullYear();\r\n\r\n        if (month < 10) {\r\n            month = '0' + month;\r\n        }\r\n\r\n        if (day < 10) {\r\n            day = '0' + day;\r\n        }\r\n\r\n        switch (format) {\r\n            case 'dd-MON-yyyy':\r\n                return day + '-' + monthNames[date.getMonth()] + '-' + year;\r\n            case 'mon_yyyy':\r\n                return monthNames[date.getMonth()] + ' ' + year\r\n        }\r\n        return month + '/' + day + '/' + year;\r\n    }\r\n},\r\n\r\nformatDateTime (value) {\r\n    var date,\r\n        month,\r\n        day,\r\n        year,\r\n        hours,\r\n        minutes,\r\n        period;\r\n\r\n    if (value) {\r\n        date = new Date(value);\r\n\r\n        month = (date.getMonth() + 1);\r\n        day = date.getDate();\r\n        year = date.getFullYear();\r\n        hours = date.getHours();\r\n        minutes = date.getMinutes();\r\n\r\n        if (month < 10) {\r\n            month = '0' + month;\r\n        }\r\n\r\n        if (day < 10) {\r\n            day = '0' + day;\r\n        }\r\n\r\n        if (minutes < 10) {\r\n            minutes = '0' + minutes;\r\n        }\r\n\r\n        if (hours > 12) {\r\n            hours = hours - 12;\r\n            period = 'PM';\r\n        } else {\r\n            period = 'AM';\r\n        }\r\n\r\n        return `${month}/${day}/${year} ${hours}:${minutes} ${period}`;\r\n\r\n    }\r\n},\r\n\r\ncapitalizeFirst (value) {\r\n    if (value) {\r\n        value = value.charAt(0).toUpperCase() + value.toLowerCase().slice(1);\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\npluralize (value) {\r\n    if (value !== 'Displayed') {\r\n        if (value.charAt(value.length - 1) === 'y') {\r\n            return value.substring(0, value.length - 1) + 'ies';\r\n        } else {\r\n            return value + 's';\r\n        }\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\naddCommas (value) {\r\n    if (value) {\r\n        if (typeof value === 'number' && value !== 0) {\r\n            return value.toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,');\r\n        } else {\r\n            return value;\r\n        }\r\n    }\r\n},\r\n\r\naddBreakAfterCommas (value) {\r\n    return value.split(',').join(', ');\r\n},\r\n\r\nbreakAtUnderscore (value) {\r\n    return value.split('_').join('_\\u200B');\r\n},\r\n\r\nbreakEmail (value) {\r\n    return value.split('@').join('@\\u200B').split('.').join('.\\u200B');\r\n},\r\n\r\nround(value) {\r\n    return value ? value.toFixed(2) : value;\r\n},\r\n\r\nformatCurrency (value, formatLargeNo) {\r\n    var addCommas = window.filters.addCommas,\r\n        formatLargeNumber = window.filters.formatLargeNumber;\r\n\r\n    if (!isNaN(value)) {\r\n        return '$' + (formatLargeNo ? formatLargeNumber(value) : addCommas(value));\r\n    } else {\r\n        return value;\r\n    }\r\n},\r\n\r\n\r\nformatLargeNumber (value) {\r\n    var addCommas = window.filters.addCommas,\r\n        round = {\r\n            T: 0.000000000001,\r\n            B: 0.000000001,\r\n            M: 0.000001,\r\n            K: 0.001\r\n        },\r\n        roundKey;\r\n\r\n    if (value) {\r\n        if (value.toString().length >= 4) {\r\n            if (value.toString().length >= 13) {\r\n                //if trillions\r\n                roundKey = 'T';\r\n            } else if (value.toString().length >= 10) {\r\n                //if billions\r\n                roundKey = 'B';\r\n            } else if (value.toString().length >= 7) {\r\n                //if millions\r\n                roundKey = 'M';\r\n            } else if (value.toString().length >= 4) {\r\n                //if thousands\r\n                roundKey = 'K';\r\n            } else {\r\n                value = addCommas(value);\r\n            }\r\n\r\n            if (roundKey) {\r\n                value = value * round[roundKey];\r\n                value = Math.round(value * 10) / 10;\r\n                value = value + roundKey;\r\n            }\r\n        } else {\r\n            value = addCommas(value);\r\n        }\r\n    } else {\r\n        value = addCommas(value);\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\nformatLargeCurrency (value) {\r\n    var formatLargeNumber = window.filters.formatLargeNumber;\r\n\r\n    if (value > 0) {\r\n        return '$' + formatLargeNumber(value);\r\n    } else {\r\n        return value;\r\n    }\r\n},\r\n\r\nformatPercentage (value) {\r\n    return value + '%';\r\n},\r\n\r\ntitleCase (title) {\r\n    return title.toTitleCase();\r\n},\r\n\r\nglobalFormat (value, format) {\r\n    if (format) {\r\n        switch (format.toString().toLowerCase()) {\r\n            case '$':\r\n                if (value === null || value === \"\") {\r\n                    return \"\";\r\n                }\r\n                return window.filters.formatCurrency(value);\r\n            case '%':\r\n                if (value !== null && value !== \"\") {\r\n                    return window.filters.formatPercentage(value);\r\n                }\r\n            case ',':\r\n                if (typeof value === 'number') {\r\n                    return window.filters.addCommas(value);\r\n                } else {\r\n                    return value;\r\n                }\r\n                break;\r\n            case 'count':\r\n                if (typeof value === 'number' && value !== 0) {\r\n                    return window.filters.addCommas(value);\r\n                } else {\r\n                    if (value === 0) {\r\n                        return '';\r\n                    }\r\n                    return value;\r\n                }\r\n                break;\r\n            case 'year':\r\n            case 'fy':\r\n                return value;\r\n            case 'disclosure':\r\n                if (value !== null) {\r\n                    return value;\r\n                }\r\n                return 'D';\r\n            case 'mon_yyyy':\r\n                if (value !== null) {\r\n                    return window.filters.formatDate(value, format);\r\n                }\r\n                break;\r\n            case 'round':\r\n                if (value !== null) {\r\n                    return window.filters.round(value);\r\n                }\r\n                break;\r\n\r\n        }\r\n\r\n        return value;\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\naddSymbolInHeader (value, colHeader, index) {\r\n    if (colHeader && colHeader[index] !== null && colHeader[index] !== undefined && value && value !== \"\") {\r\n        switch (colHeader[index].toString().toLowerCase()) {\r\n            case '%':\r\n                return value + '%';\r\n        }\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\nchartAxisFormat (value, colHeader, format) {\r\n    if (format) {\r\n        switch (format.toString().toLowerCase()) {\r\n            case '$':\r\n                return window.filters.formatLargeCurrency(value);\r\n            case '%':\r\n                return window.filters.formatPercentage(value);\r\n            case 'year':\r\n            case 'fy':\r\n                return value;\r\n        }\r\n    }\r\n\r\n    if (colHeader) {\r\n        colHeader = colHeader.toString().toLowerCase();\r\n\r\n        if (colHeader.indexOf('year') !== -1 || colHeader.indexOf('fy') !== -1) {\r\n            return value;\r\n        }\r\n\r\n        if (colHeader.indexOf('%') !== -1) {\r\n            return window.filters.formatPercentage(value);\r\n        }\r\n    }\r\n\r\n    if (typeof value === 'number') {\r\n        return window.filters.formatLargeNumber(value);\r\n    } else {\r\n        return value;\r\n    }\r\n},\r\n\r\nglobalChartTooltipFormat(value, colHeader, format) {\r\n    if (value !== null && value !== undefined && value !== '') {\r\n        if (format) {\r\n            switch (format.toString().toLowerCase()) {\r\n                case '$':\r\n                    return window.filters.formatCurrency(value);\r\n                case '%':\r\n                    return window.filters.formatPercentage(value);\r\n                case 'year':\r\n                case 'fy':\r\n                    return value;\r\n            }\r\n        }\r\n\r\n        if (colHeader) {\r\n            colHeader = colHeader.toString().toLowerCase();\r\n\r\n            if (colHeader.indexOf('year') !== -1 || colHeader.indexOf('fy') !== -1) {\r\n                return value;\r\n            }\r\n\r\n            if (colHeader.indexOf('%') !== -1) {\r\n                return window.filters.formatPercentage(value);\r\n            }\r\n        }\r\n\r\n        if (typeof value === 'number') {\r\n            return window.filters.addCommas(value);\r\n        } else {\r\n            return value;\r\n        }\r\n    }\r\n\r\n    // return value;\r\n    return 'N/A';\r\n},\r\n\r\nhighlightTerms (value, terms) {\r\n    var termsArray,\r\n        termIndex,\r\n        lowerCaseValue,\r\n        searchMask,\r\n        regEx,\r\n        replaceMask,\r\n        i;\r\n\r\n    if (value !== null && value !== undefined && value !== '') {\r\n        value = value.toString();\r\n        termsArray = terms.toLowerCase().split(' ');\r\n        lowerCaseValue = value.toLowerCase();\r\n\r\n        for (i = 0; i < termsArray.length; i++) {\r\n            termIndex = lowerCaseValue.indexOf(termsArray[i]);\r\n\r\n            if (termIndex !== -1) {\r\n                searchMask = termsArray[i];\r\n                regEx = new RegExp(searchMask + '(?!([^<]+)?>)', 'ig');\r\n                replaceMask = '<span class=\"search-highlight\">' + value.slice(termIndex, termIndex + termsArray[i].length) + '</span>';\r\n\r\n                value = value.replace(regEx, replaceMask);\r\n                lowerCaseValue = value.toLowerCase();\r\n            }\r\n        }\r\n    }\r\n\r\n    return value;\r\n},\r\n\r\n//thank you: https://stackoverflow.com/questions/35070271/vue-js-components-how-to-truncate-the-text-in-the-slot-element-in-a-component\r\ntruncate (text, stop, clamp) {\r\n    if(text == undefined) return \"\";\r\n    return text.slice(0, stop) + (stop < text.length ? clamp || '...' : '')\r\n}\r\n}\r\n\r\n","import './global';\r\nimport './searchFieldSpecs';\r\nimport './sharedSpecs';\r\nimport './globalMixins';\r\nimport * as bootstrap from 'bootstrap';\r\nwindow.bootstrap = bootstrap;\r\n\r\nimport Vue from 'vue';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport store from './store';\r\nimport lodash from 'lodash';\r\nimport {createApp, h} from 'vue';\r\nimport bus from '@/shared/event-bus.js';\r\nimport 'echarts/lib/component/tooltip';\r\n\r\nimport '@fortawesome/fontawesome-free/css/all.css';\r\n// consumption model....see https://bootstrap-vue.org/docs#using-module-bundlers for other options including importing scss versions...\r\nimport { BootstrapVueNext } from 'bootstrap-vue-next';\r\nimport \"bootstrap-vue-next/dist/bootstrap-vue-next.css\";\r\n\r\nimport './filters';\r\n\r\n/*-- Google Analytics --*/\r\nlet measurementId = '';\r\nif (window.location.hostname === 'reporter.nih.gov') {\r\n    measurementId = 'G-VT0D0WJCKB';\r\n} else if (window.location.hostname === 'reporter.stage.era.nih.gov') {\r\n    measurementId = 'G-WDZSG9R7G4';\r\n} else {\r\n    measurementId = 'G-YL4VDGXB51';\r\n}\r\n\r\nvar script = document.createElement('script');\r\nscript.src = 'https://www.googletagmanager.com/gtag/js?id='+measurementId;\r\ndocument.head.appendChild(script);\r\nscript = document.createElement('script');\r\nscript.innerHTML = \"window.dataLayer = window.dataLayer || []; \\\r\n\tfunction gtag(){dataLayer.push(arguments);}\t\\\r\n\tgtag('js', new Date());\t \\\r\n\tgtag('config', '\" + measurementId + \"');\";\r\ndocument.head.appendChild(script);\r\n\r\nexport const EventBus = bus;\r\nexport const app = createApp({\r\n    router,\r\n    store,\r\n    render: () => ( h(App)),\r\n    async created () {\r\n        var requestedURLs = [\r\n            'reporter_api_base_url',\r\n            'reporter_feedback_url',\r\n            'report_base_url',\r\n            'reporter_nih_url',\r\n            'reporter_google_map_api_key',\r\n            'reporter_map_display',\r\n            'reporter_project_search_error_message',\r\n            'reporter_project_search_max_core_projects_limit'\r\n        ];\r\n\r\n        await this.$store.dispatch('getAppSettingsPropertyByNameAction', requestedURLs);\r\n        EventBus.$emit('get:appsettings');\r\n    },\r\n}).use(lodash).use(router).use(BootstrapVueNext).use(store).mount('#app');\r\n\r\napp.$options.$filters = window.filters;\r\n","(function () {\r\n    let latestSat = window.getPreviousMonday(2);\r\n\r\n    window.searchFieldSpecs = {\r\n        'FiscalYear': {\r\n            control: 'MultiSelect',\r\n            title: 'Fiscal Year',\r\n            id: 'fiscal_years',\r\n            placeholder: 'Active Projects',\r\n            urlKeys: ['reporter_intramural_url'],\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: `<b>Fiscal Year (FY) Active Projects:</b> Unless specified, RePORTER searches for the most recent record of projects that have not yet reached their budget end date (in the case of extramural grants), contracts from the most recent fiscal year, or intramural projects from the most recent <a  href=\"reporter_intramural_url\" target=\"_blank\" class=\"no-break\" rel=\"noopener\">annual reports from the NIH intramural programs</a> (information on contracts and intramural projects is updated in RePORTER at the close of each fiscal year). This means that the results of \"Active Projects\" searches may include projects awarded in an earlier fiscal year that are still active (e.g., extramural awards in a no-cost extension period) or not yet updated by the end-of-year intramural project report. RePORTER contains records beginning with FY 1985.\r\n            <p>\r\n            <b>Prior Years:</b> Searches conducted on fiscal years prior to the current year will produce lists of only those awards funded in the chosen fiscal year.</p>`,\r\n            buildHelpText: function () {\r\n                let highestValue = window.getHighestValueInData(this.data);\r\n\r\n                if (highestValue) {\r\n                    return 'Current FY is ' + highestValue;\r\n                }\r\n            },\r\n            change: function (selEle) {\r\n                let currYear = this.$store.state.searchCriteria[this.id],\r\n                    allYearObj = _.filter(currYear, yr => yr.value === 'all'),\r\n                    isAllYearsSel = false;\r\n\r\n                if (allYearObj.length > 0) {\r\n                    isAllYearsSel = true;\r\n                }\r\n\r\n                if (isAllYearsSel) {\r\n                    let otherSelected = selEle.querySelectorAll('li.selected:not([data-value=\"all\"])');\r\n                    for (let j = 0; j < otherSelected.length; j++) {\r\n                        otherSelected[j].classList.remove('selected');\r\n                        otherSelected[j].querySelector(\"button\").click();\r\n                    }\r\n                    let options = selEle.querySelectorAll('li:not(.selected)');\r\n                    for (let i = 0; i < options.length; ++i) {\r\n                        options[i].querySelector(\"button\").setAttribute(\"disabled\", 'disabled');\r\n                        options[i].classList.add('disabled');\r\n                    }\r\n                } else {\r\n                    let options = selEle.querySelectorAll('li');\r\n                    for (let i = 0; i < options.length; ++i) {\r\n                        options[i].querySelector(\"button\").removeAttribute(\"disabled\");\r\n                        options[i].classList.remove('disabled');\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        'AgencyIC': {\r\n            control: 'MultiSelect',\r\n            title: 'Agency/Institute/Center',\r\n            id: 'agencies',\r\n            ui: {\r\n                dropdownWidth: 'wide'\r\n            },\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: `<b>Agency/Institute or Center (IC):</b> The agency or agency component responsible for administering the research grant or contract (Admin IC) or funding (Funding IC) the research. Admin is selected by default. Please note that funding data is only available for NIH, CDC, FDA, AHRQ, and ACF projects. Funding IC data is not available for NIH sub-projects. This may represent a federal department, agency, or sub-agency (institute or center).\r\n            `,\r\n            additionalControl: {\r\n                controlType: 'checkbox',\r\n                label: '',\r\n                options: [\r\n                    {\r\n                        name: 'is_agency_admin',\r\n                        id: 'is_agency_admin',\r\n                        value: true,\r\n                        label: 'Admin'\r\n                    },\r\n                    {\r\n                        name: 'is_agency_funding',\r\n                        id: 'is_agency_funding',\r\n                        value: false,\r\n                        label: 'Funding'\r\n                    }\r\n                ]\r\n            }\r\n        },\r\n        'DepartmentTypes': {\r\n            control: 'MultiSelect',\r\n            title: 'Department Type',\r\n            id: 'dept_types',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            urlKeys: ['report_department_list_url', 'reporter_grant_reassign_guidance_url', 'reporter_era_service_desk_url'],\r\n            tooltipText: '<b>Department Type:</b> Standardized version of the academic department within an institution of higher education. To aid reporting on academic departments, NIH uses a <a href=\"https://report.nih.gov/report_department_list_url\" class=\"no-break\" rel=\"noopener\">standardized list</a>, mapped from the department name provided on the application. Institutional signing officials may initiate a correction using the <a href=\"reporter_grant_reassign_guidance_url\" target=\"_blank\" class=\"no-break\" rel=\"noopener\">Grant Re-assign guidance</a> in the eRA Commons or contact the  <a target=\"_blank\" href=\"reporter_era_service_desk_url\" class=\"no-break\" rel=\"noopener\">eRA Service Desk</a>.'\r\n        },\r\n        'PI': {\r\n            control: 'InputText',\r\n            title: 'Principal Investigator (PI)',\r\n            id: 'pi__field_text',\r\n            fields: {\r\n                'pi_names': {\r\n                    controlType: 'string'\r\n                },\r\n                'pi_profile_ids': {\r\n                    controlType: 'number'\r\n                }\r\n            },\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            // helpText: 'PI Names or Profile IDs, semicolon separated' + nbsp + '(;)'\r\n            helpText: 'PI Names or Profile IDs, semicolon \";\" separated',\r\n            tooltipText: `<b>Principal Investigator/Project Leader:</b> The individual designated by the grantee to direct the project supported by the grant. Searches for projects conducted by a particular individual can either be performed by entering their last name or first name or both. Recommended formats are <i>lastname, firstname</i> or <i>firstname lastname</i> or <i>lastname, firstname middlename/initial</i>.  <p>An implicit wild card search is performed on any name entered.</p>\r\n            <p>A maximum of 1000 PIs separated by semicolon can be searched  at a time. The Project Search Results will show the contact PI at the top and all the other PIs in an alphabetical order below the contact PI.</p>`\r\n        },\r\n        'Organization': {\r\n            control: 'MultiSelect',\r\n            title: 'Organization',\r\n            id: 'org_names_exact_match',\r\n            idLookup: 'org_names',\r\n            idFreeText: 'org_names',\r\n            allowFreeText: true,\r\n            dynamicLookup: true,\r\n            defaultValues: null,\r\n            helpText: 'Enter at least 3 characters to search',\r\n            tooltipText: '<b>Organization:</b> Use to search for an institution that receives a grant, contract or cooperative agreement. <b>The LOOKUP feature will offer selections that meet the 3-character minimum user entry that occurs at the beginning of any word within the full organization name.</b>'\r\n        },\r\n        'ProjectNumber': {\r\n            control: 'InputText',\r\n            title: 'Project Number/Application ID',\r\n            id: 'project_nums__field_text',\r\n            // id: 'project_nums',\r\n            fields: {\r\n                'project_nums': {\r\n                    controlType: 'string'\r\n                },\r\n                'appl_ids': {\r\n                    controlType: 'number'\r\n                }\r\n            },\r\n            // controlType: 'number',\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            matchingStr: '[^a-zA-Z0-9;\\\\-\\\\s]',\r\n            helpText: 'Format: 5R01CA012345-04/ 8515397, semicolon \";\" separated',\r\n            tooltipText: `<b>Project Number:</b> Commonly referred to as a grant number or contract number. For grants, this unique identification number is composed of the type code, activity code, Institute/Center code, serial number, support year, and/or suffix code. You may search for a full or partial project number or using the split project number fields.\r\n                            <p>\r\n                            <b>Application IDs:</b> A unique 7 or 8 digit number assigned to each project number.</p>\r\n                            <p><b>Multiple entries:</b> 1000 Project Numbers / 1000 Application IDs maximum. Entries must be separated by a semi-colon or comma. Project number queries  greater than 100 entries must be in full 5R01CA012345-04 format and any use of implicit wildcard feature will be ignored`,\r\n            alternetFields: ['appl_type_code', 'activity_code', 'ic_code', 'serial_num', 'support_year', 'suffix_code']\r\n        },\r\n        'City': {\r\n            control: 'InputText',\r\n            title: 'City',\r\n            id: 'org_cities',\r\n            controlType: 'string',\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            helpText: null,\r\n            tooltipText: '<b>City:</b> Geographical location (City) of awarded projects.'\r\n        },\r\n        'State': {\r\n            control: 'MultiSelect',\r\n            title: 'State',\r\n            id: 'org_states',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: '<b>State:</b> Geographical location (State) of awarded projects.',\r\n\r\n            dependentField: 'Country',\r\n            // do NOT use arrow function here, or the value\r\n            // of `this` will not be the component\r\n            change: function () {\r\n                let countryId = window.searchFieldSpecs.Country.id;\r\n\r\n                if (this.$store.state.searchCriteria[this.id].length !== 0 && (!window.searchFieldCache[countryId] || (window.searchFieldCache[countryId] && window.searchFieldCache[countryId].length === 0))) {\r\n                    let firstCountry = copyData(this.$store.state.lookup[countryId][0]);\r\n                    // cache previous Country criteria so that it can be\r\n                    // restored if the user clears all State selections\r\n                    window.searchFieldCache[countryId] = copyData(this.$store.state.searchCriteria[countryId]);\r\n\r\n                    this.$store.state.searchCriteria[countryId] = [firstCountry];\r\n                } else if (this.$store.state.searchCriteria[this.id].length === 0) {\r\n                    // restore Country selections if the user clears all State selections\r\n                    if (window.searchFieldCache[countryId]) {\r\n                        this.$store.state.searchCriteria[countryId] = window.searchFieldCache[countryId];\r\n                        window.searchFieldCache[countryId] = null;\r\n                    }\r\n                }\r\n\r\n                let conDistId = window.searchFieldSpecs.CongressionalDistrict.id;\r\n\r\n                var stateObj,\r\n                    districtObj,\r\n                    tempDistrictList = [],\r\n                    controlContainer = document.querySelector('#field-'+conDistId).closest('.search-field.multiselect');\r\n\r\n                if (controlContainer.querySelector('.multiselect__dropdown').classList.contains('open')) {\r\n                    document.querySelector('#field-'+conDistId).blur();\r\n                }\r\n                if (this.$store.state.searchCriteria[this.id].length > 0 && this.$store.state.searchCriteria[conDistId] && this.$store.state.searchCriteria[conDistId].length > 0) {\r\n                    for (let i = 0; i < this.$store.state.searchCriteria[this.id].length; i++) {\r\n                        stateObj = this.$store.state.searchCriteria[this.id][i];\r\n                        for (let j = 0; j < this.$store.state.searchCriteria[conDistId].length; j++) {\r\n                            districtObj = this.$store.state.searchCriteria[conDistId][j];\r\n                            if (districtObj && districtObj.value.indexOf(stateObj.value) !== -1) {\r\n                                tempDistrictList.push(districtObj);\r\n                            }\r\n                        }\r\n                    }\r\n                    //document.getElementById('field-' + conDistId).setAttribute('disabled', false);\r\n                    this.$store.state.searchCriteria[conDistId] = tempDistrictList.length > 0 ? tempDistrictList : null;\r\n                } else {\r\n                    this.$store.state.searchCriteria[conDistId] = [];\r\n                    //document.getElementById('field-' + conDistId).setAttribute('disabled', true);\r\n                }\r\n            }\r\n        },\r\n        'Country': {\r\n            control: 'MultiSelect',\r\n            title: 'Country',\r\n            id: 'org_countries',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: '<b>Country:</b> Geographical location (Country) of awarded projects.',\r\n\r\n            dependentField: 'State',\r\n\r\n            // do NOT use arrow function here, or the value\r\n            // of `this` will not be the component\r\n            change: function () {\r\n                let stateId = window.searchFieldSpecs.State.id,\r\n                    cong_dists = window.searchFieldSpecs.CongressionalDistrict.id,\r\n                    firstCountry = copyData(this.$store.state.lookup[this.id][0]);\r\n\r\n                // check if selection is not just UNITED STATES\r\n                // and remove State selections\r\n                if (!(this.$store.state.searchCriteria[this.id].length === 1 && this.$store.state.searchCriteria[this.id][0] && this.$store.state.searchCriteria[this.id][0].value === firstCountry.value)) {\r\n                    // cache previous State criteria so that it can be\r\n                    // restored if the user resets Country selection\r\n                    window.searchFieldCache[stateId] = copyData(this.$store.state.searchCriteria[stateId]);\r\n                    window.searchFieldCache[cong_dists] = copyData(this.$store.state.searchCriteria[cong_dists]);\r\n\r\n                    // clear State selections\r\n                    this.$store.state.searchCriteria[stateId] = [];\r\n                    this.$store.state.searchCriteria[cong_dists] = [];\r\n                    if (this.$store.state.editSearchCriteria && this.$store.state.editSearchCriteria[stateId]) {\r\n                        this.$store.state.editSearchCriteria[stateId] = [];\r\n                    }\r\n                    if (this.$store.state.editSearchCriteria && this.$store.state.editSearchCriteria[cong_dists]) {\r\n                        this.$store.state.editSearchCriteria[cong_dists] = [];\r\n                    }\r\n                    window.searchFieldCache[this.id] = null;\r\n                } else {\r\n                    // restored States if the user sets Country back to UNITED STATES\r\n                    if (window.searchFieldCache[stateId]) {\r\n                        this.$store.state.searchCriteria[stateId] = window.searchFieldCache[stateId];\r\n                    }\r\n                    if (window.searchFieldCache[cong_dists]) {\r\n                        this.$store.state.searchCriteria[cong_dists] = window.searchFieldCache[cong_dists];\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        'CongressionalDistrict': {\r\n            control: 'MultiSelect',\r\n            title: 'Congressional District',\r\n            id: 'cong_dists',\r\n            defaultValues: null,\r\n            helpText: 'Please select a state first',\r\n            tooltipText: '<b>Congressional District:</b> A territorial division of a state from which a member of the United States House of Representatives is elected. The congressional district to which each grant is assigned is based on the business address of the grantee organization or contractor, not the actual performance site of the research being performed. The search selector is periodically updated to reflect the current listings of congressional districts. Information on historical awards is not updated to reflect changing district information.',\r\n            allowFreeText: false,\r\n            dynamicLookup: true,\r\n            dependentField: 'State',\r\n        },\r\n        'appl_type_code': {\r\n            control: 'InputText',\r\n            title: 'Application Type Code',\r\n            titleHidden: true,\r\n            id: 'appl_type_code',\r\n            controlType: 'number',\r\n            defaultValues: null,\r\n            maxLength: 1,\r\n            helpText: '1',\r\n            matchingStr: '\\\\D',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['activity_code', 'ic_code', 'serial_num', 'support_year', 'suffix_code']\r\n        },\r\n        'activity_code': {\r\n            control: 'InputText',\r\n            title: 'Activity Code',\r\n            titleHidden: true,\r\n            id: 'activity_code',\r\n            controlType: 'string',\r\n            defaultValues: null,\r\n            maxLength: 3,\r\n            helpText: 'R01',\r\n            matchingStr: '[^a-z0-9\\s]',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['appl_type_code', 'ic_code', 'serial_num', 'support_year', 'suffix_code']\r\n        },\r\n        'ic_code': {\r\n            control: 'InputText',\r\n            title: 'IC Code',\r\n            titleHidden: true,\r\n            id: 'ic_code',\r\n            controlType: 'string',\r\n            defaultValues: null,\r\n            maxLength: 2,\r\n            helpText: 'CA',\r\n            matchingStr: '[^a-z]',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['appl_type_code', 'activity_code', 'serial_num', 'support_year', 'suffix_code']\r\n        },\r\n        'serial_num': {\r\n            control: 'InputText',\r\n            title: 'Serial Number',\r\n            titleHidden: true,\r\n            id: 'serial_num',\r\n            controlType: 'number',\r\n            defaultValues: null,\r\n            maxLength: 6,\r\n            helpText: '811099',\r\n            matchingStr: '\\\\D',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['appl_type_code', 'activity_code', 'ic_code', 'support_year', 'suffix_code']\r\n        },\r\n        'support_year': {\r\n            control: 'InputText',\r\n            title: 'Support Year',\r\n            titleHidden: true,\r\n            id: 'support_year',\r\n            controlType: 'number',\r\n            defaultValues: null,\r\n            maxLength: 2,\r\n            helpText: '01',\r\n            matchingStr: '\\\\D',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['appl_type_code', 'activity_code', 'ic_code', 'serial_num', 'suffix_code']\r\n        },\r\n        'suffix_code': {\r\n            control: 'InputText',\r\n            title: 'Suffix Code',\r\n            titleHidden: true,\r\n            id: 'suffix_code',\r\n            controlType: 'number',\r\n            defaultValues: null,\r\n            maxLength: 4,\r\n            helpText: 'A1S1',\r\n            matchingStr: '[^a-z0-9\\s]',\r\n            alternetFields: ['project_nums__field_text'],\r\n            groupFields: ['appl_type_code', 'activity_code', 'ic_code', 'serial_num', 'support_year']\r\n        },\r\n        'PO': {\r\n            control: 'InputText',\r\n            title: 'Program Officer (PO)',\r\n            id: 'po_names',\r\n            controlType: 'string',\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            // helpText: 'PI Names or Profile IDs, semicolon separated' + nbsp + '(;)'\r\n            helpText: 'PO Names, semicolon \";\" separated',\r\n            tooltipText: `<b>Program Officer:</b> The NIH official responsible for the programmatic, scientific, and/or technical aspects of a grant. Searches for projects managed by a particular individual can either be performed by entering their last name or first name or both. Recommended formats are <i>lastname, firstname</i> or <i>firstname lastname</i> or <i>lastname, firstname middlename/initial</i>.  <p>An implicit wild card search is performed on any name entered.</p>\r\n            <p>A maximum of 1000 POs separated by semicolon can be searched  at a time.</p>`\r\n        },\r\n        'SpendingCategories': {\r\n            control: 'MultiSelect',\r\n            title: 'NIH Spending Category',\r\n            id: 'spending_categories',\r\n            ui: {\r\n                dropdownWidth: 'wide'\r\n            },\r\n            defaultValues: null,\r\n            // helpText: 'Available for FY from 2008 to 2018',\r\n            urlKeys: ['report_nih_categorical_spending_url'],\r\n            tooltipText: `<b>NIH Spending Category:</b> One of several historically-reported categories of diseases, conditions, or research areas. Available for fiscal years 2008 and onward, based on a computerized process the NIH uses at the end of each fiscal year to categorize research projects. Projects by Spending Category for each fiscal year are made available the following fiscal year as part of the next President’s Budget request. Only projects administered by NIH are organized into spending categories. Projects of other agencies are not included. RePORTER provides up-to-date award information, including modifications made after the close of each fiscal year. As a result, project listings and award amounts may not match exactly the official year-end NIH Categorical Spending reports at\r\n            <a href=\"https://report.nih.gov/report_nih_categorical_spending_url\" target=\"_blanl\" rel=\"noopener\">https://report.nih.gov/report_nih_categorical_spending_url</a>`,\r\n            // matchingStr: '^(200[8-9]|201[0-8])$',\r\n            // dependentField: 'FiscalYear',\r\n            additionalControl: {\r\n                controlType: 'radio',\r\n                label: 'Combine multiple categories with',\r\n                defaultValues: 'false',\r\n                options: [\r\n                    {\r\n                        name: 'match_all_spending_categories',\r\n                        id: 'match_all_spending_categories',\r\n                        value: 'true',\r\n                        label: 'AND'\r\n                    },\r\n                    {\r\n                        name: 'match_all_spending_categories',\r\n                        id: 'match_all_spending_categories',\r\n                        value: 'false',\r\n                        label: 'OR'\r\n                    }\r\n                ]\r\n            }\r\n        },\r\n        'AwardTypes': {\r\n            control: 'MultiSelect',\r\n            title: 'Award Type',\r\n            id: 'award_types',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: `<b>Award Type:</b> From the standard award types, RePORTER has created four groupings: New (type 1s), Competing Renewal (types 2, 4, and 9), Noncompeting (types 4, 5, 6, 7 and 8), and Revision or Supplement (type 3).\r\n`\r\n        },\r\n        'ProjectStartDate': {\r\n            control: 'InputDate',\r\n            title: 'Project Start Date',\r\n            id: 'project_start_date',\r\n            defaultValues: null,\r\n            helpText: 'Format: MM/DD/YYYY',\r\n            tooltipText: `<b>Project Start Date:</b> Date the project began. You can manually enter the date or click the calendar icon to bring up the calendar date selector.\r\n            <p>\r\n            By default, the calendar tool has the  \"Before\" option selected, which allows projects with start date before the entered date to be searched. You may also chose \"Range\" or \"After\" options.</p>`,\r\n            dependentField: 'ProjectEndDate'\r\n        },\r\n        'ProjectEndDate': {\r\n            control: 'InputDate',\r\n            title: 'Project End Date',\r\n            id: 'project_end_date',\r\n            defaultValues: null,\r\n            helpText: 'Format: MM/DD/YYYY',\r\n            tooltipText: `<b>Project End Date:</b> Date the project ended. You can manually enter the date or click the calendar icon to bring up the calendar date selector.\r\n            <p>By default, the calendar tool has the  \"Before\" option selected, which allows projects with end date before the entered date to be searched. You may also chose \"Range\" or  \"After\" options.</p>`,\r\n            dependentField: 'ProjectStartDate'\r\n        },\r\n        'AwardNoticeDate': {\r\n            control: 'InputDate',\r\n            title: 'Award Notice Date',\r\n            id: 'award_notice_date',\r\n            defaultValues: null,\r\n            helpText: 'Format: MM/DD/YYYY',\r\n            tooltipText: `<b>Award Notice Date:</b> Date on which the award notice was issued. The award notice is the legally binding document that notifies the grantee that an award has been made, contains all terms and conditions of the award, and documents the obligation of Federal funds.\r\n            <p>By default, the calendar tool has the  \"Before\" option selected, which allows projects with award notice date before the entered date to be searched. You may also chose \"Range\" or  \"After\" options.</p>`\r\n        },\r\n        'ActivityCodes': {\r\n            control: 'MultiSelect',\r\n            title: 'Activity Code',\r\n            id: 'activity_codes',\r\n            defaultValues: null,\r\n            ui: {\r\n                collapseAll: true\r\n            },\r\n            helpText: null,\r\n            urlKeys: ['reporter_grant_glosarry_url'],\r\n            tooltipText: `<p><b>Activity Code:</b> A 3-character code, applied to various funding mechanisms to identify a specific category of extramural research activity. A comprehensive list of activity codes currently in use may be found on the Types of Grant Programs Web page.\r\n            </p>\r\n            Several major groupings of activities and some commonly-used activity codes may be selected in RePORTER. The major groupings are:\r\n            <ul>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#R\" rel=\"noopener\">Research Grants</a></li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#R\" rel=\"noopener\">Research Project Grants</a>\r\n                    <ul>\r\n                        <li>R01 Equivalents: R01, R23, R29, R37, DP2, and RF1 activity codes. (The R23 and R29 are no longer used by NIH and apply to historical searches only).</li>\r\n                        <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#R\" rel=\"noopener\">Research Career Awards</a></li>\r\n                        <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#S\" rel=\"noopener\">SBIR/STTR</a></li>\r\n                    </ul>\r\n                </li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#S\" rel=\"noopener\">Research Center Grants</a>\r\n                    <ul>\r\n                        <li>Construction Grants</li>\r\n                    </ul>\r\n                </li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#C\" rel=\"noopener\">Cooperative Agreements</a></li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#F\" rel=\"noopener\">Fellowships</a></li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#T\" rel=\"noopener\">Training Grants</a></li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#C\" rel=\"noopener\">Contracts (R&D)</a></li>\r\n                <li><a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#I\" rel=\"noopener\">Intramural</a></li>\r\n                <li>Resources: Grants for institutional resources such as modernization of existing research facilities.\r\n                    <ul>\r\n                        <li>Other Research</li>\r\n                        <li>All Other</li>\r\n                    </ul>\r\n                </li>\r\n            </ul>\r\n            </p>`,\r\n        },\r\n        'CooperativeAgreement': {\r\n            control: 'MultiSelect',\r\n            title: 'Cooperative Agreement',\r\n            id: 'cooperative_agreement_codes',\r\n            defaultValues: null,\r\n            ui: {\r\n                collapseAll: true\r\n            },\r\n            helpText: null,\r\n            urlKeys: ['reporter_grant_glosarry_url'],\r\n            tooltipText: `<p><b>Cooperative Agreement:</b> A legal instrument of financial assistance between a Federal awarding agency or pass-through entity and a non-Federal entity. Cooperative agreements are indicated by a “U” in the activity code or mechanism (e.g. U01, U54).\r\n            </p><p>See also definitions for <a target=\"_blank\" class=\"no-break\" href=\"reporter_grant_glosarry_url#CooperativeAgreement\" rel=\"noopener\">Cooperative agreements</a>\r\n            </p>`,\r\n        },\r\n        'OrganizationTypes': {\r\n            control: 'MultiSelect',\r\n            title: 'Organization Type',\r\n            id: 'organization_types',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            urlKeys: ['report_organization_type_list_url', 'reporter_grant_reassign_guidance_url', 'reporter_era_service_desk_url'],\r\n            tooltipText: '<b>Organization Type:</b> Standardized version of the type of organization, classified according to the function, mission, or service of the organization receiving a grant, contract, or cooperative agreement. To aid reporting on organizations, NIH uses a <a href=\"https://report.nih.gov/report_organization_type_list_url\" class=\"no-break\" rel=\"noopener\">standardized list</a>, mapped from information provided on the application. Institutional signing officials may initiate a correction using the <a href=\"reporter_grant_reassign_guidance_url\" target=\"_blank\" class=\"no-break\" rel=\"noopener\">Grant Re-assign guidance</a> in the eRA Commons or contact the <a target=\"_blank\" href=\"reporter_era_service_desk_url\" class=\"no-break\" rel=\"noopener\">eRA Service Desk</a>.'\r\n        },\r\n        'FOA': {\r\n            control: 'InputText',\r\n            title: 'Opportunity Number',\r\n            id: 'foa',\r\n            type: 'string',\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            urlKeys: ['reporter_nih_guide_for_grants_contracts_url'],\r\n            helpText: 'Format: RFA-IC-09-003 or PA-09-003, semicolon \";\" separated<br><a href=\"reporter_nih_guide_for_grants_contracts_url\" target=\"_blank\" rel=\"noopener\">Funding Opportunities and Notices</a>',\r\n            tooltipText: `<b>Opportunity Number (Funding Opportunity Announcement):</b> RePORTER provides the ability to search for projects originally solicited under a request for applications (RFA) or program announcement (PA) issued in the <a href=\"reporter_nih_guide_for_grants_contracts_url\" target=\"_blank\" class=\"no-break\" rel=\"noopener\">NIH Guide for Grants and Contracts</a>.  RFA numbers take the format RFA-IC-fy-nnn, where IC is the Agency/Institute/Center issuing the RFA, fy is the fiscal year of the solicitation, and nnn is a serial number. PA numbers are formatted as PA-fy-nnn.\r\n            <p>\r\n            You may search for a full or partial Opportunity Number. </p>\r\n            <p>\r\n            When searching for multiple Opportunity Number numbers at a single time, recommended limit is 20 numbers, separated by semi-colon or comma.</p>`,\r\n        },\r\n        'StudySections': {\r\n            control: 'MultiSelect',\r\n            title: 'Study Section',\r\n            id: 'study_sections',\r\n            defaultValues: null,\r\n            ui: {\r\n                collapseAll: true\r\n            },\r\n            helpText: 'Standing CSR study sections only',\r\n            urlKeys: ['reporter_study_section_code_url'],\r\n            tooltipText: `<b>Study Section:</b> A group responsible for the review of grant applications in an area of science. Study sections are grouped into larger Integrated Review Groups (IRGs),  and into Fellowship and SBIR/STTR Study Sections. Study section codes and rosters of current study sections can be found at <a href=\"reporter_study_section_code_url\" target=\"_blank\" rel=\"noopener\">reporter_study_section_code_url</a>.`,\r\n        },\r\n        'covid19': {\r\n            control: 'MultiSelect',\r\n            title: 'NIH COVID-19 Response',\r\n            id: 'covid19',\r\n            defaultValues: null,\r\n            urlKeys: ['reporter_public_info_corona_url', 'reporter_nih_research_corona_url', 'reporter_hss_grant_funding_corona_url'],\r\n            tooltipText: `<b>NIH COVID-19 Response:</b> These special selectors will return projects awarded to study COVID-19 and related topics, as funded under:\r\n                <ul><li>RegCV - NIH regular appropriations funding</li>\r\n                <li>CV - Coronavirus Preparedness and Response Supplemental Appropriations Act, 2020</li>\r\n                <li>C3 - CARES Act (Coronavirus Aid, Relief, and Economic Security Act)</li>\r\n                <li>C4 - Paycheck Protection Program and Health Care Enhancement Act</li>\r\n                <li>C5 - Coronavirus Response and Relief Supplemental Appropriations Act, 2021</li>\r\n                <li>C6 - American Rescue Plan Act of 2021</li></ul>\r\n                <p>These special selectors can be used in any combination and also can be combined with other search criteria on this page.</p>\r\n                <p>Currently, this filtered search item applies only to parent grants, grant revisions, and grant supplements. As of Spring 2021, aligned with release of the President’s budget for FY2022, these grant records and the records for COVID-19 contracts, intramurals, and subprojects all will be reported through the Coronaviruses NIH spending category.</p>\r\n                <p><b>Administrative Supplement:</b> A request for (or the award of) additional funds during a current project period to provide for an increase in costs due to unforeseen circumstances. All additional costs <b><u><i>must be within the scope of the peer reviewed and approved project</i></u></b>.\r\n                </p>\r\n                <p><b>Competitive Revision:</b> A request for (or the award of) additional funds during a current project period to support new or additional activities, which are not identified in the current award and <b><u><i>reflect an expansion of the scope of the grant-approved activities</i></u></b>.\r\n                </p>\r\n                <p>Get the latest public health information from CDC: <a href=\"reporter_public_info_corona_url\" target=\"_blank\" rel=\"noopener\">reporter_public_info_corona_url</a></p>\r\n                <p>Get the latest NIH research information: <a href=\"reporter_nih_research_corona_url\" target=\"_blank\" rel=\"noopener\">reporter_nih_research_corona_url</a></p>\r\n                <p>Get HHS grant funding under these special appropriations: <a href=\"reporter_hss_grant_funding_corona_url\" target=\"_blank\" rel=\"noopener\">reporter_hss_grant_funding_corona_url</a></p>`\r\n        },\r\n        'ARRASearch': {\r\n            control: 'MultiSelect',\r\n            title: 'NIH ARRA Selection',\r\n            id: 'arra_type',\r\n            defaultValues: null,\r\n            tooltipText: `<b>NIH ARRA Selection:</b> NIH ARRA Selection: Research projects funded, entirely or in part, with funds appropriated under the American Recovery and Reinvestment Act of 2009.`\r\n        },\r\n        'AwardAmountRange': {\r\n            control: 'InputRange',\r\n            title: 'Award Size',\r\n            id: 'award_amount_range',\r\n            defaultValues: null,\r\n            helpText: 'Only for NIH, CDC, FDA, AHRQ, and ACF',\r\n            tooltipText: `<b>Award Size:</b> Only awards greater or less than the amount entered will be shown on the hit list. Awarded amounts are total costs (direct + indirect costs) awarded in the fiscal year indicated on the project record.\r\n            <p>You may manually enter the award range or use the slider to pick the minimum or maximum awards.</p>`,\r\n            matchingStr: '\\\\D',\r\n        },\r\n        'ExcludeSubprojects': {\r\n            control: 'ControlList',\r\n            title: 'Exclude Subprojects',\r\n            controlType: 'checkbox',\r\n            id: 'exclude_subprojects',\r\n            defaultValues: false,\r\n            helpText: null,\r\n            tooltipText: `<b>Exclude Subprojects:</b> On selection, Subprojects will not be shown on hit list.`\r\n        },\r\n        'multiplePIOnly': {\r\n            control: 'ControlList',\r\n            title: 'Multi-PI Only',\r\n            controlType: 'checkbox',\r\n            id: 'multi_pi_only',\r\n            defaultValues: false,\r\n            helpText: null,\r\n            tooltipText: `<b>Multi-PI Only:</b> Along with any other filter criteria entered, only projects with more than one PI assigned to that project will be selected. The Project Search Results will show the contact PI at the top and all the other PIs in an alphabetical order below the contact PI.`\r\n        },\r\n        'newlyAddedProjectsOnly': {\r\n            control: 'ControlList',\r\n            title: 'Newly Added Projects Only',\r\n            controlType: 'checkbox',\r\n            id: 'newly_added_projects_only',\r\n            defaultValues: false,\r\n            helpText: `Project added since ` + latestSat,\r\n            tooltipText: ``\r\n        },\r\n        'fundingMechanisms': {\r\n            control: 'MultiSelect',\r\n            title: 'Funding Mechanism',\r\n            id: 'funding_mechanism',\r\n            // placeholder: 'All Years',\r\n            defaultValues: null,\r\n            helpText: null,\r\n            tooltipText: `<b>Funding Mechanism:</b> The options in RePORTER include the major mechanism categories used in NIH budget mechanism tables for the President’s budget.`\r\n        },\r\n        'outcomesOnly': {\r\n            control: 'ControlList',\r\n            title: 'Projects with Outcomes Only',\r\n            controlType: 'checkbox',\r\n            id: 'outcomes_only',\r\n            defaultValues: false,\r\n            tooltipText: `<b>Projects with Outcomes Only:</b> Along with any other filter criteria entered, only projects with Outcomes will be selected. These projects will either have a Final or Interim Research Performance Progress Report (RPPR) submitted after October 1, 2017.`\r\n        },\r\n        'SearchText': {\r\n            control: 'InputText',\r\n            title: '',\r\n            id: 'search_text',\r\n            ui: {\r\n                rows: '3',\r\n                showCount: true,\r\n                checkXSS: true\r\n            },\r\n            defaultValues: null,\r\n            dependentField: 'search_field',\r\n            urlKeys: ['report_rcdc_thesaurus_url'],\r\n            tooltipText: `<b>Text Search:</b> Text search of project titles, abstracts, and scientific terms. If the \"And\" logic is selected (the default), RePORTER finds projects in which all of the search terms are found within the title, abstract, or scientific terms. If the \"Or\" logic is used, RePORTER finds projects that contain at least one of the terms entered. For example, using the default \"And\" search, a search on brain disorder will retrieve projects with both \"brain\" and \"disorder\" in their title, abstract, or scientific terms. Changing the logic to \"Or\" will retrieve all projects with either \"brain\" or \"disorder\" in these fields. Use quotes around the entered text to search for exact phrases. Please reference <a class=\"no-break\" href=\"https://report.nih.gov/report_rcdc_thesaurus_url\" rel=\"noopener\">RCDC Thesaurus</a> for scientific terms.\r\n            <p>The \"Advanced\" logic option provides additional capability to narrow selection criteria more precisely and evaluate complex entries such as chemical references.</p>\r\n            <p>Text search automatically disregards certains common stopwords like a, an, and, are, as, at, be, of, on, or, into, is, it, etc. Wildcard is not supported in current text search.</p>`,\r\n            maxLength: 2500\r\n        },\r\n        'Operator': {\r\n            control: 'ControlList',\r\n            title: 'Text Search (Logic)',\r\n            id: 'operator',\r\n            defaultValues: 'and',\r\n            controlType: 'radio',\r\n            tooltipText: '',\r\n            maxLength: null,\r\n            options: [\r\n                {\r\n                    name: 'text_search_operator',\r\n                    id: 'operator',\r\n                    value: 'and',\r\n                    label: 'AND',\r\n                    tooltipText: '<b>And:</b> Find projects in which all of the search terms are found. For example, a search on brain disorder will retrieve projects containing both \"brain\" and \"disorder\". Maximum of 2500 characters including spaces are allowed at a time.'\r\n                },\r\n                {\r\n                    name: 'text_search_operator',\r\n                    id: 'operator',\r\n                    value: 'or',\r\n                    label: 'OR',\r\n                    tooltipText: '<b>Or:</b> Find projects that contain at least one of the search terms entered. For example, a search on brain disorder will retrieve all projects containing either \"brain\" or \"disorder\". Maximum of 2500 characters including spaces are allowed at a time.'\r\n                },\r\n                {\r\n                    name: 'text_search_operator',\r\n                    id: 'operator',\r\n                    value: 'advanced',\r\n                    label: 'Advanced',\r\n                    tooltipText: `<b>Advanced:</b> Boolean search with following operands:\r\n                    <p></p><p>\r\n                    <p><b>and</b> - to search for all terms, ex: breast and cancer</p>\r\n                    <p><b>or</b> – to search for any term, ex: cancer or tumor</p>\r\n                    <p><b>not</b> – to exclude a term from search, ex: cancer not tumor</p>\r\n                    <p><b>double-quoted (\" \")</b> – to search for exact phrase, ex: \"lung cancer\"</p>\r\n                    <p><b>parenthesis</b> - to group the search terms, ex: (breast and cancer) or tumor</p>\r\n                    <p>You can mix and match multiple operands, for ex:(breast and cancer or \"lung cancer\") not tumor</p>`\r\n                }\r\n            ]\r\n        },\r\n        'TextSearchField': {\r\n            control: 'ControlList',\r\n            title: 'Limit Project search to',\r\n            id: 'search_field',\r\n            controlType: 'checkbox',\r\n            tooltipText: '',\r\n            maxLength: null,\r\n            defaultValues: [\"projecttitle\", \"terms\", \"abstracttext\"],\r\n            dbValues: [\"all\"],\r\n            dependentField: 'search_text',\r\n            options: [\r\n                {\r\n                    name: 'search_field_title',\r\n                    id: 'search_field',\r\n                    value: 'projecttitle',\r\n                    label: 'Project Title',\r\n                    tooltipText: ''\r\n                },\r\n                {\r\n                    name: 'search_field_terms',\r\n                    id: 'search_field',\r\n                    value: 'terms',\r\n                    label: 'Project Terms',\r\n                    tooltipText: ''\r\n                },\r\n                {\r\n                    name: 'search_field_abstract',\r\n                    id: 'search_field',\r\n                    value: 'abstracttext',\r\n                    label: 'Project Abstracts',\r\n                    tooltipText: ''\r\n                }\r\n            ],\r\n            tooltipText: `Text can be searched from up to three sources: Project Title, Project Terms, and Project Abstract. Selecting these sources individually or in combination includes them in the search. Selecting none of the sources has the same effect as selecting all of them.`\r\n        },\r\n        'MatchmakerText': {\r\n            control: 'InputText',\r\n            title: 'Enter abstracts or other scientific text to find potential Program Officials, ICs, and review panels for your research.',\r\n            id: 'matchmaker_text',\r\n            ui: {\r\n                rows: '3',\r\n                showCount: true,\r\n                hideFieldCount: true,\r\n                checkXSS: true\r\n            },\r\n            defaultValues: null,\r\n            tooltipText: `<b>Matchmaker:</b> Enter abstracts or other scientific text and Matchmaker will return lists of similar projects from RePORTER or program officials associated with those projects. These matches are based on the terms and concepts used in the submitted text. Up to 15,000 characters are permitted. Matchmaker summarizes the projects by the program official, institute or center, review panel, and activity code.\r\n                <p>Terms will be weighted by the frequency of appearance in the text submitted. The process is automated and confidential. The Matchmaker system does not track and store submitted text.</p>`,\r\n            maxLength: 15000\r\n        },\r\n        'MatchmakerField': {\r\n            control: 'ControlList',\r\n            title: '',\r\n            id: 'matchmaker_field',\r\n            defaultValues: 'project',\r\n            controlType: 'radio',\r\n            tooltipText: '',\r\n            maxLength: null,\r\n            options: [\r\n                {\r\n                    name: 'matchmaker_field',\r\n                    id: 'matchmaker_field',\r\n                    value: 'project',\r\n                    label: 'Similar Projects',\r\n                    tooltipText: ''\r\n                },\r\n                {\r\n                    name: 'matchmaker_field',\r\n                    id: 'matchmaker_field',\r\n                    value: 'po',\r\n                    label: 'Similar Program Officials',\r\n                    tooltipText: ''\r\n                }\r\n            ]\r\n        },\r\n        'PublicationsText': {\r\n            control: 'InputText',\r\n            title: 'Enter PubMed IDs (PMID) or PubMed Central IDs (PMC ID) to find publications associated with extramural or intramural funded projects.',\r\n            id: 'publications_text',\r\n            ui: {\r\n                rows: '3',\r\n                showCount: true,\r\n                hideFieldCount: false,\r\n                checkXSS: true\r\n            },\r\n            defaultValues: null,\r\n            maxSelection: 1000,\r\n            maxLength: 15000\r\n        },\r\n        'PublicationsField': {\r\n            control: 'ControlList',\r\n            title: '',\r\n            id: 'publications_field',\r\n            defaultValues: 'pm_id',\r\n            controlType: 'radio',\r\n            tooltipText: '',\r\n            maxLength: null,\r\n            options: [\r\n                {\r\n                    name: 'publications_field',\r\n                    id: 'publications_field',\r\n                    value: 'pm_id',\r\n                    label: 'PMID',\r\n                    tooltipText: ''\r\n                },\r\n                {\r\n                    name: 'publications_field',\r\n                    id: 'publications_field',\r\n                    value: 'pmc_id',\r\n                    label: 'PMC ID',\r\n                    tooltipText: ''\r\n                }\r\n            ]\r\n        },\r\n    };\r\n})();\r\n","window.sharedSpecs = {\r\n    eCharts: {\r\n        fontFamily: 'Helvetica Neue, Helvetica, Arial, sans-serif',\r\n        color: [\r\n            '#084081',\r\n            '#22AA3F',\r\n            '#67c1cb',\r\n            '#b4e2ba',\r\n            '#faecaf',\r\n            '#f7bb6c',\r\n            '#f78c55',\r\n            '#C54A53',\r\n\r\n            '#084081',\r\n            '#22AA3F',\r\n            '#67c1cb',\r\n            '#b4e2ba',\r\n            '#faecaf',\r\n            '#f7bb6c',\r\n            '#f78c55',\r\n            '#C54A53',\r\n\r\n            '#084081',\r\n            '#22AA3F',\r\n            '#67c1cb',\r\n            '#b4e2ba',\r\n            '#faecaf',\r\n            '#f7bb6c',\r\n            '#f78c55',\r\n            '#C54A53',\r\n\r\n            '#084081',\r\n            '#22AA3F',\r\n            '#67c1cb',\r\n            '#b4e2ba',\r\n            '#faecaf',\r\n            '#f7bb6c',\r\n            '#f78c55',\r\n            '#C54A53',\r\n        ],\r\n        legend: {\r\n            // type: 'scroll',\r\n            align: 'left',\r\n            right: 6,\r\n            top: 0,\r\n            itemWidth: 14,\r\n            itemHeight: 14\r\n        },\r\n        tooltip: {\r\n            confine: true,\r\n            trigger: 'item',\r\n            // triggerOn: 'click',\r\n            axisPointer: {\r\n                shadowStyle: {\r\n                    color: 'rgba(8, 130, 220, 0.1)'\r\n                },\r\n                type: 'shadow',\r\n                z: '0',\r\n            }\r\n        },\r\n        grid: {\r\n            top: '30',\r\n            left: '35',\r\n            right: '30',\r\n            bottom: '20',\r\n            containLabel: true\r\n        },\r\n        symbol: 'circle',\r\n        symbolSize: 8,\r\n        itemStyle: {\r\n            normal: {\r\n                borderWidth: 2\r\n            }\r\n        },\r\n        lineStyle: {\r\n            normal: {\r\n                // color: colors[i],\r\n                // shadowColor: 'rgba(0, 0, 0, 0.15)',\r\n                // shadowBlur: 5,\r\n                width: 3\r\n            }\r\n        }\r\n    },\r\n    summaryPresets: [\r\n        {\r\n            name: 'Administering Institute/Center',\r\n            value: 'Agency'\r\n        },\r\n        {\r\n            name: 'Funding Institute/Center',\r\n            value: 'FundingIC'\r\n        }, \r\n        {\r\n            name: 'Fiscal Year',\r\n            value: 'FiscalYear'\r\n        },\r\n        {\r\n            name: 'Funding Mechanism',\r\n            value: 'fundingMechanism'\r\n        },\r\n        {\r\n            name: 'Activity Code',\r\n            value: 'activityCode'\r\n        },\r\n        {\r\n            name: 'Organization',\r\n            value: 'organization'\r\n        },\r\n        {\r\n            name: 'State',\r\n            value: 'StateCode'\r\n        },\r\n        {\r\n            name: 'Congressional District',\r\n            value: 'congDist'\r\n        },\r\n        {\r\n            name: 'Principal Investigator',\r\n            value: 'PrincipalInvestigator'\r\n        },\r\n        {\r\n            name: 'Country',\r\n            value: 'Country'\r\n        }\r\n    ]\r\n}","import {reactive} from \"vue\";\r\n\r\nconst state = reactive({\r\n    screen: {}\r\n});\r\n\r\n/* This assumes you're using default bootstrap breakpoint names */\r\n/* You need to hardcode the breakpoint values if you want to support IE11 */\r\nconst style = getComputedStyle(document.body);\r\nconst xs = style.getPropertyValue(\"--breakpoint-xs\") ? style.getPropertyValue(\"--breakpoint-xs\").replace(\"px\", \"\") : 576;\r\nconst sm = style.getPropertyValue(\"--breakpoint-sm\") ? style.getPropertyValue(\"--breakpoint-sm\").replace(\"px\", \"\") : 768;\r\nconst md = style.getPropertyValue(\"--breakpoint-md\") ? style.getPropertyValue(\"--breakpoint-md\").replace(\"px\", \"\") : 992;\r\nconst lg = style.getPropertyValue(\"--breakpoint-lg\") ? style.getPropertyValue(\"--breakpoint-lg\").replace(\"px\", \"\") : 1200;\r\nconst xl = style.getPropertyValue(\"--breakpoint-xl\") ? style.getPropertyValue(\"--breakpoint-xl\").replace(\"px\", \"\") : 1400;\r\n\r\nfunction onResize () {\r\n    const width = window.innerWidth;\r\n\r\n    /* Not really sure how to properly define gt or lt */\r\n    state.screen = {\r\n        xs: width >= xs && width < sm,\r\n        sm: width >= sm && width < md,\r\n        md: width >= md && width < lg,\r\n        lg: width >= lg && width < xl,\r\n        xl: width >= xl,\r\n        /* Greater than */\r\n        gt: {\r\n            xs: width >= xs,\r\n            sm: width >= sm,\r\n            md: width >= md,\r\n            lg: width >= lg,\r\n            xl: width >= xl\r\n        },\r\n        /* Less than */\r\n        lt: {\r\n            xs: width < sm,\r\n            sm: width < md,\r\n            md: width < lg,\r\n            lg: width < xl,\r\n            xl: width < 9999\r\n        }\r\n    };\r\n}\r\n\r\n/* Might want to debounce the event, to limit amount of calls */\r\nwindow.calculateViewPortSize = onResize;\r\nonResize();\r\n\r\nexport default state;","// eventBus.js\r\nimport emitter from 'tiny-emitter/instance'\r\n\r\nexport default {\r\n  $on: (...args) => emitter.on(...args),\r\n  $once: (...args) => emitter.once(...args),\r\n  $off: (...args) => emitter.off(...args),\r\n  $emit: (...args) => emitter.emit(...args)\r\n}","import globalMixins from '@/globalMixins';\r\nimport { mapActions, mapGetters } from 'vuex';\r\n\r\n\r\nexport default {\r\n    mixins: [globalMixins], //this is not actually a Vue Global Mixin!\r\n\r\n    computed: {\r\n        ...mapGetters(['currentQueryDetails', 'searchCriteria'])\r\n    },\r\n    methods: {\r\n\r\n        ...mapActions(['setCurrentQueryDetailsAction', 'setSearchType', 'setSearchCriteria', 'setEditSearchCriteria', 'setExportCriteria']),\r\n\r\n        //called from QueryBridge\r\n        refreshSearchCriteriaAndRoute(searchId) { //reusing legacy logic from ProjectsSearch.search()\r\n\r\n            delete this.searchCriteria.smart_search_text;\r\n            delete this.searchCriteria.matchmaker_text;\r\n            delete this.searchCriteria.publications_text;\r\n\r\n            this.setExportCriteria(null);\r\n            this.setEditSearchCriteria(null);\r\n            this.setSearchCriteria(null);\r\n\r\n            this.clearSearchResults({resetFacets: true});\r\n            this.setSearchType(\"Advanced\"); // <<<<< may be \"Smart\" if using this bridge for smart too! - may need to accept a param from Bridge\r\n            this.fetchSearchCriteria(searchId, this.goToSearchResults); //async..\r\n        },\r\n        fetchSearchCriteria (search_id, callback) { //reusing legacy logic from globalMixin, but accepts search_id as a param...\r\n\r\n            if (search_id && search_id.indexOf('CID-') !== 0) {\r\n                window.getProjectSearchCriteria(search_id, this.updateProjectSearchCriteria, callback);\r\n            }\r\n        },\r\n        goToSearchResults() {\r\n\r\n            //get currentQD and go...\r\n            //if there is no currentQueryDetails set, this wont work (cant pass a param in callback due to legacy chain)\r\n            let searchId = this.currentQueryDetails.search_id; //TODO: null checks here\r\n            let url = '/search/'+searchId+'/projects';\r\n            this.$router.push(url).catch(()=>{});\r\n        }\r\n    }\r\n\r\n}","  \r\nexport const MYREPORTER_API = process.env.VUE_APP_MYREPORTER_API;","import axios, * as others from 'axios';\r\nimport { MYREPORTER_API } from './config.js';\r\n\r\nconst API = MYREPORTER_API;\r\n\r\nconst getCurrentUser = async function () {\r\n\r\n    /*\r\n    expects:\r\n\r\n        [\r\n            {\r\n                \"key\": \"SM_USER\",\r\n                \"value\": \"USERID\"\r\n            },\r\n            {\r\n                \"key\": \"Email\",\r\n                \"value\": \"user@nih.gov\"\r\n            }\r\n        ]\r\n\r\n    returns:\r\n\r\n        {\r\n            'name': 'John Doe',\r\n            'email': 'john.doe@email.gov',\r\n            'userId': 'DOEJ'\r\n        }\r\n\r\n     */\r\n    try {\r\n        // Added timestamp to avoid caching of service in browser\r\n        const response = await axios.get(`${API}/GetUserInfo?t=` + new Date().getTime());\r\n\r\n        const data = parseList(response);\r\n        if(data && data!= null && data.length > 0){\r\n            let user = {};\r\n            user.userId = _.find(data, { \"key\": \"SM_USER\" }).value;\r\n            user.email = _.find(data, { \"key\": \"Email\" }).value;\r\n\r\n            return user;\r\n        }\r\n        return null;\r\n    }\r\n    catch (error) {\r\n        // console.error(error); //look for 401 here and handle\r\n        return null;\r\n    }\r\n\r\n};\r\n\r\nconst getSavedSearches = async function () {\r\n    try {\r\n        // const response = await axios.get(`${API}/savedSearches`);\r\n        // Added timestamp to avoid caching of service in browser\r\n        const response = await axios.get(`${API}/GetUserQueries?t=` + new Date().getTime());\r\n\r\n        const data = parseList(response);\r\n\r\n        const searches = data.map(h => {\r\n\r\n            //sortable fields- this uses a naming convention, so dont change these without caution...\r\n            h.name = h.title; //alias this..\r\n            h.created = new Date(h.created_date); //convert to date...\r\n            h.updated = h.last_updated_date && h.last_update_date != \"\" ? new Date(h.last_updated_date) : h.created;\r\n            h.type = h.search_type;\r\n\r\n            //massage server format to useful array via _ ...\r\n            let tmp = h.alerts;\r\n            h.alerts = [];\r\n            _.forEach(tmp, function (v, k) {\r\n                if (v.toLowerCase() == \"y\") {\r\n                    h.alerts.push(k)\r\n                }\r\n            })\r\n\r\n            return h;\r\n        });\r\n\r\n        //default lodash sort by recently updated...\r\n        return _.orderBy(data, 'updated', ['desc']);\r\n\r\n    }\r\n    catch (error) {\r\n        console.error(error);\r\n        return [];\r\n    }\r\n};\r\n\r\nconst getRecentSearches = async function (max) {\r\n    try {\r\n\r\n\r\n        const data = await this.getSavedSearches();\r\n\r\n        const searches = _.orderBy(data, 'updated', ['desc']);\r\n\r\n        if (searches.length > max) {\r\n            return _.slice(searches, 0, max);\r\n        }\r\n\r\n        return searches;\r\n\r\n    } catch (error) {\r\n        console.error(error);\r\n        return [];\r\n    }\r\n}\r\n\r\nconst deleteSearch = async function (id) {\r\n    try {\r\n        const response = await axios.get(`${API}/DeleteUserQueries?queryIds=${id}`); //this always appears to return 200, so carry on...\r\n        return true;\r\n    }\r\n    catch (error) {\r\n        console.error(error);\r\n        return false;\r\n    }\r\n}\r\n\r\nconst updateAlert = async function (id, alertType, isChecked) {\r\n    try {\r\n        //make API call here to update via patch....\r\n        /*\r\n             To update Single Alert, Patch expects:\r\n             {\r\n                 \"value\": \"N\",\r\n                 \"path\": \"/Alerts/News\",\r\n                 \"op\": \"replace\"\r\n             },\r\n\r\n         */\r\n\r\n        //TODO:  Consider throttling or batching here for fast clickers?\r\n\r\n        let payload = {\r\n            \"value\": isChecked ? \"Y\" : \"N\",\r\n            \"path\": `/Alerts/${_.upperFirst(alertType)}`,\r\n            \"op\": \"replace\"\r\n        }\r\n\r\n        const response = await axios.patch(`${API}/PatchQuery/${id}`, [payload]);\r\n\r\n        return true;\r\n    }\r\n    catch (error) {\r\n        console.error(error);\r\n        return false;\r\n    }\r\n}\r\n\r\n\r\nconst logout = async function (id) {\r\n    try {\r\n        // Added timestamp to avoid caching of service in browser\r\n        const response = await axios.get(`${API}/Logout?t=` + new Date().getTime()); //200 or 401, so carry on...\r\n        return true;\r\n    }\r\n    catch (error) {\r\n        console.error(error);\r\n        return false;\r\n    }\r\n}\r\n\r\n\r\nconst createSearch = async function (queryDetails) {\r\n\r\n    //qd.search_id must exist must exist...\r\n    if (queryDetails.search_id == \"\") {\r\n        return null;\r\n    }\r\n\r\n    //format the payload for endpoint...\r\n    const payload = {\r\n        user_query_info: {\r\n            search_id: queryDetails.search_id,\r\n            title: queryDetails.title.trim() || \"\",\r\n            alerts: formatAlertsForSave(queryDetails.alerts),\r\n            notes: queryDetails.notes ? queryDetails.notes.trim() : \"\",\r\n            search_type: queryDetails.search_type \r\n        }\r\n    }\r\n\r\n    try {\r\n        const response = await axios.post(`${API}/SaveQuery`, payload);\r\n        if (isRequestRejected(response)) {\r\n            throw Error(\"Invalid Request\");\r\n        }\r\n        return response.data;\r\n    }\r\n    catch (error) {\r\n\r\n        if (error.response && error.response.data && error.response.data.Title) {\r\n            throw Error(_.first(error.response.data.Title));\r\n        }\r\n        throw error;\r\n        // return null;\r\n    }\r\n}\r\n\r\nconst updateSearch = async function (queryDetails) {\r\n\r\n    //qd.search_id must exist and be >0, qd.search_id must exist...\r\n    if (!_.gt(queryDetails.id, 0) || queryDetails.search_id == \"\") {\r\n        return false;\r\n    }\r\n\r\n    let post = {\r\n        user_query_info: {\r\n            id: queryDetails.id,\r\n            search_id: queryDetails.search_id,\r\n            title: queryDetails.title.trim() || '',\r\n            notes: queryDetails.notes ? queryDetails.notes.trim() : \"\",\r\n            alerts: formatAlertsForSave(queryDetails.alerts),\r\n        }\r\n    };\r\n\r\n    try {\r\n        const response = await axios.post(`${API}/UpdateQuery`, post);\r\n        if (isRequestRejected(response)) {\r\n            throw Error(\"Invalid Request\");\r\n        }\r\n        return true;\r\n    }\r\n    catch (error) {\r\n\r\n        if (error.response && error.response.data && error.response.data.Title) {\r\n            throw Error(_.first(error.response.data.Title));\r\n        }\r\n\r\n        throw error;\r\n    }\r\n\r\n}\r\n\r\n\r\n//extremely basic data check...\r\nconst parseList = response => {\r\n    if (response.status !== 200) throw Error(response.message);\r\n    if (!response.data) return [];\r\n\r\n    let list = response.data;\r\n    if (typeof list !== 'object') {\r\n        list = [];\r\n    }\r\n    return list;\r\n};\r\n\r\n\r\n//DEPRECATED...\r\nconst formatAlertsForPatch = function (alerts) {\r\n    //Accepts Json in the Vue friendly format, and re-formats to the format accepted by Patch endpoint...\r\n    //incoming: alerts: [news, publication]....if an item is not in this array, it should get a value of \"N\"\r\n    if (_.isEmpty(alerts)) return [];\r\n\r\n    //to LC...\r\n    alerts = alerts.map(v => v.toLowerCase());\r\n\r\n    //default all to \"N\", and turn specific ones to \"Y\" (assumes all are lower case)...\r\n    let payload = [];\r\n    _.forEach(['news', 'publication', 'project'], function (v) {\r\n        payload.push({\r\n            \"value\": _.includes(alerts, v) ? \"Y\" : \"N\",\r\n            \"path\": `/Alerts/${_.upperFirst(v)}`,\r\n            \"op\": \"replace\"\r\n        });\r\n    });\r\n\r\n    return payload;\r\n}\r\n\r\nconst formatAlertsForSave = function (alerts) {\r\n    //Accepts Json in the Vue friendly format, and re-formats to the format accepted by Save endpoint...\r\n    if (_.isEmpty(alerts)) return {};\r\n\r\n\r\n    //default all to \"N\", and turn specific ones to \"Y\" (assumes all are lower case)...\r\n    let payload = {};\r\n    _.forEach(['news', 'publication', 'project'], function (v) {\r\n        payload[v] = _.includes(alerts, v) ? \"Y\" : \"N\"\r\n    });\r\n\r\n    return payload;\r\n\r\n}\r\n\r\nconst isRequestRejected = function (res) {\r\n    //Quick check for WAF Rejecting Requests, but still returning 200...\r\n    if (res && res.status === 200 && _.includes(res.data, \"Request Rejected\")) {\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\n\r\nconst getUserPreferences = async function () {\r\n    try {\r\n\r\n        const response = await axios.get(`${API}/GetPreferences`);\r\n\r\n        let data = parseList(response);\r\n\r\n        return data;\r\n    }\r\n    catch (error) {\r\n        return false;\r\n    }\r\n}\r\n\r\nconst savePreferences = async function (paramName, paramVal) {\r\n    try {\r\n        let post = {\r\n            \"preference_name\": paramName,\r\n            \"preference_value\": paramVal\r\n        }\r\n\r\n        const response = await axios.post(`${API}/SavePreferences`, post);\r\n\r\n        return true;\r\n    }\r\n    catch (error) {\r\n        return false;\r\n    }\r\n}\r\n\r\n\r\nexport const userService = {\r\n    getSavedSearches,\r\n    getRecentSearches,\r\n    deleteSearch,\r\n    getCurrentUser,\r\n    updateAlert,\r\n    logout,\r\n    createSearch,\r\n    updateSearch,\r\n    savePreferences,\r\n    getUserPreferences\r\n}\r\n","<template>\r\n    <div class=\"footer\" role=\"navigation\">\r\n        <div class=\"row\" v-if=\"!exporterPage\">\r\n            <div class=\"col-md-12\">\r\n                <div class=\"footer-version\">\r\n                    <router-link to=\"/release-notes\" class=\"release-notes\" rel=\"noopener\">\r\n                        <span class=\"version\">Initial public release of Modernized NIH RePORTER, version 2020.9</span>,\r\n                        Release Notes\r\n                    </router-link>\r\n                    <div class=\"data-last-update\">Data as of {{ lastRefreshed }}</div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"row\">\r\n            <div class=\"col-md-12\">\r\n                <ul>\r\n                    <li><a v-bind:href=\"reportUrl + '/about'\" rel=\"noopener\">About RePORT</a></li>\r\n                    <li><a v-bind:href=\"reportUrl + '/faqs'\" rel=\"noopener\">FAQs</a></li>\r\n                    <li><a v-bind:href=\"reportUrl + '/contactus'\" rel=\"noopener\">Contact Us</a></li>\r\n                    <li><a v-bind:href=\"reportUrl + '/sitemap'\" rel=\"noopener\">Site Map</a></li>\r\n                    <li><a v-bind:href=\"reportUrl + '/' + dataAccessPolicyURL\" rel=\"noopener\">Data Access\r\n                            Policy</a></li>\r\n                    <li><a v-bind:href=\"reportUrl + '/accessibility-statement'\" rel=\"noopener\">Accessibility Statement</a></li>\r\n                    <li><a :href=\"privacyURL\" rel=\"noopener\">Privacy Statement</a></li>\r\n                    <li><a :href=\"diclaimerURL\" rel=\"noopener\">Disclaimer</a></li>\r\n                    <li><a :href=\"foiaURL\" rel=\"noopener\">FOIA</a></li>\r\n                    <li><a :href=\"vulnerabilityDisclosure\" rel=\"noopener\">HHS Vulnerability\r\n                            Disclosure</a></li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"row\">\r\n            <div class=\"col-md-12 footer-tagline text-start\">\r\n                As the data are available for bulk download, the RePORTER system reserves the right to block IP\r\n                addresses that fail to adhere to instructions in the system's robots.txt files or submit requests at a\r\n                rate that negatively impacts service delivery to other users. RePORTER reserves the right to terminate\r\n                any automated query to the RePORTER application that negatively affects service delivery to other users.\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"row\">\r\n            <div class=\"col-md-12 footer-tagline\">\r\n                <ul>\r\n                    <li><a :href=\"oerURL\" rel=\"noopener\">Office of Extramural Research</a></li>\r\n                    <li><a :href=\"nihURL\" rel=\"noopener\">National Institutes of Health</a></li>\r\n                    <li><a :href=\"hhsURL\" rel=\"noopener\">U.S. Department of Health and Human Services</a></li>\r\n                    <li><a :href=\"usaGovURL\" rel=\"noopener\">USA.Gov - Government Made Easy</a></li>\r\n                    <li><a :href=\"grantsURL\" rel=\"noopener\">Grants.Gov</a></li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n        <div class=\"row\">\r\n            <div class=\"col-md-12\">\r\n                <p class=\"footer-tagline\">NIH...<em>Turning Discovery Into Health<sup>&reg;</sup></em></p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\n import axios, * as others from 'axios';\r\n\r\nexport default {\r\n    name: 'FooterNav',\r\n    // data: function () {\r\n    //     return {\r\n    //         isFullscreen: false,\r\n    //         maxWidth: 0\r\n    //     };\r\n    // },\r\n    data: function () {\r\n        return {\r\n            reportUrl: null,\r\n            lastRefreshed: null,\r\n            privacyURL: null,\r\n            diclaimerURL: null,\r\n            foiaURL: null,\r\n            vulnerabilityDisclosure: null,\r\n            oerURL: null,\r\n            nihURL: null,\r\n            hhsURL: null,\r\n            usaGovURL: null,\r\n            grantsURL: null,\r\n            dataAccessPolicyURL: null\r\n        };\r\n    },\r\n    props: {\r\n        exporterPage: { type: Boolean }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'externalURLs'\r\n        ]),\r\n    },\r\n    async created () {\r\n        var requestedURLs = ['reporter_privacy_statement_url',\r\n            'reporter_disclaimer_url',\r\n            'reporter_foia_url',\r\n            'reporter_hhs_vulnerability_disclosure_url',\r\n            'reporter_oer_url',\r\n            'reporter_hhs_url',\r\n            'reporter_usa_gov_url',\r\n            'reporter_grants_gov_url',\r\n            'report_data_access_policy_url'\r\n        ];\r\n\r\n        await this.$store.dispatch('getAppSettingsPropertyByNameAction', requestedURLs);\r\n\r\n        if (this.externalURLs) {\r\n            this.privacyURL = this.externalURLs['reporter_privacy_statement_url']\r\n            this.diclaimerURL = this.externalURLs['reporter_disclaimer_url'];\r\n            this.foiaURL = this.externalURLs['reporter_foia_url'];\r\n            this.vulnerabilityDisclosure = this.externalURLs['reporter_hhs_vulnerability_disclosure_url'];\r\n            this.oerURL = this.externalURLs['reporter_oer_url'];\r\n            this.nihURL = this.externalURLs['reporter_nih_url'];\r\n            this.hhsURL = this.externalURLs['reporter_hhs_url'];\r\n            this.usaGovURL = this.externalURLs['reporter_usa_gov_url'];\r\n            this.grantsURL = this.externalURLs['reporter_grants_gov_url'];\r\n            this.dataAccessPolicyURL = this.externalURLs['report_data_access_policy_url'];\r\n            this.reportUrl = this.externalURLs['report_base_url'];\r\n        }\r\n\t\t\r\n\t\t// Get created date of project elastic search index \r\n\t\tconst response = await axios.get(`/services/Projects/IndexCreatedDate`);\r\n\t\tif (response.status !== 200) throw Error(response.message);\t\t\r\n\t\tthis.lastRefreshed = response.data;\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.footer {\r\n    margin-top: 25px;\r\n    padding: 30px 0;\r\n    font-size: 13px;\r\n    color: $grey;\r\n    background-color: $grey-lighter;\r\n    text-align: center;\r\n    a {\r\n        text-decoration: none;\r\n    }\r\n    ul {\r\n        padding: 0;\r\n        list-style: none;\r\n\r\n        li {\r\n            display: inline-block;\r\n\r\n            a {\r\n                padding: 0px 15px;\r\n                color: $grey;\r\n            }\r\n\r\n            +li a {\r\n                border-left: 1px solid #b2b2b2;\r\n            }\r\n        }\r\n    }\r\n\r\n    .footer-tagline {\r\n        margin: 20px 0 0;\r\n    }\r\n}\r\n\r\n.footer-version {\r\n    text-align: left;\r\n    margin-bottom: 3em;\r\n    font-size: 14px;\r\n\r\n    a {\r\n        color: $grey;\r\n        font-weight: 400;\r\n    }\r\n}\r\n\r\n.version {\r\n    font-weight: 500;\r\n}\r\n\r\n.data-last-update {\r\n    font-size: 13px;\r\n}\r\n</style>\r\n","import { render } from \"./Footer.vue?vue&type=template&id=5019359a&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=js\"\nexport * from \"./Footer.vue?vue&type=script&lang=js\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=5019359a&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5019359a\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"navigation\" :class=\"$route.path === '/release-notes' ? 'dark-theme' : ''\">\r\n        <div class=\"container-fluid\" ref=\"headerContainer\">\r\n            <div class=\"row row-header row-full\" ref=\"headerRow\">\r\n                <nav class=\"navbar navbar-expand-lg navbar-dark\">\r\n                    <div class=\"navbar-brand\">\r\n                        <a :href=\"NIHURL\" target=\"_blank\" class=\"link-report\" rel=\"noopener\">\r\n                            <img src=\"./../assets/nih-logo.png\" alt=\"NIH\" class=\"logo\" />\r\n                            <span class=\"sr-only\">NIH</span>\r\n                        </a>\r\n                        <a v-bind:href=\"reportUrl\" target=\"_blank\" class=\"link-report\" rel=\"noopener\">\r\n                            <span class=\"logo-text\">RePORT</span>\r\n                        </a>\r\n                        <img src=\"./../assets/angle-right.png\" class=\"logo-divider\" alt=\">\" />\r\n                        <!-- <router-link :to=\"'/' + searchMode\"> -->\r\n                        <router-link :to=\"'/'\" rel=\"noopener\">\r\n                            <span class=\"logo-text\">RePORTER</span>\r\n                        </router-link>\r\n                    </div>\r\n                    <button class=\"navbar-toggler\" v-b-toggle.navbarSupportedContent>\r\n                        <span class=\"navbar-toggler-icon\"></span>\r\n                        <span class=\"sr-only\">Toggle</span>\r\n                    </button>\r\n\r\n                    <b-collapse class=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\r\n                        <div class=\"ms-auto\">\r\n                            <ul class=\"navbar-nav\">\r\n                                <li class=\"nav-item\">\r\n                                    <a v-bind:href=\"reportUrl + '/faqs'\" target=\"_blank\" class=\"nav-link\" rel=\"noopener\">FAQs</a>\r\n                                </li>\r\n                                <li class=\"nav-item\">\r\n                                    <a :href=\"apiURL\" target=\"_blank\" class=\"nav-link font-weight-bold\" rel=\"noopener\">API</a>\r\n                                </li>\r\n                                <li class=\"nav-item\">\r\n                                    <span class=\"nav-link\">\r\n                                        <router-link :to=\"'/exporter'\" rel=\"noopener\">ExPORTER</router-link>\r\n                                    </span>\r\n                                </li>\r\n                                <li class=\"nav-item mt-1 me-2\">\r\n                                    <UserMenu v-if=\"showUserMenu\"></UserMenu>\r\n                                </li>\r\n                            </ul>\r\n                        </div>\r\n                    </b-collapse>\r\n                </nav>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport UserMenu from '@/components/UserMenu.vue';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'navigation',\r\n    data: function () {\r\n        return {\r\n            showUserMenu: true,\r\n            reportUrl: null,\r\n            isFullscreen: false,\r\n            maxWidth: 0,\r\n            apiURL: '',\r\n            NIHURL: ''\r\n        };\r\n    },\r\n    components: {\r\n        UserMenu\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'fullscreen',\r\n            'searchMode',\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    watch: {\r\n        fullscreen: function (val) {\r\n            if (val === true) {\r\n                // set width for animation\r\n                this.$refs.headerRow.style.width = this.$refs.headerRow.offsetWidth + 'px';\r\n                this.$refs.headerRow.style.maxWidth = 'none';\r\n\r\n                this.maxWidth = this.$refs.headerRow.offsetWidth;\r\n\r\n                setTimeout(() => {\r\n                    let computedStyle = getComputedStyle(this.$refs.headerContainer);\r\n\r\n                    this.$refs.headerRow.style.width = (this.$refs.headerContainer.offsetWidth - parseFloat(computedStyle.paddingLeft) - parseFloat(computedStyle.paddingRight)) + 'px';\r\n\r\n                    setTimeout(() => {\r\n                        this.$refs.headerRow.style.width = '';\r\n                        this.$refs.headerRow.style.maxWidth = '';\r\n                        this.isFullscreen = true;\r\n                    }, 301);\r\n                }, 1);\r\n            } else {\r\n                this.$refs.headerRow.style.width = this.$refs.headerRow.offsetWidth + 'px';\r\n\r\n                setTimeout(() => {\r\n                    this.$refs.headerRow.style.width = this.maxWidth + 'px';\r\n\r\n                    setTimeout(() => {\r\n                        this.isFullscreen = false;\r\n                        this.$refs.headerRow.style.width = '';\r\n                    }, 301);\r\n                }, 1);\r\n            }\r\n        }\r\n    },\r\n    async created () {\r\n        bus.$on('get:appsettings', () => {\r\n            this.apiURL = this.externalURLs['reporter_api_base_url'];\r\n            this.NIHURL = this.externalURLs['reporter_nih_url'];\r\n            this.reportUrl = this.externalURLs['report_base_url'];\r\n        });\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.row-header {\r\n    transition: 0.3s;\r\n}\r\n\r\n.row-full {\r\n    max-width: none;\r\n}\r\n\r\n.navigation {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    z-index: 50;\r\n    width: 100%;\r\n\r\n\r\n    // background: #0c2e5c;\r\n    background: #02243d;\r\n    background: -moz-linear-gradient(left, rgba(#031835, 0.45) 0%, rgba(#02243d, 0.25) 100%);\r\n    background: -webkit-linear-gradient(left, rgba(#031835, 0.45) 0%, rgba(#02243d, 0.25) 100%);\r\n    background: linear-gradient(to right, rgba(#031835, 0.45) 0%, rgba(#02243d, 0.25) 100%);\r\n\r\n    // background-color: rgba(0, 0, 0, 0.5);\r\n    // background-color: rgba(#02243d, 0.25);\r\n    &.dark-theme {\r\n        background: -moz-linear-gradient(to right, #063c63 1%, #1c496f 50%, #347a7d 75%, #507b82 100%);\r\n        background: -webkit-linear-gradient(to right, #063c63 1%, #1c496f 50%, #347a7d 75%, #507b82 100%);\r\n        background: linear-gradient(to right, #063c63 1%, #1c496f 50%, #347a7d 75%, #507b82 100%);\r\n    }\r\n}\r\n\r\n.navbar {\r\n    padding-left: 5px;\r\n    padding-right: 5px;\r\n    width: 100%;\r\n    color: $header-text-color;\r\n    font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n\r\n    a {\r\n        color: $header-text-color;\r\n        text-decoration: none;\r\n    }\r\n}\r\n\r\n.navbar-brand {\r\n    font-size: 24px;\r\n    font-weight: 500;\r\n\r\n    svg {\r\n        vertical-align: middle;\r\n    }\r\n}\r\n\r\n.logo-text {\r\n    display: inline-block;\r\n    padding: 0 0.5em 0.1em 0.25em;\r\n    vertical-align: middle;\r\n}\r\n\r\n.navbar-collapse {\r\n    text-align: right;\r\n    position: relative;\r\n\r\n    &.show {\r\n        div {\r\n            &:after {\r\n                content: \"\";\r\n                background-color: #1f5581;\r\n                background-image: url('../../static/img/header-background-m.jpg');\r\n                background-position: center 0;\r\n                background-size: cover;\r\n                opacity: 1;\r\n                top: 0px;\r\n                left: -5px;\r\n                bottom: 0;\r\n                right: 0;\r\n                position: absolute;\r\n                z-index: -1;\r\n                height: 105%;\r\n                width: 105%;\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n.logo {\r\n    display: inline-block;\r\n    width: 64px;\r\n    height: 40px;\r\n    fill: $logo-color;\r\n}\r\n\r\n.link-report {\r\n    .logo-text {\r\n        @media screen and (max-width: $screen-sm) {\r\n            display: none;\r\n        }\r\n    }\r\n}\r\n\r\n.logo-divider {\r\n    display: inline-block;\r\n    margin-right: 0.4em;\r\n    width: 15px;\r\n    height: 40px;\r\n    fill: rgba($logo-color, 0.5);\r\n\r\n    @media screen and (max-width: $screen-sm) {\r\n        display: none;\r\n    }\r\n}\r\n\r\n.navbar-dark .navbar-nav .nav-link {\r\n    font-size: 20px;\r\n    color: #fff;\r\n}\r\n\r\n.nav-item {\r\n    +.nav-item {\r\n        margin-left: 1em;\r\n    }\r\n}\r\n</style>","<template>\r\n\r\n    <BDropdown right variant=\"dark\" size=\"lg\" v-if=\"currentUser != null\" class=\"btnMyReporter\">\r\n        <template v-slot:button-content >\r\n            <i class=\"fas fa-user\"></i>\r\n            <span class=\"ms-3\" :title=\"currentUser.email\">{{filters.truncate(currentUser.email, 50)}}</span>\r\n        </template>\r\n        <BDropdownItem to=\"/dashboard\">\r\n            <i class=\"fas fa-tachometer-alt\"></i>\r\n            Dashboard\r\n        </BDropdownItem>\r\n        <BDropdownItem to=\"/advanced-search\">\r\n            <i class=\"fas fa-search-plus\"></i>\r\n            Create New Search\r\n        </BDropdownItem>\r\n\r\n        <template v-if=\"recentSearches.length\">\r\n            <BDropdownHeader id=\"dropdown-header-label\">\r\n                Recently Created Saved Searches\r\n            </BDropdownHeader>\r\n            <BDropdownItem @click=\"bridgeQuery(search)\" v-for=\"search in recentSearches\" :key=\"search.id\" :title=\"search.name\">{{filters.truncate(search.title, 25)}}</BDropdownItem>\r\n        </template>\r\n\r\n        <BDropdownDivider></BDropdownDivider>\r\n\r\n        <BDropdownItem @click=\"logout\">\r\n            <i class=\"fas fa-sign-out-alt\"></i>\r\n            Logout\r\n        </BDropdownItem>\r\n    </BDropdown>\r\n\r\n    <BDropdown size=\"lg\" variant=\"dark\" v-else right\r\n         id=\"user-menu-dd\" class=\"btnMyReporter\">\r\n        <template #button-content>\r\n            <span v-b-tooltip.hover.bottom=\"{title:'To Sign in, please select from the options below', variant:'warning'}\">\r\n                <i class=\"fas fa-sign-out-alt\"></i>\r\n                Sign In\r\n            </span>\r\n        </template>\r\n        <BDropdownGroup id=\"dropdown-logingov\" header=\"Public Users...\">\r\n            <BDropdownItem @click.prevent=\"signIn(urls.logingov)\" rel=\"noopener\">\r\n                Sign in with Login.gov\r\n            </BDropdownItem>\r\n         </BDropdownGroup>\r\n        <BDropdownDivider></BDropdownDivider>\r\n        <BDropdownGroup id=\"dropdown-nih\" header=\"NIH Staff...\">\r\n            <BDropdownItem @click.prevent=\"signIn(urls.nih)\" rel=\"noopener\">\r\n                Sign in with NIH Login\r\n            </BDropdownItem>\r\n        </BDropdownGroup>\r\n    </BDropdown>\r\n\r\n</template>\r\n\r\n<script>\r\n\r\n    import { userService } from '@/shared/user.service.js';\r\n    import { mapGetters, mapActions } from 'vuex';\r\n    import queryDataMixin from '@/shared/querydata.mixin.js';\r\n    import bus from '@/shared/event-bus.js';\r\n    import {app} from '@/main';\r\n\r\n    export default {\r\n\r\n        name: 'UserMenu',\r\n        mixins: [queryDataMixin],\r\n        data: function () {\r\n            return {\r\n                recentSearches: [],\r\n                currentUser: null,\r\n                urls: { //defaults for prod in case of failed appSettings Load...\r\n                    'nih': '',\r\n                    'logingov': ''\r\n                },\r\n                filters: window.filters\r\n            };\r\n        },\r\n        computed: {\r\n            ...mapGetters(['currentQueryDetails', 'externalURLs'])\r\n        },\r\n        watch: {\r\n            currentUser: function (n, o) {\r\n                this.setLoggedInUser(n);\r\n            }\r\n        },\r\n        async mounted() {\r\n            var requestedURLs = [\r\n                'myreporter_era_auth_url',\r\n                'myreporter_login_auth_url',\r\n                'myreporter_logout_auth_url',\r\n                'myreporter_return_url'\r\n            ];\r\n\r\n            await this.$store.dispatch('getAppSettingsPropertyByNameAction', requestedURLs);\r\n            await this.getUserWithRecentSearches();\r\n\r\n            if(this.externalURLs)    {\r\n                this.urls.nih = this.constructLoginUrl(this.externalURLs['myreporter_era_auth_url']);\r\n                this.urls.logingov = this.constructLoginUrl(this.externalURLs['myreporter_login_auth_url']);\r\n            }\r\n            else {\r\n                console.error(\"AppSettings was missing in UserMenu at load...\");\r\n            }\r\n\r\n            bus.$on(\"update:search\", () => {\r\n                this.getUserWithRecentSearches();\r\n            });\r\n\r\n        },\r\n        methods: {\r\n            ...mapActions([\"setLoggedInUser\", 'setSavedSearches']),\r\n\r\n            async getUserWithRecentSearches() {\r\n\r\n                this.currentUser = null;\r\n\r\n                this.currentUser = await userService.getCurrentUser();\r\n\r\n                this.recentSearches = [];\r\n                if(this.currentUser != null)    {\r\n                    this.recentSearches = await userService.getSavedSearches();\r\n                    this.setSavedSearches(this.recentSearches);\r\n                    if (this.recentSearches.length > 5) {\r\n                        this.recentSearches = _.slice(this.recentSearches, 0, 5);\r\n                    }\r\n                }\r\n            },\r\n            constructLoginUrl(destination) {\r\n                let suffix = \"?TARGET=\" + window.location.origin + \"/services/MyRePORTER/Authenticate\" + \"?\" + new Date().getTime();\r\n                return destination + suffix;\r\n            },\r\n            signIn (url) {\r\n                localStorage.setItem('current_page', this.$route.fullPath);\r\n                localStorage.setItem('unsaved_changes', JSON.stringify(this.currentQueryDetails));\r\n                window.location.assign(url);\r\n            },\r\n            async logout() {\r\n                //first hit internal endpoint, then redirect to SM logout...\r\n                await userService.logout();\r\n                this.currentUser = null;\r\n                this.setSavedSearches(null);\r\n\r\n                var redirectPath = window.location.origin;\r\n\r\n                if (window.location.pathname.indexOf('/dashboard') === -1) {\r\n                    redirectPath = window.location.href;\r\n                }\r\n                window.location.assign(this.externalURLs['myreporter_logout_auth_url'] + \"?TARGET=\" + redirectPath + \"&t=\" + new Date().getTime());\r\n            },\r\n            bridgeQuery(queryDetails) {\r\n                this.setCurrentQueryDetailsAction(queryDetails);\r\n                const url = '/search/'+queryDetails.search_id+'/bridge';\r\n                this.$router.push(url);\r\n            }\r\n\r\n        }\r\n    }\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n</style>","import { render } from \"./UserMenu.vue?vue&type=template&id=3a34d380\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=js\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Navigation.vue?vue&type=template&id=fc85597c&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js\"\n\nimport \"./Navigation.vue?vue&type=style&index=0&id=fc85597c&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fc85597c\"]])\n\nexport default __exports__","<template>\r\n    <div>\r\n        <div class=\"row\">\r\n            <div class=\"col-12\">\r\n                <h4>Search Criteria</h4>\r\n            </div>\r\n        </div>\r\n        <div class=\"row\">\r\n            <div class=\"col-6\">\r\n                <b-form-group label=\"Search Title\" label-size=\"lg\" label-for=\"qdName\" description=\"Please enter a unique Title for this Search\">\r\n                    <b-form-input id=\"qdName\" v-model=\"qTitle\" type=\"text\" \r\n                        :maxlength=\"limits.qdName\" \r\n                        @change.native=\"updateData('title', $event)\"\r\n                        required placeholder=\"Search Title\" size=\"lg\"></b-form-input>\r\n                </b-form-group>\r\n            </div>\r\n            <div class=\"col-6 alerts-selectors\">\r\n                <div class=\"form-label d-block col-form-label-lg mb-4\">Alerts (Weekly Email)</div>\r\n                <div class=\"form-check form-check-inline\">\r\n                    <input @change=\"updateData('alerts', qAlerts)\" type=\"checkbox\" class=\"form-check-input\" value=\"project\" id=\"alertProject\" v-model=\"qAlerts\" >\r\n                    <label class=\"form-check-label\" for=\"alertProject\" v-b-tooltip.hover=\"alertTooltip('Project')\">Project</label>\r\n                </div>\r\n                <div class=\"form-check form-check-inline\">\r\n                    <input @change=\"updateData('alerts', qAlerts)\" type=\"checkbox\" class=\"form-check-input\" value=\"publication\" id=\"alertPublication\" v-model=\"qAlerts\" >\r\n                    <label class=\"form-check-label\" for=\"alertPublication\" v-b-tooltip.hover=\"alertTooltip('Publication')\">Publication</label>\r\n                </div>\r\n                <div class=\"form-check form-check-inline\">\r\n                    <input @change=\"updateData('alerts', qAlerts)\" type=\"checkbox\" class=\"form-check-input\" value=\"news\" id=\"alertNews\" v-model=\"qAlerts\" >\r\n                    <label class=\"form-check-label\" for=\"alertNews\" v-b-tooltip.hover=\"alertTooltip('News')\">News</label>\r\n                </div>\r\n\r\n            </div>\r\n\r\n            <div class=\"col-12\"> \r\n                <b-form-group label=\"Notes\" label-size=\"lg\" label-for=\"qdNotes\">\r\n                    <b-form-textarea id=\"qdNotes\" v-model=\"qNotes\" type=\"text\" \r\n                        :maxlength=\"limits.qdNotes\" \r\n                        @keyup=\"updateData('notes', qNotes)\"\r\n                        required placeholder=\"Search Notes\" size=\"lg\"></b-form-textarea>\r\n                        <small>Optional Notes for this Search ({{ remainingChars }} characters remaining)</small>\r\n                </b-form-group>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import { mapGetters, mapActions, useStore } from 'vuex';\r\n    import { toRaw } from \"vue\";\r\n\r\n    export default {\r\n        data() {\r\n            return {\r\n                alertOptions: [\r\n                    {text: 'Project', value: \"project\" },\r\n                    {text: 'Publication', value: \"publication\" },\r\n                    {text: 'News', value: \"news\" }\r\n                ],\r\n                limits: {\r\n                    qdName: 200,\r\n                    qdNotes: 1000\r\n                },\r\n                remainingChars: 1000,\r\n                qAlerts: [],\r\n                qTitle: '',\r\n                qNotes:'',\r\n                qId: null\r\n            }\r\n        },\r\n        props: {\r\n            title: { type: String },\r\n            notes: { type: String},\r\n            alerts: { Stype: Array},\r\n            id: { type: Number}\r\n        },\r\n        computed: {\r\n            ...mapGetters(['currentQueryDetails'])\r\n        },\r\n        mounted () {\r\n            if(this.currentQueryDetails != null)    {\r\n                this.qTitle = this.currentQueryDetails.title || '';\r\n                this.qNotes = this.currentQueryDetails.notes ? this.currentQueryDetails.notes.trim() : \"\";\r\n                this.qAlerts = this.currentQueryDetails.alerts || [];\r\n                this.qId = this.currentQueryDetails.id || 0;\r\n            }\r\n            if (this.qNotes) {\r\n                this.remainingChars = this.limits.qdNotes - this.qNotes.length;\r\n            }\r\n        },\r\n        methods: {\r\n            ...mapActions([\r\n                'setCurrentQueryDetailsAction',\r\n            ]),\r\n            updateData (field, data) {\r\n                let queryData = copyData(this.currentQueryDetails);\r\n\r\n                if (!queryData && queryData == null) {\r\n                    queryData = {\r\n                        title: \"\",\r\n                        notes: \"\",\r\n                        alerts: [],\r\n                        id: 0\r\n                    }\r\n                }\r\n                queryData[field] = toRaw(data);\r\n                if (field === 'notes') {\r\n                    this.remainingChars = this.limits.qdNotes - data.length;\r\n                }\r\n                this.setCurrentQueryDetailsAction(queryData);\r\n            },\r\n            alertTooltip(a) {\r\n                return `Select to Receive Weekly ${a} Alerts`;\r\n            }\r\n        }\r\n    }\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n   \r\n</style>","import { render } from \"./QueryDetailsForm.vue?vue&type=template&id=5f90f7ab\"\nimport script from \"./QueryDetailsForm.vue?vue&type=script&lang=js\"\nexport * from \"./QueryDetailsForm.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n<template>\r\n    <!-- Embeded survey -->\r\n    <div class=\"survey-container w-40 pt-1 \" >\r\n        <div id=\"embed-survey\">\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n    name: 'qualtricsModule'\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n    .survey-container:has(#embed-survey:not(:empty)) {\r\n        margin-top: 35px;\r\n    }\r\n\r\n    .survey-container #embed-survey:not(:empty) {\r\n        position: fixed;\r\n        bottom: 0;\r\n        border-radius: 5px 5px 0 0;\r\n        overflow: hidden;\r\n        right: 0;\r\n        z-index: 1001;\r\n        border-left: 1px solid $blue-charts;\r\n        background: $bg-color;\r\n        min-width: 325px;\r\n        padding: 0 0 2px 10px;\r\n        &::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 4px;\r\n            background-color: $blue-charts;\r\n        }\r\n        button {\r\n            border-radius: 15px !important;\r\n            &:focus, &:active, &:hover {\r\n                outline: none;\r\n            }\r\n        }\r\n    }\r\n</style>","import { render } from \"./qualtrics.vue?vue&type=template&id=97337c3a&scoped=true\"\nimport script from \"./qualtrics.vue?vue&type=script&lang=js\"\nexport * from \"./qualtrics.vue?vue&type=script&lang=js\"\n\nimport \"./qualtrics.vue?vue&type=style&index=0&id=97337c3a&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-97337c3a\"]])\n\nexport default __exports__","<template>\r\n    <component\r\n        :is=\"control\"\r\n        ref=\"field\"\r\n        :title=\"title\"\r\n        :id=\"id\"\r\n        :idLookup=\"idLookup\"\r\n        :idFreeText=\"idFreeText\"\r\n        :defaultValues=\"defaultValues\"\r\n        :maxSelection=\"maxSelection\"\r\n        :fields=\"fields\"\r\n        :placeholder=\"placeholder\"\r\n        :controlType=\"controlType\"\r\n        :helpText=\"helpText\"\r\n\t\t:urlKeys=\"urlKeys\"\r\n        :dependentField=\"dependentField\"\r\n        :dependingField=\"dependingField\"\r\n        :buildHelpText=\"buildHelpText\"\r\n        :select=\"select\"\r\n        :deselect=\"deselect\"\r\n        :change=\"change\"\r\n        :ui=\"ui\"\r\n        :dynamicLookup=\"dynamicLookup\"\r\n        :allowFreeText=\"allowFreeText\"\r\n        :additionalControl=\"additionalControl\"\r\n        :maxLength=\"maxLength\"\r\n        :matchingStr=\"matchingStr\"\r\n        :titleHidden=\"titleHidden\"\r\n        :alternetFields=\"alternetFields\"\r\n        :groupFields=\"groupFields\"\r\n        :tooltipText=\"tooltipText\"\r\n        :options=\"options\"\r\n        :dbValues=\"dbValues\"\r\n    />\r\n</template>\r\n\r\n<script>\r\nimport MultiSelect from '@/components/searchFields/MultiSelect.vue';\r\nimport InputText from '@/components/searchFields/InputText.vue';\r\nimport InputDate from '@/components/searchFields/InputDate.vue';\r\nimport ControlList from '@/components/searchFields/ControlList.vue';\r\nimport InputRange from '@/components/searchFields/InputRange.vue';\r\n\r\nexport default {\r\n    name: 'Field',\r\n    components: {\r\n        MultiSelect,\r\n        InputText,\r\n        InputDate,\r\n        ControlList,\r\n        InputRange\r\n    },\r\n    props: {\r\n        name: {\r\n            required: true\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            control: window.searchFieldSpecs[this.name].control,\r\n            title: window.searchFieldSpecs[this.name].title,\r\n            id: window.searchFieldSpecs[this.name].id,\r\n            idLookup: window.searchFieldSpecs[this.name].idLookup,\r\n            idFreeText: window.searchFieldSpecs[this.name].idFreeText,\r\n            defaultValues: window.searchFieldSpecs[this.name].defaultValues,\r\n            maxSelection: window.searchFieldSpecs[this.name].maxSelection,\r\n            fields: window.searchFieldSpecs[this.name].fields,\r\n            placeholder: window.searchFieldSpecs[this.name].placeholder,\r\n            controlType: window.searchFieldSpecs[this.name].controlType,\r\n            helpText: window.searchFieldSpecs[this.name].helpText,\r\n            dependentField: window.searchFieldSpecs[this.name].dependentField,\r\n            dependingField: window.searchFieldSpecs[this.name].dependingField,\r\n            buildHelpText: window.searchFieldSpecs[this.name].buildHelpText,\r\n\t\t\turlKeys: window.searchFieldSpecs[this.name].urlKeys,\r\n            select: window.searchFieldSpecs[this.name].select,\r\n            deselect: window.searchFieldSpecs[this.name].deselect,\r\n            change: window.searchFieldSpecs[this.name].change,\r\n            ui: window.searchFieldSpecs[this.name].ui,\r\n            additionalControl: window.searchFieldSpecs[this.name].additionalControl,\r\n            maxLength: window.searchFieldSpecs[this.name].maxLength,\r\n            matchingStr: window.searchFieldSpecs[this.name].matchingStr,\r\n            dynamicLookup: window.searchFieldSpecs[this.name].dynamicLookup,\r\n            allowFreeText: window.searchFieldSpecs[this.name].allowFreeText,\r\n            titleHidden: window.searchFieldSpecs[this.name].titleHidden,\r\n            alternetFields: window.searchFieldSpecs[this.name].alternetFields,\r\n            groupFields: window.searchFieldSpecs[this.name].groupFields,\r\n            tooltipText: window.searchFieldSpecs[this.name].tooltipText,\r\n            options: window.searchFieldSpecs[this.name].options,\r\n            dbValues: window.searchFieldSpecs[this.name].dbValues\r\n        };\r\n    },\r\n    // mounted () {\r\n    //     console.log(this.name);\r\n    //     console.log(window.searchFieldSpecs);\r\n    //     console.log(window.searchFieldSpecs[this.name]);\r\n    // }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n\r\n</style>","<template>\r\n    <div class=\"search-field multiselect\" :class=\"failedToLoad ? 'loading-failed' : ''\">\r\n        <label class=\"field-title\" :for=\"'field-' + id\">\r\n            <template v-if=\"title\">{{title}}</template>\r\n\t\t\t<field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n            <span\r\n                class=\"field-selected-count\"\r\n                v-if=\"$store.state.searchCriteria[id] && $store.state.searchCriteria[id].length !== 0 && filterSelected($store.state.searchCriteria[id]).length > 0\"\r\n            >\r\n                {{filterSelected($store.state.searchCriteria[id]).length}}\r\n                <button\r\n                    class=\"multiselect__remove_all\"\r\n                    @click.stop=\"deselectAll()\"\r\n                >\r\n                    <i class=\"fas fa-times svg\"></i><span class=\"sr-only\">X</span>\r\n                </button>\r\n            </span>\r\n        </label>\r\n        <div class=\"loader\" v-if=\"loading\"></div>\r\n        <div class=\"field-wrapper\">\r\n            <div\r\n                class=\"input-group\"\r\n                @click=\"focusInput()\"\r\n                :class=\"(!showDropdown ? 'inactive' : '') + ' ' + (hasFocus ? 'focused' : '')\"\r\n                ref=\"inputGroupWrapper\"\r\n            >\r\n                <!-- <button\r\n                    class=\"multiselect__tag__remove_all\"\r\n                    v-show=\"$store.state.searchCriteria[id] && $store.state.searchCriteria[id].length !== 0 && hasFocus\"\r\n                    @click.stop=\"deselectAllButton()\"\r\n                    ref=\"buttonRemoveAll\"\r\n                >\r\n                    <i class=\"fas fa-times svg\"></i>\r\n                    <span class=\"sr-only\">Remove All</span>\r\n                </button> -->\r\n                <div class=\"multiselect__input-group form-control-lg\" :class=\"{'active': showDropdown, 'disabled': (dependentField && dependentFieldHasSelectedData)}\" ref=\"inputGroup\">\r\n                    <!-- <div class=\"loader\"></div> -->\r\n                    <!-- <ul class=\"multiselect__tags\" v-if=\"selected\"> -->\r\n\t\t\t\t\t<i v-if=\"$store.state.searchCriteria[id] && $store.state.searchCriteria[id].length !== 0 && !hasFocus\"\r\n                        class=\"fas fa-times multiselect__expand\"></i>\r\n\r\n\t\t\t\t\t<i v-if=\"$store.state.searchCriteria[id] && $store.state.searchCriteria[id].length !== 0 && !hasFocus\" class=\"fas fa-ellipsis-h multiselect__expand\"></i>\r\n                    <ul\r\n                        class=\"multiselect__tags\"\r\n                        v-if=\"$store.state.searchCriteria[id]\"\r\n                    >\r\n                        <li v-for=\"item, ind in filterSelected($store.state.searchCriteria[id])\" :key=\"id + '-selected-' + ind + '-' + item.value\" :data-value=\"item.value\" class=\"multiselect__tag\">\r\n                            {{item.abbreviation || item.display}}\r\n                            <button class=\"multiselect__tag__remove\" @click=\"clearTag(item)\">\r\n                                <i class=\"fas fa-times svg\"></i>\r\n                                <span class=\"sr-only\">Remove</span>\r\n                            </button>\r\n                        </li>\r\n                    </ul>\r\n                    <input\r\n                        type=\"text\"\r\n                        autocomplete=\"off\"\r\n                        class=\"form-control form-control-lg multiselect__input\"\r\n                        :aria-label=\"title\"\r\n                        :id=\"'field-' + id\"\r\n                        ref=\"input\"\r\n                        v-model=\"searchText\"\r\n                        :disabled=\"(!data && !dynamicLookup) || (loading && dependentField && !dependentFieldHasData) || (dependentField && dependentFieldHasSelectedData)\"\r\n                        :placeholder=\"$store.state.searchCriteria[id] && ($store.state.searchCriteria[id] === '' || $store.state.searchCriteria[id].length === 0) ? placeholder : ''\"\r\n                    >\r\n                </div>\r\n            </div>\r\n            <div\r\n                v-show=\"data && showDropdown\"\r\n                class=\"multiselect__dropdown\"\r\n                :class=\"{'wide': ui && ui.dropdownWidth, 'pb-0': id == 'fiscal_years'}\"\r\n                ref=\"dropdown\"\r\n            >\r\n                <!-- v-if=\"data\" -->\r\n                <div\r\n                    class=\"multiselect__dropdown_scroll\"\r\n                    :class=\"loading ? 'multiselect__dropdown_scroll_loading' : ''\"\r\n                    ref=\"dropdownScroll\"\r\n                >\r\n                    <!-- v-if=\"data\" -->\r\n                    <multi-select-list\r\n                        v-if=\"data\"\r\n                        :id=\"id\"\r\n                        :data=\"filterList(data)\"\r\n                        :topParent=\"this\"\r\n                        ref=\"multiselect\"\r\n                    />\r\n                    <button v-if=\"id !== 'fiscal_years'\"\r\n                        class=\"btn multiselect__select_all\"\r\n                        :class=\"($store.state.searchCriteria[id] && $store.state.searchCriteria[id].length) === (data && data.length) ? 'multiselect__deselect_all' : ''\"\r\n                        @click.stop=\"selectDeselectAll()\"\r\n                        @keydown.stop=\"handleKeyboardEvents\"\r\n                        ref=\"selectAllButton\"\r\n                    >\r\n                        <!-- @focus=\"focusSelectAllButton\" -->\r\n                        {{($store.state.searchCriteria[id] && $store.state.searchCriteria[id].length) === (data && data.length) ? 'Deselect All' : 'Select All'}}\r\n\r\n                    </button>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <control-list\r\n            v-if=\"additionalControl\"\r\n            :id=\"id\"\r\n            :topParent=\"this\"\r\n            ref=\"multiselect\"\r\n        />\r\n\r\n        <div class=\"field-help-text\" v-if=\"helpTextDisplay\" ref=\"helpText\">\r\n            {{helpTextDisplay}}\r\n        </div>\r\n        <field-error\r\n            v-if=\"$store.state.searchFieldErrors[id]\"\r\n            v-show=\"$store.state.searchFieldErrors[id].message\"\r\n            :message=\"$store.state.searchFieldErrors[id].message\"\r\n        />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport MultiSelectList from '@/components/searchFields/MultiSelectList.vue';\r\nimport ControlList from '@/components/searchFields/ControlList.vue';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport FieldTooltip from '@/components/searchFields/FieldTooltip.vue';\r\nimport bus from '@/shared/event-bus.js';\r\nimport { toRaw } from \"vue\";\r\n\r\nexport default {\r\n    name: 'MultiSelect',\r\n    components: {\r\n        MultiSelectList,\r\n        ControlList,\r\n        FieldError,\r\n        FieldTooltip\r\n    },\r\n    props: {\r\n        title: {\r\n            required: true\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        idLookup: {\r\n            required: false\r\n        },\r\n        idFreeText: {\r\n            required: false\r\n        },\r\n        fields: {\r\n            required: false\r\n        },\r\n        placeholder: {\r\n            required: false\r\n        },\r\n        type: {\r\n            required: false\r\n        },\r\n        defaultValues: {\r\n            required: false\r\n        },\r\n        maxSelection: {\r\n            required: false\r\n        },\r\n        helpText: {\r\n            required: false\r\n        },\r\n        dependentField: {\r\n            required: false\r\n        },\r\n        dependingField: {\r\n            required: false\r\n        },\r\n        buildHelpText: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        },\r\n        select: {\r\n            required: false\r\n        },\r\n        deselect: {\r\n            required: false\r\n        },\r\n        change: {\r\n            required: false\r\n        },\r\n        ui: {\r\n            required: false\r\n        },\r\n        dynamicLookup: {\r\n            required: false\r\n        },\r\n        allowFreeText: {\r\n            required: false\r\n        },\r\n        additionalControl: {\r\n            required: false\r\n        },\r\n        matchingStr: {\r\n            required: false\r\n        },\r\n        bus: {\r\n            required: false\r\n        },\r\n        tooltipText: {\r\n            required: false\r\n        }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'editSearchCriteria',\r\n            'searchFieldErrors',\r\n            'editSearchResults'\r\n        ]),\r\n        dependentFieldHasSelectedData: function () {\r\n            let dependentFieldId = window.searchFieldSpecs[this.dependentField].id;\r\n\r\n            if (this.dynamicLookup && (!this.$store.state.searchCriteria[dependentFieldId] || this.$store.state.searchCriteria[dependentFieldId].length === 0)) {\r\n                return true;\r\n            }\r\n            else if (this.matchingStr) {\r\n                var matchExp = new RegExp(this.matchingStr),\r\n                    noAllowedYearFound = false;\r\n\r\n                if (this.$store.state.searchCriteria[dependentFieldId] && this.$store.state.searchCriteria[dependentFieldId].length > 0) {\r\n                    for (let i = 0; i < this.$store.state.searchCriteria[dependentFieldId].length; i++) {\r\n                        if (!matchExp.test(this.$store.state.searchCriteria[dependentFieldId][i].value)) {\r\n                            noAllowedYearFound = true;\r\n                            break;\r\n                        }\r\n                    }\r\n                } else {\r\n                    noAllowedYearFound = true;\r\n                }\r\n                return noAllowedYearFound;\r\n            }\r\n            return false;\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            serverless: false,\r\n            init: false,\r\n            data: null,\r\n            loading: false,\r\n            xhr: null,\r\n            failedToLoad: false,\r\n            filteredData: null,\r\n            // selected: [],\r\n            searchText: '',\r\n            searchTextPrevious: '',\r\n            selectedStatePrevious: [],\r\n            searchParams: null,\r\n            searchTimeout: null,\r\n            showDropdown: false,\r\n            dropdownScrollTimeout: null,\r\n            hasFocus: false,\r\n            focusedEl: null,\r\n            // firstMatchingEl: null,\r\n            dropdownFocused: false,\r\n            openCloseTimer: null,\r\n            allowedCharacters: /[a-zA-Z0-9-_ ]/,\r\n            activeListItemIndex: null,\r\n            // error: null,\r\n            lookupError: 'unable to load data',\r\n            dependentFieldHasData: false,\r\n            freeTextId: this.idFreeText || (this.id + '__free_text'),\r\n            // freeTextId: (this.idFreeText || this.id) + '__free_text',\r\n            // freeTextId: this.id + '__free_text',\r\n\r\n            // assigned here so that it can be overwritten below\r\n            // otherwise throws error in Vue\r\n            helpTextDisplay: this.helpText ? this.helpText : null\r\n        };\r\n    },\r\n    mounted () {\r\n        // initialize field in store so that it will be watched\r\n        if (!this.$store.state.searchCriteria[this.id]) {\r\n            if (!this.defaultValues) {\r\n               this.$store.state.searchCriteria[this.id] = [];\r\n            } else {\r\n               this.$store.state.searchCriteria[this.id] = [];\r\n            }\r\n        }\r\n\r\n        if (this.allowFreeText && !this.$store.state.searchCriteria[this.freeTextId]) {\r\n           this.$store.state.searchCriteria[this.freeTextId] = [];\r\n        }\r\n\r\n        if (!this.$store.state.searchCriteriaDefault[this.id]) {\r\n           this.$store.state.searchCriteriaDefault[this.id] = [];\r\n        }\r\n\r\n        if (this.allowFreeText && !this.$store.state.searchCriteriaDefault[this.freeTextId]) {\r\n           this.$store.state.searchCriteriaDefault[this.freeTextId] = '';\r\n        }\r\n\r\n        if (!this.$store.state.searchFieldErrors[this.id]) {\r\n           this.$store.state.searchFieldErrors[this.id] = [];\r\n        }\r\n\r\n        if (!this.$store.state.lookup[this.id]) {\r\n           this.$store.state.lookup[this.id] = [];\r\n        }\r\n\r\n        if (!this.dynamicLookup) {\r\n            // pull full lookup list at start\r\n            this.setData(this.build);\r\n        } else {\r\n            // do not pull lookup data if dynamic field\r\n            if (this.dependentField && this.$store.state.editSearchResults) {\r\n                setTimeout(() => {\r\n                    this.updateDependingField();\r\n                }, 1001)\r\n            } else {\r\n                this.build();\r\n            }\r\n\r\n        }\r\n\r\n        if (this.allowFreeText && this.$store.state.searchCriteria[this.freeTextId] && this.$store.state.searchCriteria[this.id].length === 0) {\r\n            // repopulate searchText to user value if free text was entered\r\n            // if (this.idFreeText) {\r\n            //     this.searchText = this.$store.state.searchCriteria[this.idFreeText];\r\n            // } else {\r\n            this.searchText = this.$store.state.searchCriteria[this.freeTextId];\r\n            // }\r\n        }\r\n\r\n        bus.$on('reset', this.reset);\r\n\r\n        if (this.$refs.buttonRemoveAll) {\r\n            this.$refs.buttonRemoveAll.style.marginRight = window.scrollbarWidth + 'px';\r\n        }\r\n        bus.$on('update:freeText', () => {\r\n            this.searchText = this.$store.state.searchCriteria[this.freeTextId];\r\n            this.setSearchFieldErrors({\r\n                field: this.id\r\n            });\r\n        });\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setEditSearchCriteria',\r\n            'setSearchCriteriaDefault',\r\n            'setSearchFieldErrors',\r\n            'setLookup'\r\n        ]),\r\n        setData (callback, thisId, url) {\r\n            this.xhr = new XMLHttpRequest()\r\n            if (!thisId) {\r\n                if (this.idLookup) {\r\n                    thisId = this.idLookup;\r\n                } else {\r\n                    thisId = this.id;\r\n                }\r\n\r\n                // console.log('thisId', thisId);\r\n            }\r\n\r\n            let loadData = () => {\r\n                    this.xhr.open('GET', url, true);\r\n                    this.xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n                    this.xhr.onload = () => {\r\n                        if (!this.serverless) {\r\n\t\t\t\t\t\t\tgtag('event', 'timing_complete', {\r\n\t\t\t\t\t\t\t\t'name' : url,\r\n\t\t\t\t\t\t\t\t'value' :  'lookup-' + thisId,\r\n\t\t\t\t\t\t\t\t'event_category' : 'Lookup Service - ' + this.title\r\n\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\r\n                        }\r\n\r\n                        if (this.xhr.status === 200) {\r\n                            if (this.xhr.response.indexOf('<!DOCTYPE html') === 0) {\r\n                                // service error\r\n                                if (!this.serverless) {\r\n                                    console.warn('%c' + thisId + '%c service: error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\tdescription: thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t});\r\n                                }\r\n\r\n                                this.serverlessFallback(callback);\r\n                            } else {\r\n                                this.data = JSON.parse(this.xhr.response);\r\n\r\n                                if (this.data.length !== 0 && this.data[0].display !== undefined && this.data[0].value !== undefined) {\r\n                                    this.filteredData = copyData(this.data);\r\n\r\n                                    // this.data.sort((a, b) => {\r\n                                    //     let textA = a.display.toLowerCase(),\r\n                                    //         textB = b.display.toLowerCase();\r\n\r\n                                    //     return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\r\n                                    // });\r\n\r\n                                    this.setLookup({\r\n                                        field: thisId,\r\n                                        data: copyData(this.data)\r\n                                    });\r\n\r\n                                    if (callback) {\r\n                                        this.$nextTick(() => {\r\n                                            callback();\r\n                                        });\r\n                                    }\r\n                                } else if (this.dynamicLookup) {\r\n                                    if (callback) {\r\n                                        this.$nextTick(() => {\r\n                                            callback();\r\n                                        });\r\n                                    }\r\n                                } else {\r\n                                    if (!this.serverless) {\r\n                                        console.warn('%c' + thisId + '%c service: returned data in an unexpected format\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t\t});\r\n                                    }\r\n\r\n                                    this.serverlessFallback(callback);\r\n                                }\r\n                            }\r\n                        } else {\r\n\r\n                            if (!this.serverless) {\r\n                                console.warn('%c' + thisId + '%c service: ' + this.xhr.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t});\r\n                            }\r\n\r\n                            this.serverlessFallback(callback);\r\n                        }\r\n                    };\r\n\r\n                    this.xhr.onerror = () => {\r\n                        if (!this.serverless) {\r\n                            console.warn('%c' + thisId + '%c service: returned data in an unexpected format\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\t\r\n\r\n                            this.serverlessFallback(callback);\r\n                        } else {\r\n                            this.loading = false;\r\n                            // this.error = this.lookupError;\r\n\r\n                            this.failedToLoad = true;\r\n\r\n                            this.setSearchFieldErrors({\r\n                                field: thisId,\r\n                                message: this.lookupError,\r\n                                lookupFailed: true,\r\n                                preventSearch: false\r\n                            });\r\n                        }\r\n                    };\r\n\r\n                    this.xhr.send();\r\n                };\r\n\r\n            this.loading = true;\r\n\r\n            // check for cached data before hitting service again\r\n            if (!this.dynamicLookup && this.$store.state.lookup[thisId].length !== 0) {\r\n                this.data = copyData(this.$store.state.lookup[thisId]);\r\n                this.filteredData = copyData(this.data);\r\n\r\n                if (callback) {\r\n                    this.$nextTick(() => {\r\n                        callback();\r\n                    });\r\n                }\r\n            } else {\r\n                if (window.serverless || this.serverless) {\r\n                    url = '/data/lookup-' + window.snakeToCamel(thisId) + '.json';\r\n                } else {\r\n                    // convert id to camelCase for lookup service\r\n                    url = '/services/Lookup/' + window.snakeToCamel(thisId);\r\n\r\n                    if (this.searchParams) {\r\n                        url += this.searchParams;\r\n                    }                    \r\n                }\r\n\r\n                this.xhr.abort();\r\n\r\n                loadData();\r\n            }\r\n\r\n\r\n        },\r\n\r\n        reset () {\r\n            this.searchText = '';\r\n        },\r\n\r\n        serverlessFallback (callback) {\r\n            // try serverless mode for just this component\r\n\r\n            if (!this.serverless) {\r\n                this.serverless = true;\r\n                this.setData(callback);\r\n            } else {\r\n                // this.error = this.lookupError;\r\n                this.setSearchFieldErrors({\r\n                    field: this.id,\r\n                    message: this.lookupError,\r\n                    lookupFailed: true,\r\n                    preventSearch: false\r\n                });\r\n                // this.$refs.input.placeholder = 'failed to load data';\r\n                this.loading = false;\r\n                this.failedToLoad = true;\r\n\r\n                console.error('%c' + this.id + '%c service: error\\nno static data source exists', window.consoleStyle.error, window.consoleStyle.reset);\r\n            }\r\n        },\r\n\r\n        setSelections (selections) {\r\n            let selected = [];\r\n\r\n            for (let i = 0; i < selections.length; i++) {\r\n                let select = this.data.find((item) => {\r\n                        if (item.value === selections[i]) {\r\n                            return item;\r\n                        }\r\n                    });\r\n\r\n                if (select) {\r\n                    selected = selected.concat(select);\r\n                }\r\n            }\r\n\r\n            this.updateSearchCriteria(selected);\r\n        },\r\n\r\n        pollForDependentField (recursionCount) {\r\n            let dependentFieldId = window.searchFieldSpecs[this.dependentField].id,\r\n                dependentFieldLookupData = this.$store.state.lookup[dependentFieldId];\r\n\r\n            if (dependentFieldLookupData && dependentFieldLookupData.length !== 0) {\r\n                this.dependentFieldHasData = true;\r\n                this.loading = false;\r\n            } else {\r\n                if (recursionCount === undefined) {\r\n                    recursionCount = 0;\r\n                }\r\n\r\n                if (recursionCount < 120 && !(this.$store.state.searchFieldErrors[dependentFieldId] && this.$store.state.searchFieldErrors[dependentFieldId].lookupFailed)) { // time out after 2 minutes\r\n                // if (recursionCount < 180) { // time out after 3 minutes\r\n                // if (recursionCount < 300) { // time out after 5 minutes\r\n                // if (recursionCount < 5) { // time out after 5 seconds\r\n                    setTimeout(() => {\r\n                        this.pollForDependentField(recursionCount + 1);\r\n                    }, 1000);\r\n                } else {\r\n                    // this.error = 'unable to load associated ' + this.dependentField + ' data';\r\n                    this.setSearchFieldErrors({\r\n                        field: this.id,\r\n                        message: 'unable to load associated ' + this.dependentField + ' data',\r\n                        preventSearch: false\r\n                    });\r\n\r\n                    this.failedToLoad = true;\r\n                    this.loading = false;\r\n                }\r\n            }\r\n        },\r\n\r\n        build () {\r\n            var multiSelectData,\r\n                dynamicMultiSelectObj = [];\r\n\r\n            if (this.$store.state.editSearchResults) {\r\n                if (this.$store.state.editSearchCriteria[this.id] && this.$store.state.editSearchCriteria[this.id].length !== 0) {\r\n                    switch (this.id) {\r\n                        case 'fiscal_years':\r\n                            this.setSelections(this.$store.state.editSearchCriteria[this.id]);\r\n                            let currYear = this.$store.state.editSearchCriteria[this.id];\r\n\r\n                            this.$refs.dropdown.querySelector('li[data-value=\"all\"]').classList.add('selected');\r\n                            if (!currYear || (currYear.length > 0 && (currYear[0] === '' || currYear[0].toLowerCase() === 'all'))) {\r\n                                let options = this.$refs.dropdown.querySelectorAll('li:not([data-value=\"all\"])');\r\n\r\n                                for (let i = 0; i < options.length; ++i) {\r\n                                    options[i].querySelector(\"button\").setAttribute(\"disabled\", 'disabled');\r\n                                    options[i].classList.add('disabled');\r\n                                }\r\n                            }\r\n                            break;\r\n                        case 'org_names':\r\n                        case 'org_names_exact_match':\r\n                            multiSelectData = this.$store.state.editSearchCriteria[this.id];\r\n\r\n                            for (let i = 0; i < multiSelectData.length; i++) {\r\n                                dynamicMultiSelectObj.push({\r\n                                    \"abbreviation\": null,\r\n                                    \"value\": multiSelectData[i],\r\n                                    \"display\": multiSelectData[i],\r\n                                    \"properties\": null\r\n                                });\r\n                            }\r\n                            this.updateSearchCriteria(dynamicMultiSelectObj);\r\n                            break;\r\n                        case 'award_types':\r\n                            multiSelectData = this.$store.state.editSearchCriteria[this.id];\r\n\r\n                            for (let i = 0; i <multiSelectData.length; i++) {\r\n                                let itemExists = dynamicMultiSelectObj.some((item) => {\r\n                                    if (item && item.value && item.value.indexOf(multiSelectData[i]) !== -1) {\r\n                                        return true;\r\n                                    }\r\n                                });\r\n                                if (!itemExists) {\r\n                                    let itemToBeAdded = this.$store.state.lookup[this.id].filter((item) => {\r\n                                        if (item.value.indexOf(multiSelectData[i]) !== -1) {\r\n                                            return item;\r\n                                        }\r\n                                    });\r\n                                    dynamicMultiSelectObj.push(itemToBeAdded[0]);\r\n                                }\r\n                            }\r\n                            this.updateSearchCriteria(dynamicMultiSelectObj);\r\n                            break;\r\n                        case 'funding_mechanism':\r\n                            multiSelectData = this.$store.state.editSearchCriteria[this.id];\r\n                            let editSearchCriteriaRefined = [];\r\n\r\n                            for (let i = 0; i <multiSelectData.length; i++) {\r\n                                let itemExists = dynamicMultiSelectObj.some((item) => {\r\n                                    if (item && item.value && item.value.indexOf(multiSelectData[i]) !== -1) {\r\n                                        return true;\r\n                                    }\r\n                                });\r\n                                if (!itemExists) {\r\n                                    let itemToBeAdded = this.$store.state.lookup[this.id].filter((item) => {\r\n                                        if (multiSelectData[i] === item.value) {\r\n                                            return item;\r\n                                        } else if (item.value.indexOf(';') !== -1 && multiSelectData[i].indexOf(item.value) !== -1) {\r\n                                            return item;\r\n                                        }\r\n                                    });\r\n\r\n                                    if (itemToBeAdded && itemToBeAdded.length > 0 && editSearchCriteriaRefined.indexOf(itemToBeAdded[0].value) === -1) {\r\n                                        dynamicMultiSelectObj.push(itemToBeAdded[0]);\r\n                                        editSearchCriteriaRefined.push(itemToBeAdded[0].value);\r\n                                    }\r\n                                }\r\n                            }\r\n\r\n                            this.setSearchCriteria({\r\n                                field: this.id,\r\n                                data: copyData(editSearchCriteriaRefined)\r\n                            });\r\n                            this.setEditSearchCriteria({\r\n                                field: this.id,\r\n                                data: copyData(editSearchCriteriaRefined)\r\n                            });\r\n                        default:\r\n                            this.setSelections(this.$store.state.editSearchCriteria[this.id]);\r\n                    }\r\n\r\n                    this.updateSearchCriteriaDefault();\r\n                } else {\r\n                    if (this.defaultValues && (!this.$store.state.editSearchCriteria[this.id] || this.$store.state.editSearchCriteria[this.id].length === 0)) {\r\n                        this.updateSearchCriteria([]);\r\n                    }\r\n                }\r\n            }\r\n            else if (this.defaultValues && !this.$store.state.searchCriteria[this.id]) {\r\n                this.setSelections(this.defaultValues);\r\n                this.updateSearchCriteriaDefault();\r\n            } else if (this.id === 'fiscal_years' && this.$store.state.searchCriteria[this.id] ) {\r\n                let currYear = this.$store.state.searchCriteria[this.id],\r\n                    allYearObj = _.filter(currYear, yr => yr.value === 'all'),\r\n                    isAllYearsSel = false;\r\n\r\n                if (allYearObj.length > 0) {\r\n                    isAllYearsSel = true;\r\n                }\r\n\r\n                if (isAllYearsSel) {\r\n                    this.$refs.dropdown.querySelector('li[data-value=\"all\"]').classList.add('selected');\r\n                    let options = this.$refs.dropdown.querySelectorAll('li:not([data-value=\"all\"])');\r\n\r\n                    for (let i = 0; i < options.length; ++i) {\r\n                        options[i].querySelector(\"button\").setAttribute(\"disabled\", 'disabled');\r\n                        options[i].classList.add('disabled');\r\n                    }\r\n                }\r\n            }\r\n\r\n            if (this.$refs.input) {\r\n                this.$refs.input.addEventListener('focus', () => {\r\n                    this.setFocus(this.id);\r\n\r\n                    if (this.dynamicLookup &&  this.dependentField) {\r\n                        setTimeout(() => {\r\n                            if (this.dependentField) {\r\n                                this.updateDependingField();\r\n                            }\r\n                        });\r\n                    }\r\n                    // this.openDropdown();\r\n                });\r\n                this.$refs.input.addEventListener('blur', () => {\r\n                    setTimeout(() => {\r\n                        this.removeFocus(this.id);\r\n                        // if (this.$store.state.searchCriteria[this.id] && this.$store.state.searchCriteria[this.id].length === 0) {\r\n                        //     this.searchText = '';\r\n                        //     this.updateSearchCriteria([]);\r\n                        // }\r\n                    }, 100);\r\n                });\r\n            }\r\n\r\n            if (this.$refs.dropdownScroll) {\r\n                this.$refs.dropdownScroll.addEventListener('scroll', () => {\r\n                    // change focus id on scrolling to keep dropdown from closing\r\n                    this.focusedId = 'dropdownScroll';\r\n\r\n                    // clear timeout to prevent event from firing multiple times\r\n                    if (this.dropdownScrollTimeout) {\r\n                        clearTimeout(this.dropdownScrollTimeout);\r\n                    }\r\n\r\n                    this.dropdownScrollTimeout = setTimeout(() => {\r\n                        // refocus input so that keyboard events work\r\n                        this.$refs.input.focus();\r\n                    }, 100);\r\n                });\r\n            }\r\n\r\n            if ( this.$refs.selectAllButton) {\r\n                this.$refs.selectAllButton.addEventListener('focus', this.focusSelectAllButton);\r\n            }\r\n\r\n            if (this.buildHelpText) {\r\n                this.helpTextDisplay = this.buildHelpText();\r\n            }\r\n\r\n            if (!this.dependentField) {\r\n                this.loading = false;\r\n            } else {\r\n                this.pollForDependentField();\r\n                // this.$store.state[window.searchFieldSpecs[dependentField].id]\r\n                // window.searchFieldSpecs[dependentField].id\r\n            }\r\n\r\n            // setup keyboard events on input field\r\n            if (this.$refs.input) {\r\n                    this.$refs.input.addEventListener('keydown', (event) => {\r\n                    var key = String.fromCharCode(event.keyCode);\r\n\r\n                    if (event.keyCode === 13) {\r\n                        // prevent submitting form if navigating dropdown list with keyboard\r\n                        if (this.activeListItemIndex === null) {\r\n                            this.closeDropdown();\r\n                        } else {\r\n                            event.preventDefault();\r\n                            event.stopPropagation();\r\n                        }\r\n                    }\r\n\r\n                    // check if input is letter, number, hyphen, underscore, or space\r\n                    if (!this.allowedCharacters.test(key)) {\r\n                        switch (event.keyCode) {\r\n                            case 8: // backspace/delete\r\n                            case 9: // tab\r\n                                break;\r\n\r\n                            default:\r\n                                // event.preventDefault();\r\n                                this.handleKeyboardEvents(event);\r\n                                break;\r\n                        }\r\n                    }\r\n\r\n                    if (this.dynamicLookup && !this.dependentField) {\r\n                        setTimeout(() => {\r\n                            // console.log(this.$refs.input.value);\r\n                            // console.log(this.searchText);\r\n\r\n                            // check if user input has changed\r\n                            if (this.searchTextPrevious !== this.searchText) {\r\n                                this.searchTextPrevious = this.searchText;\r\n\r\n                                if (this.searchText.length >= 3) {\r\n                                    this.searchParams = '?text=' + encodeURI(this.searchText);\r\n\r\n                                    // this.loading = true;\r\n                                    // if (this.showDropdown) {\r\n                                    //     this.closeDropdown({keepFocus: true});\r\n                                    // }\r\n\r\n                                    if (this.$store.state.searchCriteria[this.id].length === 0) {\r\n                                        this.updateFreeText(this.searchText);\r\n                                    }\r\n\r\n                                    // console.log('search', this.searchText);\r\n\r\n                                    if (this.searchTimeout) {\r\n                                        clearTimeout(this.searchTimeout);\r\n                                    }\r\n\r\n                                    this.searchTimeout = setTimeout(() => {\r\n                                        this.loading = true;\r\n\r\n                                        this.setData(this.dynamicDataLoaded);\r\n                                    }, 800);\r\n                                } else {\r\n                                    if (this.searchTimeout) {\r\n                                        clearTimeout(this.searchTimeout);\r\n                                    }\r\n\r\n                                    this.filteredData = null;\r\n                                    this.data = null;\r\n\r\n                                    // clear free text if entry is less than 3 characters\r\n                                    this.updateFreeText([]);\r\n                                }\r\n                            }\r\n                        }, 1);\r\n                    }\r\n                });\r\n            }\r\n            //////////////////////////////////\r\n            // this.openDropdown();\r\n        },\r\n\r\n        dynamicDataLoaded () {\r\n            this.loading = false;\r\n\r\n            if (this.data.length !== 0) {\r\n\r\n                // this.firstMatchingEl = this.data[0];\r\n                // reset errors\r\n                this.setSearchFieldErrors({\r\n                    field: this.id\r\n                });\r\n\r\n                this.openDropdown();\r\n            } else {\r\n                // console.log(this.data);\r\n                this.closeDropdown({keepFocus: true});\r\n\r\n                this.setSearchFieldErrors({\r\n                    field: this.id,\r\n                    message: 'No items match your search terms',\r\n                    lookupFailed: true,\r\n                    preventSearch: false\r\n                });\r\n            }\r\n        },\r\n\r\n        filterList (data) {\r\n            if (!this.dynamicLookup) {\r\n                let filteredData = [],\r\n                    addMissingParents = () => {\r\n                        let missingParent;\r\n\r\n                        for (let i = 0; i < filteredData.length; i++) {\r\n                            if (filteredData[i].parent_value) {\r\n                                missingParent = filteredData.filter((item) => {\r\n                                    if (filteredData[i].parent_value === item.value) {\r\n                                        return item;\r\n                                    }\r\n                                }).length === 0;\r\n\r\n                                if (missingParent) {\r\n                                    filteredData.push(this.getItemByValue(filteredData[i].parent_value));\r\n                                }\r\n\r\n                            }\r\n                        }\r\n                    };\r\n\r\n                if (this.searchText) {\r\n                    for (let i = 0; i < data.length; i++) {\r\n                        if (data[i].display.toLowerCase().indexOf(this.searchText.toLowerCase()) !== -1) {\r\n                            filteredData.push(data[i]);\r\n                        }\r\n                    }\r\n\r\n                    addMissingParents();\r\n\r\n                    this.filteredData = filteredData;\r\n                    // console.log(1);\r\n                    // this.firstMatchingEl = filteredData[0];\r\n\r\n                    return filteredData;\r\n                }\r\n            }\r\n\r\n            return data;\r\n        },\r\n\r\n        focusInput () {\r\n            if (this.data || this.dynamicLookup) {\r\n                let maxHeight = this.$refs.inputGroupWrapper.offsetHeight * 3,\r\n                    newHeight,\r\n                    // tagsHeight = this.$refs.inputGroup.offsetHeight + 50;\r\n                    tagsHeight = 9999;\r\n\r\n                if (this.$refs.inputGroup.offsetHeight > maxHeight) {\r\n                    newHeight = maxHeight;\r\n                } else {\r\n                    newHeight = this.$refs.inputGroup.offsetHeight;\r\n                }\r\n\r\n                if (this.$refs && this.$refs.inputGroupWrapper) {\r\n                    this.$refs.inputGroupWrapper.style.height = (newHeight - 2) + 'px';\r\n                }\r\n\r\n                if (this.$refs && this.$refs.input) {\r\n                    this.$refs.input.focus();\r\n                }\r\n\r\n                if (this.$refs && this.$refs.inputGroup) {\r\n                    this.$refs.inputGroup.scrollTop = tagsHeight;\r\n                }\r\n                // setTimeout(() => {\r\n                // }, 1);\r\n\r\n                if (this.searchText && this.searchText.length >= 3) {\r\n                    this.searchParams = '?text=' + encodeURI(this.searchText);\r\n\r\n                    this.searchTimeout = setTimeout(() => {\r\n                        this.loading = true;\r\n\r\n                        this.setData(this.dynamicDataLoaded);\r\n                    }, 1);\r\n                }\r\n\r\n                setTimeout(() => {\r\n                    if (this.openCloseTimer) {\r\n                        clearTimeout(this.openCloseTimer);\r\n                    }\r\n\r\n                    this.focusedId = this.id;\r\n                },100);\r\n\r\n                setTimeout(() => {\r\n                    this.$refs.inputGroupWrapper.style.height = '';\r\n                    // this.$refs.inputGroup.scrollTop = tagsHeight;\r\n                }, 301);\r\n            }\r\n        },\r\n\r\n        blurInput () {\r\n            this.showDropdown = false;\r\n\r\n            if (this.$refs.inputGroupWrapper) {\r\n                this.$refs.inputGroupWrapper.style.height = this.$refs.inputGroup.offsetHeight + 'px';\r\n            }\r\n\r\n            if (this.$refs && this.$refs.input) {\r\n                this.$refs.input.blur();\r\n            }\r\n\r\n            setTimeout(() => {\r\n                if (this.$refs.inputGroupWrapper) {\r\n                    this.$refs.inputGroupWrapper.style.height = '';\r\n                }\r\n\r\n                if (this.$refs && this.$refs.inputGroup) {\r\n                    this.$refs.inputGroup.scrollTop = 0;\r\n                }\r\n            }, 1);\r\n        },\r\n\r\n        setFocus (id) {\r\n            this.focusedId = id;\r\n\r\n            // if (!this.showDropdown) {\r\n            // if (!this.dynamicLookup) {\r\n            this.openDropdown();\r\n            // }\r\n            // }\r\n        },\r\n\r\n        removeFocus (id) {\r\n            if (this.allowFreeText && this.searchText.length < 3) {\r\n                this.searchText = '';\r\n\r\n                // clear free text if entry is less than 3 characters\r\n                this.updateFreeText([]);\r\n            }\r\n\r\n            // prevent searching if user has already clicked\r\n            // out of field before the data returns\r\n            if (this.dynamicLookup && this.xhr) {\r\n                this.xhr.abort();\r\n            }\r\n\r\n            // prevent submitting search if user has already clicked\r\n            // out of field before search delay has elapsed\r\n            if (this.searchTimeout) {\r\n                clearTimeout(this.searchTimeout);\r\n            }\r\n\r\n            if (this.openCloseTimer) {\r\n                clearTimeout(this.openCloseTimer);\r\n            }\r\n\r\n            this.openCloseTimer = setTimeout(() => {\r\n                if (this.focusedId === id) {\r\n                    this.focusedId = null;\r\n\r\n                    //////////////////////////\r\n                    this.closeDropdown();\r\n                }\r\n            }, 100);\r\n        },\r\n\r\n        focusSelectAllButton () {\r\n            this.focusedId = 'selectAllButton';\r\n\r\n            if (this.openCloseTimer) {\r\n                clearTimeout(this.openCloseTimer);\r\n            }\r\n        },\r\n\r\n        focusListItem (whichItem) {\r\n            var listItems = this.$refs.multiselect.$el.getElementsByClassName('multiselect__list__item'),\r\n                listButton,\r\n                toggleButton;\r\n\r\n            // console.log(listItems);\r\n\r\n            if (this.activeListItemIndex !== null) {\r\n                if (!listItems[this.activeListItemIndex]) {\r\n                    this.activeListItemIndex = 0;\r\n                }\r\n\r\n                //deactivate current active list item before reassigning active item index\r\n                // listButton = listItems[this.activeListItemIndex].childNodes[0];\r\n                listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n                listButton.classList.remove('active');\r\n                listButton.blur();\r\n\r\n                // console.log(listItems[this.activeListItemIndex]);\r\n                // console.log(listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0]);\r\n            }\r\n\r\n            switch (whichItem) {\r\n                case 'prev':\r\n                    if (this.activeListItemIndex === 0 || this.activeListItemIndex === null) {\r\n                        this.activeListItemIndex = listItems.length - 1;\r\n\r\n                        // listButton = listItems[this.activeListItemIndex].childNodes[0];\r\n                        listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                        // scroll active item into view\r\n                        this.$refs.dropdownScroll.scrollTop = this.$refs.dropdownScroll.scrollTop = listButton.offsetTop - this.$refs.dropdownScroll.offsetHeight + listButton.offsetHeight;\r\n\r\n                    // } else if (this.activeListItemIndex === null) {\r\n                    //     this.activeListItemIndex = listItems.length;\r\n                    } else {\r\n                        this.activeListItemIndex += -1;\r\n\r\n                        // listButton = listItems[this.activeListItemIndex].childNodes[0];\r\n                        listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                        // scroll active item into view\r\n                        if (listButton.offsetTop < this.$refs.dropdownScroll.scrollTop) {\r\n                            this.$refs.dropdownScroll.scrollTop = listButton.offsetTop;\r\n                        }\r\n                    }\r\n                    break;\r\n                case 'next':\r\n                    if (this.activeListItemIndex + 1 === listItems.length || this.activeListItemIndex === null) {\r\n                        // wrap around to beginning of list\r\n                        this.activeListItemIndex = 0;\r\n\r\n                        // listButton = listItems[this.activeListItemIndex].childNodes[0];\r\n                        listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                        // scroll active item into view\r\n                        this.$refs.dropdownScroll.scrollTop = listButton.offsetTop;\r\n                    // } else if (this.activeListItemIndex === null) {\r\n                    //     this.activeListItemIndex = 0;\r\n                    } else {\r\n                        this.activeListItemIndex += 1;\r\n\r\n                        // listButton = listItems[this.activeListItemIndex].childNodes[0];\r\n                        listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                        // console.log('listButton.offsetTop', listButton.offsetTop);\r\n                        // console.log('listButton.offsetHeight', listButton.offsetHeight);\r\n                        // console.log('this.$refs.dropdownScroll.offsetHeight', this.$refs.dropdownScroll.offsetHeight);\r\n                        // console.log('this.$refs.dropdownScroll.scrollTop', this.$refs.dropdownScroll.scrollTop);\r\n\r\n                        // scroll active item into view\r\n                        if (listButton.offsetTop + listButton.offsetHeight > this.$refs.dropdownScroll.offsetHeight + this.$refs.dropdownScroll.scrollTop) {\r\n                            this.$refs.dropdownScroll.scrollTop = listButton.offsetTop - this.$refs.dropdownScroll.offsetHeight + listButton.offsetHeight;\r\n                        }\r\n                    }\r\n\r\n                    break;\r\n                case 'expand':\r\n                    toggleButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__expand_toggle')[0];\r\n\r\n                    if (!toggleButton.classList.contains('expanded')) {\r\n                        toggleButton.click();\r\n                    }\r\n\r\n                    listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                    break;\r\n                case 'collapse':\r\n                    toggleButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__expand_toggle')[0];\r\n\r\n                    if (toggleButton.classList.contains('expanded')) {\r\n                        toggleButton.click();\r\n                    }\r\n\r\n                    listButton = listItems[this.activeListItemIndex].getElementsByClassName('multiselect__list__item_button')[0];\r\n\r\n                    break;\r\n                default:\r\n                    // if it is a number, go to that index\r\n                    if (!isNan(whichItem)) {\r\n                        this.activeListItemIndex = whichItem;\r\n                    }\r\n\r\n                    break;\r\n            }\r\n\r\n\r\n            listButton.classList.add('active');\r\n\r\n            this.focusedEl = listButton;\r\n\r\n\r\n            // listButton.focus();\r\n\r\n\r\n            // this.$refs.multiselect.$el.childNodes[this.activeListItemIndex].childNodes[0].focus();\r\n\r\n            // this.$refs.multiselect.$el.childNodes[this.activeListItemIndex].getElementsByClassName('multiselect__list');\r\n            // this.$refs.multiselect.$el.childNodes[this.activeListItemIndex].getElementsByClassName('multiselect__list__item');\r\n        },\r\n\r\n        openDropdown () {\r\n            this.showDropdown = true;\r\n            this.hasFocus = true;\r\n\r\n            if (this.openCloseTimer) {\r\n                clearTimeout(this.openCloseTimer);\r\n            }\r\n\r\n            this.openCloseTimer = setTimeout(() => {\r\n                if (this.$refs.dropdown) {\r\n                    this.$refs.dropdown.classList.add('open');\r\n                }\r\n            }, 1);\r\n        },\r\n\r\n        closeDropdown (options) {\r\n            this.hasFocus = false;\r\n\r\n            if (this.$refs.dropdown) {\r\n                this.$refs.dropdown.classList.remove('open');\r\n\r\n                if (this.allowFreeText && this.searchText !== '' && this.id === 'org_names') {\r\n                    this.selectItem({\r\n                        abbreviation: null,\r\n                        display: this.searchText,\r\n                        properties: null,\r\n                        value: this.searchText\r\n                    });\r\n                }\r\n                if ((!options || (options && !options.keepFocus)) && (!this.allowFreeText || this.$store.state.searchCriteria[this.id].length !== 0)) {\r\n                    this.searchText = '';\r\n                }\r\n\r\n                if (this.openCloseTimer) {\r\n                    clearTimeout(this.openCloseTimer);\r\n                }\r\n\r\n                this.openCloseTimer = setTimeout(() => {\r\n                    // this.showDropdown = false;\r\n\r\n                    if (!options || (options && !options.keepFocus)) {\r\n                        this.blurInput();\r\n                    }\r\n\r\n                    this.activeListItemIndex = null;\r\n                    // this.searchText = '';\r\n\r\n                    if (this.dynamicLookup && (!this.allowFreeText || this.$store.state.searchCriteria[this.id].length !== 0)) {\r\n                        this.filteredData = null;\r\n                        this.data = null;\r\n                    }\r\n\r\n                    if (this.focusedEl) {\r\n                        this.focusedEl.classList.remove('active');\r\n                        this.focusedEl = null;\r\n                    }\r\n                }, 301);\r\n            } else {\r\n                // this.showDropdown = false;\r\n                this.blurInput();\r\n            }\r\n        },\r\n\r\n        clearTag (item) {\r\n            if (this.showDropdown) {\r\n                // if dropdown is open, keep it open by focusing the input\r\n                this.focusInput();\r\n            }\r\n\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t'event_label': 'Clear Tag - ' + this.title + ' - ' + item.value,\r\n\t\t\t\t'value': this.title + ' - ' + item.value\r\n\t\t\t});\t\r\n\r\n            this.selectDeselect(item);\r\n        },\r\n\r\n        handleKeyboardEvents (event) {\r\n            let keyCode = event.keyCode,\r\n                inputFocused = this.id === this.focusedId;\r\n\r\n            // console.log(event);\r\n\r\n            // use preventDefault inside switch to allow left/right\r\n            // arrows to work inside input as expected\r\n            switch (keyCode) {\r\n                case 37: // left\r\n                    if (this.activeListItemIndex !== null && this.activeListItemIndex !== undefined) {\r\n                        this.focusListItem('collapse');\r\n                    }\r\n\r\n                    break;\r\n                case 38: // up\r\n                    event.preventDefault();\r\n                    this.focusListItem('prev');\r\n\t\t\t\t\t\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Up - (Highlight previous dropdown item) - ' + this.title,\r\n\t\t\t\t\t\t'value': this.title\r\n\t\t\t\t\t});\t\r\n\t\t\t\t\t\r\n                    break;\r\n                case 39: // right\r\n                    if (this.activeListItemIndex !== null && this.activeListItemIndex !== undefined) {\r\n                        this.focusListItem('expand');\r\n                    }\r\n\r\n                    break;\r\n                case 40: // down\r\n                    event.preventDefault();\r\n                    this.focusListItem('next');\r\n\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Down - (Highlight next dropdown item) - ' + this.title,\r\n\t\t\t\t\t\t'value': this.title\r\n\t\t\t\t\t});\t\r\n\t\t\t\t\t\r\n                    break;\r\n                case 9: // tab\r\n                    // if pressing tab from the select all button\r\n                    if (event.target.classList.contains('multiselect__select_all')) {\r\n                        if (!event.shiftKey) {\r\n                            this.closeDropdown();\r\n                        }\r\n                    }\r\n\r\n                    // event.preventDefault();\r\n                    // if (event.shiftKey) {\r\n                    //     this.focusListItem('prev');\r\n                    // } else {\r\n                    //     this.focusListItem('next');\r\n                    // }\r\n                    break;\r\n                case 13: // enter\r\n                    // console.log('entered');\r\n                    if (this.focusedEl) {\r\n                        this.focusedEl.click();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t\t'event_label': 'Enter - (Select dropdown item) - ' + this.title,\r\n\t\t\t\t\t\t\t'value': this.title\r\n\t\t\t\t\t\t});\t\r\n\t\t\t\t\t\t\r\n                    // } else if (this.firstMatchingEl) {\r\n                    //     this.selectItem(this.firstMatchingEl);\r\n                    //     this.firstMatchingEl = null;\r\n                    }\r\n\r\n                    break;\r\n                case 27: // escape\r\n                    this.closeDropdown();\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Escape - (Close dropdown) - ' + this.title,\r\n\t\t\t\t\t\t'value': this.title\r\n\t\t\t\t\t});\t\r\n                    break;\r\n                // default:\r\n                //     console.log(this.$refs.input);\r\n                //     break;\r\n            }\r\n        },\r\n\r\n        getItemByValue (value) {\r\n            var item;\r\n\r\n            item = this.data.filter((item) => {\r\n                if (value === item.value) {\r\n                    return item;\r\n                }\r\n            });\r\n\r\n            return item[0];\r\n        },\r\n\r\n        isSelected (value) {\r\n            // if (this.searchCriteria[this.id]) {\r\n            if (this.$store.state.searchCriteria[this.id]) {\r\n                // return this.searchCriteria[this.id].some((item) => {\r\n                return this.$store.state.searchCriteria[this.id].some((item) => {\r\n                    if (item.value === value) {\r\n                        return true;\r\n                    }\r\n                });\r\n            }\r\n\r\n            return false;\r\n        },\r\n\r\n        filterSelected (selected) {\r\n            var selectDisplayItems = [],\r\n                parent,\r\n                childrenToHide = [],\r\n                allChildrenSelected = (children_values) => {\r\n                    var childrenData = selected.filter((item) => {\r\n                        if (children_values.indexOf(item.value) !== -1) {\r\n                            return item;\r\n                        }\r\n                    });\r\n\r\n                    return true;\r\n                };\r\n\r\n            for (let i = 0; i < selected.length; i++) {\r\n                if (selected[i] && selected[i].children_values) {\r\n                    childrenToHide = childrenToHide.concat(selected[i].children_values);\r\n                }\r\n            }\r\n\r\n            selectDisplayItems = selected.filter((item) => {\r\n                if (item) {\r\n                    if (childrenToHide.indexOf(item.value) === -1) {\r\n                        return item;\r\n                    }\r\n                }\r\n            });\r\n\r\n            return selectDisplayItems;\r\n        },\r\n\r\n        getChildren (parent, children_values) {\r\n            let childrenData,\r\n                dataSource = this.searchText ? this.filteredData : this.data;\r\n\r\n            childrenData = dataSource.filter((item) => {\r\n                if (children_values.indexOf(item.value) !== -1 && item.parent_value === parent.value) {\r\n                    return item;\r\n                }\r\n            });\r\n\r\n            return childrenData;\r\n        },\r\n\r\n        updateSearchCriteriaDefault () {\r\n            if (this.defaultValues) {\r\n                let defaultItems = [];\r\n\r\n                for (let i = 0; i < this.defaultValues.length; i++) {\r\n                    let item = this.data.filter((item) => {\r\n                        if (item.value === this.defaultValues[i]) {\r\n                            return item;\r\n                        }\r\n                    })[0];\r\n\r\n                    defaultItems.push(item);\r\n                }\r\n\r\n                this.setSearchCriteriaDefault({\r\n                    field: this.id,\r\n                    data: defaultItems\r\n                });\r\n            }\r\n            if (this.additionalControl) {\r\n                for (let i = 0; i < this.additionalControl.options.length; i++) {\r\n                    this.setSearchCriteriaDefault({\r\n                        field: this.additionalControl.options[i].name,\r\n                        data: this.additionalControl.options[i].value\r\n                    });\r\n                }\r\n            }\r\n        },\r\n\r\n        updateSearchCriteria (data) {\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                data: copyData(data)\r\n            });\r\n\r\n            // clear free text if options are selected form the picklist\r\n            this.updateFreeText([]);\r\n        },\r\n\r\n        updateFreeText (data) {\r\n            this.setSearchCriteria({\r\n                field: this.freeTextId,\r\n                data: data\r\n            });\r\n\r\n            // if (this.idFreeText) {\r\n            //     this.setSearchCriteria({\r\n            //         field: this.idFreeText,\r\n            //         data: data\r\n            //     });\r\n            // }\r\n        },\r\n\r\n        selectItem (item) {\r\n            if (!this.isSelected(item.value)) {\r\n                this.setSearchCriteria({\r\n                    field: this.id,\r\n                    add: [item]\r\n                });\r\n            }\r\n\r\n            if (this.select) {\r\n                this.select();\r\n            }\r\n\r\n            if (this.change) {\r\n                this.change(this.$refs.dropdown);\r\n            }\r\n        },\r\n\r\n        deselectItem (item) {\r\n            // this.firstMatchingEl = null;\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                remove: [item]\r\n            });\r\n\r\n            if (this.deselect) {\r\n                this.deselect();\r\n            }\r\n\r\n            if (this.change) {\r\n                this.change(this.$refs.dropdown);\r\n            }\r\n        },\r\n\r\n        deselectParents (parent_value) {\r\n            let parent = this.getItemByValue(parent_value),\r\n                siblingValues = parent.children_values,\r\n                siblingsSelectedCount = 0;\r\n\r\n            // see how many siblings are selected\r\n            for (let i = 0; i < siblingValues.length; i++) {\r\n                if (this.isSelected(siblingValues[i])) {\r\n                    siblingsSelectedCount++;\r\n                }\r\n            }\r\n\r\n            if (siblingsSelectedCount === siblingValues.length) {\r\n                // if all siblings are selected, select parent also\r\n                this.selectItem(parent);\r\n            } else {\r\n                // if not all siblings are selected, deselect parent\r\n                if (this.isSelected(parent_value)) {\r\n                    this.deselectItem(parent);\r\n                }\r\n            }\r\n\r\n            if (parent.parent_value) {\r\n                this.deselectParents(parent.parent_value);\r\n            }\r\n        },\r\n\r\n        selectChildren (item, children_values) {\r\n            let children = this.getChildren(item, children_values),\r\n                child;\r\n\r\n            for (let i = 0; i < children.length; i++) {\r\n                this.selectItem(children[i]);\r\n\r\n                child = this.getItemByValue(children[i].value);\r\n\r\n                if (child.children_values) {\r\n                    this.selectChildren(child, child.children_values);\r\n                }\r\n            }\r\n        },\r\n\r\n        deselectChildren (item, children_values) {\r\n            let children = this.getChildren(item, children_values),\r\n                child;\r\n\r\n            for (let i = 0; i < children.length; i++) {\r\n                this.deselectItem(children[i]);\r\n\r\n                child = this.getItemByValue(children[i].value);\r\n\r\n                if (child.children_values) {\r\n                    this.deselectChildren(child, child.children_values);\r\n                }\r\n            }\r\n        },\r\n\r\n        selectDeselect (item) {\r\n            let children,\r\n                $this = this;\r\n\r\n            if (this.showDropdown) {\r\n                // if dropdown is open, keep it open by focusing the input\r\n                this.focusedId = 'selectDeselect';\r\n\r\n                // reset focus id afer a short timeout\r\n                // to enable dropdown to close properly\r\n                // when navigating using the keyboard\r\n                setTimeout(() => {\r\n                    $this.focusedId = this.id;\r\n                }, 100);\r\n\r\n                setTimeout(() => {\r\n                    // refocus input so that keyboard events work\r\n                    $this.$refs.input.focus();\r\n                }, 110);\r\n            }\r\n\r\n            if (!this.isSelected(item.value)) {\r\n                // add item\r\n                this.selectItem(item);\r\n\r\n                // if selected item has children, select all of them\r\n                if (item.children_values) {\r\n                    this.selectChildren(item, item.children_values);\r\n                }\r\n\t\t\t\t\r\n\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label':  'Select - ' + this.title + ' - ' + item.value,\r\n\t\t\t\t\t'value': item.value\r\n\t\t\t\t});\t\t\t\t\t\t\t\r\n            } else {\r\n                // remove item\r\n                this.deselectItem(item);\r\n\r\n                // if selected item has children, deselect all\r\n                if (item.children_values) {\r\n                    this.deselectChildren(item, item.children_values);\r\n                }\r\n\r\n\t\t\t\tgtag('event','Click', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Deselect - ' + this.title + ' - ' + item.value,\r\n\t\t\t\t\t'value': item.value\r\n\t\t\t\t});\t\r\n            }\r\n\r\n            // check parent-child relation\r\n            if (item.parent_value) {\r\n                this.deselectParents(item.parent_value);\r\n            }\r\n\r\n            // clear free text if options are selected form the picklist\r\n            this.updateFreeText([]);\r\n\r\n            // this.$nextTick(() => {\r\n            //     this.$refs.input.style.width = ''\r\n            // });\r\n        },\r\n\r\n        deselectAllButton () {\r\n            this.focusedId = 'selectAllButton';\r\n\r\n            setTimeout(() => {\r\n                // refocus input so that keyboard events work\r\n                this.$refs.input.focus();\r\n            }, 110);\r\n\r\n            this.deselectAll();\r\n        },\r\n\r\n        selectDeselectAll () {\r\n            if (this.showDropdown) {\r\n                // if dropdown is open, keep it open by focusing the input\r\n                this.focusedId = 'selectAllButton';\r\n\r\n                setTimeout(() => {\r\n                    // refocus input so that keyboard events work\r\n                    this.$refs.input.focus();\r\n                }, 110);\r\n            }\r\n\r\n            if (this.$store.state.searchCriteria[this.id].length !== this.data.length) {\r\n                this.selectAll();\r\n            } else {\r\n                this.deselectAll();\r\n            }\r\n        },\r\n\r\n        selectAll () {\r\n            this.updateSearchCriteria(this.data);\r\n\r\n            if (this.select) {\r\n                this.select();\r\n            }\r\n\r\n            if (this.change) {\r\n                this.change(this.$refs.dropdown);\r\n            }\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t'event_label': 'Select All - ' + this.title,\r\n\t\t\t\t'value': this.title\r\n\t\t\t});\t\r\n        },\r\n\r\n        deselectAll () {\r\n            this.updateSearchCriteria([]);\r\n\r\n            if (this.deselect) {\r\n                this.deselect();\r\n            }\r\n\r\n            if (this.change) {\r\n                this.change(this.$refs.dropdown);\r\n            }\r\n\t\t\t\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t'event_label': 'Select All - ' + this.title,\r\n\t\t\t\t'value': this.title\r\n\t\t\t});\t\r\n        },\r\n\r\n        updateDependingField () {\r\n            let depFieldId = window.searchFieldSpecs[this.dependentField].id,\r\n                isEdit = false;\r\n\r\n            this.searchParams = '';\r\n            var criteria = toRaw(this.$store.state.searchCriteria);\r\n\r\n            if (!criteria[depFieldId] || criteria[depFieldId].length === 0 ) {\r\n                criteria = toRaw(this.$store.state.editSearchCriteria);\r\n                isEdit = true;\r\n            }\r\n\r\n            if (this.dynamicLookup && this.dependentField) {\r\n                var selectedState = [];\r\n                if (criteria[depFieldId] && criteria[depFieldId].length > 0) {\r\n                    let allStates = this.$store.state.lookup[depFieldId];\r\n                    for (let i = 0; i < criteria[depFieldId].length; i++) {\r\n                        if (!isEdit) {\r\n                            switch (criteria[depFieldId][i].value.toLowerCase()) {\r\n                                case 'all':\r\n                                    for (let sCnt = 0; sCnt < allStates.length; sCnt++) {\r\n                                        if (allStates[sCnt].children_values === null) {\r\n                                            selectedState.push(allStates[sCnt].value);\r\n                                            this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(allStates[sCnt].value);\r\n                                        }\r\n                                    }\r\n                                    break;\r\n                                case 'us_states':\r\n                                case 'us_territories':\r\n                                    let currentState = _.filter(allStates, st => st.value.toLowerCase() === criteria[depFieldId][i].value.toLowerCase())\r\n                                    if (currentState.length > 0) {\r\n                                        //selectedState.push(criteria[depFieldId][i].toLowerCase());\r\n                                        //this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(criteria[depFieldId][i].toLowerCase());\r\n                                        for (let sCnt = 0; sCnt < currentState[0].children_values.length; sCnt++) {\r\n                                                selectedState.push(currentState[0].children_values[sCnt]);\r\n                                                this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(currentState[0].children_values[sCnt]);\r\n                                        }\r\n                                    }\r\n                                    break; \r\n                            }\r\n\r\n                            selectedState.push(criteria[depFieldId][i].value.toLowerCase());\r\n                            this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(criteria[depFieldId][i].value);\r\n                        } else {\r\n                            switch (criteria[depFieldId][i].toLowerCase()) {\r\n                                case 'all':\r\n                                    for (let sCnt = 0; sCnt < allStates.length; sCnt++) {\r\n                                        if (allStates[sCnt].children_values === null) {\r\n                                            selectedState.push(allStates[sCnt].value);\r\n                                            this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(allStates[sCnt].value);\r\n                                        }\r\n                                    }\r\n                                    break;\r\n                                case 'us_states':\r\n                                case 'us_territories':\r\n                                    let currentState = _.filter(allStates, st => st.value.toLowerCase() === criteria[depFieldId][i].toLowerCase())\r\n                                    if (currentState.length > 0) {\r\n                                        selectedState.push(criteria[depFieldId][i].toLowerCase());\r\n                                        this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(criteria[depFieldId][i].toLowerCase());\r\n                                        for (let sCnt = 0; sCnt < currentState[0].children_values.length; sCnt++) {\r\n                                                selectedState.push(currentState[0].children_values[sCnt]);\r\n                                                this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(currentState[0].children_values[sCnt]);\r\n                                        }\r\n                                    }\r\n                                    break; \r\n                            }\r\n                            selectedState.push(criteria[depFieldId][i]);\r\n                            this.searchParams += (this.searchParams === '' ? '?' : '&') + 'states=' + encodeURI(criteria[depFieldId][i]);\r\n                        }\r\n                    }\r\n\r\n                    if (selectedState.join(',') !== this.selectedStatePrevious.join(',')) {\r\n                        this.selectedStatePrevious = copyData(selectedState);\r\n\r\n                        //this.searchParams = '?states=' + encodeURI(selectedState.join(','));\r\n\r\n                        this.setData(this.dependingDataLoaded);\r\n                    } else {\r\n                        this.data = this.$store.state.lookup[this.id];\r\n                        this.filteredData = copyData(this.data);\r\n                    }\r\n                } else {\r\n                    this.build();\r\n                }\r\n            }\r\n        },\r\n\r\n        dependingDataLoaded () {\r\n            this.loading = false;\r\n\r\n            if (this.data.length !== 0) {\r\n\r\n                // reset errors\r\n                this.setSearchFieldErrors({\r\n                    field: this.id\r\n                });\r\n\r\n                if (this.$store.state.editSearchResults) {\r\n                    this.build();\r\n                }\r\n            } else {\r\n                this.setSearchFieldErrors({\r\n                    field: this.id,\r\n                    message: 'No items match your search terms',\r\n                    lookupFailed: true,\r\n                    preventSearch: false\r\n                });\r\n            }\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import '@/scss/variables.scss';\r\n@import 'node_modules/bootstrap/scss/_mixins';\r\n\r\n$multiselect-spacing: 0.15rem;\r\n$select-all-btn-height: 30px;\r\n\r\n.multiselect {\r\n    position: relative;\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 0.5em;\r\n    color: #212529;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    overflow: visible;\r\n}\r\n\r\n.input-group {\r\n    overflow: hidden;\r\n    // box-shadow: none;\r\n    box-shadow: $field-shadow;\r\n    // border-radius: $input-radius;\r\n    transition: 0.3s;\r\n\r\n    // height: 0;\r\n    height: auto;\r\n    min-height: calc(2.875rem + 2px);\r\n    max-height: calc((2.875rem + 2px) * 3);\r\n\r\n    &.inactive {\r\n        // height: 42.25px;\r\n        height: calc(2.875rem + 2px);\r\n        // max-height: calc((2.875rem + 2px) * 1.5);\r\n    }\r\n\r\n    &.focused {\r\n        // height: auto;\r\n        border-color: #1998fd;\r\n        box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n    }\r\n}\r\n\r\n.form-control {\r\n    background-color: transparent;\r\n}\r\n\r\n\r\n.multiselect__input-group {\r\n    position: relative;\r\n    // padding: 0.4rem 0.5rem;\r\n    padding: 0.25rem 0.5rem;\r\n    width: 100%;\r\n    height: auto;\r\n    min-height: calc(2.875rem + 2px);\r\n    // max-height: calc((2.875rem + 2px) * 2);\r\n    max-height: calc((2.875rem + 2px) * 3);\r\n    background-color: $grey-lighter;\r\n    border-radius: $input-radius;\r\n    font-size: 15px;\r\n    transition: 0.3s;\r\n    overflow: hidden;\r\n    scroll-behavior: smooth;\r\n\r\n    &.active {\r\n        // max-height: calc((2.875rem + 2px) * 3);\r\n        // max-height: 100%;\r\n        overflow-x: hidden;\r\n        overflow-y: scroll;\r\n        border-color: #1998fd;\r\n        outline: 0;\r\n        -webkit-box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n        box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n\r\n        .multiselect__input {\r\n            // position: relative;\r\n            margin: $multiselect-spacing 0;\r\n            height: 1.6em;\r\n            // line-height: 1em;\r\n        }\r\n\r\n        // .multiselect__tags {\r\n        //     position: relative;\r\n        // }\r\n    }\r\n    &.disabled {\r\n        opacity: 0.5;\r\n    }\r\n    ::-webkit-input-placeholder { /* Chrome/Opera/Safari */\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #757575;\r\n    }\r\n    ::-moz-placeholder { /* Firefox 19+ */\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #757575;\r\n    }\r\n    :-ms-input-placeholder { /* IE 10+ */\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #757575;\r\n    }\r\n    :-moz-placeholder { /* Firefox 18- */\r\n        font-size: 14px;\r\n        font-weight: 500;\r\n        color: #757575;\r\n    }\r\n}\r\n\r\n.multiselect__tags {\r\n    display: inline;\r\n    margin: 0;\r\n    padding: 0.5rem 0;\r\n    list-style: none;\r\n\r\n    // position: absolute;\r\n    // top: 0;\r\n    // z-index: 1;\r\n}\r\n\r\n.multiselect__tag {\r\n    position: relative;\r\n    display: inline-block;\r\n    padding: 0.1em 1.5em 0.1em 0.5em;\r\n    margin: $multiselect-spacing 0.4rem $multiselect-spacing 0;\r\n    // margin-right: $multiselect-spacing;\r\n    background-color: $blue-lightest;\r\n    border-radius: 12px;\r\n    // font-size: 15px;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    color: #333;\r\n    box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.25);\r\n    transition: 0.3s;\r\n\r\n    float: left;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.35);\r\n    }\r\n}\r\n\r\n.multiselect__tag__remove {\r\n    $iconSize: 1.75em;\r\n\r\n    position: absolute;\r\n    top: 0;\r\n    right: 0;\r\n    padding: 0;\r\n    border: none;\r\n    background: none;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    text-align: center;\r\n    cursor: pointer;\r\n\r\n    .svg {\r\n        padding: 0.4em 0.4em 0.5em 0.5em;\r\n        width: $iconSize;\r\n        height: $iconSize;\r\n        // fill: rgba(0,0,0,0.25);\r\n        color: rgba($blue-dark, 0.4);\r\n    }\r\n\r\n    vertical-align: middle;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        .svg {\r\n            color: $orange;\r\n        }\r\n    }\r\n}\r\n\r\n.multiselect__tag__remove_all {\r\n    $iconSize: 2em;\r\n\r\n    position: absolute;\r\n    top: 0.45em;\r\n    right: 0.25em;\r\n\r\n    // float: right;\r\n    // margin-right: -0.25em;\r\n\r\n    padding: 0;\r\n    border: none;\r\n    background: none;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    text-align: center;\r\n    cursor: pointer;\r\n\r\n    z-index: 10;\r\n\r\n    .svg {\r\n        padding: 0.4em 0.4em 0.5em 0.5em;\r\n        width: $iconSize;\r\n        height: $iconSize;\r\n        color: rgba(0,0,0,0.25);\r\n    }\r\n\r\n    vertical-align: middle;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        .svg {\r\n            color: $orange;\r\n        }\r\n    }\r\n}\r\n\r\n.multiselect__remove_all {\r\n    $iconSize: 1.4em;\r\n\r\n    // position: absolute;\r\n    // top: 0.45em;\r\n    // right: 0.25em;\r\n\r\n    float: right;\r\n    margin-right: -0.2em;\r\n    // margin-left: -0.25em;\r\n    // margin-top: -0.3em;\r\n\r\n    padding: 0;\r\n    border: none;\r\n    background: none;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    text-align: center;\r\n    cursor: pointer;\r\n\r\n    z-index: 10;\r\n\r\n    .svg {\r\n        position: relative;\r\n        margin-top: -0.2em;\r\n        padding: 0 0.25em;\r\n        width: $iconSize;\r\n        height: $iconSize;\r\n        color: rgba($blue-dark, 0.4);\r\n    }\r\n\r\n    vertical-align: middle;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        .svg {\r\n            color: $orange;\r\n        }\r\n    }\r\n}\r\n\r\n.multiselect__expand {\r\n    $iconSize: 2em;\r\n\r\n    position: absolute;\r\n    top: 0.45em;\r\n    right: 0.25em;\r\n    // float: right;\r\n    margin-right: -0.25em;\r\n\r\n    padding: 0.4em 0.4em 0.5em 0.5em;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    color: rgba(0,0,0,0.25);\r\n\r\n    z-index: 20;\r\n    // position: relative;\r\n    background-color: #ececec;\r\n    box-shadow: 0 0 15px #ececec;\r\n    border-radius: 5px;\r\n\r\n}\r\n\r\n.multiselect__select_all {\r\n    @include button-variant(#fff, #fff);\r\n\r\n    position: absolute;\r\n    bottom: 0;\r\n    width: 100%;\r\n    height: $select-all-btn-height;\r\n\r\n    color: $blue;\r\n    font-weight: 700;\r\n\r\n    border-radius: 0;\r\n    box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.25);\r\n\r\n    &:hover,\r\n    &:focus {\r\n        background-color: $blue;\r\n        border-color: $blue;\r\n        color: #fff;\r\n    }\r\n\r\n    &.multiselect__deselect_all {\r\n        &:hover,\r\n        &:focus {\r\n            background-color: #fff;\r\n            border-color: #fff;\r\n            color: $red;\r\n        }\r\n    }\r\n}\r\n\r\n.multiselect__input {\r\n    // position: absolute;\r\n    // display: block;\r\n    //display: inline-block;\r\n    // margin: $multiselect-spacing;\r\n    // margin: 0;\r\n    margin: 0;\r\n    padding: 0;\r\n    // padding-left: 0;\r\n    // padding-right: 0;\r\n    // width: 2em;\r\n    font-size: 15px;\r\n    width: 100%;\r\n    // height: 1.5em;\r\n    height: 1.6em;\r\n    // height: 0;\r\n    // line-height: 0;\r\n    transition: 0.3s;\r\n    // transition-delay: 0.3s;\r\n\r\n    overflow: visible;\r\n\r\n    border: none;\r\n    box-shadow: none;\r\n\r\n    &:focus {\r\n        box-shadow: none;\r\n    }\r\n\r\n    &:disabled {\r\n        opacity: 0.5;\r\n    }\r\n}\r\n\r\n.multiselect__dropdown {\r\n    position: absolute;\r\n    top: 100%;\r\n    // bottom: 0;\r\n    left: 0;\r\n    // padding-bottom: $select-all-btn-height;\r\n    padding-bottom: 0;\r\n    // width: 100%;\r\n    min-width: 100%;\r\n    max-width: 200%;\r\n    height: 0;\r\n    background-color: #fff;\r\n    box-shadow: 0 2px 8px 0px rgba(0,0,0,0.25);\r\n    border-radius: $input-radius;\r\n    // overflow: auto;\r\n    overflow: hidden;\r\n    z-index: 100;\r\n    transition: 0.3s;\r\n\r\n    &.wide {\r\n        width: 130%;\r\n        @media screen and (max-width: $screen-sm) {\r\n            width: 100%;\r\n        }\r\n    }\r\n\r\n    &.open {\r\n        padding-bottom: $select-all-btn-height;\r\n        height: 200px;\r\n    }\r\n\r\n    .multiselect__dropdown_scroll {\r\n        overflow: auto;\r\n        height: 100%;\r\n    }\r\n}\r\n\r\n.multiselect__dropdown_scroll_loading {\r\n    opacity: 0.5;\r\n    pointer-events: none;\r\n}\r\n\r\n.loader {\r\n    $size: 18px;\r\n\r\n    display: inline-block;\r\n    position: relative;\r\n    top: 3px;\r\n    left: 6px;\r\n\r\n    // negative margin prevents title shifting around\r\n    // when loader is added and removed\r\n    margin-top: -10px;\r\n    width: $size;\r\n    height: $size;\r\n}\r\n\r\n.loading-failed {\r\n    .field-title {\r\n        color: $grey-med;\r\n    }\r\n\r\n    .field-wrapper {\r\n        opacity: 0.25;\r\n    }\r\n}\r\n\r\n</style>","<template>\r\n    <ul class=\"multiselect__list\">\r\n        <li\r\n            v-for=\"(item, index) in filterData(data)\"\r\n            :key=\"id + '-' + nestingIndex + '-' + index + '-' + item.value.replace(/\\s/g,'')\"\r\n            :data-value=\"item.value\"\r\n            class=\"multiselect__list__item\"\r\n            :class=\"isSelected(item.value) ? 'selected' : ''\"\r\n            :title=\"getToolTipText(item)\"\r\n        >\r\n            <button\r\n                v-if=\"item.children_values && item.children_values.length !== 0\"\r\n                @click.stop=\"expandCollapse(index)\"\r\n                tabindex=\"-1\"\r\n                class=\"multiselect__expand_toggle\"\r\n                :class=\"expanded[index] || topParent.searchText ? 'expanded' : ''\"\r\n            >\r\n\t\t\t\t<i class=\"fas fa-chevron-right multiselect__expand_toggle__icon\"></i>                \r\n                <span class=\"sr-only\">+</span>\r\n            </button>\r\n            <button\r\n                :id=\"id + '-' + nestingIndex + '-' + index + '-' + item.value.replace(/\\s/,'')\"\r\n                @click=\"selectDeselect(item)\"\r\n                tabindex=\"-1\"\r\n                class=\"multiselect__list__item_button\"\r\n                :class=\"item.children_values && item.children_values.length !== 0 ? 'has-children' : ''\"\r\n            >\r\n                <!-- :class=\"item.children_values && item.children_values.length !== 0 ? 'has-children' : ''\" -->\r\n                {{item.display}}\r\n            </button>\r\n            <!-- <transition name=\"slide-fade\"> -->\r\n            <transition-collapse-height>\r\n                <multi-select-list\r\n                    v-if=\"item.children_values && item.children_values.length !== 0 && (expanded[index] || topParent.searchText)\"\r\n                    :id=\"id\"\r\n                    :data=\"getChildren(item, item.children_values)\"\r\n                    :topParent=\"topParent\"\r\n                    :nestingIndex=\"nestingIndex + 1\"\r\n                />\r\n                    <!-- v-show=\"expanded[index] || topParent.searchText\" -->\r\n            </transition-collapse-height>\r\n            <!-- </transition> -->\r\n        </li>\r\n    </ul>\r\n</template>\r\n\r\n<script>\r\n// import { mapGetters } from 'vuex';\r\nimport MultiSelectList from '@/components/searchFields/MultiSelectList.vue'\r\nimport transitionCollapseHeight from '@/components/searchFields/transitionCollapseHeight.vue'\r\n\r\nexport default {\r\n    name: 'MultiSelectList',\r\n    components: {\r\n        MultiSelectList,\r\n        transitionCollapseHeight\r\n    },\r\n    props: {\r\n        topParent: {\r\n            required: true\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        data: {\r\n            required: true\r\n        },\r\n        nestingIndex: {\r\n            required: false,\r\n            default: 0\r\n        }\r\n        // selected: {\r\n        //     required: true\r\n        // }\r\n    },\r\n    computed: {\r\n        // ...mapGetters([\r\n        //     'searchCriteria'\r\n        // ])\r\n    },\r\n    data: function () {\r\n        return {\r\n            expanded: [],\r\n            expandIconSize: 23,\r\n            nestingIndent: 18\r\n        };\r\n    },\r\n    // watch: {\r\n    //     data: function () {\r\n    //         this.$nextTick(() => {\r\n    //             this.setIndent();\r\n    //         });\r\n    //     },\r\n    // },\r\n    mounted () {\r\n        // update nested lists collapse to open\r\n        // may need to make configurable in the future\r\n        if ((this.topParent.ui && !this.topParent.ui.collapseAll) || !this.topParent.ui) {\r\n            for (let i = 0; i < this.$el.children.length; i++) {\r\n                this.expanded[i] = true;\r\n            }\r\n        }\r\n\r\n        // this.setIndent();\r\n    },\r\n    methods: {\r\n        getToolTipText (item) {\r\n            if (item && item.properties) {\r\n                if (item.properties.Description) {\r\n                    return item.properties.Description;\r\n                }\r\n            }\r\n            return '';\r\n        },\r\n\r\n        expandCollapse (index) {\r\n            // if (index === undefined) {\r\n            //     this.expanded[index] = false;\r\n            // }\r\n\r\n            // use Vue set method or v-show will not update\r\n            // as Vue is not watching these dynamic variables\r\n            this.expanded[index]=!this.expanded[index];\r\n\r\n            this.topParent.focusInput();\r\n        },\r\n\r\n        setIndent () {\r\n            let children = this.$el.children;\r\n\r\n            for (let i = 0; i < children.length; i++) {\r\n                let itemChildren = children[i].children;\r\n\r\n            for (let i2 = 0; i2 < itemChildren.length; i2++) {\r\n                    if (itemChildren[i2].className.indexOf('multiselect__list__item_button') !== -1) {\r\n                        itemChildren[i2].style.paddingLeft = (this.expandIconSize + this.nestingIndent * this.nestingIndex) + 'px';\r\n                    }\r\n\r\n                    if (itemChildren[i2].className.indexOf('multiselect__expand_toggle') !== -1) {\r\n                        itemChildren[i2].style.left = (this.nestingIndent * this.nestingIndex) + 'px';\r\n                    }\r\n                }\r\n            }\r\n        },\r\n\r\n        isSelected (value) {\r\n            // console.log(this.$store.state.searchCriteria[this.id]);\r\n            if (this.$store.state.searchCriteria && this.$store.state.searchCriteria[this.id]) {\r\n                return this.$store.state.searchCriteria[this.id].some((item) => {\r\n                    if (item) {\r\n                    if ((item.value && item.value === value) || item === value) {\r\n                        // console.log(item.value, value);\r\n                        return true;\r\n                    }\r\n                    if (item.value && item.value.indexOf(';') !== -1 && value.indexOf(item.value) !== -1) {\r\n                        return true;\r\n                    }\r\n                    }\r\n                });\r\n            }\r\n\r\n            return false;\r\n        },\r\n\r\n        filterData (data) {\r\n            var newData = [];\r\n\r\n            if (this.nestingIndex === 0) {\r\n                for (let i = 0; i < data.length; i++) {\r\n                    if (!data[i].parent_value) {\r\n                        newData.push(data[i]);\r\n                    }\r\n                }\r\n            } else {\r\n                newData = data;\r\n            }\r\n\r\n            this.$nextTick(() => {\r\n                this.initFocusEvents();\r\n            });\r\n\r\n            return newData;\r\n        },\r\n\r\n        initFocusEvents () {\r\n            let buttons,\r\n                button;\r\n\r\n            for (let i = 0; i < this.$el.childElementCount; i++) {\r\n                buttons = this.$el.children[i].getElementsByTagName('button');\r\n\r\n                for (let i2 = 0; i2 < buttons.length; i2++) {\r\n                    button = buttons[i2];\r\n\r\n                    if (button.classList.length === 0 || button.className.indexOf('init') === -1) {\r\n                        button.addEventListener('focus', () => {\r\n                            this.focus(this.id);\r\n                        });\r\n\r\n                        button.addEventListener('blur', () => {\r\n                            this.blur(this.id);\r\n                        });\r\n\r\n                        button.addEventListener('keydown', (event) => {\r\n                            var key = String.fromCharCode(event.keyCode);\r\n                            // console.log(event);\r\n\r\n                            if (event.keyCode === 13) {\r\n                                event.preventDefault();\r\n                                event.stopPropagation();\r\n                            }\r\n\r\n                            // switch (event.keyCode) {\r\n                            //     case 37: // left\r\n                            //         this.\r\n                            //         break;\r\n                            //     case 39: // right\r\n\r\n                            //         break;\r\n                            // }\r\n\r\n                            // check if input is letter, number, hyphen, underscore, or space\r\n                            if (this.topParent.allowedCharacters.test(key)) {\r\n                                // focus input to filter list\r\n                                this.topParent.focusInput();\r\n                            } else {\r\n                                // event.preventDefault();\r\n                                // event.stopPropagation();\r\n\r\n                                this.topParent.handleKeyboardEvents(event);\r\n                                // switch (e.keyCode) {\r\n                                //     case 8: // backspace/delete\r\n                                //     case 9: // tab\r\n                                //         break;\r\n\r\n                                //     default:\r\n                                //         e.preventDefault();\r\n                                //         e.stopPropagation();\r\n                                //         this.topParent.handleKeyboardEvents(e.keyCode);\r\n                                //         break;\r\n                                // }\r\n                            }\r\n                        });\r\n\r\n                        button.className += ' init';\r\n                    }\r\n                }\r\n            }\r\n        },\r\n\r\n        getChildren (item, children_values) {\r\n            return this.topParent.getChildren(item, children_values);\r\n        },\r\n\r\n        selectDeselect (item) {\r\n            this.topParent.selectDeselect(item);\r\n        },\r\n\r\n        focus (id) {\r\n            this.topParent.setFocus(id);\r\n        },\r\n\r\n        blur (id) {\r\n            this.topParent.removeFocus(id);\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n$expand-button-size: 1.5em;\r\n$expand-arrow-color: #99aed8;\r\n// $expand-arrow-color: $green-dark;\r\n// $indent-line-color: $blue-lighter;\r\n$indent-line-color: #f2f2f2;\r\n// $indent-line-color: $green-light;\r\n\r\n.multiselect__list {\r\n    list-style: none;\r\n    padding: 0;\r\n    margin: 0;\r\n\r\n    .multiselect__list__item {\r\n        // do not make position relative, or it breaks scrolling for keyboard accessibility\r\n        // position: relative;\r\n        font-size: 14px;\r\n\r\n        .multiselect__list__item_button {\r\n            position: relative;\r\n            display: inline-block;\r\n            padding: 0.25em 0.75em 0.25em $expand-button-size;\r\n            width: 100%;\r\n            border: none;\r\n            background: none;\r\n            text-align: left;\r\n            line-height: 1.2em;\r\n            font-weight: 500;\r\n            z-index: 1;\r\n\r\n            // white-space: nowrap;\r\n\r\n            // &:after {\r\n            //     float: left;\r\n            //     content: \"\";\r\n            //     width: 2px;\r\n            //     height: 100%;\r\n            //     background-color: blue;\r\n            // }\r\n\r\n            // &.has-children {\r\n            //     // width: calc(100% - #{$expand-button-size});\r\n            //     // padding-left: 0;\r\n            //     padding-left: $expand-button-size;\r\n            // }\r\n\r\n            &.active,\r\n            &:hover,\r\n            &:focus {\r\n                background-color: $blue-lighter;\r\n                // background-color: #f7f7f7;\r\n                // color: $blue;\r\n            }\r\n        }\r\n\r\n        &.selected {\r\n            .multiselect__list__item_button {\r\n                background-color: $blue;\r\n                color: #fff;\r\n\r\n                &.active,\r\n                &:hover,\r\n                &:focus {\r\n                    background-color: $blue-light;\r\n                }\r\n            }\r\n\r\n            .multiselect__expand_toggle {\r\n                .multiselect__expand_toggle__icon {\r\n                    color: #fff;\r\n                }\r\n            }\r\n        }\r\n\r\n        .multiselect__list__item {\r\n            // padding-left: 1.5em;\r\n            margin-left: 1.5em;\r\n\r\n            &:first-child {\r\n                > .multiselect__list__item_button {\r\n                    &:after {\r\n                        top: 0.25em;\r\n                        height: calc(100% - 0.25em);\r\n                    }\r\n                }\r\n            }\r\n\r\n            &:last-child {\r\n                > .multiselect__list__item_button {\r\n                    &:after {\r\n                        height: calc(100% - 0.25em);\r\n                    }\r\n                }\r\n            }\r\n\r\n            .multiselect__list__item_button {\r\n                padding: 0.25em 0.75em 0.25em 1em;\r\n                font-weight: 400;\r\n                // border-left: 3px solid $blue-lighter;\r\n\r\n                &:after {\r\n                    content: \"\";\r\n                    position: absolute;\r\n                    top: 0;\r\n                    left: 0;\r\n                    width: 3px;\r\n                    height: 100%;\r\n                    background-color: $indent-line-color;\r\n                }\r\n\r\n                &.has-children {\r\n                    // padding-left: 1.25em;\r\n                    padding-left: 1.5em;\r\n                    // border-left-color: transparent;\r\n\r\n                    &:after {\r\n                        display: none;\r\n                        // top: 0.25em;\r\n                        // height: calc(100% - 0.5em);\r\n                    }\r\n                }\r\n\r\n                &.active,\r\n                &:hover,\r\n                &:focus {\r\n                    &:after {\r\n                        top: 0;\r\n                        height: 100%;\r\n                        background-color: $blue-light;\r\n                        // background-color: $expand-arrow-color;\r\n                    }\r\n                }\r\n\r\n                // &.active {\r\n                //     &:after {\r\n                //         background-color: $blue;\r\n                //     }\r\n                // }\r\n                // white-space: inherit;\r\n            }\r\n\r\n\r\n\r\n            &:first-child:last-child {\r\n                > .multiselect__list__item_button {\r\n                    &:after {\r\n                        top: 0.25em;\r\n                        height: calc(100% - 0.5em);\r\n                    }\r\n                }\r\n            }\r\n\r\n            &.selected {\r\n            // .multiselect__list__item {\r\n                .multiselect__list__item_button {\r\n                    &:after {\r\n                        top: 0;\r\n                        height: 100%;\r\n                        background-color: $blue-light;\r\n                    }\r\n\r\n                    &.active,\r\n                    &:hover,\r\n                    &:focus {\r\n                        &:after {\r\n                            background-color: $blue;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            // .multiselect__list__item_button {\r\n            // }\r\n        }\r\n\r\n        // &.selected {\r\n        //     .multiselect__expand_toggle {\r\n        //         .multiselect__expand_toggle__icon {\r\n        //             fill: #fff;\r\n        //         }\r\n        //     }\r\n        // }\r\n    }\r\n}\r\n\r\n.multiselect__expand_toggle {\r\n    display: block;\r\n    position: relative;\r\n    // top: 0;\r\n    // left: 0;\r\n    margin-bottom: -$expand-button-size;\r\n    padding: 0 0.25em;\r\n    width: $expand-button-size;\r\n    height: $expand-button-size;\r\n    // height: 100%;\r\n    // background-color: #eee;\r\n    background: none;\r\n    border: none;\r\n    // border-radius: 50%;\r\n    outline: none;\r\n    z-index: 5;\r\n\r\n    .multiselect__expand_toggle__icon {\r\n        width: 100%;\r\n        height: 100%;\r\n        transition: 0.3s;\r\n        color: $expand-arrow-color;\r\n        // &.expanded {\r\n        //     transform: rotate(90deg);\r\n        // }\r\n    }\r\n\r\n    &.expanded {\r\n        .multiselect__expand_toggle__icon {\r\n            transform: rotate(90deg);\r\n        }\r\n    }\r\n\r\n    &:hover,\r\n    &:focus {\r\n        .multiselect__expand_toggle__icon {\r\n            color: $blue-light;\r\n        }\r\n        ~ .multiselect__list__item_button {\r\n            background-color: $blue-lighter;\r\n        }\r\n    }\r\n}\r\n\r\n/* Enter and leave animations can use different */\r\n/* durations and timing functions.              */\r\n.slide-fade-enter-active {\r\n  transition: 0.3s;\r\n}\r\n.slide-fade-leave-active {\r\n  transition: 0.3s;\r\n}\r\n.slide-fade-enter,\r\n.slide-fade-leave-to {\r\n    opacity: 0;\r\n    height: 0;\r\n}\r\n.slide-fade-enter {\r\n    transform: translateY(-10px);\r\n}\r\n.slide-fade-leave-to {\r\n  transform: translateY(-10px);\r\n}\r\n\r\n</style>","<!-- \r\nthis looks to be inspired by...\r\nhttps://stackoverflow.com/questions/52020624/smooth-vue-collapse-transition-on-v-if\r\nbut doesnt appear to be used in the app\r\n-->\r\n<template>\r\n    <transition\r\n        enter-active-class=\"enter-active\"\r\n        leave-active-class=\"leave-active\"\r\n        @before-enter=\"beforeEnter\"\r\n        @enter=\"enter\"\r\n        @after-enter=\"afterEnter\"\r\n        @before-leave=\"beforeLeave\"\r\n        @leave=\"leave\"\r\n        @after-leave=\"afterLeave\"\r\n    >\r\n        <slot />\r\n    </transition>\r\n</template>\r\n\r\n<script>\r\n\r\nexport default {\r\n    name: 'transitionCollapseHeight',\r\n    components: {\r\n    },\r\n    props: {\r\n    },\r\n    computed: {\r\n    },\r\n    data: function () {\r\n        return {\r\n        };\r\n    },\r\n    mounted () {\r\n    },\r\n    methods: {\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        beforeEnter(element) {\r\n            requestAnimationFrame(() => {\r\n                if (!element.style.height) {\r\n                    element.style.height = '0px';\r\n                }\r\n\r\n                element.style.display = null;\r\n            });\r\n        },\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        enter(element) {\r\n            requestAnimationFrame(() => {\r\n                requestAnimationFrame(() => {\r\n                element.style.height = `${element.scrollHeight}px`;\r\n                });\r\n            });\r\n        },\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        afterEnter(element) {\r\n            element.style.height = null;\r\n        },\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        beforeLeave(element) {\r\n            requestAnimationFrame(() => {\r\n                if (!element.style.height) {\r\n                    element.style.height = `${element.offsetHeight}px`;\r\n                }\r\n            });\r\n        },\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        leave(element) {\r\n            requestAnimationFrame(() => {\r\n                requestAnimationFrame(() => {\r\n                    element.style.height = '0px';\r\n                });\r\n            });\r\n        },\r\n        /**\r\n         * @param {HTMLElement} element\r\n         */\r\n        afterLeave(element) {\r\n            element.style.height = null;\r\n        },\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.enter-active,\r\n.leave-active {\r\n  overflow: hidden;\r\n  transition: 0.3s ease;\r\n}\r\n\r\n// .content {\r\n//   background: grey;\r\n// }\r\n\r\n</style>","import { render } from \"./transitionCollapseHeight.vue?vue&type=template&id=b0f7829a&scoped=true\"\nimport script from \"./transitionCollapseHeight.vue?vue&type=script&lang=js\"\nexport * from \"./transitionCollapseHeight.vue?vue&type=script&lang=js\"\n\nimport \"./transitionCollapseHeight.vue?vue&type=style&index=0&id=b0f7829a&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b0f7829a\"]])\n\nexport default __exports__","import { render } from \"./MultiSelectList.vue?vue&type=template&id=583a7fc7&scoped=true\"\nimport script from \"./MultiSelectList.vue?vue&type=script&lang=js\"\nexport * from \"./MultiSelectList.vue?vue&type=script&lang=js\"\n\nimport \"./MultiSelectList.vue?vue&type=style&index=0&id=583a7fc7&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-583a7fc7\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"search-field option__control\">\r\n        <div  v-if=\"topParent\">\r\n            <!-- checkbox or radio additional field -->\r\n            <template v-for=\"(obj, index) in topParent.additionalControl.options\" v-bind:key=\"index\">\r\n                <div class=\"form-check form-check-inline mt-1\" :class=\"{'custom-radio': topParent.additionalControl.controlType === 'radio', 'form-check': topParent.additionalControl.controlType === 'checkbox'}\">\r\n                    <input\r\n                        v-if=\"topParent.additionalControl.controlType !== 'radio'\"\r\n                        class=\"form-check-input\"\r\n                        :type=\"topParent.additionalControl.controlType\"\r\n                        :name=\"obj.name\" :id=\"obj.id+index\"\r\n                        :disabled=\"dependentFieldHasData\"\r\n                        v-model=\"$store.state.searchCriteria[obj.id]\"\r\n                    />\r\n                    <input\r\n                        v-if=\"topParent.additionalControl.controlType === 'radio'\"\r\n                        class=\"form-check-input\"\r\n                        type=\"radio\"\r\n                        :name=\"obj.name\" :id=\"obj.id+index\"\r\n                        :disabled=\"dependentFieldHasData\"\r\n                        :value=\"obj.value\"\r\n                        v-model=\"$store.state.searchCriteria[obj.id]\"\r\n                    />\r\n                    <label class=\"form-check-label\" :for=\"obj.id+index\">{{obj.label}}</label>\r\n                </div>\r\n            </template>\r\n        </div>\r\n        <template v-else>\r\n            <!-- independent checkbox or radio field -->\r\n            <label\r\n                class=\"field-title group-title\"\r\n                :class=\"titleHidden ? 'sr-only' : ''\"\r\n                :for=\"'field-' + id\"\r\n                v-if=\"title && options\"\r\n            >\r\n                {{title}}\r\n                <field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n            </label>\r\n            <div class=\"search-field input-text\" :class=\"$store.state.searchFieldErrors[id] && $store.state.searchFieldErrors[id].message ? 'field-error' : ''\">\r\n                <template v-if=\"options\" v-for=\"(obj, index) in options\" v-bind:key=\"index\">\r\n                    <div class=\"form-check mb-1\" :class=\"{'custom-radio':  controlType === 'radio', 'form-check':  controlType === 'checkbox'}\">\r\n                        <!-- radio/checkbox groups -->\r\n                        <input\r\n                            v-if=\"controlType === 'checkbox'\"\r\n                            class=\"form-check-input\"\r\n                            type=\"checkbox\"\r\n                            :id=\"obj.id + index\"\r\n                            :value=\"obj.value\"\r\n                            v-model=\"$store.state.searchCriteria[obj.id]\"\r\n                            data-testttttt=\"true\"\r\n                        />\r\n                        <!-- :name=\"obj.name\" -->\r\n                        <input\r\n                            v-if=\"controlType === 'radio'\"\r\n                            class=\"form-check-input\"\r\n                            type=\"radio\"\r\n                            :name=\"obj.name\" :id=\"obj.id+index\"\r\n                            :value=\"obj.value\"\r\n                            v-model=\"$store.state.searchCriteria[id]\"\r\n                        />\r\n                        <label class=\"form-check-label\" :for=\"obj.id+index\">{{obj.label}}\r\n                            <field-tooltip v-if=\"obj.tooltipText\" :text=\"obj.tooltipText\" :urlKeys=\"urlKeys\" />\r\n                        </label>\r\n                    </div>\r\n                </template>\r\n                <div v-if=\"!options\" class=\"form-check form-check-inline\">\r\n                    <!-- single checkbox field -->\r\n                    <input\r\n                        class=\"form-check-input\"\r\n                        :type=\"controlType\"\r\n                        :name=\"id\" :id=\"'field-' + id\"\r\n                        v-model=\"$store.state.searchCriteria[id]\"\r\n                    />\r\n                    <label class=\"field-title form-check-label\" :for=\"'field-' + id\">\r\n                        {{ title }}\r\n                        <field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n                    </label>\r\n                </div>\r\n                <div class=\"field-help-text\" v-if=\"helpTextDisplay\">\r\n                    {{helpTextDisplay}}\r\n                </div>\r\n            </div>\r\n        </template>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport FieldTooltip from '@/components/searchFields/FieldTooltip.vue';\r\n\r\nexport default {\r\n    name: 'ControlList',\r\n    components: {\r\n        FieldTooltip\r\n    },\r\n    props: {\r\n        topParent: {\r\n            required: false\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        title: {\r\n            required: false\r\n        },\r\n        defaultValues: {\r\n            required: false\r\n        },\r\n        maxSelection: {\r\n            required: false\r\n        },\r\n        delimiter: {\r\n            required: false,\r\n            default: ';'\r\n        },\r\n        fields: {\r\n            required: false\r\n        },\r\n        helpText: {\r\n            required: false\r\n        },\r\n        placeholder: {\r\n            required: false\r\n        },\r\n        dependentField: {\r\n            required: false\r\n        },\r\n        select: {\r\n            required: false\r\n        },\r\n        deselect: {\r\n            required: false\r\n        },\r\n        change: {\r\n            required: false\r\n        },\r\n        maxLength: {\r\n            required: false\r\n        },\r\n        matchingStr: {\r\n            required: false\r\n        },\r\n        titleHidden: {\r\n            required: false\r\n        },\r\n        alternetFields: {\r\n            required: false\r\n        },\r\n        groupFields: {\r\n            required: false\r\n        },\r\n        controlType: {\r\n            required: false\r\n        },\r\n        tooltipText: {\r\n            required: false\r\n        },\r\n        options: {\r\n            required: false\r\n        },\r\n        dbValues: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        }\r\n    },\r\n    computed: {\r\n        dependentFieldHasData: function () {\r\n            if (this.topParent.dependentField) {\r\n                let dependentFieldId = window.searchFieldSpecs[this.topParent.dependentField].id;\r\n\r\n                if (this.topParent.matchingStr) {\r\n                    var matchExp = new RegExp(this.topParent.matchingStr),\r\n                        noAllowedYearFound = false;\r\n\r\n                    if (this.$store.state.searchCriteria[dependentFieldId] && this.$store.state.searchCriteria[dependentFieldId].length > 0) {\r\n                        for (let i = 0; i < this.$store.state.searchCriteria[dependentFieldId].length; i++) {\r\n                            if (!matchExp.test(this.$store.state.searchCriteria[dependentFieldId][i].value)) {\r\n                                noAllowedYearFound = true;\r\n                                break;\r\n                            }\r\n                        }\r\n                    } else {\r\n                        noAllowedYearFound = true;\r\n                    }\r\n                }\r\n                return noAllowedYearFound;\r\n            }\r\n            return false;\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            helpTextDisplay: this.helpText ? this.helpText : null\r\n        };\r\n    },\r\n    mounted () {\r\n        var defaultVal =  this.defaultValues ? this.defaultValues : '';\r\n        if (!this.topParent) {\r\n            if (!this.$store.state.searchCriteria[this.id]) {\r\n                this.$store.state.searchCriteria[this.id] = defaultVal;\r\n            }\r\n\r\n            if (!this.$store.state.searchCriteriaDefault[this.id]) {\r\n                this.$store.state.searchCriteriaDefault[this.id] = this.defaultValues ? this.defaultValues : '';\r\n            }\r\n\r\n            if (this.$store.state.editSearchCriteria[this.id]) {\r\n                if (this.dbValues && JSON.stringify(this.dbValues.sort()).toLowerCase() == JSON.stringify(this.$store.state.editSearchCriteria[this.id].sort()).toLowerCase()) {\r\n                    this.$store.state.searchCriteria[this.id] = this.defaultValues;\r\n                } else {\r\n                    this.$store.state.searchCriteria[this.id] = this.$store.state.editSearchCriteria[this.id];\r\n                }\r\n            }\r\n\r\n            if (!this.$store.state.searchFieldErrors[this.id]) {\r\n                this.$store.state.searchFieldErrors[this.id] = '';\r\n            }\r\n        }\r\n\r\n        // this.initFieldValues();\r\n\r\n        this.updateSearchCriteria();\r\n\r\n        // if (this.topParent) {\r\n        //     console.log(this.$store.state.searchCriteria[this.obj.id]);\r\n        // }\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'editSearchResults',\r\n            'setSearchCriteriaDefault'\r\n        ]),\r\n        initFieldValues () {\r\n            let options,\r\n                optionsLength;\r\n\r\n            if (this.topParent && this.topParent.additionalControl && this.topParent.additionalControl.options) {\r\n                options = this.topParent.additionalControl.options,\r\n                optionsLength = options.length;\r\n\r\n                if (this.topParent.additionalControl.controlType === 'radio') {\r\n\r\n                }\r\n                for (let i = 0; i < optionsLength; i++) {\r\n                    this.$store.state.searchCriteria[options[i].id] = options[i].value;\r\n                }\r\n            } else if (this.options && this.controlType) {\r\n                options = this.options,\r\n                optionsLength = options.length;\r\n\r\n                // if (this.type === 'radio') {\r\n                for (let i = 0; i < optionsLength; i++) {\r\n                    this.$store.state.searchCriteria[options[i].id] = options[i].value;\r\n                }\r\n                // }\r\n            }\r\n        },\r\n        updateSearchCriteria () {\r\n            \r\n            if (this.topParent) {\r\n                for (let i = 0; i < this.topParent.additionalControl.options.length; i++) {\r\n                    let opt = this.topParent.additionalControl.options[i];\r\n\r\n                    if (this.topParent.additionalControl.controlType === 'checkbox') {\r\n                        if (opt.value !== undefined && opt.value !== null) {\r\n                            if (this.$store.state.editSearchResults) {\r\n                                if (this.$store.state.editSearchCriteria[opt.name] !== undefined) {\r\n                                    this.setSearchCriteria({\r\n                                        field: opt.name,\r\n                                        data: copyData(this.$store.state.editSearchCriteria[opt.name])\r\n                                    });\r\n                                } else {\r\n                                    this.setSearchCriteria({\r\n                                        field: opt.name,\r\n                                        data: false\r\n                                    });\r\n                                }\r\n                            } else if (this.$store.state.searchCriteria[opt.name] !== undefined && this.$store.state.searchCriteria[opt.name] !== null) {\r\n                                this.setSearchCriteria({\r\n                                    field: opt.name,\r\n                                    data: copyData(this.$store.state.searchCriteria[opt.name])\r\n                                });\r\n                            }\r\n                            else {\r\n                                this.setSearchCriteria({\r\n                                    field: opt.name,\r\n                                    data: copyData(opt.value)\r\n                                });\r\n                            }\r\n\r\n                            this.setSearchCriteriaDefault({\r\n                                field: opt.name,\r\n                                data: copyData(opt.value)\r\n                            });\r\n                        }\r\n                    } else { // radio buttons\r\n                        if (opt.value !== undefined && opt.value !== null && i === 0) {\r\n                            if (this.$store.state.editSearchResults && (this.$store.state.editSearchCriteria[opt.name] !== undefined && this.$store.state.searchCriteria[opt.name] !== null && this.$store.state.searchCriteria[opt.name] !== '')) {\r\n                                this.setSearchCriteria({\r\n                                    field: opt.name,\r\n                                    data: copyData(this.$store.state.editSearchCriteria[opt.name])\r\n                                });\r\n                            } else {\r\n                                if (this.$store.state.searchCriteria[opt.name] === undefined || this.$store.state.searchCriteria[opt.name] === null || this.$store.state.searchCriteria[opt.name] === '') {\r\n                                        this.setSearchCriteria({\r\n                                        field: opt.name,\r\n                                        data: copyData(this.topParent.additionalControl.defaultValues)\r\n                                    });\r\n                                }\r\n                            }\r\n\r\n                            this.setSearchCriteriaDefault({\r\n                                field: opt.name,\r\n                                data: copyData(this.topParent.additionalControl.defaultValues)\r\n                            });\r\n                        }\r\n                    }\r\n                }\r\n            } else {\r\n                if (this.defaultValues) {\r\n                    this.setSearchCriteriaDefault({\r\n                        field: this.id,\r\n                        data: copyData(this.defaultValues)\r\n                    });\r\n                }\r\n            }\r\n        },\r\n        log (msg) {\r\n            console.log(msg);\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n\r\n.field-title {\r\n    font-size: 18px;\r\n    overflow: visible;\r\n    &.group-title {\r\n        font-size: 14px;\r\n    }\r\n}\r\n.field-help-text {\r\n    margin: 0;\r\n    margin-left: calc(1.45rem + 0.5em);\r\n}\r\n\r\n</style>","import { render } from \"./ControlList.vue?vue&type=template&id=2d284598&scoped=true\"\nimport script from \"./ControlList.vue?vue&type=script&lang=js\"\nexport * from \"./ControlList.vue?vue&type=script&lang=js\"\n\nimport \"./ControlList.vue?vue&type=style&index=0&id=2d284598&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2d284598\"]])\n\nexport default __exports__","import { render } from \"./MultiSelect.vue?vue&type=template&id=3a3b21ee&scoped=true\"\nimport script from \"./MultiSelect.vue?vue&type=script&lang=js\"\nexport * from \"./MultiSelect.vue?vue&type=script&lang=js\"\n\nimport \"./MultiSelect.vue?vue&type=style&index=0&id=3a3b21ee&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3a3b21ee\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"search-field input-text\" :class=\"{'field-error': $store.state.searchFieldErrors[id] && $store.state.searchFieldErrors[id].message}\">\r\n        <label\r\n            class=\"field-title\"\r\n            :class=\"titleHidden ? 'sr-only' : ''\"\r\n            :for=\"'field-' + id\"\r\n        >\r\n            <template v-if=\"title\">{{title}}</template>\r\n\t\t\t<field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n            <span\r\n                class=\"field-selected-count\"\r\n                :class=\"maxSelectionExceeded ? 'field-count-exceeded' : ''\"\r\n                v-if=\"title && $store.state.searchCriteria[id] && $store.state.searchCriteria[id].length !== 0 && maxSelection !== 1 && !(ui && ui.hideFieldCount)\"\r\n            >\r\n                <template v-if=\"isCommaSeparated\">\r\n                    {{$store.state.searchCriteria[id].match(checkCommaSeparators) ? filters.addCommas($store.state.searchCriteria[id].match(checkCommaSeparators).length + 1)  : '1'}}\r\n                </template>\r\n                <template v-else>\r\n                    {{$store.state.searchCriteria[id].match(checkSemicolonSeparators) ? filters.addCommas($store.state.searchCriteria[id].match(checkSemicolonSeparators).length + 1)  : '1'}}\r\n                </template>\r\n                <button\r\n                    class=\"multiselect__remove_all\"\r\n                    @click.stop=\"clearAllText()\"\r\n                >\r\n                     <i class=\"fas fa-times svg\"></i>\r\n                </button>\r\n            </span>\r\n        </label>\r\n        <div\r\n            class=\"input-group\"\r\n            @click=\"focusInput()\"\r\n        >\r\n            <div class=\"input-text-highlight\" ref=\"inputHighlight\" v-html=\"inputHighlightText\"></div>\r\n            <textarea\r\n                type=\"text\"\r\n                class=\"form-control form-control-lg input-text__input\"\r\n                :class=\"{'textInput': maxLength, 'free-height': ui && ui.rows}\"\r\n                aria-label=\"Quick Search\"\r\n                aria-describedby=\"button-addon2\"\r\n                :id=\"'field-' + id\"\r\n                ref=\"input\"\r\n                v-model=\"$store.state.searchCriteria[id]\"\r\n                :rows=\"ui && ui.rows ? ui.rows : 1\"\r\n                :placeholder=\"placeholder\"\r\n                :maxLength=\"maxLength\"\r\n            ></textarea>\r\n        </div>\r\n        <div v-if=\"ui && ui.showCount\" class=\"count\" :class=\"{'max-reached': $store.state.searchCriteria[id] && (maxLength - $store.state.searchCriteria[id].length === 0)}\"><template v-if=\"$store.state.searchCriteria[id]\">{{filters.addCommas(maxLength - $store.state.searchCriteria[id].length)}}</template><template v-else>{{filters.addCommas(maxLength)}}</template> characters left</div>\r\n        <div class=\"field-help-text\" v-if=\"helpTextDisplay\" v-html=\"helpTextDisplay\">\r\n\r\n        </div>\r\n        <field-error\r\n            v-if=\"$store.state.searchFieldErrors[id]\"\r\n            v-show=\"$store.state.searchFieldErrors[id].message\"\r\n            :message=\"$store.state.searchFieldErrors[id].message\"\r\n        />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport FieldError from '@/components/searchFields/FieldError.vue'\r\nimport FieldTooltip from '@/components/searchFields/FieldTooltip.vue'\r\nimport {app} from '@/main';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'InputText',\r\n    components: {\r\n        FieldError,\r\n        FieldTooltip\r\n    },\r\n    props: {\r\n        title: {\r\n            required: true\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        default: {\r\n            required: false\r\n        },\r\n        maxSelection: {\r\n            required: false\r\n        },\r\n        delimiter: {\r\n            required: false,\r\n            default: ';'\r\n        },\r\n        fields: {\r\n            required: false\r\n        },\r\n        helpText: {\r\n            required: false\r\n        },\r\n        placeholder: {\r\n            required: false\r\n        },\r\n        dependentField: {\r\n            required: false\r\n        },\r\n        select: {\r\n            required: false\r\n        },\r\n        deselect: {\r\n            required: false\r\n        },\r\n        change: {\r\n            required: false\r\n        },\r\n        maxLength: {\r\n            required: false\r\n        },\r\n        matchingStr: {\r\n            required: false\r\n        },\r\n        titleHidden: {\r\n            required: false\r\n        },\r\n        alternetFields: {\r\n            required: false\r\n        },\r\n        groupFields: {\r\n            groupFields: false\r\n        },\r\n        tooltipText: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        },\r\n        ui: {\r\n            required: false\r\n        },\r\n        bus: {\r\n            required: false\r\n        }\r\n        // inputTypes: {\r\n        //     required: false\r\n        // },\r\n        // submitTypes: {\r\n        //     required: false\r\n        // }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchFieldErrors',\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    data: function () {\r\n        return {\r\n            hasFocus: false,\r\n            allowedCharacters: /[a-zA-Z0-9;,. ]/,\r\n            checkNumberAndLetters: /^(?=.*[a-zA-Z])(?=.*[0-9])/,\r\n            // checkSemicolonSeparators: /[;][^;$][^; $]/g,\r\n            checkSemicolonSeparators: /(?!;\\s*$);/g,\r\n            checkCommaSeparators: /(?!,\\s*$),/g,\r\n            // allowedCharacters: /^[a-zA-Z\\u00C0-\\u00FF0-9]+$/, //matches accented characters\r\n            // error: null,\r\n            // error: 'Please enter only Names or Person IDs',\r\n            inputTypes: null,\r\n            submitTypes: null,\r\n            // inputValue: ''\r\n\r\n            // assigned here so that it can be overwritten below\r\n            // otherwise throws error in Vue\r\n            helpTextDisplay: this.helpText ? this.helpText : null,\r\n            inputHighlightText: '',\r\n            maxSelectionExceeded: false,\r\n            isCommaSeparated: false,\r\n            orgInputText: '',\r\n            validationTimer: null,\r\n\t\t\turlKeyList: this.urlKeys,\r\n            filters: window.filters\r\n        };\r\n    },\r\n    async mounted () {\r\n        // initialize field \r\n        if (!this.$store.state.searchCriteria[this.id]) {\r\n            this.$store.state.searchCriteria[this.id] = '';\r\n        }\r\n\r\n        if (!this.$store.state.searchCriteriaDefault[this.id]) {\r\n            this.$store.state.searchCriteriaDefault[this.id] = '';\r\n        }\r\n\r\n        if (this.$store.state.editSearchCriteria[this.id]) {\r\n            if (this.id === 'search_text') {\r\n                this.$store.state.searchCriteria[this.id] = unescape(this.$store.state.editSearchCriteria[this.id]);\r\n            } else {\r\n                this.$store.state.searchCriteria[this.id] = this.$store.state.editSearchCriteria[this.id];\r\n            }\r\n        }\r\n\r\n        if (!this.$store.state.searchFieldErrors[this.id]) {\r\n            this.$store.state.searchFieldErrors[this.id] = '';\r\n        }\r\n\r\n        this.updateSearchCriteriaDefault();\r\n\r\n        if (this.fields) {\r\n            this.inputTypes = [];\r\n            this.submitTypes = [];\r\n\r\n            for (let field in this.fields) {\r\n                this.submitTypes.push(field);\r\n                this.inputTypes.push(this.fields[field]);\r\n\r\n                if (!this.$store.state.searchCriteria[field]) {\r\n                    if (this.$store.state.editSearchCriteria[field]) {\r\n                        this.$store.state.searchCriteria[field] = this.$store.state.editSearchCriteria[field];\r\n                    } else {\r\n                        // initialize field in store so that it will be watched\r\n                        this.$store.state.searchCriteria[field] = [];\r\n                    }\r\n                }\r\n            }\r\n            // this.submitTypes = JSON.parse(this.submitTypes.replace(/'/g, '\"'));\r\n\r\n            // for (let i = 0; i < this.submitTypes.length; i++) {\r\n            //     // initialize field in store so that it will be watched\r\n            //     this.$store.state.searchCriteria, this.submitTypes[i], []);\r\n            // }\r\n        }\r\n\r\n        var externalURLKeys = this.urlKeyList;\r\n\t\tif (externalURLKeys && externalURLKeys.length > 0 && this.helpTextDisplay) {\r\n            for (let i = 0; i < externalURLKeys.length; i++) {\r\n                var regex = new RegExp(externalURLKeys[i], \"g\");\r\n\t\t\t\tif (!this.externalURLs[externalURLKeys[i]]) {\r\n                    await this.$store.dispatch('getAppSettingsPropertyByNameAction', externalURLKeys[i]);\r\n                    this.helpTextDisplay = this.helpTextDisplay.replace(regex, this.externalURLs[externalURLKeys[i]]);\r\n                } else {\r\n                    this.helpTextDisplay = this.helpTextDisplay.replace(regex, this.externalURLs[externalURLKeys[i]]);\r\n                }\r\n            }\r\n        }\r\n        // setup keyboard events on input field\r\n        if (this.$refs.input) {\r\n            this.initEvents();\r\n        }\r\n        this.validateInput(false);\r\n        this.updateTextHighlight();\r\n        bus.$on('reset', this.reset);\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setSearchCriteriaDefault',\r\n            'setSearchFieldErrors'\r\n        ]),\r\n\r\n        clearAllText () {\r\n            this.updateSearchCriteria('');\r\n            this.isCommaSeparated = false;\r\n\r\n            if (this.alternetFields) {\r\n                for (let i = 0; i < this.alternetFields.length; i++) {\r\n                    if (document.getElementById('field-' + this.alternetFields[i])) {\r\n                        document.getElementById('field-' + this.alternetFields[i]).disabled = false;\r\n                        document.getElementById('field-' + this.alternetFields[i]).closest('.search-field').classList.remove('disabled');\r\n                    }\r\n                }\r\n            }\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t'event_label': 'Clear Text - ' + this.title,\r\n\t\t\t\t'value': this.title\r\n\t\t\t});\r\n        },\r\n\r\n        setSelections (selections) {\r\n            let selected = [];\r\n\r\n            for (let i = 0; i < selections.length; i++) {\r\n                let select = this.data.filter((item) => {\r\n                        if (item.value === selections[i]) {\r\n                            return item;\r\n                        }\r\n                    });\r\n\r\n                selected = selected.concat(select);\r\n            }\r\n\r\n            this.updateSearchCriteria(selected);\r\n        },\r\n\r\n        initEvents () {\r\n            this.$refs.input.addEventListener('keydown', this.handleInputEvent);\r\n            this.$refs.input.addEventListener('paste', (event) => {\r\n                this.handleInputEvent(event);\r\n\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Paste - ' + this.title,\r\n\t\t\t\t\t'value': 'Paste - ' + this.title\r\n\t\t\t\t});\t\r\n            });\r\n\r\n            this.$refs.input.addEventListener('cut', (event) => {\r\n                this.handleInputEvent(event);\r\n\t\t\t\t\r\n\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Cut - ' + this.title,\r\n\t\t\t\t\t'value': 'Cut - ' + this.title\r\n\t\t\t\t});\t\r\n            });\r\n\r\n            this.$refs.input.addEventListener('copy', (event) => {\r\n                this.handleInputEvent(event);\r\n\r\n                gtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Cut - ' + this.title,\r\n\t\t\t\t\t'value': 'Copy - ' + this.title\r\n\t\t\t\t});\t\r\n            });\r\n\r\n            this.$refs.input.addEventListener('scroll', this.updateTextHighlight);\r\n        },\r\n\r\n        updateTextHighlight () {\r\n            if (this.$refs.inputHighlight) {\r\n                this.$refs.inputHighlight.scrollTop = this.$refs.input.scrollTop;\r\n            }\r\n        },\r\n\r\n        handleInputEvent (event) {\r\n            var $this = this;\r\n            // this.$refs.input.addEventListener('keydown, paste', (event) => {\r\n            // var key = String.fromCharCode(event.keyCode);\r\n\r\n            // if press enter, prevent adding line break\r\n            if (event.keyCode === 13) {\r\n                event.preventDefault();\r\n\r\n                //submit search\r\n                // this.$parent.$parent.search();\r\n            }\r\n\r\n            // set timeout so that value is udpated before parsing string\r\n            if ($this.validationTimer) {\r\n                clearTimeout($this.validationTimer);\r\n            }\r\n            $this.validationTimer = setTimeout(() => {\r\n                $this.orgInputText = copyData($this.$store.state.searchCriteria[$this.id])\r\n                $this.validateInput(true);\r\n\r\n                $this.updateSearchCriteria($this.$store.state.searchCriteria[$this.id]);\r\n                setTimeout(() => {\r\n                    $this.updateTextHighlight();\r\n                }, 1);\r\n            }, 501);\r\n        },\r\n\r\n        build () {\r\n            if (this.default) {\r\n                let defaultSelection = JSON.parse(this.default.replace(/'/g, '\"'));\r\n\r\n                this.setSelections(defaultSelection);\r\n            }\r\n        },\r\n\r\n        removeLineBreaks (value) {\r\n            // if (value.match(/\\n|\\t|\\r/g)) {\r\n            // }\r\n            value = value.replace(/\\n|\\t|\\r/g, this.delimiter + ' ')\r\n            if (this.id === 'foa' || this.id === 'project_nums__field_text') {\r\n                value = value.replace(/,/g, this.delimiter);\r\n            }\r\n            value = value.replace(/;;/g, this.delimiter);\r\n            return value;\r\n        },\r\n\r\n        removeDuplicates (value) {\r\n            var regEx = new RegExp('\\\\s*' + this.delimiter + '\\\\s*', 'ig'),\r\n                inputArr,\r\n                uniqueArr,\r\n                alrernateRegEx,\r\n                alternate_delimiter = '';\r\n\r\n            if ((this.id === 'foa1' || this.id === 'project_nums__field_text1') && value.indexOf(',') !== -1) {\r\n                alternate_delimiter = ',';\r\n                alrernateRegEx = new RegExp('\\\\s*' + alternate_delimiter + '\\\\s*', 'ig');\r\n            }\r\n            value = value.replace(regEx, this.delimiter);\r\n            if (alternate_delimiter !== '') {\r\n\r\n\r\n\r\n                value = value.replace(/\\s*,\\s/ig, alternate_delimiter);\r\n                inputArr = value.split((/[,;]+/));\r\n            } else {\r\n                inputArr = value.split(this.delimiter);\r\n            }\r\n\r\n            uniqueArr = inputArr.filter((item, pos, self) => {\r\n                return inputArr.indexOf(item) === pos;\r\n            });\r\n            if (value.indexOf(this.delimiter) !== -1) {\r\n                return uniqueArr.join(this.delimiter + ' ');\r\n            } else {\r\n                return uniqueArr.join(alternate_delimiter + ' ');\r\n            }\r\n        },\r\n\r\n        validateInput (isKeyPress) {\r\n            var curElement = document.getElementById('field-' + this.id),\r\n                disableStatus  = false;\r\n\r\n            if (this.orgInputText.indexOf(',') !== -1 && this.orgInputText.indexOf(';') === -1 && this.id !== 'pi__field_text' && this.id !== 'po_names') {\r\n                this.isCommaSeparated = true;\r\n            }\r\n            // removes linebreaks and tabs, for pasting from excel\r\n            this.$store.state.searchCriteria[this.id] = this.removeDuplicates(this.removeLineBreaks(this.$store.state.searchCriteria[this.id]));\r\n\r\n            if (this.maxSelection > 1) {\r\n                this.inputHighlightText = copyData(this.$store.state.searchCriteria[this.id]);\r\n\r\n                let semicolonMatches = this.inputHighlightText.match(this.checkSemicolonSeparators);\r\n\r\n                this.maxSelectionExceeded = false;\r\n                // this.error = null;\r\n\r\n                // reset errors\r\n                this.setSearchFieldErrors({\r\n                    field: this.id\r\n                });\r\n\r\n                // if (this.maxSelection) {\r\n                if (semicolonMatches && semicolonMatches.length !== 0) {\r\n                    let indexOfTermExceedingLength = window.getNthIndex(this.inputHighlightText, ';', this.maxSelection) + 1;\r\n\r\n                    if (indexOfTermExceedingLength > 0 && this.inputHighlightText.length > indexOfTermExceedingLength) {\r\n                        if (this.inputHighlightText.slice(indexOfTermExceedingLength).trim() !== '') {\r\n                            this.inputHighlightText = '';\r\n\r\n                            this.maxSelectionExceeded = true;\r\n                            // this.error = `Please enter no more than ${window.addCommas(this.maxSelection)}`;\r\n\r\n                            this.setSearchFieldErrors({\r\n                                field: this.subControls ? thisId : this.id,\r\n                                message: `Please enter no more than ${window.addCommas(this.maxSelection)}`,\r\n                                preventSearch: true\r\n                            });\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            if (this.maxSelectionExceeded) {\r\n                return;\r\n            }\r\n            if (this.ui && this.ui.checkXSS) {\r\n                let tempDomEle = document.createElement('div'),\r\n                    tempChilds,\r\n                    refinedText = '';\r\n\r\n                tempDomEle.innerHTML = copyData(this.$store.state.searchCriteria[this.id].replace(\"onerror\", \"\"));\r\n                tempChilds = tempDomEle.childNodes;\r\n                for (let i = 0; i <tempChilds.length; i++) {\r\n                    if (tempChilds[i].nodeType !== 1) {\r\n                        refinedText += (tempChilds[i].textContent);\r\n                    }\r\n                }\r\n                this.$store.state.searchCriteria[this.id] = refinedText;\r\n            }\r\n            if (this.matchingStr) {\r\n                let validationExp = (this.matchingStr ? new RegExp(this.matchingStr, 'ig') : '');\r\n\r\n                this.inputHighlightText = copyData(this.$store.state.searchCriteria[this.id]);\r\n                this.inputHighlightText = this.inputHighlightText.replace(validationExp, '');\r\n\r\n                this.setSearchFieldErrors({\r\n                    field: this.id\r\n                });\r\n\r\n                // if (this.maxSelection) {\r\n                if (this.inputHighlightText && this.maxLength) {\r\n                    if (this.inputHighlightText.length > this.maxLength) {\r\n                        this.inputHighlightText = this.inputHighlightText.slice(0, this.maxLength);\r\n                    }\r\n                    setTimeout(() => {\r\n                        if (this.inputHighlightText.length === this.maxLength) {\r\n                            let parentRow = this.getParentRow(curElement);\r\n\r\n                            if (parentRow.nextSibling) {\r\n                                parentRow.nextSibling.getElementsByTagName('textarea')[0].focus();\r\n                            }\r\n                        }\r\n                    }, 301);\r\n                }\r\n                this.$store.state.searchCriteria[this.id] = this.inputHighlightText;\r\n            }\r\n\r\n            if (this.alternetFields) {\r\n                if (this.$store.state.searchCriteria[this.id]) {\r\n                    disableStatus = true;\r\n\r\n                    for (let i = 0; i < this.alternetFields.length; i++) {\r\n                        if (document.getElementById('field-' + this.alternetFields[i])) {\r\n                            this.$store.state.searchCriteria[this.alternetFields[i]] = '';\r\n                            document.getElementById('field-' + this.alternetFields[i]).disabled = disableStatus;\r\n\r\n                            document.getElementById('field-' + this.alternetFields[i]).closest('.search-field').classList.add('disabled');\r\n                        }\r\n                    }\r\n                } else {\r\n                    let splitNumberExists = false;\r\n\r\n                    if (isKeyPress) {\r\n                        if (this.groupFields) {\r\n                            for (let i = 0; i < this.groupFields.length; i++) {\r\n                                if (this.$store.state.searchCriteria[this.groupFields[i]]) {\r\n                                    splitNumberExists = true;\r\n                                }\r\n                            }\r\n                            if (!splitNumberExists) {\r\n                                if (document.getElementById('field-' + this.alternetFields[0])) {\r\n                                    document.getElementById('field-' + this.alternetFields[0]).disabled = false;\r\n\r\n                                    document.getElementById('field-' + this.alternetFields[0]).closest('.search-field').classList.remove('disabled');\r\n                                }\r\n                            }\r\n                        } else {\r\n                            for (let i = 0; i < this.alternetFields.length; i++) {\r\n                                if (document.getElementById('field-' + this.alternetFields[i])) {\r\n                                    this.$store.state.searchCriteria[this.alternetFields[i]] = '';\r\n                                    document.getElementById('field-' + this.alternetFields[i]).disabled = false;\r\n\r\n                                    document.getElementById('field-' + this.alternetFields[i]).closest('.search-field').classList.remove('disabled');\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        },\r\n\r\n        focusInput () {\r\n            this.$refs.input.focus();\r\n        },\r\n\r\n        blurInput () {\r\n            this.$refs.input.blur();\r\n        },\r\n\r\n        getParentRow(curElement) {\r\n            if (curElement.parentNode.className.indexOf('lessPadding') !== -1) {\r\n                return curElement.parentNode;\r\n            } else {\r\n                return this.getParentRow(curElement.parentNode);\r\n            }\r\n        },\r\n\r\n        updateSearchCriteriaDefault () {\r\n            if (this.default) {\r\n                this.setSearchCriteriaDefault({\r\n                    field: this.id,\r\n                    data: copyData(this.default)\r\n                });\r\n            }\r\n        },\r\n\r\n        updateSearchCriteria (data) {\r\n            var dataArray = data.split(';'),\r\n                submitData = {},\r\n                isNumber = /^[0-9]+$/;\r\n            // inputTypes=\"['string', 'number']\"\r\n            // submit=\"['piNames', piProfileIds]\"\r\n\r\n            if (this.inputTypes) {\r\n                for (let i = 0; i < this.inputTypes.length; i++) {\r\n                    let type = this.inputTypes[i].controlType;\r\n\r\n                    submitData[type] = [];\r\n\r\n\r\n                    for (let i2 = 0; i2 < dataArray.length; i2++) {\r\n                        let term = dataArray[i2].trim();\r\n\r\n                        switch (type) {\r\n                            case 'string':\r\n                                if (!isNumber.test(term) && term.length !== 0) {\r\n                                    submitData[type].push(term);\r\n                                }\r\n                                break;\r\n                            case 'number':\r\n                                if (isNumber.test(term)) {\r\n                                    submitData[type].push(term);\r\n                                }\r\n                                break;\r\n                        }\r\n                    }\r\n\r\n                    submitData[type].join(this.delimiter);\r\n\r\n                    this.setSearchCriteria({\r\n                        field: this.submitTypes[i],\r\n                        data: submitData[type]\r\n                    });\r\n                }\r\n\r\n            //     this.setSearchCriteria({\r\n            //         field: this.id,\r\n            //         data: copyData(data)\r\n            //     });\r\n            // } else {\r\n            //     this.setSearchCriteria({\r\n            //         field: this.id,\r\n            //         // data: copyData(this.inputValue)\r\n            //         data: copyData(data)\r\n            //     });\r\n            }\r\n\r\n            //data = this.removeDuplicates(data);\r\n            if (this.isCommaSeparated) {\r\n                data = dataArray.filter(function (el) {\r\n                    return el !== \"\";\r\n                }).join(',');\r\n                // data = dataArray.join(',');\r\n            }\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                data: copyData(data)\r\n            });\r\n\r\n        },\r\n\r\n        reset () {\r\n            if (this.alternetFields) {\r\n                if (this.alternetFields.length > 1) {\r\n                for (let i = 0; i < this.alternetFields.length; i++) {\r\n                    document.getElementById('field-' + this.alternetFields[i]).disabled = false;\r\n                    document.getElementById('field-' + this.alternetFields[i]).closest('.search-field').classList.remove('disabled');\r\n                }\r\n                } else {\r\n                    if (document.getElementById('field-' + this.alternetFields[0])) {\r\n                        document.getElementById('field-' + this.alternetFields[0]).disabled = false;\r\n                        if ( document.getElementById('field-' + this.alternetFields[0]).closest('.search-field')) {\r\n                            document.getElementById('field-' + this.alternetFields[0]).closest('.search-field').classList.remove('disabled');\r\n                        }\r\n                    }\r\n                }\r\n            } else {\r\n                this.$store.state.searchCriteria[this.id] = '';\r\n            }\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n$input-text-spacing: 0.15rem;\r\n\r\ntextarea.textInput {\r\n    overflow:hidden;\r\n    resize: true;\r\n//     resize: none;\r\n//     height: calc(2.875rem + 2px);\r\n//     padding: 0.75rem 0.5rem;\r\n}\r\n\r\n.count {\r\n    margin-top: 2px;\r\n    color: $grey;\r\n}\r\n.input-text {\r\n    position: relative;\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 0.5em;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    overflow: visible;\r\n    color: #212529;\r\n}\r\n\r\n.input-group {\r\n    // overflow: hidden;\r\n    // box-shadow: none;\r\n    box-shadow: $field-shadow;\r\n\r\n    background-color: $grey-lighter;\r\n    border-radius: $input-radius;\r\n\r\n    // .input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) {\r\n    //     border-radius: $input-radius;\r\n    // }\r\n}\r\n\r\n.form-control {\r\n    background-color: transparent;\r\n    box-shadow: none;\r\n    border-color: transparent;\r\n}\r\n\r\n\r\n.input-text__input-group {\r\n    // position: absolute;\r\n    // padding: 0.4rem 0.5rem;\r\n    padding: 0.45rem 0.5rem;\r\n    width: 100%;\r\n    min-height: calc(2.875rem + 2px);\r\n    height: auto;\r\n    background-color: $grey-lighter;\r\n    border-radius: $input-radius;\r\n    font-size: 15px;\r\n    transition: 0.3s;\r\n\r\n    &.active {\r\n        border-color: #1998fd;\r\n        outline: 0;\r\n        -webkit-box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n        box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n    }\r\n}\r\n\r\n.input-text__tags {\r\n    display: inline;\r\n    margin: 0;\r\n    padding: 0.5rem 0;\r\n    list-style: none;\r\n}\r\n\r\n.input-text__tag {\r\n    position: relative;\r\n    display: inline-block;\r\n    padding: 0.1em 1.5em 0.1em 0.5em;\r\n    margin: $input-text-spacing 0.4rem $input-text-spacing 0;\r\n    // margin-right: $input-text-spacing;\r\n    background-color: $blue-lightest;\r\n    border-radius: 12px;\r\n    // font-size: 15px;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    color: #333;\r\n    box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.25);\r\n    transition: 0.3s;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.35);\r\n    }\r\n}\r\n\r\n.input-text__tag__remove {\r\n    $iconSize: 1.75em;\r\n\r\n    position: absolute;\r\n    top: 0;\r\n    right: 0;\r\n    padding: 0;\r\n    border: none;\r\n    background: none;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    text-align: center;\r\n    cursor: pointer;\r\n\r\n    svg {\r\n        padding: 0.4em 0.4em 0.5em 0.5em;\r\n        width: $iconSize;\r\n        height: $iconSize;\r\n        fill: rgba(0,0,0,0.25);\r\n    }\r\n\r\n    vertical-align: middle;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        svg {\r\n            fill: $orange;\r\n        }\r\n    }\r\n}\r\n\r\n\r\n.input-text-highlight {\r\n    position: absolute;\r\n    color: transparent;\r\n    // color: rgba(255,0,0,0.5);\r\n    white-space: pre-wrap;\r\n\r\n    z-index: 1;\r\n    pointer-events: none;\r\n\r\n    overflow: hidden;\r\n\r\n    + .input-text__input {\r\n        border-radius: $input-radius;\r\n    }\r\n}\r\n\r\n\r\n.input-text__input {\r\n    display: inline-block;\r\n    // margin: $input-text-spacing;\r\n    margin: 0;\r\n    // padding-left: 0;\r\n    // padding-right: 0;\r\n    // width: 2em;\r\n    width: 100%;\r\n    // height: 1.5em;\r\n    // font-size: 15px;\r\n\r\n    overflow: auto;\r\n\r\n    // min-height: calc(2.875rem + 2px);\r\n    // height: auto;\r\n\r\n    // background-color: $grey-lighter;\r\n    // border-radius: $input-radius;\r\n    font-size: 15px;\r\n    // transition: 0.3s;\r\n\r\n    resize: vertical;\r\n    min-height: 42px;\r\n    // height: calc(2.875rem + 2px);\r\n    // padding: 0.75rem 0.5rem;\r\n    // padding: 0.72rem 0.5rem;\r\n\r\n    z-index: 2;\r\n\r\n    &.active:not(:disabled) {\r\n        border-color: #1998fd;\r\n        outline: 0;\r\n        -webkit-box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n        box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n    }\r\n\r\n    &:focus:not(:disabled) {\r\n        border-color: #1998fd;\r\n        outline: 0;\r\n        -webkit-box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n        box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n    }\r\n\r\n    // &:disabled {\r\n    //     background-color: #fff;\r\n    //     opacity: 0.5;\r\n    // }\r\n    // &.textInput {\r\n    //     overflow: hidden;\r\n    //     padding: 10px 5px;\r\n    // }\r\n}\r\n\r\n.project-number-split {\r\n    .input-text__input {\r\n        resize: none;\r\n    }\r\n\r\n    .col-sm-1 {\r\n        -webkit-box-flex: 0;\r\n        -ms-flex: 0 0 8.33333%;\r\n        flex: 0 0 8.33333%;\r\n        max-width: 8.33333%;\r\n    }\r\n}\r\n\r\n.multiselect__remove_all {\r\n    $iconSize: 1.4em;\r\n\r\n    // position: absolute;\r\n    // top: 0.45em;\r\n    // right: 0.25em;\r\n\r\n    float: right;\r\n    margin-right: -0.2em;\r\n    // margin-left: -0.25em;\r\n    // margin-top: -0.3em;\r\n\r\n    padding: 0;\r\n    border: none;\r\n    background: none;\r\n    width: $iconSize;\r\n    height: $iconSize;\r\n    text-align: center;\r\n    cursor: pointer;\r\n\r\n    z-index: 10;\r\n\r\n    svg {\r\n        position: relative;\r\n        margin-top: -0.2em;\r\n        padding: 0 0.25em;\r\n        width: $iconSize;\r\n        height: $iconSize;\r\n        fill: rgba($blue-dark, 0.4);\r\n    }\r\n\r\n    vertical-align: middle;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        svg {\r\n            fill: $orange;\r\n        }\r\n    }\r\n}\r\n\r\n.input-text__dropdown {\r\n    position: absolute;\r\n    top: 100%;\r\n    // bottom: 0;\r\n    left: 0;\r\n    // width: 100%;\r\n    min-width: 100%;\r\n    max-width: 200%;\r\n    height: 0;\r\n    background-color: #fff;\r\n    box-shadow: 0 2px 8px 0px rgba(0,0,0,0.25);\r\n    border-radius: $input-radius;\r\n    overflow: auto;\r\n    z-index: 10;\r\n    transition: 0.3s;\r\n\r\n    &.open {\r\n        height: 200px;\r\n    }\r\n}\r\n\r\n.max-reached {\r\n    animation: maxCharacters 0.3s normal forwards ease-in-out;\r\n    animation-iteration-count: 1;\r\n    transform-origin: left;\r\n}\r\n\r\n@keyframes maxCharacters {\r\n    from {\r\n        font-weight: 700;\r\n        color: #333;\r\n    }\r\n    50% {\r\n        transform: scale(1.05);\r\n        color: $red;\r\n    }\r\n    to {\r\n        font-weight: 700;\r\n        color: $red;\r\n    }\r\n}\r\n\r\n</style>","import { render } from \"./InputText.vue?vue&type=template&id=2ca8dd39&scoped=true\"\nimport script from \"./InputText.vue?vue&type=script&lang=js\"\nexport * from \"./InputText.vue?vue&type=script&lang=js\"\n\nimport \"./InputText.vue?vue&type=style&index=0&id=2ca8dd39&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2ca8dd39\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"search-field input-text\" :class=\"$store.state.searchFieldErrors[id] && $store.state.searchFieldErrors[id].message ? 'field-error' : ''\">\r\n        <label\r\n            class=\"field-title\"\r\n            :class=\"titleHidden ? 'sr-only' : ''\"\r\n            :for=\"'field-' + id\"\r\n        >\r\n            {{title}}\r\n            <field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n        </label>\r\n        <div\r\n            class=\"input-group\"\r\n        >\r\n        <template v-if=\"calendarType === 'range'\">\r\n            <date-picker range\r\n                v-model:value=\"inputDateValue\"\r\n                :lang=\"lang\" separator=\"-\"\r\n                :id=\"'field-' + id\"\r\n                format=\"MM/DD/YYYY\"\r\n                v-model:open=\"isControlOpen\"\r\n                @pick=\"validateDate($event)\"\r\n                @open=\"setMaxMinDate()\"\r\n                :not-before=\"notBeforeDate\"\r\n                :not-after=\"notAfterDate\"\r\n                :confirm=\"true\"\r\n                :appendToBody=\"false\"\r\n                @clear=\"clearText()\"\r\n                @close=\"removeHeader(); validateDate($event);\"\r\n                type=\"date\"\r\n            >\r\n\r\n            </date-picker>\r\n        </template>\r\n        <template v-else>\r\n            <date-picker\r\n                v-model:value=\"inputDateValueSingle\"\r\n                :lang=\"lang\"\r\n                :id=\"'field-' + id\"\r\n                :appendToBody=\"false\"\r\n                format=\"MM/DD/YYYY\"\r\n                @pick=\"validateDate($event)\"\r\n                @open=\"setMaxMinDate()\"\r\n                :not-before=\"notBeforeDate\"\r\n                :not-after=\"notAfterDate\"\r\n                :confirm=\"false\"\r\n                @clear=\"clearText()\"\r\n                @close=\"removeHeader(); validateDate($event);\"\r\n            >\r\n            </date-picker>\r\n        </template>\r\n        <!-- <span class=\"display-date\" v-if=\"inputDateValueSingle\" @click.prevent=\"openCalendar()\">{{inputDateValueSingle}}\r\n                <svgicon name=\"icon-x\" @click.stop=\"clearText()\" />\r\n                <span class=\"sr-only\">Remove All</span>\r\n            </span> -->\r\n            <div class=\"date-selection-options\" :id=\"'date-selection-' + id\">\r\n                <div class=\"triangle\"></div>\r\n                <span class=\"label\" v-if=\"calendarType === 'range'\">Select {{title}} Range</span>\r\n                <span class=\"label\" v-else>Select Date</span>\r\n                <span class=\"options\">\r\n                    <ul>\r\n                        <li :class=\"{'active': calendarType === 'range'}\"><a href @click.prevent=\"setCalendarType('range')\">Range</a></li>\r\n                        <li :class=\"{'active': calendarType === 'before'}\"><a href @click.prevent=\"setCalendarType('before')\">Before</a></li>\r\n                        <li :class=\"{'active': calendarType === 'after'}\"><a href @click.prevent=\"setCalendarType('after')\">After</a></li>\r\n                    </ul>\r\n                </span>\r\n            </div>\r\n        </div>\r\n        <div class=\"field-help-text\" v-if=\"helpTextDisplay\" >\r\n            {{helpTextDisplay}}\r\n        </div>\r\n        <field-error\r\n            v-if=\"$store.state.searchFieldErrors[id]\"\r\n            v-show=\"$store.state.searchFieldErrors[id].message\"\r\n            :message=\"$store.state.searchFieldErrors[id].message\"\r\n        />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport FieldTooltip from '@/components/searchFields/FieldTooltip.vue';\r\nimport DatePicker from 'vue-datepicker-next';\r\nimport 'vue-datepicker-next/index.css';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'InputDate',\r\n    components: {\r\n        FieldError,\r\n        FieldTooltip,\r\n        DatePicker\r\n    },\r\n    props: {\r\n        title: {\r\n            required: true\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        default: {\r\n            required: false\r\n        },\r\n        maxSelection: {\r\n            required: false\r\n        },\r\n        delimiter: {\r\n            required: false,\r\n            default: ';'\r\n        },\r\n        fields: {\r\n            required: false\r\n        },\r\n        helpText: {\r\n            required: false\r\n        },\r\n        placeholder: {\r\n            required: false\r\n        },\r\n        dependentField: {\r\n            required: false\r\n        },\r\n        select: {\r\n            required: false\r\n        },\r\n        deselect: {\r\n            required: false\r\n        },\r\n        change: {\r\n            required: false\r\n        },\r\n        maxLength: {\r\n            required: false\r\n        },\r\n        matchingStr: {\r\n            required: false\r\n        },\r\n        titleHidden: {\r\n            required: false\r\n        },\r\n        alternetFields: {\r\n            required: false\r\n        },\r\n        groupFields: {\r\n            groupFields: false\r\n        },\r\n        bus: {\r\n            required: false\r\n        },\r\n        tooltipText: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        }\r\n        // inputTypes: {\r\n        //     required: false\r\n        // },\r\n        // submitTypes: {\r\n        //     required: false\r\n        // }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchFieldErrors'\r\n        ])\r\n    },\r\n    data: function () {\r\n        return {\r\n            lang: {\r\n                days: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n                months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n                pickers: ['next 7 days', 'next 30 days', 'previous 7 days', 'previous 30 days'],\r\n                placeholder: {\r\n                    date: '',\r\n                    dateRange: ''\r\n                }\r\n            },\r\n            shortcuts: [\r\n                {\r\n                    text: 'Today',\r\n                    onClick: () => {\r\n                        this.inputDateValue = [ new Date(), new Date() ]\r\n                    }\r\n                }\r\n            ],\r\n            inputDateValue: [],\r\n            notBeforeDate: '',\r\n            notAfterDate: '',\r\n            inputTypes: null,\r\n            submitTypes: null,\r\n            inputDateValueSingle: '',\r\n            // inputValue: ''\r\n\r\n            // assigned here so that it can be overwritten below\r\n            // otherwise throws error in Vue\r\n            helpTextDisplay: this.calendarType ? 'on or ' + this.calendarType : this.helpText,\r\n            showSelectionOptions: false,\r\n            calendarType: 'before',\r\n            isControlOpen: false\r\n        };\r\n    },\r\n    mounted () {\r\n        var inputValDefault = {\r\n            'from_date': null,\r\n            'to_date': null\r\n        }\r\n        // initialize field in store so that it will be watched\r\n        // this.helpTextDisplay = '';\r\n        if (!this.$store.state.searchCriteria[this.id]) {\r\n            this.$store.state.searchCriteria[this.id] = inputValDefault;\r\n        }\r\n\r\n        if (!this.$store.state.searchCriteriaDefault[this.id]) {\r\n            this.$store.state.searchCriteriaDefault[this.id] = inputValDefault;\r\n        }\r\n\r\n        if (this.$store.state.editSearchCriteria[this.id]) {\r\n            this.$store.state.searchCriteria[this.id] =  this.$store.state.editSearchCriteria[this.id];\r\n        }\r\n\r\n        if (!this.$store.state.searchFieldErrors[this.id]) {\r\n            this.$store.state.searchFieldErrors[this.id] = '';\r\n        }\r\n\r\n        bus.$on('reset', this.reset);\r\n\r\n        this.updateSearchCriteriaDefault();\r\n\r\n        this.initDateField();\r\n        //document.addEventListener('scroll', this.repositionControl);\r\n\r\n        // console.log(this);\r\n        // console.log(this.$el.querySelectorAll('input'));\r\n\r\n        this.inputEl = this.$el.querySelectorAll('input');\r\n\r\n        if (this.inputEl) {\r\n            this.inputEl = this.inputEl[0];\r\n            this.inputEl.addEventListener('keydown', (event) => {\r\n                this.handleInputEvent(event);\r\n            });\r\n        }\r\n\r\n        setTimeout(() => {\r\n            this.setLabelId();\r\n        }, 101)\r\n\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setSearchCriteriaDefault',\r\n            'setSearchFieldErrors'\r\n        ]),\r\n        setLabelId () {\r\n            var inputTextFields = this.$el.querySelectorAll('input[type=text]'),\r\n            itemLabel;\r\n\r\n            if (inputTextFields && inputTextFields.length > 1) {\r\n                for (let i = 0; i < inputTextFields.length; i++) {\r\n                    inputTextFields[i].setAttribute(\"id\", \"field-\" + this.id + '-' + i);\r\n\r\n                    itemLabel = document.createElement(\"Label\");\r\n                    itemLabel.setAttribute(\"for\", \"field-\" + this.id + '-' + i);\r\n                    itemLabel.setAttribute(\"class\", \"sr-only\");\r\n                    itemLabel.innerHTML = \"date\";\r\n                    inputTextFields[i].parentNode.insertBefore(itemLabel, inputTextFields[i]);\r\n                }\r\n            } else {\r\n                inputTextFields[0].setAttribute(\"id\", \"field-\" + this.id );\r\n\r\n                itemLabel = document.createElement(\"Label\");\r\n                itemLabel.setAttribute(\"for\", \"field-\" + this.id);\r\n                itemLabel.setAttribute(\"class\", \"sr-only\");\r\n                itemLabel.innerHTML = \"date\";\r\n                inputTextFields[0].parentNode.insertBefore(itemLabel, inputTextFields[0]);\r\n\r\n            }\r\n        },\r\n\r\n        setCalendarType (type) {\r\n            this.calendarType = type;\r\n            if (type.toLowerCase() === 'range') {\r\n                this.isControlOpen = true;\r\n            } else {\r\n                this.isControlOpen = false;\r\n            }\r\n            this.removeHeader();\r\n            this.$nextTick(() => {\r\n                let $this = this;\r\n                setTimeout(() => {\r\n                    $this.setLabelId();\r\n                    $this.setMaxMinDate();\r\n                }, 101);\r\n            });\r\n        },\r\n\r\n        handleInputEvent (event) {\r\n            // this.$refs.input.addEventListener('keydown, paste', (event) => {\r\n            // var key = String.fromCharCode(event.keyCode);\r\n\r\n            // if press enter, prevent adding line break\r\n            if (event.keyCode === 13) {\r\n                event.preventDefault();\r\n\r\n                //submit search\r\n                this.$parent.$parent.search();\r\n            }\r\n        },\r\n\r\n        validateDate (e1) {\r\n\t\t\tgtag('event','Click', {\r\n\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t'event_label': 'Select - ' + this.title,\r\n\t\t\t\t'value': 'Select - ' + this.title\r\n\t\t\t});\t\r\n\r\n            if (this.calendarType === 'range') {\r\n                if (this.inputDateValue) {\r\n                    this.inputDateValueSingle = '';\r\n                    this.updateSearchCriteria({\r\n                        'from_date': this.inputDateValue[0],\r\n                        'to_date': this.inputDateValue[1],\r\n                    });\r\n                }\r\n                this.helpTextDisplay = this.helpText;\r\n            } else {\r\n                this.inputDateValue = null;\r\n                this.updateSearchCriteria({\r\n                    'from_date': this.calendarType === 'after' ? this.inputDateValueSingle : null,\r\n                    'to_date': this.calendarType === 'before' ? this.inputDateValueSingle : null,\r\n                });\r\n                this.helpTextDisplay = 'on or ' + this.calendarType;\r\n            }\r\n            this.showSelectionOptions = false;\r\n        },\r\n\r\n        openCalendar () {\r\n            var event = new MouseEvent('click', {\r\n                    view: window,\r\n                    bubbles: true,\r\n                    cancelable: true\r\n                });\r\n\r\n            document.getElementById('field-' + this.id).getElementsByTagName('input')[0].dispatchEvent(event);\r\n        },\r\n\r\n        removeHeader () {\r\n            var curId = this.id,\r\n                datePickerObjContainer = document.getElementById('field-' + curId).parentNode.parentNode.parentNode,\r\n                header = datePickerObjContainer.getElementsByClassName('date-selection-options')[0];\r\n\r\n            datePickerObjContainer.insertBefore(header, datePickerObjContainer.getElementsByClassName('field-help-text')[0]);\r\n        },\r\n\r\n        setHeader () {\r\n            var curDatePicker,\r\n                thisId = this.id,\r\n                header = document.getElementById('date-selection-' + thisId),\r\n                datePickerObjContainer;\r\n\r\n            setTimeout(() => {\r\n                datePickerObjContainer = document.getElementById('field-' + thisId).parentNode.parentNode;\r\n                curDatePicker = datePickerObjContainer.getElementsByClassName('mx-datepicker-popup')[0];\r\n                if (!curDatePicker.getElementsByClassName('date-selection-options')[0]) {\r\n                    curDatePicker.insertBefore(header, curDatePicker.childNodes[0]);\r\n                    curDatePicker.getElementsByClassName('date-selection-options')[0];\r\n                    // setTimeout(() => {\r\n                    //     this.repositionControl();\r\n                    // });\r\n                }\r\n            });\r\n        },\r\n\r\n        initDateField () {\r\n            if (this.$store.state.searchCriteria[this.id] && this.$store.state.searchCriteria[this.id] !== '' && this.$store.state.searchCriteria[this.id] !== null) {\r\n                if (this.$store.state.searchCriteria[this.id]['from_date'] && this.$store.state.searchCriteria[this.id]['to_date']) {\r\n                    var startDate = new Date(this.$store.state.searchCriteria[this.id]['from_date']),\r\n                        endDate = new Date(this.$store.state.searchCriteria[this.id]['to_date']);\r\n\r\n                    this.inputDateValue.push(startDate);\r\n                    this.inputDateValue.push(endDate);\r\n                    this.inputDateValueSingle = '';\r\n                    this.calendarType = 'range';\r\n                } else {\r\n                    if (this.$store.state.searchCriteria[this.id]['from_date']) {\r\n                        var startDate = new Date(this.$store.state.searchCriteria[this.id]['from_date']);\r\n\r\n                        this.inputDateValue = null;\r\n                        this.inputDateValueSingle = startDate; //this.formatDate(startDate);\r\n                        this.calendarType = 'after';\r\n                    } else if (this.$store.state.searchCriteria[this.id]['to_date']) {\r\n                        var endDate = new Date(this.$store.state.searchCriteria[this.id]['to_date']);\r\n\r\n                        this.inputDateValue = null;\r\n                        this.inputDateValueSingle = endDate; //this.formatDate(endDate);\r\n                        this.calendarType = 'before';\r\n                    } else {\r\n                        this.inputDateValue = null;\r\n                        this.inputDateValueSingle = '';\r\n                        this.calendarType = 'before';\r\n                    }\r\n                }\r\n            } else {\r\n                this.inputDateValue = null;\r\n                this.inputDateValueSingle = '';\r\n                this.calendarType = 'before';\r\n            }\r\n        },\r\n\r\n        setMaxMinDate () {\r\n            this.setHeader();\r\n            // this.calendarType = 'before';\r\n            // this.helpTextDisplay = 'on or ' + this.calendarType;\r\n            this.showSelectionOptions = true;\r\n            if (this.dependentField && window.searchFieldSpecs[this.dependentField]) {\r\n\t\t\t\tgtag('event','Set Min/Max Date', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Select - ' + this.title,\r\n\t\t\t\t\t'value': 'Select - ' + this.title\r\n\t\t\t\t});\t\r\n                //this.inputDateValueSingle = null;\r\n                var self = this,\r\n                    depFieldId = window.searchFieldSpecs[self.dependentField].id;\r\n\r\n                if (self.dependentField && self.dependentField.indexOf('StartDate') !== -1) {\r\n                    this.notAfterDate = '';\r\n                    if (self.$store.state.searchCriteria[depFieldId] && self.$store.state.searchCriteria[depFieldId].to_date) {\r\n                        this.notBeforeDate = self.$store.state.searchCriteria[depFieldId].to_date;\r\n                    } else {\r\n                        this.notBeforeDate = '';\r\n                    }\r\n                } else {\r\n                    this.notBeforeDate = '';\r\n                    if (self.$store.state.searchCriteria[depFieldId] && self.$store.state.searchCriteria[depFieldId].from_date) {\r\n                        this.notAfterDate = self.$store.state.searchCriteria[depFieldId].from_date;\r\n                    } else {\r\n                        this.notAfterDate = '';\r\n                    }\r\n                }\r\n            }\r\n        },\r\n\r\n        formatDate (d) {\r\n            return (\"0\"+(d.getMonth()+1)).slice(-2) + \"/\" + (\"0\" + d.getDate()).slice(-2) + \"/\" + d.getFullYear();\r\n        },\r\n\r\n        repositionControl () {\r\n            // var datePickerObjArr = document.getElementsByClassName('mx-datepicker-popup'),\r\n            //     curDatePicker = datePickerObjArr[0],\r\n            //     winScrollHeight = Math.max(\r\n            //         document.body.scrollHeight, document.documentElement.scrollHeight,\r\n            //         document.body.offsetHeight, document.documentElement.offsetHeight,\r\n            //         document.body.clientHeight, document.documentElement.clientHeight\r\n            //     ),\r\n            //     header = curDatePicker.getElementsByClassName('date-selection-options')[0],\r\n            //     dateControl = document.getElementById('field-' + this.id);\r\n\r\n            // if (datePickerObjArr.length > 0 && header) {\r\n            //     if (this.id === 'project_end_date'  && datePickerObjArr.length > 1) {\r\n            //         curDatePicker = document.getElementsByClassName('mx-datepicker-popup')[1];\r\n            //     }\r\n\r\n            //     console.log(curDatePicker.style.top);\r\n            //     console.log(dateControl.getBoundingClientRect().top + document.documentElement.scrollTop)\r\n            //     if (curDatePicker && parseInt(dateControl.getBoundingClientRect().top) > document.documentElement.scrollTop) {\r\n            //         curDatePicker.style.top = (parseInt(dateControl.getBoundingClientRect().top) - (2 * header.offsetHeight)) + 10 + 'px';\r\n            //         curDatePicker.classList.add('down');\r\n            //     } else {\r\n            //         curDatePicker.style.top = (parseInt(dateControl.getBoundingClientRect().top)) + 15 + 'px';\r\n            //         curDatePicker.classList.remove('down');\r\n            //     }\r\n            // }\r\n        },\r\n\r\n        reset () {\r\n            var inputValDefault = {\r\n                'from_date': null,\r\n                'to_date': null\r\n            }\r\n\r\n            this.inputDateValue = [];\r\n            this.inputDateValueSingle = null;\r\n            this.calendarType = 'before';\r\n            this.helpTextDisplay = this.helpText;\r\n            this.updateSearchCriteria(inputValDefault);\r\n        },\r\n\r\n        clearText () {\r\n            var inputValDefault = {\r\n                'from_date': null,\r\n                'to_date': null\r\n            }\r\n\r\n            this.inputDateValueSingle = [];\r\n            this.inputDateValue = null;\r\n            this.updateSearchCriteria(inputValDefault);\r\n        },\r\n\r\n        updateSearchCriteriaDefault () {\r\n            if (this.default) {\r\n                this.setSearchCriteriaDefault({\r\n                    field: this.id,\r\n                    data: copyData(this.default)\r\n                });\r\n            }\r\n        },\r\n\r\n        updateSearchCriteria (data) {\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                data: copyData(data)\r\n            });\r\n\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n$input-text-spacing: 0.15rem;\r\n\r\n.input-text {\r\n    position: relative;\r\n}\r\n\r\n.field-title {\r\n    margin-bottom: 0.5em;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    overflow: visible;\r\n    color: #212529;\r\n}\r\n\r\n.input-group {\r\n    box-shadow: $field-shadow;\r\n\r\n    background-color: $grey-lighter;\r\n    border-radius: $input-radius;\r\n\r\n}\r\n\r\n.date-selection-options {\r\n    display: none;\r\n    padding: 10px 10px 0;\r\n    .label {\r\n        display: inline-block;\r\n        border-right: none;\r\n        font-weight: bold;\r\n        padding: 5px 7px 10px 0;\r\n    }\r\n    .options {\r\n        text-align: right;\r\n\r\n        ul {\r\n            padding: 7px 0;\r\n            box-shadow: 3px 5px 6px 0px rgba(0, 0, 0, 0.25);\r\n            border-radius: 5px;\r\n            display: inline;\r\n            li {\r\n                display: inline-block;\r\n                padding: 5px 5px;\r\n                border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n                border-right: 1px solid rgba(0, 0, 0, 0.25);\r\n                &:last-child {\r\n                    border-radius: 0 5px 5px 0;\r\n                    border-right: none;\r\n                }\r\n                &:first-child{\r\n                    border-radius: 5px 0 0 5px;\r\n                }\r\n                &.active {\r\n                    border-right: none;\r\n                    background-color: $blue;\r\n                    a {\r\n                        color: $white;\r\n                    }\r\n                    &:hover {\r\n                        background-color: $blue-dark;\r\n                        a {\r\n                            text-decoration: none;\r\n                        }\r\n                    }\r\n                }\r\n                a {\r\n                    &:hover {\r\n                        text-decoration: none;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n.mx-datepicker-popup {\r\n    .date-selection-options {\r\n     display: block;\r\n    }\r\n}\r\n\r\n.mx-datepicker-range{\r\n    width: 100%;\r\n    background-color: transparent;\r\n}\r\n\r\nspan.display-date {\r\n    display: inline-block;\r\n    margin: 0;\r\n    overflow: auto;\r\n    font-size: 16px;\r\n    min-height: 42px;\r\n    z-index: 2;\r\n    padding: 0.72rem 0.5rem;\r\n    height: calc(2.875rem + 2px);\r\n    background-color: #ECECEC;\r\n    position: absolute;\r\n    line-height: 1.4;\r\n    fill: rgba(0, 0, 0, 0.25);\r\n    width: 100%;\r\n    .svg-icon {\r\n        position: absolute;\r\n        right: 9px;\r\n        height: 12px;\r\n        top: 16px;\r\n        .color1 {\r\n            fill:rgba(0, 0, 0, 0.25);\r\n        }\r\n    }\r\n}\r\n\r\n.mx-calendar {\r\n    .mx-calendar-content{\r\n        overflow: visible !important;\r\n    }\r\n}\r\n</style>","import { render } from \"./InputDate.vue?vue&type=template&id=be4eafe6&scoped=true\"\nimport script from \"./InputDate.vue?vue&type=script&lang=js\"\nexport * from \"./InputDate.vue?vue&type=script&lang=js\"\n\nimport \"./InputDate.vue?vue&type=style&index=0&id=be4eafe6&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-be4eafe6\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"search-field input-text\" :class=\"$store.state.searchFieldErrors[id] && $store.state.searchFieldErrors[id].message ? 'field-error' : ''\" :id=\"'field-' + id + '-container'\" >\r\n        <label\r\n            class=\"field-title\"\r\n            :class=\"titleHidden ? 'sr-only' : ''\"\r\n            :for=\"'field-' + id\"\r\n        >\r\n            {{title}}\r\n            <field-tooltip v-if=\"tooltipText\" :text=\"tooltipText\" :urlKeys=\"urlKeys\" />\r\n        </label>\r\n        <div class=\"loader\" v-if=\"loading\"></div>\r\n        <div\r\n            class=\"\"\r\n        >\r\n            <div class=\"inline\">\r\n                <label class=\"field-title subtitle sr-only\" :for=\"'field-' + id + '-min'\">Min</label>\r\n                <input type=\"text\" :value=\"minAmount\" :id=\"'field-' + id + '-min'\" :min=\"options.min\" :max=\"options.max\" autocomplete=\"false\" ref=\"fieldMin\" :disabled=\"loading\" />\r\n            </div>\r\n            <div class=\"inline\">\r\n                <label class=\"field-title subtitle sr-only\" :for=\"'field-' + id + '-max'\">Max</label>\r\n                <input type=\"text\" :value=\"maxAmount\" :id=\"'field-' + id + '-max'\" :min=\"options.min\" :max=\"options.max\" autocomplete=\"false\" ref=\"fieldMax\" :disabled=\"loading\" />\r\n            </div>\r\n            <vue-slider\r\n                v-if=\"isLoaded\"\r\n                v-model=\"rangeVal\"\r\n                v-bind=\"options\"\r\n                class=\"slider\"\r\n                :id=\"'field-' + id\" :lazy=\"true\"\r\n                @change=\"validateInput(false)\"\r\n                :included=\"true\"\r\n                :hideLabel=\"true\"\r\n                tooltip=\"none\"\r\n                :tooltip-formatter=\"tooltipFormatter\"\r\n                tooltipPlacement=\"bottom\"\r\n                :railStyle=\"{backgroundColor: '#e4e4e4'}\"\r\n                :processStyle=\"{backgroundColor: '#015496'}\"\r\n                :tooltipStyle=\"{backgroundColor: '#015496', borderColor: '#015496'}\"\r\n            ></vue-slider>\r\n                <!-- :data=\"getDataRange\" -->\r\n        </div>\r\n        <div class=\"field-help-text\" v-if=\"helpTextDisplay\" >\r\n            {{helpTextDisplay}}\r\n        </div>\r\n        <field-error\r\n            v-if=\"$store.state.searchFieldErrors[id]\"\r\n            v-show=\"$store.state.searchFieldErrors[id].message\"\r\n            :message=\"$store.state.searchFieldErrors[id].message\"\r\n        />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport FieldTooltip from '@/components/searchFields/FieldTooltip.vue'\r\nimport VueSlider from 'vue-slider-component';\r\nimport 'vue-slider-component/theme/default.css';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'InputDate',\r\n    components: {\r\n        FieldError,\r\n        FieldTooltip,\r\n        VueSlider\r\n    },\r\n    props: {\r\n        title: {\r\n            required: true\r\n        },\r\n        id: {\r\n            required: true\r\n        },\r\n        maxSelection: {\r\n            required: false\r\n        },\r\n        delimiter: {\r\n            required: false,\r\n            default: ';'\r\n        },\r\n        fields: {\r\n            required: false\r\n        },\r\n        helpText: {\r\n            required: false\r\n        },\r\n        placeholder: {\r\n            required: false\r\n        },\r\n        dependentField: {\r\n            required: false\r\n        },\r\n        select: {\r\n            required: false\r\n        },\r\n        deselect: {\r\n            required: false\r\n        },\r\n        change: {\r\n            required: false\r\n        },\r\n        maxLength: {\r\n            required: false\r\n        },\r\n        matchingStr: {\r\n            required: false\r\n        },\r\n        titleHidden: {\r\n            required: false\r\n        },\r\n        alternetFields: {\r\n            required: false\r\n        },\r\n        groupFields: {\r\n            groupFields: false\r\n        },\r\n        bus: {\r\n            required: false\r\n        },\r\n        dynamicLookup: {\r\n            required: false\r\n        },\r\n        tooltipText: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        }\r\n        // inputTypes: {\r\n        //     required: false\r\n        // },\r\n        // submitTypes: {\r\n        //     required: false\r\n        // }\r\n    },\r\n    watch: {\r\n        // reset value if not in correct format\r\n        '$store.state.searchCriteria.award_amount_range': function (val, oldVal) {\r\n            if (val && val.length !== undefined) {\r\n                this.updateSearchCriteria();\r\n            }\r\n        },\r\n        '$store.state.lookup.award_amount_range': function (val, oldVal) {\r\n            if (val && val.max_award_amount) {\r\n                this.options.max = Math.ceil(val.max_award_amount/100)*100;\r\n                this.isLoaded = true;\r\n            }\r\n        }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchFieldErrors'\r\n        ]),\r\n        getDataRange () {\r\n            var i,\r\n                dataRange = [],\r\n                maxue = this.defaultValues[1],\r\n                roundBy = 1000000,\r\n                maxRounded = Math.ceil(maxue / roundBy) * roundBy;\r\n\r\n            this.max = maxRounded;\r\n\r\n            for (i = 0; i < 10000 - 1;) {\r\n                dataRange.push(i);\r\n                 i += 1000;\r\n            }\r\n\r\n            for (i = 1000000; i < 100000 - 1;) {\r\n                dataRange.push(i);\r\n                 i += 10000;\r\n            }\r\n\r\n            for (i = 100000; i < 10000000 - 1;) {\r\n                dataRange.push(i);\r\n                 i += 100000;\r\n            }\r\n\r\n            for (i = 10000000; i < maxRounded - 1;) {\r\n                dataRange.push(i);\r\n                i += 10000000;\r\n            }\r\n\r\n            // for (i = 0; i < 500000000; i++) {\r\n            //     dataRange.push(i);\r\n            // }\r\n\r\n            dataRange.push(maxRounded);\r\n\r\n            // console.log(dataRange);\r\n\r\n            return dataRange;\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            loading: true,\r\n            isLoaded: false,\r\n            helpTextDisplay: this.helpText ? this.helpText : null,\r\n            inputHighlightText: '',\r\n            rangeVal: [],\r\n            // maxNumberLength: this.max.toString().length,\r\n            maxAmount:null,\r\n            minAmount:null,\r\n            validationTimeout:null,\r\n            tooltipFormatter: v => `${this.formatTooltip(v)}`,\r\n            ignoreKeys: [\r\n                //arrows\r\n                37, //left\r\n                38, //up\r\n                39, //right\r\n                40, //down\r\n\r\n                //other\r\n                9, //tab\r\n                16, //shift\r\n            ],\r\n            allowedKeys: [\r\n                //numbers on top of keyboard\r\n                48, //0\r\n                49, //1\r\n                50, //2\r\n                51, //3\r\n                52, //4\r\n                53, //5\r\n                54, //6\r\n                55, //7\r\n                56, //8\r\n                57, //9\r\n\r\n                // numpad on side of keyboard\r\n                96, //0\r\n                97, //1\r\n                98, //2\r\n                99, //3\r\n                100, //4\r\n                101, //5\r\n                102, //6\r\n                103, //7\r\n                104,//8\r\n                105,//9\r\n\r\n                //arrows\r\n                37, //left\r\n                38, //up\r\n                39, //right\r\n                40, //down\r\n\r\n                //other\r\n                8, //backspace\r\n                9, //tab\r\n                13, //enter\r\n                16, //shift\r\n                46, //delete\r\n            ],\r\n            keyBackspace: 8,\r\n            keyDelete: 46,\r\n            previousValue: null,\r\n            commaCount: null,\r\n            cursorPos: null,\r\n            cursorPosNew: null,\r\n            newValue: null,\r\n            defaultValues: [],\r\n            options: {\r\n                dotSize: 18,\r\n                width: 'auto',\r\n                height: 6,\r\n                contained: false,\r\n                direction: 'ltr',\r\n                data: null,\r\n                dataLabel: 'label',\r\n                dataValue: 'value',\r\n                min: 0,\r\n                max: 500000000,\r\n                interval: 100,\r\n                disabled: false,\r\n                clickable: true,\r\n                duration: 0.1,\r\n                adsorb: false,\r\n                lazy: false,\r\n                tooltip: 'active',\r\n                tooltipPlacement: 'top',\r\n                tooltipFormatter: void 0,\r\n                useKeyboard: false,\r\n                keydownHook: null,\r\n                dragOnClick: false,\r\n                enableCross: true,\r\n                fixed: false,\r\n                minRange: void 0,\r\n                maxRange: void 0,\r\n                order: true,\r\n                marks: false,\r\n                dotOptions: void 0,\r\n                dotAttrs: void 0,\r\n                process: true,\r\n                dotStyle: void 0,\r\n                railStyle: void 0,\r\n                processStyle: void 0,\r\n                tooltipStyle: void 0,\r\n                stepStyle: void 0,\r\n                stepActiveStyle: void 0,\r\n                labelStyle: void 0,\r\n                labelActiveStyle: void 0,\r\n            },\r\n            value: [0, 50],\r\n        };\r\n    },\r\n    mounted () {\r\n        var inputValDefault = {\r\n            'min_amount': null,\r\n            'max_amount': null\r\n        },\r\n        $this = this;\r\n\r\n        this.maxNumberLength = this.options.max.toString().length;\r\n\r\n        // initialize field in store so that it will be watched\r\n        if (!this.$store.state.searchCriteria[this.id] || this.$store.state.searchCriteria[this.id].min_amount === undefined || this.$store.state.searchCriteria[this.id].max_amount === undefined) {\r\n            this.$store.state.searchCriteria[this.id] = inputValDefault;\r\n        }\r\n\r\n        if (!this.$store.state.searchCriteriaDefault[this.id]  || this.$store.state.searchCriteriaDefault[this.id].min_amount === undefined || this.$store.state.searchCriteriaDefault[this.id].max_amount === undefined) {\r\n            this.$store.state.searchCriteriaDefault[this.id] = inputValDefault;\r\n        }\r\n\r\n        if (this.$store.state.editSearchCriteria[this.id] && (this.$store.state.editSearchCriteria[this.id].min_amount !== null || this.$store.state.editSearchCriteria[this.id].max_amount !== null)) {\r\n            this.$store.state.searchCriteria[this.id] = this.$store.state.editSearchCriteria[this.id];\r\n        }\r\n\r\n        if (!this.$store.state.searchFieldErrors[this.id]) {\r\n            this.$store.state.searchFieldErrors[this.id] = '';\r\n        }\r\n\r\n        if (!this.$store.state.lookup[this.id]) {\r\n            this.$store.state.lookup[this.id] = [];\r\n            this.setData();\r\n        } else {\r\n            this.loading = false;\r\n            this.defaultValues = [this.$store.state.lookup[this.id].min_award_amount, this.$store.state.lookup[this.id].max_award_amount];\r\n            this.options.max = Math.ceil(this.$store.state.lookup[this.id].max_award_amount/100)*100;\r\n            this.isLoaded = true;\r\n            this.rangeVal = [this.$store.state.lookup[this.id].min_award_amount, this.$store.state.lookup[this.id].max_award_amount];\r\n            \r\n            if (this.$store.state.editSearchCriteria[this.id] && this.$store.state.editSearchCriteria[this.id].min_amount !== null && this.$store.state.editSearchCriteria[this.id].min_amount !== undefined) {\r\n                this.rangeVal = [this.$store.state.editSearchCriteria[this.id].min_amount, this.$store.state.editSearchCriteria[this.id].max_amount];\r\n            } else if (this.$store.state.searchCriteria[this.id]) {\r\n                if (this.$store.state.searchCriteria[this.id].min_amount !== null && this.$store.state.searchCriteria[this.id].min_amount !== undefined) {\r\n                    this.rangeVal = [this.$store.state.searchCriteria[this.id].min_amount, this.$store.state.searchCriteria[this.id].max_amount];\r\n                }\r\n            }\r\n            this.getMinAmount();\r\n            this.getMaxAmount();\r\n            this.updateSearchCriteriaDefault();\r\n        }\r\n\r\n        bus.$on('reset', this.reset);\r\n        // this.updateSearchCriteriaDefault();\r\n        // this.updateSearchCriteria();\r\n        this.initEvents();\r\n    },\r\n    methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setSearchCriteriaDefault',\r\n            'setSearchFieldErrors',\r\n            'setLookup'\r\n        ]),\r\n\r\n        serverlessFallback (callback) {\r\n            // try serverless mode for just this component\r\n\r\n            if (!this.serverless) {\r\n                this.serverless = true;\r\n                this.setData(callback);\r\n            } else {\r\n                // this.error = this.lookupError;\r\n                this.setSearchFieldErrors({\r\n                    field: this.id,\r\n                    message: this.lookupError,\r\n                    lookupFailed: true,\r\n                    preventSearch: false\r\n                });\r\n                // this.$refs.input.placeholder = 'failed to load data';\r\n                this.loading = false;\r\n                this.failedToLoad = true;\r\n\r\n                console.error('%c' + this.id + '%c service: error\\nno static data source exists', window.consoleStyle.error, window.consoleStyle.reset);\r\n            }\r\n        },\r\n\r\n        setData (callback, thisId, url) {\r\n            var self = this;\r\n            self.xhr = new XMLHttpRequest();\r\n\r\n            if (!thisId) {\r\n                thisId = this.id;\r\n            }\r\n\r\n            let loadData = () => {\r\n                    self.xhr.open('GET', url, true);\r\n                    self.xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\r\n                    self.xhr.onload = () => {\r\n                        if (!self.serverless) {\r\n\t\t\t\t\t\t\tgtag('event', 'timing_complete', {\r\n\t\t\t\t\t\t\t\t'name' : url,\r\n\t\t\t\t\t\t\t\t'value' :  'lookup-' + thisId,\r\n\t\t\t\t\t\t\t\t'event_category' : 'Lookup Service - ' + this.title\r\n\t\t\t\t\t\t\t});\r\n                        }\r\n\r\n                        if (self.xhr.status === 200) {\r\n                            if (self.xhr.response.indexOf('<!DOCTYPE html') === 0) {\r\n                                // service error\r\n                                if (!this.serverless) {\r\n                                    console.warn('%c' + thisId + '%c service: error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t});\r\n                                }\r\n\r\n                                this.serverlessFallback(callback);\r\n                            } else {\r\n                                self.data = JSON.parse(self.xhr.response);\r\n\r\n                                if (self.data) {\r\n                                    this.setLookup({\r\n                                        field: thisId,\r\n                                        data: copyData(self.data)\r\n                                    });\r\n                                    self.defaultValues = [self.data.min_award_amount, self.data.max_award_amount];\r\n                                    self.rangeVal = [self.data.min_award_amount, self.data.max_award_amount];\r\n                                    self.getMinAmount();\r\n                                    self.getMaxAmount();\r\n\r\n                                    // if (callback) {\r\n                                    //     this.$nextTick(() => {\r\n                                    //         callback();\r\n                                    //     });\r\n                                    // }\r\n                                    self.updateSearchCriteria();\r\n                                    self.updateSearchCriteriaDefault();\r\n\r\n                                    self.loading = false;\r\n                                } else {\r\n                                    if (!self.serverless) {\r\n                                        console.warn('%c' + thisId + '%c service: returned data in an unexpected format\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t\t});\r\n                                    }\r\n\r\n                                    self.serverlessFallback(callback);\r\n                                }\r\n                            }\r\n                        } else {\r\n\r\n                            if (!self.serverless) {\r\n                                console.warn('%c' + thisId + '%c service: ' + self.xhr.status + ' error\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\t\t\r\n                            }\r\n\r\n                            self.serverlessFallback(callback);\r\n                        }\r\n\r\n                        self.isLoaded = true;\r\n                    };\r\n\r\n                    self.xhr.onerror = () => {\r\n                        if (!self.serverless) {\r\n                            console.warn('%c' + thisId + '%c service: returned data in an unexpected format\\nfalling back to static data source', window.consoleStyle.warn, window.consoleStyle.reset);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tgtag('event', 'exception', {\r\n\t\t\t\t\t\t\t\t\t\t'description': thisId + ' service error',\r\n\t\t\t\t\t\t\t\t\t\t'fatal': false\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\r\n                            self.serverlessFallback(callback);\r\n                        } else {\r\n                            self.loading = false;\r\n                            // this.error = this.lookupError;\r\n\r\n                            self.failedToLoad = true;\r\n\r\n                            self.setSearchFieldErrors({\r\n                                field: thisId,\r\n                                message: self.lookupError,\r\n                                lookupFailed: true,\r\n                                preventSearch: false\r\n                            });\r\n                        }\r\n                    };\r\n\r\n                    self.xhr.send();\r\n                };\r\n\r\n            self.loading = true;\r\n\r\n            // check for cached data before hitting service again\r\n            if (!self.dynamicLookup && self.$store.state.lookup[thisId].length !== 0) {\r\n                self.data = copyData(self.$store.state.lookup[thisId]);\r\n                self.filteredData = copyData(self.data);\r\n\r\n                if (callback) {\r\n                    self.$nextTick(() => {\r\n                        callback();\r\n                    });\r\n                }\r\n            } else {\r\n                if (window.serverless || this.serverless) {\r\n                    url = '/data/lookup-' + window.snakeToCamel(thisId) + '.json';\r\n                } else {\r\n                    // convert id to camelCase for lookup service\r\n                    url = '/services/Lookup/' + window.snakeToCamel(thisId);\r\n\r\n                    if (self.searchParams) {\r\n                        url += self.searchParams;\r\n                    }                   \r\n                }\r\n\r\n                self.xhr.abort();\r\n\r\n                loadData();\r\n            }\r\n\r\n\r\n        },\r\n\r\n        formatTooltip (val) {\r\n            if (window && window.filters) {\r\n                return window.filters.formatCurrency(val, true);\r\n            } else {\r\n                return val;\r\n            }\r\n        },\r\n        \r\n        getMinAmount () {\r\n            if (this.rangeVal[0] === 0) {\r\n                this.minAmount = '$0';\r\n            } else {\r\n                this.minAmount = window.filters.formatCurrency(this.rangeVal[0], false);\r\n            }\r\n            return this.minAmount;\r\n        },\r\n        \r\n        getMaxAmount () {\r\n            if (this.rangeVal[1] === 0) {\r\n                this.maxAmount = '$0';\r\n            } else {\r\n                this.maxAmount = window.filters.formatCurrency(this.rangeVal[1], false);\r\n            }\r\n            return this.maxAmount;\r\n        },\r\n        \r\n        initEvents () {\r\n            var container = document.getElementById('field-' + this.id + '-container'),\r\n                inputArr = container.querySelectorAll('input[type=text]'),\r\n                self = this;\r\n\r\n            for (let i = 0; i < inputArr.length; i++) {\r\n                inputArr[i].addEventListener('keydown', (event) => {\r\n                    self.handleInputEvent(event);\r\n                });\r\n\r\n                inputArr[i].addEventListener('paste', (event) => {\r\n                    self.handleBlurCopyEvent(event);\r\n\t\t\t\t\t\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Paste - ' + inputArr[i].id,\r\n\t\t\t\t\t\t'value': inputArr[i].id\r\n\t\t\t\t\t});\t\r\n                });\r\n\r\n                inputArr[i].addEventListener('cut', (event) => {\r\n                    self.handleInputEvent(event);\r\n\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Cut - ' + inputArr[i].id,\r\n\t\t\t\t\t\t'value': inputArr[i].id\r\n\t\t\t\t\t});\t\r\n\t\t\t\t\t\r\n                });\r\n\r\n                inputArr[i].addEventListener('copy', (event) => {\r\n                    self.handleInputEvent(event);\r\n\r\n\t\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t\t'event_label': 'Copy - ' + inputArr[i].id,\r\n\t\t\t\t\t\t'value': inputArr[i].id\r\n\t\t\t\t\t});\t\r\n                });\r\n\r\n                inputArr[i].addEventListener('blur', (event) => {\r\n                    this.handleBlurCopyEvent(event);\r\n                });\r\n            }\r\n            setTimeout(() => {\r\n                this.getMinAmount();\r\n                this.getMaxAmount();\r\n            }, 1);\r\n        },\r\n\r\n        parseNumber (num) {\r\n            return Number(num.toString().replace(/[$,]/g, ''));\r\n        },\r\n\r\n        reformatNumber (num) {\r\n            let number = this.parseNumber(num);\r\n\r\n            return '$' + addCommas(number);\r\n        },\r\n\r\n        handleBlurCopyEvent (event) {\r\n            let value = '',\r\n                isMin = false,\r\n                self = this;\r\n\r\n            if (event && event.type === 'paste') {\r\n                value = (event.clipboardData || window.clipboardData).getData(\"text\");\r\n                isMin = event.target.getAttribute('id').indexOf('max') === -1\r\n            } else {\r\n                value = event.target.value;\r\n                isMin = event.target.id.indexOf('max') === -1\r\n            }\r\n            \r\n            setTimeout(() => {\r\n                if (isNaN(self.parseNumber(value))) {\r\n                    if (isMin) {\r\n                        event.target.value = self.reformatNumber(self.rangeVal[0].toString());\r\n                    } else {\r\n                        event.target.value = self.reformatNumber(self.rangeVal[1].toString());\r\n                    }\r\n                } else {\r\n                    if (!isMin && self.parseNumber(self.rangeVal[0]) > self.parseNumber(self.rangeVal[1])) {\r\n                        event.target.value = self.reformatNumber(self.rangeVal[0]);\r\n                        self.rangeVal[1] = self.rangeVal[1];\r\n                    } else {\r\n                        self.validateInput(true, event);\r\n                        self.updateSearchCriteria(self.$store.state.searchCriteria[self.id]);\r\n                    }\r\n                }\r\n            }, 601);\r\n        },\r\n\r\n        handleInputEvent (event) {\r\n            // this.$refs.input.addEventListener('keydown, paste', (event) => {\r\n            // var key = String.fromCharCode(event.keyCode);\r\n\r\n            // if press enter, prevent adding line break\r\n            if (event.keyCode === 13) {\r\n                event.preventDefault();\r\n\r\n                //submit search\r\n                this.$parent.$parent.search();\r\n            }\r\n\r\n            //stop any entry other than allowed keys\r\n            if (this.allowedKeys.indexOf(event.keyCode) === -1) {\r\n                return false;\r\n            }\r\n\r\n\r\n\r\n            let isMin = event.target.id.indexOf('max') === -1;\r\n\r\n            //don't parse input for ignored keys\r\n            if (this.ignoreKeys.indexOf(event.keyCode) === -1) {\r\n                this.previousValue = event.target.value;\r\n\r\n                if (this.parseNumber(this.previousValue).toString().length >= this.maxNumberLength && event.keyCode !== this.keyBackspace && event.keyCode !== this.keyDelete && (event.target.selectionStart === event.target.selectionEnd)) {\r\n                    event.preventDefault();\r\n\r\n                    return false;\r\n                }\r\n\r\n                this.cursorPos = event.target.selectionStart;\r\n\r\n                // set timeout so that value is udpated before parsing string\r\n                clearTimeout(this.validationTimeout);\r\n\r\n                this.validationTimeout = setTimeout(() => {\r\n                    if (isMin) {\r\n                        let minVal = this.parseNumber(event.target.value);\r\n                        \r\n                        this.rangeVal[0] = !isNaN(minVal) ? minVal : '$0';\r\n                        this.newValue = this.getMinAmount();\r\n                    } else {\r\n                        let maxVal = this.parseNumber(event.target.value);\r\n                        \r\n                        this.rangeVal[1] = !isNaN(maxVal) ? maxVal : this.parseNumber(this.maxAmount);\r\n                        this.newValue = this.getMaxAmount();\r\n                    }\r\n\r\n                    if (this.cursorPos === 1 && event.target.value.indexOf('$') === -1) {\r\n                        event.target.value = this.previousValue;\r\n                        event.target.setSelectionRange(this.cursorPos, this.cursorPos);\r\n\r\n                        return false;\r\n                    }\r\n\r\n                    let previousValueLength = this.parseNumber(this.previousValue).toString().length,\r\n                        newValueLength = this.parseNumber(this.newValue).toString().length\r\n\r\n                    if (previousValueLength < newValueLength) {\r\n                        if (newValueLength > this.maxNumberLength) {\r\n                            this.newValue = this.previousValue;\r\n                        }\r\n                    }\r\n\r\n                    //check cursor position in input field\r\n                    this.cursorPos = event.target.selectionStart;\r\n\r\n                    //check number of commas in front of the cursor before parsing\r\n                    this.commaCount = (this.previousValue.substr(0, this.cursorPos).match(/,/g) || []).length;\r\n\r\n                    //check if deleted character was comma\r\n                    if (this.parseNumber(this.previousValue) === this.parseNumber(this.newValue)) {\r\n                        switch (event.keyCode) {\r\n                            case this.keyBackspace:\r\n                                //remove character in front of comma\r\n                                this.newValue = this.newValue.slice(0, this.cursorPos - 1) + this.newValue.slice(this.cursorPos, this.newValue.length);\r\n\r\n                                //move cursor to correct position\r\n                                this.cursorPos--;\r\n\r\n                                break;\r\n                            case this.keyDelete:\r\n                            // case 46:\r\n                                //remove character after of comma\r\n                                this.newValue = this.newValue.slice(0, this.cursorPos) + this.newValue.slice(this.cursorPos + 2, this.newValue.length);\r\n\r\n                                //move cursor to correct position\r\n                                // this.cursorPos++;\r\n\r\n                                break;\r\n                        }\r\n                        // newValue = event.target.val();\r\n                    }\r\n\r\n                    if (isMin) {\r\n                        if (this.parseNumber(this.newValue) > this.rangeVal[1]) {\r\n                            this.newValue = this.rangeVal[1].toString();\r\n                        }\r\n                    } else {\r\n                        if (this.parseNumber(this.newValue) < this.rangeVal[0]) {\r\n                            this.newValue = this.rangeVal[0].toString();\r\n                        } else if (this.parseNumber(this.newValue) > this.options.max) {\r\n                            this.newValue = this.options.max.toString();\r\n                        }\r\n                    }\r\n\r\n                    //update commas in number based on new number length\r\n                    this.newValue = this.reformatNumber(this.newValue);\r\n\r\n                    if (isMin) {\r\n                        this.minAmount = this.newValue;\r\n                    } else {\r\n                        this.maxAmount = this.newValue;\r\n                    }\r\n\r\n                    event.target.value = this.newValue;\r\n\r\n                    setTimeout(() => {\r\n                        this.cursorPosNew = this.cursorPos;\r\n                        //check if newly added or removed commas should affect the cursor position\r\n                        //so that user will type in the same place after the comma is added or removed\r\n                        if (this.commaCount < (this.newValue.substr(0, this.cursorPos).match(/,/g) || []).length) {\r\n                            //move cursor forward one character\r\n                            this.cursorPosNew++;\r\n\r\n                        } else if (this.commaCount > (this.newValue.substr(0, this.cursorPos).match(/,/g) || []).length) {\r\n                            //move cursor backward one character\r\n                            this.cursorPosNew--;\r\n                        }\r\n\r\n                        //fixes cursor jumping when typing a number directly before comma\r\n                        if (this.newValue.charAt(this.cursorPos) === ',') {\r\n                            this.cursorPosNew++;\r\n                        }\r\n\r\n                        this.cursorPos = this.cursorPosNew;\r\n\r\n                        //move cursor to new position\r\n                        event.target.setSelectionRange(this.cursorPos, this.cursorPos);\r\n                    }, 1);\r\n\r\n                    this.validateInput(true, event);\r\n\r\n                    this.updateSearchCriteria(this.$store.state.searchCriteria[this.id]);\r\n                }, 501);\r\n            }\r\n        },\r\n\r\n        validateInput (fromInputBox, event) {\r\n            var data,\r\n                inputObj = fromInputBox ? event.target : null,\r\n                validationExp = (this.matchingStr ? new RegExp(this.matchingStr, 'ig') : ''),\r\n                minAmnt = (this.minAmount) ? parseInt(this.minAmount.replace(validationExp,'')) : this.rangeVal[0],\r\n                maxAmnt = (this.maxAmount) ? parseInt(this.maxAmount.replace(validationExp,'')) : this.rangeVal[1],\r\n                tempRangeVal = [],\r\n                curVal = fromInputBox ? parseInt(inputObj.value.replace(validationExp,'')) : null;\r\n\r\n            if (fromInputBox) {\r\n                if (inputObj.id.indexOf('min') !== -1) {\r\n                    if (curVal > maxAmnt || curVal > this.max) {\r\n                        inputObj.value = this.getMinAmount();\r\n                        return false;\r\n                    } else {\r\n                        tempRangeVal.push(curVal);\r\n                        tempRangeVal.push(parseInt(this.maxAmount.replace(validationExp,'')));\r\n                        setTimeout(() => {\r\n                            inputObj.value = this.getMinAmount();\r\n                        }, 1);\r\n                    }\r\n                } else {\r\n                    if (curVal < minAmnt || curVal > this.max) {\r\n                        inputObj.value = this.getMinAmount();\r\n                        return false;\r\n                    } else {\r\n                        tempRangeVal.push(parseInt(this.minAmount.replace(validationExp,'')));\r\n                        tempRangeVal.push(curVal);\r\n                        setTimeout(() => {\r\n                            inputObj.value = this.getMaxAmount();\r\n                        }, 1);\r\n                    }\r\n                }\r\n\r\n                this.rangeVal = tempRangeVal;\r\n            } else {\r\n                setTimeout(() => {\r\n                    this.minAmount = this.getMinAmount();\r\n                    this.maxAmount = this.getMaxAmount();\r\n\r\n                    // console.log(this.rangeVal);\r\n                    this.updateSearchCriteria();\r\n                }, 101)\r\n            }\r\n        },\r\n\r\n        reset () {\r\n            this.rangeVal = copyData(this.$store.state.searchCriteriaDefault[this.id]);\r\n\r\n            // console.log(this.rangeVal);\r\n\r\n            this.minAmount = this.getMinAmount();\r\n            this.maxAmount = this.getMaxAmount();\r\n            // this.$store.state.searchCriteria[this.id] =  this.$store.state.searchCriteriaDefault[this.id];\r\n\r\n            this.updateSearchCriteria();\r\n            if (this.$store.state.editSearchCriteria[this.id]) {\r\n                this.$store.state.editSearchCriteria[this.id] = copyData(this.$store.state.searchCriteria[this.id])\r\n            }\r\n        },\r\n\r\n        clearText () {\r\n            this.rangeVal = [];\r\n            this.$store.state.searchCriteria[this.id] = '';\r\n        },\r\n\r\n        updateSearchCriteriaDefault () {\r\n            if (this.defaultValues) {\r\n                this.setSearchCriteriaDefault({\r\n                    field: this.id,\r\n                    data: copyData(this.defaultValues)\r\n                });\r\n            }\r\n        },\r\n\r\n        updateSearchCriteria (data) {\r\n            let min,\r\n                max;\r\n\r\n            // prevent min from excceding max\r\n            if (this.rangeVal[0] > this.defaultValues[1]) {\r\n                this.rangeVal[0] = this.defaultValues[1];\r\n                this.minAmount = this.getMinAmount();\r\n            }\r\n\r\n            // prevent max from excceding max\r\n            if (this.rangeVal[1] > this.defaultValues[1]) {\r\n                this.rangeVal[1] = this.defaultValues[1];\r\n                this.maxAmount = this.getMaxAmount();\r\n            }\r\n\r\n            if (this.rangeVal[0] === this.defaultValues[0] && this.rangeVal[1] === this.defaultValues[1]) {\r\n                min = null;\r\n                max = null;\r\n            } else {\r\n                min = this.rangeVal[0];\r\n                max = this.rangeVal[1];\r\n            }\r\n\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                data: {\r\n                    'min_amount': min,\r\n                    'max_amount': max,\r\n                }\r\n            });\r\n        }\r\n    }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n.slider {\r\n    width: 100% !important;\r\n}\r\n.field-title {\r\n    margin-bottom: 0.5em;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    overflow: visible;\r\n    color: #212529;\r\n}\r\n.inline {\r\n    display: inline-block;\r\n    width: calc(50% - 2px);\r\n    margin-bottom: 10px;\r\n    &:first-child {\r\n        margin-right: 4px;\r\n    }\r\n    input {\r\n        width: 100%;\r\n        overflow: hidden;\r\n\r\n        padding: 0.45rem 0.5rem;\r\n        width: 100%;\r\n        height: auto;\r\n        min-height: calc(2.875rem + 2px);\r\n        max-height: calc((2.875rem + 2px) * 3);\r\n        background-color: #ececec;\r\n        color: #495057;\r\n        border-radius: 5px;\r\n        border: none;\r\n        box-shadow: $field-shadow;\r\n        font-size: 15px;\r\n        transition: 0.3s;\r\n\r\n        &:focus {\r\n            border-color: #1998fd;\r\n            outline: 0;\r\n            box-shadow: 0 0 0 0.2rem rgba(1, 84, 150, 0.25);\r\n        }\r\n    }\r\n    .subtitle {\r\n        font-size: 14px;\r\n    }\r\n}\r\n\r\n.loader {\r\n    $size: 18px;\r\n\r\n    display: inline-block;\r\n    position: relative;\r\n    top: 3px;\r\n    left: 6px;\r\n\r\n    // negative margin prevents title shifting around\r\n    // when loader is added and removed\r\n    margin-top: -10px;\r\n    width: $size;\r\n    height: $size;\r\n}\r\n\r\n.loading-failed {\r\n    .field-title {\r\n        color: $grey-med;\r\n    }\r\n\r\n    .field-wrapper {\r\n        opacity: 0.25;\r\n    }\r\n}\r\n\r\n</style>","import { render } from \"./InputRange.vue?vue&type=template&id=612acf58&scoped=true\"\nimport script from \"./InputRange.vue?vue&type=script&lang=js\"\nexport * from \"./InputRange.vue?vue&type=script&lang=js\"\n\nimport \"./InputRange.vue?vue&type=style&index=0&id=612acf58&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-612acf58\"]])\n\nexport default __exports__","import { render } from \"./Field.vue?vue&type=template&id=7edf02c5&scoped=true\"\nimport script from \"./Field.vue?vue&type=script&lang=js\"\nexport * from \"./Field.vue?vue&type=script&lang=js\"\n\nimport \"./Field.vue?vue&type=style&index=0&id=7edf02c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7edf02c5\"]])\n\nexport default __exports__","<template>\r\n    <div class=\"field-error-message\">\r\n        {{message}}\r\n        <div class=\"error-code\" v-if=\"errorCode\">{{errorCode}}</div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n// import { mapActions, mapGetters } from 'vuex';\r\n\r\nexport default {\r\n    name: 'FieldError',\r\n    // components: {\r\n    // },\r\n    props: {\r\n        message: {\r\n            required: false\r\n        },\r\n        errorCode: {\r\n            required: false\r\n        }\r\n    },\r\n    // computed: {\r\n    // },\r\n    // data: function () {\r\n    //     return {\r\n    //     };\r\n    // },\r\n    // mounted () {\r\n\r\n    // },\r\n    // methods: {\r\n\r\n    // }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '@/scss/variables.scss';\r\n\r\n// .field-error-message {\r\n//     display: block;\r\n//     width: 100%;\r\n//     // padding: 0.25em 0;\r\n//     margin-top: 5px;\r\n//     color: #cc4545;\r\n//     font-weight: 500;\r\n//     // background-color: rgb(240, 214, 214);\r\n//     border-radius: 4px;\r\n// }\r\n\r\n</style>","import { render } from \"./FieldError.vue?vue&type=template&id=647e9300&scoped=true\"\nimport script from \"./FieldError.vue?vue&type=script&lang=js\"\nexport * from \"./FieldError.vue?vue&type=script&lang=js\"\n\nimport \"./FieldError.vue?vue&type=style&index=0&id=647e9300&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-647e9300\"]])\n\nexport default __exports__","<template>\r\n    <button class=\"field-tooltip-icon\">\r\n\t\t<i class=\"svg fas fa-question-circle\" :class=\"cssClass\"></i>\r\n        <div class=\"field-tooltip\" v-html=\"updatedText\">\r\n        </div>\r\n    </button>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\n\r\nexport default {\r\n    name: 'FieldTooltip',\r\n    // components: {\r\n    // },\r\n    props: {\r\n        text: {\r\n            required: false\r\n        },\r\n        urlKeys: {\r\n            required: false\r\n        },\r\n        cssClass: {\r\n            required: false\r\n        }\r\n    },\r\n    data: function () {\r\n        return {\r\n            reportUrl: null,\r\n            updatedText: this.text,\r\n            urlKeyList: this.urlKeys\r\n        };\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    methods: {\r\n        setReportUrl () {\r\n            this.reportUrl = this.externalURLs['report_base_url'];\r\n            if (this.reportUrl !== \"https://report.nih.gov\") {\r\n                this.updatedText = this.updatedText.replace(\"https://report.nih.gov\", this.reportUrl);\r\n            }\r\n        }\r\n    },\r\n    async created () {\r\n\r\n        var externalURLKeys = this.urlKeyList;\r\n        var URLList = [];\r\n        if (externalURLKeys && externalURLKeys.length > 0) {\r\n            for (let i = 0; i < externalURLKeys.length; i++) {\r\n                if (!this.externalURLs[externalURLKeys[i]]) {\r\n                    URLList[URLList.length] = externalURLKeys[i];\r\n                }\r\n            }\r\n\r\n            if (URLList.length > 0 ) {\r\n                await this.$store.dispatch('getAppSettingsPropertyByNameAction', URLList);\r\n            }\r\n            for (let i = 0; i < externalURLKeys.length; i++) {\r\n\r\n                var regex = new RegExp(externalURLKeys[i], \"g\");\r\n                this.updatedText = this.updatedText.replace(regex, this.externalURLs[externalURLKeys[i]]);\r\n            }\r\n        }\r\n    }\r\n    // computed: {\r\n    // },\r\n    // data: function () {\r\n    //     return {\r\n    //     };\r\n    // },\r\n    // mounted () {\r\n\r\n    // },\r\n    // methods: {\r\n\r\n    // }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@import '@/scss/variables.scss';\r\n\r\n.field-tooltip-icon {\r\n    // position: relative;\r\n    display: inline-block;\r\n    width: 20px;\r\n    height: 20px;\r\n    background: none;\r\n    border: none;\r\n    padding: 0;\r\n    top: -1px;\r\n    margin: 0 4px;\r\n\r\n    .svg {\r\n        z-index: 22;\r\n        color: $blue;\r\n    }\r\n\r\n    &:hover,\r\n    &:focus {\r\n        outline: none;\r\n        color: $blue-light;\r\n\r\n        .field-tooltip {\r\n            display: block;\r\n            pointer-events: all;\r\n            opacity: 1;\r\n            color: $gray-900;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: $grid-float-breakpoint-max) {\r\n        float: right;\r\n    }\r\n}\r\n\r\n.field-tooltip {\r\n    // display: none;\r\n    position: absolute;\r\n    top: 100%;\r\n    left: 25%;\r\n    // z-index: 26;\r\n    z-index: 110;\r\n    padding: 10px;\r\n    border-radius: 5px;\r\n    // z-index: 0;\r\n    width: 300px;\r\n    font-size: 14px;\r\n    text-align: left;\r\n    line-height: 1.5em;\r\n    background-color: $blue-lightest;\r\n    box-shadow: 0 2px 8px 0px rgba(0, 0, 0, 0.25);\r\n    pointer-events: none;\r\n    opacity: 0;\r\n    transition: 0.3s;\r\n    user-select: text;\r\n    cursor: default;\r\n\r\n    a {\r\n        word-break: break-all;\r\n        color: $blue;\r\n        text-decoration: none;\r\n\r\n        &.no-break {\r\n            word-break: break-word;\r\n        }\r\n\r\n        &:hover,\r\n        &:focus,\r\n        &:active {\r\n            color: $blue-light;\r\n        }\r\n    }\r\n\r\n    p {\r\n        margin-top: 0.5em;\r\n    }\r\n\r\n    @media screen and (max-width: $grid-float-breakpoint-max) {\r\n        // position: relative;\r\n        left: auto;\r\n        right: 0;\r\n    }\r\n}\r\n</style>","import { render } from \"./FieldTooltip.vue?vue&type=template&id=21ba7ba6\"\nimport script from \"./FieldTooltip.vue?vue&type=script&lang=js\"\nexport * from \"./FieldTooltip.vue?vue&type=script&lang=js\"\n\nimport \"./FieldTooltip.vue?vue&type=style&index=0&id=21ba7ba6&lang=scss\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n    <div class=\"smart-search\">\r\n        <label class=\"field-title\" for=\"smartSearch\" v-if=\"showTitle\">Quick Search</label>\r\n        <div class=\"input-group smartSearchContainer\">\r\n            <span class=\"position-relative\">\r\n                <i v-if=\"clonedSmartSearch && clonedSmartSearch != '' && !loading\" class=\"clearIcon fas fa-times\" @click=\"clonedSmartSearch = ''\"></i>\r\n                <input type=\"search\" class=\"form-control form-control-lg\"\r\n                    autofocus placeholder=\"Search RePORTER\" aria-label=\"Smart Search\" aria-describedby=\"button-addon2\" id=\"smartSearch\"\r\n                    v-model=\"clonedSmartSearch\" ref=\"input\" :disabled=\"loading\"\r\n                >\r\n            </span>\r\n            <div class=\"input-group-append\">\r\n                <button\r\n                    class=\"btn btn-primary btn-lg\"\r\n                    type=\"button\"\r\n                    id=\"button-addon2\"\r\n                    @click.prevent=\"search\"\r\n                    :disabled=\"loading\"\r\n                >\r\n                    Search\r\n                    <div class=\"loader\" v-if=\"loading\"></div>\r\n                </button>\r\n            </div>\r\n        </div>\r\n        <transition name=\"slide-fade\">\r\n            <field-error\r\n                v-if=\"error\"\r\n                :message=\"error\"\r\n                class=\"field-help-text\"\r\n            />\r\n        </transition>\r\n        <transition name=\"slide-fade\">\r\n            <div class=\"field-help-text\" v-if=\"showHelpText && !error\">\r\n                {{helpText}}<br>{{helpTextTypeExamples}}<br />\r\n                <button\r\n                    class=\"btn btn-primary btn-lg btn-orange\"\r\n                    type=\"button\"\r\n                    @click.prevent=\"loadAdvancedSearch\"\r\n                >\r\n                    Advanced Search\r\n                </button>\r\n\r\n            </div>\r\n        </transition>\r\n        <!-- <a href=\"/advanced-search\" v-if=\"!showTitle\" class=\"advanced-link\" @click.prevent=\"goToPage('/advanced-search')\">\r\n            Advanced Search\r\n        </a> -->\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport FieldError from '@/components/searchFields/FieldError.vue';\r\nimport bus from '@/shared/event-bus.js';\r\n\r\nexport default {\r\n    name: 'SmartSearch',\r\n    components: {\r\n        FieldError\r\n    },\r\n    props: {\r\n        showTitle: {\r\n            required: false\r\n        },\r\n        showHelpText: {\r\n            required: false\r\n        },\r\n        fromPage: {\r\n            required: true\r\n        }\r\n    },\r\n    computed: {\r\n        ...mapGetters([\r\n            'searchCriteria',\r\n            'searchType',\r\n            'externalURLs'\r\n        ])\r\n    },\r\n    data: function () {\r\n        return {\r\n            displayName: 'Smart Search',\r\n            id: 'smart_search_text',\r\n            helpText: 'Enter just about anything in the RePORTER Quick Search box above (text, PI names, project numbers, fiscal year, agency) or launch the Advanced Search to precisely configure searches using separate search fields.',\r\n            // helpText: 'Search NIH projects and funding information:',\r\n            helpTextTypeExamples: '',\r\n            error: null,\r\n            errorTimeout: null,\r\n            loading: false,\r\n            animationTime: 501,\r\n            clonedSmartSearch: '' //dont directly map this to state, use a clone...\r\n        };\r\n    },\r\n    watch: {\r\n        'searchCriteria.smart_search_text': function (n, o) {\r\n            if (this.searchCriteria && this.searchCriteria.smart_search_text) {\r\n                this.clonedSmartSearch = _.clone(this.searchCriteria.smart_search_text.replace(/​/ig,''));\r\n            }\r\n        },\r\n        '$store.state.searchResults': function (n, o) {\r\n            this.loading = false;\r\n        },\r\n        '$store.state.graphData': function (n, o) {\r\n            this.loading = false;\r\n        }\r\n    },\r\n    // smart_search_text\r\n    mounted () {\r\n        // initialize field in store so that it will be watched\r\n        if (!this.$store.state.searchCriteria[this.id]) {\r\n            this.$store.state.searchCriteria[this.id] = '';\r\n        }\r\n\r\n        this.clonedSmartSearch = _.clone(this.searchCriteria.smart_search_text.replace(/​/ig,''));\r\n\r\n        if (this.$store.state.editSearchCriteria[this.id]) { //copying back from editSearchCriteria, which appears to be stale...\r\n            if (typeof this.$store.state.editSearchCriteria[this.id] === 'object' && this.$store.state.editSearchCriteria[this.id].length > 0) {\r\n                this.$store.state.searchCriteria[this.id] = this.$store.state.editSearchCriteria[this.id].join(' ');\r\n            } else {\r\n                this.$store.state.searchCriteria[this.id] = this.$store.state.editSearchCriteria[this.id];\r\n            }\r\n            this.setSearchType('Smart');\r\n        }\r\n        // setup keyboard events on input field\r\n        this.initEvents();\r\n\r\n        if (this.$route.name === 'smartSearch' && this.$route.params && this.$route.params.queryString) {\r\n            // encodeURIComponent('this is a test');\r\n            let queryString = decodeURIComponent(this.$route.params.queryString);\r\n\r\n            this.$store.state.searchCriteria[this.id] = queryString;\r\n            this.search();\r\n        }\r\n\r\n        // if (!window.isMobile) {\r\n        //     document.querySelector(\"input[type='text']\").focus();\r\n        // }\r\n     },\r\n     methods: {\r\n        ...mapActions([\r\n            'setSearchCriteria',\r\n            'setSearchMeta',\r\n            'setSearchResults',\r\n            'setSearchType',\r\n            'setCurrentQueryDetailsAction',\r\n            'setSearchFacetCriteria',\r\n            'setEditSearchCriteria'\r\n        ]),\r\n\r\n        initEvents () {\r\n            this.$refs.input.addEventListener('keydown', this.handleInputEvent);\r\n            this.$refs.input.addEventListener('paste', (event) => {\r\n                this.handleInputEvent(event);\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\tgtag('event','Keyboard', {\r\n\t\t\t\t\t'event_category': 'Search Field',\r\n\t\t\t\t\t'event_label': 'Paste - ' + this.title,\r\n\t\t\t\t\t'value': 'Paste - ' + this.title\r\n\t\t\t\t});\t\r\n            });\r\n        },\r\n\r\n        handleInputEvent (event) {\r\n             var $this = this,\r\n                tempDomEle = document.createElement('div'),\r\n                tempChilds,\r\n                refinedText = '';\r\n\r\n            setTimeout(function () {\r\n                let thisData = $this.clonedSmartSearch ? $this.clonedSmartSearch : '';\r\n\r\n                tempDomEle.innerHTML = copyData(thisData.replace(\"onerror\", \"\"));\r\n\r\n                tempChilds = tempDomEle.childNodes;\r\n                for (let i = 0; i <tempChilds.length; i++) {\r\n                    if (tempChilds[i].nodeType !== 1) {\r\n                        refinedText += (tempChilds[i].textContent);\r\n                    }\r\n                }\r\n                $this.clonedSmartSearch = refinedText.replace(/​/ig,'');\r\n\r\n\r\n                // if press enter search!\r\n                if (event.keyCode === 13) {\r\n                    $this.search();\r\n                }\r\n\r\n                // set timeout so that value is udpated before parsing string\r\n                setTimeout(() => {\r\n                    // change tabs to spaces to prevent search errors,\r\n                    // espaeically when pasting project numbers\r\n\r\n                     if ($this.clonedSmartSearch) {\r\n                        $this.clonedSmartSearch = $this.clonedSmartSearch.replace(/\\t/g, ' ').replace(/​/ig,'');\r\n\r\n                        // $this.updateSearchCriteria($this.$store.state.searchCriteria[$this.id]);\r\n                    }\r\n                }, 1);\r\n            }, 1);\r\n        },\r\n\r\n        updateSearchCriteria (data) {\r\n            this.setSearchCriteria({\r\n                field: this.id,\r\n                data: copyData(data)\r\n            });\r\n        },\r\n\r\n        nukeSearchCriteria (criteriaToSave) {\r\n            // go nuclear on search criteria\r\n            this.$store.state.searchCriteria = {};\r\n\r\n            if (criteriaToSave) {\r\n                this.$store.state.searchCriteria[this.id] = criteriaToSave;\r\n            }\r\n        },\r\n\r\n        search () {\r\n            //remove the currentQueryDetails when doing a new search...\r\n            this.setCurrentQueryDetailsAction(null);\r\n\r\n            // var parsedCriteria = window.parseCriteria(this.searchCriteria),\r\n            //     criteria = window.stringifySearchCriteriaFields(parsedCriteria);\r\n\r\n            if(_.isEmpty(this.clonedSmartSearch))   {\r\n                // let message = 'Please enter something to search: ' + this.helpTextTypeExamples;\r\n                // this.setErrorMessage(message);\r\n                this.setErrorMessage('Please enter something to search', 5000);\r\n            }\r\n            else if(this.clonedSmartSearch.length < 3) {\r\n                this.setErrorMessage('Please enter at least 3 characters to search', 5000);\r\n            }\r\n            else if(this.clonedSmartSearch !== '') {\r\n                let criteria = {};\r\n\r\n                this.loading = true;\r\n\r\n                this.$store.state.searchCriteria[this.id] = this.clonedSmartSearch || '';\r\n\r\n                criteria[this.id] = this.$store.state.searchCriteria[this.id];\r\n\r\n                this.nukeSearchCriteria(criteria[this.id]);\r\n\r\n                this.setSearchFacetCriteria(null);\r\n                this.setEditSearchCriteria(null);\r\n\t\t\t\t\r\n\t\t\t\tgtag('event', 'Click', {\r\n\t\t\t\t\t'event_category': 'Home',\r\n\t\t\t\t\t'event_label': 'Quick Search - Submit',\r\n\t\t\t\t\t'value': 'Quick Search - Submit'\r\n\t\t\t\t});\t\t\r\n\r\n                this.setSearchType('Smart');\r\n                bus.$emit('clear:searchResults', {resetFacets: true});\r\n                setTimeout(() => {\r\n                    bus.$emit('update:searchResults', true, this.handleSearchResults);\r\n                },1);\r\n            }\r\n        },\r\n\r\n        setErrorMessage (message, timeout) {\r\n            // reset error message so that it animates to get the users\r\n                // attention if they keep clicking the search button\r\n            this.error = null;\r\n\r\n            setTimeout(() => {\r\n                this.error = message;\r\n            }, 1);\r\n\r\n            if (timeout) {\r\n                clearTimeout(this.errorTimeout);\r\n\r\n                this.errorTimeout = setTimeout(() => {\r\n                    this.error = null;\r\n                }, timeout);\r\n            }\r\n        },\r\n\r\n        handleSearchResults (data) {\r\n            this.loading = false;\r\n\r\n            if (data && data.meta && data.results) {\r\n                this.setSearchMeta(data.meta);\r\n                this.setSearchResults(data.results);\r\n\r\n                let pathName = this.$route.name === 'home' || this.$route.name === '' ? '' : \"/\" + this.$route.name;\r\n                this.$router.push('/search/' + data.meta.search_id + '/projects' + pathName);//?searchMode=' + this.searchType);\r\n                bus.$emit('update:searchResultsData', data);\r\n            } else {\r\n                var smartSearchTextData = copyData(this.$store.state.searchCriteria[this.id]);\r\n                this.$store.state.searchCriteria = copyData(this.$store.state.searchCriteriaDefault);\r\n                this.$store.state.searchCriteria[this.id] = smartSearchTextData;\r\n                this.setErrorMessage(this.externalURLs.reporter_project_search_error_message, 8000);\r\n            }\r\n        },\r\n\r\n        goToPage (url) {\r\n            if (event.ctrlKey || event.metaKey) {\r\n                let routeData = this.$router.resolve({path: url});\r\n                window.open(routeData.href, '_blank');\r\n            } else {\r\n                this.$router.push({\r\n                    path: url\r\n                });\r\n            }\r\n        },\r\n\r\n        loadAdvancedSearch () {\r\n            var sysAppMsgnodes = document.querySelectorAll('.collapse.sysAppMessage'),\r\n                sysAppMsgnodesHt = 0,\r\n                stepHeight = document.querySelector(\".v-step\") ? document.querySelector(\".v-step\").clientHeight : 0;\r\n\r\n            for (var i = 0; i < sysAppMsgnodes.length; i++) {\r\n                sysAppMsgnodesHt = sysAppMsgnodesHt + sysAppMsgnodes[i].clientHeight\r\n            }\r\n            setTimeout(() => {\r\n                window.scrollTo(0, document.querySelectorAll('.search-tiles-container')[0].parentElement.offsetTop +  document.querySelectorAll('.home-charts')[0].offsetHeight + sysAppMsgnodesHt);\r\n            }, this.animationTime);\r\n\r\n            bus.$emit('load:advance-search');\r\n            if (this.$route.path !== '/advanced-search') {\r\n                this.$router.push('/advanced-search');\r\n            }\r\n\r\n        }\r\n     }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import 'node_modules/bootstrap/scss/_functions';\r\n@import 'node_modules/bootstrap/scss/_variables';\r\n@import '@/scss/variables.scss';\r\n@import 'node_modules/bootstrap/scss/_mixins';\r\n\r\n.input-group {\r\n    margin-bottom: 0.25rem;\r\n}\r\n\r\n.form-control {\r\n    z-index: 1;\r\n}\r\n\r\n.input-group-append {\r\n    z-index: 2;\r\n}\r\n\r\n.smartSearchContainer {\r\n    span {\r\n        flex: 1 1 auto;\r\n    }\r\n    .clearIcon {\r\n        position: absolute;\r\n        right: 10px;\r\n        top: 15px;\r\n        z-index: 100;\r\n        color: grey;\r\n        font-size: small;\r\n        cursor: default;\r\n    }\r\n\r\n    /* clears the 'X' from Internet Explorer */\r\n    input[type=search]::-ms-clear {  display: none; width : 0; height: 0; }\r\n    input[type=search]::-ms-reveal {  display: none; width : 0; height: 0; }\r\n\r\n    /* clears the 'X' from Chrome */\r\n    input[type=\"search\"]::-webkit-search-decoration,\r\n    input[type=\"search\"]::-webkit-search-cancel-button,\r\n    input[type=\"search\"]::-webkit-search-results-button,\r\n    input[type=\"search\"]::-webkit-search-results-decoration { display: none; }\r\n}\r\n\r\n// .smart-search .btn-primary {\r\n//     @include button-variant($yellow, $yellow);\r\n\r\n//     color: #000;\r\n\r\n//     &:hover,\r\n//     &:focus {\r\n//         background-color: #ffc226;\r\n//         border-color: #ffc226;\r\n//     }\r\n// }\r\n.btn-primary {\r\n    &.disabled,\r\n    &:disabled{\r\n        opacity: 1;\r\n        background-color: $blue-dark;\r\n        border-color: $blue-dark;\r\n    }\r\n}\r\n\r\n.btn-lg {\r\n    padding-left: 1.75em;\r\n    padding-right: 1.75em;\r\n    @media screen and (max-width: $screen-sm) {\r\n        padding-left: 0.75em;\r\n        padding-right: 0.75em;\r\n    }\r\n}\r\n\r\n.btn-orange {\r\n    background-color: #c58100;\r\n    &:active, &:hover {\r\n        background-color: $yellow !important;\r\n    }\r\n}\r\n\r\n.field-title {\r\n    font-size: 28px;\r\n    &:after {\r\n        background-color: $yellow;\r\n    }\r\n}\r\n\r\n.field-help-text {\r\n    width: 100%;\r\n    // padding-right: 35px;\r\n}\r\n\r\n.field-error-message {\r\n    color: #fff;\r\n}\r\n\r\n/* Enter and leave animations can use different */\r\n/* durations and timing functions.              */\r\n.slide-fade-enter-active,\r\n.slide-fade-leave-active {\r\n  transition: 0.3s;\r\n}\r\n// .slide-fade-leave-active {\r\n//   transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);\r\n// }\r\n.slide-fade-enter, .slide-fade-leave-to\r\n/* .slide-fade-leave-active below version 2.1.8 */ {\r\n  transform: translateY(10px);\r\n  opacity: 0;\r\n}\r\n\r\n.loader {\r\n    top: 6px;\r\n    left: -34px;\r\n    height: 26px;\r\n    width: 26px;\r\n}\r\n\r\n.advanced-link {\r\n    position: absolute;\r\n    display: inline-block;\r\n    margin-top: 5px;\r\n    padding: 0.2em 0.5em;\r\n    font-size: 14px;\r\n    font-weight: 500;\r\n    line-height: 1.2em;\r\n    color: #fff;\r\n    background-color: rgba(255, 255, 255, 0.25);\r\n    border-radius: 1em;\r\n    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);\r\n    transition: 0.3s;\r\n\r\n    &:hover,\r\n    &:focus {\r\n        color: $blue;\r\n        background-color: #fff;\r\n        text-decoration: none;\r\n    }\r\n}\r\n\r\n</style>\r\n","import { render } from \"./SmartSearch.vue?vue&type=template&id=6ea8a8d9&scoped=true\"\nimport script from \"./SmartSearch.vue?vue&type=script&lang=js\"\nexport * from \"./SmartSearch.vue?vue&type=script&lang=js\"\n\nimport \"./SmartSearch.vue?vue&type=style&index=0&id=6ea8a8d9&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Jenkins\\\\workspace\\\\BT5\\\\rptrweb\\\\release-1.39.3\\\\client\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6ea8a8d9\"]])\n\nexport default __exports__","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../node_modules/vue-loader/dist/stylePostLoader.js!../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./App.vue?vue&type=style&index=0&id=f5605a28&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3cfb8c44\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Footer.vue?vue&type=style&index=0&id=5019359a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5835eae4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Navigation.vue?vue&type=style&index=0&id=fc85597c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1c3b1a7e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./qualtrics.vue?vue&type=style&index=0&id=97337c3a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"813f13ba\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ChartTile.vue?vue&type=style&index=0&id=1d9292d1&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"056325d9\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FeatureArea.vue?vue&type=style&index=0&id=7fb362c2&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"30b0c9dd\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MapTile.vue?vue&type=style&index=0&id=755c3ebc&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"243f3474\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Matchmaker.vue?vue&type=style&index=0&id=a036b158&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"35a84d0d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ProjectsSearch.vue?vue&type=style&index=0&id=a28160d6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7b9f0cbe\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./PublicationsSearch.vue?vue&type=style&index=0&id=632250e8&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7136fe86\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SearchTile.vue?vue&type=style&index=0&id=4a47be6c&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ac73dac2\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SearchTiles.vue?vue&type=style&index=0&id=cabecec4&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"01e3da9b\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ControlList.vue?vue&type=style&index=0&id=2d284598&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c16ddf3e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Field.vue?vue&type=style&index=0&id=7edf02c5&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3928ff2d\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FieldError.vue?vue&type=style&index=0&id=647e9300&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"95d19c32\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./FieldTooltip.vue?vue&type=style&index=0&id=21ba7ba6&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d609858c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./InputDate.vue?vue&type=style&index=0&id=be4eafe6&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"abc1db9a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./InputRange.vue?vue&type=style&index=0&id=612acf58&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7dc61132\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./InputText.vue?vue&type=style&index=0&id=2ca8dd39&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"44c82397\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MultiSelect.vue?vue&type=style&index=0&id=3a3b21ee&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"38f57e76\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./MultiSelectList.vue?vue&type=style&index=0&id=583a7fc7&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"34a913bd\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./SmartSearch.vue?vue&type=style&index=0&id=6ea8a8d9&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"30e62c8a\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./transitionCollapseHeight.vue?vue&type=style&index=0&id=b0f7829a&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3cc78d02\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../node_modules/vue-loader/dist/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Home.vue?vue&type=style&index=0&id=02ad7961&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10e031ef\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"594\":\"about\",\"702\":\"querybridge\",\"945\":\"dashboard\"}[chunkId] || chunkId) + \".\" + {\"93\":\"e339eff3\",\"317\":\"c3f71a04\",\"594\":\"ef3709b1\",\"702\":\"19827ba9\",\"945\":\"992beee5\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"reporter:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkreporter\"] = self[\"webpackChunkreporter\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(1404); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_URL_IMPORT_20___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","___CSS_LOADER_URL_REPLACEMENT_20___","push","module","id","name","compatConfig","MODE","components","Navigation","FooterNav","Qualtrics","data","showFooter","applicationMsg","computed","mapGetters","watch","val","this","created","requestedURLs","$store","dispatch","getMessage","methods","externalURLs","reporter_application_message","msg","formattedJSON","JSON","parse","stringify","eval","msgTypes","message","i","length","type","getClass","ind","totalCnt","notificationSystem","options","show","theme","icon","position","progressBarColor","buttons","instance","toast","alert","hide","transitionOut","onClosing","closedBy","console","info","onOpening","ballon","balloon","success","warning","error","close","timeout","overlay","question","toastOnce","zindex","onClosed","mounted","setTimeout","initWindowEvents","bus","$on","isLoadingSearchCriteria","getSearchCriteria","$off","flag","callback","$route","getProjectSearchResults","getProjectSearchGraphData","getProjectSearchMapData","updateURLSearchId","meta","search_id","$emit","setSearchMeta","updateProjectSearchResults","handleGraphData","params","clearSearchResults","beforeDestroy","mapActions","self","sections","document","getElementsByClassName","screen","orientation","addEventListener","event","window","scrollTo","onscroll","$event","indexOf","fixHeaders","activeTab","querySelector","currentSection","getAttribute","currentSectionHeader","bounding","getBoundingClientRect","top","left","bottom","innerHeight","documentElement","clientHeight","scrollLock","classList","remove","navBarTab","loadSectionData","pageYOffset","offsetTop","offsetHeight","add","calculateViewPortSize","removeAttribute","containerParent","curTableObj","tables","closest","sizeTableHeader","getPublicationSearchResults","changedCriteria","publicationResultsTable","offset","countLoader","searchParam","key","value","searchCriteriaTemp","criteria","facet_filters","publicationsFacetCriteria","limit","sort_field","sortField","sort_order","searchCriteria","_","filter","split","publications_search","fetchPublicationSearchResults","updatePublicationsSearchResults","isLoading","loadingMoreData","$refs","dataTable","status","setPublicationResults","serviceError","reporter_project_search_error_message","sortOrder","updatePublicationResults","initTableData","results","getMatchmakerSearchResults","newSearch","matchMakerListTable","matchmakerFacetCriteria","title","text","include_active_projects","facets","facetCriteria","is_active_projects","getMatchmakerResults","updateMatchmakerSearchResults","getMatchmakerPOResults","POListTable","state","matchMakerResults","properties","CacheId","updateMatchmakerPOResults","setMatchmakerResults","updateMatchmakerResults","selectedSortColumn","setSortDetails","captchaValidated","setMatchmakerPOResults","isCaptchaRequested","getNewSearchCriteria","parsedCriteria","copyData","searchType","searchCriteriaDefault","parseCriteria","isSubmitForm","stringifySearchCriteriaFields","projectListTable","searchFacetCriteria","is_shared","query","Charts","loadingDrillDownData","loadSlide","chartProjectsSearchCriteria","chartProjectsFilterBy","getSearchResults","searchId","page","path","url","$parent","$router","loading","sorted_by_relevance","table","setSearchResults","updateSearchResults","chartType","circlesTable","$nextTick","setProjectSortDetails","facetToQueryStr","selectedSortField","getFieldNameFromSettings","generateQueryString","gtag","setMatchmakerSortDetails","setProjectPageNumber","requestedPage","pageName","getProjectSearchCriteria","updateProjectSearchCriteria","multiSelectData","fieldObj","projNumApplIds","projNumFields","searchCriteriaMissing","project_start_date","setEditSearchResultsFlag","setEditSearchCriteria","field","subField","setSearchCriteria","setSearchType","searchFieldSpecs","additionalControl","smart_search_text","sortCol","fieldName","sortFieldName","getSearchResultsFacets","selectedPerson","role","profile_id","getSearchFacets","getMatchmakerSearchFacets","getPublicationsFacets","Cache_Id","publicationResults","After_Key","AfterKey","summarized_by","graphSettings","summaryBy","plotted_by","plotBy","limit_count","loadingGraphData","getSearchGraphData","footerDataObj","totalFunding","subprojectCount","projectCount","totalSubProjectFunding","setGraphData","project_funding_amt","project_count","sub_project_funding_amt","subproject_count","footerNote","footerData","initChart","getProjectsForCharts","drillDownTable","getProjectSearchCirclesData","loadingCirclesData","getSearchCirclesData","handleCirclesData","setCirclesData","clusters","initGraph","getProjectsForCircles","appl_ids","selectedApplIds","fiscal_years","is_smart_search","getAllFiscalYears","getFYListFromCriteria","is_agency_admin","matchmaker_field","showCriteria","getPublicationResults","publicationTable","CoreProjSortField","CoreProjSortOrder","getPublicationsResults","updatePublicationsResults","logPublicationsPage","setPublicationSortDetails","tableName","getPatents","patentTable","tempSearchCriteria","patentResults","getPatentResults","updatePatents","setPatentResults","updatePatentResults","getClinicalStudies","clinicalStudyTable","clinicalStudyResults","getClinicalStudyResults","updateClinicalResults","setClinicalStudyResults","updateClinicalStudyResults","getNewsData","newsType","curTableName","searchid","newsResults","last_item","lastItem","getNewsResultsByType","getNewsCount","newsCount","getNewsCountByType","getProjectsFromChart","filterBy","chartTable","getProjectInfo","project_id","requestedSection","detailsHistoryTable","detailsSubProjectsTable","detailsSimilarProjectsTable","appl_id","getProjectBasicInfo","getExportFields","updateExportFields","exportModule","loadExportFields","setExportFields","getApplId","coreProjNum","findApplId","getExportFile","exportSectionName","analyticsLabel","getExportFileName","getExportStatus","exportId","currentExportTab","getProjectsForPersonSummary","pi_profile_ids","pi_id","po_names","po_name","handlePIProjects","setPersonSummaryProjects","getProjectsForReportSmartSearch","queryString","resetFacets","setSearchFacetCriteria","setSearchFacetData","setPublicationsFacetData","setPublicationsFacetCriteria","setMatchmakerFacetData","setMatchmakerFacetCriteria","setCoreProjCountPub","resetNewsResults","parseFacetFiltersFromURL","valArr","filtersArr","decodeURI","updateSearchResultsFacets","saveSharedSearchID","shared_as","controllerArr","controller","location","href","saveSharedURL","fyList","fyLookUp","lookup","join","criteriaTemp","map","fy","Array","buildURLWithParams","replace","ieVer","isAtLeastIE11","isIE","isMobile","xhrList","getInternetExplorerVersion","ua","re","rv","navigator","appName","userAgent","RegExp","exec","parseFloat","$1","toCSV","csv","filename","csvData","textEncoder","csvContentEncoded","blob","IEwindow","TextEncoder","encode","Blob","createObjectURL","open","write","execCommand","encodeURIComponent","msSaveOrOpenBlob","msSaveBlob","downloadLink","createElement","setAttribute","innerText","appendChild","getElementById","click","searchFieldCache","serverless","port","default","resultsLimit","addCommas","toString","consoleStyle","match","snakeToCamel","s","m","toUpperCase","pxToNumber","prop","Number","substring","getScrollbarWidth","width1","width2","inner","outer","style","width","height","overflow","visibility","body","offsetWidth","parentNode","removeChild","getNthIndex","str","pat","n","L","scrollbarWidth","searchResultsXHR","serializedParams","requestType","abort","XMLHttpRequest","setRequestHeader","onload","response","onerror","send","publicationSearchResultsXHR","publicationCoreProjCountXHR","fetchPublicationCoreProjCount","NonNIHPublCountXHR","fetchNonNIHPublCount","matchmakerSearchResultsXHR","matchmakerPOResultsXHR","patentsSearchResultsXHR","pubSearchResultsXHR","patentsCountXHR","fetchPatentsCount","clinicalStudyResultsXHR","newsDataXHR","newsCountXHR","callback2","xhr","responseText","hitListType","timeStamp","Date","getTime","parseFacetsFromURL","getParams","vars","api","routeName","exclude_subprojects","getJSON","tempCriteria","newCriteria","isParentSelected","parent_value","some","item","isArray","toLowerCase","isEditCriteria","undefined","depObj","srcFld","stringifiedCriteria","dependentField","defaultValues","sort","dbValues","escape","captchaXHR","getCaptchaData","getHighestValueInData","max","values","isNaN","Math","container","isNonTable","tableContainer","eTop","winW","innerWidth","fixedHeaderAndLeftSidebar","querySelectorAll","resultsArea","getElementsByTagName","cloneNode","chartArea","mapArea","fixedHeaderAboveTable","tHeader","scrollTable","eTableTop","offsetParent","marginTop","newTableHeaders","orgTableHeaders","fixedHeader","newWidth","newHeight","clientWidth","j","createCookie","days","hostname","expires","protocol","secure","date","setTime","toGMTString","cookie","readCookie","c","nameEQ","ca","charAt","decodeURIComponent","urlOverride","getMapData","mapData","getTextWidth","font","metrics","canvas","context","getContext","textWidth","measureText","infoType","exportDataToCSV","columns","tempArray","tmpColDelim","String","fromCharCode","tmpRowDelim","colDelim","rowDelim","exportData","monthNames","dt","urlData","getDate","getMonth","getFullYear","getHours","getMinutes","getSeconds","col","isVisible","exportOnly","displayName","buildURLString","row","tempURL","refURL","urlFields","parseExportData","dataRow","column","filters","formatCurrency","round","refURLField","fieldText","getPreviousMonday","week","prevSaturday","day","getDay","prevWeekCnt","setDate","prevSatMon","prevSatDt","getVueComp","dom","comp","initGoogleMap","el","rect","scrollLeft","pageXOffset","scrollTop","getAbsoluteHeight","styles","getComputedStyle","margin","ceil","stateCodeToName","stateNameToCode","getElementY","element","doScrolling","duration","start","startingY","elementY","targetY","scrollHeight","diff","easing","t","requestAnimationFrame","step","timestamp","time","percent","min","selector","matchesFn","parent","fn","parentElement","class","_createElementBlock","_hoisted_1","_createElementVNode","rel","_ctx","_Fragment","_createVNode","_component_b_collapse","visible","_renderList","_hoisted_2","applicationMsgInfo","_normalizeClass","$options","innerHTML","_hoisted_4","applicationMsgWarning","_hoisted_6","applicationMsgError","_hoisted_8","_hoisted_9","_component_navigation","_hoisted_10","_component_router_view","_hoisted_11","_createBlock","_component_footer_nav","exporterPage","_component_Qualtrics","__exports__","render","_component_FeatureArea","_hoisted_3","_hoisted_5","_component_mapTile","subTitle","_component_chartTile","_component_SearchTiles","_component_SmartSearch","showTitle","showHelpText","fromPage","_hoisted_7","onClick","_cache","_withModifiers","startTour","_hoisted_12","feedbackURL","openFeedback","_hoisted_13","_component_vue3_tutorial","tutorial","tutorialSteps","tutorialIsRunning","SmartSearch","vue3Tutorial","myOptions","highlight","arrowAnimation","texts","finishButton","previousButton","nextButton","buttonStop","steps","animationTime","allStepList","target","content","before","Promise","resolve","reject","$tours","placement","breakpoints","lt","lg","advancedSteps","header","myCallbacks","onPreviousStep","myPrevStepCallback","onNextStep","myNextStepCallback","onFinish","myFinishCallback","onSkip","async","stepCallback","forwardDirection","homeTour","nextPrevStep","currentStep","currentTar","tarId","sysAppMsgnodes","sysAppMsgnodesHt","sectionHeight","simpleSizing","ref","_component_SearchTile","index","active","activeTile","tileMode","description","titleId","tabindex","$props","clickTile","onKeyup","_withKeys","tileClass","_resolveDynamicComponent","tileComponent","isActive","_normalizeStyle","maximizedContentStyle","minimizedContentStyle","refLink","_toDisplayString","showAllFields","_component_field","refpage","reset","cancel","search","disabled","_component_field_error","serviceErrorMessage","errorCode","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_57","_hoisted_60","_hoisted_61","args","toggleAllFields","_hoisted_58","_hoisted_59","mixins","globalMixins","Field","FieldError","QueryDetailsForm","props","required","sharedSpec","setSearchMode","editSearchResults","searchFieldErrors","setSearchFieldErrors","Object","keys","editSearchCriteria","constructor","clear","toggleFullForm","sessionStorage","setItem","showHideFields","fieldContainers","$el","transition","openHeight","formHasErrors","preventSearch","setCurrentQueryDetailsAction","searchResults","initEvents","inputControl","handleInputEvent","tempChilds","$this","tempDomEle","refinedText","childNodes","nodeType","textContent","keyCode","thisID","handleSearchResults","publicationsText","input","focus","serviceErrorMessageText","serviceErrorMessageDetails","oldVal","HttpStatusCode","Ok","NoContent","localStorage","matchmaker_text","handlePOResults","matchmakerText","AdvancedProjectsSearch","PublicationsSearch","Matchmaker","smallTileContentWidth","largeTileContentWidth","minHeight","smallTilePercent","largeTilePercent","padding","layout","oppositeX","newLastActiveY","expanded","defaultDuration","sizeAndPosition","setSize","setPosition","growTile","shrinkTile","tileAboveIndex","layoutGrid","tileAbove","tileAboveHeight","getMinimizedContentHeight","animate","curPath","then","lastActiveTile","inactiveTile","getInactiveTileIndex","moveTileAnimated","shrinkTileAnimated","titleHeight","fieldTitle","contentHeight","tileMinimizedContent","tile","minimizedContentHeight","updateSize","tileContent","getOtherTiles","tileIndices","thisTileIndex","splice","getFormHeight","getFieldTitleHeight","fieldTitleMarginProp","marginBottom","fieldTitleMargin","fieldTitleFullHeight","getTilePadding","tileStyle","paddingTop","paddingBottom","tileContentHeight","$e1","otherTiles","heightOfOtherTiles","updateHeight","clearSize","x","y","moveTile","SearchTile","breakPoint","minHeightDefault","totalTiles","resize","destroyed","removeEventListener","searchTiles","parseInt","heightWhenTilesAreStacking","tiles","enterOnTile","srcElement","init","baseMinHeight","eChart","resizeTimeout","geoData","heatMapMinValue","heatMapMaxValue","map_filters","states","countries","cong_dists","home_page_map","eChartsInit","processClick","stateCode","ctrlKey","metaKey","routeData","homeMapSearchId","firstLoadFacets","log","echarts","eChartsDOM","on","resizeChart","setGeoDataAndGetChartData","inti","homePageMapData","eChartsBuild","getChartData","parseData","setHomeMapSearchId","territoriesToExclude","projects_funding_amount","code","projects","projects_count","setHomePageMapData","setOption","animation","er","clearTimeout","Alaska","Hawaii","mapSettings","stateNameColor","stateBorderColor","stateBackgroundColor","stateBackgroundColorOnHover","stateBorderColorOnHover","stateBorderWidth","stateBorderWidthOnHover","option","tooltip","confine","trigger","showDelay","transitionDuration","formatter","tooltipContent","visualMap","inRange","color","toolbox","series","roam","zoom","label","itemStyle","areaColor","borderColor","borderWidth","emphasis","tooltipHoverIC","searchParams","org_names","agencies","principal_investigators","home_page_chart","homeChartSearchId","homePageChartData","setHomeChartSearchId","error_message","xAxis","counts","a","b","group_by","setHomePageChartData","grid","right","axisPointer","shadowStyle","z","marker","nameLocation","axisLabel","rotate","yAxis","nameGap","nameTextStyle","fontWeight","fontFamily","FeatureArea","SearchTiles","MapTile","ChartTile","chartSearchId","mapSearchId","setFullscreen","setSelectedPerson","router","createRouter","history","createWebHistory","base","process","routes","component","Home","alias","tabName","redirect","parseQuery","qs","stringifyQuery","result","API","getPropertyByName","propNameList","axios","post","Error","appSettingsService","payload","concat","searchFields","searchFld","parseFilters","createStore","searchMeta","matchmakerResults","matchmakerPOResults","PressRelease","ResearchMatters","AIRS","ARRA","AIMRS","fullscreen","searchFacetData","publicationsFacetData","coreProjCountPub","matchmakerFacetData","searchMode","graphData","circlesData","exportCriteria","projectDetails","basicInfo","otherDetails","funding","spendingCategories","publications","patents","subProjects","projectOutcomes","clinicalStudies","similarProjects","exportFields","isExportingFile","defaultFieldsToExport","piSummaryProjects","selectedRowId","noDataErrorMsg","invalidProjectIdMsg","currentQueryDetails","loggedInUser","savedSearches","userPreferences","getters","searchResultsTableMeta","mutations","setSearchCriteriaDefault","lookupFailed","setNewsResults","updateNewsResults","updateMetaNewsResults","setNewsCount","total","totalCoreProjects","setSearchResultsTableMeta","setLookup","addPropertyToAppSettings","merge","updateSearchFacetCriteria","updatePublicationsFacets","updateMatchmakerFacetCriteria","updatePublicationsFacetCriteria","updateGraphData","setGraphSettings","setExportCriteria","setProjectDetails","resetProjectDetails","updateProjectDetails","setExportingFileFlag","setCurrentExportTab","setDefaultfieldsToExport","setSelectedRowId","setCurrentQueryDetails","setLoggedInUser","setSavedSearches","setUserPreferences","updateUserPreferences","prefIndex","findIndex","up","preference_name","preference_value","actions","commit","getAppSettingsAction","_appSettings","getAppSettings","getAppSettingsPropertyByNameAction","getFirstPIName","nameList","$","trim","removeFirstPIName","uniqueNames","each","inArray","shift","removeFirstNameWithEmail","email","splitArrayWithParam","array","param","isNumeric","formatDate","format","month","year","formatDateTime","hours","minutes","period","capitalizeFirst","slice","pluralize","addBreakAfterCommas","breakAtUnderscore","breakEmail","toFixed","formatLargeNo","formatLargeNumber","roundKey","T","B","M","K","formatLargeCurrency","formatPercentage","titleCase","toTitleCase","globalFormat","addSymbolInHeader","colHeader","chartAxisFormat","globalChartTooltipFormat","highlightTerms","terms","termsArray","termIndex","lowerCaseValue","searchMask","regEx","replaceMask","truncate","stop","clamp","bootstrap","measurementId","script","src","head","EventBus","app","createApp","store","h","App","use","lodash","BootstrapVueNext","mount","$filters","latestSat","control","placeholder","urlKeys","helpText","tooltipText","buildHelpText","highestValue","change","selEle","currYear","allYearObj","yr","isAllYearsSel","otherSelected","ui","dropdownWidth","controlType","fields","maxSelection","idLookup","idFreeText","allowFreeText","dynamicLookup","matchingStr","alternetFields","countryId","Country","firstCountry","conDistId","CongressionalDistrict","stateObj","districtObj","tempDistrictList","controlContainer","contains","blur","stateId","State","titleHidden","maxLength","groupFields","collapseAll","rows","showCount","checkXSS","hideFieldCount","sharedSpecs","eCharts","legend","align","itemWidth","itemHeight","containLabel","symbol","symbolSize","normal","lineStyle","summaryPresets","reactive","xs","getPropertyValue","sm","md","xl","onResize","gt","emitter","$once","refreshSearchCriteriaAndRoute","publications_text","fetchSearchCriteria","goToSearchResults","catch","MYREPORTER_API","getCurrentUser","get","parseList","user","userId","find","getSavedSearches","created_date","updated","last_updated_date","last_update_date","search_type","tmp","alerts","forEach","v","k","orderBy","getRecentSearches","searches","deleteSearch","updateAlert","alertType","isChecked","upperFirst","patch","logout","createSearch","queryDetails","user_query_info","formatAlertsForSave","notes","isRequestRejected","Title","first","updateSearch","list","isEmpty","includes","res","getUserPreferences","savePreferences","paramName","paramVal","userService","_component_router_link","to","lastRefreshed","reportUrl","dataAccessPolicyURL","privacyURL","diclaimerURL","foiaURL","vulnerabilityDisclosure","oerURL","nihURL","hhsURL","usaGovURL","grantsURL","Boolean","NIHURL","_imports_0","alt","_imports_1","navbarSupportedContent","apiURL","showUserMenu","_component_UserMenu","currentUser","_component_BDropdown","variant","size","_withCtx","_component_BDropdownItem","recentSearches","_component_BDropdownHeader","bridgeQuery","_component_BDropdownDivider","hover","_component_BDropdownGroup","signIn","urls","logingov","nih","queryDataMixin","o","getUserWithRecentSearches","constructLoginUrl","destination","suffix","origin","fullPath","assign","redirectPath","pathname","isFullscreen","maxWidth","UserMenu","headerRow","computedStyle","headerContainer","paddingLeft","paddingRight","for","_component_b_form_group","_component_b_form_input","$data","qTitle","maxlength","limits","qdName","onChange","updateData","qAlerts","alertTooltip","_component_b_form_textarea","qNotes","qdNotes","remainingChars","alertOptions","qId","Stype","queryData","toRaw","dependingField","select","deselect","failedToLoad","_component_field_tooltip","filterSelected","deselectAll","showDropdown","hasFocus","focusInput","dependentFieldHasSelectedData","abbreviation","display","clearTag","autocomplete","searchText","dependentFieldHasData","_component_multi_select_list","filterList","topParent","selectDeselectAll","onKeydown","handleKeyboardEvents","_component_control_list","helpTextDisplay","filterData","nestingIndex","isSelected","getToolTipText","children_values","expandCollapse","selectDeselect","_component_transition_collapse_height","getChildren","_Transition","onBeforeEnter","beforeEnter","onEnter","enter","onAfterEnter","afterEnter","onBeforeLeave","beforeLeave","onLeave","leave","onAfterLeave","afterLeave","_renderSlot","$slots","MultiSelectList","transitionCollapseHeight","expandIconSize","nestingIndent","children","Description","setIndent","itemChildren","i2","className","newData","initFocusEvents","button","childElementCount","preventDefault","stopPropagation","allowedCharacters","test","setFocus","removeFocus","obj","FieldTooltip","delimiter","dependentFieldId","matchExp","noAllowedYearFound","defaultVal","updateSearchCriteria","initFieldValues","optionsLength","opt","ControlList","filteredData","searchTextPrevious","selectedStatePrevious","searchTimeout","dropdownScrollTimeout","focusedEl","dropdownFocused","openCloseTimer","activeListItemIndex","lookupError","freeTextId","updateDependingField","build","setData","buttonRemoveAll","marginRight","thisId","loadData","warn","serverlessFallback","setSelections","selections","selected","pollForDependentField","recursionCount","dependentFieldLookupData","dynamicMultiSelectObj","dropdown","itemExists","itemToBeAdded","editSearchCriteriaRefined","updateSearchCriteriaDefault","dropdownScroll","focusedId","selectAllButton","focusSelectAllButton","closeDropdown","encodeURI","updateFreeText","dynamicDataLoaded","openDropdown","keepFocus","addMissingParents","missingParent","getItemByValue","maxHeight","inputGroupWrapper","tagsHeight","inputGroup","blurInput","focusListItem","whichItem","listButton","toggleButton","listItems","multiselect","isNan","selectItem","shiftKey","selectDisplayItems","childrenToHide","childrenData","dataSource","defaultItems","deselectItem","deselectParents","siblingValues","siblingsSelectedCount","selectChildren","child","deselectChildren","deselectAllButton","selectAll","depFieldId","isEdit","selectedState","allStates","sCnt","currentState","st","dependingDataLoaded","maxSelectionExceeded","isCommaSeparated","checkCommaSeparators","checkSemicolonSeparators","clearAllText","inputHighlightText","checkNumberAndLetters","inputTypes","submitTypes","orgInputText","validationTimer","urlKeyList","unescape","externalURLKeys","regex","validateInput","updateTextHighlight","inputHighlight","defaultSelection","removeLineBreaks","removeDuplicates","inputArr","uniqueArr","alternate_delimiter","pos","isKeyPress","curElement","disableStatus","semicolonMatches","indexOfTermExceedingLength","subControls","validationExp","parentRow","getParentRow","nextSibling","splitNumberExists","dataArray","submitData","isNumber","term","calendarType","_component_date_picker","range","inputDateValue","lang","separator","isControlOpen","onPick","validateDate","onOpen","setMaxMinDate","notBeforeDate","notAfterDate","confirm","appendToBody","onClear","clearText","onClose","removeHeader","inputDateValueSingle","setCalendarType","DatePicker","months","pickers","dateRange","shortcuts","showSelectionOptions","inputValDefault","initDateField","inputEl","setLabelId","itemLabel","inputTextFields","insertBefore","e1","openCalendar","MouseEvent","view","bubbles","cancelable","dispatchEvent","curId","datePickerObjContainer","setHeader","curDatePicker","startDate","endDate","to_date","from_date","d","repositionControl","minAmount","maxAmount","isLoaded","_component_vue_slider","_mergeProps","rangeVal","lazy","included","hideLabel","tooltipFormatter","tooltipPlacement","railStyle","backgroundColor","processStyle","tooltipStyle","VueSlider","max_award_amount","getDataRange","dataRange","maxue","roundBy","maxRounded","validationTimeout","formatTooltip","ignoreKeys","allowedKeys","keyBackspace","keyDelete","previousValue","commaCount","cursorPos","cursorPosNew","newValue","dotSize","contained","direction","dataLabel","dataValue","interval","clickable","adsorb","useKeyboard","keydownHook","dragOnClick","enableCross","fixed","minRange","maxRange","order","marks","dotOptions","dotAttrs","dotStyle","stepStyle","stepActiveStyle","labelStyle","labelActiveStyle","maxNumberLength","min_amount","max_amount","min_award_amount","getMinAmount","getMaxAmount","handleBlurCopyEvent","parseNumber","num","reformatNumber","number","isMin","clipboardData","getData","selectionStart","selectionEnd","minVal","maxVal","setSelectionRange","previousValueLength","newValueLength","substr","fromInputBox","inputObj","minAmnt","maxAmnt","tempRangeVal","curVal","MultiSelect","InputText","InputDate","InputRange","cssClass","updatedText","setReportUrl","URLList","clonedSmartSearch","autofocus","helpTextTypeExamples","loadAdvancedSearch","errorTimeout","clone","thisData","nukeSearchCriteria","criteriaToSave","setErrorMessage","pathName","smartSearchTextData","goToPage","__esModule","locals","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","call","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","r","getter","definition","defineProperty","enumerable","f","e","chunkId","all","reduce","promises","u","g","globalThis","Function","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","charset","nc","onScriptComplete","prev","doneFns","bind","Symbol","toStringTag","nmd","paths","p","baseURI","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}