{"version":3,"file":"mybeckhoff.js","mappings":"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","sources":["webpack://design-prototype/./src/js/mybeckhoff/mybeckhoff.ts","webpack://design-prototype/./src/js/mybeckhoff/plugins/bookmark-plugin.ts","webpack://design-prototype/./src/js/mybeckhoff/plugins/export-control-plugin.ts","webpack://design-prototype/./node_modules/uuid/dist/esm-browser/native.js","webpack://design-prototype/./node_modules/uuid/dist/esm-browser/rng.js","webpack://design-prototype/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://design-prototype/./node_modules/uuid/dist/esm-browser/v4.js","webpack://design-prototype/./src/js/mybeckhoff/popover.ts","webpack://design-prototype/./src/js/mybeckhoff/toast.ts","webpack://design-prototype/./src/js/mybeckhoff/plugins/login-plugin.ts","webpack://design-prototype/./src/js/mybeckhoff/plugin-factory.ts","webpack://design-prototype/./src/js/mybeckhoff/index.ts"],"sourcesContent":["import { IMyBeckhoffService } from './types';\n\nexport const getMyBeckhoffService = (): IMyBeckhoffService => {\n  if (window.myBeckhoff) {\n    return window.myBeckhoff;\n  } else {\n    throw new Error('MyBeckhoffService not present!');\n  }\n};\n","import { getMyBeckhoffService } from '../mybeckhoff';\nimport { BookmarkRequestOptions, BookmarkStatusResponse } from '../types';\n\nexport class BookmarkPlugin {\n  static readonly selectors = {\n    bookmarkButtonAdd: '.mybeckhoff__add-bookmark',\n    bookmarkButtonRemove: '.mybeckhoff__remove-bookmark',\n    bookmarkModal: '#mybeckhoff__bookmark-modal',\n    bookmarkModalSubmit: '#mybeckhoff__bookmark-modal .mybeckhoff__bookmark-modal-button-submit',\n  };\n\n  private options: BookmarkRequestOptions;\n  private isBookmarked = false;\n  private addButton;\n  private removeButton;\n  private modalSubmitButton;\n  private myBeckhoffService = getMyBeckhoffService();\n\n  constructor(private element: HTMLElement) {\n    const { cmsId, cmsLanguage, cmsTemplatename } = element.dataset;\n\n    if (!cmsId || !cmsLanguage || !cmsTemplatename) {\n      throw new Error('[MyBeckhoff - Bookmark Plugin]: Missing attribute values.');\n    }\n\n    this.options = { cmsId, cmsLanguage, cmsTemplatename };\n    this.bookmarkStatus();\n\n    this.removeButton = this.element.querySelector(BookmarkPlugin.selectors.bookmarkButtonRemove);\n    this.addButton = this.element.querySelector(BookmarkPlugin.selectors.bookmarkButtonAdd);\n    this.modalSubmitButton = document.querySelector(BookmarkPlugin.selectors.bookmarkModalSubmit);\n\n    this.initEvents();\n  }\n\n  get bookmarked() {\n    return this.isBookmarked;\n  }\n\n  async removeBookmark() {\n    const response = await this.myBeckhoffService.request<BookmarkStatusResponse>({\n      ...this.options,\n      action: 'RemoveBookmark',\n    });\n\n    this.updateButtons(response.status === true && response.bookmarkStatus === true);\n  }\n\n  async bookmarkStatus() {\n    const response = await this.myBeckhoffService.request<BookmarkStatusResponse>({\n      ...this.options,\n      action: 'GetBookmarkStatus',\n    });\n\n    this.updateButtons(response.status === true && response.bookmarkStatus === true);\n  }\n\n  updateButtons(bookmarked: boolean) {\n    if (bookmarked) {\n      this.addButton?.classList.add('hidden');\n      this.removeButton?.classList.remove('hidden');\n    } else {\n      this.addButton?.classList.remove('hidden');\n      this.removeButton?.classList.add('hidden');\n    }\n  }\n\n  openBookmarkModal() {\n    const modalEl = document.querySelector(BookmarkPlugin.selectors.bookmarkModal);\n    if (modalEl) {\n      modalEl.addEventListener('show.bs.modal', () => {\n        const iframe = document.querySelector(BookmarkPlugin.selectors.bookmarkModal + ' iframe');\n        if (iframe) {\n          iframe.setAttribute('src', iframe.getAttribute('data-src') || '');\n        }\n      });\n      modalEl.addEventListener('hide.bs.modal', () => {\n        this.bookmarkStatus();\n      });\n      const modal = bootstrap.Modal.getOrCreateInstance(BookmarkPlugin.selectors.bookmarkModal);\n      modal.show();\n    }\n  }\n\n  submitBookmarkForm(e: Event) {\n    e.preventDefault();\n\n    const iFrameDoc = (\n      document.querySelector('#mybeckhoff__bookmark-modal iframe') as HTMLIFrameElement\n    )?.contentDocument;\n\n    const form = iFrameDoc?.querySelector<HTMLFormElement>('form');\n    const btnSubmit = form?.querySelector<HTMLInputElement>('#cart_submit');\n\n    if (btnSubmit) btnSubmit.click();\n  }\n\n  private initEvents() {\n    this.addButton?.addEventListener('click', (e) => {\n      e.preventDefault();\n      this.openBookmarkModal();\n    });\n\n    this.removeButton?.addEventListener('click', (e) => {\n      e.preventDefault();\n      this.removeBookmark();\n    });\n\n    this.modalSubmitButton?.addEventListener('click', (e) => this.submitBookmarkForm(e));\n  }\n}\n","import { getMyBeckhoffService } from '../mybeckhoff';\nimport { SetExportControlResponse } from '../types';\n\nexport class ExportControlPlugin {\n  static readonly selectors = {\n    buttonAcceptSelector: '#export-control-consent__button-accept',\n    buttonDeclineSelector: '#export-control-consent__button-decline',\n    modalSelector: '#export-control-consent__modal',\n  };\n\n  private myBeckhoffService = getMyBeckhoffService();\n  private modalOpened = false;\n\n  constructor(private element: HTMLElement) {\n    this.initButtonEvents();\n    this.myBeckhoffService.subscribe((e) => this.onMyBeckhoffEvent(e));\n    this.evaluateLoginState();\n  }\n\n  private evaluateLoginState() {\n    const { loginStatus, exportControl } = this.myBeckhoffService.loginState;\n    if (!this.modalOpened && loginStatus && !exportControl) {\n      this.showModal();\n    }\n  }\n\n  private showModal() {\n    const modalEl = document.querySelector(ExportControlPlugin.selectors.modalSelector);\n    if (modalEl) {\n      const modal = bootstrap.Modal.getOrCreateInstance(\n        ExportControlPlugin.selectors.modalSelector,\n        {\n          backdrop: 'static',\n          keyboard: false,\n        },\n      );\n      modal.show();\n    }\n    this.modalOpened = true;\n  }\n\n  private onMyBeckhoffEvent(event: string) {\n    if (event === 'SESSION_UPDATE') {\n      this.evaluateLoginState();\n    }\n  }\n\n  private onAcceptClick(event: Event) {\n    event.preventDefault();\n    this.myBeckhoffService\n      .request<SetExportControlResponse>({\n        action: 'SetExportControl',\n      })\n      .then((response) => {\n        if (\n          response &&\n          response.status === true &&\n          response.loginStatus === true &&\n          response.exportControl === true\n        ) {\n          this.myBeckhoffService.updateLoginState({ loginStatus: true, exportControl: true });\n          const modalEl = document.querySelector(ExportControlPlugin.selectors.modalSelector);\n          if (modalEl) {\n            const modal = bootstrap.Modal.getInstance(ExportControlPlugin.selectors.modalSelector);\n            modal.hide();\n          }\n          this.modalOpened = false;\n        }\n      });\n  }\n\n  private onDeclineClick(event: Event) {\n    event.preventDefault();\n    this.myBeckhoffService.logout();\n  }\n\n  private initButtonEvents() {\n    document\n      .querySelector(ExportControlPlugin.selectors.buttonAcceptSelector)\n      ?.addEventListener('click', (event) => this.onAcceptClick(event));\n\n    document\n      .querySelector(ExportControlPlugin.selectors.buttonDeclineSelector)\n      ?.addEventListener('click', (event) => this.onDeclineClick(event));\n  }\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n  randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n  const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  if (native.randomUUID && !buf && !options) {\n    return native.randomUUID();\n  }\n\n  options = options || {};\n  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (let i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return unsafeStringify(rnds);\n}\n\nexport default v4;","import BSPopover from 'bootstrap/js/dist/popover';\nimport { v4 as uuid } from 'uuid';\n\nexport class Popover {\n  private bsInstance: BSPopover;\n  private uuid = uuid();\n\n  constructor(\n    private element: HTMLElement,\n    bsOptions: Partial<BSPopover.Options>,\n    clickOutsideClose: boolean,\n  ) {\n    const options = { ...bsOptions, customClass: `popover-${this.uuid}` };\n    this.bsInstance = new window.bootstrap.Popover(this.element, options);\n\n    if (clickOutsideClose) {\n      this.listenOnClickOutside();\n    }\n  }\n\n  get instance() {\n    return this.bsInstance;\n  }\n\n  setMessage(message: string) {\n    this.instance.setContent({\n      '.popover-body': message,\n    });\n  }\n\n  show() {\n    this.instance.show();\n  }\n\n  hide() {\n    this.instance.hide();\n  }\n\n  private listenOnClickOutside() {\n    document.addEventListener('click', (e: any) => {\n      const target = document.querySelector(`.popover-${this.uuid}`);\n      if (target && !target.contains(e.target)) this.instance.hide();\n    });\n  }\n}\n","export class Toast {\n  private timeout?: number;\n  private element: HTMLElement;\n\n  constructor(selector: string) {\n    this.element = <HTMLElement>document.querySelector(selector);\n\n    this.element.querySelector('.btn-close')?.addEventListener('click', (e) => {\n      e.preventDefault();\n      this.close();\n    });\n  }\n\n  show() {\n    this.element.classList.remove('hide');\n    this.element.classList.add('show');\n    this.timeout = window.setTimeout(() => {\n      this.close();\n    }, 5000);\n  }\n\n  close() {\n    this.element.classList.remove('show');\n    this.element.classList.add('hide');\n\n    clearTimeout(this.timeout);\n  }\n}\n","import { getMyBeckhoffService } from '../mybeckhoff';\nimport { Popover } from '../popover';\nimport { Toast } from '../toast';\nimport { LoginResponse } from '../types';\n\nexport class LoginPlugin {\n  static readonly selectors = {\n    dropdownUsername: '.dropdown-mybeckhoff__username',\n    usernameInput: '#dropdown-mybeckhoff-username',\n    passwordInput: '#dropdown-mybeckhoff-password',\n    cookieCheck: '#dropdown-mybeckhoff-cookie',\n    toastLoggedIn: '#jsToastLoggedIn',\n    toggleMyBeckhoff: '#toggle-mybeckhoff',\n    popoverTrigger: '.dropdown.dropdown-mybeckhoff button[type=\"submit\"]',\n  };\n\n  private myBeckhoffService = getMyBeckhoffService();\n  private popover: Popover;\n  private toast: Toast;\n\n  constructor(private element: HTMLElement) {\n    this.myBeckhoffService.subscribe((e, p) => this.onMyBeckhoffEvent(e, p));\n    this.updateView(\n      this.myBeckhoffService.isLoggedIn,\n      this.myBeckhoffService.loginState.username || '',\n    );\n    this.initEvents();\n    this.popover = this.initPopover();\n    this.toast = new Toast(LoginPlugin.selectors.toastLoggedIn);\n  }\n\n  onMyBeckhoffEvent(event: string, payload: any) {\n    switch (event) {\n      case 'SESSION_UPDATE': {\n        this.updateView(payload.loginStatus === true, payload.username);\n        break;\n      }\n      case 'MANUAL_LOGIN': {\n        const response = payload as LoginResponse;\n        if (response.loginStatus === false && response.message) {\n          this.showPopover(payload.message);\n        }\n\n        if (response.loginStatus === true) {\n          this.onManuallyLoggedIn();\n        }\n        break;\n      }\n    }\n  }\n\n  onManuallyLoggedIn() {\n    const flyout = document.querySelector(LoginPlugin.selectors.toggleMyBeckhoff);\n    const magnificPopup = $.magnificPopup.instance;\n    const loginPopup =\n      typeof magnificPopup.contentContainer !== 'undefined' &&\n      magnificPopup.st?.el?.hasClass('df-trigger-login-popup') === true;\n\n    if (flyout && flyout.classList.contains('is-open')) {\n      flyout.classList.remove('is-open');\n    }\n\n    if (loginPopup) {\n      magnificPopup.close();\n    }\n\n    this.toast.show();\n  }\n\n  updateView(loggedIn: boolean, username: string) {\n    if (loggedIn) {\n      document.body.classList.add('mybeckhoff', 'mybeckhoff--logged-in');\n    } else {\n      document.body.classList.remove('mybeckhoff', 'mybeckhoff--logged-in');\n    }\n\n    if (loggedIn && !!username) {\n      document.querySelectorAll(LoginPlugin.selectors.dropdownUsername).forEach((element) => {\n        element.innerHTML = username;\n      });\n    }\n  }\n\n  initPopover() {\n    const element = <HTMLElement>document.querySelector(LoginPlugin.selectors.popoverTrigger);\n\n    return new Popover(\n      element,\n      {\n        animation: false,\n        container: element.parentNode as HTMLElement,\n        content: ' ',\n        placement: 'bottom',\n        trigger: 'manual',\n        html: true,\n      },\n      true,\n    );\n  }\n\n  showPopover(message: string) {\n    if (message) {\n      this.popover.setMessage(message);\n      this.popover.show();\n    }\n  }\n\n  onFormSubmit(event: Event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if (!document.body.classList.contains('mybeckhoff--logged-in')) {\n      const usernameInput = <HTMLInputElement>(\n        document.querySelector(LoginPlugin.selectors.usernameInput)\n      );\n\n      const passwordInput = <HTMLInputElement>(\n        document.querySelector(LoginPlugin.selectors.passwordInput)\n      );\n\n      const cookieCheck = <HTMLInputElement>(\n        document.querySelector(LoginPlugin.selectors.cookieCheck)\n      );\n\n      this.myBeckhoffService.login(\n        usernameInput.value,\n        passwordInput.value,\n        cookieCheck.checked,\n        this.element.dataset.cmsLanguage,\n      );\n    } else {\n      this.myBeckhoffService.logout();\n    }\n  }\n\n  private initEvents() {\n    this.element\n      .querySelector('form')\n      ?.addEventListener('submit', (event) => this.onFormSubmit(event));\n  }\n}\n","import { BookmarkPlugin } from './plugins/bookmark-plugin';\nimport { ExportControlPlugin } from './plugins/export-control-plugin';\nimport { LoginPlugin } from './plugins/login-plugin';\n\nexport const createMyBeckhoffPlugin = (element: HTMLElement) => {\n  switch (element.dataset.template) {\n    case 'bookmark-toggle': {\n      return new BookmarkPlugin(element);\n    }\n    case 'login':\n    case 'login-status': {\n      return new LoginPlugin(element);\n    }\n    case 'export-control-consent': {\n      return new ExportControlPlugin(element);\n    }\n  }\n};\n","import { createMyBeckhoffPlugin } from './plugin-factory';\nimport { getMyBeckhoffService } from './mybeckhoff';\n\nconst myBeckhoffService = getMyBeckhoffService();\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  document.querySelectorAll('[data-plugin=\"mybeckhoff\"]').forEach((element) => {\n    try {\n      const plugin = createMyBeckhoffPlugin(<HTMLElement>element);\n\n      if (plugin) {\n        myBeckhoffService.addPlugin(plugin);\n      }\n    } catch (e) {\n      console.error(e);\n    }\n  });\n});\n"],"names":["getMyBeckhoffService","window","myBeckhoff","Error","BookmarkPlugin","options","isBookmarked","addButton","removeButton","modalSubmitButton","myBeckhoffService","element","dataset","cmsId","cmsLanguage","cmsTemplatename","this","bookmarkStatus","querySelector","selectors","bookmarkButtonRemove","bookmarkButtonAdd","document","bookmarkModalSubmit","initEvents","bookmarked","removeBookmark","response","request","action","updateButtons","status","classList","add","remove","openBookmarkModal","modalEl","bookmarkModal","addEventListener","iframe","setAttribute","getAttribute","bootstrap","Modal","getOrCreateInstance","show","submitBookmarkForm","e","preventDefault","iFrameDoc","contentDocument","form","btnSubmit","click","ExportControlPlugin","modalOpened","initButtonEvents","subscribe","onMyBeckhoffEvent","evaluateLoginState","loginState","loginStatus","exportControl","showModal","modalSelector","backdrop","keyboard","event","onAcceptClick","then","updateLoginState","getInstance","hide","onDeclineClick","logout","buttonAcceptSelector","buttonDeclineSelector","randomUUID","crypto","bind","getRandomValues","rnds8","Uint8Array","rng","byteToHex","i","push","toString","slice","buf","offset","rnds","random","arr","unsafeStringify","Popover","bsOptions","clickOutsideClose","bsInstance","uuid","customClass","listenOnClickOutside","instance","setMessage","message","setContent","target","contains","Toast","selector","timeout","close","setTimeout","clearTimeout","LoginPlugin","popover","toast","p","updateView","isLoggedIn","username","initPopover","toastLoggedIn","payload","showPopover","onManuallyLoggedIn","magnificPopup","flyout","toggleMyBeckhoff","$","loginPopup","contentContainer","st","el","hasClass","loggedIn","body","querySelectorAll","dropdownUsername","forEach","innerHTML","popoverTrigger","animation","container","parentNode","content","placement","trigger","html","onFormSubmit","stopPropagation","usernameInput","passwordInput","cookieCheck","login","value","checked","plugin","template","createMyBeckhoffPlugin","addPlugin","console","error"],"sourceRoot":""}