{"version":3,"sources":["ko.bindinghandlers/action.js","ko.bindinghandlers/autocomplete.js","ko.bindinghandlers/option.js","ko.bindinghandlers/setChecked.js","ko.bindinghandlers/setUrl.js","ko.bindinghandlers/shortcut.js","ko.bindinghandlers/singleClick.js","ko.bindinghandlers/slashedName.js","ko.bindinghandlers/splitter.js","ko.bindinghandlers/tristate.js","ko.bindinghandlers/upDown.js","ko.bindinghandlers/animate.ts","ko.bindinghandlers/enterKey.ts","ko.bindinghandlers/inViewport.ts","ko.bindinghandlers/report.ts","ko.bindinghandlers/resizeSelect.ts","ko.bindinghandlers/shortcut.ts","ko.bindinghandlers/show.ts","ko.bindinghandlers/tippy.ts"],"names":["ko","bindingHandlers","action","init","element","valueAccessor","allBindingsAccessor","viewModel","context","value","IsBusy","observable","wrappedValueAccessor","data","event","classList","add","setAttribute","promise","call","finally","remove","removeAttribute","click","update","originalInit","autocomplete","addButton","container","title","icon","func","optionalButton","DOM","create","margin","float","optionalButtonClickHandler","addEventListener","prepend","removeEventListener","allBindings","bindingContext","lens","prop","userOptions","utils","unwrapObservable","totalOptions","Object","assign","defaultOptions","onInput","e","updateEvent","onSelect","item","_label","label","_value","idProp","isSubscribable","subscribe","doFetch","source","Array","isObservable","text","v","trim","toLowerCase","unwrap","filter","i","key","indexOf","defaultRenderFunction","renderFunction","input","fetch","render","customize","rect","maxHeight","sizeToElement","el","closest","x","getBoundingClientRect","width","offsetWidth","buttonClick","buttonTitle","buttonCss","buttonClick2","buttonTitle2","buttonCss2","style","left","screenHeight","window","innerHeight","inputHeight","top","isLowerPortion","addLayoutStyle","toggle","bottom","offsetHeight","instance","_autoComplete","domNodeDisposal","addDisposeCallback","destroy","currentValue","div","document","createElement","textContent","preventSubmit","minLength","disableAutoSelect","debounceWaitMs","option","selectExtensions","writeValue","setChecked","va","aba","attr","checkedAttr","setUrl","url","cancelOptions","cancelUrl","lowerUrl","mustCancel","map","some","length","src","setTimeout","special_key_map","shortcut","match","ctrl_modifier","Boolean","alt_modifier","replace","keycode","charCodeAt","ignore_form_input","handler","$element","$","$target","target","is_forminput","is","modifier_match","metaKey","ctrlKey","altKey","charCode","keyCode","preventDefault","stopPropagation","eventname","on","removeHandlerCallback","off","singleClick","delay","clickTimeout","clearTimeout","apply","slashedName","elem","encodeHtml","html","appendChild","createTextNode","parentNode","innerHTML","color","slashedNameColor","split","join","virtualElements","allowedBindings","animate","splitter","defaultUserOptions","sizesObservable","sizes","generateGUID","reduce","partialSum","a","panesize","useStore","localStorage","JSON","stringify","elements","children","gutterAlign","direction","gutterSize","elementStyle","dimension","size","gutterStyle","onDragStart","forEach","pane","onDrag","getSizes","onDragEnd","parse","getItem","err","console","warn","undefined","options","index","id","Split","setSizes","minSize","d","Date","getTime","d2","performance","now","c","r","Math","random","floor","toString","tristate","values","optionsText","optionsValue","span","find","getComputedStyle","textAlign","paddingLeft","right","paddingRight","parseInt","paddingTop","eventfunction","evt","currentElem","currentTarget","currentIndex","querySelector","newVal","propertyToUpdate","getPropertyName","includes","object","field","getAttribute","upDown","eventHandler","nextElementSibling","focus","previousElementSibling","enterKey","tabIndex","display","class","report","result","from","to","fromObs","ToObs","getObservable","Error","resizeSelect","resizeByWidth","selected","selectedIndex","dummy","dummyOption","body","clientWidth","opacity","_resize","allbindingsAccessor","innerWidth","transition","myResizeByWidth","method","pointerEvents","tippy","error","subscriptions","bindingOptionsOrValue","tippyOptions","tip","theme","obs","push","setProps","extend","textOptions","content","showOnChange","sub","dispose","bindingOptions","_tippy","component","components","get","_component","componentOptions","onShow","hideAll","exclude","duration","popper","cleanNode","template","cloneNode","formFactor","di","htmlNode","createRange","createContextualFragment","closeUI","params","createViewModel","$tippy","$htmlElement","applyBindings","onHidden","hide","setContent","show","ignoreAttributes","arrow","maxWidth","touch","inertia","interactiveBorder","interactive","placement","popperOptions","strategy","modifiers","name","clippingParents","rootBoundary","altAxis","props","defaultProps"],"mappings":"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","file":"ko.bindinghandlers.js","sourcesContent":["ko.bindingHandlers.action = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, context)\r\n {\r\n const value = valueAccessor();\r\n \r\n if (value) value.IsBusy = ko.observable(false);\r\n\r\n //if (value._type === 'notImplemented') {\r\n // element.classList.add('btn-warning')\r\n // const t = tippy(element, {\r\n // content: 'This action is not implemented yet!',\r\n // theme: 'warning'\r\n // });\r\n // t.show();\r\n //}\r\n\r\n const wrappedValueAccessor = function ()\r\n {\r\n return function (data, event)\r\n {\r\n \r\n const value = valueAccessor()\r\n\r\n if (value && ('IsBusy' in value))\r\n value.IsBusy(true)\r\n\r\n element.classList.add('loading')\r\n element.setAttribute('disabled', 'disabled')\r\n const promise = valueAccessor().call(viewModel, data, event);\r\n\r\n if (promise && ('then' in promise)) {\r\n promise.finally(function ()\r\n {\r\n element.classList.remove('loading')\r\n element.removeAttribute('disabled');\r\n\r\n\r\n if (value && ('IsBusy' in value))\r\n value.IsBusy(false)\r\n })\r\n } else {\r\n element.classList.remove('loading')\r\n element.removeAttribute('disabled')\r\n\r\n if (value && ('IsBusy' in value))\r\n value.IsBusy(false)\r\n }\r\n };\r\n };\r\n ko.bindingHandlers.click.init(element, wrappedValueAccessor, allBindingsAccessor, viewModel, context);\r\n },\r\n update: ko.bindingHandlers.click.update,\r\n originalInit: ko.bindingHandlers.click.init\r\n}\r\n","/*\r\n * value : waarde als input String (kan Observable zijn)\r\n * onSelect? : callback wat er gebeurd als er geselecteerd wordt (kan Object zijn als source Array is)\r\n * source : Kan Array, Observable of functie zijn: fetch(inputText, Callback functie) =>{}\r\n * label : de eigenschap die getoond moet worden als source een array is met Objects (string)\r\n * sizeToElement : de uitklaplijst moet de breedte van dit elemen aannemen (cssSelector als string, of HTMLElement)\r\n * \r\n * TODO: vergelijkbaar laten werken met options-binding (met optionsText en optionsValue)\r\n * */\r\nko.bindingHandlers.autocomplete = {\r\n addButton: function (container, title, icon, func) {\r\n const optionalButton = DOM.create(\r\n 'BUTTON',\r\n 'btn btn-default ' + icon,\r\n { margin: '2px', float: 'right' })\r\n\r\n optionalButton.title = title\r\n\r\n const optionalButtonClickHandler = () => {\r\n container.remove();\r\n func()\r\n }\r\n optionalButton.addEventListener('click', optionalButtonClickHandler)\r\n\r\n container.prepend(optionalButton);\r\n\r\n return () => {\r\n optionalButton.removeEventListener('click', optionalButtonClickHandler)\r\n }\r\n },\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n const lens = (value, prop) => (prop) ? value[prop] : value;\r\n\r\n //https://github.com/kraaden/autocomplete\r\n const userOptions = ko.utils.unwrapObservable(valueAccessor());\r\n const observable = userOptions.value;\r\n\r\n const totalOptions = {};\r\n let optionalButton\r\n let optionalButtonClickHandler\r\n Object.assign(totalOptions, ko.bindingHandlers.autocomplete.defaultOptions)\r\n Object.assign(totalOptions, userOptions);\r\n\r\n const onInput = (e) => {\r\n observable(element.value);\r\n return true;\r\n }\r\n\r\n element.addEventListener(totalOptions.updateEvent, onInput);\r\n\r\n if (!('onSelect' in totalOptions)) {\r\n totalOptions.onSelect = (item) => {\r\n const _label = lens(item, totalOptions.label);\r\n const _value = lens(item, totalOptions.idProp)\r\n\r\n observable(_value);\r\n element.value = _label;\r\n }\r\n }\r\n\r\n if (ko.isSubscribable(totalOptions.value)) {\r\n totalOptions.value.subscribe(function (value) {\r\n element.value = value\r\n })\r\n }\r\n let doFetch;\r\n if ((totalOptions.source instanceof Array) ||\r\n ko.isObservable(totalOptions.source)) {\r\n doFetch = (text, update) => {\r\n const v = text.trim().toLowerCase();\r\n\r\n const source = ko.unwrap(totalOptions.source)\r\n update(\r\n source.filter(i => {\r\n const key = ('label' in totalOptions) ? i[totalOptions.label] : i;\r\n return key.toLowerCase().indexOf(v) > -1;\r\n }))\r\n }\r\n } else {\r\n doFetch = totalOptions.source;\r\n }\r\n\r\n element.value = observable();\r\n\r\n const defaultRenderFunction = ko.bindingHandlers.autocomplete.\r\n renderFunction(totalOptions.label);\r\n\r\n totalOptions.input = element;\r\n totalOptions.fetch = doFetch;\r\n totalOptions.render = (totalOptions.render ?? defaultRenderFunction);\r\n totalOptions.customize = (input, rect, container, maxHeight) => {\r\n\r\n //Neem de positie+breedte over van het opgegeven element\r\n if (userOptions.sizeToElement) {\r\n\r\n //document.querySelector(userOptions.sizeToElement)\r\n const el = (typeof userOptions.sizeToElement === 'string') ?\r\n element.closest(userOptions.sizeToElement) :\r\n userOptions.sizeToElement;\r\n\r\n const x = el.getBoundingClientRect().x;\r\n const width = el?.offsetWidth;\r\n\r\n if (userOptions.buttonClick && userOptions.buttonTitle) {\r\n\r\n ko.bindingHandlers.autocomplete.addButton(\r\n container,\r\n userOptions.buttonTitle,\r\n userOptions.buttonCss,\r\n userOptions.buttonClick)\r\n }\r\n\r\n if (userOptions.buttonClick2 && userOptions.buttonTitle2) {\r\n\r\n ko.bindingHandlers.autocomplete.addButton(\r\n container,\r\n userOptions.buttonTitle2,\r\n userOptions.buttonCss2,\r\n userOptions.buttonClick2)\r\n }\r\n\r\n if (width) {\r\n container.style.width = width + 'px';\r\n container.style.left = x + 'px';\r\n }\r\n }\r\n\r\n //resize\r\n const screenHeight = window.innerHeight;\r\n const inputHeight = input.getBoundingClientRect().top;\r\n\r\n const isLowerPortion = inputHeight > (screenHeight * 0.7);\r\n\r\n //flip\r\n if (totalOptions.addLayoutStyle) {\r\n container.classList.toggle('expand-up', isLowerPortion)\r\n container.classList.toggle('expand-down', !isLowerPortion)\r\n }\r\n\r\n if (isLowerPortion) {\r\n container.style.top = \"\";\r\n container.style.bottom = (window.innerHeight - rect.bottom + input.offsetHeight) + \"px\";\r\n container.style.maxHeight = \"200px\";\r\n } else {\r\n }\r\n\r\n }\r\n\r\n const instance = autocomplete(totalOptions);\r\n\r\n element._autoComplete = instance;\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () => {\r\n optionalButton?.removeEventListener('click', optionalButtonClickHandler);\r\n element.removeEventListener('input', onInput);\r\n instance.destroy();\r\n });\r\n\r\n },\r\n renderFunction: function (label) {\r\n return (item, currentValue) => {\r\n const div = document.createElement(\"div\");\r\n const textContent = (label) ?\r\n item[label] :\r\n item;\r\n\r\n div.classList.add('text-overflow');\r\n div.textContent = textContent;\r\n div.title = textContent;\r\n return div;\r\n }\r\n },\r\n defaultOptions: {\r\n updateEvent: 'input',\r\n preventSubmit: false,\r\n minLength: 1,\r\n disableAutoSelect:false,\r\n debounceWaitMs: 0,\r\n addLayoutStyle: true /*adds style specific for use in layouts*/\r\n },\r\n}\r\n","ko.bindingHandlers.option = {\r\n update: function (element, valueAccessor) {\r\n var value = ko.utils.unwrapObservable(valueAccessor());\r\n ko.selectExtensions.writeValue(element, value);\r\n }\r\n};","ko.bindingHandlers.setChecked = {\r\n\r\n init: function (e, va, aba)\r\n {\r\n var attr = aba().checkedAttr || 'checked';\r\n if (ko.unwrap(va())) { e.setAttribute(attr, attr) } else { e.removeAttribute(attr) }\r\n },\r\n update: function (e, va, aba)\r\n {\r\n var attr = aba().checkedAttr || 'checked';\r\n if (ko.unwrap(va())) { e.setAttribute(attr, attr) } else { e.removeAttribute(attr) }\r\n }\r\n}\r\n\r\n","ko.bindingHandlers.setUrl = {\r\n update: function (element, valueAccessor, allBindingsAccessor) {\r\n const url = ko.unwrap(valueAccessor());\r\n const cancelOptions = allBindingsAccessor().cancelUrl || [];\r\n\r\n const lowerUrl = url.toLowerCase();\r\n\r\n const mustCancel = cancelOptions\r\n .map(i => i.toLowerCase())\r\n .some(i => lowerUrl.indexOf(i) > -1);\r\n\r\n if (url.length > 0 && url !== element.src && url.indexOf('about:blank') === -1 && !mustCancel) {\r\n //creates enough time to add 'sandbox' attribute in time to iframe\r\n setTimeout(() => {\r\n\r\n element.src = url;\r\n }, 0)\r\n\r\n }\r\n\r\n }\r\n}","/* \r\n * Copyright 2012 Sensible Softwares Pvt. Ltd, India. (http://bootstraptoday.com) \r\n * \r\n * Licensed under the MIT License. (http://opensource.org/licenses/mit-license.php) \r\n * \r\n */\r\nvar special_key_map = { 'enter': 13, 'esc': 27 }\r\nko.bindingHandlers.shortcut = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel)\r\n {\r\n var key = valueAccessor();\r\n key = key.toLowerCase();\r\n var match = key.match(/ctrl\\+/gi);\r\n var ctrl_modifier = Boolean(match && match.length > 0);\r\n match = key.match(/alt\\+/gi);\r\n var alt_modifier = Boolean(match && match.length > 0);\r\n key = key.replace(/(alt\\+|ctrl\\+)/gi, '');\r\n var keycode = null;\r\n if (key in special_key_map) {\r\n keycode = special_key_map[key];\r\n } else {\r\n keycode = key.charCodeAt(0);\r\n }\r\n // if no modifiers are specified in the shortcut (.e.g shortcut is just 'n') \r\n // in such cases, do not trigger the shortcut if the focus is on \r\n // form field. \r\n // if modifier are specified, then even if focus is on form field \r\n // trigger the shortcut (e.g. ctrl+enter) \r\n var ignore_form_input = Boolean(ctrl_modifier || alt_modifier || key in special_key_map);\r\n var handler = function (event)\r\n {\r\n //first check if the element is visible. Do not trigger clicks \r\n // on invisible elements. This way I can add short cuts on \r\n // drop down menus. \r\n var $element = $(element);\r\n var $target = $(event.target);\r\n var is_forminput = Boolean($target.is('button') == false && $target.is(':input') == true)\r\n if ($element.is(':visible') && (ignore_form_input == true || is_forminput == false)) {\r\n var modifier_match = (ctrl_modifier == (event.metaKey || event.ctrlKey))\r\n && (alt_modifier == event.altKey);\r\n if (modifier_match && (event.charCode == keycode || event.keyCode == keycode)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n $element.click();\r\n // event is handled so return false so that any further propagation is stopped. \r\n return false;\r\n }\r\n }\r\n // event is not handled. Hence return true so that propagation continues. \r\n return true;\r\n }\r\n var eventname = 'keypress';\r\n if (key in special_key_map) {\r\n eventname = 'keydown';\r\n }\r\n $('body').on(eventname, handler);\r\n var removeHandlerCallback = function ()\r\n {\r\n $('body').off(eventname, handler);\r\n }\r\n // Now add a callback on the element so that when the element is 'disposed' \r\n // we can remove the event handler from the 'body' \r\n ko.utils.domNodeDisposal.addDisposeCallback(element, removeHandlerCallback);\r\n }\r\n} ","ko.bindingHandlers.singleClick = {\r\n\tinit: function (element, valueAccessor, allBindings, viewModel, bindingContext)\r\n\t{\r\n\t\t//This handler helps when combining single and dblclicks. \r\n\t\t//in all other cases you can use click (or action when it returns a promise)\r\n\t\tlet handler = valueAccessor(),\r\n\t\t\tdelay = 200,\r\n\t\t\tclickTimeout = null;\r\n\r\n\t\tconst click = (e) =>\r\n\t\t{\r\n\t\t\tif (clickTimeout) {\r\n\t\t\t\tclearTimeout(clickTimeout);\r\n\t\t\t\tclickTimeout = null;\r\n\t\t\t} else {\r\n\t\t\t\tclickTimeout = setTimeout(function ()\r\n\t\t\t\t{\r\n\t\t\t\t\tclickTimeout = false;\r\n\t\t\t\t\thandler.apply(viewModel, [viewModel, e]);\r\n\t\t\t\t}, delay);\r\n\t\t\t}\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\r\n\t\telement.addEventListener('click', click);\r\n\t\t//remove bindinghandler when done\r\n\t\tko.utils.domNodeDisposal.addDisposeCallback(element, () =>\r\n\t\t{\r\n\t\t\telement.removeEventListener('click', click);\r\n\t\t})\r\n\t}\r\n\r\n};","\r\nko.bindingHandlers.slashedName = {\r\n update: function (elem, valueAccessor, allBindings) {\r\n const encodeHtml = (html) => {\r\n return document.createElement('a').appendChild(\r\n document.createTextNode(html)).parentNode.innerHTML;\r\n }\r\n\r\n const color = allBindings().slashedNameColor ?? '#bdbdbd';\r\n\r\n const value = ko.utils.unwrapObservable(valueAccessor());\r\n\r\n elem.innerHTML = value.split('/').map(i => encodeHtml(i)).join(` / `)\r\n\r\n \r\n }\r\n}\r\nko.virtualElements.allowedBindings.animate = true;\r\n","ko.bindingHandlers.splitter = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\r\n let splitter = null;\r\n\r\n if (!('Split' in window)) { throw 'Splitter is not defined!' }\r\n\r\n const userOptions = {};\r\n\r\n Object.assign(userOptions, ko.bindingHandlers.splitter.defaultUserOptions);\r\n Object.assign(userOptions, ko.utils.unwrapObservable(valueAccessor()));\r\n\r\n const sizesObservable = ko.isObservable(userOptions.sizes) ?\r\n userOptions.sizes :\r\n null;\r\n\r\n\r\n userOptions.sizes = ko.unwrap(userOptions.sizes);\r\n\r\n const key = userOptions.key || 'splitter_' + ko.bindingHandlers.splitter.generateGUID();\r\n\r\n\r\n //fix if splitter has gone haywire (=sum of all panels != 100%)\r\n if (userOptions.sizes?.reduce((partialSum, a) => partialSum + a, 0) < 100) {\r\n const panesize = (100/userOptions.sizes.length ) //size of one pane\r\n userOptions.sizes = userOptions.sizes.map(i => panesize);\r\n if (sizesObservable) {\r\n sizesObservable(userOptions.sizes)\r\n }\r\n if (userOptions.useStore) {\r\n window.localStorage[key] = JSON.stringify(userOptions.sizes);\r\n }\r\n }\r\n\r\n\r\n const elements = [...element.children];\r\n\r\n element.classList.add('splitter-main');\r\n\r\n //_element.addClass('splitter-main')\r\n\r\n const defaultOptions = {\r\n gutterAlign: 'start',\r\n direction: 'horizontal',\r\n gutterSize: 7,\r\n elementStyle: function (dimension, size, gutterSize) {\r\n return {\r\n 'flex-basis': 'calc(' + size + '% - ' + gutterSize + 'px)',\r\n }\r\n },\r\n gutterStyle: function (dimension, gutterSize) {\r\n return {\r\n 'flex-basis': gutterSize + 'px',\r\n 'flex-shrink': 0\r\n }\r\n },\r\n onDragStart: function (sizes) {\r\n elements.forEach(pane => pane.classList.remove('drag-animation'));\r\n\r\n },\r\n onDrag: function () {\r\n if (sizesObservable) {\r\n sizesObservable(splitter.getSizes());\r\n }\r\n\r\n },\r\n onDragEnd: function (sizes) {\r\n elements.forEach(pane => pane.classList.add('drag-animation'));\r\n\r\n\r\n if (userOptions.useStore) {\r\n window.localStorage[key] = JSON.stringify(sizes);\r\n }\r\n }\r\n };\r\n\r\n if (userOptions.useStore) {\r\n try {\r\n userOptions.sizes =\r\n JSON.parse(localStorage.getItem(key)) ||\r\n userOptions.sizes;\r\n\r\n } catch (err) {\r\n console.warn(err);\r\n userOptions.sizes = undefined;\r\n }\r\n }\r\n\r\n if (sizesObservable) {\r\n sizesObservable(userOptions.sizes)\r\n }\r\n\r\n const options = Object.assign(\r\n defaultOptions,\r\n userOptions);\r\n\r\n elements.forEach(function (i, index) {\r\n i.id = key + '_' + index;\r\n\r\n i.classList.add('split')\r\n i.classList.add('drag-animation')\r\n i.classList.add('content')\r\n i.classList.add((options.direction === 'horizontal') ?\r\n 'split-horizontal' :\r\n 'split-vertical');\r\n return i\r\n });\r\n\r\n //_element.css('flex-direction', options.direction === 'vertical' ? 'column' : 'row');\r\n\r\n element.classList.add(options.direction === 'vertical' ? 'vertical' : 'horizontal');\r\n\r\n\r\n splitter = Split(\r\n elements.map(function (i) { return '#' + i.id }),\r\n options)\r\n\r\n if (sizesObservable) sizesObservable.subscribe((sizes) => {\r\n splitter.setSizes(sizes);\r\n\r\n if (userOptions.useStore) {\r\n window.localStorage[key] = JSON.stringify(sizes);\r\n }\r\n });\r\n },\r\n defaultUserOptions: {\r\n useStore: false,\r\n key: '',\r\n minSize: 0\r\n },\r\n generateGUID: () => {\r\n let\r\n d = new Date().getTime(),\r\n d2 = (performance && performance.now && (performance.now() * 1000)) || 0;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n let r = Math.random() * 16;\r\n if (d > 0) {\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else {\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);\r\n });\r\n }\r\n};","ko.bindingHandlers.tristate = {\r\n init: function (element, valueAccessor, allBindingsAccessor, data) {\r\n // Extract necessary values\r\n const observable = (typeof valueAccessor() === 'function') ? valueAccessor() : null;\r\n const value = ko.unwrap(valueAccessor());\r\n const options = allBindingsAccessor().values;\r\n const optionsText = allBindingsAccessor().optionsText;\r\n const optionsValue = allBindingsAccessor().optionsValue;\r\n const elem = element;\r\n\r\n // Add necessary classes and attributes\r\n elem.classList.add('ko-tristate', 'user-select-none');\r\n elem.setAttribute('tabindex', '0');\r\n\r\n // Create and append span element\r\n const span = document.createElement('span');\r\n span.classList.add('user-select-none');\r\n span.textContent = options.find(i => i[optionsValue] === value)[optionsText];\r\n if (window.getComputedStyle(elem).textAlign === 'left') {\r\n span.style.left = window.getComputedStyle(elem).paddingLeft;\r\n }\r\n if (window.getComputedStyle(elem).textAlign === 'right') {\r\n span.style.right = window.getComputedStyle(elem).paddingRight;\r\n }\r\n span.style.top = parseInt(window.getComputedStyle(elem).paddingTop) + 1 + \"px\";\r\n elem.appendChild(span);\r\n\r\n // Add event listener for click\r\n const eventfunction = (evt) => {\r\n const currentElem = evt.currentTarget;\r\n const currentIndex = options.indexOf(options.find(i => i[optionsText] === currentElem.querySelector('span').textContent));\r\n const newVal = (options[currentIndex + 1]) ? options[currentIndex + 1] : options[0];\r\n const propertyToUpdate = getPropertyName(currentElem);\r\n\r\n if (observable && typeof observable === 'function') {\r\n data[getPropertyName(currentElem)](newVal[optionsValue]);\r\n } else {\r\n if (propertyToUpdate.includes('.')) {\r\n const [object, field] = propertyToUpdate.split('.');\r\n data[object][field] = newVal[optionsValue];\r\n }\r\n data[propertyToUpdate] = newVal[optionsValue];\r\n }\r\n\r\n currentElem.querySelector('span').textContent = newVal[optionsText];\r\n }\r\n elem.addEventListener('click', eventfunction);\r\n\r\n // Add event listener for keypress\r\n elem.addEventListener('keypress', function (evt) {\r\n if (evt.keyCode == 32) {\r\n eventfunction(evt);\r\n }\r\n });\r\n\r\n // Function to extract property name\r\n function getPropertyName(elem) {\r\n return elem.getAttribute('data-bind').split('tristate:')[1].split(',')[0].trim();\r\n }\r\n },\r\n update: function (element, valueAccessor, allBindingsAccessor, data) {\r\n const value = ko.unwrap(valueAccessor());\r\n const options = allBindingsAccessor().values;\r\n const optionsText = allBindingsAccessor().optionsText;\r\n const optionsValue = allBindingsAccessor().optionsValue;\r\n const elem = element;\r\n\r\n elem.querySelector('span').textContent = options.find(i => i[optionsValue] === value)[optionsText];\r\n }\r\n};","ko.bindingHandlers.upDown = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext)\r\n {\r\n \r\n const options = ko.unwrap(valueAccessor());\r\n const eventHandler = (e) =>\r\n {\r\n if (e.key === 'ArrowDown') {\r\n e.currentTarget.nextElementSibling?.focus()\r\n e.preventDefault()\r\n }\r\n if (e.key === 'ArrowUp') {\r\n e.currentTarget.previousElementSibling?.focus()\r\n e.preventDefault()\r\n }\r\n\r\n //viewmodel has an 'click' function\r\n if (e.key ==='Enter' && options.enterKey) {\r\n options.enterKey(viewModel, e);\r\n\r\n }\r\n }\r\n\r\n element.addEventListener('keyup', eventHandler);\r\n element.tabIndex = 0;\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () =>\r\n {\r\n element.removeEventListener('keyup', eventHandler)\r\n });\r\n\r\n }\r\n}","interface Options {\r\n class: string;\r\n delay: number;\r\n}\r\n\r\nko.bindingHandlers.animate = {\r\n init: function (elem: HTMLElement, valueAccessor) {\r\n elem.style.display = 'none';\r\n const options: Options = ko.utils.unwrapObservable(valueAccessor());\r\n\r\n setTimeout(() => {\r\n elem.style.display = 'block';\r\n elem.classList.add(options.class);\r\n\r\n }, options.delay);\r\n }\r\n}\r\nko.virtualElements.allowedBindings.animate = true;\r\n","ko.bindingHandlers.enterKey = {\r\n init: function (element: HTMLElement, valueAccessor, allBindings, viewModel, bindingContext)\r\n {\r\n \r\n const eventHandler = (evt) =>\r\n {\r\n if (evt.key === 'Enter')\r\n ko.unwrap(valueAccessor()).call(null, viewModel, evt);\r\n\r\n }\r\n\r\n element.addEventListener('keydown', eventHandler)\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () =>\r\n {\r\n element.removeEventListener('keydown', eventHandler)\r\n });\r\n\r\n }\r\n};\r\n","\r\n//ko.bindingHandlers.inViewport = {\r\n// init: function (element, valueAccessor, allBindings, viewModel, bindingContext)\r\n// {\r\n\r\n\r\n// new IntersectionObserver(() =>\r\n// {\r\n\r\n// }, { threshold: 1.0 });\r\n\r\n// //const eventHandler = (evt) =>\r\n// //{\r\n// // if (evt.key === 'Enter')\r\n// // ko.unwrap(valueAccessor()).call(null, viewModel, evt);\r\n\r\n// //}\r\n\r\n// //element.addEventListener('keydown', eventHandler)\r\n\r\n// //ko.utils.domNodeDisposal.addDisposeCallback(element, () =>\r\n// //{\r\n// // element.removeEventListener('keypress', eventHandler)\r\n// //});\r\n\r\n// }\r\n//};\r\n","ko.bindingHandlers.report = {\r\n init: function (elem: HTMLElement, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\r\n elem.style.display = 'none';\r\n\r\n const result = valueAccessor()\r\n\r\n\r\n let from, to;\r\n if (typeof result === 'string') {\r\n from = result;\r\n to = result\r\n }else if (typeof result === 'function') {\r\n result;\r\n\r\n } else {\r\n from = result.from;\r\n to = result.to;\r\n }\r\n\r\n const fromObs = bindingContext[from];\r\n const ToObs = ko.getObservable(viewModel, to)\r\n\r\n\r\n if (!fromObs)\r\n throw new Error(`Could not find '${from}' in bindingContext. Is this property set via the 'let'-binding?`)\r\n\r\n if (!ToObs)\r\n throw new Error(`Could not find '${to}' in the current viewModel`, viewModel)\r\n\r\n ToObs(fromObs());\r\n fromObs.subscribe(function (value) {\r\n\r\n ToObs(value);\r\n });\r\n\r\n }\r\n};\r\n\r\nko.virtualElements.allowedBindings.animate = true;\r\n","ko.bindingHandlers.resizeSelect = (() =>\r\n{\r\n\r\n const resizeByWidth = (e, margin = 5) =>\r\n {\r\n \r\n const elem = e.currentTarget as HTMLSelectElement\r\n const selected = elem.options[elem.selectedIndex]\r\n //const selected = elem.querySelector('option:selected');\r\n\r\n const dummy = document.createElement('SELECT')\r\n dummy.classList.add(...elem.classList);\r\n\r\n const dummyOption = document.createElement('OPTION') as HTMLOptionElement;\r\n dummyOption.textContent = selected?.textContent || null;\r\n\r\n dummy.appendChild(dummyOption);\r\n\r\n document.body.appendChild(dummy)\r\n\r\n elem.style.width = dummy.clientWidth + margin + 'px';\r\n elem.style.opacity = '1'\r\n\r\n dummy.remove()\r\n }\r\n\r\n const _resize = (elem: HTMLSelectElement, value, allbindingsAccessor) =>\r\n {\r\n\r\n const margin = allbindingsAccessor().resizeSelect.margin ?? 5;\r\n //don't do on mobile. Most mobile UI does not get better\r\n if (window.innerWidth < 400) return \r\n elem.style.transition = 'width ease .2s';\r\n elem.style.width = '110px';\r\n\r\n //function 'preconfigured' with params\r\n const myResizeByWidth = (evt) => {\r\n resizeByWidth(evt ?? {currentTarget: elem}, margin);\r\n }\r\n\r\n setTimeout(myResizeByWidth, 500);\r\n //to be sure\r\n setTimeout(myResizeByWidth, 1500);\r\n \r\n elem.addEventListener('change', myResizeByWidth, false);\r\n elem.addEventListener('blur', myResizeByWidth, false);\r\n\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(elem, () =>\r\n {\r\n //elem.removeEventListener('load', resizeSelect);\r\n elem.removeEventListener('change', myResizeByWidth);\r\n elem.removeEventListener('blur', myResizeByWidth);\r\n //elem.removeEventListener('focus', restoreSelect);\r\n });\r\n }\r\n\r\n return {\r\n init: _resize\r\n }\r\n})();\r\n\r\n\r\n/*ko.bindingHandlers.resizeSelect = {\r\n init: function (elem)\r\n {\r\n let sel = elem;\r\n function resizeSelect(selected)\r\n {\r\n if (resized) return;\r\n var sel = document.getElementById('select');\r\n for (var i = 0; i < sel.options.length; i++) {\r\n sel.options[i].title = sel.options[i].innerHTML;\r\n if (i != sel.options.selectedIndex) sel.options[i].innerHTML = '';\r\n }\r\n sel.blur();\r\n }\r\n\r\n //$.fn.resizeselect = function (settings)\r\n //{\r\n // var arrowWidth = 30;\r\n // return this.each(function ()\r\n // {\r\n\r\n // $(this).change(function ()\r\n // {\r\n // var $this = $(this);\r\n\r\n // // create test element\r\n // var text = $this.find(\"option:selected\").text();\r\n // var $test = $(\"\").text(text).css({\r\n // \"font-size\": $this.css(\"font-size\"), // ensures same size text\r\n // \"visibility\": \"hidden\" // prevents FOUC\r\n // });\r\n\r\n\r\n // // add to parent, get width, and get out\r\n // $test.appendTo($this.parent());\r\n // var width = $test.width();\r\n // $test.remove();\r\n\r\n // // set select width\r\n // $this.width(width + arrowWidth);\r\n\r\n // // run on start\r\n // }).change();\r\n\r\n // });\r\n //};\r\n setTimeout(() =>\r\n {\r\n resizeSelect(elem) //.resizeselect();\r\n\r\n }, 8000);\r\n\r\n resizeSelect(elem);\r\n\r\n //$(elem).resizeselect();\r\n },\r\n update: function (elem)\r\n {\r\n\r\n let sel = elem;\r\n\r\n\r\n function resizeSelect(selected)\r\n {\r\n if (resized) return;\r\n var sel = document.getElementById('select');\r\n for (var i = 0; i < sel.options.length; i++) {\r\n sel.options[i].title = sel.options[i].innerHTML;\r\n if (i != sel.options.selectedIndex) sel.options[i].innerHTML = '';\r\n }\r\n sel.blur();\r\n\r\n }\r\n resizeSelect(elem);\r\n //$(elem).resizeselect();\r\n\r\n }\r\n}*/",";\r\n//mogelijk voorbeeld hier: https://blog.thinkingcraftsman.in/2012/09/binding-for-knockoutjs\r\nko.bindingHandlers.shortcut = {\r\n init: function (element: HTMLElement, valueAccessor, allBindings, viewModel, bindingContext) {\r\n\r\n const event = (e) => {\r\n\r\n const method = ko.unwrap(valueAccessor())\r\n method(viewModel, e);\r\n }\r\n element.addEventListener('keydown', event)\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, event)\r\n\r\n }\r\n\r\n\r\n};","ko.bindingHandlers['show'] = {\r\n update: function (element: HTMLElement, valueAccessor, allBindings, viewModel, bindingContext)\r\n {\r\n\r\n const value = ko.unwrap(valueAccessor());\r\n\r\n //based on opacity, so no fiddling with removed items\r\n if (allBindings().display === 'opacity') {\r\n\r\n if (value) {\r\n element.style.opacity = '1';\r\n element.style.pointerEvents = 'auto'\r\n } else {\r\n element.style.opacity = '0';\r\n element.style.pointerEvents = 'none'\r\n\r\n }\r\n\r\n } else {\r\n //or based on display, but the option to set the display-value\r\n if (value) {\r\n element.style.display = allBindings().display ?? 'block';\r\n } else {\r\n element.style.display = 'none';\r\n }\r\n }\r\n\r\n }\r\n}; ","\r\nko.bindingHandlers.tippy = {\r\n init: function (element, valueAccessor, allBindingsAccessor,) {\r\n\r\n if (!('tippy' in window)) {\r\n console.error('tooltip library tippy is not defined!')\r\n }\r\n const subscriptions: Array = [];\r\n const bindingOptionsOrValue = ko.utils.unwrapObservable(valueAccessor());\r\n const userOptions = allBindingsAccessor().tippyOptions ?? {};\r\n const tippyOptions = {};\r\n\r\n let tip = null;\r\n\r\n //special properties can be observable:\r\n\r\n if ('theme' in userOptions && ko.isObservable(userOptions.theme)) {\r\n\r\n const obs: KnockoutObservable = userOptions.theme; //store observable\r\n userOptions.theme = ko.unwrap(obs) //unwrap observable\r\n\r\n subscriptions.push(obs.subscribe((value) => {\r\n tip?.setProps({\r\n theme: value\r\n })\r\n }));\r\n }\r\n\r\n //geen object, of anders null (null is oke, dat wordt later mogelijk text)\r\n if (typeof bindingOptionsOrValue !== 'object' ||\r\n bindingOptionsOrValue === null) {\r\n\r\n //global options\r\n ko.utils.extend(tippyOptions, ko.bindingHandlers.tippy.textOptions)\r\n //user options\r\n ko.utils.extend(tippyOptions, userOptions)\r\n\r\n tippyOptions.content = bindingOptionsOrValue;\r\n\r\n delete tippyOptions.showOnChange;\r\n\r\n tip = tippy(element, tippyOptions)\r\n\r\n ko.utils.domNodeDisposal.addDisposeCallback(element, () => {\r\n //cleanup\r\n tip.destroy();\r\n subscriptions.forEach(sub => sub.dispose())\r\n });\r\n }\r\n },\r\n update: function (element, valueAccessor, allBindingsAccessor) {\r\n\r\n const bindingOptions = ko.utils.unwrapObservable(valueAccessor());\r\n const userOptions = allBindingsAccessor().tippyOptions ?? {};\r\n const tippyOptions = {};\r\n\r\n const tip = element._tippy;\r\n let component = null\r\n\r\n\r\n\r\n if (bindingOptions !== null &&\r\n typeof bindingOptions === 'object' &&\r\n 'component' in bindingOptions) {\r\n\r\n ko.components.get(bindingOptions.component, function (_component) {\r\n component = _component;\r\n })\r\n\r\n //global options\r\n Object.assign(tippyOptions, ko.bindingHandlers.tippy.componentOptions);\r\n\r\n \r\n Object.assign(tippyOptions, userOptions);\r\n\r\n //mandatory options:\r\n Object.assign(tippyOptions, {\r\n onShow: function (instance) {\r\n tippy.hideAll({ exclude: instance, duration: 0 });\r\n\r\n //geen throw, alleen warning aan devs\r\n if (!component)\r\n console.warn(`Could not get component with ${JSON.stringify(bindingOptions.component)}.`)\r\n\r\n\r\n //TODO; figure out how to extend binding context with $component\r\n //this is not really working with the component-technique of knockout, but rather put the viewmodel and model together by ourselves\r\n //startpoint: https://knockoutjs.com/documentation/custom-bindings-controlling-descendant-bindings.html\r\n\r\n //load the component ourselves:\r\n const content = instance.popper.querySelector('.tippy-content')\r\n\r\n //content.innerHTML = component.template[0].outerHTML;\r\n ko.cleanNode(content)\r\n DOM.cleanNode(content)\r\n content.innerHTML = '';\r\n\r\n component.template.forEach(function (i) {\r\n content.appendChild(\r\n i.cloneNode(true))\r\n })\r\n\r\n const formFactor = di`Formfactor`;\r\n\r\n if (formFactor === 'phone') {\r\n\r\n const htmlNode = document.createRange().\r\n createContextualFragment(\r\n ko.bindingHandlers.tippy.closeUI);\r\n\r\n content.appendChild(htmlNode);\r\n //to prevent clicking a menu-item on start\r\n content.style.pointerEvents = 'none';\r\n }\r\n\r\n //content.style.padding = '10px';\r\n //content.style.position = 'relative';\r\n\r\n const params = ko.unwrap(valueAccessor()).params;\r\n\r\n const viewModel = ('createViewModel' in component) ?\r\n component.createViewModel(params) :\r\n params;\r\n\r\n viewModel.$tippy = instance;\r\n viewModel.$htmlElement = content;\r\n\r\n ko.applyBindings(viewModel, content);\r\n\r\n setTimeout(() => {\r\n content.style.pointerEvents = 'auto';\r\n }, 200)\r\n\r\n // setTimeout(function () { dict.scanForTags(content) }, 50)\r\n },\r\n onHidden: function (instance) {\r\n //$('.dashboard-main').css('filter', 'none')\r\n\r\n var content = instance.popper.querySelector('.tippy-content')\r\n\r\n ko.cleanNode(content);\r\n\r\n }\r\n });\r\n\r\n tippy(element, tippyOptions);\r\n\r\n } else {\r\n\r\n const value = ko.utils.unwrapObservable(valueAccessor());\r\n const userOptions = allBindingsAccessor().tippyOptions ?? {};\r\n\r\n if (!tip) {\r\n console.warn(element);\r\n }\r\n\r\n if (!value)\r\n tip.hide();\r\n\r\n tip.setContent(value);\r\n\r\n if (userOptions.showOnChange && value)\r\n tip.show();\r\n\r\n\r\n\r\n\r\n }\r\n },\r\n componentOptions: {\r\n ignoreAttributes:true,\r\n arrow: true,\r\n theme: 'light', /*error, warning, dark, light-border, light. material-light*/\r\n maxWidth: '1200px',\r\n touch: ['hold', 0],\r\n inertia: true,\r\n interactiveBorder: 15,\r\n interactive: true,\r\n delay: [250, 150],\r\n placement: 'right',\r\n popperOptions: {\r\n strategy: 'absolute',\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 textOptions: {\r\n ignoreAttributes:true,\r\n onShow: (instance) => {\r\n //to distinct text and component tooltips\r\n instance.popper.setAttribute('text',true)\r\n //instance.popper.attributes['text'] = true;\r\n //do not show when content empty \r\n if (!instance.props.content)\r\n return false;\r\n },\r\n touch: ['hold', 500],\r\n popperOptions: {\r\n placement: 'bottom-end'\r\n }\r\n },\r\n closeUI: `{{dict('Close')}}`\r\n};\r\n\r\ntippy.defaultProps.touch = ['hold', 500];"]}