{"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/./src/js/mybeckhoff/toast.ts","webpack://design-prototype/./src/js/mybeckhoff/plugins/login-plugin/login-input.ts","webpack://design-prototype/./src/js/mybeckhoff/plugins/login-plugin/alert-message.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","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","export class LoginInput {\n #element: HTMLInputElement;\n #errorMessage: HTMLSpanElement | undefined | null;\n #ctrlParent: HTMLElement;\n\n constructor(selector: string) {\n this.#element = document.querySelector<HTMLInputElement>(selector)!;\n this.#errorMessage = this.#element.parentElement?.querySelector('.validation-message');\n this.#ctrlParent = this.#element.closest('.ctrl')!;\n this.initEvents();\n }\n\n get element() {\n return this.#element;\n }\n\n private initEvents() {\n this.#element.addEventListener('blur', (_event) => {\n this.#ctrlParent.classList.add('touched');\n this.#element.checkValidity();\n });\n\n this.#element.addEventListener('invalid', (event) => {\n event.preventDefault();\n\n if (this.#errorMessage) {\n this.#errorMessage.style.display = 'inline-block';\n }\n });\n\n this.#element.addEventListener('input', (_event) => {\n if (this.#ctrlParent.classList.contains('touched')) {\n if (this.#element.validity.valid) {\n this.#ctrlParent.classList.remove('touched');\n\n if (this.#errorMessage) {\n this.#errorMessage.style.display = 'none';\n }\n }\n }\n });\n }\n}\n","export class AlertMessage {\n #element: HTMLDivElement;\n #messageBody: HTMLDivElement;\n\n constructor(element: HTMLDivElement) {\n this.#element = element;\n this.#messageBody = this.#element.querySelector<HTMLDivElement>('.message')!;\n }\n\n setMessage(message: string) {\n this.#messageBody.innerHTML = message;\n }\n\n show() {\n this.#element.classList.remove('hidden');\n }\n\n hide() {\n this.#element.classList.add('hidden');\n }\n}\n","import { getMyBeckhoffService } from '../mybeckhoff';\nimport { Toast } from '../toast';\nimport { LoginResponse } from '../types';\nimport { LoginInput } from './login-plugin/login-input';\nimport { AlertMessage } from './login-plugin/alert-message';\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 toast: Toast;\n private usernameInput: LoginInput;\n private passwordInput: LoginInput;\n private alertMessage: AlertMessage;\n\n constructor(private element: HTMLElement) {\n this.myBeckhoffService.subscribe((e, p) => this.onMyBeckhoffEvent(e, p));\n this.alertMessage = new AlertMessage(this.element.querySelector('.alert')!);\n this.updateView(\n this.myBeckhoffService.isLoggedIn,\n this.myBeckhoffService.loginState.username || '',\n );\n\n this.usernameInput = new LoginInput(LoginPlugin.selectors.usernameInput);\n this.passwordInput = new LoginInput(LoginPlugin.selectors.passwordInput);\n\n this.initEvents();\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.showAlertMessage(payload.message);\n }\n\n if (response.loginStatus === true) {\n this.onManuallyLoggedIn();\n this.alertMessage.hide();\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 this.element.querySelector('form')!.noValidate = true;\n } else {\n document.body.classList.remove('mybeckhoff', 'mybeckhoff--logged-in');\n this.element.querySelector('form')!.noValidate = false;\n }\n\n if (loggedIn && !!username) {\n document.querySelectorAll(LoginPlugin.selectors.dropdownUsername).forEach((element) => {\n element.innerHTML = username;\n });\n }\n }\n\n showAlertMessage(message: string) {\n if (message) {\n this.alertMessage.setMessage(message);\n this.alertMessage.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 cookieCheck = <HTMLInputElement>(\n document.querySelector(LoginPlugin.selectors.cookieCheck)\n );\n\n this.myBeckhoffService.login(\n this.usernameInput.element.value,\n this.passwordInput.element.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","Toast","selector","timeout","close","setTimeout","clearTimeout","LoginInput","errorMessage","parentElement","ctrlParent","closest","_event","checkValidity","style","display","contains","validity","valid","AlertMessage","messageBody","setMessage","message","innerHTML","LoginPlugin","toast","usernameInput","passwordInput","alertMessage","p","updateView","isLoggedIn","username","toastLoggedIn","payload","showAlertMessage","onManuallyLoggedIn","magnificPopup","flyout","toggleMyBeckhoff","$","instance","loginPopup","contentContainer","st","el","hasClass","loggedIn","body","noValidate","querySelectorAll","dropdownUsername","forEach","onFormSubmit","stopPropagation","cookieCheck","login","value","checked","popoverTrigger","plugin","template","createMyBeckhoffPlugin","addPlugin","console","error"],"sourceRoot":""}