{"version":3,"file":"mybeckhoff-service.js","mappings":"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","sources":["webpack://design-prototype/./src/js/mybeckhoff/service/http-adapter.ts","webpack://design-prototype/./src/js/mybeckhoff/service/service.ts","webpack://design-prototype/./src/js/mybeckhoff/service/index.ts"],"sourcesContent":["export async function http<T>(url: string, data: any, headers?: any): Promise<T> {\n const urlParams = new URLSearchParams(data).toString();\n\n const response = await fetch(`${url}?${urlParams}`, { headers: headers, credentials: 'include' });\n\n if (response.ok) {\n const data = await (<Promise<T>>response.json());\n return data;\n } else {\n throw new Error('Server Error');\n }\n}\n","import { http } from './http-adapter';\nimport { IMyBeckhoffService, LoginResponse, LoginState, MyBeckhoffRequestOptions } from '../types';\n\nexport const MyBeckhoffEvent = {\n SESSION_UPDATE: 'SESSION_UPDATE',\n MANUAL_LOGIN: 'MANUAL_LOGIN',\n};\n\nconst defaultLoginState: LoginState = {\n exportControl: false,\n loginStatus: false,\n userid: undefined,\n username: undefined,\n};\n\nexport class MyBeckhoffService implements IMyBeckhoffService {\n readonly options = {\n action: 'mybeckhoff-action',\n cmsLanguage: '',\n cmsId: '',\n cmsTemplatename: '',\n cookie: false,\n };\n\n private registeredPlugins = new Array<unknown>();\n\n private subscriptions: Array<(event: string, payload?: any) => void> = [];\n\n constructor() {\n this.checkLoginState();\n }\n\n async login(username: string, password: string, remember: boolean, cmsLanguage = '') {\n const basicAuthToken = btoa(`${username}:${password}`);\n const response = await http<LoginResponse>(\n webServiceMyBeckhoffUrl,\n { ...this.options, action: 'Login', cookie: remember, cmsLanguage },\n { Authorization: `Basic ${basicAuthToken}` },\n );\n\n this.loginState = {\n exportControl: response.exportControl,\n loginStatus: response.loginStatus,\n userid: response.userid,\n username: response.username,\n };\n\n this.emitEvent(MyBeckhoffEvent.MANUAL_LOGIN, response);\n this.emitEvent(MyBeckhoffEvent.SESSION_UPDATE, this.loginState);\n }\n\n async logout() {\n const response = await http<{ status: boolean; loginStatus: boolean }>(\n webServiceMyBeckhoffUrl,\n {\n ...this.options,\n action: 'Logout',\n },\n );\n\n if (response.status && response.loginStatus === false) {\n localStorage.removeItem('MyBeckhoffSession');\n location.reload();\n } else {\n console.log('Logout failed!');\n }\n }\n\n addPlugin(plugin: unknown) {\n this.plugins.push(plugin);\n }\n\n get plugins() {\n return this.registeredPlugins;\n }\n\n get loginState(): LoginState {\n const localStorageValue = localStorage.getItem('MyBeckhoffSession');\n\n if (localStorageValue) {\n return { ...defaultLoginState, ...(<LoginState>JSON.parse(localStorageValue)) };\n }\n\n return defaultLoginState;\n }\n\n set loginState(state: LoginState) {\n localStorage.setItem('MyBeckhoffSession', JSON.stringify(state));\n }\n\n updateLoginState(values: Partial<LoginState>) {\n this.loginState = { ...this.loginState, ...values };\n }\n\n get isLoggedIn() {\n return this.loginState.loginStatus === true;\n }\n\n async request<T>(options: Partial<MyBeckhoffRequestOptions>) {\n return http<T>(webServiceMyBeckhoffUrl, { ...this.options, ...options });\n }\n\n async checkLoginState(): Promise<void> {\n const options = { ...this.options, action: 'GetLoginStatus' };\n const response = await http<LoginResponse>(webServiceMyBeckhoffUrl, options);\n this.loginState = {\n exportControl: response.exportControl,\n loginStatus: response.loginStatus,\n userid: response.userid,\n username: response.username,\n };\n\n this.emitEvent(MyBeckhoffEvent.SESSION_UPDATE, this.loginState);\n }\n\n subscribe(callbackFn: (event: string, payload?: any) => void) {\n this.subscriptions.push(callbackFn);\n }\n\n unsubscribe(callbackFn: (event: string, payload?: any) => void) {\n this.subscriptions.splice(this.subscriptions.indexOf(callbackFn, 1));\n }\n\n private emitEvent(event: string, payload?: any) {\n this.subscriptions.forEach((callbackFn) => callbackFn(event, payload));\n }\n}\n","import { MyBeckhoffService } from './service';\n\nwindow.myBeckhoff = new MyBeckhoffService();\n"],"names":["http","url","data","headers","urlParams","response","URLSearchParams","toString","fetch","credentials","ok","json","Error","MyBeckhoffEvent","defaultLoginState","exportControl","loginStatus","userid","undefined","username","MyBeckhoffService","options","action","cmsLanguage","cmsId","cmsTemplatename","cookie","registeredPlugins","Array","subscriptions","this","checkLoginState","login","password","remember","basicAuthToken","btoa","webServiceMyBeckhoffUrl","Authorization","loginState","emitEvent","logout","status","localStorage","removeItem","location","reload","console","log","addPlugin","plugin","plugins","push","localStorageValue","getItem","JSON","parse","state","setItem","stringify","updateLoginState","values","isLoggedIn","request","subscribe","callbackFn","unsubscribe","splice","indexOf","event","payload","forEach","window","myBeckhoff"],"sourceRoot":""}