{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/TheHeader.vue?8e62","webpack:///./src/components/browser/BrowserTreeItem.vue?e8b0","webpack:///./src/components/browser/BrowserLanguageDropdown.vue?da58","webpack:///./src/views/TheBrowser.vue?bfd9","webpack:///./src/App.vue?547c","webpack:///./src/components/browser/Browser.vue?728e","webpack:///./src/components/TheScrollTopButton.vue?a258","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/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","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","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","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","downloadState","isDownloadingGPCAsJson","isFreeToDownload","downloadGPCPublciationAsXml","isDownloadingGPCAsXml","downloadGPCPublciationAsXlsx","isDownloadingGPCAsXlsx","isDeltaAvailable","currentPublicationDeltaTitle","downloadDeltaPublicationAsJson","isDownloadingDeltaAsJson","downloadDeltaPublicationAsXlsx","isDownloadingDeltaAsXlsx","downloadGdsnPublciationAsJson","isDownloadingGDSNAsXml","isDownloadingGDSNAsXlsx","isDownloadingGDSNAsJson","downloadGdsnPublciationAsXml","downloadGdsnPublciationAsXlsx","mailToMoHref","downloadJson","fileName","downloadFile","downloadXml","downloadXlsx","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","routes","component","router","createRouter","history","createWebHistory","createApp","App","use","mount"],"mappings":"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","file":"js/app.24271920.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!./TheHeader.vue?vue&type=style&index=0&id=576d32f5&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!./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!./TheBrowser.vue?vue&type=style&index=0&id=2572ab04&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\"","<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 & 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 & 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/&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 & 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 & Logistics\"\n ><img\n alt=\"identify\"\n src=\"https://www.gs1.org/sites/default/files/images/transport-logistics.png\"\n title=\"Transport & Logistics\"\n />\n </a>\n <h4>\n <a class=\"gs1-h-link\" href=\"https://www.gs1.org/transport-and-logistics\" title=\"Transport & Logistics\"\n >Transport & 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 & 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 & 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 & Calendar\">Events & 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 Standards Week</div>\n <h4 class=\"gs1-color-ui-8\">\n <div>\n <time datetime=\"2022-04-26T12:00:00Z\" class=\"datetime\">26</time> -\n <time datetime=\"2022-04-28T12:00:00Z\" class=\"datetime\">28 Apr 2022</time> | \n </div>\n <div>Virtual event</div>\n </h4>\n <a href=\"https://cvent.me/432lqP\" target=\"_blank\" rel=\"noopener\">View event</a>\n </div>\n <div class=\"col-md-3 gs1-submenu-column\"></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=576d32f5&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=576d32f5&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-576d32f5\"\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 = ''\">✖</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\n class=\"mb-3\"\n @click=\"trackEventBeforeRedirect('Current GPC standard full package')\"\n href=\"https://ref.gs1.org/standards/gpc/\"\n target=\"_blank\"\n rel=\"noopener\"\n >Current GPC standard 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 <a\n class=\"mb-3\"\n @click=\"trackEventBeforeRedirect('GDSN GPC version - choose the first item in the archive')\"\n href=\"https://ref.gs1.org/standards/gpc/archive\"\n target=\"_self\"\n >GDSN GPC version - choose the first item in the archive</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('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 & 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 & Implementation Guide</a\n >\n <a\n class=\"mb-3\"\n @click=\"trackEventBeforeRedirect('FAQs on Global Product')\"\n href=\"https://xchange.gs1.org/sites/faq/Pages/topic.aspx?t=GPC\"\n >FAQs on Global Product</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\";\n\nexport default {\n components: { Browser, GS1LinkButton, BrowserDownload },\n setup() {\n const { trackEvent } = useGtm();\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 return {\n selectedLanguage,\n selectedPublication,\n handleLanguageChange,\n handlePublicationChange,\n trackEventBeforeRedirect,\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 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 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 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 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 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 });\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=2572ab04&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=2572ab04&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-2572ab04\"\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!./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":""}