{"version":3,"sources":["Startup.ts"],"names":["di","Router","createViewModel","bind","async","value","getOne","isEventInElement","DataResult","currentDocument","currentDossier","uploadModel","getErrorBindingProvider","notificationModel","to","Events","createTippyWithComponent","SessionTimeoutManager","folders","closeAllOverflowMenus","toastMessage","currentMap","manualHelper","singleton","zIndex","get","transient","console","log","Promise","res","dispose","add","document","e","el","ko","dataFor","target","window","outerWidth","pack","Pack","tippy","timeout","icon","color","description","on","_el","elementFromPoint","clientX","clientY","mouseInTippy","_tippy","popper","classList","remove","destroy","data","Data","fontSize","delay","theme","popperOptions","modifiers","name","options","clippingParents","rootBoundary","altAxis","preventDefault","off","setTimeout","hideAll","props","x10","navigation","main","user","all","route","getCurrentRoute","warn","params","subscriptions","Object","keys","reduce","key","paramValue","updateCurrentRoute","subscribe","pages","isPinned","methods","showAndHide","this","isChecked","reset","pagenumber","isLoading","error","signature","info","refresh","load","GedeeldDocumentGuid","documentdeelInfoGuid","result","deelInfo","share","getSharedDocument","getDocumentDeelInfo","TekenStatus","getSignature","clear","archive","allWithPermissions","Archives","find","i","ID","Number","id","indexArchive","indexId","dossierArchive","dossierId","X10SESSION","SearchDocumentsArchiveId","IndexDocumentArchiveId","SearchDossiersArchiveId","setById","setDefaultSearchArchive","localStore","hasSearched","page","navigate","misc","getSession","isLoggedOut","url","getBaseUrl","encodeURIComponent","location","href","JSON","stringify","registerUrl","registration","import","bootstrap","dict","setLang","Culture","baseUrl","root","resolve","querySelector","style","display","hash","deferUpdates","punches","enableAll","bindingProvider","instance","applyBindings","init","Context","top","scheduleTimeoutPopup","globalCallback","navigator","serviceWorker","register","ready","err","alert","loadServerCode","getFrontEndUrl","toLowerCase","split","endsWith","parts","slice","pop","join","Math","abs","then"],"mappings":"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","file":"Startup.js","sourcesContent":["///\r\nimport \"./ErrorHandling.js\";\r\nimport \"../Helpers/Time.js\";\r\nimport \"../Helpers/Urls.js\";\r\nimport \"../Helpers/DOM.js\";\r\nimport '../Helpers/Colors.js';\r\nimport '../Helpers/ArrayHelpers.js';\r\nimport './dictionary.js';\r\nimport '../Ko/templateUtilities.js';\r\nimport '../Ko/componentLoader.js';\r\nimport '../System/registerComponent.js';\r\nimport \"../System/DxDefaults.js\";\r\nimport di from './di.js';\r\nimport { Route, Router } from './Router.js';\r\nimport { createViewModel, bind, async, value } from '../Ko/ViewModelHelpers.js';\r\nimport { getOne, isEventInElement } from \"../Helpers/DOM.js\";\r\nimport { DataResult } from \"../Models/DataResult.js\";\r\nimport { currentDocument } from \"../Models/CurrentDocument.js\";\r\nimport { currentDossier } from \"../Models/CurrentDossier.js\";\r\nimport { uploadModel } from \"../Models/UploadModel.js\";\r\nimport { getErrorBindingProvider } from \"../Ko/ErrorBindingProvider.js\";\r\nimport { notificationModel } from \"../Models/NotificationModel.js\";\r\nimport { to, wait } from \"../Helpers/Utilities.js\";\r\nimport { Events } from \"../Helpers/Event.js\";\r\nimport { createTippyWithComponent } from \"../Dialog/tippyWithComponent.js\";\r\nimport { SessionTimeoutManager } from '../System/SessionTimeout.js';\r\nimport { folders } from \"../Models/Folders.js\";\r\nimport { closeAllOverflowMenus } from \"../Dialog/overflow.js\";\r\nimport { toastMessage } from \"../Dialog/dialog.js\";\r\nimport { Xtendis } from \"../@types/Xtendis.js\";\r\nimport { currentMap } from \"../Models/CurrentMap.js\";\r\nimport { manualHelper } from \"../Models/Manual.js\";\r\n\r\n\r\n\r\ndi.singleton('dialogZIndex', () => {\r\n\r\n //date-control popup start with 1500, so must be lower\r\n let zIndex = 1000;\r\n\r\n return {\r\n get() {\r\n zIndex++\r\n return zIndex;\r\n }\r\n }\r\n})\r\n\r\ndi.transient('_ko', function () {\r\n\r\n console.log('Click an element to get it\\'s bounded data.')\r\n return new Promise(res => {\r\n const dispose = Events.add(document, 'click', (e) => {\r\n const el = ko.dataFor(e.target)\r\n\r\n res(el);\r\n //console.log(el);\r\n\r\n dispose();\r\n })\r\n })\r\n})\r\n\r\ndi.transient('Formfactor', function () {\r\n\r\n return (window.outerWidth < 480) ?\r\n 'phone'\r\n :\r\n (window.outerWidth < 900)\r\n ?\r\n 'tablet' :\r\n 'desktop';\r\n})\r\n\r\ndi.transient('_ko2', function () {\r\n return new Promise(res => {\r\n const pack = Events.Pack();\r\n let el = null;\r\n let tippy = null;\r\n\r\n toastMessage({\r\n timeout: 90000,\r\n icon: 'icon-bug',\r\n color: 'var(--x10-purple)',\r\n description: 'Right-click elements to see the bounded data, use a \"double-click\" to close.'\r\n })\r\n\r\n pack.on(document, 'contextmenu', (e) => {\r\n const _el = document.elementFromPoint(e.clientX, e.clientY);\r\n\r\n const mouseInTippy = (el?._tippy?.popper) ?\r\n isEventInElement(e, el._tippy.popper, 10) :\r\n false;\r\n\r\n if (_el !== el && !mouseInTippy) {\r\n _el?.classList?.add('__ko-debug');\r\n\r\n el?.classList?.remove('__ko-debug');\r\n\r\n el?._tippy?.destroy()\r\n const data = ko.dataFor(_el);\r\n\r\n if (data) {\r\n tippy = createTippyWithComponent(_el,\r\n 'jsonviewer',\r\n { Data: data, fontSize: '75%' },\r\n {\r\n delay: [400, 150],\r\n theme: 'material',\r\n popperOptions: {\r\n modifiers: [\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n clippingParents: 'none',\r\n rootBoundary: 'viewport',\r\n altAxis: true,\r\n }\r\n },\r\n ]\r\n },\r\n },\r\n );\r\n }\r\n el = _el;\r\n }\r\n\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n pack.on(document, 'dblclick', (e) => {\r\n\r\n toastMessage({\r\n icon: 'icon-bug',\r\n color: 'var(--x10-purple)',\r\n description: 'Mode is closed'\r\n })\r\n\r\n const data = ko.dataFor(e.target);\r\n\r\n res(data)\r\n pack.off();\r\n el?.classList?.remove('__ko-debug');\r\n el?._tippy?.destroy();\r\n setTimeout(tippy.hideAll, 500);\r\n setTimeout(tippy.hideAll, 1500);\r\n setTimeout(tippy.hideAll, 3000);\r\n\r\n\r\n })\r\n\r\n //const dispose = Events.add(document, 'mouseover', (e) =>\r\n //{\r\n // const el = ko.dataFor(e.target)\r\n // e.target.classList.add('__ko-debug')\r\n\r\n // res(el);\r\n // //console.log(el);\r\n\r\n // dispose();\r\n //})\r\n })\r\n})\r\n\r\ndi.singleton('Manual', manualHelper);\r\n\r\ndi.singleton('Navigation', function () {\r\n\r\n return createViewModel({\r\n props: {\r\n value: async(() => x10.navigation.main(), {})\r\n }\r\n })\r\n})\r\n\r\ndi.singleton('Users', function () {\r\n return createViewModel({\r\n props: {\r\n value: async(() => x10.user.all(), [])\r\n }\r\n })\r\n});\r\n\r\ndi.transient('Route', function (Router) {\r\n\r\n const route: Route = Router.getCurrentRoute();\r\n if (!route) console.warn('No current route available!')\r\n\r\n const params = route.params ?? {};\r\n const subscriptions = Object\r\n .keys(params)\r\n .reduce(function (subscriptions, key) {\r\n //voeg voor elke parameter een subscriptie toe\r\n subscriptions[key] = (paramValue) => {\r\n //update params:\r\n params[key] = paramValue;\r\n Router.updateCurrentRoute(route, route.params);\r\n\r\n }\r\n return subscriptions\r\n }, {})\r\n\r\n if (route.params) {\r\n return createViewModel({\r\n props: route.params,\r\n subscribe: subscriptions\r\n });\r\n }\r\n\r\n return route.params;\r\n\r\n});\r\n\r\ndi.singleton('Notification', notificationModel)\r\n\r\ndi.singleton('Clipboard', function () {\r\n return createViewModel({\r\n props: {\r\n pages: [],\r\n isPinned: false\r\n },\r\n methods: {\r\n showAndHide: function () {\r\n this.isPinned = true;\r\n setTimeout(() => this.isPinned = false, 2000)\r\n }\r\n }\r\n });\r\n})\r\n\r\ndi.singleton('CurrentDocument', currentDocument);\r\n\r\ndi.singleton('CurrentMap', currentMap);\r\n\r\ndi.singleton('CurrentDossier', currentDossier)\r\n\r\ndi.singleton('PageOrderCounter', function () {\r\n return createViewModel({\r\n props: {\r\n value: 1,\r\n isChecked: false\r\n },\r\n methods: {\r\n reset: function () {\r\n this.value = 1;\r\n this.isChecked = false;\r\n }\r\n }\r\n })\r\n});\r\n\r\ndi.singleton('ShareDocument', function () {\r\n return createViewModel({\r\n props: {\r\n pagenumber: 1,\r\n isLoading: false,\r\n value: null,\r\n error: '',\r\n signature: null,\r\n info: null\r\n },\r\n methods: {\r\n refresh: function () {\r\n if (!this.value) {\r\n console.warn('Cannot refresh, there is no document yet')\r\n return null;\r\n }\r\n\r\n return this.load(this.value.GedeeldDocumentGuid);\r\n },\r\n load: async function (documentdeelInfoGuid = '') {\r\n this.isLoading = true;\r\n const [{ result, error }, deelInfo] = await Promise.all([\r\n x10.share.getSharedDocument(documentdeelInfoGuid),\r\n x10.document.getDocumentDeelInfo(documentdeelInfoGuid)]);\r\n\r\n let data;\r\n if (!error && result?.TekenStatus) {\r\n data = await x10.share.getSignature(documentdeelInfoGuid);\r\n }\r\n this.isLoading = false;\r\n this.value = result;\r\n this.pagenumber = 1;\r\n this.error = error ?? '';\r\n this.signature = data?.result;\r\n this.info = deelInfo.result;\r\n\r\n },\r\n clear: function () {\r\n this.isLoading = false;\r\n this.value = null;\r\n this.pagenumber = 1;\r\n this.error = '';\r\n this.signature = null;\r\n this.info = null;\r\n }\r\n }\r\n })\r\n});\r\n\r\n\r\ndi.singleton('Folders', folders);\r\n\r\ndi.singleton('Upload', uploadModel);\r\n\r\ndi.singleton('Archives', function () {\r\n\r\n\r\n return createViewModel({\r\n props: {\r\n all: async(() => x10.archive.allWithPermissions(), [])\r\n }\r\n })\r\n});\r\n\r\ndi.singleton('DefaultArchive', function (Archives) {\r\n //TODO check if localstorage values still apply\r\n return createViewModel({\r\n props: {\r\n all: bind(Archives, 'all'),\r\n value: function () {\r\n return this.all.find(i => i.ID === Number(this.id));\r\n },\r\n indexArchive: function () {\r\n return this.all.find(i => i.ID === Number(this.indexId));\r\n },\r\n dossierArchive: function () {\r\n return this.all.find(i => i.ID === Number(this.dossierId));\r\n },\r\n id: X10SESSION.SearchDocumentsArchiveId,\r\n indexId: X10SESSION.IndexDocumentArchiveId,\r\n dossierId: X10SESSION.SearchDossiersArchiveId\r\n },\r\n methods: {\r\n setById: function (id) {\r\n this.id = id;\r\n }\r\n },\r\n subscribe: {\r\n id: function (id) {\r\n x10.archive.setDefaultSearchArchive(id);\r\n }\r\n },\r\n localStore: {\r\n key: 'DefaultArchive',\r\n props: []\r\n }\r\n });\r\n})\r\n\r\ndi.singleton('NoteResult', function () {\r\n return createViewModel({\r\n props: {\r\n isLoading: false,\r\n result: value>([])\r\n },\r\n methods: {\r\n clear() {\r\n this.result = [];\r\n }\r\n }\r\n })\r\n})\r\n\r\ndi.singleton('SelectDossierResult', DataResult)\r\n\r\ndi.singleton('DossierResult', DataResult)\r\n\r\ndi.singleton('DocumentResult', DataResult)\r\n\r\ndi.singleton('Router', Router)\r\n\r\ndi.singleton('Root', function () {\r\n\r\n return createViewModel({\r\n props: {\r\n hasSearched:false,\r\n isLoading: false,\r\n page: null\r\n },\r\n methods: {\r\n async navigate(page, params) {\r\n\r\n this.isLoading = true\r\n\r\n closeAllOverflowMenus();\r\n\r\n const data = await x10.misc.getSession()\r\n\r\n this.isLoading = false\r\n\r\n if (data.isLoggedOut) {\r\n\r\n const url = x10.getBaseUrl() + 'logon.aspx?httpRef=' + encodeURIComponent(window.location.href);\r\n window.location.href = url;\r\n\r\n }\r\n //vergelijking van params zou niet hoeven, \r\n //omdat via Route object verteld kan worden dat de params zijn veranderd\r\n //echter werken niet alle pagina's daar goed op;\r\n if (this.page?.name !== page ||\r\n JSON.stringify(this.page.params) !== JSON.stringify(params)) {\r\n this.page = {\r\n name: page,\r\n params: params\r\n }\r\n }\r\n }\r\n }\r\n });\r\n});\r\n\r\n//load register of components, needs the Router\r\nconst registerUrl = '../register.js'\r\n\r\nconst registration = import(registerUrl);\r\n\r\nconst bootstrap = async function () {\r\n\r\n try {\r\n //logged out if x10 is not defined or when it is defined, it returns loggedOut.\r\n await dict.setLang(X10SESSION.Culture);\r\n\r\n //await wait(800);\r\n\r\n const baseUrl = ('x10' in window) ? x10.getBaseUrl() : window.location.href;\r\n\r\n const isLoggedOut =\r\n ((!('x10' in window)) ||\r\n (await x10.misc.getSession()).isLoggedOut);\r\n\r\n const applicationCode = X10SESSION?.Context || 'Web';\r\n\r\n if (isLoggedOut) {\r\n window.location.href = baseUrl + 'logon.aspx?httpRef=' + encodeURIComponent(window.location.href); + '&applicationCode=' + applicationCode;\r\n return;\r\n }\r\n\r\n const root = di.resolve('Root');\r\n\r\n root.isLoading = false;\r\n document.querySelector('#splash')?.remove();\r\n\r\n getOne('.dashboard-main').style.display = 'block';\r\n\r\n //als er geen route is, ga dan naar 'home'\r\n if (!window.location.hash)\r\n window.location.hash = 'home'\r\n\r\n ko.options.deferUpdates = true;\r\n ko.punches.enableAll();\r\n ko.bindingProvider.instance = getErrorBindingProvider();\r\n\r\n ko.applyBindings(root);\r\n\r\n di.resolve('Router').init((name, params) => {\r\n root.navigate(name, params)\r\n });\r\n\r\n //trigger request, otherwise they will get loaded only when needed (could be too late)\r\n if (window?.X10SESSION?.Context !== 'DocumentDelen') {\r\n const archives = di.resolve('Archives').all\r\n }\r\n\r\n\r\n if (window.location.href === window.top.location.href) {\r\n SessionTimeoutManager.scheduleTimeoutPopup();\r\n\r\n //home heeft auto-update van map-counts\r\n if (('x10' in window) && x10.globalCallback) {\r\n x10.globalCallback(SessionTimeoutManager.scheduleTimeoutPopup);\r\n }\r\n }\r\n\r\n if ('serviceWorker' in navigator) {\r\n const [registration, error] = await to(\r\n navigator.serviceWorker.register(x10.getBaseUrl() + 'serviceworker.js'));\r\n\r\n if (error) console.warn(error);\r\n\r\n await navigator.serviceWorker.ready;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n alert('Something went wrong in startup phase.' + err);\r\n }\r\n\r\n}\r\n\r\nPromise.all([\r\n registration,\r\n loadServerCode()])\r\n .then(bootstrap);\r\n\r\n//to replace getGlobals \r\nasync function loadServerCode() {\r\n\r\n return;\r\n\r\n //\r\n const config = await fetch(getFrontEndUrl() + 'appsettings.json').then(i => i.json());\r\n\r\n const endpoint = config.Endpoint || getFrontEndUrl();\r\n\r\n\r\n try {\r\n let apiAsString = await (await fetch(endpoint + '/jsonservice/getlibrary?fetch=true', {\r\n headers: {\r\n 'X-Requested-With':'XMLHttpRequest'\r\n }\r\n })).text();\r\n console.log(apiAsString?.substring(0, 200));\r\n eval(apiAsString);\r\n\r\n apiAsString = await (await fetch(endpoint + '/jsonservice/getclasses', {\r\n headers: {\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n }\r\n })).text();\r\n console.log(apiAsString?.substring(0, 200));\r\n eval(apiAsString);\r\n\r\n } catch (err) {\r\n\r\n console.log(err)\r\n }\r\n\r\n\r\n ////import probably not possible via CORS.\r\n ////now trying this via request as text and then eval(...)\r\n ////possible safe solution is to request a JSON object describing the available requests\r\n //next problem is x10.getBaseUrl() is used sometimes for API endpoint \r\n\r\n //await import(endpoint + '/jsonservice/getlibrary?fetch=true',);\r\n //await import(endpoint + '/jsonservice/getclasses');\r\n\r\n\r\n const data = await fetch(endpoint + '/jsonservice/misc/globals',{\r\n headers: {\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n }\r\n }).then(i => i.json())\r\n\r\n console.log(data.Result)\r\n\r\n if (data.error) alert(data.Error);\r\n\r\n window.X10APP = data.Result.X10APP;\r\n window.X10SESSION = data.Result.X10SESSION;\r\n\r\n window.X10APP.FrontEndUrl = getFrontEndUrl()\r\n\r\n\r\n}\r\n\r\nfunction getFrontEndUrl() {\r\n //not best way to do, but it works for now;\r\n\r\n let url = window.location.href\r\n .toLowerCase()\r\n .split('#')[0] //remove hashpart\r\n .split('?')[0] //remove querystring\r\n\r\n if (url.endsWith('html')) {\r\n let parts = url\r\n .slice(0, -5) //remove '.html'\r\n .split('/') //split '/'\r\n\r\n parts.pop();\r\n\r\n url = parts.join('/')\r\n\r\n }\r\n\r\n if (url.endsWith('/')) url = url.slice(0, -1);\r\n\r\n if (url.endsWith('share')) url = url.slice(0, -Math.abs('share'.length))\r\n\r\n if (url.endsWith('lookup')) url = url.slice(0, -Math.abs('lookup'.length))\r\n\r\n if (url.endsWith('lookup_dsr')) url = url.slice(0, -Math.abs('lookup_dsr'.length))\r\n\r\n return url + '/';\r\n}\r\n"]}