{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/browser/BrowserTreeItem.vue?e8b0","webpack:///./src/components/browser/BrowserLanguageDropdown.vue?da58","webpack:///./src/App.vue?547c","webpack:///./src/components/browser/Browser.vue?728e","webpack:///./src/components/TheScrollTopButton.vue?a258","webpack:///./src/views/TheBrowser.vue?4a64","webpack:///./src/App.vue","webpack:///./src/components/TheBreadcrumb.vue","webpack:///./src/components/TheBreadcrumb.vue?b1b0","webpack:///./src/components/TheFooter.vue","webpack:///./src/components/TheFooter.vue?33e4","webpack:///./src/components/TheHeader.vue","webpack:///./src/configuration/appSettings.js","webpack:///./src/components/shared/GS1Link.vue","webpack:///./src/components/shared/GS1Link.vue?cecc","webpack:///./src/components/TheHeader.vue?1688","webpack:///./src/components/TheTopHeader.vue","webpack:///./src/components/TheTopHeader.vue?e240","webpack:///./src/components/TheScrollTopButton.vue","webpack:///./src/components/TheScrollTopButton.vue?ae71","webpack:///./src/App.vue?dfb6","webpack:///./src/views/TheBrowser.vue","webpack:///./src/components/browser/Browser.vue","webpack:///./src/components/browser/BrowserTreeItem.vue","webpack:///./src/common/enums.js","webpack:///./src/services/httpService.js","webpack:///./src/repositories/gpcBrowserRepository.js","webpack:///./src/composables/useTree.js","webpack:///./src/components/browser/BrowserTreeItem.vue?57ac","webpack:///./src/components/browser/BrowserLanguageDropdown.vue","webpack:///./src/composables/useLanguage.js","webpack:///./src/composables/useGtm.js","webpack:///./src/components/browser/BrowserLanguageDropdown.vue?a62b","webpack:///./src/components/browser/BrowserPublicationDropdown.vue","webpack:///./src/composables/usePublication.js","webpack:///./src/components/browser/BrowserPublicationDropdown.vue?f743","webpack:///./src/composables/useSearch.js","webpack:///./src/components/browser/BrowserSearch.vue","webpack:///./src/components/browser/BrowserSearch.vue?cfa1","webpack:///./src/components/browser/BroswerSearchConfigDropdown.vue","webpack:///./src/composables/useSearchConfigurationSingleton.js","webpack:///./src/components/browser/BroswerSearchConfigDropdown.vue?397d","webpack:///./src/components/shared/TooltipInfo.vue","webpack:///./src/components/shared/TooltipInfo.vue?f671","webpack:///./src/components/browser/Browser.vue?a4c6","webpack:///./src/components/browser/BrowserDownload.vue","webpack:///./src/services/fileService.js","webpack:///./src/components/browser/BrowserDownload.vue?2e88","webpack:///./src/components/shared/GS1LinkButton.vue","webpack:///./src/components/shared/GS1LinkButton.vue?9fdb","webpack:///./src/views/TheBrowser.vue?9c12","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/components/browser/BrowserPublicationDropdown.vue?c2de","webpack:///./src/components/TheHeader.vue?34ac","webpack:///./src/components/TheBreadcrumb.vue?30cf","webpack:///./src/components/shared/GS1LinkButton.vue?b9c3","webpack:///./src/components/TheTopHeader.vue?bd41","webpack:///./src/components/shared/GS1Link.vue?74f9","webpack:///./src/components/TheFooter.vue?b976","webpack:///./src/assets/logo.png"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","class","render","__scopeId","href","title","target","rel","enable-background","viewBox","xml:space","cx","cy","fill","style","type","data-bs-toggle","data-bs-target","aria-controls","aria-expanded","aria-label","id","aria-current","width","height","border","alt","src","image","environment","link","text","ENVIRONMENT_NAME","MAIN_LANGUAGE_CODE","API_URL","SSO_REDIRECT_URL","SSO_OPEN_ID_PROVIDER","SSO_CLIENT_ID","SESSION_REFRESH_TIME_TO_EXPIRE","SESSION_PROMPT_TIME_TO_EXPIRE","props","components","BIconArrowRightShort","String","setup","GS1Link","includes","appSettings","showSearchBar","textToSearch","doSearch","placeholder","BIconSearch","encodedParam","encodeURIComponent","location","scrollToTop","showButton","BIconChevronUp","scTimer","scY","addEventListener","setTimeout","scrollY","clearTimeout","scrollTo","top","behavior","TheHeader","TheFooter","TheBreadcrumb","TheTopHeader","TheScrollTopButton","handleLanguageChange","handlePublicationChange","selectedLanguage","selectedPublication","trackEventBeforeRedirect","downloadState","isDownloadingGpcZip","downloadGpcAsZip","isDownloadingGdsnZip","downloadGdsnAsZip","role","tooltipTitle","show","isNoResultsFound","handleChangeLanguageSelect","languageId","selectedLanguageId","handleChangePublicationSelect","handleSearch","isLoading","treeKey","treeData","item","code","isItemOutOfSearch","isFolder","isLoadingTreeItem","toggle","isOpen","getLevelTitle","level","treeItemCode","treeItemTitle","isDefinitionPresent","toggleDefinition","isDefinitionOpen","treeItemDefinition","treeItemDefinitionExcludes","isDefinitionExcludesPresent","childs","child","ClassificationLevel","Segment","Family","Class","Brick","Attribute","Value","freeze","httpGet","path","abortSignal","fetch","getConfig","response","ok","isSuccess","message","statusText","json","console","log","httpCustom","config","signal","getFileName","headers","header","match","replace","method","body","toUpperCase","JSON","stringify","getLanguagesAsync","getPublicationsAsync","getPreviousPublicationAsync","publicationId","isLatestPublicationAsync","getSegmentsAsync","getFamiliesAsync","getClassesAsync","getBricksAsync","getAttributesAsync","getAttributeValuesAsync","getRelationsAsync","exportAsJsonAsync","url","file","exportAsXmlAsync","exportAsXlsxAsync","blob","exportAsZipAsync","standard","exportDeltaAsJsonAsync","exportDeltaAsXlsxAsync","getDownloadPublicationReleaseNoteAttachmentUrl","isFetchingTree","ref","isFetchingSegmentFamilyClasses","isFetchingBricks","isFetchingAttributesAndValues","useTree","abortController","AbortController","clearTheTree","abortTreeFetching","abort","fetchPublishedSchemaTreeAsync","nextTick","segmentPromise","gpcBrowserRepository","familyPromise","classPromise","brickPromise","attributePromise","attrValuePromise","relationPromise","addSegments","addFamilies","addClasses","bricksResponse","addBricks","attributesResponse","attributeValuesResponse","relationsResponse","addAttributesAndValues","familyDictionary","mapToDictionary","forEach","segment","classDictionary","family","items","brickDictionary","clas","bricks","attributes","values","relations","assign","map","x","attributeDictionary","valueDictionary","brickCode","attributeCode","attributeValueCode","relatedAttribute","find","f","relatedValue","sort","a","b","localeCompare","enums","AttributeValue","keys","array","propName","reduce","prev","curr","computed","BIconChevronDown","BIconChevronRight","BIconCaretDownSquare","BIconCaretUpSquare","isOutOfSearch","codeSearch","titleSearch","definitionSearch","definition","definitionExcludesSearch","definitionExcludes","selectedLanguageName","languages","language","selectLanguage","languageName","isFetchingLanguages","useLanguage","fetchLanguagesAsync","isEnglish","existingLanguage","languageCode","toLowerCase","useGtm","_isGtmAvailable","Array","isArray","dataLayer","gtag","trackEvent","eventName","params","emits","emit","route","lang","currLanguageId","prevLanguageId","detectUserLanguage","handleQueryParamLanguage","browserCulture","navigator","userLanguage","correspondingLanguageByCulture","culture","correspondingLanguageByLanguageCode","substring","engLanguage","langParam","query","matchedLanguage","selectedPublicationName","publications","publication","selectPublication","publicationName","_publications","usePublication","_isFetchingPublication","fetchPublicationsAsync","downloadPublicationAsJsonAsync","isStaticFile","downloadPublicationAsXmlAsync","downloadPublicationAsXlsxAsync","downloadPublicationAsZipAsync","downloadDeltaAsJsonAsync","downloadDeltaAsXlsxAsync","isFetchingPublicaiton","Number","required","isRouteParamHandled","handleQueryParamPublication","currPublication","prevPublication","publicationTypes","publicationParam","publ","isGDSN","matchedPublication","useSearch","ignoreAccents","this","normalize","replaceAt","index","replacementLength","replacement","substr","capitalizeFirstLetter","charAt","isSearching","searchAsync","searchConfig","cleanupSearch","search","toString","trim","foundArray","brick","attribute","attributeValue","itemToSearchIn","parents","trySearchInItem","parent","trimSearchResults","isSearchedItem","some","boolProperties","stringProperties","cleanupProperties","prop","includeAttributesAndValues","trySearchInCode","trySearchInTitle","trySearchInDefinitionIncludes","trySearchInDefinitionExcludes","searchInCode","searchInTitle","getSearchResultBasedOnConfig","searchInDefinitionIncludes","searchInDefinitionExcludes","searchInText","exactWording","getExactSearchedText","searchInWordsCombination","words","split","searchedText","getSearchedText","keyWordsDictionaryToReplace","word","indexOfMatchedWord","indexOf","tempKey","capitalizedWord","entries","wordToSearch","searchText","autocomplete","disabled","isSearchEnabled","MIN_SEARCH_LENGTH","isSearchValid","handleSearchQueryParam","for","searchConfiguration","reactive","useSearchConfigurationSingleton","BIconSliders","close","handleBlur","tabindex","Boolean","default","tooltip","isTooltipFocused","showTooltip","tooltipEl","document","getElementById","trigger","focus","disposeTooltip","isFocused","tip","dispose","BrowserTreeItem","BrowserLanguageDropdown","BrowserPublicationDropdown","BrowserSearch","BroswerSearchConfigDropdown","TooltipInfo","fetchTreePromise","Promise","resolve","every","isReleaseNoteAvailable","downloadAttachmentHref","releaseNoteTitle","isCurrentAvailable","isCurrentGDSN","currentPublicationTitle","downloadGPCPublciationAsJson","downloadHref","isDownloadingGPCAsJson","isFreeToDownload","downloadGPCPublciationAsXml","isDownloadingGPCAsXml","downloadGPCPublciationAsXlsx","isDownloadingGPCAsXlsx","isDeltaAvailable","currentPublicationDeltaTitle","downloadDeltaPublicationAsJson","isDownloadingDeltaAsJson","downloadDeltaPublicationAsXlsx","isDownloadingDeltaAsXlsx","downloadGdsnPublciationAsJson","isDownloadingGDSNAsXml","isDownloadingGDSNAsXlsx","isDownloadingGDSNAsJson","downloadGdsnPublciationAsXml","downloadGdsnPublciationAsXlsx","mailToMoHref","downloadJson","fileName","downloadFile","downloadXml","downloadXlsx","downloadZip","contentType","Blob","createElement","download","URL","createObjectURL","dataset","downloadurl","join","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","remove","BIconDownload","BIconEnvelope","currentPublication","previousPublication","isLatestPublication","isPreviousAvailable","releaseNoteAttachment","freeToDownload","version","donwnloadMainLabel","moContactEmail","previousPublicationResponse","isLatestPublicationResponse","event","preventDefault","usePublicationBlobs","fileService","Browser","GS1LinkButton","BrowserDownload","downloadZipPackage","routes","component","router","createRouter","history","createWebHistory","createApp","App","use","mount"],"mappings":"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","file":"js/app.d60569ac.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./BrowserTreeItem.vue?vue&type=style&index=0&id=2862147b&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./BrowserLanguageDropdown.vue?vue&type=style&index=0&id=75458584&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=4046d642&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Browser.vue?vue&type=style&index=0&id=2cfe267e&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheScrollTopButton.vue?vue&type=style&index=0&id=49a7cd4c&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheBrowser.vue?vue&type=style&index=0&id=f2048ef8&scoped=true&lang=css\"","<template>\n  <div class=\"wrapper\">\n    <the-top-header></the-top-header>\n    <the-header class=\"site-header\"></the-header>\n    <div class=\"site-body\">\n      <the-breadcrumb></the-breadcrumb>\n      <router-view />\n    </div>\n    <the-footer class=\"site-footer\"></the-footer>\n  </div>\n  <the-scroll-top-button></the-scroll-top-button>\n</template>\n\n<script>\nimport TheBreadcrumb from \"./components/TheBreadcrumb.vue\";\nimport TheFooter from \"./components/TheFooter.vue\";\nimport TheHeader from \"./components/TheHeader.vue\";\nimport TheTopHeader from \"./components/TheTopHeader.vue\";\nimport TheScrollTopButton from \"./components/TheScrollTopButton.vue\";\nexport default {\n  components: { TheHeader, TheFooter, TheBreadcrumb, TheTopHeader,TheScrollTopButton },\n  name: \"App\",\n};\n</script>\n<style >\n.wrapper {\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column; \n}\n\n.site-header,\n.site-footer {\n  flex-shrink: 0;\n}\n\n.site-body {\n  flex-grow: 1;\n}\n</style>\n","<template>\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-12\">\n        <nav style=\"--bs-breadcrumb-divider: '>'\" aria-label=\"breadcrumb\">\n          <ol class=\"breadcrumb my-2 fs-6\">\n            <li class=\"breadcrumb-item\"><a href=\"https://www.gs1.org\">Home</a></li>\n            <li class=\"breadcrumb-item active\" aria-current=\"page\">Browser</li>\n          </ol>\n        </nav>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {};\n</script>\n\n<style scoped>\n.breadcrumb-item{\n  margin-bottom: 0;\n  text-decoration: none;\n}\n.breadcrumb-item a{\n  text-decoration: none;\n}\n</style>\n","import { render } from \"./TheBreadcrumb.vue?vue&type=template&id=31c4164a&scoped=true\"\nimport script from \"./TheBreadcrumb.vue?vue&type=script&lang=js\"\nexport * from \"./TheBreadcrumb.vue?vue&type=script&lang=js\"\n\nimport \"./TheBreadcrumb.vue?vue&type=style&index=0&id=31c4164a&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-31c4164a\"\n\nexport default script","<template>\n  <footer class=\"footer mb-3\">\n    <div class=\"container\">\n      <div class=\"row gs1-pt-spacer-1 gs1-pb-spacer-1\">\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <h4><a href=\"https://www.gs1.org/standards\" class=\"gs1-color-blue\">Standards</a></h4>\n          <ul>\n            <li><a href=\"https://www.gs1.org/need-gs1-barcode\">Need a barcode</a></li>\n            <li><a href=\"https://www.gs1.org/genspecs\">General Specifications</a></li>\n            <li><a href=\"https://www.gs1.org/standards/id-keys/gtin\">Global Trade Item Number (GTIN)</a></li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <h4><a href=\"https://www.gs1.org/services\" class=\"gs1-color-blue\">Services</a></h4>\n          <ul>\n            <li><a href=\"https://www.gs1.org/services/gdsn\">GS1 GDSN</a></li>\n            <li><a href=\"http://gepir.gs1.org/\">Who owns this barcode?</a></li>\n            <li><a href=\"https://www.gs1.org/check-digit-calculator\">Check digit calculator</a></li>\n            <li><a href=\"https://www.gs1.org/services/epc-encoderdecoder\">EPC encoder/decoder</a></li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <h4><a href=\"https://www.gs1.org/industries\" class=\"gs1-color-blue\">Industries</a></h4>\n          <ul>\n            <li><a href=\"https://www.gs1.org/retail\">Retail</a></li>\n            <li><a href=\"https://www.gs1.org/healthcare\">Healthcare</a></li>\n            <li><a href=\"https://www.gs1.org/transport-and-logistics\">Transport &amp; Logistics</a></li>\n            <li><a href=\"https://www.gs1.org/technical-industries\">Technical Industries</a></li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <h4><a href=\"https://www.gs1.org/news-events\" class=\"gs1-color-blue\">News &amp; Events</a></h4>\n          <ul>\n            <li><a href=\"https://www.gs1.org/news-archive\">News</a></li>\n            <li><a href=\"https://www.gs1.org/events-calendar\">Events</a></li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <h4><a href=\"https://www.gs1.org/about\" class=\"gs1-color-blue\">About GS1</a></h4>\n          <ul>\n            <li><a href=\"https://www.gs1.org/about/what-we-do\">What we do</a></li>\n            <li><a href=\"https://www.gs1.org/how-we-got-here\">Our story</a></li>\n            <li><a href=\"https://www.gs1.org/public-policy\">Public Policy</a></li>\n            <li><a href=\"https://www.gs1.org/careers\">Careers</a></li>\n            <li><a href=\"http://xchange.gs1.org/sites/faq\">FAQs</a></li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-4 col-md-2\">\n          <div class=\"social-media-icons my-4\">\n            <a href=\"http://www.twitter.com/gs1\" title=\"Twitter\" class=\"me-3\" target=\"_blank\" rel=\"noopener\"\n              ><svg enable-background=\"new 0 0 48 48\" viewBox=\"0 0 48 48\" xml:space=\"preserve\">\n                <circle cx=\"24\" cy=\"24\" fill=\"currentColor\" r=\"24\" />\n                <g>\n                  <g>\n                    <path\n                      d=\"M36.8,15.4c-0.9,0.5-2,0.8-3,0.9c1.1-0.7,1.9-1.8,2.3-3.1c-1,0.6-2.1,1.1-3.4,1.4c-1-1.1-2.3-1.8-3.8-1.8    c-2.9,0-5.3,2.5-5.3,5.7c0,0.4,0,0.9,0.1,1.3c-4.4-0.2-8.3-2.5-10.9-5.9c-0.5,0.8-0.7,1.8-0.7,2.9c0,2,0.9,3.7,2.3,4.7    c-0.9,0-1.7-0.3-2.4-0.7c0,0,0,0.1,0,0.1c0,2.7,1.8,5,4.2,5.6c-0.4,0.1-0.9,0.2-1.4,0.2c-0.3,0-0.7,0-1-0.1    c0.7,2.3,2.6,3.9,4.9,3.9c-1.8,1.5-4.1,2.4-6.5,2.4c-0.4,0-0.8,0-1.3-0.1c2.3,1.6,5.1,2.6,8.1,2.6c9.7,0,15-8.6,15-16.1    c0-0.2,0-0.5,0-0.7C35.2,17.6,36.1,16.6,36.8,15.4z\"\n                      fill=\"#FFFFFF\"\n                    />\n                  </g>\n                </g></svg\n            ></a>\n            <a href=\"https://www.youtube.com/user/gs1global\" title=\"Youtube\" class=\"me-3\" target=\"_blank\" rel=\"noopener\"\n              ><svg fill=\"currentColor\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linejoin: round; stroke-miterlimit: 2\" viewBox=\"0 0 512 512\">\n                <path\n                  d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm153.315,178.978c-3.68,-13.769 -14.522,-24.61 -28.29,-28.29c-24.958,-6.688 -125.025,-6.688 -125.025,-6.688c0,0 -100.067,0 -125.025,6.688c-13.765,3.68 -24.61,14.521 -28.29,28.29c-6.685,24.955 -6.685,77.024 -6.685,77.024c0,0 0,52.067 6.685,77.02c3.68,13.769 14.525,24.614 28.29,28.293c24.958,6.685 125.025,6.685 125.025,6.685c0,0 100.067,0 125.025,-6.685c13.768,-3.679 24.61,-14.524 28.29,-28.293c6.685,-24.953 6.685,-77.02 6.685,-77.02c0,0 0,-52.069 -6.685,-77.024Zm-185.316,125.025l0,-96.002l83.137,48.001l-83.137,48.001Z\"\n                /></svg\n            ></a>\n            <a href=\"https://www.linkedin.com/company/gs1\" title=\"LinkedIn\" target=\"_blank\" rel=\"noopener\"\n              ><svg fill=\"currentColor\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linejoin: round; stroke-miterlimit: 2\" viewBox=\"0 0 512 512\">\n                <path\n                  d=\"M256,0c141.29,0 256,114.71 256,256c0,141.29 -114.71,256 -256,256c-141.29,0 -256,-114.71 -256,-256c0,-141.29 114.71,-256 256,-256Zm-80.037,399.871l0,-199.921l-66.464,0l0,199.921l66.464,0Zm239.62,0l0,-114.646c0,-61.409 -32.787,-89.976 -76.509,-89.976c-35.255,0 -51.047,19.389 -59.889,33.007l0,-28.306l-66.447,0c0.881,18.757 0,199.921 0,199.921l66.446,0l0,-111.65c0,-5.976 0.43,-11.95 2.191,-16.221c4.795,-11.935 15.737,-24.299 34.095,-24.299c24.034,0 33.663,18.34 33.663,45.204l0,106.966l66.45,0Zm-272.403,-296.321c-22.74,0 -37.597,14.95 -37.597,34.545c0,19.182 14.405,34.544 36.717,34.544l0.429,0c23.175,0 37.6,-15.362 37.6,-34.544c-0.43,-19.595 -14.424,-34.545 -37.149,-34.545Z\"\n                /></svg\n            ></a>\n          </div>\n        </div>\n      </div>\n      <div class=\"d-sm-block d-md-flex thematic-break\">\n        <div class=\"gs1-utility-links mt-2\">\n          <div class=\"row g-0 d-md-block\">\n            <a class=\"col-12 pe-4 me-4 utility-link\" href=\"https://www.gs1.org/terms-use\" title=\"en\">Terms of use</a>\n            <a class=\"col-12 pe-4 me-4 utility-link\" href=\"https://www.gs1.org/privacy-policy\" title=\"en\">Privacy policy</a>\n            <a\n              class=\"col-12 pe-4 me-4 utility-link\"\n              href=\"https://gs1.wufoo.com/forms/website-feedback/def/Field1=https://www.gs1.org/standards/gpc/jun-2019/&amp;Field106=https://www.gs1.org/services\"\n              title=\"en\"\n              >Website feedback</a\n            >\n            <a class=\"col-12 me-3\" href=\"https://www.gs1.org/contact\" title=\"en\">Contact us</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </footer>\n</template>\n\n<script>\nexport default {};\n</script>\n\n<style scoped>\n.social-media-icons svg {\n  height: 2.3rem;\n  width: 2.3rem;\n  color: var(--gs1-color-blue);\n  cursor: pointer;\n}\n.social-media-icons svg:hover {\n  color: var(--gs1-color-link);\n}\n.gs1-utility-links a {\n  font-size: 0.875rem;\n}\n.gs1-utility-links a.utility-link {\n  border-right: 1px solid #b1b3b3;\n}\n.footer h4 a {\n  color: var(--gs1-color-blue);\n  font-weight: 500;\n  font-size: 1.1875rem;\n}\n.footer h4 a:hover {\n  text-decoration: underline;\n}\n.footer ul {\n  list-style-type: none;\n  margin-bottom: 20px;\n  padding: 0;\n  line-height: 1em;\n}\n.footer a {\n  color: var(--gs1-color-link);\n  font-weight: 300;\n  text-decoration: none;\n  font-size: 0.875rem;\n}\n.thematic-break{\nborder-top:1px solid #b3b3b3;\n}\n</style>\n","import { render } from \"./TheFooter.vue?vue&type=template&id=7fa87b41&scoped=true\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=js\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=js\"\n\nimport \"./TheFooter.vue?vue&type=style&index=0&id=7fa87b41&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-7fa87b41\"\n\nexport default script","<template>\n  <header>\n    <nav class=\"gs1-navbar navbar navbar-expand-lg navbar-light bg-white\">\n      <div class=\"container position-relative\">\n        <a class=\"navbar-brand\" href=\"https://www.gs1.org\"><img width=\"72\" height=\"59\" border=\"0\" alt=\"GS1 logo\" :src=\"image\" /></a>\n        <h5 v-if=\"environment != null\" class=\"fw-bold mt-2 ms-2\">{{ environment }}</h5>\n        <button\n          class=\"navbar-toggler\"\n          type=\"button\"\n          data-bs-toggle=\"collapse\"\n          data-bs-target=\"#navbarNav\"\n          aria-controls=\"navbarNav\"\n          aria-expanded=\"false\"\n          aria-label=\"Toggle navigation\"\n        >\n          <span class=\"icon-bar top-bar\"></span><span class=\"icon-bar middle-bar\"></span><span class=\"icon-bar bottom-bar\"></span>\n        </button>\n        <div class=\"collapse navbar-collapse justify-content-end\" id=\"navbarNav\">\n          <ul class=\"navbar-nav\">\n            <li class=\"nav-item\">\n              <a aria-current=\"page\" href=\"https://www.gs1.org/about\" class=\"nav-link\">About</a>\n              <ul class=\"gs1-submenu\">\n                <li class=\"row m-0\">\n                  <div class=\"col-md-4 gs1-submenu-left-side gs1-background-color-ui-1\">\n                    <h4>About us</h4>\n                    <ul class=\"gs1-submenu-links\">\n                      <li><GS1Link link=\"https://www.gs1.org/about/what-we-do\" class=\"gs1-color-blue\" text=\"What we do\"></GS1Link></li>\n                      <li><GS1Link link=\"https://www.gs1.org/about/how-we-got-here\" class=\"gs1-color-blue\" text=\"History\"></GS1Link></li>\n                      <li><GS1Link link=\"https://www.gs1.org/public-policy\" class=\"gs1-color-blue\" text=\"Public Policy\"></GS1Link></li>\n                      <li><GS1Link link=\"https://www.gs1.org/contact\" class=\"gs1-color-blue\" text=\"Contact\"></GS1Link></li>\n                    </ul>\n                  </div>\n                  <div class=\"col-md-8\">\n                    <div class=\"row gs1-submenu-right-side\">\n                      <div class=\"col-md-12\">\n                        <h2 class=\"gs1-submenu-title\">\n                          <a href=\"https://www.gs1.org/about\">About GS1</a>\n                        </h2>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>GS1 Annual Report</h4>\n                        <p>Read our latest annual report and archives</p>\n                        <a href=\"https://www.gs1.org/about/annual-report\" title=\"Read our annual report\">Read our annual report</a>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>Careers</h4>\n                        <p>Explore opportunities and take your career to the next level</p>\n                        <a href=\"https://www.gs1.org/careers\" target=\"_blank\" rel=\"noopener\" title=\"View open positions\">View open positions</a>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>Management Board</h4>\n                        <p>Get to know the industry leaders who are making a difference</p>\n                        <a href=\"https://www.gs1.org/about/management-board\" title=\"Management Board\">Meet the board </a>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n              </ul>\n            </li>\n            <li class=\"nav-item\">\n              <a aria-current=\"page\" href=\"https://www.gs1.org/standards\" class=\"nav-link\">Standards</a>\n              <ul class=\"gs1-submenu\">\n                <li class=\"row m-0\">\n                  <div class=\"col-md-4 gs1-submenu-left-side gs1-background-color-ui-1\">\n                    <h4>What do you need?</h4>\n                    <ul class=\"gs1-submenu-links\">\n                      <li>\n                        <GS1Link link=\"https://www.gs1.org/how-gs1-standards-work\" class=\"gs1-color-blue\" text=\"How GS1 standards work\"></GS1Link>\n                      </li>\n                      <li>\n                        <GS1Link link=\"https://www.gs1.org/standards-development\" class=\"gs1-color-blue\" text=\"GS1 Standards Development\"></GS1Link>\n                      </li>\n                      <li><GS1Link link=\"https://www.gs1.org/standards/log\" class=\"gs1-color-blue\" text=\"Recently published standards\"></GS1Link></li>\n                      <li><GS1Link link=\"https://www.gs1.org/standards/traceability\" class=\"gs1-color-blue\" text=\"Traceability\"></GS1Link></li>\n                    </ul>\n                  </div>\n                  <div class=\"col-md-8\">\n                    <div class=\"row gs1-submenu-right-side\">\n                      <div class=\"col-md-12\">\n                        <h2 class=\"gs1-submenu-title\">\n                          <a href=\"https://www.gs1.org/standards\">Standards</a>\n                        </h2>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column align-items-center\">\n                        <a class=\"mb-3\" href=\"https://www.gs1.org/standards#identify\"\n                          ><img alt=\"identify\" src=\"https://www.gs1.org/sites/default/files/images/identity.png\" title=\"identify\"\n                        /></a>\n                        <h4>Identify</h4>\n                        <a href=\"https://www.gs1.org/id-keys\" title=\"ID Keys\">ID Keys</a>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column align-items-center\">\n                        <a class=\"mb-3\" href=\"https://www.gs1.org/standards#capture\"\n                          ><img alt=\"capture\" src=\"https://www.gs1.org/sites/default/files/images/capture.png\" title=\"capture\"\n                        /></a>\n                        <h4>Capture</h4>\n                        <a href=\"https://www.gs1.org/barcodes\" title=\"Barcodes\">Barcodes</a>\n                        <a href=\"https://www.gs1.org/epc-rfid\" title=\"EPC/RFID\">EPC/RFID</a>\n                      </div>\n                      <div class=\"col-md-4 mb-3 gs1-submenu-column align-items-center\">\n                        <a class=\"mb-3\" href=\"https://www.gs1.org/standards#share\"\n                          ><img alt=\"share\" src=\"https://www.gs1.org/sites/default/files/images/share.jpg\" title=\"Share\"\n                        /></a>\n                        <h4>Share</h4>\n                        <a href=\"https://www.gs1.org/standards/gs1-global-data-model\" title=\"View GS1 Global Data Model Standards\"\n                          >GS1 Global Data Model</a\n                        >\n                        <a href=\"https://www.gs1.org/gdsn-standards\" title=\"View GDSN Standards\">GDSN</a>\n                        <a href=\"https://www.gs1.org/standards#shares\" title=\"View all Standards\">See all</a>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n              </ul>\n            </li>\n            <li class=\"nav-item\">\n              <a aria-current=\"page\" href=\"https://www.gs1.org/services\" class=\"nav-link\">Services</a>\n              <ul class=\"gs1-submenu\">\n                <li class=\"row m-0\">\n                  <div class=\"col-md-4 gs1-submenu-left-side gs1-background-color-ui-1\">\n                    <h4>Useful Links</h4>\n                    <ul class=\"gs1-submenu-links\">\n                      <li>\n                        <GS1Link\n                          link=\"https://www.gs1.org/services/check-digit-calculator\"\n                          class=\"gs1-color-blue\"\n                          text=\"Check digit calculator\"\n                        ></GS1Link>\n                      </li>\n                      <li>\n                        <GS1Link link=\"https://gepir.gs1.org/index.php/search-by-gtin\" class=\"gs1-color-blue\" text=\"Who owns this barcode?\"></GS1Link>\n                      </li>\n                      <li><GS1Link link=\"https://www.gs1.org/services/gmn-generator\" class=\"gs1-color-blue\" text=\"GMN generator\"></GS1Link></li>\n                      <li><GS1Link link=\"https://www.gs1.org/services\" class=\"gs1-color-blue\" text=\"Other services &amp; tools\"></GS1Link></li>\n                    </ul>\n                  </div>\n                  <div class=\"col-md-8\">\n                    <div class=\"row gs1-submenu-right-side\">\n                      <div class=\"col-md-12\">\n                        <h2 class=\"gs1-submenu-title\">\n                          <a href=\"https://www.gs1.org/services\">Services</a>\n                        </h2>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>Global Data Synchronisation Network (GDSN)</h4>\n                        <p>The world's largest product data network.</p>\n                        <a href=\"https://www.gs1.org/services/gdsn\" title=\"Global Data Synchronisation Network (GDSN)\">Read more</a>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>Verified by GS1</h4>\n                        <p>Get product identity right with Verified by GS1</p>\n                        <a href=\"https://www.gs1.org/services/verified-by-gs1\" title=\"Verified by GS1\">Read more</a>\n                      </div>\n                      <div class=\"col-md-4 gs1-submenu-column\">\n                        <h4>GPC Browser service</h4>\n                        <p>Browse all components of the published GPC schemas.</p>\n                        <a href=\"https://www.gs1.org/services/gpc-browser\" title=\"GPC Browser service\">Read more</a>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n              </ul>\n            </li>\n            <li class=\"nav-item\">\n              <a aria-current=\"page\" href=\"https://www.gs1.org/industries\" class=\"nav-link\">Industries</a>\n              <ul class=\"gs1-submenu\">\n                <li class=\"row m-0 gs1-submenu-middle\">\n                  <div class=\"col-md-12\">\n                    <h2 class=\"gs1-submenu-title\">\n                      <a href=\"https://www.gs1.org/industries\">Industries</a>\n                    </h2>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column align-items-center\">\n                    <a class=\"mb-3\" href=\"https://www.gs1.org/retail\"\n                      ><img alt=\"identify\" src=\"https://www.gs1.org/sites/default/files/images/retail.png\" title=\"Retail\"\n                    /></a>\n                    <h4><a class=\"gs1-h-link\" href=\"https://www.gs1.org/retail\" title=\"Retail\">Retail</a></h4>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column align-items-center\">\n                    <a class=\"mb-3\" href=\"https://www.gs1.org/healthcare\" title=\"Healthcare\"\n                      ><img alt=\"Healthcare\" src=\"https://www.gs1.org/sites/default/files/images/healthcare.png\" title=\"Healthcare\" />\n                    </a>\n                    <h4><a class=\"gs1-h-link\" href=\"https://www.gs1.org/healthcare\" title=\"Healthcare\">Healthcare</a></h4>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column align-items-center\">\n                    <a class=\"mb-3\" href=\"https://www.gs1.org/transport-and-logistics\" title=\"Transport &amp; Logistics\"\n                      ><img\n                        alt=\"identify\"\n                        src=\"https://www.gs1.org/sites/default/files/images/transport-logistics.png\"\n                        title=\"Transport &amp; Logistics\"\n                      />\n                    </a>\n                    <h4>\n                      <a class=\"gs1-h-link\" href=\"https://www.gs1.org/transport-and-logistics\" title=\"Transport &amp; Logistics\"\n                        >Transport &amp; Logistics</a\n                      >\n                    </h4>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column align-items-center\">\n                    <a class=\"mb-3\" href=\"https://www.gs1.org/technical-industries\" title=\"Technical Industries\"\n                      ><img\n                        alt=\"Technical Industries\"\n                        src=\"https://www.gs1.org/sites/default/files/gs1_icon_technical_industries_rgb_2015-11-10_copy.png\"\n                        title=\"Technical Industries\"\n                      />\n                    </a>\n                    <h4>\n                      <a class=\"gs1-h-link\" href=\"https://www.gs1.org/technical-industries\" title=\"Technical industries\">Technical industries</a>\n                    </h4>\n                  </div>\n                </li>\n              </ul>\n            </li>\n            <li class=\"nav-item\">\n              <a aria-current=\"page\" href=\"https://www.gs1.org/news-events\" class=\"nav-link\">News &amp; Events</a>\n              <ul class=\"gs1-submenu\">\n                <li class=\"row m-0 gs1-submenu-middle\">\n                  <div class=\"col-md-12\">\n                    <h2 class=\"gs1-submenu-title\">\n                      <a href=\"https://www.gs1.org/news-events\">News &amp; Events</a>\n                    </h2>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column\">\n                    <a class=\"mb-3\" href=\"https://www.gs1.org/events-calendar\" title=\"Events &amp; Calendar\">Events &amp; Calendar</a>\n                    <a href=\"https://www.gs1.org/news-archive\" title=\"Latest News\">Latest News</a>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column\">\n                    <div class=\"gs1-event-title\">GS1 Global Forum 2025</div>\n                    <h4 class=\"gs1-color-ui-8\">\n                      <div>\n                        <time datetime=\"2025-02-17T12:00:00Z\" class=\"datetime\">17</time> -\n                        <time datetime=\"2025-02-20T12:00:00Z\" class=\"datetime\">20 Feb 2025</time> &nbsp;|&nbsp;\n                      </div>\n                      <div>Noordwijk - Amsterdam</div>\n                    </h4>\n                    <a href=\"https://forum.gs1.org/\" target=\"_blank\" rel=\"noopener\">View event</a>\n                  </div>\n                  <div class=\"col-md-3 gs1-submenu-column\">\n                    <div class=\"gs1-event-title\">GS1 General Assembly 2025</div>\n                    <h4 class=\"gs1-color-ui-8\">\n                      <div>\n                        <time datetime=\"2025-05-19T12:00:00Z\" class=\"datetime\">19</time> -\n                        <time datetime=\"2025-05-23T12:00:00Z\" class=\"datetime\">23 May 2025</time> &nbsp;|&nbsp;\n                      </div>\n                      <div>Mumbai</div>\n                    </h4>\n                    <a href=\"https://ga.gs1.org/\" target=\"_blank\" rel=\"noopener\">View event</a>\n                  </div>\n                </li>\n              </ul>\n            </li>\n            <li class=\"nav-item\">\n              <a class=\"btn gs1-button orange\" href=\"https://www.gs1.org/standards/need-gs1-barcode\">Get your barcodes</a>\n            </li>\n          </ul>\n        </div>\n      </div>\n    </nav>\n  </header>\n</template>\n\n<script>\nimport image from \"../assets/logo.png\";\nimport appSettings from \"../configuration/appSettings\";\nimport GS1Link from \"./shared/GS1Link.vue\";\n\nexport default {\n  components: { GS1Link },\n  setup() {\n    const environment = [\"Development\", \"Staging\"].includes(appSettings.ENVIRONMENT_NAME) ? appSettings.ENVIRONMENT_NAME : null;\n    return { image, environment };\n  },\n};\n</script>\n\n<style scoped>\nheader {\n  box-shadow: 0 2px 3px 0 rgb(0 44 108 / 20%);\n}\n.nav-link {\n  font-size: 0.9375rem;\n  color: var(--gs1-color-blue) !important;\n  font-weight: 500;\n  position: relative;\n}\n.nav-link:hover {\n  background-color: var(--gs1-color-ui-2);\n  border-radius: 4px;\n}\n.nav-link.router-link-active {\n  color: #cd3c0d !important;\n  background-color: transparent;\n  text-decoration: none;\n}\n.nav-link.router-link-active::before {\n  position: absolute;\n  top: 30px;\n  right: 0;\n  left: 0;\n  width: 80%;\n  height: 4px;\n  margin-right: auto;\n  margin-left: auto;\n  content: \"\";\n  background-color: #cd3c0d;\n  border-radius: 100px;\n}\n@media (max-width: 991.98px) {\n  .nav-link.router-link-active {\n    color: var(--gs1-color-blue) !important;\n    font-size: 1rem;\n  }\n  .nav-link.router-link-active::before {\n    content: none;\n  }\n}\n.navbar-toggler {\n  border: none;\n  background: transparent !important;\n  -webkit-appearance: none;\n  border-radius: 0;\n  margin-top: 25px;\n  margin-left: 22px;\n  margin-right: 0;\n  margin-bottom: 25px;\n  background-color: transparent;\n}\n\n.navbar-toggler:hover {\n  background: transparent !important;\n}\n.navbar-toggler:focus {\n  box-shadow: none;\n}\n\n.navbar-toggler .icon-bar {\n  transition: all 0.2s;\n  width: 30px;\n  height: 3px;\n  display: block;\n  margin-bottom: 5px;\n  background-color: #002c6c;\n}\n\n.navbar-toggler .top-bar {\n  transform: rotate(45deg);\n  transform-origin: 10% 10%;\n}\n\n.navbar-toggler .middle-bar {\n  opacity: 0;\n}\n\n.navbar-toggler .bottom-bar {\n  transform: rotate(-45deg);\n  transform-origin: 10% 90%;\n}\n\n.navbar-toggler.collapsed .top-bar {\n  transform: rotate(0);\n}\n\n.navbar-toggler.collapsed .middle-bar {\n  opacity: 1;\n}\n\n.navbar-toggler.collapsed .bottom-bar {\n  transform: rotate(0);\n}\n\n.navbar-toggler.collapsed .icon-bar {\n  background-color: #002c6c;\n}\n\n.gs1-navbar {\n  height: 106px;\n}\n.gs1-navbar .nav-item {\n  padding: 10px 5px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  height: 106px;\n}\n.gs1-navbar a {\n  font-size: 0.875rem;\n}\n\n.nav-item:hover > .gs1-submenu {\n  display: block !important;\n}\n.gs1-submenu {\n  display: none;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 108px;\n  z-index: 3;\n  background-color: var(--gs1-color-white);\n  border: 1px solid var(--gs1-color-ui-2);\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 4px;\n  border-bottom-right-radius: 4px;\n  padding-left: 0;\n  min-height: 250px;\n}\n.gs1-submenu-left-side {\n  border-bottom-left-radius: 4px;\n  padding-top: 24px;\n  padding-left: 36px;\n  min-height: 250px;\n}\n.gs1-submenu-left-side > h4 {\n  color: var(--gs1-color-ui-8);\n  font-size: 1rem;\n  margin-bottom: 26px;\n  margin-top: 0px;\n  font-weight: 300;\n  line-height: 1.2;\n}\n.gs1-submenu-right-side {\n  border-bottom-right-radius: 4px;\n  padding-left: 45px;\n  padding-top: 24px;\n  padding-right: 45px;\n}\n.gs1-submenu-middle {\n  border-bottom-right-radius: 4px;\n  padding-left: 40px;\n  padding-top: 24px;\n  padding-right: 40px;\n  padding-bottom: 45px;\n}\n.gs1-submenu-links {\n  list-style: none;\n  margin-left: 0px;\n  padding-left: 0px;\n}\n.gs1-submenu-title {\n  line-height: 1rem;\n  margin-top: 0;\n}\n.gs1-submenu-title::after {\n  content: \"\";\n  display: block;\n  width: calc(100% - 15px);\n  height: 1px;\n  background-color: var(--gs1-color-ui-3);\n  margin-top: 7px;\n}\n.gs1-submenu-title > a {\n  color: var(--gs1-color-blue);\n  font-size: 1rem;\n  font-weight: 500;\n  padding: 0;\n  text-decoration: none;\n}\n.gs1-submenu-column {\n  display: flex;\n  flex-direction: column;\n}\n.gs1-submenu-column > h4 {\n  color: var(--gs1-color-blue);\n  font-size: 1rem;\n  margin-top: 0;\n  font-weight: 300;\n  line-height: 1.2;\n}\n.gs1-submenu-column > p {\n  flex: 1;\n  color: var(--gs1-color-ui-8);\n  font-size: 0.9375rem;\n}\n.gs1-submenu-column > a {\n  font-weight: 500;\n  padding: 0;\n  color: var(--gs1-color-link-accessible);\n  font-size: 0.875rem;\n  text-decoration: none;\n}\n.gs1-h-link {\n  font-weight: 500;\n  font-size: 1rem !important;\n  line-height: 25px;\n  padding: 0;\n  text-decoration: none;\n  color: var(--gs1-color-blue);\n}\n.gs1-h-link:hover {\n  text-decoration: underline !important;\n}\n.gs1-event-title {\n  color: var(--gs1-color-blue);\n  font-size: 1rem;\n  font-weight: 500;\n  margin-bottom: 20px;\n}\n</style>\n","// DEV ENV\n// export default {\n//   ENVIRONMENT_NAME: \"Development\",\n//   MAIN_LANGUAGE_CODE: \"EN\",\n//   API_URL: process.env.NODE_ENV == \"development\" ? \"https://localhost:44356/api\" : \"https://gpc-api-dev.gs1.org/api\",\n//   SSO_REDIRECT_URL: process.env.NODE_ENV == \"development\" ? \"https://localhost:9551\" : \"https://gpc-browser-dev.gs1.org\",\n//   SSO_OPEN_ID_PROVIDER: process.env.NODE_ENV == \"development\" ? \"https://gs1sso-dev.gs1.org\" : \"https://gs1sso.gs1.org\" ,\n//   SSO_CLIENT_ID: process.env.NODE_ENV == \"development\" ? \"GPCUIDEV\" : \"GPCUIPROD\",\n//   SESSION_REFRESH_TIME_TO_EXPIRE: 30,\n//   SESSION_PROMPT_TIME_TO_EXPIRE: \"70%\",\n// };\n\n// STAGING ENV\n// export default {\n//   ENVIRONMENT_NAME: \"Staging\",\n//   MAIN_LANGUAGE_CODE: \"EN\",\n//   API_URL: \"https://gpc-api-dev.gs1.org/api\",\n//   SSO_REDIRECT_URL: \"https://gpc-browser-dev.gs1.org\",\n//   SSO_OPEN_ID_PROVIDER: \"https://gs1sso-dev.gs1.org\" ,\n//   SSO_CLIENT_ID: \"GPCUIDEV\",\n//   SESSION_REFRESH_TIME_TO_EXPIRE: 30,\n//   SESSION_PROMPT_TIME_TO_EXPIRE: \"70%\",\n// };\n\n\n// PROD ENV\nexport default {\n  ENVIRONMENT_NAME: \"Production\",\n  MAIN_LANGUAGE_CODE: \"EN\",\n  API_URL: \"https://gpc-api.gs1.org/api\",\n  SSO_REDIRECT_URL: \"https://gpc-browser.gs1.org\",\n  SSO_OPEN_ID_PROVIDER: \"https://gs1sso.gs1.org\" ,\n  SSO_CLIENT_ID: \"GPCUIPROD\",\n  SESSION_REFRESH_TIME_TO_EXPIRE: 30,\n  SESSION_PROMPT_TIME_TO_EXPIRE: \"70%\",\n};\n","<template>\n  <a class=\"gs1-link\" :href=\"props.link\">{{ props.text }}<b-icon-arrow-right-short></b-icon-arrow-right-short></a>\n</template>\n<script>\nimport { BIconArrowRightShort } from \"bootstrap-icons-vue\";\nexport default {\n  components: { BIconArrowRightShort },\n  props: {\n    link: String,\n    text: String,\n  },\n  setup(props) {\n    return { props };\n  },\n};\n</script>\n\n<style scoped>\na.gs1-link {\n  font-weight: 500;\n  font-size: 1rem !important;\n  line-height: 25px;\n  padding: 0;\n  text-decoration: none;\n}\na.gs1-link > svg {\n  width: 1.875rem;\n  height: 1.875rem;\n}\na.gs1-link:hover > svg {\n  transform: translateX(25%);\n  transition: all 0.2s ease;\n}\n</style>\n","import { render } from \"./GS1Link.vue?vue&type=template&id=375d8717&scoped=true\"\nimport script from \"./GS1Link.vue?vue&type=script&lang=js\"\nexport * from \"./GS1Link.vue?vue&type=script&lang=js\"\n\nimport \"./GS1Link.vue?vue&type=style&index=0&id=375d8717&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-375d8717\"\n\nexport default script","import { render } from \"./TheHeader.vue?vue&type=template&id=d1440054&scoped=true\"\nimport script from \"./TheHeader.vue?vue&type=script&lang=js\"\nexport * from \"./TheHeader.vue?vue&type=script&lang=js\"\n\nimport \"./TheHeader.vue?vue&type=style&index=0&id=d1440054&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-d1440054\"\n\nexport default script","<template>\n  <div class=\"gs1-top-header\">\n    <div class=\"container\">\n      <div v-if=\"showSearchBar\" class=\"row height d-flex justify-content-center align-items-center\" style=\"height: 60px\">\n        <div class=\"col-md-12\">\n          <div class=\"gs1-global-search\">\n            <BIconSearch style=\"height: 16px\" class=\"gs1-search-icon\" />\n            <input v-model=\"textToSearch\" @keyup.enter=\"doSearch\" type=\"text\" class=\"form-control\" placeholder=\"Search gs1.org\" />\n            <span class=\"close-button\" @click=\"textToSearch = ''\">&#x2716;</span>\n          </div>\n        </div>\n      </div>\n      <div class=\"d-flex justify-content-end align-content-center py-1\">\n        <div class=\"main-text px-1\">The Global Language of Business</div>\n        <div class=\"mo-zone-login-link px-2\"><a href=\"https://mozone.gs1.org/home/\" target=\"_blank\" rel=\"noopener\">MO Zone login</a></div>\n        <div class=\"contact-us-link px-2\"><a href=\"https://www.gs1.org/contact\">Contact us</a></div>\n        <div class=\"ps-2 d-flex\" @click=\"showSearchBar = !showSearchBar\"><BIconSearch style=\"height: 16px\" class=\"gs1-search-icon\" /></div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { BIconSearch } from \"bootstrap-icons-vue\";\nimport { ref } from \"@vue/reactivity\";\nexport default {\n  components: { BIconSearch },\n  setup() {\n    const showSearchBar = ref(false);\n    const textToSearch = ref(\"\");\n    const doSearch = () => {\n      if (textToSearch.value == null || textToSearch.value == \"\") {\n        return;\n      }\n      const encodedParam = encodeURIComponent(textToSearch.value);\n      window.location.href = `https://www.gs1.org/search/gsone/${encodedParam}`;\n    };\n    return { showSearchBar, textToSearch , doSearch};\n  },\n};\n</script>\n\n<style scoped>\n.gs1-top-header {\n  background-color: var(--gs1-color-ui-1);\n  box-shadow: 0 2px 3px 0 rgb(0 44 108 / 20%);\n}\n.gs1-top-header .main-text {\n  font-size: 0.75rem;\n  font-weight: 500;\n}\n.mo-zone-login-link {\n  font-size: 0.75rem;\n  font-weight: 500;\n}\n.contact-us-link {\n  font-size: 0.75rem;\n  font-weight: 500;\n}\n.gs1-search-icon {\n  height: 16px;\n  color: var(--gs1-color-blue);\n  cursor: pointer;\n}\n.gs1-global-search {\n  position: relative;\n  box-shadow: 0 0 40px rgba(51, 51, 51, 0.1);\n}\n\n.gs1-global-search input {\n  text-indent: 30px;\n}\n.gs1-global-search input:focus {\n  box-shadow: none;\n  border: 2px solid var(--gs1-color-blue);\n}\n\n.gs1-global-search .gs1-search-icon {\n  position: absolute;\n  top: 10px;\n  left: 15px;\n}\n\n.gs1-global-search .close-button {\n  position: absolute;\n  top: 5px;\n  right: 15px;\n  font-weight: bolder;\n  color: #999;\n  cursor: pointer;\n}\n</style>\n","import { render } from \"./TheTopHeader.vue?vue&type=template&id=a920fee0&scoped=true\"\nimport script from \"./TheTopHeader.vue?vue&type=script&lang=js\"\nexport * from \"./TheTopHeader.vue?vue&type=script&lang=js\"\n\nimport \"./TheTopHeader.vue?vue&type=style&index=0&id=a920fee0&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-a920fee0\"\n\nexport default script","<template>\n  <button @click=\"scrollToTop\" id=\"ScrollTopButton\" :style=\"{ display: showButton ? 'inline-block' : 'none' }\"><BIconChevronUp class=\"gs1-color-blue\"></BIconChevronUp></button>\n</template>\n\n<script>\nimport { BIconChevronUp } from \"bootstrap-icons-vue\";\nimport { computed, onMounted, ref } from \"@vue/runtime-core\";\nexport default {\n  components: { BIconChevronUp },\n  setup() {\n    const scTimer = ref(0);\n    const scY = ref(0);\n\n    const showButton = computed(() => {\n      return scY.value > 300;\n    });\n\n    onMounted(() => {\n      window.addEventListener(\"scroll\", () => {\n        if (scTimer.value) return;\n        scTimer.value = setTimeout(() => {\n          scY.value = window.scrollY;\n          clearTimeout(scTimer.value);\n          scTimer.value = 0;\n        }, 100);\n      });\n    });\n\n    const scrollToTop = () => {\n      window.scrollTo({\n        top: 0,\n        behavior: \"smooth\",\n      });\n    };\n    return { scrollToTop, showButton };\n  },\n};\n</script>\n\n<style scoped>\n#ScrollTopButton {\n  border: 1px solid var(--gs1-color-ui-2);\n  background-color: var(--gs1-color-ui-1);\n  box-shadow: 0 2px 3px 0 rgb(0 44 108 / 20%);\n  border-radius: 100px;\n  transition: bottom 0.2s ease;\n  bottom: 20px;\n  cursor: pointer;\n  display: none;\n  height: 70px;\n  position: fixed;\n  right: 20px;\n  width: 70px;\n  z-index: 300;\n}\n#ScrollTopButton:hover {\n  box-shadow: 0px 10px 30px rgb(0 44 108 / 20%);\n  bottom: 24px;\n  opacity: 0.8;\n}\n</style>\n","import { render } from \"./TheScrollTopButton.vue?vue&type=template&id=49a7cd4c&scoped=true\"\nimport script from \"./TheScrollTopButton.vue?vue&type=script&lang=js\"\nexport * from \"./TheScrollTopButton.vue?vue&type=script&lang=js\"\n\nimport \"./TheScrollTopButton.vue?vue&type=style&index=0&id=49a7cd4c&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-49a7cd4c\"\n\nexport default script","import { render } from \"./App.vue?vue&type=template&id=4046d642\"\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=4046d642&lang=css\"\nscript.render = render\n\nexport default script","<template>\n  <div>\n    <section class=\"gs1-background-color-orange\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-12 gs1-navigator-spacer\">\n            <h2 class=\"gs1-h2 mt-0 mb-2 text-white\">GPC Browser</h2>\n            <p class=\"fs-6 mb-0 text-white\">\n              The GPC browser allows you to browse all components (Segment, Family, Class, Brick and Attribute) of the current GPC schema.\n            </p>\n            <p class=\"fs-6 mb-0 mt-2\">\n              <a href=\"#FindOutMore\" class=\"fs-6 fst-italic text-white\">Access full GPC Standard files</a>\n            </p>\n          </div>\n        </div>\n      </div>\n    </section>\n\n    <section class=\"gs1-background-color-ui-1 gs1-navigator-spacer pt-3\">\n      <browser\n        @onLanguageChange=\"handleLanguageChange\"\n        @onPublicationChange=\"handlePublicationChange\"\n        class=\"p-3 bg-white border border-1 rounded\"\n      ></browser>\n    </section>\n    <section class=\"gs1-background-color-ui-1 gs1-navigator-spacer pt-0\">\n      <BrowserDownload class=\"g-0\" :selectedLanguage=\"selectedLanguage\" :selectedPublication=\"selectedPublication\"></BrowserDownload>\n    </section>\n    <section class=\"gs1-background-color-blue\">\n      <div class=\"container gs1-navigator-spacer\">\n        <div class=\"row\">\n          <div class=\"col-12\">\n            <h2 class=\"gs1-h2 mt-0 mb-2 text-white\">Any questions?</h2>\n            <p class=\"fs-6 text-white mb-4\">We can help you to get started with GPC.</p>\n            <GS1LinkButton\n              @click=\"trackEventBeforeRedirect('Contact your local GS1 office')\"\n              link=\"https://www.gs1.org/contact\"\n              class=\"orange\"\n              text=\"Contact your local GS1 office\"\n            ></GS1LinkButton>\n          </div>\n        </div>\n      </div>\n    </section>\n    <section class=\"gs1-background-color-ui-1\">\n      <div class=\"container\">\n        <div class=\"row gs1-navigator-spacer\" id=\"FindOutMore\">\n          <h3 class=\"gs1-h3 mb-4 mt-0\">Find out more</h3>\n          <div class=\"col-lg-6\">\n            <div class=\"d-flex flex-column\">\n              <a :class=\"{ 'pe-none text-muted text-decoration-none fst-italic': downloadState.isDownloadingGpcZip }\" class=\"mb-3\" @click=\"downloadGpcAsZip\" href=\"#\" rel=\"noopener\"\n                >{{ downloadState.isDownloadingGpcZip ? \"Downloading GPC package (.zip)...\" : \"Current GPC standard full package (.zip)\" }}</a\n              >\n              <a :class=\"{ 'pe-none text-muted text-decoration-none fst-italic': downloadState.isDownloadingGdsnZip }\" class=\"mb-3\" @click=\"downloadGdsnAsZip\" href=\"#\" rel=\"noopener\"\n                >{{ downloadState.isDownloadingGdsnZip ? \"Downloading GDSN GPC package (.zip)...\" : \"Current GDSN GPC version full package (.zip)\" }}</a\n              >\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('Archive versions of the GPC standard')\"\n                href=\"https://ref.gs1.org/standards/gpc/archive\"\n                target=\"_self\"\n                >Archive versions of the GPC standard</a\n              >\n            </div>\n          </div>\n          <div class=\"col-lg-6\">\n            <div class=\"d-flex flex-column\">\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('How GPC works')\"\n                href=\"https://www.gs1.org/standards/gpc/how-gpc-works\"\n                >How GPC works</a\n              >\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('GPC Browser Guide')\"\n                href=\"https://www.gs1.org/sites/gs1/files/docs/gpc/GPC-Browser-Guide.pdf\"\n                >GPC Browser Guide</a\n              >\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('GPC Browser Service User Guide video')\"\n                href=\"https://www.youtube.com/watch?v=0ef1PX7RRrA\"\n                target=\"_\"\n                >GPC Browser Service User Guide Video</a\n              >\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('GPC Development &amp; Implementation Guide')\"\n                href=\"https://gs1go2.azureedge.net/cdn/ff/sPhCuyCzpmueHnVAaVIFlQZPvTo6dJcfxi02DSCaVg8/1675886575/public/inline-files/202301-gs1-gpc-development-and-implementation-guideline.pdf\"\n                >GPC Development &amp; Implementation Guide</a\n              >\n              <a\n                class=\"mb-3\"\n                @click=\"trackEventBeforeRedirect('FAQs on Global Product Classification')\"\n                href=\"https://support.gs1.org/support/solutions/folders/43000594988\"\n                >FAQs on Global Product Classification</a\n              >\n            </div>\n          </div>\n        </div>\n      </div>\n    </section>\n  </div>\n</template>\n\n<script>\nimport Browser from \"../components/browser/Browser.vue\";\nimport BrowserDownload from \"../components/browser/BrowserDownload.vue\";\nimport GS1LinkButton from \"../components/shared/GS1LinkButton.vue\";\nimport { ref } from \"@vue/reactivity\";\nimport useGtm from \"../composables/useGtm\";\nimport usePublication from \"../composables/usePublication\";\nimport fileService from \"../services/fileService\";\n\nexport default {\n  components: { Browser, GS1LinkButton, BrowserDownload },\n  setup() {\n    const { downloadPublicationAsZipAsync } = usePublication();\n    const { trackEvent } = useGtm();\n\n    const downloadState = ref({\n      isDownloadingGpcZip: false,\n      isDownloadingGdsnZip: false,\n    });\n\n    const selectedLanguage = ref({});\n    const selectedPublication = ref(null);\n\n    const handleLanguageChange = (language) => {\n      selectedLanguage.value = language;\n    };\n    const handlePublicationChange = (publication) => {\n      selectedPublication.value = publication;\n    };\n\n    const trackEventBeforeRedirect = (title) => {\n      trackEvent(\"gpc_link_click\", {\n        title: title,\n      });\n    };\n\n    const downloadZipPackage = async (standard) => {\n      event.preventDefault();\n      let data = await downloadPublicationAsZipAsync(standard);\n      fileService.downloadZip(data.name, data.file);\n      return data;\n    };\n\n    const downloadGpcAsZip = async () => {\n      if (downloadState.value.isDownloadingGpcZip) {\n        return;\n      }\n      downloadState.value.isDownloadingGpcZip = true;\n      const response = await downloadZipPackage(\"gpc\");\n      if (response.isSuccess) {\n        trackEventBeforeRedirect(\"Current GPC standard full package (.zip)\");\n      }\n      downloadState.value.isDownloadingGpcZip = false;\n    };\n\n    const downloadGdsnAsZip = async () => {\n      if (downloadState.value.isDownloadingGdsnZip) {\n        return;\n      }\n      downloadState.value.isDownloadingGdsnZip = true;\n      const response = await downloadZipPackage(\"gdsn\");\n      if (response.isSuccess) {\n        trackEventBeforeRedirect(\"Current GDSN GPC version full package (.zip)\");\n      }\n      downloadState.value.isDownloadingGdsnZip = false;\n    };\n\n    return {\n      downloadState,\n      selectedLanguage,\n      selectedPublication,\n      handleLanguageChange,\n      handlePublicationChange,\n      trackEventBeforeRedirect,\n      downloadGpcAsZip,\n      downloadGdsnAsZip,\n    };\n  },\n};\n</script>\n\n<style scoped>\n.spinner-download {\n  height: 1.25rem;\n  width: 1.25rem;\n}\n</style>\n","<template>\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-12\">\n        <tooltip-info style=\"width: 46px\" tooltipTitle=\"Advanced Search Options\" :show=\"isNoResultsFound\"></tooltip-info>\n        <div class=\"input-group gs1-input-group\">\n          <broswer-search-config-dropdown></broswer-search-config-dropdown>\n          <browser-language-dropdown @onChange=\"handleChangeLanguageSelect\"></browser-language-dropdown>\n          <browser-publication-dropdown :languageId=\"selectedLanguageId\" @onChange=\"handleChangePublicationSelect\"></browser-publication-dropdown>\n          <div class=\"w-100 d-block d-sm-none\"></div>\n          <browser-search @onSearch=\"handleSearch\"></browser-search>\n        </div>\n      </div>\n    </div>\n    <div class=\"row my-1\">\n      <div class=\"col-md-5 d-sm-none d-md-block\"></div>\n      <div class=\"col-2 col-sm-2 col-md-2 d-flex justify-content-center\">\n        <div v-show=\"isLoading\" class=\"search-spinner spinner-border gs1-color-orange-accessible mx-2 fs-6\" role=\"status\">\n          <span class=\"visually-hidden\">Loading...</span>\n        </div>\n      </div>\n      <div class=\"col-md-5 d-sm-none d-md-block\"></div>\n    </div>\n    <div class=\"row\">\n      <div class=\"col-12\" v-show=\"isNoResultsFound\">\n        <div class=\"fw-bold\">Sorry, no search results found!</div>\n        <div class=\"fs-6\">\n          We were unable to find any result for the terms you have typed in. Please refine your search in the advanced search options menu.\n        </div>\n        <div class=\"fs-6 mt-3\">\n          <div>Search Tips:</div>\n          <ul>\n            <li class=\"m-0\">Make sure that all words are spelled correctly</li>\n            <li class=\"m-0\">Use a more generic search term (Trademarked names are generally not used in the Classification)</li>\n            <li class=\"m-0\">Try to use a broad criteria or partial word searches</li>\n          </ul>\n        </div>\n        <div class=\"fs-6\">\n          <div>Still can't find what you are looking for?</div>\n          <ul>\n            <li class=\"m-0\">\n              <span>\n                If you are from the country of Egypt, please email\n                <a href=\"mailto:einvoice@gs1eg.org?subject=GPC Browser&body=Please provide product name or description (image optional).\"\n                  >einvoice@gs1eg.org</a\n                >\n                for help.\n              </span>\n            </li>\n            <li class=\"m-0\">\n              <span>\n                Other countries please email\n                <a href=\"mailto:helpdesk@gs1.org?subject=GPC Browser&body=Please provide product name or description (image optional).\"\n                  >helpdesk@gs1.org</a\n                >\n                for help.\n              </span>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"col-12\" v-show=\"treeData.length > 0\">\n        <div :key=\"treeKey\">\n          <browser-tree-item v-for=\"item in treeData\" :key=\"item.code\" :item=\"item\"></browser-tree-item>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport BrowserTreeItem from \"./BrowserTreeItem.vue\";\nimport BrowserLanguageDropdown from \"./BrowserLanguageDropdown.vue\";\nimport BrowserPublicationDropdown from \"./BrowserPublicationDropdown.vue\";\nimport useTree from \"../../composables/useTree\";\nimport useSearch from \"../../composables/useSearch\";\nimport BrowserSearch from \"./BrowserSearch.vue\";\nimport { computed, nextTick, ref } from \"@vue/runtime-core\";\nimport BroswerSearchConfigDropdown from \"./BroswerSearchConfigDropdown.vue\";\nimport useSearchConfigurationSingleton from \"../../composables/useSearchConfigurationSingleton\";\nimport useLanguage from \"../../composables/useLanguage\";\nimport TooltipInfo from \"../shared/TooltipInfo.vue\";\nexport default {\n  components: { BrowserTreeItem, BrowserLanguageDropdown, BrowserPublicationDropdown, BrowserSearch, BroswerSearchConfigDropdown, TooltipInfo },\n  emits: [\"onLanguageChange\", \"onPublicationChange\"],\n  setup(props, { emit }) {\n    const { languages } = useLanguage();\n    const { treeData, fetchPublishedSchemaTreeAsync, isFetchingSegmentFamilyClasses, isFetchingTree, clearTheTree, abortTreeFetching } = useTree();\n    const { searchAsync } = useSearch();\n    const { searchConfiguration } = useSearchConfigurationSingleton();\n\n    let fetchTreePromise = Promise.resolve();\n    const selectedLanguageId = ref(0);\n    const treeKey = ref(0);\n    const isSearching = ref(false);\n\n    const isLoading = computed(() => {\n      return isSearching.value || isFetchingSegmentFamilyClasses.value;\n    });\n    const isNoResultsFound = computed(() => {\n      return !isLoading.value && !isFetchingTree.value && treeData.value.every((f) => f.isOutOfSearch);\n    });\n\n    const handleChangeLanguageSelect = async (languageId) => {\n      selectedLanguageId.value = languageId;\n      emit(\n        \"onLanguageChange\",\n        languages.value.find((lang) => lang.languageId == languageId)\n      );\n    };\n\n    const handleChangePublicationSelect = async (publication) => {\n      if (publication != null) {\n        abortTreeFetching();\n        await fetchTreePromise;\n        fetchTreePromise = fetchPublishedSchemaTreeAsync(publication.publicationId);\n      } else {\n        abortTreeFetching();\n        await fetchTreePromise;\n        await nextTick();\n        clearTheTree();\n      }\n      emit(\"onPublicationChange\", publication);\n    };\n\n    const handleSearch = (text) => {\n      isSearching.value = true;\n      setTimeout(async () => {\n        if (searchConfiguration.includeAttributesAndValues) {\n          await fetchTreePromise;\n        }\n        await searchAsync(treeData, text, searchConfiguration);\n        isSearching.value = false;\n        ++treeKey.value; //trigger rerender component\n      }, 100);\n    };\n\n    return {\n      treeData,\n      selectedLanguageId,\n      handleChangeLanguageSelect,\n      handleChangePublicationSelect,\n      handleSearch,\n      isSearching,\n      treeKey,\n      isLoading,\n      isNoResultsFound,\n    };\n  },\n};\n</script>\n<style scoped>\n.search-spinner {\n  height: 1.5rem;\n  width: 1.5rem;\n  border-width: 0.2em;\n}\n.publication-name {\n  font-weight: 500;\n}\n</style>\n","<template>\n  <ul class=\"m-0 p-0 tree\">\n    <li v-if=\"isItemOutOfSearch\" class=\"tree-node mb-0\" :class=\"{ 'has-child': isFolder, loading: isLoadingTreeItem }\">\n      <div class=\"tree-content rounded\">\n        <div @click=\"toggle\" class=\"d-flex\">\n          <BIconChevronDown v-show=\"isOpen && !isLoadingTreeItem\" class=\"tree-arrow\" :class=\"{ expanded: isOpen, 'has-child': isFolder }\"></BIconChevronDown>\n          <BIconChevronRight v-show=\"!isOpen && !isLoadingTreeItem\" class=\"tree-arrow\" :class=\"{ expanded: isOpen, 'has-child': isFolder }\"></BIconChevronRight>\n          <div v-show=\"isLoadingTreeItem\" class=\"spinner-border gs1-color-orange mx-2 fs-6\" role=\"status\">\n            <span class=\"visually-hidden\">Loading...</span>\n          </div>\n        </div>\n        <div class=\"tree-item-main\">\n          <span @click=\"toggle\" class=\"item-level\">{{ getLevelTitle(item.level) }} </span>\n          <span class=\"item-code\" v-html=\"treeItemCode\"></span>\n          <span class=\"item-title\" v-html=\"treeItemTitle\"></span>\n          <span v-if=\"isDefinitionPresent\" @click=\"toggleDefinition\" class=\"info\">\n            <BIconCaretDownSquare v-if=\"!isDefinitionOpen\"></BIconCaretDownSquare>\n            <BIconCaretUpSquare v-if=\"isDefinitionOpen\" class=\"gs1-color-blue\"></BIconCaretUpSquare>\n          </span>\n        </div>\n      </div>\n      <div v-if=\"isDefinitionPresent\" class=\"d-flex definition-block align-items-center rounded\">\n        <transition name=\"fade\">\n          <div v-if=\"isDefinitionOpen\" class=\"item-definition rounded\">\n            <div class=\"item-definition-includes\">\n              <span class=\"fw-bold\">Definition: </span>\n              <span v-html=\"treeItemDefinition\"></span>\n            </div>\n            <div v-show=\"isDefinitionExcludesPresent\" class=\"item-definition-excludes\">\n              <span class=\"fw-bold\">Definition Excludes: </span>\n              <span v-html=\"treeItemDefinitionExcludes\"></span>\n            </div>\n          </div>\n        </transition>\n      </div>\n      <transition name=\"fade\">\n        <ul v-if=\"isOpen && isFolder\" class=\"tree-children\">\n          <tree-item v-for=\"child in item.childs\" :key=\"child.code\" :item=\"child\"></tree-item>\n        </ul>\n      </transition>\n    </li>\n  </ul>\n</template>\n\n<script>\nimport { computed, onMounted, ref } from \"vue\";\nimport useTree from \"../../composables/useTree\";\nimport { BIconChevronDown, BIconChevronRight, BIconCaretDownSquare, BIconCaretUpSquare } from \"bootstrap-icons-vue\";\nexport default {\n  components: { BIconChevronDown, BIconChevronRight, BIconCaretDownSquare, BIconCaretUpSquare },\n  name: \"tree-item\",\n  props: { item: Object },\n  setup(props) {\n    const { getLevelTitle, isFetchingAttributesAndValues, isLoading } = useTree();\n    const isOpen = ref(false);\n    const isDefinitionOpen = ref(false);\n\n    const isFolder = computed(() => {\n      return props.item.childs && props.item.childs.length;\n    });\n\n    const isLoadingTreeItem = computed(() => {\n      if (isFetchingAttributesAndValues.value) {\n        return isLoading(props.item.level);\n      }\n      return false;\n    });\n\n    const isItemOutOfSearch = computed(() => {\n      return !props.item.isOutOfSearch || props.item.isOutOfSearch == null;\n    });\n\n    const treeItemCode = computed(() => {\n      if (props.item.codeSearch == null || props.item.codeSearch == \"\") {\n        return props.item.code;\n      }\n      return props.item.codeSearch;\n    });\n\n    const treeItemTitle = computed(() => {\n      if (props.item.titleSearch == null || props.item.titleSearch == \"\") {\n        return props.item.title;\n      }\n      return props.item.titleSearch;\n    });\n\n    const treeItemDefinition = computed(() => {\n      if (props.item.definitionSearch == null || props.item.definitionSearch == \"\") {\n        return props.item.definition;\n      }\n      return props.item.definitionSearch;\n    });\n\n    const treeItemDefinitionExcludes = computed(() => {\n      if (props.item.definitionExcludesSearch == null || props.item.definitionExcludesSearch == \"\") {\n        return props.item.definitionExcludes;\n      }\n      return props.item.definitionExcludesSearch;\n    });\n\n    const isDefinitionPresent = computed(() => {\n      return treeItemDefinition.value != null && treeItemDefinition.value !== \"\";\n    });\n\n    const isDefinitionExcludesPresent = computed(() => {\n      return treeItemDefinitionExcludes.value != null && treeItemDefinitionExcludes.value !== \"\";\n    });\n\n    onMounted(() => {\n      if (props.item.isOpen) {\n        isOpen.value = true;\n      }\n      if (props.item.definitionSearch != null && props.item.definitionSearch !== \"\") {\n        isDefinitionOpen.value = true;\n      }\n      if (props.item.definitionExcludesSearch != null && props.item.definitionExcludesSearch !== \"\") {\n        isDefinitionOpen.value = true;\n      }\n    });\n\n    const toggle = () => {\n      if (isFolder.value) {\n        isOpen.value = !isOpen.value;\n      }\n    };\n    const toggleDefinition = () => {\n      if (isDefinitionPresent.value) {\n        isDefinitionOpen.value = !isDefinitionOpen.value;\n      }\n    };\n\n    return {\n      isOpen,\n      isFolder,\n      isLoadingTreeItem,\n      isItemOutOfSearch,\n      toggle,\n      toggleDefinition,\n      getLevelTitle,\n      treeItemCode,\n      treeItemTitle,\n      treeItemDefinition,\n      treeItemDefinitionExcludes,\n      isDefinitionPresent,\n      isDefinitionExcludesPresent,\n      isDefinitionOpen,\n    };\n  },\n};\n</script>\n\n<style scoped>\n.tree {\n  font-size: .875rem;\n}\n.tree-children {\n  margin-bottom: 0;\n  padding-left: 3rem !important;\n}\n.tree-node {\n  display: flex;\n  flex-direction: column;\n  position: relative;\n  box-sizing: border-box;\n}\n.tree-content {\n  display: flex;\n  align-items: center;\n  padding: 5px;\n  margin: 0;\n  cursor: default;\n  width: 100%;\n  box-sizing: border-box;\n}\n.tree-content .spinner-border {\n  height: 1rem;\n  width: 1rem;\n  border-width: 0.1em;\n}\n.tree-node:not(.selected) > .tree-content:hover {\n  background: var(--gs1-color-ui-2);\n}\n.tree-node.selected > .tree-content {\n  background-color: #e7eef7;\n}\n.tree-node.disabled > .tree-content:hover {\n  background: inherit;\n}\n.tree-node.loading .tree-arrow {\n  margin-left: 0;\n  width: 30px;\n  position: relative;\n}\n.tree-arrow {\n  flex-shrink: 0;\n  cursor: pointer;\n  margin-left: 30px;\n  width: 0;\n}\n.tree-arrow.has-child {\n  margin-left: 0;\n  width: 30px;\n  position: relative;\n}\n.tree-arrow.has-child:after {\n  border: 1.5px solid #494646;\n  position: absolute;\n  border-left: 0;\n  border-top: 0;\n  left: 9px;\n  top: 50%;\n  height: 9px;\n  width: 9px;\n  transform: rotate(-45deg) translateY(-50%) translateX(0);\n  transition: transform 0.25s;\n  transform-origin: center;\n}\n.tree-arrow.has-child.rtl:after {\n  border: 1.5px solid #494646;\n  position: absolute;\n  border-right: 0;\n  border-bottom: 0;\n  right: 0px;\n  top: 50%;\n  height: 9px;\n  width: 9px;\n  transform: rotate(-45deg) translateY(-50%) translateX(0);\n  transition: transform 0.25s;\n  transform-origin: center;\n}\n.tree-arrow.expanded.has-child:after {\n  transform: rotate(45deg) translateY(-50%) translateX(-5px);\n}\n.tree-arrow:after {\n  position: absolute;\n  display: block;\n  content: \"\";\n}\n.tree-arrow:hover {\n  color: var(--gs1-color-blue);\n}\n.fade-enter-active,\n.fade-leave-active {\n  transition: opacity 0.3s, transform 0.3s;\n  transform: translateX(0);\n}\n.fade-enter-from,\n.fade-leave-to {\n  opacity: 0;\n  transform: translateX(-2em);\n}\n\n.item-level {\n  color: var(--gs1-color-ui-6);\n  margin-right: 10px;\n  cursor: pointer;\n}\n.item-level:hover {\n  color: var(--gs1-color-blue);\n}\n.item-code {\n  margin-right: 10px;\n  font-weight: 500;\n}\n.item-title {\n  margin-right: 10px;\n}\n.search-keyword {\n  color: white;\n  background-color: #212529 !important;\n}\n.info {\n  margin-right: 10px;\n  cursor: pointer;\n}\n.info > svg {\n  width: 20px;\n  height: 20px;\n  color: var(--gs1-color-ui-6);\n}\n.definition-block {\n  margin-left: 1.875rem;\n  color: var(--gs1-color-blue);\n  background: var(--gs1-color-ui-1);\n}\n.info:hover > svg {\n  color: var(--gs1-color-blue);\n}\n.item-definition {\n  padding: 0.5rem;\n}\n.tree-item-main {\n  white-space: nowrap !important;\n  overflow-wrap: break-word;\n}\n/* Medium devices (tablets, less than 992px) */\n@media (max-width: 991.98px) {\n  .tree-item-main {\n    white-space: initial !important;\n  }\n}\n</style>\n","export default (function () {\n  const ClassificationLevel = {\n    Segment: 1,\n    Family: 2,\n    Class: 3,\n    Brick: 4,\n    Attribute: 5,\n    Value: 6,\n  };\n\n  return Object.freeze({\n    ClassificationLevel,\n  });\n})();\n","import appSettings from \"../configuration/appSettings\";\n\nexport async function httpGet(path, abortSignal = null) {\n  try {\n    let response = await fetch(`${appSettings.API_URL}${path}`, getConfig(\"get\", null, abortSignal));\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText };\n    }\n    return response.json();\n  } catch (error) {\n    error.name == \"AbortError\" && console.log(\"The user aborted a request\");\n    throw error;\n  }\n}\n\nexport async function httpPost(path, body, abortSignal = null) {\n  try {\n    let response = await fetch(`${appSettings.API_URL}${path}`, getConfig(\"post\", body, abortSignal));\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText };\n    }\n    return response.json();\n  } catch (error) {\n    console.log(error.name);\n    throw error;\n  }\n}\n\nexport async function httpPut(path, body, abortSignal = null) {\n  try {\n    let response = await fetch(`${appSettings.API_URL}${path}`, getConfig(\"put\", body, abortSignal));\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText };\n    }\n    return response.json();\n  } catch (error) {\n    console.log(error.name);\n    throw error;\n  }\n}\n\nexport async function httpCustom(path, config, abortSignal = null) {\n  if (abortSignal) {\n    config.signal = abortSignal;\n  }\n  return fetch(`${appSettings.API_URL}${path}`, config);\n}\n\nexport function getFileName(response) {\n  if (response != null && response.headers != null) {\n    const header = response.headers.get(\"Content-Disposition\");\n    if (header) {\n      return header.match(/filename=(.+);/)[1].replace(/(^\")|(\"$)/g, \"\");\n    }\n  }\n  return \"File\";\n}\n\nfunction getConfig(method, body = \"\", abortSignal = null) {\n  let config = {\n    headers: { \"Content-Type\": \"application/json;charset=utf-8\" },\n  };\n  if (abortSignal) {\n    config.signal = abortSignal;\n  }\n  if (method === \"get\") {\n    config.method = method.toUpperCase();\n  }\n  if (method === \"post\") {\n    config.method = method.toUpperCase();\n    config.body = JSON.stringify(body);\n  }\n  if (method === \"put\") {\n    config.method = method.toUpperCase();\n    config.body = JSON.stringify(body);\n  }\n\n  return config;\n}\n","import appSettings from \"../configuration/appSettings\";\nimport { getFileName, httpCustom, httpGet } from \"../services/httpService\";\n\nexport default (function () {\n  async function getLanguagesAsync() {\n    return httpGet(`/browser/language/all`);\n  }\n\n  async function getPublicationsAsync(languageId) {\n    return httpGet(`/browser/publication?languageId=${languageId}`);\n  }\n\n  async function getPreviousPublicationAsync(publicationId) {\n    return httpGet(`/browser/publication/previous?publicationId=${publicationId}`);\n  }\n\n  async function isLatestPublicationAsync(publicationId) {\n    return httpGet(`/browser/publication/islatest?publicationId=${publicationId}`);\n  }\n\n  async function getSegmentsAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/segment?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getFamiliesAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/family?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getClassesAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/class?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getBricksAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/brick?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getAttributesAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/attribute?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getAttributeValuesAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/attribute-value?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function getRelationsAsync(publicationId, abortSignal) {\n    return httpGet(`/browser/brick-attribute-value?publicationId=${publicationId}`, abortSignal);\n  }\n\n  async function exportAsJsonAsync(publicationId) {\n    let url = `/browser/download/publication/${publicationId}/json`;\n    let response = await httpCustom(url, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/json;charset=utf-8\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText, name: \"Empty\" };\n    } else {\n      let data = await response.json();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  async function exportAsXmlAsync(publicationId) {\n    let url = `/browser/download/publication/${publicationId}/xml`;\n    let response = await httpCustom(url, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/xml;charset=utf-8\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText, name: \"Empty\" };\n    } else {\n      let data = await response.text();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  async function exportAsXlsxAsync(publicationId) {\n    let url = `/browser/download/publication/${publicationId}/xlsx`;\n    let response = await httpCustom(url, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText, name: \"Empty\" };\n    } else {\n      let data = await response.blob();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  async function exportAsZipAsync(standard) {\n    let url = `/browser/download/publication/${standard}/zip`;\n    let response = await httpCustom(url, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/zip\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText, name: \"Empty\" };\n    } else {\n      let data = await response.blob();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  async function exportDeltaAsJsonAsync(languageId, publicationId = null) {\n    let response = await httpCustom(`/publication/delta/json?languageId=${languageId}&publicationId=${publicationId}`, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/json;charset=utf-8\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText };\n    } else {\n      let data = await response.json();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  async function exportDeltaAsXlsxAsync(languageId, publicationId = null) {\n    let response = await httpCustom(`/publication/delta/xlsx?languageId=${languageId}&publicationId=${publicationId}`, {\n      method: \"GET\",\n      headers: { \"Content-Type\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" },\n    });\n    if (!response.ok) {\n      return { isSuccess: false, message: response.statusText };\n    } else {\n      let data = await response.blob();\n      return { isSuccess: true, name: getFileName(response), file: data };\n    }\n  }\n\n  function getDownloadPublicationReleaseNoteAttachmentUrl(publicationId) {\n    return `${appSettings.API_URL}/publication/attachment/download?publicationId=${publicationId}`;\n  }\n\n  return Object.freeze({\n    getLanguagesAsync,\n    getPublicationsAsync,\n    getPreviousPublicationAsync,\n    isLatestPublicationAsync,\n    getSegmentsAsync,\n    getFamiliesAsync,\n    getClassesAsync,\n    getBricksAsync,\n    getAttributesAsync,\n    getAttributeValuesAsync,\n    getRelationsAsync,\n    exportAsJsonAsync,\n    exportAsXmlAsync,\n    exportAsXlsxAsync,\n    exportAsZipAsync,\n    exportDeltaAsJsonAsync,\n    exportDeltaAsXlsxAsync,\n    getDownloadPublicationReleaseNoteAttachmentUrl,\n  });\n})();\n","import { ref } from \"@vue/reactivity\";\nimport { computed, nextTick } from \"@vue/runtime-core\";\nimport enums from \"../common/enums\";\nimport gpcBrowserRepository from \"../repositories/gpcBrowserRepository\";\n\nconst isFetchingTree = ref(false);\nconst isFetchingSegmentFamilyClasses = ref(true);\nconst isFetchingBricks = ref(true);\nconst isFetchingAttributesAndValues = ref(true);\n\nexport default function useTree() {\n  const treeData = ref([]);\n  let abortController = new AbortController();\n\n  function clearTheTree() {\n    treeData.value = [];\n  }\n\n  function abortTreeFetching() {\n    abortController.abort();\n  }\n\n  async function fetchPublishedSchemaTreeAsync(publicationId) {\n    try {\n      abortController = new AbortController();\n      isFetchingTree.value = true;\n      treeData.value = [];\n      await nextTick();\n      const segmentPromise = gpcBrowserRepository.getSegmentsAsync(publicationId, abortController.signal);\n      const familyPromise = gpcBrowserRepository.getFamiliesAsync(publicationId, abortController.signal);\n      const classPromise = gpcBrowserRepository.getClassesAsync(publicationId, abortController.signal);\n      const brickPromise = gpcBrowserRepository.getBricksAsync(publicationId, abortController.signal);\n      const attributePromise = gpcBrowserRepository.getAttributesAsync(publicationId, abortController.signal);\n      const attrValuePromise = gpcBrowserRepository.getAttributeValuesAsync(publicationId, abortController.signal);\n      const relationPromise = gpcBrowserRepository.getRelationsAsync(publicationId, abortController.signal);\n      isFetchingSegmentFamilyClasses.value = true;\n      addSegments(await segmentPromise);\n      addFamilies(await familyPromise);\n      addClasses(await classPromise);\n      isFetchingSegmentFamilyClasses.value = false;\n      isFetchingBricks.value = true;\n      const bricksResponse = await brickPromise;\n      addBricks(bricksResponse.result);\n      isFetchingBricks.value = false;\n      isFetchingAttributesAndValues.value = true;\n      const attributesResponse = await attributePromise;\n      const attributeValuesResponse = await attrValuePromise;\n      const relationsResponse = await relationPromise;\n      addAttributesAndValues(bricksResponse.result, attributesResponse.result, attributeValuesResponse.result, relationsResponse.result);\n      isFetchingAttributesAndValues.value = false;\n      isFetchingTree.value = false;\n    } catch (err) {\n      if (err.name != \"AbortError\") throw err;\n    }\n  }\n\n  function addSegments(response) {\n    treeData.value = response.result;\n  }\n  function addFamilies(response) {\n    let familyDictionary = mapToDictionary(response.result, \"parentCode\");\n    treeData.value.forEach((segment) => {\n      if (familyDictionary[segment.code] != null) {\n        segment.childs.push(...familyDictionary[segment.code]);\n      }\n    });\n  }\n  function addClasses(response) {\n    let classDictionary = mapToDictionary(response.result, \"parentCode\");\n    treeData.value.forEach((segment) => {\n      segment.childs.forEach((family) => {\n        if (classDictionary[family.code] != null) {\n          family.childs.push(...classDictionary[family.code]);\n        }\n      });\n    });\n  }\n\n  function addBricks(items) {\n    let brickDictionary = mapToDictionary(items, \"parentCode\");\n    treeData.value.forEach((segment) => {\n      segment.childs.forEach((family) => {\n        family.childs.forEach((clas) => {\n          if (brickDictionary[clas.code] != null) {\n            clas.childs.push(...brickDictionary[clas.code]);\n          }\n        });\n      });\n    });\n  }\n\n  function addAttributesAndValues(bricks, attributes, values, relations) {\n    let brickDictionary = Object.assign({}, ...bricks.map((x) => ({ [x.code]: x })));\n    let attributeDictionary = Object.assign({}, ...attributes.map((x) => ({ [x.code]: x })));\n    let valueDictionary = Object.assign({}, ...values.map((x) => ({ [x.code]: x })));\n    relations.forEach((rel) => {\n      if (\n        brickDictionary[rel.brickCode] != null &&\n        attributeDictionary[rel.attributeCode] != null &&\n        valueDictionary[rel.attributeValueCode] != null\n      ) {\n        let relatedAttribute = brickDictionary[rel.brickCode].childs.find((f) => f.code == rel.attributeCode);\n        if (!relatedAttribute) {\n          relatedAttribute = Object.assign({}, attributeDictionary[rel.attributeCode]);\n          relatedAttribute.childs = [];\n          brickDictionary[rel.brickCode].childs.push(relatedAttribute);\n        }\n        let relatedValue = relatedAttribute.childs.find((f) => f.code == rel.attributeValueCode);\n        if (!relatedValue) {\n          relatedAttribute.childs.push(Object.assign({}, valueDictionary[rel.attributeValueCode]));\n          relatedAttribute.childs.sort((a, b) => a.title.localeCompare(b.title));\n        }\n      }\n    });\n  }\n\n  function isLoading(level) {\n    switch (level) {\n      case enums.ClassificationLevel.Brick:\n        return true;\n      case enums.ClassificationLevel.Attribute:\n        return true;\n      case enums.ClassificationLevel.AttributeValue:\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  function getLevelTitle(level) {\n    if (level == enums.ClassificationLevel.Value) {\n      return \"Attribute Value\";\n    }\n    return Object.keys(enums.ClassificationLevel).find((key) => enums.ClassificationLevel[key] == level);\n  }\n\n  function mapToDictionary(array, propName) {\n    return array.reduce((prev, curr) => {\n      if (prev[curr[propName]] == null) {\n        prev[curr[propName]] = [curr];\n      } else {\n        prev[curr[propName]].push(curr);\n      }\n      return prev;\n    }, {});\n  }\n\n  return {\n    treeData: computed(() => treeData.value),\n    isFetchingTree: computed(() => isFetchingTree.value),\n    isFetchingSegmentFamilyClasses: computed(() => isFetchingSegmentFamilyClasses.value),\n    isFetchingBricks: computed(() => isFetchingBricks.value),\n    isFetchingAttributesAndValues: computed(() => isFetchingAttributesAndValues.value),\n    fetchPublishedSchemaTreeAsync,\n    getLevelTitle,\n    isLoading,\n    clearTheTree,\n    abortTreeFetching,\n  };\n}\n","import { render } from \"./BrowserTreeItem.vue?vue&type=template&id=2862147b&scoped=true\"\nimport script from \"./BrowserTreeItem.vue?vue&type=script&lang=js\"\nexport * from \"./BrowserTreeItem.vue?vue&type=script&lang=js\"\n\nimport \"./BrowserTreeItem.vue?vue&type=style&index=0&id=2862147b&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-2862147b\"\n\nexport default script","<template>\n  <button\n    id=\"LanguageDropdown\"\n    class=\"btn btn-outline-secondary gs1-dropdown\"\n    type=\"button\"\n    data-bs-toggle=\"dropdown\"\n    aria-expanded=\"false\"\n    :title=\"selectedLanguageName\"\n  >\n    <span class=\"lang-label\">{{ selectedLanguageName }}</span\n    ><b-icon-chevron-down class=\"ms-1 gs1-color-blue\"></b-icon-chevron-down>\n  </button>\n  <ul class=\"dropdown-menu gs1-dropdown-menu\">\n    <li v-for=\"language in languages\" :key=\"language.languageId\" @click.prevent=\"selectLanguage(language.languageId)\" class=\"m-0\">\n      <a class=\"dropdown-item\" href=\"#\">{{ language.languageName }}</a>\n    </li>\n  </ul>\n</template>\n\n<script>\nimport { computed, nextTick, onMounted, ref, watch } from \"@vue/runtime-core\";\nimport useLanguage from \"../../composables/useLanguage\";\nimport useGtm from \"../../composables/useGtm\";\nimport { BIconChevronDown } from \"bootstrap-icons-vue\";\nimport { useRoute } from \"vue-router\";\nexport default {\n  components: { BIconChevronDown },\n  emits: [\"onChange\"],\n  setup(props, { emit }) {\n    const { languages, fetchLanguagesAsync } = useLanguage();\n    const { trackEvent } = useGtm();\n    const route = useRoute();\n\n    const selectedLanguageId = ref(0);\n    const selectedLanguageName = computed(() => {\n      let lang = languages.value.find((f) => f.languageId == selectedLanguageId.value);\n      return lang == null ? \"Language\" : lang.languageName;\n    });\n\n    watch(selectedLanguageId, (currLanguageId, prevLanguageId) => {\n      if (currLanguageId != prevLanguageId) {\n        emit(\"onChange\", currLanguageId);\n        trackEvent(\"gpc_language_select\", {\n          languageCode: languages.value.find((f) => f.languageId == currLanguageId).languageCode.toLowerCase(),\n        });\n      }\n    });\n\n    onMounted(async () => {\n      await fetchLanguagesAsync();\n      await nextTick();\n      detectUserLanguage();\n      handleQueryParamLanguage();\n    });\n\n    const selectLanguage = (languageId) => {\n      selectedLanguageId.value = languageId;\n    };\n\n    const detectUserLanguage = () => {\n      const browserCulture = navigator.language || navigator.userLanguage;\n      if (!browserCulture) {\n        return;\n      }\n      const correspondingLanguageByCulture = languages.value.find((f) => f.culture == browserCulture);\n      if (correspondingLanguageByCulture) {\n        selectedLanguageId.value = correspondingLanguageByCulture.languageId;\n        return;\n      }\n      const correspondingLanguageByLanguageCode = languages.value.find(\n        (f) => f.languageCode.toLowerCase() == browserCulture.substring(0, 2).toLowerCase()\n      );\n      if (correspondingLanguageByLanguageCode) {\n        selectedLanguageId.value = correspondingLanguageByLanguageCode.languageId;\n        return;\n      }\n      const engLanguage = languages.value.find((f) => f.languageCode.toLowerCase() === \"en\");\n      if (engLanguage) {\n        selectedLanguageId.value = engLanguage.languageId;\n      }\n    };\n\n    const handleQueryParamLanguage = () => {\n      const langParam = route.query.lang;\n      if (!langParam) return;\n      const matchedLanguage = languages.value.find((f) => f.languageCode.toLowerCase() == langParam);\n      if (matchedLanguage) {\n        selectedLanguageId.value = matchedLanguage.languageId;\n      }\n    };\n\n    return {\n      selectedLanguageId,\n      selectedLanguageName,\n      selectLanguage,\n      languages,\n    };\n  },\n};\n</script>\n<style scoped>\n#LanguageDropdown {\n  width: 200px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.lang-label {\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n}\n</style>\n","import { ref } from \"@vue/reactivity\";\nimport { computed } from \"@vue/runtime-core\";\nimport gpcBrowserRepository from \"../repositories/gpcBrowserRepository.js\";\n\nconst languages = ref([]);\nconst isFetchingLanguages = ref(false);\nexport default function useLanguage() {\n  async function fetchLanguagesAsync() {\n    isFetchingLanguages.value = true;\n    const response = await gpcBrowserRepository.getLanguagesAsync();\n    languages.value = response.result;\n    isFetchingLanguages.value = false;\n    return response;\n  }\n\n  function isEnglish(languageId) {\n    const existingLanguage = languages.value.find((f) => f.languageId == languageId);\n    if (!existingLanguage) {\n      return false;\n    }\n    return existingLanguage.languageCode.toLowerCase() === \"en\";\n  }\n\n  return {\n    languages: computed(() => languages.value),\n    isFetchingLanguages: computed(() => isFetchingLanguages.value),\n    fetchLanguagesAsync,\n    isEnglish\n  };\n}\n","export default function useGtm() {\n  const _isGtmAvailable = Array.isArray(window.dataLayer) && (typeof window.gtag === 'function');\n\n  function trackEvent(eventName, params) {\n    if (_isGtmAvailable) {\n        window.gtag(\"event\", eventName, params);\n    }\n  }\n\n  return {\n    trackEvent: trackEvent,\n  };\n}\n","import { render } from \"./BrowserLanguageDropdown.vue?vue&type=template&id=75458584&scoped=true\"\nimport script from \"./BrowserLanguageDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./BrowserLanguageDropdown.vue?vue&type=script&lang=js\"\n\nimport \"./BrowserLanguageDropdown.vue?vue&type=style&index=0&id=75458584&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-75458584\"\n\nexport default script","<template>\n  <button id=\"PublicationDropdown\" class=\"btn btn-outline-secondary gs1-dropdown\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n    <span class=\"publication-label\">{{ selectedPublicationName }}</span>\n    <b-icon-chevron-down class=\"ms-1 gs1-color-blue\"></b-icon-chevron-down>\n  </button>\n  <ul class=\"dropdown-menu gs1-dropdown-menu\">\n    <li v-for=\"publication in publications\" :key=\"publication.publicationId\" @click.prevent=\"selectPublication(publication)\" class=\"m-0\">\n      <a class=\"dropdown-item\" href=\"#\">{{ publication.publicationName }}</a>\n    </li>\n  </ul>\n</template>\n\n<script>\nimport { computed, ref, watch } from \"@vue/runtime-core\";\nimport useLanguage from \"../../composables/useLanguage\";\nimport useGtm from \"../../composables/useGtm\";\nimport { BIconChevronDown } from \"bootstrap-icons-vue\";\nimport usePublication from \"../../composables/usePublication\";\nimport { useRoute } from \"vue-router\";\nexport default {\n  components: { BIconChevronDown },\n  emits: [\"onChange\"],\n  props: {\n    languageId: { type: Number, required: true },\n  },\n  setup(props, { emit }) {\n    const { languages } = useLanguage();\n    const { publications, fetchPublicationsAsync } = usePublication();\n    const { trackEvent } = useGtm();\n    const route = useRoute();\n    let isRouteParamHandled = false\n\n    const selectedPublication = ref(null);\n    const selectedPublicationName = computed(() => (selectedPublication.value == null ? \"...\" : selectedPublication.value.publicationName));\n\n    watch(\n      () => props.languageId,\n      async (id) => {\n        await fetchPublicationsAsync(id);\n        if (publications.value.length > 0) {\n          selectedPublication.value = publications.value[0];\n          handleQueryParamPublication();\n          trackEvent(\"gpc_publication_select\", {\n            languageCode: languages.value.find((f) => f.languageId == props.languageId).languageCode.toLowerCase(),\n            publication: selectedPublication.value.publicationName,\n          });\n        } else {\n          selectedPublication.value = null;\n          emit(\"onChange\", selectedPublication.value);\n        }\n      }\n    );\n\n    watch(selectedPublication, (currPublication, prevPublication) => {\n      emit(\"onChange\", currPublication);\n      if (currPublication != null && currPublication != prevPublication) {\n        trackEvent(\"gpc_publication_select\", {\n          languageCode: languages.value.find((f) => f.languageId == props.languageId).languageCode.toLowerCase(),\n          publication: currPublication.publicationName,\n        });\n      }\n    });\n\n    function selectPublication(publication) {\n      selectedPublication.value = publication;\n    }\n\n    const handleQueryParamPublication = () => {\n      if(isRouteParamHandled) return;\n      const publicationTypes = [\"gdsn\", \"gpc\"];\n      const publicationParam = route.query.publ;\n      if (!publicationParam || !publicationTypes.includes(publicationParam.toLowerCase())) return;\n      const isGDSN = publicationParam.toLowerCase() == publicationTypes[0];\n      const matchedPublication = publications.value.find((f) => f.isGDSN == isGDSN);\n      if (matchedPublication) {\n        selectedPublication.value = matchedPublication;\n      }\n      isRouteParamHandled = true;\n    };\n\n    return {\n      publications,\n      selectedPublicationName,\n      selectPublication,\n    };\n  },\n};\n</script>\n<style scoped>\n#PublicationDropdown {\n  width: 340px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.publication-label {\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n}\n</style>\n","import { computed, ref } from \"vue\";\nimport gpcBrowserRepository from \"../repositories/gpcBrowserRepository\";\n\nconst _publications = ref([]);\nexport default function usePublication() {\n  const _isFetchingPublication = ref(false);\n\n  async function fetchPublicationsAsync(languageId) {\n    _isFetchingPublication.value = true;\n    _publications.value = [];\n    const response = await gpcBrowserRepository.getPublicationsAsync(languageId);\n    _publications.value = response.result;\n    _isFetchingPublication.value = false;\n    return response;\n  }\n\n  async function getPreviousPublicationAsync(publicationId) {\n    return gpcBrowserRepository.getPreviousPublicationAsync(publicationId);\n  }\n  async function isLatestPublicationAsync(publicationId) {\n    return gpcBrowserRepository.isLatestPublicationAsync(publicationId);\n  }\n  async function downloadPublicationAsJsonAsync(id, isStaticFile) {\n    return gpcBrowserRepository.exportAsJsonAsync(id, isStaticFile);\n  }\n  async function downloadPublicationAsXmlAsync(id, isStaticFile) {\n    return gpcBrowserRepository.exportAsXmlAsync(id, isStaticFile);\n  }\n  async function downloadPublicationAsXlsxAsync(id, isStaticFile) {\n    return gpcBrowserRepository.exportAsXlsxAsync(id, isStaticFile);\n  }\n  async function downloadPublicationAsZipAsync(standard) {\n    return gpcBrowserRepository.exportAsZipAsync(standard);\n  }\n  async function downloadDeltaAsJsonAsync(languageId, publicationId = null) {\n    return gpcBrowserRepository.exportDeltaAsJsonAsync(languageId, publicationId);\n  }\n  async function downloadDeltaAsXlsxAsync(languageId, publicationId = null) {\n    return gpcBrowserRepository.exportDeltaAsXlsxAsync(languageId, publicationId);\n  }\n  function getDownloadPublicationReleaseNoteAttachmentUrl(publicationId) {\n    return gpcBrowserRepository.getDownloadPublicationReleaseNoteAttachmentUrl(publicationId);\n  }\n\n  return {\n    downloadPublicationAsJsonAsync,\n    downloadPublicationAsXmlAsync,\n    downloadPublicationAsXlsxAsync,\n    downloadPublicationAsZipAsync,\n    getPreviousPublicationAsync,\n    isLatestPublicationAsync,\n    downloadDeltaAsJsonAsync,\n    downloadDeltaAsXlsxAsync,\n    fetchPublicationsAsync,\n    getDownloadPublicationReleaseNoteAttachmentUrl,\n    publications: computed(() => _publications.value),\n    isFetchingPublicaiton: computed(() => _isFetchingPublication.value),\n  };\n}\n","import { render } from \"./BrowserPublicationDropdown.vue?vue&type=template&id=1bcf1918&scoped=true\"\nimport script from \"./BrowserPublicationDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./BrowserPublicationDropdown.vue?vue&type=script&lang=js\"\n\nimport \"./BrowserPublicationDropdown.vue?vue&type=style&index=0&id=1bcf1918&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-1bcf1918\"\n\nexport default script","import { ref } from \"@vue/reactivity\";\nimport { computed } from \"@vue/runtime-core\";\nimport enums from \"../common/enums\";\n\nexport default function useSearch() {\n  String.prototype.ignoreAccents = function () {\n    return this.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\n  };\n  String.prototype.replaceAt = function (index, replacementLength, replacement) {\n    return this.substr(0, index) + replacement + this.substr(index + replacementLength);\n  };\n  String.prototype.capitalizeFirstLetter = function () {\n    return this.charAt(0).toUpperCase() + this.slice(1);\n  };\n\n  const isSearching = ref(false);\n\n  async function searchAsync(treeData, text, searchConfig) {\n    if (text == null || text == \"\") {\n      cleanupSearch(treeData);\n      return;\n    }\n\n    cleanupSearch(treeData);\n    isSearching.value = true;\n    search(treeData, text.toString().trim(), searchConfig);\n    isSearching.value = false;\n  }\n\n  function search(treeData, textToSearch, searchConfig) {\n    treeData.value.forEach((segment) => {\n      let foundArray = [];\n      foundArray.push(handleSearch(segment, textToSearch, searchConfig));\n      segment.childs.forEach((family) => {\n        foundArray.push(handleSearch(family, textToSearch, searchConfig, [segment]));\n        family.childs.forEach((clas) => {\n          foundArray.push(handleSearch(clas, textToSearch, searchConfig, [segment, family]));\n          clas.childs.forEach((brick) => {\n            foundArray.push(handleSearch(brick, textToSearch, searchConfig, [segment, family, clas]));\n            brick.childs.forEach((attribute) => {\n              foundArray.push(handleSearch(attribute, textToSearch, searchConfig, [segment, family, clas, brick]));\n              attribute.childs.forEach((attributeValue) => {\n                foundArray.push(handleSearch(attributeValue, textToSearch, searchConfig, [segment, family, clas, brick, attribute]));\n              });\n            });\n          });\n        });\n      });\n      if (foundArray.find((f) => f === true)) {\n        segment.isOutOfSearch = false;\n      } else {\n        segment.isOutOfSearch = true;\n      }\n    });\n  }\n\n  const handleSearch = (itemToSearchIn, textToSearch, searchConfig, parents = []) => {\n    if (trySearchInItem(itemToSearchIn, textToSearch, searchConfig)) {\n      parents.forEach((parent) => (parent.isOpen = true));\n      if (searchConfig.trimSearchResults) {\n        parents.forEach((parent) => (parent.isOutOfSearch = false));\n        itemToSearchIn.isSearchedItem = true;\n      }\n      return true;\n    } else {\n      itemToSearchIn.isOpen = false;\n      if (searchConfig.trimSearchResults) {\n        if (parents.length && parents.some((s) => s.isSearchedItem)) {\n          itemToSearchIn.isOutOfSearch = false;\n        } else {\n          itemToSearchIn.isOutOfSearch = true;\n        }\n      }\n      return false;\n    }\n  };\n\n  function cleanupSearch(treeData) {\n    const boolProperties = [\"isOpen\", \"isOutOfSearch\", \"isSearchedItem\"];\n    const stringProperties = [\"codeSearch\", \"titleSearch\", \"definitionSearch\", \"definitionExcludesSearch\"];\n    const cleanupProperties = (item) => {\n      boolProperties.forEach((prop) => (item[prop] = false));\n      stringProperties.forEach((prop) => (item[prop] = null));\n    };\n\n    treeData.value.forEach((segment) => {\n      cleanupProperties(segment);\n      segment.childs.forEach((family) => {\n        cleanupProperties(family);\n        family.childs.forEach((clas) => {\n          cleanupProperties(clas);\n          clas.childs.forEach((brick) => {\n            cleanupProperties(brick);\n            brick.childs.forEach((attribute) => {\n              cleanupProperties(attribute);\n              attribute.childs.forEach((attributeValue) => {\n                cleanupProperties(attributeValue);\n              });\n            });\n          });\n        });\n      });\n    });\n  }\n\n  function trySearchInItem(item, text, searchConfig) {\n    if (\n      !searchConfig.includeAttributesAndValues &&\n      (item.level == enums.ClassificationLevel.Attribute || item.level == enums.ClassificationLevel.Value)\n    ) {\n      return false;\n    }\n\n    return (\n      trySearchInCode(item, text, searchConfig) ||\n      trySearchInTitle(item, text, searchConfig) ||\n      trySearchInDefinitionIncludes(item, text, searchConfig) ||\n      trySearchInDefinitionExcludes(item, text, searchConfig)\n    );\n  }\n\n  const trySearchInCode = (item, text, searchConfig) => {\n    if (searchConfig.searchInCode && item.code.toString().includes(text)) {\n      item.codeSearch = item.code.toString().replace(text, `<span class=\"text-white bg-dark\">${text}</span>`);\n      return true;\n    }\n    return false;\n  };\n\n  const trySearchInTitle = (item, text, searchConfig) => {\n    if (searchConfig.searchInTitle) {\n      item.titleSearch = getSearchResultBasedOnConfig(item.title, text, searchConfig);\n      if (item.titleSearch !== \"\") {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  const trySearchInDefinitionIncludes = (item, text, searchConfig) => {\n    if (searchConfig.searchInDefinitionIncludes && item.definition != null && item.definition !== \"\") {\n      item.definitionSearch = getSearchResultBasedOnConfig(item.definition, text, searchConfig);\n      if (item.definitionSearch !== \"\") {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  const trySearchInDefinitionExcludes = (item, text, searchConfig) => {\n    if (searchConfig.searchInDefinitionExcludes && item.definitionExcludes != null && item.definitionExcludes !== \"\") {\n      item.definitionExcludesSearch = getSearchResultBasedOnConfig(item.definitionExcludes, text, searchConfig);\n      if (item.definitionExcludesSearch !== \"\") {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  const getSearchResultBasedOnConfig = (searchInText, text, searchConfig) => {\n    if (searchConfig.exactWording) {\n      return getExactSearchedText(searchInText, text);\n    }\n    if (searchConfig.searchInWordsCombination) {\n      let keys = {};\n      let words = text.split(\" \").map((m) => m.trim());\n      let searchedText = getSearchedText(searchInText, words, keys);\n      return Object.keys(keys).length >= words.length ? searchedText : \"\";\n    }\n    return getSearchedText(searchInText, [text]);\n  };\n\n  const getSearchedText = (searchInText, words, keyWordsDictionaryToReplace = {}) => {\n    words.forEach((word, index) => {\n      const indexOfMatchedWord = searchInText.ignoreAccents().toLowerCase().indexOf(word.ignoreAccents().toLowerCase());\n      if (indexOfMatchedWord > -1) {\n        let tempKey = `$${index}`;\n        let capitalizedWord = word.capitalizeFirstLetter();\n        if (searchInText.ignoreAccents().indexOf(capitalizedWord.ignoreAccents()) > -1) {\n          keyWordsDictionaryToReplace[tempKey] = `<span class=\"text-white bg-dark\">${capitalizedWord}</span>`;\n          searchInText = searchInText.replaceAt(indexOfMatchedWord, capitalizedWord.length, tempKey);\n          return;\n        }\n        keyWordsDictionaryToReplace[tempKey] = `<span class=\"text-white bg-dark\">${word}</span>`;\n        searchInText = searchInText.replaceAt(indexOfMatchedWord, word.length, tempKey);\n      }\n    });\n\n    if (Object.keys(keyWordsDictionaryToReplace).length) {\n      for (const [key, value] of Object.entries(keyWordsDictionaryToReplace)) {\n        searchInText = searchInText.replace(key, value);\n      }\n    } else {\n      searchInText = \"\";\n    }\n    return searchInText;\n  };\n\n  const getExactSearchedText = (searchInText, wordToSearch) => {\n    const indexOfMatchedWord = searchInText.ignoreAccents().toLowerCase().indexOf(wordToSearch.ignoreAccents().toLowerCase());\n    if (indexOfMatchedWord < 0) {\n      return \"\";\n    }\n    if (indexOfMatchedWord == 0 && searchInText.charAt(wordToSearch.length).ignoreAccents().match(/[a-z]/i) == null) {\n      return searchInText.replaceAt(indexOfMatchedWord, wordToSearch.length, `<span class=\"text-white bg-dark\">${wordToSearch}</span>`);\n    }\n    if (\n      indexOfMatchedWord == searchInText.length - wordToSearch.length &&\n      searchInText\n        .charAt(searchInText.length - wordToSearch.length - 1)\n        .ignoreAccents()\n        .match(/[a-z]/i) == null\n    ) {\n      return searchInText.replaceAt(indexOfMatchedWord, wordToSearch.length, `<span class=\"text-white bg-dark\">${wordToSearch}</span>`);\n    }\n    if (\n      searchInText\n        .charAt(indexOfMatchedWord - 1)\n        .ignoreAccents()\n        .match(/[a-z]/i) == null &&\n      searchInText\n        .charAt(indexOfMatchedWord + wordToSearch.length)\n        .ignoreAccents()\n        .match(/[a-z]/i) == null\n    ) {\n      return searchInText.replaceAt(indexOfMatchedWord, wordToSearch.length, `<span class=\"text-white bg-dark\">${wordToSearch}</span>`);\n    }\n\n    return \"\";\n  };\n\n  return {\n    isSearching: computed(() => isSearching.value),\n    searchAsync,\n  };\n}\n","<template>\n  <input v-model=\"searchText\" @keyup.enter=\"doSearch\" type=\"search\" class=\"form-control gs1-input\" placeholder=\"Search...\" autocomplete=\"off\" />\n  <button @click=\"doSearch\" class=\"btn btn-outline-secondary gs1-button blue\" type=\"button\" :disabled=\"!isSearchEnabled\">\n    <b-icon-search class=\"fs-5\"></b-icon-search>\n  </button>\n</template>\n\n<script>\nimport { ref } from \"@vue/reactivity\";\nimport useTree from \"../../composables/useTree\";\nimport useSearch from \"../../composables/useSearch\";\nimport { computed, watchEffect, watch } from \"@vue/runtime-core\";\nimport { BIconSearch } from \"bootstrap-icons-vue\";\nimport useGtm from \"../../composables/useGtm\";\nimport { useRoute } from \"vue-router\";\nexport default {\n  components: { BIconSearch },\n  emits: [\"onSearch\"],\n  props: { treeData: Array },\n  setup(props, { emit }) {\n    const { isFetchingBricks } = useTree();\n    const { isSearching } = useSearch();\n    const { trackEvent } = useGtm();\n    const route = useRoute();\n\n    const MIN_SEARCH_LENGTH = 3;\n    const searchText = ref(route.query.search ?? \"\");\n    const isSearchValid = ref(\"\");\n    let isRouteParamHandled = false\n\n    const isSearchEnabled = computed(() => {\n      return isSearchValid.value && !isFetchingBricks.value && !isSearching.value;\n    });\n\n    watchEffect(() => {\n      if (searchText.value == \"\" || searchText.value.length >= MIN_SEARCH_LENGTH) {\n        isSearchValid.value = true;\n      } else {\n        isSearchValid.value = false;\n      }\n    });\n\n    watch(isSearchEnabled, (value)=> value && handleSearchQueryParam());\n\n    const doSearch = () => {\n      if (!isSearchEnabled.value) {\n        return;\n      }\n      emit(\"onSearch\", searchText.value);\n      trackEvent(\"gpc_browser_search\", {\n        text: searchText.value,\n      });\n    };\n\n    const handleSearchQueryParam = () => {\n      if(isRouteParamHandled) return;\n      searchText.value && doSearch();\n      isRouteParamHandled = true;\n    };\n\n    return { searchText, doSearch, isSearchEnabled, isSearching };\n  },\n};\n</script>\n","import { render } from \"./BrowserSearch.vue?vue&type=template&id=4147607d\"\nimport script from \"./BrowserSearch.vue?vue&type=script&lang=js\"\nexport * from \"./BrowserSearch.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n  <button class=\"btn btn-outline-secondary gs1-dropdown\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\n    <BIconSliders class=\" gs1-color-blue fs-5\"></BIconSliders>\n  </button>\n  <div class=\"dropdown-menu gs1-dropdown-menu\">\n    <div class=\"form-check mx-2\">\n      <label class=\"form-check-label\" for=\"SearchInCodeCheck\">Search in Code</label>\n      <input v-model=\"searchConfiguration.searchInCode\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" id=\"SearchInCodeCheck\" />\n    </div>\n    <div class=\"form-check mx-2\">\n      <label class=\"form-check-label\" for=\"SearchInTitleCheck\">Search in Title</label>\n      <input v-model=\"searchConfiguration.searchInTitle\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" id=\"SearchInTitleCheck\" />\n    </div>\n    <div class=\"form-check mx-2\">\n      <label class=\"form-check-label\" for=\"SearchInIncludesCheck\">Search in Definition (Includes)</label>\n      <input v-model=\"searchConfiguration.searchInDefinitionIncludes\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" id=\"SearchInIncludesCheck\" />\n    </div>\n    <div class=\"form-check mx-2\">\n      <label class=\"form-check-label\" for=\"SearchInExcludesCheck\">Search in Definition (Excludes)</label>\n      <input v-model=\"searchConfiguration.searchInDefinitionExcludes\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" id=\"SearchInExcludesCheck\" />\n    </div>\n    <div class=\"form-check mx-2\">\n      <label class=\"form-check-label\" for=\"SearchInAttributesCheck\">Include Attributes/Values</label>\n      <input v-model=\"searchConfiguration.includeAttributesAndValues\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" id=\"SearchInAttributesCheck\" />\n    </div>\n    <hr class=\"dropdown-divider\" />\n    <div class=\"trimmed-search form-check mx-2\">\n      <input v-model=\"searchConfiguration.trimSearchResults\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" value=\"\" id=\"TrimmedSearchCheck\" />\n      <label class=\"form-check-label\" for=\"TrimmedSearchCheck\">Trim Search Results</label>\n    </div>\n    <div class=\"form-check mx-2\">\n      <input v-model=\"searchConfiguration.searchInWordsCombination\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" value=\"\" id=\"SearchInWordsCombinationCheck\" />\n      <label class=\"form-check-label\" for=\"SearchInWordsCombinationCheck\">Search in words combination</label>\n    </div>\n    <div class=\"form-check mx-2\">\n      <input v-model=\"searchConfiguration.exactWording\" class=\"form-check-input gs1-check-input\" type=\"checkbox\" value=\"\" id=\"ExactWordingCheck\" />\n      <label class=\"form-check-label\" for=\"ExactWordingCheck\">Exact wording</label>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { BIconSliders } from \"bootstrap-icons-vue\";\nimport useSearchConfigurationSingleton from \"../../composables/useSearchConfigurationSingleton\";\nexport default {\n  components: { BIconSliders },\n  emits: [\"onClose\"],\n  setup(props, { emit }) {\n    const { searchConfiguration } = useSearchConfigurationSingleton();\n    const close = () => {\n      emit(\"onClose\");\n    };\n\n    return { searchConfiguration, close };\n  },\n};\n</script>\n","import { reactive } from \"@vue/reactivity\";\n\nconst searchConfiguration = reactive({\n  searchInCode: true,\n  searchInTitle: true,\n  searchInDefinitionIncludes: true,\n  searchInDefinitionExcludes: false,\n  searchInWordsCombination: true,\n  includeAttributesAndValues: true,\n  trimSearchResults: true,\n  exactWording: false,\n});\n\nexport default function useSearchConfigurationSingleton() {\n  return {\n    searchConfiguration: searchConfiguration,\n  };\n}\n","import { render } from \"./BroswerSearchConfigDropdown.vue?vue&type=template&id=72a900c0\"\nimport script from \"./BroswerSearchConfigDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./BroswerSearchConfigDropdown.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n  <div id=\"TooltipInfo\" :title=\"tooltipTitle\" @blur=\"handleBlur\" tabindex=\"-1\"></div>\n</template>\n\n<script>\nimport { onMounted, watchEffect } from \"@vue/runtime-core\";\nimport { Tooltip } from \"bootstrap\";\nexport default {\n  props: {\n    tooltipTitle: String,\n    show: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  setup(props) {\n    let tooltip;\n    let isTooltipFocused = false;\n    const showTooltip = () => {\n      isTooltipFocused = false;\n      const tooltipEl = document.getElementById(\"TooltipInfo\");\n      tooltip = new Tooltip(tooltipEl, { trigger: \"focus\" });\n      setTimeout(() => {\n        tooltipEl.focus();\n        isTooltipFocused = true;\n      }, 100);\n    };\n    const disposeTooltip = (item, isFocused) => {\n      if (isFocused && item && item.tip) {\n        item.dispose();\n      }\n    };\n\n    onMounted(() => {\n      showTooltip();\n    });\n\n    watchEffect(() => {\n      if (props.show) {\n        showTooltip();\n      }\n    });\n\n    function handleBlur() {\n      disposeTooltip(tooltip, isTooltipFocused);\n    }\n\n    return { handleBlur };\n  },\n};\n</script>\n","import { render } from \"./TooltipInfo.vue?vue&type=template&id=9e37764c\"\nimport script from \"./TooltipInfo.vue?vue&type=script&lang=js\"\nexport * from \"./TooltipInfo.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./Browser.vue?vue&type=template&id=2cfe267e&scoped=true\"\nimport script from \"./Browser.vue?vue&type=script&lang=js\"\nexport * from \"./Browser.vue?vue&type=script&lang=js\"\n\nimport \"./Browser.vue?vue&type=style&index=0&id=2cfe267e&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-2cfe267e\"\n\nexport default script","<template>\n<div class=\"container\">\n  <div v-if=\"isReleaseNoteAvailable\" class=\"row gs1-navigator-spacer pt-0\">\n      <div class=\"col-12 d-flex align-items-center\">\n        <a class=\"btn gs1-button orange\" :href=\"downloadAttachmentHref\">{{ releaseNoteTitle }}<BIconDownload class=\"ms-3\" /></a>\n      </div>\n    </div>\n    <div v-if=\"isCurrentAvailable && !isCurrentGDSN\" class=\"row gpc\">\n      <div class=\"col-6\">\n        <div class=\"gs1-list-group list-group\">\n          <h5 class=\"gs1-h5 gs1-color-blue m-0 gs1-list-group-item list-group-item\">\n            <div>{{ currentPublicationTitle }}</div>\n          </h5>\n          <a\n            @click.prevent=\"downloadGPCPublciationAsJson\"\n            :href=\"downloadHref\"\n            :class=\"{\n              disabled:\n                downloadState.isDownloadingGPCAsXml ||\n                downloadState.isDownloadingGPCAsXlsx ||\n                downloadState.isDownloadingDeltaAsJson ||\n                downloadState.isDownloadingDeltaAsXlsx,\n            }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GPC as JSON\n            <span\n              ><span v-show=\"downloadState.isDownloadingGPCAsJson\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGPCAsJson\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGPCAsJson\" /></span\n          ></a>\n          <a\n            @click.prevent=\"downloadGPCPublciationAsXml\"\n            :href=\"downloadHref\"\n            :class=\"{\n              disabled:\n                downloadState.isDownloadingGPCAsJson ||\n                downloadState.isDownloadingGPCAsXlsx ||\n                downloadState.isDownloadingDeltaAsJson ||\n                downloadState.isDownloadingDeltaAsXlsx,\n            }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GPC as XML<span\n              ><span v-show=\"downloadState.isDownloadingGPCAsXml\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGPCAsXml\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGPCAsXml\" /></span\n          ></a>\n          <a\n            @click.prevent=\"downloadGPCPublciationAsXlsx\"\n            :href=\"downloadHref\"\n            :class=\"{\n              disabled:\n                downloadState.isDownloadingGPCAsXml ||\n                downloadState.isDownloadingGPCAsJson ||\n                downloadState.isDownloadingDeltaAsJson ||\n                downloadState.isDownloadingDeltaAsXlsx,\n            }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GPC as XLSX<span\n              ><span v-show=\"downloadState.isDownloadingGPCAsXlsx\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGPCAsXlsx\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGPCAsXlsx\" /></span\n          ></a>\n        </div>\n      </div>\n      <div v-if=\"isDeltaAvailable\" class=\"col-6\">\n        <div class=\"gs1-list-group list-group\">\n          <h5 class=\"gs1-h5 gs1-color-blue m-0 gs1-list-group-item list-group-item\">{{ currentPublicationDeltaTitle }}</h5>\n          <a\n            @click.prevent=\"downloadDeltaPublicationAsJson\"\n            :href=\"downloadHref\"\n            :class=\"{\n              disabled:\n                downloadState.isDownloadingGPCAsJson ||\n                downloadState.isDownloadingGPCAsXml ||\n                downloadState.isDownloadingGPCAsXlsx ||\n                downloadState.isDownloadingDeltaAsXlsx,\n            }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download Delta as JSON\n            <span\n              ><span v-show=\"downloadState.isDownloadingDeltaAsJson\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingDeltaAsJson\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingDeltaAsJson\" /> </span\n          ></a>\n          <a\n            @click.prevent=\"downloadDeltaPublicationAsXlsx\"\n            :href=\"downloadHref\"\n            :class=\"{\n              disabled:\n                downloadState.isDownloadingGPCAsJson ||\n                downloadState.isDownloadingGPCAsXml ||\n                downloadState.isDownloadingGPCAsXlsx ||\n                downloadState.isDownloadingDeltaAsJson,\n            }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download Delta as XLSX\n            <span\n              ><span v-show=\"downloadState.isDownloadingDeltaAsXlsx\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingDeltaAsXlsx\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingDeltaAsXlsx\" /></span\n          ></a>\n        </div>\n      </div>\n    </div>\n    <div v-if=\"isCurrentAvailable && isCurrentGDSN\" class=\"row gdsn\">\n      <div class=\"col-6\">\n        <div class=\"gs1-list-group list-group\">\n          <h5 class=\"gs1-h5 gs1-color-blue m-0 gs1-list-group-item list-group-item\">\n            <div>{{ currentPublicationTitle }}</div>\n          </h5>\n          <a\n            @click.prevent=\"downloadGdsnPublciationAsJson\"\n            :href=\"downloadHref\"\n            :class=\"{ disabled: downloadState.isDownloadingGDSNAsXml || downloadState.isDownloadingGDSNAsXlsx }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GDSN as JSON\n            <span\n              ><span v-show=\"downloadState.isDownloadingGDSNAsJson\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGDSNAsJson\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGDSNAsJson\" /> </span\n          ></a>\n          <a\n            @click.prevent=\"downloadGdsnPublciationAsXml\"\n            :href=\"downloadHref\"\n            :class=\"{ disabled: downloadState.isDownloadingGDSNAsJson || downloadState.isDownloadingGDSNAsXlsx }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GDSN as XML\n            <span\n              ><span v-show=\"downloadState.isDownloadingGDSNAsXml\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGDSNAsXml\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGDSNAsXml\" /></span\n          ></a>\n          <a\n            @click.prevent=\"downloadGdsnPublciationAsXlsx\"\n            :href=\"downloadHref\"\n            :class=\"{ disabled: downloadState.isDownloadingGDSNAsJson || downloadState.isDownloadingGDSNAsXml }\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Download GDSN as XLSX\n            <span\n              ><span v-show=\"downloadState.isDownloadingGDSNAsXlsx\" class=\"spinner-download spinner-border gs1-color-orange\" role=\"status\">\n                <span class=\"visually-hidden\">Loading...</span>\n              </span>\n              <BIconDownload v-show=\"isFreeToDownload && !downloadState.isDownloadingGDSNAsXlsx\" />\n              <BIconEnvelope v-show=\"!isFreeToDownload && !downloadState.isDownloadingGDSNAsXlsx\" /></span\n          ></a>\n        </div>\n      </div>\n    </div>\n    <div v-if=\"!isCurrentAvailable\" class=\"row pt-0\">\n      <div class=\"col-12\">\n        <div class=\"gs1-list-group list-group\">\n          <a\n            :href=\"mailToMoHref\"\n            class=\"\n              gs1-list-group-item gs1-list-group-item-action\n              list-group-item list-group-item-action\n              d-flex\n              justify-content-between\n              align-items-center\n            \"\n            >Translation are managed by the GS1 Member Organisation Offices and schedules vary. Please contact translating MO with questions.<span\n              ><BIconEnvelope /></span\n          ></a>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { BIconDownload, BIconEnvelope } from \"bootstrap-icons-vue\";\nimport { ref } from \"@vue/reactivity\";\nimport { computed, watch } from \"@vue/runtime-core\";\nimport usePublication from \"../../composables/usePublication\";\nimport fileService from \"../../services/fileService\";\nimport useGtm from \"../../composables/useGtm\";\n\nexport default {\n  components: { BIconDownload, BIconEnvelope },\n  props: {\n    selectedLanguage: Object,\n    selectedPublication: Object,\n  },\n  setup(props) {\n    const {\n      getPreviousPublicationAsync,\n      isLatestPublicationAsync,\n      getDownloadPublicationReleaseNoteAttachmentUrl,\n      downloadPublicationAsJsonAsync,\n      downloadPublicationAsXmlAsync,\n      downloadPublicationAsXlsxAsync,\n      downloadDeltaAsJsonAsync,\n      downloadDeltaAsXlsxAsync,\n    } = usePublication();\n    const { trackEvent } = useGtm();\n\n    const selectedLanguageName = computed(() => props.selectedLanguage.languageName);\n    const currentPublication = ref(null);\n    const previousPublication = ref(null);\n    const isLatestPublication = ref(false);\n\n    const isCurrentAvailable = computed(() => currentPublication.value != null && isLatestPublication.value);\n    const isCurrentGDSN = computed(() => isCurrentAvailable.value && currentPublication.value.isGDSN);\n    const isPreviousAvailable = computed(() => previousPublication.value != null);\n    const isDeltaAvailable = computed(() => !isCurrentGDSN.value && isPreviousAvailable.value);\n    const isReleaseNoteAvailable = computed(\n      () => isCurrentAvailable.value && currentPublication.value.releaseNoteAttachment != null && currentPublication.value.releaseNoteAttachment != \"\"\n    );\n    const isFreeToDownload = computed(() => props.selectedLanguage.freeToDownload);\n\n    const currentPublicationTitle = computed(() => {\n      if (isCurrentAvailable.value && !isCurrentGDSN.value) {\n        return `${currentPublication.value.publicationName} (${currentPublication.value.version})`;\n      }\n      if (isCurrentGDSN.value) {\n        return `GPC version in GDSN (${currentPublication.value.publicationName} ${currentPublication.value.version})`;\n      }\n      return \"\";\n    });\n    const currentPublicationDeltaTitle = computed(() => {\n      if (isCurrentAvailable.value && isPreviousAvailable.value) {\n        return `${currentPublication.value.publicationName} (${currentPublication.value.version}) v. ${previousPublication.value.publicationName} (${previousPublication.value.version})`;\n      }\n      return \"\";\n    });\n\n    const donwnloadMainLabel = computed(() =>\n      isCurrentAvailable.value\n        ? `Download ${selectedLanguageName.value} ${currentPublication.value.publicationName} (${currentPublication.value.version})`\n        : \"\"\n    );\n    const releaseNoteTitle = computed(() =>\n      isReleaseNoteAvailable.value\n        ? `Download ${currentPublication.value.publicationName} (${currentPublication.value.version}) Release Notes PDF`\n        : \"\"\n    );\n\n    const downloadHref = computed(() => (!isFreeToDownload.value ? `mailto:${props.selectedLanguage.moContactEmail}` : \"#\"));\n    const mailToMoHref = computed(() => (props.selectedLanguage.moContactEmail ? `mailto:${props.selectedLanguage.moContactEmail}` : \"#\"));\n    const downloadAttachmentHref = computed(() => getDownloadPublicationReleaseNoteAttachmentUrl(currentPublication.value.publicationId));\n\n    const downloadState = ref({\n      isDownloadingGPCAsJson: false,\n      isDownloadingGPCAsXml: false,\n      isDownloadingGPCAsXlsx: false,\n      isDownloadingGDSNAsJson: false,\n      isDownloadingGDSNAsXml: false,\n      isDownloadingGDSNAsXlsx: false,\n      isDownloadingDeltaAsJson: false,\n      isDownloadingDeltaAsXlsx: false,\n    });\n\n    watch(\n      () => props.selectedPublication,\n      async (publication) => {\n        currentPublication.value = publication;\n        if (publication != null) {\n          const previousPublicationResponse = await getPreviousPublicationAsync(publication.publicationId);\n          previousPublication.value = previousPublicationResponse.isSuccess ? previousPublicationResponse.result : null;\n          const isLatestPublicationResponse = await isLatestPublicationAsync(publication.publicationId);\n          isLatestPublication.value = isLatestPublicationResponse.result;\n        }\n      }\n    );\n\n    const downloadGPCPublciationAsJson = async (event) => {\n      if (downloadState.value.isDownloadingGPCAsJson || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGPCAsJson = true;\n      let data = await downloadPublicationAsJsonAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadJson(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gpc\",\n          type: \"json\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n      downloadState.value.isDownloadingGPCAsJson = false;\n    };\n\n    const downloadGPCPublciationAsXml = async (event) => {\n      if (downloadState.value.isDownloadingGPCAsXml || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGPCAsXml = true;\n      let data = await downloadPublicationAsXmlAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadXml(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gpc\",\n          type: \"xml\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n      downloadState.value.isDownloadingGPCAsXml = false;\n    };\n\n    const downloadGPCPublciationAsXlsx = async (event) => {\n      if (downloadState.value.isDownloadingGPCAsXlsx || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGPCAsXlsx = true;\n      let data = await downloadPublicationAsXlsxAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadXlsx(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gpc\",\n          type: \"xlsx\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n      downloadState.value.isDownloadingGPCAsXlsx = false;\n    };\n\n    const downloadGdsnPublciationAsJson = async (event) => {\n      if (downloadState.value.isDownloadingGDSNAsJson || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGDSNAsJson = true;\n      let data = await downloadPublicationAsJsonAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadJson(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gdsn\",\n          type: \"xlsx\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n\n      downloadState.value.isDownloadingGDSNAsJson = false;\n    };\n\n    const downloadGdsnPublciationAsXml = async (event) => {\n      if (downloadState.value.isDownloadingGDSNAsXml || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGDSNAsXml = true;\n      let data = await downloadPublicationAsXmlAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadXml(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gdsn\",\n          type: \"xml\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n\n      downloadState.value.isDownloadingGDSNAsXml = false;\n    };\n\n    const downloadGdsnPublciationAsXlsx = async (event) => {\n      if (downloadState.value.isDownloadingGDSNAsXlsx || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingGDSNAsXlsx = true;\n      let data = await downloadPublicationAsXlsxAsync(currentPublication.value.publicationId, props.selectedLanguage.usePublicationBlobs);\n      if (data.isSuccess) {\n        fileService.downloadXlsx(data.name, data.file);\n        trackEvent(\"gpc_download_file\", {\n          languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n          version: \"gdsn\",\n          type: \"xlsx\",\n        });\n      } else {\n        currentPublication.value = null;\n      }\n      downloadState.value.isDownloadingGDSNAsXlsx = false;\n    };\n\n    const downloadDeltaPublicationAsJson = async (event) => {\n      if (downloadState.value.isDownloadingDeltaAsJson || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingDeltaAsJson = true;\n      let data = await downloadDeltaAsJsonAsync(props.selectedLanguage.languageId, currentPublication.value.publicationId);\n      fileService.downloadJson(data.name, data.file);\n      downloadState.value.isDownloadingDeltaAsJson = false;\n      trackEvent(\"delta_download_file\", {\n        languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n        type: \"json\",\n      });\n    };\n\n    const downloadDeltaPublicationAsXlsx = async (event) => {\n      if (downloadState.value.isDownloadingDeltaAsXlsx || !isFreeToDownload.value) {\n        return;\n      }\n      event.preventDefault();\n      downloadState.value.isDownloadingDeltaAsXlsx = true;\n      let data = await downloadDeltaAsXlsxAsync(props.selectedLanguage.languageId, currentPublication.value.publicationId);\n      fileService.downloadXlsx(data.name, data.file);\n      downloadState.value.isDownloadingDeltaAsXlsx = false;\n      trackEvent(\"delta_download_file\", {\n        languageCode: props.selectedLanguage.languageCode.toLowerCase(),\n        type: \"xlsx\",\n      });\n    };\n\n    return {\n      downloadState,\n      downloadGPCPublciationAsJson,\n      downloadGPCPublciationAsXml,\n      downloadGPCPublciationAsXlsx,\n      downloadGdsnPublciationAsJson,\n      downloadGdsnPublciationAsXml,\n      downloadGdsnPublciationAsXlsx,\n      downloadDeltaPublicationAsJson,\n      downloadDeltaPublicationAsXlsx,\n      isCurrentAvailable,\n      isPreviousAvailable,\n      isDeltaAvailable,\n      isCurrentGDSN,\n      isFreeToDownload,\n      isReleaseNoteAvailable,\n      downloadHref,\n      mailToMoHref,\n      selectedLanguageName,\n      currentPublicationTitle,\n      currentPublicationDeltaTitle,\n      releaseNoteTitle,\n      downloadAttachmentHref,\n      donwnloadMainLabel,\n    };\n  },\n};\n</script>\n","export default (function () {\n  function downloadJson(fileName, data) {\n    let json = JSON.stringify(data);\n    downloadFile(fileName, \"application/json\", json);\n  }\n\n  function downloadXml(fileName, data) {\n    downloadFile(fileName, \"application/xml\", data);\n  }\n\n  function downloadXlsx(fileName, data) {\n    downloadFile(fileName, \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", data);\n  }\n\n  function downloadZip(fileName, data) {\n    downloadFile(fileName, \"application/zip\", data);\n  }\n\n  function downloadFile(fileName, contentType, data) {\n    const blob = new Blob([data], { type: contentType });\n    const link = document.createElement(\"a\");\n\n    link.download = fileName;\n    link.href = window.URL.createObjectURL(blob);\n    link.dataset.downloadurl = [contentType, link.download, link.href].join(\":\");\n\n    const evt = new MouseEvent(\"click\", {\n      view: window,\n      bubbles: true,\n      cancelable: true,\n    });\n\n    link.dispatchEvent(evt);\n    link.remove();\n  }\n\n  return Object.freeze({\n    downloadJson,\n    downloadXml,\n    downloadXlsx,\n    downloadZip,\n  });\n})();\n","import { render } from \"./BrowserDownload.vue?vue&type=template&id=976a869e\"\nimport script from \"./BrowserDownload.vue?vue&type=script&lang=js\"\nexport * from \"./BrowserDownload.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n  <a class=\"btn gs1-button\" :href=\"props.link\">{{ props.text }}<b-icon-arrow-right-short></b-icon-arrow-right-short></a>\n</template>\n<script>\nimport { BIconArrowRightShort } from \"bootstrap-icons-vue\";\nexport default {\n  components: { BIconArrowRightShort },\n  props: {\n    link: String,\n    text: String,\n  },\n  setup(props) {\n    return { props };\n  },\n};\n</script>\n\n<style scoped>\na.gs1-button > svg {\n  width: 1.5rem;\n  height: 1.5rem;\n  margin-left: 0.5rem;\n}\na.gs1-button:hover > svg {\n  transform: translateX(25%);\n  transition: all 0.2s ease;\n}\n</style>\n","import { render } from \"./GS1LinkButton.vue?vue&type=template&id=33d5dd6b&scoped=true\"\nimport script from \"./GS1LinkButton.vue?vue&type=script&lang=js\"\nexport * from \"./GS1LinkButton.vue?vue&type=script&lang=js\"\n\nimport \"./GS1LinkButton.vue?vue&type=style&index=0&id=33d5dd6b&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-33d5dd6b\"\n\nexport default script","import { render } from \"./TheBrowser.vue?vue&type=template&id=f2048ef8&scoped=true\"\nimport script from \"./TheBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./TheBrowser.vue?vue&type=script&lang=js\"\n\nimport \"./TheBrowser.vue?vue&type=style&index=0&id=f2048ef8&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-f2048ef8\"\n\nexport default script","import { createRouter, createWebHistory } from \"vue-router\";\nimport Browser from \"/src/views/TheBrowser.vue\";\nconst routes = [\n  {\n    path: \"/\",\n    name: \"Browser\",\n    component: Browser,\n  },\n];\nconst router = createRouter({\n  history: createWebHistory(),\n  routes,\n});\nexport default router;\n","import { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router/index\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\nimport \"bootstrap\";\nimport \"./assets/style.css\";\n\ncreateApp(App).use(router).mount(\"#app\");\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./BrowserPublicationDropdown.vue?vue&type=style&index=0&id=1bcf1918&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheHeader.vue?vue&type=style&index=0&id=d1440054&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheBreadcrumb.vue?vue&type=style&index=0&id=31c4164a&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./GS1LinkButton.vue?vue&type=style&index=0&id=33d5dd6b&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheTopHeader.vue?vue&type=style&index=0&id=a920fee0&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./GS1Link.vue?vue&type=style&index=0&id=375d8717&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./TheFooter.vue?vue&type=style&index=0&id=7fa87b41&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/logo.fd0bee36.png\";"],"sourceRoot":""}