{"version":3,"sources":["webpack:///./node_modules/flatpickr/dist/l10n lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./assets/javascripts/modules/utils/DependencyInjector.js","webpack:///./assets/javascripts/modules/utils/FocusableElementUtils.js","webpack:///./assets/javascripts/modules/abstracts/Component.js","webpack:///./assets/javascripts/modules/utils/YextFaqUtils.js","webpack:///./assets/javascripts/modules/components/FaqComponent.js","webpack:///./node_modules/bootstrap/js/dist lazy ^\\.\\/.*\\.js$ namespace object"],"names":["map","./ar.js","./at.js","./be.js","./bg.js","./bn.js","./cat.js","./cs.js","./cy.js","./da.js","./de.js","./default.js","./eo.js","./es.js","./et.js","./fa.js","./fi.js","./fr.js","./gr.js","./he.js","./hi.js","./hr.js","./hu.js","./id.js","./index.js","./it.js","./ja.js","./km.js","./ko.js","./kz.js","./lt.js","./lv.js","./mk.js","./mn.js","./ms.js","./my.js","./nl.js","./no.js","./pa.js","./pl.js","./pt.js","./ro.js","./ru.js","./si.js","./sk.js","./sl.js","./sq.js","./sr.js","./sv.js","./th.js","./tr.js","./uk.js","./vn.js","./zh.js","webpackAsyncContext","req","ids","__webpack_require__","e","then","id","t","Promise","resolve","Error","code","keys","Object","module","exports","loadedDependency","existingDependency","name","saveDependency","lib","reject","DependencyInjector","logStr","arguments","length","undefined","myName","this","constructor","console","debug","componentName","thenPromise","catchPromise","log","catch","bind","res","err","error","all","locale","widgetName","url","script","document","createElement","type","src","addEventListener","body","appendChild","stack","getFirstFocusable","parent","querySelector","Component","htmlEl","Component_classCallCheck","moduleLoader","$component","$customEvents","CustomEvents","$matchMedia","match","$on","on","$emit","emit","$off","off","$one","one","$getFirstFocusable","warn","utils_YextFaqUtils","YextFaqUtils","_classCallCheck","readParams","params","apikey","SELECTORS","apiKey","getAttribute","experienceKey","verticalKey","baseUrl","accountId","autocompleteURI","siteCountry","today","Date","getFullYear","String","getMonth","padStart","getDate","qs","documentElement","PARAMS","searchURI","replace","buildURI","buildQS","input","ctx","finalUrl","encodeURI","buildUrl","fetch","json","out","postProcessing","response","results","payload","faqs","YEXT_EVENTS","FaqComponent","FaqComponent_classCallCheck","_this","_possibleConstructorReturn","__proto__","getPrototypeOf","call","clickOutside","yextForm","yextInput","yextFaqContainer","yextSingleFaq","querySelectorAll","yextFaqCopyLink","yextFaqList","singleCard","hidden","collapsed","copied","faqsContainer","singleFaq","singleFaqTitle","singleFaqCat","singleFaqCatName","event","_this2","slice","searchTerms","split","singleFaqBasqUrl","dataset","faqDiv","classList","add","CLASSES","forEach","faq","catName","data","c_linked_entity_FAQ","catTitle","title","singleFaqDiv","innerHTML","question","term","toLowerCase","includes","highlightedTitle","RegExp","append","hastTitle","style","backgroundColor","color","charAt","toUpperCase","singleFaqUrl","faqBaseUrl","setAttribute","faqWindow","bindSearchOnFaq","target","closest","closeFaqsWindow","remove","callback","wait","timeout","_len","args","Array","_key","clearTimeout","setTimeout","apply","_this3","debounce","value","getYextFaq","window","location","pathname","cat","targetFaq","faqId","faqOpen","button","click","scrollFromTop","pageYOffset","getBoundingClientRect","top","scroll","behavior","left","hash","substr","copyLink","writeClipboardText","faqUrl","btn","text","navigator","clipboard","writeText","message","faqsLoaded","buildFaqs","_this4","links","currentUrl","origin","link","parentDiv","href","div","bindSearch","bindEvents","singleFaqOpen","singleFaqLinkCopy","bindFooterCardActive","./alert.js","./button.js","./carousel.js","./collapse.js","./dropdown.js","./modal.js","./popover.js","./scrollspy.js","./tab.js","./toast.js","./tooltip.js","./util.js"],"mappings":"8EAAA,IAAAA,GACAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,YACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,gBACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,cACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,MAGA,SAAAC,EAAAC,GACA,IAAAC,EAAAxD,EAAAuD,GACA,OAAAC,EAOAC,EAAAC,EAAAF,EAAA,IAAAG,KAAA,WACA,IAAAC,EAAAJ,EAAA,GACA,OAAAC,EAAAI,EAAAD,EAAA,KARAE,QAAAC,UAAAJ,KAAA,WACA,IAAAD,EAAA,IAAAM,MAAA,uBAAAT,EAAA,KAEA,MADAG,EAAAO,KAAA,mBACAP,IAQAJ,EAAAY,KAAA,WACA,OAAAC,OAAAD,KAAAlE,IAEAsD,EAAAM,GAAA,IACAQ,EAAAC,QAAAf,4RCxOA,IAAMgB,KAEAC,EAAqB,SAACC,GA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","file":"components-FaqComponent.chunks.js","sourcesContent":["var map = {\n\t\"./ar.js\": [\n\t\t308,\n\t\t209\n\t],\n\t\"./at.js\": [\n\t\t309,\n\t\t210\n\t],\n\t\"./be.js\": [\n\t\t310,\n\t\t211\n\t],\n\t\"./bg.js\": [\n\t\t311,\n\t\t212\n\t],\n\t\"./bn.js\": [\n\t\t312,\n\t\t213\n\t],\n\t\"./cat.js\": [\n\t\t313,\n\t\t214\n\t],\n\t\"./cs.js\": [\n\t\t314,\n\t\t215\n\t],\n\t\"./cy.js\": [\n\t\t315,\n\t\t216\n\t],\n\t\"./da.js\": [\n\t\t316,\n\t\t217\n\t],\n\t\"./de.js\": [\n\t\t317,\n\t\t218\n\t],\n\t\"./default.js\": [\n\t\t318,\n\t\t219\n\t],\n\t\"./eo.js\": [\n\t\t319,\n\t\t220\n\t],\n\t\"./es.js\": [\n\t\t320,\n\t\t221\n\t],\n\t\"./et.js\": [\n\t\t321,\n\t\t222\n\t],\n\t\"./fa.js\": [\n\t\t322,\n\t\t223\n\t],\n\t\"./fi.js\": [\n\t\t323,\n\t\t224\n\t],\n\t\"./fr.js\": [\n\t\t324,\n\t\t225\n\t],\n\t\"./gr.js\": [\n\t\t325,\n\t\t226\n\t],\n\t\"./he.js\": [\n\t\t326,\n\t\t227\n\t],\n\t\"./hi.js\": [\n\t\t327,\n\t\t228\n\t],\n\t\"./hr.js\": [\n\t\t328,\n\t\t229\n\t],\n\t\"./hu.js\": [\n\t\t329,\n\t\t230\n\t],\n\t\"./id.js\": [\n\t\t330,\n\t\t231\n\t],\n\t\"./index.js\": [\n\t\t331,\n\t\t268\n\t],\n\t\"./it.js\": [\n\t\t332,\n\t\t232\n\t],\n\t\"./ja.js\": [\n\t\t333,\n\t\t233\n\t],\n\t\"./km.js\": [\n\t\t334,\n\t\t234\n\t],\n\t\"./ko.js\": [\n\t\t335,\n\t\t235\n\t],\n\t\"./kz.js\": [\n\t\t336,\n\t\t236\n\t],\n\t\"./lt.js\": [\n\t\t337,\n\t\t237\n\t],\n\t\"./lv.js\": [\n\t\t338,\n\t\t238\n\t],\n\t\"./mk.js\": [\n\t\t339,\n\t\t239\n\t],\n\t\"./mn.js\": [\n\t\t340,\n\t\t240\n\t],\n\t\"./ms.js\": [\n\t\t341,\n\t\t241\n\t],\n\t\"./my.js\": [\n\t\t342,\n\t\t242\n\t],\n\t\"./nl.js\": [\n\t\t343,\n\t\t243\n\t],\n\t\"./no.js\": [\n\t\t344,\n\t\t244\n\t],\n\t\"./pa.js\": [\n\t\t345,\n\t\t245\n\t],\n\t\"./pl.js\": [\n\t\t346,\n\t\t246\n\t],\n\t\"./pt.js\": [\n\t\t347,\n\t\t247\n\t],\n\t\"./ro.js\": [\n\t\t348,\n\t\t248\n\t],\n\t\"./ru.js\": [\n\t\t349,\n\t\t249\n\t],\n\t\"./si.js\": [\n\t\t350,\n\t\t250\n\t],\n\t\"./sk.js\": [\n\t\t351,\n\t\t251\n\t],\n\t\"./sl.js\": [\n\t\t352,\n\t\t252\n\t],\n\t\"./sq.js\": [\n\t\t353,\n\t\t253\n\t],\n\t\"./sr.js\": [\n\t\t354,\n\t\t254\n\t],\n\t\"./sv.js\": [\n\t\t355,\n\t\t255\n\t],\n\t\"./th.js\": [\n\t\t356,\n\t\t256\n\t],\n\t\"./tr.js\": [\n\t\t357,\n\t\t257\n\t],\n\t\"./uk.js\": [\n\t\t358,\n\t\t258\n\t],\n\t\"./vn.js\": [\n\t\t359,\n\t\t259\n\t],\n\t\"./zh.js\": [\n\t\t360,\n\t\t260\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 100;\nmodule.exports = webpackAsyncContext;","const loadedDependency = {};\n\nconst existingDependency = (name) => {\n return (name in loadedDependency) ? loadedDependency[name] : false;\n};\n\nconst saveDependency = (name, lib) => {\n return new Promise((resolve, reject) => {\n try {\n if (!existingDependency(name)) {\n loadedDependency[name] = lib;\n resolve(false);\n } else {\n resolve(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n\n\n/**\n * This utility class is injected in all components that extends Component\n * and is used to lazy load third-part libraries\n */\nexport default class DependencyInjector {\n static get CUSTOM_STYLES() {\n return '../../../stylesheets';\n }\n\n static defaultCatchPromise(error) {\n console.error(\"Failed to inject dependency\", error.stack);\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.debug(`[${myName}] ${logStr}`);\n }\n }\n\n\n /**\n * Load a single bootstrap component from library\n * The SCSS file shoul be created due to the impossibility to import from bootstrap package\n * @param thenPromise\n * @param catchPromise\n */\n loadBootstrapJsComponentAndExecute(componentName, thenPromise, catchPromise) {\n this.log(`Loading Bootstrap ${componentName}`);\n\n import(/* webpackChunkName: `boostrap-js` */ `bootstrap/js/dist/${componentName}.js`).then(thenPromise).catch(catchPromise);\n }\n\n\n loadAos(thenPromise, catchPromise) {\n this.log('Loading aos');\n\n import(/* webpackChunkName: `aos` */ 'aos/dist/aos.css').then(\n () => {\n import(/* webpackChunkName: `aos` */ 'aos').then(thenPromise).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n\n loadModalAndExecute(thenPromise, catchPromise) {\n this.log('Loading Modal');\n\n import(/* webpackChunkName: `vex` */ 'vex-js/dist/js/vex.js').then(thenPromise).catch(catchPromise);\n }\n\n loadCarouselAndExecute(thenPromise, catchPromise) {\n this.log('Loading Slick Carousel');\n if (existingDependency('carousel')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.scss').then( () => {\n import(/* webpackChunkName: `slick` */ \"slick-carousel/slick/slick-theme.scss\").then(() => {\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.js').then((res) => {\n saveDependency('carousel', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(err => {\n console.error('Failed slick css import')\n }); // js library\n }).catch(err => {\n console.error('Failed slick css theme')\n });\n\n }\n\n loadStickyAndExecute(thenPromise, catchPromise) {\n this.log('Loading stickybits');\n import(/* webpackChunkName: `stickybits` */ 'stickybits').then(thenPromise).catch(catchPromise);\n }\n\n loadSelect2(thenPromise, catchPromise) {\n this.log('Loading Select2');\n if (existingDependency('select2')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `flatpickr` */ 'select2/src/scss/core.scss').then(\n () => {\n import(/* webpackChunkName: `selectize` */ 'select2/dist/js/select2.js').then((res) => {\n saveDependency('select2', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n loadFlatpickrLocale(locale, thenPromise, catchPromise) {\n import(/* webpackChunkName: `flatpickr-locale` */ `flatpickr/dist/l10n/${locale}.js`).then(thenPromise).catch(catchPromise)\n }\n\n loadFlatpickr(thenPromise, catchPromise) {\n this.log('Loading Flatpickr');\n\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/flatpickr.styl').then(\n () => {\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/themes/airbnb.styl');\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/dist/flatpickr.js').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n\n loadMasonry(thenPromise, catchPromise) {\n this.log('Loading Masonry');\n\n import(/* webpackChunkName: `masonry-layout` */ 'masonry-layout').then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the query-string library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscrol fails to load\n */\n loadQueryStringAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading query-string\");\n import(/* webpackChunkName: `query-string` */ \"query-string\").then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the jscroll library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscroll fails to load\n */\n // loadJscrollAndExecute(thenPromise, catchPromise) {\n // this.log(\"Loading jscroll\");\n // import(/* webpackChunkName: `jscroll` */ \"jscroll\").then(thenPromise).catch(catchPromise);\n // }\n\n /**\n * This method load the blueimp-file-upload library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when blueimp-file-upload is ready\n * @param catchPromise the code that must be executed when blueimp-file-upload fails to load\n */\n loadBlueimpFileUploadAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading BlueimpFileUpload\");\n import(/* webpackChunkName: `blueimp-file-upload` */ \"blueimp-file-upload\").then(\n () => {\n import(/* webpackChunkName: `blueimp-file-upload` */ 'blueimp-file-upload/css/jquery.fileupload.css').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n loadJqueryValidationAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading jquery-validation\");\n import( /* webpackChunkName: `jquery-validation` */ \"jquery-validation\").then(thenPromise).catch(catchPromise);\n }\n\n /**\n * Load all jquery ui js (1.5kb gzipped)\n * @param widgetName the name of jquery wigget\n * @param thenPromise the code that must be executed when the widget is ready\n * @param catchPromise the code that must be executed when the widget fails to load\n */\n loadJqueryUIWidgetAndExecute(widgetName, thenPromise, catchPromise) {\n this.log(`Loading jQuery UI dist for ${widgetName}`);\n\n import(\n /* webpackChunkName: `jquery-ui` */\n 'jquery-ui-dist/jquery-ui').then(thenPromise).catch(catchPromise);\n }\n\n\n loadExternalScript(url) {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.addEventListener('load', () => resolve(script), false);\n script.addEventListener('error', () => reject(script), false);\n document.body.appendChild(script);\n });\n }\n}\n","const focusableSelectors = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]';\nexport const getFirstFocusable = (parent) => {\n return parent.querySelector(focusableSelectors);\n};\n","import DependencyInjector from '../utils/DependencyInjector';\nimport { CustomEvents } from '../utils/CustomEvents';\nimport { match } from '../utils/ResolutionHandler';\nimport { getFirstFocusable } from \"../utils/FocusableElementUtils\";\nimport {on, emit, off, one} from '../utils/EventsBus';\n\n\n\n/**\n * Generic web component that expose a render method\n */\nexport default class Component {\n\n constructor(htmlEl) {\n this.moduleLoader = new DependencyInjector(); // Use this class to lazy load modules!!\n this.$component = htmlEl;\n this.$customEvents = CustomEvents;\n this.$matchMedia = match;\n this.$on = on;\n this.$emit = emit;\n this.$off = off;\n this.$one = one;\n this.$getFirstFocusable = getFirstFocusable;\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.log(`[${myName}] ${logStr}`);\n }\n }\n\n /**\n * Log utility\n * @param logStr\n */\n warn(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.warn(`[${myName}] ${logStr}`);\n }\n }\n\n /*\n Main method that execute the render logic of the component\n */\n render() {\n let myName = this.constructor.name;\n console.log(`[${myName}] Rendering..`);\n }\n}\n","/**\n * This utility class helps to manage the Yext Faqs\n */\nimport { CustomEvents } from './CustomEvents';\nimport {emit} from './EventsBus';\n\nclass YextFaqUtils {\n\n constructor() {\n this.readParams();\n }\n\n get SELECTORS() {\n return {\n input: '[data-yext-input]',\n baseUrl: 'data-base-url',\n apiKey: 'data-api-key',\n experienceKey: 'data-experience-key',\n verticalKey: 'data-vertical-key',\n accountId: 'data-account-id',\n autocompleteURI: 'data-search-uri',\n siteCountry: 'data-site-country',\n }\n }\n get PARAMS() {\n return {\n autocompleteURI: '/accounts/{{accountId}}/search/autocomplete',\n searchURI: '/accounts/{{accountId}}/search/vertical/query',\n }\n }\n\n // autocomplete sample\n // https://cdn.yextapis.com/v2/accounts/2423009/search/autocomplete\n // ?api_key=73372fd96fe84bd4306a91043923e023&v=20240830&experienceKey=test-faq-and-categories&locale=it&input=come\n\n // query sample\n // https://cdn.yextapis.com/v2/accounts/me/search/vertical/query\n // ?api_key=73372fd96fe84bd4306a91043923e023&v=20240906&experienceKey=test&verticalKey=faq&locale=it&input=COME+SI+ACQUISTA%3F\n\n readParams() {\n //\n let params = {}\n params.apikey = document.querySelector('['+this.SELECTORS.apiKey+']').getAttribute(this.SELECTORS.apiKey);\n params.experienceKey = document.querySelector('['+this.SELECTORS.experienceKey+']').getAttribute(this.SELECTORS.experienceKey);\n params.verticalKey = document.querySelector('['+this.SELECTORS.verticalKey+']').getAttribute(this.SELECTORS.verticalKey);\n params.baseUrl = document.querySelector('['+this.SELECTORS.baseUrl+']').getAttribute(this.SELECTORS.baseUrl);\n params.accountId = document.querySelector('['+this.SELECTORS.accountId+']').getAttribute(this.SELECTORS.accountId);\n params.autocompleteURI = document.querySelector('['+this.SELECTORS.autocompleteURI+']').getAttribute(this.SELECTORS.autocompleteURI);\n params.siteCountry = document.querySelector('['+this.SELECTORS.siteCountry+']').getAttribute(this.SELECTORS.siteCountry);\n // for public\n this.params = params;\n }\n\n getDate() {\n let today = new Date();\n return today.getFullYear()+String(today.getMonth() + 1).padStart(2, '0')+String(today.getDate()).padStart(2, '0');\n }\n\n buildQS() {\n let qs = '?';\n qs += 'api_key=' + this.params.apikey;\n qs += '&v=' + this.getDate();\n qs += '&locale=' + document.documentElement.getAttribute('lang');\n qs += '&experienceKey=' + this.params.experienceKey;\n qs += '&verticalKey=' + this.params.verticalKey;\n qs += '&limit=10';\n qs += '&filters={\"c_site\":{\"$eq\":\"'+this.params.siteCountry+'\"}}';\n return qs;\n }\n\n buildURI() {\n // uri con account id\n // let uri = (this.params.autocompleteURI != '' ? this.params.autocompleteURI : this.PARAMS.autocompleteURI );\n let uri = this.PARAMS.searchURI;\n // replace account id\n return uri.replace('{{accountId}}',this.params.accountId);\n }\n\n buildUrl() {\n let url = this.params.baseUrl + this.buildURI() + this.buildQS();\n // base url + uri + query params\n return url;\n }\n\n getYextFaq(input) {\n // context\n let ctx = this;\n // build final url\n let finalUrl = encodeURI(this.buildUrl() + '&input=' + input);\n // go fetch faq\n fetch(finalUrl)\n .then(res => res.json())\n .then(out => ctx.postProcessing(out.response,input))\n .catch(err => console.log(err));\n }\n\n postProcessing(results,input) {\n let payload = {};\n payload.faqs = results;\n payload.input = input;\n emit(CustomEvents.YEXT_EVENTS['faqsLoaded'],payload,this.SELECTORS.input);\n }\n\n}\n\nexport default new YextFaqUtils();\n","import Component from '../abstracts/Component';\nimport YextFaqUtils from '../utils/YextFaqUtils';\n\nexport default class FaqComponent extends Component {\n\n get SELECTORS() {\n return {\n yextForm: '[data-yext-form]',\n yextInput: '[data-yext-input]',\n yextFaqContainer: '[data-yext-faq-autocomplete]',\n yextFaqList: '[data-yext-faq-list]',\n yextSingleFaq: '[data-yext-single-faq]',\n yextFaqCopyLink: '[data-copy-button]',\n singleCard: '.yext-faq-cards-singlecard'\n };\n }\n\n get CLASSES() {\n return {\n hidden: 'is-hidden',\n collapsed: 'collapsed',\n copied: 'copied',\n faqsContainer: 'yext-faq-suggestions',\n singleFaq: 'yext-faq-suggestions-singlefaq',\n singleFaqTitle: 'yext-faq-suggestions-singlefaq-title',\n singleFaqCat: 'yext-faq-suggestions-singlefaq-category',\n singleFaqCatName: 'yext-faq-suggestions-singlefaq-category-name',\n };\n }\n\n constructor() {\n super();\n this.clickOutside = this.clickOutside.bind(this);\n this.yextForm = document.querySelector(this.SELECTORS.yextForm);\n this.yextInput = document.querySelector(this.SELECTORS.yextInput);\n this.yextFaqContainer = document.querySelector(this.SELECTORS.yextFaqContainer);\n this.yextSingleFaq = document.querySelectorAll(this.SELECTORS.yextSingleFaq);\n this.yextFaqCopyLink = document.querySelectorAll(this.SELECTORS.yextFaqCopyLink);\n }\n\n buildFaqs(event) {\n // faqs\n let faqs = event.payload.faqs.results;\n // check\n if (typeof faqs === 'undefined') {\n console.log('no faq founded')\n return false;\n }\n // limit for first void search\n if (event.payload.input === '') {\n faqs = faqs.slice(0,5);\n }\n // vars\n let searchTerms = event.payload.input.split(' ');\n let singleFaqBasqUrl = this.yextForm.dataset;\n // outer div\n let faqDiv = document.createElement('div');\n faqDiv.classList.add(this.CLASSES.faqsContainer);\n // cycle each results\n faqs.forEach( faq => {\n //\n let catName = faq.data.c_linked_entity_FAQ[0].name;\n let catTitle = faq.data.c_linked_entity_FAQ[0].title;\n // single faq build\n let singleFaqDiv = document.createElement('div');\n singleFaqDiv.classList.add(this.CLASSES.singleFaq);\n // title\n let singleFaqTitle = document.createElement('span');\n singleFaqTitle.classList.add(this.CLASSES.singleFaqTitle);\n singleFaqTitle.innerHTML = faq.data.question;\n // build title with highlighted words\n searchTerms.forEach((term)=>{\n if (faq.data.question.toLowerCase().includes(term.toLowerCase())) {\n let highlightedTitle = faq.data.question.replace(new RegExp(term, 'gi'),''+term+'');\n singleFaqTitle.innerHTML = highlightedTitle;\n }\n });\n singleFaqDiv.append(singleFaqTitle);\n let hastTitle = encodeURI(faq.data.question.replace(/\\s/g,'-').toLowerCase());\n // cat\n let singleFaqCat = document.createElement('span');\n singleFaqCat.classList.add(this.CLASSES.singleFaqCat);\n let singleFaqCatName = document.createElement('span');\n singleFaqCatName.classList.add(this.CLASSES.singleFaqCatName,faq.data.c_linked_entity_FAQ[0].name);\n singleFaqCatName.style.backgroundColor = 'rgb'+faq.data.c_linked_entity_FAQ[0].color;\n singleFaqCatName.innerHTML = catTitle.charAt(0).toUpperCase() + catTitle.slice(1);\n singleFaqCat.append(singleFaqCatName);\n singleFaqDiv.append(singleFaqCat);\n // url\n let singleFaqUrl = singleFaqBasqUrl.faqBaseUrl+'/'+catName+'#f-'+faq.data.id+'-'+hastTitle;\n singleFaqDiv.setAttribute('data-url',singleFaqUrl);\n singleFaqDiv.setAttribute('data-cat',catName);\n singleFaqDiv.setAttribute('data-faq-id',faq.data.id);\n // final append\n faqDiv.append(singleFaqDiv);\n });\n // append to input or rebuild\n let faqWindow = this.yextFaqContainer.querySelector('.'+this.CLASSES.faqsContainer);\n if (faqWindow == null) {\n this.yextFaqContainer.append(faqDiv)\n } else {\n faqWindow.innerHTML = faqDiv.innerHTML;\n }\n // then bind click search TODO\n this.bindSearchOnFaq();\n }\n\n clickOutside(e) {\n // if I click outside the wrapper\n if (e.target !== this.yextFaqContainer && e.target.closest('.'+this.CLASSES.faqsContainer) === null) {\n this.closeFaqsWindow();\n }\n }\n\n closeFaqsWindow() {\n let faqWindow = this.yextFaqContainer.querySelector('.'+this.CLASSES.faqsContainer);\n if (faqWindow !== null) {\n faqWindow.remove();\n }\n }\n\n debounce(callback, wait) {\n let timeout;\n return (...args) => {\n clearTimeout(timeout);\n timeout = setTimeout(function () { callback.apply(this, args); }, wait);\n };\n }\n\n bindSearch() {\n // checks\n if (this.yextInput == null) return false;\n // context\n let ctx = this;\n // on keyup, start the countdown\n this.yextInput.addEventListener('keyup',ctx.debounce( () => {\n //\n if (this.yextInput.value.length > 2) {\n // launch the autocomplete\n YextFaqUtils.getYextFaq(this.yextInput.value);\n }\n if (this.yextInput.value.length) {\n // void container ?\n let faqWindow = this.yextFaqContainer.querySelector('.'+this.CLASSES.faqsContainer);\n if (faqWindow !== null) {\n faqWindow.innerHTML = '';\n }\n }\n }, 500));\n\n }\n\n bindSearchOnFaq() {\n // context\n let ctx = this;\n //\n let faqWindow = this.yextFaqContainer.querySelector('.'+this.CLASSES.faqsContainer);\n // check faq window opened\n if (faqWindow !== null) {\n let faqs = faqWindow.querySelectorAll('.'+this.CLASSES.singleFaq);\n if (faqs !== null && faqs.length > 0) {\n // let's cycle all the faq\n faqs.forEach( singleFaq => {\n // bind click\n singleFaq.addEventListener('click',() => {\n if (typeof singleFaq.dataset.url !== 'undefined' && singleFaq.dataset.url !== '') {\n // check path if is the same -> I have to reload the page\n let beforePath = window.location.pathname;\n location.replace(singleFaq.dataset.url);\n // check if I am in the same page\n if (window.location.pathname.includes(singleFaq.dataset.cat)) {\n ctx.closeFaqsWindow();\n let targetFaq = document.querySelector('[data-faq-id='+singleFaq.dataset.faqId+']');\n setTimeout(function (){\n ctx.faqOpen(targetFaq);\n },500);\n }\n }\n });\n });\n }\n }\n }\n\n faqOpen(singleFaq) {\n // check\n if (singleFaq === null) return false;\n //\n let button = singleFaq.querySelector('button.collapsed');\n if (button !== null) {\n button.click();\n }\n //\n setTimeout(function (){\n let scrollFromTop = window.pageYOffset + singleFaq.getBoundingClientRect().top - 100;\n window.scroll({\n behavior: 'smooth',\n left: 0,\n top: scrollFromTop\n });\n },500);\n }\n\n singleFaqOpen() {\n // context\n let ctx = this;\n // check hash\n let hash = location.hash.substr(1);\n if (hash !== '' && this.yextSingleFaq !== null && this.yextSingleFaq.length > 0 ) {\n // let's cycle all the faq\n this.yextSingleFaq.forEach( singleFaq => {\n //\n if (hash.includes(singleFaq.dataset.faqId+'-')) {\n // let's open the faq\n ctx.faqOpen(singleFaq);\n }\n });\n }\n }\n\n singleFaqLinkCopy() {\n // context\n let ctx = this;\n // loop the links\n if (this.yextFaqCopyLink !== null && this.yextFaqCopyLink.length > 0 ) {\n // let's cycle all the faq\n this.yextFaqCopyLink.forEach( copyLink => {\n //\n copyLink.addEventListener('click',() => {\n let singleFaq = copyLink.closest(ctx.SELECTORS.yextSingleFaq);\n ctx.writeClipboardText(copyLink,singleFaq.dataset.faqUrl);\n });\n });\n }\n }\n\n writeClipboardText(btn,text) {\n let ctx = this;\n try {\n navigator.clipboard.writeText(text).then(function() {\n btn.classList.add(ctx.CLASSES.copied);\n setTimeout(function (){\n btn.classList.remove(ctx.CLASSES.copied);\n },2000);\n\n }, function() {\n /* clipboard write failed */\n console.log('NOT copied')\n });\n } catch (error) {\n console.error(error.message);\n }\n }\n\n bindEvents() {\n // ctx\n let ctx = this;\n // click on input\n this.yextInput.addEventListener(\"focus\",(e) => {\n // launch void suggestion\n YextFaqUtils.getYextFaq('');\n });\n // let's listen for faq to arrive\n this.$on(this.$customEvents.YEXT_EVENTS.faqsLoaded, (event) => {\n // go build faqs\n ctx.buildFaqs(event);\n });\n // click on dom\n document.addEventListener('click', this.clickOutside);\n }\n\n bindFooterCardActive() {\n const links = document.querySelectorAll(this.SELECTORS.singleCard + '-link');\n const currentUrl = window.location.origin + window.location.pathname;\n\n links.forEach(link => {\n const parentDiv = link.closest(this.SELECTORS.singleCard);\n\n if (link.href === currentUrl && parentDiv) {\n parentDiv.classList.add('active');\n }\n\n link.addEventListener('click', function () {\n document.querySelectorAll(this.SELECTORS.singleCard).forEach(div => div.classList.remove('active'));\n parentDiv.classList.add('active');\n });\n });\n }\n\n render() {\n this.log('Rendering...');\n this.bindSearch();\n this.bindEvents();\n this.singleFaqOpen();\n this.singleFaqLinkCopy();\n this.bindFooterCardActive();\n }\n}\n","var map = {\n\t\"./alert.js\": [\n\t\t297,\n\t\t197\n\t],\n\t\"./button.js\": [\n\t\t298,\n\t\t198\n\t],\n\t\"./carousel.js\": [\n\t\t299,\n\t\t199\n\t],\n\t\"./collapse.js\": [\n\t\t300,\n\t\t200\n\t],\n\t\"./dropdown.js\": [\n\t\t301,\n\t\t3,\n\t\t201\n\t],\n\t\"./index.js\": [\n\t\t302,\n\t\t202\n\t],\n\t\"./modal.js\": [\n\t\t303,\n\t\t203\n\t],\n\t\"./popover.js\": [\n\t\t304,\n\t\t3,\n\t\t184,\n\t\t204\n\t],\n\t\"./scrollspy.js\": [\n\t\t305,\n\t\t205\n\t],\n\t\"./tab.js\": [\n\t\t306,\n\t\t206\n\t],\n\t\"./toast.js\": [\n\t\t307,\n\t\t207\n\t],\n\t\"./tooltip.js\": [\n\t\t296,\n\t\t3,\n\t\t184\n\t],\n\t\"./util.js\": [\n\t\t295,\n\t\t208\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 99;\nmodule.exports = webpackAsyncContext;"],"sourceRoot":""}