{"version":3,"file":"chunks/4364852e1d19f3.js","mappings":"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","sources":["webpack:///./resources/js/components/layout/roadmaps.ts"],"sourcesContent":["import * as $ from \"jquery\";\n\nclass RoadmapContainer {\n  domRoot: HTMLElement;\n  params: any;\n  parentCont: any;\n  ships: any;\n  results: any;\n  searchResults: any;\n  newShippedContainer: any;\n  newComingSoonContainer: any;\n  searchForm: any;\n  searchInput: any;\n  mainEl: HTMLElement;\n  isMainComponent: any;\n  jumpToContent: any;\n  hideSearch: any;\n  contentJumpDistance: any;\n  sortItems: any;\n  fullPageContent: any;\n  labels: any;\n  searchTerm: string;\n  history: number;\n  fullPage?: HTMLElement;\n\n  constructor(domRoot: HTMLElement, params: any) {\n    this.domRoot = domRoot;\n    this.params = params;\n    this.parentCont = domRoot.querySelector(\".roadmap-container\");\n    this.ships = domRoot.querySelector(\".ships-area\");\n    this.results = domRoot.querySelector(\".results\");\n    this.searchResults = domRoot.querySelector(\".search-results\");\n    this.newShippedContainer = domRoot.querySelector(\".new-shipped\");\n    this.newComingSoonContainer = domRoot.querySelector(\".new-comingsoon\");\n    this.searchForm = domRoot.querySelector(\".search-form\");\n    this.searchInput = domRoot.querySelector(\".search-input\")\n    this.mainEl = document.querySelector('main') as HTMLElement;\n    this.isMainComponent = params.isMainComponent;\n    this.jumpToContent = params.jumpToContent;\n    this.hideSearch = params.hideSearch;\n    this.contentJumpDistance = params.contentJumpDistance;\n    this.sortItems = params.sortingItems;\n    this.fullPageContent = params.fullPageContent;\n    this.labels = params.labels;\n    this.searchTerm = '';\n    this.history = 0;\n    this.init();\n  }\n\n  init() {\n    document.body.classList.add('roadmap-prep');\n\n    if (document.getElementById('roadmap-component-preview') == null) {\n      this.mainEl.insertAdjacentHTML('afterend', `<div id=\"roadmap-component-preview\" class=\"preview-area\"></div>`);\n    }\n    this.fullPage = document.getElementById('roadmap-component-preview');\n\n    this.searchResults.addEventListener('click', (e) => {\n      if (e.target.classList.contains(\"back-to-results\")) {\n        this.searchInput.value = \"\";\n        this.renderSearches(\"\");\n      }\n    });\n\n    this.fullPage.addEventListener('click', (e) => {\n      if (e.target.classList.contains(\"back-to-results\")) {\n        this.mainEl.setAttribute('style', 'position: relative; left: 0;');\n        this.fullPage.setAttribute('style', 'position: absolute; left: 100%;');\n      }\n    });\n\n    this.results.addEventListener('click', (e) => {\n      if (e.target.classList.contains(\"roadmap-link\")) {\n        e.preventDefault();\n        var parentItem = e.target.parentNode.parentNode;\n        var isShowing = parentItem.classList.contains('showing');\n        var allItems = this.domRoot.querySelectorAll('.component--roadmap-item');\n        for (var i = 0; i < allItems.length; i++) {\n          allItems[i].classList.remove('showing');\n        }\n        parentItem.classList.toggle('showing', !isShowing);\n\n        if (this.jumpToContent) {\n          var scrollToItem = $(parentItem);\n          $('html, body').animate({\n            scrollTop: scrollToItem.offset().top - Number(this.contentJumpDistance.replace(/[^0-9]/g, ''))\n          }, 500);\n        }\n      }\n      if (e.target.classList.contains(\"standalone-link\")) {\n        var hash = e.target.id.replace('plan-', '');\n        var matchingPage = this.fullPageContent[hash];\n        if (matchingPage && matchingPage.pageContent) {\n          this.renderFullPage(hash);\n        }\n      }\n    });\n\n    if (!this.hideSearch) {\n      this.searchInput.addEventListener('keyup', (e) => {\n        this.renderSearches(e.target.value);\n      });\n    }\n  }\n\n  renderSearches(hashParam) {\n    var searchString = hashParam.trim();\n    var hash = searchString;\n    var itemsHTML = this.getResultsHeaderHTML();\n    if (searchString == \"\") {\n      this.searchInput.value = searchString;\n      this.searchResults.style.display = 'none';\n      this.results.style.display = 'block';\n    } else {\n      this.searchResults.style.display = 'block';\n      this.results.style.display = 'none';\n    }\n    var numItems = 0;\n    for (var s = 0; s < this.sortItems.length; s++) {\n      var itemID = this.sortItems[s].id;\n      var item = this.fullPageContent[itemID];\n      var searchDescription = item.textOnlyLower.toString();\n      if (searchDescription.indexOf(searchString) > -1) {\n        var foundIndex = searchDescription.indexOf(searchString);\n        numItems++;\n        itemsHTML += `<div class=\"component component--roadmap-item result-${itemID}\">\n          <div class=\"roadmap-inner\">\n            <a href=\"#result-${itemID}\" class=\"roadmap-link\"><h3 class=\"roadmap-title\">\n            ${item.title}\n            </h3>\n            <p class=\"search-contents\">\n              ${this.getSearchSnippetHTML(hash, foundIndex, item.textOnly)}\n            </p></a>\n          </div>\n        </div>\n        `;\n      }\n    }\n    if (numItems === 0) {\n      itemsHTML += `<h3>${this.labels.noResults}</h3>`;\n    }\n    itemsHTML += `</div>`;\n    this.searchResults.innerHTML = itemsHTML;\n  }\n\n  renderFullPage(hash) {\n    var item = this.fullPageContent[hash];\n    var headerHTML = `<div class=\"container\"><div class=\"row\">\n    <div>${this.getResultsHeaderHTML()}\n      <h3>${item.title} ${this.getLozengeHTML(item.lozengeColor, item.lozengeLabel)}</h3></div>`;\n    var previewFooter = `<a class=\"tweet-link\" target=\"_blank\" href=\"https://twitter.com/intent/tweet?text=${item.title}&url=${encodeURIComponent(window.location)}&via=Atlassian\">\n      ${this.getTweetIcon()}\n      Tweet\n    </a></div></div>`;\n\n    this.fullPage.innerHTML = headerHTML + item.pageContent + previewFooter;\n    this.fullPage.setAttribute('style', 'position: relative; left: 0;');\n    this.mainEl.setAttribute('style', 'position: absolute; left: -100%;');\n    $('html, body').animate({\n      scrollTop: $(this.fullPage).offset().top\n    }, 250);\n  }\n\n  getLozengeHTML(color = \"purple\", text) {\n    if (text) {\n      return `<span class=\"lozenge ${color}\">${text}</span>`;\n    }\n    return '';\n  }\n\n  getShippedDateHTML(isShipped, shippedDate, customLabel) {\n    if (isShipped && !customLabel && customLabel.length < 1) {\n      return `<span class=\"date eyebrows\">${shippedDate.match(/^(?:\\S*\\s*){3}/)}</span>`;\n    } else if (customLabel && customLabel.length > 1) {\n      return `<span class=\"custom-label eyebrows date\">${customLabel}</span>`;\n    }\n    return \"\";\n  }\n\n  getSearchSnippetHTML(hash, index, description) {\n    if (index > -1) {\n      var properCase = description.substr(index, hash.length);\n      var wordsnip1 = description.substr(0, index).split(' ');\n      wordsnip1 = wordsnip1.length ? wordsnip1.slice(-10) : [''];\n      wordsnip1 = wordsnip1.join(' ');\n      var wordsnip2 = description.substr((index + hash.length), (index + hash.length + 120)).split(' ');\n      wordsnip2 = wordsnip2.length ? wordsnip2.slice(0, 10) : [''];\n      wordsnip2 = wordsnip2.join(' ');\n      return `...${wordsnip1}<span class=\"highlight\">${properCase}</span>${wordsnip2}...`;\n    }\n    return '';\n  }\n\n  getResultsHeaderHTML() {\n    return `<a href=\"javascript:void(0);\" class=\"link-arrow back-to-results\">\n      <svg class=\"link-arrow-image\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path d=\"M10.297,4.2915 L3.298,11.2905 C3.296,11.2915 3.294,11.2925 3.291,11.2945 C3.097,11.4885 3,11.7455 3,12.0025 C3,12.2595 3.097,12.5165 3.291,12.7115 C3.294,12.7125 3.297,12.7135 3.299,12.7155 L10.294,19.7105 C10.683,20.1005 11.319,20.1005 11.708,19.7105 C12.097,19.3225 12.097,18.6855 11.708,18.2965 L6.414,13.0025 L20,13.0025 C20.55,13.0025 21,12.5525 21,12.0025 C21,11.4535 20.55,11.0035 20,11.0035 L6.414,11.0035 L11.711,5.7055 C12.1,5.3165 12.1,4.6805 11.711,4.2915 C11.516,4.0975 11.26,4.0005 11.003,4.0005 C10.747,4.0005 10.49,4.0975 10.297,4.2915 Z\"></path></svg>\n      ${this.labels.allFeatures}\n    </a>`;\n  }\n\n  getTweetIcon() {\n    return `<svg width=\"48\" height=\"48\" version=\"1.1\" viewBox=\"0 0 48 48\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n    <path d=\"M23.85195, 19.84437c-1.7454-4.8355,6.1102-9.4326, 9.347-5.0194c0,0,1.2547-0.0451, 3.5444-1.278 c0,0-0.546, 1.7435-2.3073, 2.8973c0,0,1.3386-0.0087, 2.959-0.7308c0,0-1.0215, 1.6556-2.6068, 2.7653 c0,0-0.0352, 2.4835-0.4051, 4.0335c-0.3698,1.55-1.6028, 5.8653-5.3016,8.8948c-3.6989,3.0295-8.2079,3.6989-10.7619, 3.5227     c-2.554-0.1761-5.6892-1.1449-7.7147-2.3954c0, 0,4.6323, 0.4932,8.0494-2.325c0, 0-3.4523,0.1585-5.0903-3.8221 c0,0,1.1801,0.2113, 2.4482-0.141c0, 0-4.3505-0.7926-4.4033-5.4778c0, 0, 1.4267, 0.7046, 2.4835, 0.6341 c0, 0-4.1568-3.1704-1.6205-7.2744C12.47195, 14.12817, 16.63195, 19.64227, 23.85195, 19.84437z\" style=\"fill:#4AA0EC;\"/></svg>`;\n  }\n}\nexport default RoadmapContainer;"],"names":["RoadmapContainer","domRoot","params","_classCallCheck","this","parentCont","querySelector","ships","results","searchResults","newShippedContainer","newComingSoonContainer","searchForm","searchInput","mainEl","document","isMainComponent","jumpToContent","hideSearch","contentJumpDistance","sortItems","sortingItems","fullPageContent","labels","searchTerm","history","init","key","value","_this","body","classList","add","getElementById","insertAdjacentHTML","fullPage","addEventListener","e","target","contains","renderSearches","setAttribute","preventDefault","parentItem","parentNode","isShowing","allItems","querySelectorAll","i","length","remove","toggle","scrollToItem","$","animate","scrollTop","offset","top","Number","replace","hash","id","matchingPage","pageContent","renderFullPage","hashParam","searchString","trim","itemsHTML","getResultsHeaderHTML","style","display","numItems","s","itemID","item","searchDescription","textOnlyLower","toString","indexOf","foundIndex","concat","title","getSearchSnippetHTML","textOnly","noResults","innerHTML","headerHTML","getLozengeHTML","lozengeColor","lozengeLabel","previewFooter","encodeURIComponent","window","location","getTweetIcon","text","arguments","undefined","isShipped","shippedDate","customLabel","match","index","description","properCase","substr","wordsnip1","split","slice","join","wordsnip2","allFeatures"],"sourceRoot":""}