{"version":3,"file":"chunks/a61c0dffca2af8.js","mappings":"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","sources":["webpack:///./resources/js/components/specific/incident-template.ts"],"sourcesContent":["export default class IncidentTemplate {\n  params: any;\n  domRoot: HTMLElement;\n  templateOutput: any;\n  revealHide: HTMLElement;\n  contentElement: HTMLElement;\n\n  constructor(domRoot: HTMLElement, params: any) {\n    this.params = params;\n    this.domRoot = domRoot;\n    this.templateOutput = params.templateOutput;\n    this.revealHide = document.getElementById(params.revealId) as HTMLElement;\n    this.contentElement = document.getElementById(params.contentId) as HTMLElement;\n    this.init();\n  }\n\n  init() {\n    this.domRoot.onsubmit = (e) => {\n      e.preventDefault();\n      this.generateText();\n      return false;\n    };\n  }\n\n  getValue(item, fieldID) {\n    let fieldVal;\n    if (item.getAttribute('data-itype') == \"text\") {\n      fieldVal = item.children[1].value;\n    } else if (item.getAttribute('data-itype') == \"select\") {\n      fieldVal = item.children[1].value;\n    } else {\n      let fieldVals = document.getElementsByName(fieldID);\n      for (let f = 0; f < fieldVals.length; f++) {\n        if (fieldVals[f].checked) {\n          fieldVal = fieldVals[f].value;\n          break;\n        }\n      }\n    }\n    return fieldVal;\n  }\n\n  generateText() {\n    let templateSelector = this.domRoot.querySelectorAll(\"[data-id='\" + this.templateOutput + \"']\");\n    let newOutput = this.getValue(templateSelector[0], this.templateOutput);\n    let fields = this.domRoot.getElementsByClassName('incident-field');\n    let errors  = 0;\n\n    for (let i =  0; i < fields.length; i++) {\n      let fieldI = fields[i];\n      let fieldID = fieldI.getAttribute('data-id');\n      let fieldVal = this.getValue(fieldI, fieldID);\n      let stringReplace = \"{\" + fieldID + \"}\";\n      let stringRegEx = new RegExp(stringReplace, \"g\");\n      newOutput = newOutput.replace(stringRegEx, fieldVal);\n\n      if (fieldVal == undefined || fieldVal == null || fieldVal == \"null\" || fieldVal == \"\") {\n        errors++;\n        fieldI.classList.add('with-error');\n      } else {\n        fieldI.classList.remove('with-error');\n      }\n    }\n\n    if (errors == 0) {\n      this.revealHide.style.display = \"block\";\n      this.contentElement.innerHTML = `<div class=\"incident--output\">\n        <textarea id=\"get-incident\">${newOutput}</textarea>\n        <p>${newOutput}</p>\n        <button id=\"generate-another\" class=\"button button--small button--one button--primary\">\n        ${this.params.generateAnother}\n        </button>\n        <button id=\"copy-incident-text\" class=\"button button--small button--one button--secondary\">\n        ${this.params.copyTemplate}\n        </button>\n      </div>`;\n\n      document.getElementById(\"generate-another\").addEventListener(\"click\", () => {\n        window.scrollTo(0, this.offsetTopFind(this.domRoot) - 70);\n        this.revealHide.style.display = \"none\";\n      });\n      document.getElementById(\"copy-incident-text\").addEventListener(\"click\", (e) => {\n        document.getElementById(\"get-incident\").select();\n        document.execCommand(\"copy\");\n        e.target.classList.add(\"copied\");\n        setTimeout(() => {\n          e.target.classList.remove(\"copied\");\n        }, 2000);\n      });\n      this.smoothScroll(this.revealHide);\n    } else {\n      this.revealHide.style.display = \"none\";\n    }\n  }\n\n  smoothScroll(item) {\n    let initialScroll = window.scrollY;\n    let itemPosition = item.offsetTop - 70;\n    let increment = (initialScroll - itemPosition) * 0.02;\n    let delay = 1000 / increment;\n    let scrollInterval = setInterval(winScroll, delay);\n    function winScroll() {\n      if (Math.abs(initialScroll - itemPosition) > 100) {\n        initialScroll = initialScroll - increment;\n        window.scrollTo(0, initialScroll);\n      } else {\n        clearInterval(scrollInterval);\n      }\n    }\n  }\n\n  offsetTopFind(el, withHeight = 0) {\n    let yPosition = withHeight;\n    while (el.offsetParent !== null) {\n      yPosition += el.offsetTop;\n      el = el.offsetParent;\n    }\n    return yPosition;\n  }\n}\n"],"names":["IncidentTemplate","domRoot","params","_classCallCheck","this","templateOutput","revealHide","document","getElementById","revealId","contentElement","contentId","init","key","value","_this","onsubmit","e","preventDefault","generateText","item","fieldID","fieldVal","getAttribute","children","fieldVals","getElementsByName","f","length","checked","_this2","templateSelector","querySelectorAll","newOutput","getValue","fields","getElementsByClassName","errors","i","fieldI","stringRegEx","RegExp","replace","undefined","classList","add","remove","style","display","innerHTML","concat","generateAnother","copyTemplate","addEventListener","window","scrollTo","offsetTopFind","select","execCommand","target","setTimeout","smoothScroll","initialScroll","scrollY","itemPosition","offsetTop","increment","scrollInterval","setInterval","Math","abs","clearInterval","el","yPosition","arguments","offsetParent"],"sourceRoot":""}