@dso-toolkit/core 70.0.0 → 70.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dso-autosuggest.cjs.entry.js +15 -10
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-autosuggest.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/autosuggest/autosuggest.js +15 -11
- package/dist/collection/components/autosuggest/autosuggest.js.map +1 -1
- package/dist/components/dso-autosuggest.js +15 -11
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/dso-toolkit/dso-autosuggest.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/p-e67860a0.entry.js +2 -0
- package/dist/dso-toolkit/p-e67860a0.entry.js.map +1 -0
- package/dist/esm/dso-autosuggest.entry.js +15 -10
- package/dist/esm/dso-autosuggest.entry.js.map +1 -1
- package/dist/esm/dso-toolkit.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/autosuggest/autosuggest.d.ts +0 -1
- package/package.json +3 -3
- package/dist/dso-toolkit/p-63047745.entry.js +0 -2
- package/dist/dso-toolkit/p-63047745.entry.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,c as t,h as i,F as e,g as o}from"./p-BzEnSYbR.js";import{d as h}from"./p-DDU8nTJS.js";import{i as n}from"./p-D6dst_Em.js";import{v as r}from"./p-BF0_OXTe.js";import"./p-BFTU3MAI.js";function a(s){if(typeof s!=="string"){throw new TypeError("Expected a string")}return s.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const u={en:{"dso-autosuggest":{notFound:"{{inputValue}} was not found."}},nl:{"dso-autosuggest":{notFound:"{{inputValue}} is niet gevonden."}}};const l=".sc-dso-autosuggest-h{display:block;position:relative}.listbox-container.sc-dso-autosuggest{inset-inline:0;inset-block-start:100%;block-size:auto;max-block-size:var(--max-block-size);min-block-size:50px;overflow-y:auto;position:absolute;z-index:200}.listbox.sc-dso-autosuggest,.autosuggest-progress-box.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-block:0}.autosuggest-progress-box.sc-dso-autosuggest{padding-block:12px;padding-inline:8px}.listbox.sc-dso-autosuggest{padding-block:8px;padding-inline:0}.listbox.sc-dso-autosuggest .group.sc-dso-autosuggest:not(:first-child) .group-label.sc-dso-autosuggest{border-block-start:1px solid #b2b2b2}.listbox.sc-dso-autosuggest .group-label.sc-dso-autosuggest{color:#275937;font-weight:700;padding-block:4px;margin-inline:16px}.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest{padding-block:4px;padding-inline:16px}.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest .suggestion-row.sc-dso-autosuggest{display:flex;justify-content:space-between}.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest:active{background-color:#275937}.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest:active,.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest:active .type.sc-dso-autosuggest,.listbox.sc-dso-autosuggest .option.sc-dso-autosuggest:active .extra.sc-dso-autosuggest{color:#fff}.option[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#d7e7ce}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest,.extra.sc-dso-autosuggest{color:#666}.type.sc-dso-autosuggest{text-align:end}.extra.sc-dso-autosuggest{font-size:14px;line-height:21px}.extra.sc-dso-autosuggest:not(:first-child){text-align:end}";const d=10;const c=8;const g=1;const f=({id:s,mouseEnter:t,mouseLeave:e,click:o,selected:h,suggestion:n,ref:r,markedSuggestion:a})=>i("div",{class:"option",role:"option",id:s,onMouseEnter:t,onMouseLeave:e,onClick:o,"aria-selected":h,"aria-label":n.value,ref:r},i("div",{class:"suggestion-row"},i("span",{class:"value"},a.value),a.type?i("span",{class:"type"},a.type):undefined),a.extras&&a.extras.map((s=>i("div",{class:"suggestion-row"},s.map((s=>i("span",{class:"extra"},s)))))));function p(s){return!!s&&s.length>0&&s.every((s=>s!==undefined&&"groupLabel"in s&&s.groupLabel!==undefined&&"suggestions"in s&&s.suggestions.length>0))}function v(s){return!!s&&s.length>0&&s.every((s=>s!==undefined&&"value"in s&&s.value!==undefined))}const b=class{constructor(i){s(this,i);this.dsoSelect=t(this,"dsoSelect",7);this.dsoChange=t(this,"dsoChange",7);this.dsoSearch=t(this,"dsoSearch",7);this.suggestions=null;this.loading=false;this.loadingLabel="Een moment geduld.";this.suggestOnFocus=false;this.showSuggestions=false;this.notFound=false;this.showLoading=false;this.listboxContainerMaxBlockSize=0;this.listboxItems=[];this.listboxId=r();this.inputId=r();this.labelId=r();this.resizeObserver=new ResizeObserver(h((()=>this.setListboxContainerMaxBlockSize()),150));this.debouncedEmitValue=h((s=>{this.dsoChange.emit(s);this.debouncedShowLoading()}),200);this.debouncedShowLoading=h((()=>{if(this.inputValue){this.showLoading=true}}),this.loadingDelayed);this.inputValue="";this.onInput=s=>{if(!(s.target instanceof HTMLInputElement)){return}this.showLoading=!this.loadingDelayed;this.inputValue=s.target.value;this.debouncedEmitValue(s.target.value.match(/(\S+)/g)?s.target.value:"")};this.onFocusIn=()=>{if(this.suggestOnFocus){this.openSuggestions()}};this.text=n((()=>this.host),u);this.onWindowResize=h((()=>this.setListboxContainerMaxBlockSize()),150);this.onScrollend=()=>this.setListboxContainerMaxBlockSize();this.onKeyDown=s=>{if(s.defaultPrevented||this.loading){return}switch(s.key){case"ArrowDown":if(!this.showSuggestions){this.openSuggestions("first")}else{this.selectNextSuggestion()}break;case"ArrowUp":if(!this.showSuggestions){this.openSuggestions("last")}else{this.selectPreviousSuggestion()}break;case"Tab":this.closeSuggestions();return;case"Escape":this.closeSuggestions();break;case"Enter":this.pickSelectedValue();break;default:return}s.preventDefault()}}suggestionsWatcher(){this.resetSelectedSuggestion();if((!this.showSuggestions||!this.notFound)&&this.inputValue){this.openSuggestions()}else if((this.showSuggestions||this.notFound)&&!this.inputValue){this.closeSuggestions()}}onDocumentClick(s){if((this.showSuggestions||this.notFound)&&this.listbox&&s.target instanceof Node&&!this.listbox.contains(s.target)&&this.input!==s.target){this.closeSuggestions()}}componentDidRender(){this.setListboxContainerMaxBlockSize()}connectedCallback(){setTimeout((()=>{const s=this.host.querySelector('input[type="text"]');if(!(s instanceof HTMLInputElement)){return}this.input=s;if(s.id){this.inputId=s.id}else{s.id=this.inputId}if(!this.input.labels||this.input.labels.length<1){return}const t=this.input.labels[0];if(t===null||t===void 0?void 0:t.id){this.labelId=t.id}else if(t){t.id=this.labelId}this.input.setAttribute("role","combobox");this.input.setAttribute("aria-haspopup","listbox");this.input.setAttribute("aria-expanded","false");this.input.setAttribute("autocomplete","off");this.input.setAttribute("aria-autocomplete","list");this.input.setAttribute("aria-activedescendant","");this.input.addEventListener("input",this.onInput);this.input.addEventListener("keydown",this.onKeyDown);this.input.addEventListener("focusin",this.onFocusIn);window.addEventListener("resize",this.onWindowResize);document.addEventListener("scrollend",this.onScrollend);this.resizeObserver.observe(this.host);this.setListboxContainerMaxBlockSize()}))}disconnectedCallback(){var s,t,i;(s=this.input)===null||s===void 0?void 0:s.removeEventListener("input",this.onInput);(t=this.input)===null||t===void 0?void 0:t.removeEventListener("keydown",this.onKeyDown);(i=this.input)===null||i===void 0?void 0:i.removeEventListener("focusin",this.onFocusIn);window.removeEventListener("resize",this.onWindowResize);document.removeEventListener("scrollend",this.onScrollend);this.resizeObserver.disconnect()}setListboxContainerMaxBlockSize(){var s;if(!this.listboxContainer||!this.showSuggestions){return}if(this.showSuggestions){let t=0;const i=this.listboxItems.length?Math.min(this.listboxItems.length,d):0;for(let e=0;e<i;e++){t=t+(((s=this.listboxItems[e])===null||s===void 0?void 0:s.getBoundingClientRect().height)||0)}const e=window.innerHeight-this.host.getBoundingClientRect().bottom;const o=t+2*c+2*g;if(e<o||e<=t){this.listboxContainerMaxBlockSize=e-2*c}else{this.listboxContainerMaxBlockSize=o}}}showInputValueNotFound(s){var t,i;return this.processAutosuggestMarkItems(this.markTerms((i=(t=this.input)===null||t===void 0?void 0:t.value.split(" ").filter((s=>s)))!==null&&i!==void 0?i:[],s))}handleMark(s,t,i,e){var o,h;if(this.mark&&i){return this.processAutosuggestMarkItems(this.mark(s,t,i,e))}return this.processAutosuggestMarkItems(this.markTerms((h=(o=this.input)===null||o===void 0?void 0:o.value.split(" ").filter((s=>s)))!==null&&h!==void 0?h:[],t))}markTerms(s,t){if(!t||!s||s.length===0||s[0]===undefined){return[""]}const i=new RegExp(`(${a(s[0])})`,"gi");return t.split(i).reduce(((t,e)=>{if(!e){t.push(e)}else if(i.test(e)){t.push({mark:e})}else if(s.length===1){t.push(e)}else{t.push(...this.markTerms(s.slice(1),e))}return t}),[])}processAutosuggestMarkItems(s){if(s.length===0){return[""]}return s.map((s=>{if(typeof s==="object"){return i("mark",null,s.mark)}return s}))}selectSuggestion(s,t){this.selectedSuggestion=s;this.selectedSuggestionGroup=t;this.setAriaActiveDescendant()}selectFirstSuggestion(){if(!this.suggestions){return}if(p(this.suggestions)&&this.selectedSuggestionGroup){this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[0]}else{if(v(this.suggestions)){this.selectedSuggestion=this.suggestions[0]}}this.setAriaActiveDescendant(true)}selectLastSuggestion(){if(!this.suggestions){return}if(p(this.suggestions)&&this.selectedSuggestionGroup){this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length-1]}else{if(v(this.suggestions)){this.selectedSuggestion=this.suggestions[this.suggestions.length-1]}}this.setAriaActiveDescendant(true)}selectNextSuggestion(){var s;if(!this.suggestions){return}if(p(this.suggestions)){this.selectNextGroupedSuggestion()}else{const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):-1;this.selectedSuggestion=(s=this.suggestions[t+1])!==null&&s!==void 0?s:this.suggestions[0]}this.setAriaActiveDescendant(true)}selectNextGroupedSuggestion(){var s;if(!this.suggestions){return}if(this.selectedSuggestionGroup){const t=this.selectedSuggestion?this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion):-1;if(t===this.selectedSuggestionGroup.suggestions.length-1){const t=this.suggestionGroups.indexOf(this.selectedSuggestionGroup);this.selectedSuggestionGroup=(s=this.suggestionGroups[t+1])!==null&&s!==void 0?s:this.suggestionGroups[0];this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[0]}else{this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[t+1]}}else{this.selectedSuggestionGroup=this.suggestionGroups[0];this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[0]}}selectPreviousSuggestion(){var s;if(!this.suggestions){return}if(p(this.suggestions)){this.selectPreviousGroupedSuggestion()}else{const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):0;this.selectedSuggestion=(s=this.suggestions[t-1])!==null&&s!==void 0?s:this.suggestions[this.suggestions.length-1]}this.setAriaActiveDescendant(true)}selectPreviousGroupedSuggestion(){var s;if(!this.suggestions){return}if(this.selectedSuggestionGroup){const t=this.selectedSuggestion?this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion):-1;if(t===0){const t=this.suggestionGroups.indexOf(this.selectedSuggestionGroup);this.selectedSuggestionGroup=(s=this.suggestionGroups[t-1])!==null&&s!==void 0?s:this.suggestionGroups[this.suggestions.length-1];this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length-1]}else{this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[t-1]}}else{this.selectedSuggestionGroup=this.suggestionGroups[this.suggestions.length-1];this.selectedSuggestion=this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length-1]}}get suggestionGroups(){return p(this.suggestions)?this.suggestions:[]}setAriaActiveDescendant(s=false){var t,i;if(this.selectedSuggestion){const e=this.selectedSuggestionGroup?this.listboxGroupedItemId(this.selectedSuggestionGroup,this.selectedSuggestion):this.listboxItemId(this.selectedSuggestion);(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",e);if(s){(i=document.getElementById(e))===null||i===void 0?void 0:i.scrollIntoView({block:"nearest"})}}}resetSelectedSuggestion(){var s;this.showLoading=!this.loadingDelayed;this.notFound=false;this.selectedSuggestion=undefined;this.selectedSuggestionGroup=undefined;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant","")}openSuggestions(s){var t,i,e,o;this.showSuggestions=(t=this.suggestions&&this.suggestions.length>0)!==null&&t!==void 0?t:false;this.notFound=(e=this.suggestions&&((i=this.suggestions)===null||i===void 0?void 0:i.length)===0)!==null&&e!==void 0?e:false;(o=this.input)===null||o===void 0?void 0:o.setAttribute("aria-expanded",(this.showSuggestions||this.notFound).toString());if(this.showSuggestions&&s==="first"){this.selectFirstSuggestion()}else if(this.showSuggestions&&s==="last"){this.selectLastSuggestion()}}closeSuggestions(){var s;this.showSuggestions=false;this.notFound=false;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-expanded","false");this.selectFirstSuggestion()}pickSelectedValue(){var s;if(this.selectedSuggestion&&this.showSuggestions){this.dsoSelect.emit(this.selectedSuggestion)}else{this.dsoSearch.emit((s=this.input)===null||s===void 0?void 0:s.value)}this.closeSuggestions()}listboxItemId(s){if(!this.suggestions){return""}return`${this.inputId}-${v(this.suggestions)&&this.suggestions.indexOf(s)+1}`}listboxGroupedItemId(s,t){if(!this.suggestions){return""}return`${this.inputId}-${this.suggestionGroups.indexOf(s)+1}-${s.suggestions.indexOf(t)+1}`}getMarkedChunkedExtras(s,t){const i=s.reduce(((s,t,i)=>{var e;const o=Math.floor(i/2);if(!s[o]){s[o]=[]}(e=s[o])===null||e===void 0?void 0:e.push(t);return s}),[]);return i.map(((s,i)=>s.map(((s,e)=>this.handleMark(t,s,"extra",i*2+e)))))}getMarkedSuggestions(s){return{value:this.handleMark(s,s.value,"value"),type:s.type?this.handleMark(s,s.type,"type"):undefined,extras:s.extras?this.getMarkedChunkedExtras(s.extras,s):undefined}}render(){this.listboxItems=[];const s=this.showSuggestions||this.notFound;const t=p(this.suggestions);const o=v(this.suggestions);if(s&&this.input){this.input.setAttribute("aria-controls",this.listboxId)}else if(this.input){this.input.removeAttribute("aria-controls")}return i(e,null,i("slot",{key:"98a6a829115457312dc3132e48968cb8655406ad"}),this.loading&&this.showLoading?i("div",{class:"autosuggest-progress-box"},i("dso-progress-indicator",{label:this.loadingLabel})):s&&i("dso-scrollable",{class:"listbox-container",ref:s=>this.listboxContainer=s,style:{"--max-block-size":`${this.listboxContainerMaxBlockSize}px`}},i("div",{class:"listbox",role:"listbox","aria-live":"polite",id:this.listboxId,"aria-labelledby":this.labelId,ref:s=>this.listbox=s,tabindex:"0"},o&&this.showSuggestions&&this.suggestions&&this.suggestions.map((s=>i(f,{id:this.listboxItemId(s),mouseEnter:()=>this.selectSuggestion(s),mouseLeave:()=>this.resetSelectedSuggestion(),click:()=>this.pickSelectedValue(),selected:(s===this.selectedSuggestion).toString(),suggestion:s,ref:s=>s&&this.listboxItems.push(s),markedSuggestion:this.getMarkedSuggestions(s)})))||t&&this.showSuggestions&&this.suggestions&&this.suggestions.map((s=>{const t=r();return i("div",{role:"group",class:"group","aria-labelledby":t},i("div",{class:"group-label",role:"presentation",id:t,ref:s=>s&&this.listboxItems.push(s)},s.groupLabel),s.suggestions.map((t=>i(f,{id:this.listboxGroupedItemId(s,t),mouseEnter:()=>this.selectSuggestion(t,s),mouseLeave:()=>this.resetSelectedSuggestion(),click:()=>this.pickSelectedValue(),selected:(t===this.selectedSuggestion).toString(),suggestion:t,ref:s=>s&&this.listboxItems.push(s),markedSuggestion:this.getMarkedSuggestions(t)}))))}))||this.notFound&&i("div",{class:"option"},i("span",{class:"value"},this.notFoundLabel||this.showInputValueNotFound(this.text("notFound",{inputValue:this.inputValue})))))))}get host(){return o(this)}static get watchers(){return{suggestions:["suggestionsWatcher"]}}};b.style=l;export{b as dso_autosuggest};
|
|
2
|
+
//# sourceMappingURL=p-e67860a0.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["escapeStringRegexp","string","TypeError","replace","translations","en","notFound","nl","autosuggestCss","maxSuggestionsViewable","listboxPaddingBlock","listboxBorderWidth","Option","id","mouseEnter","mouseLeave","click","selected","suggestion","ref","markedSuggestion","h","class","role","onMouseEnter","onMouseLeave","onClick","value","type","undefined","extras","map","markedChunk","extra","isGrouped","suggestions","length","every","groupLabel","isFlat","Autosuggest","constructor","hostRef","this","loading","loadingLabel","suggestOnFocus","showSuggestions","showLoading","listboxContainerMaxBlockSize","listboxItems","listboxId","v4","inputId","labelId","resizeObserver","ResizeObserver","debounce","setListboxContainerMaxBlockSize","debouncedEmitValue","dsoChange","emit","debouncedShowLoading","inputValue","loadingDelayed","onInput","event","target","HTMLInputElement","match","onFocusIn","openSuggestions","text","i18n","host","onWindowResize","onScrollend","onKeyDown","defaultPrevented","key","selectNextSuggestion","selectPreviousSuggestion","closeSuggestions","pickSelectedValue","preventDefault","suggestionsWatcher","resetSelectedSuggestion","onDocumentClick","listbox","Node","contains","input","componentDidRender","connectedCallback","setTimeout","querySelector","labels","label","setAttribute","addEventListener","window","document","observe","disconnectedCallback","_a","removeEventListener","_b","_c","disconnect","listboxContainer","blockSizeViewableListItems","total","Math","min","i","getBoundingClientRect","height","availableBlockSize","innerHeight","bottom","listboxMaxBlockSize","showInputValueNotFound","processAutosuggestMarkItems","markTerms","split","filter","t","handleMark","extraIndex","mark","terms","suggestionValue","termRegex","RegExp","reduce","valuePart","push","test","slice","items","item","selectSuggestion","group","selectedSuggestion","selectedSuggestionGroup","setAriaActiveDescendant","selectFirstSuggestion","selectLastSuggestion","selectNextGroupedSuggestion","index","indexOf","indexInGroup","groupIndex","suggestionGroups","selectPreviousGroupedSuggestion","scroll","listboxGroupedItemId","listboxItemId","getElementById","scrollIntoView","block","_d","toString","dsoSelect","dsoSearch","suggestionGroup","getMarkedChunkedExtras","chunkedExtras","resultArray","chunkIndex","floor","chunk","c","getMarkedSuggestions","render","showListbox","grouped","flat","removeAttribute","Fragment","element","style","tabindex","groupLabelId","notFoundLabel"],"sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.i18n.ts","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} was not found.\",\r\n },\r\n },\r\n nl: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} is niet gevonden.\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\n.listbox-container {\r\n inset-inline: 0;\r\n inset-block-start: 100%;\r\n block-size: auto;\r\n max-block-size: var(--max-block-size);\r\n min-block-size: core-autosuggest-variables.$listbox-min-block-size;\r\n overflow-y: auto;\r\n position: absolute;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\n.listbox,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: core-autosuggest-variables.$listbox-border-width solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-block: 0;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding-block: units.$u1 * 1.5;\r\n padding-inline: units.$u1;\r\n}\r\n\r\n.listbox {\r\n padding-block: core-autosuggest-variables.$listbox-padding-block;\r\n padding-inline: 0;\r\n\r\n .group:not(:first-child) {\r\n .group-label {\r\n border-block-start: 1px solid colors.$grijs-30;\r\n }\r\n }\r\n\r\n .group-label {\r\n color: colors.$bosgroen;\r\n font-weight: 700;\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n margin-inline: units.$u2;\r\n }\r\n\r\n .option {\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n padding-inline: units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n &:active {\r\n background-color: colors.$bosgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.option[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen-20;\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.type {\r\n text-align: end;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n\r\n &:not(:first-child) {\r\n text-align: end;\r\n }\r\n}\r\n","import {\r\n Component,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n FunctionalComponent,\r\n h,\r\n Listen,\r\n Prop,\r\n State,\r\n VNode,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport debounce from \"debounce\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion, SuggestionGroup } from \"./autosuggest.interfaces\";\r\nimport { translations } from \"./autosuggest.i18n\";\r\n\r\ninterface MarkedSuggestion {\r\n value: (VNode | string)[];\r\n type?: (VNode | string)[];\r\n extras?: (VNode | string)[][][];\r\n}\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\nconst Option: FunctionalComponent<{\r\n id: string;\r\n mouseEnter: () => void;\r\n mouseLeave: () => void;\r\n click: () => void;\r\n selected: string;\r\n suggestion: Suggestion;\r\n markedSuggestion: MarkedSuggestion;\r\n ref: (element: HTMLDivElement | undefined) => void;\r\n}> = ({ id, mouseEnter, mouseLeave, click, selected, suggestion, ref, markedSuggestion }) => (\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n id={id}\r\n onMouseEnter={mouseEnter}\r\n onMouseLeave={mouseLeave}\r\n onClick={click}\r\n aria-selected={selected}\r\n aria-label={suggestion.value}\r\n ref={ref}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{markedSuggestion.value}</span>\r\n {markedSuggestion.type ? <span class=\"type\">{markedSuggestion.type}</span> : undefined}\r\n </div>\r\n {markedSuggestion.extras &&\r\n markedSuggestion.extras.map((markedChunk) => (\r\n <div class=\"suggestion-row\">\r\n {markedChunk.map((extra) => (\r\n <span class=\"extra\">{extra}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n);\r\n\r\nfunction isGrouped(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is SuggestionGroup[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) =>\r\n suggestion !== undefined &&\r\n \"groupLabel\" in suggestion &&\r\n suggestion.groupLabel !== undefined &&\r\n \"suggestions\" in suggestion &&\r\n suggestion.suggestions.length > 0,\r\n )\r\n );\r\n}\r\n\r\nfunction isFlat(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is Suggestion[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) => suggestion !== undefined && \"value\" in suggestion && suggestion.value !== undefined,\r\n )\r\n );\r\n}\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element.\r\n *\r\n * This can be an array of type Suggestion or an Array of type SuggestionGroup.\r\n *\r\n * A suggestionGroup must have a `groupLabel` and `suggestions`.\r\n *\r\n * A suggestion must have a `value` and can have a `type`, an `item` or `extras`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference the original object that was used to\r\n * create the suggestion. `extras` is an array of additional strings to further specify the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | SuggestionGroup[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n selectedSuggestionGroup: SuggestionGroup | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLDivElement | undefined;\r\n\r\n // ListboxItems are used for the calculation of the listboxContainerMaxBlockSize\r\n private listboxItems: HTMLDivElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.showSuggestions) {\r\n let blockSizeViewableListItems = 0;\r\n\r\n // The total number of list items to reserve vertical space for.\r\n const total = this.listboxItems.length ? Math.min(this.listboxItems.length, maxSuggestionsViewable) : 0;\r\n for (let i = 0; i < total; i++) {\r\n blockSizeViewableListItems =\r\n blockSizeViewableListItems + (this.listboxItems[i]?.getBoundingClientRect().height || 0);\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize = blockSizeViewableListItems + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize < listboxMaxBlockSize || availableBlockSize <= blockSizeViewableListItems) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text?: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private markTerms(terms: string[], suggestionValue?: string): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(terms.slice(1), valuePart));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion, group?: SuggestionGroup) {\r\n this.selectedSuggestion = suggestion;\r\n this.selectedSuggestionGroup = group;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[0];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[0];\r\n }\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length - 1];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n }\r\n }\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectNextGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === this.selectedSuggestionGroup.suggestions.length - 1) {\r\n // Move to first suggestion in next or first group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n this.selectedSuggestionGroup = this.suggestionGroups[groupIndex + 1] ?? this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup + 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n }\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectPreviousGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === 0) {\r\n // Move to last suggestion in previous or last group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n\r\n this.selectedSuggestionGroup =\r\n this.suggestionGroups[groupIndex - 1] ?? this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup - 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n }\r\n }\r\n\r\n private get suggestionGroups(): SuggestionGroup[] {\r\n return isGrouped(this.suggestions) ? this.suggestions : [];\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.selectedSuggestionGroup\r\n ? this.listboxGroupedItemId(this.selectedSuggestionGroup, this.selectedSuggestion)\r\n : this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.selectedSuggestionGroup = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${isFlat(this.suggestions) && this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private listboxGroupedItemId(suggestionGroup: SuggestionGroup, suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n\r\n return `${this.inputId}-${this.suggestionGroups.indexOf(suggestionGroup) + 1}-${suggestionGroup.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getMarkedChunkedExtras(extras: string[], suggestion: Suggestion): (string | VNode)[][][] {\r\n const chunkedExtras = extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n\r\n return chunkedExtras.map((chunk, index) =>\r\n chunk.map((c, i) => this.handleMark(suggestion, c, \"extra\", index * 2 + i)),\r\n );\r\n }\r\n\r\n private getMarkedSuggestions(suggestion: Suggestion): MarkedSuggestion {\r\n return {\r\n value: this.handleMark(suggestion, suggestion.value, \"value\"),\r\n type: suggestion.type ? this.handleMark(suggestion, suggestion.type, \"type\") : undefined,\r\n extras: suggestion.extras ? this.getMarkedChunkedExtras(suggestion.extras, suggestion) : undefined,\r\n };\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n const grouped = isGrouped(this.suggestions);\r\n const flat = isFlat(this.suggestions);\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <div\r\n class=\"listbox\"\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n tabindex=\"0\"\r\n >\r\n {(flat &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxItemId(suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))) ||\r\n (grouped &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestionGroup) => {\r\n const groupLabelId = v4();\r\n return (\r\n <div role=\"group\" class=\"group\" aria-labelledby={groupLabelId}>\r\n <div\r\n class=\"group-label\"\r\n role=\"presentation\"\r\n id={groupLabelId}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n >\r\n {suggestionGroup.groupLabel}\r\n </div>\r\n {suggestionGroup.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxGroupedItemId(suggestionGroup, suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion, suggestionGroup)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))}\r\n </div>\r\n );\r\n })) ||\r\n (this.notFound && (\r\n <div class=\"option\">\r\n <span class=\"value\">\r\n {this.notFoundLabel ||\r\n this.showInputValueNotFound(this.text(\"notFound\", { inputValue: this.inputValue }))}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -86,8 +86,8 @@ const Autosuggest = class {
|
|
|
86
86
|
this.showSuggestions = false;
|
|
87
87
|
this.notFound = false;
|
|
88
88
|
this.showLoading = false;
|
|
89
|
-
this.listItemBlockSize = 0;
|
|
90
89
|
this.listboxContainerMaxBlockSize = 0;
|
|
90
|
+
// ListboxItems are used for the calculation of the listboxContainerMaxBlockSize
|
|
91
91
|
this.listboxItems = [];
|
|
92
92
|
this.listboxId = v4();
|
|
93
93
|
this.inputId = v4();
|
|
@@ -227,16 +227,21 @@ const Autosuggest = class {
|
|
|
227
227
|
this.resizeObserver.disconnect();
|
|
228
228
|
}
|
|
229
229
|
setListboxContainerMaxBlockSize() {
|
|
230
|
+
var _a;
|
|
230
231
|
if (!this.listboxContainer || !this.showSuggestions) {
|
|
231
232
|
return;
|
|
232
233
|
}
|
|
233
|
-
if (this.
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
234
|
+
if (this.showSuggestions) {
|
|
235
|
+
let blockSizeViewableListItems = 0;
|
|
236
|
+
// The total number of list items to reserve vertical space for.
|
|
237
|
+
const total = this.listboxItems.length ? Math.min(this.listboxItems.length, maxSuggestionsViewable) : 0;
|
|
238
|
+
for (let i = 0; i < total; i++) {
|
|
239
|
+
blockSizeViewableListItems =
|
|
240
|
+
blockSizeViewableListItems + (((_a = this.listboxItems[i]) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().height) || 0);
|
|
241
|
+
}
|
|
242
|
+
const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;
|
|
243
|
+
const listboxMaxBlockSize = blockSizeViewableListItems + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;
|
|
244
|
+
if (availableBlockSize < listboxMaxBlockSize || availableBlockSize <= blockSizeViewableListItems) {
|
|
240
245
|
this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;
|
|
241
246
|
}
|
|
242
247
|
else {
|
|
@@ -496,7 +501,7 @@ const Autosuggest = class {
|
|
|
496
501
|
else if (this.input) {
|
|
497
502
|
this.input.removeAttribute("aria-controls");
|
|
498
503
|
}
|
|
499
|
-
return (h(Fragment, null, h("slot", { key: '
|
|
504
|
+
return (h(Fragment, null, h("slot", { key: '98a6a829115457312dc3132e48968cb8655406ad' }), this.loading && this.showLoading ? (h("div", { class: "autosuggest-progress-box" }, h("dso-progress-indicator", { label: this.loadingLabel }))) : (showListbox && (h("dso-scrollable", { class: "listbox-container", ref: (element) => (this.listboxContainer = element), style: { "--max-block-size": `${this.listboxContainerMaxBlockSize}px` } }, h("div", { class: "listbox", role: "listbox", "aria-live": "polite", id: this.listboxId, "aria-labelledby": this.labelId, ref: (element) => (this.listbox = element), tabindex: "0" }, (flat &&
|
|
500
505
|
this.showSuggestions &&
|
|
501
506
|
this.suggestions &&
|
|
502
507
|
this.suggestions.map((suggestion) => (h(Option, { id: this.listboxItemId(suggestion), mouseEnter: () => this.selectSuggestion(suggestion), mouseLeave: () => this.resetSelectedSuggestion(), click: () => this.pickSelectedValue(), selected: (suggestion === this.selectedSuggestion).toString(), suggestion: suggestion, ref: (element) => element && this.listboxItems.push(element), markedSuggestion: this.getMarkedSuggestions(suggestion) })))) ||
|
|
@@ -505,7 +510,7 @@ const Autosuggest = class {
|
|
|
505
510
|
this.suggestions &&
|
|
506
511
|
this.suggestions.map((suggestionGroup) => {
|
|
507
512
|
const groupLabelId = v4();
|
|
508
|
-
return (h("div", { role: "group", class: "group", "aria-labelledby": groupLabelId }, h("div", { class: "group-label", role: "presentation", id: groupLabelId }, suggestionGroup.groupLabel), suggestionGroup.suggestions.map((suggestion) => (h(Option, { id: this.listboxGroupedItemId(suggestionGroup, suggestion), mouseEnter: () => this.selectSuggestion(suggestion, suggestionGroup), mouseLeave: () => this.resetSelectedSuggestion(), click: () => this.pickSelectedValue(), selected: (suggestion === this.selectedSuggestion).toString(), suggestion: suggestion, ref: (element) => element && this.listboxItems.push(element), markedSuggestion: this.getMarkedSuggestions(suggestion) })))));
|
|
513
|
+
return (h("div", { role: "group", class: "group", "aria-labelledby": groupLabelId }, h("div", { class: "group-label", role: "presentation", id: groupLabelId, ref: (element) => element && this.listboxItems.push(element) }, suggestionGroup.groupLabel), suggestionGroup.suggestions.map((suggestion) => (h(Option, { id: this.listboxGroupedItemId(suggestionGroup, suggestion), mouseEnter: () => this.selectSuggestion(suggestion, suggestionGroup), mouseLeave: () => this.resetSelectedSuggestion(), click: () => this.pickSelectedValue(), selected: (suggestion === this.selectedSuggestion).toString(), suggestion: suggestion, ref: (element) => element && this.listboxItems.push(element), markedSuggestion: this.getMarkedSuggestions(suggestion) })))));
|
|
509
514
|
})) ||
|
|
510
515
|
(this.notFound && (h("div", { class: "option" }, h("span", { class: "value" }, this.notFoundLabel ||
|
|
511
516
|
this.showInputValueNotFound(this.text("notFound", { inputValue: this.inputValue }))))))))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dso-autosuggest.entry.js","sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.i18n.ts","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} was not found.\",\r\n },\r\n },\r\n nl: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} is niet gevonden.\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\n.listbox-container {\r\n inset-inline: 0;\r\n inset-block-start: 100%;\r\n block-size: auto;\r\n max-block-size: var(--max-block-size);\r\n min-block-size: core-autosuggest-variables.$listbox-min-block-size;\r\n overflow-y: auto;\r\n position: absolute;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\n.listbox,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: core-autosuggest-variables.$listbox-border-width solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-block: 0;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding-block: units.$u1 * 1.5;\r\n padding-inline: units.$u1;\r\n}\r\n\r\n.listbox {\r\n padding-block: core-autosuggest-variables.$listbox-padding-block;\r\n padding-inline: 0;\r\n\r\n .group:not(:first-child) {\r\n .group-label {\r\n border-block-start: 1px solid colors.$grijs-30;\r\n }\r\n }\r\n\r\n .group-label {\r\n color: colors.$bosgroen;\r\n font-weight: 700;\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n margin-inline: units.$u2;\r\n }\r\n\r\n .option {\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n padding-inline: units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n &:active {\r\n background-color: colors.$bosgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.option[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen-20;\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.type {\r\n text-align: end;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n\r\n &:not(:first-child) {\r\n text-align: end;\r\n }\r\n}\r\n","import {\r\n Component,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n FunctionalComponent,\r\n h,\r\n Listen,\r\n Prop,\r\n State,\r\n VNode,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport debounce from \"debounce\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion, SuggestionGroup } from \"./autosuggest.interfaces\";\r\nimport { translations } from \"./autosuggest.i18n\";\r\n\r\ninterface MarkedSuggestion {\r\n value: (VNode | string)[];\r\n type?: (VNode | string)[];\r\n extras?: (VNode | string)[][][];\r\n}\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\nconst Option: FunctionalComponent<{\r\n id: string;\r\n mouseEnter: () => void;\r\n mouseLeave: () => void;\r\n click: () => void;\r\n selected: string;\r\n suggestion: Suggestion;\r\n markedSuggestion: MarkedSuggestion;\r\n ref: (element: HTMLDivElement | undefined) => void;\r\n}> = ({ id, mouseEnter, mouseLeave, click, selected, suggestion, ref, markedSuggestion }) => (\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n id={id}\r\n onMouseEnter={mouseEnter}\r\n onMouseLeave={mouseLeave}\r\n onClick={click}\r\n aria-selected={selected}\r\n aria-label={suggestion.value}\r\n ref={ref}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{markedSuggestion.value}</span>\r\n {markedSuggestion.type ? <span class=\"type\">{markedSuggestion.type}</span> : undefined}\r\n </div>\r\n {markedSuggestion.extras &&\r\n markedSuggestion.extras.map((markedChunk) => (\r\n <div class=\"suggestion-row\">\r\n {markedChunk.map((extra) => (\r\n <span class=\"extra\">{extra}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n);\r\n\r\nfunction isGrouped(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is SuggestionGroup[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) =>\r\n suggestion !== undefined &&\r\n \"groupLabel\" in suggestion &&\r\n suggestion.groupLabel !== undefined &&\r\n \"suggestions\" in suggestion &&\r\n suggestion.suggestions.length > 0,\r\n )\r\n );\r\n}\r\n\r\nfunction isFlat(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is Suggestion[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) => suggestion !== undefined && \"value\" in suggestion && suggestion.value !== undefined,\r\n )\r\n );\r\n}\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element.\r\n *\r\n * This can be an array of type Suggestion or an Array of type SuggestionGroup.\r\n *\r\n * A suggestionGroup must have a `groupLabel` and `suggestions`.\r\n *\r\n * A suggestion must have a `value` and can have a `type`, an `item` or `extras`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference the original object that was used to\r\n * create the suggestion. `extras` is an array of additional strings to further specify the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | SuggestionGroup[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n selectedSuggestionGroup: SuggestionGroup | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listItemBlockSize = 0;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLDivElement | undefined;\r\n\r\n private listboxItems: HTMLDivElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.listboxItems[0] && this.showSuggestions) {\r\n this.listItemBlockSize = this.listboxItems[0].getBoundingClientRect().height;\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize =\r\n this.listItemBlockSize * maxSuggestionsViewable + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize > this.listItemBlockSize) {\r\n if (availableBlockSize < listboxMaxBlockSize) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text?: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private markTerms(terms: string[], suggestionValue?: string): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(terms.slice(1), valuePart));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion, group?: SuggestionGroup) {\r\n this.selectedSuggestion = suggestion;\r\n this.selectedSuggestionGroup = group;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[0];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[0];\r\n }\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length - 1];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n }\r\n }\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectNextGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === this.selectedSuggestionGroup.suggestions.length - 1) {\r\n // Move to first suggestion in next or first group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n this.selectedSuggestionGroup = this.suggestionGroups[groupIndex + 1] ?? this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup + 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n }\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectPreviousGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === 0) {\r\n // Move to last suggestion in previous or last group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n\r\n this.selectedSuggestionGroup =\r\n this.suggestionGroups[groupIndex - 1] ?? this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup - 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n }\r\n }\r\n\r\n private get suggestionGroups(): SuggestionGroup[] {\r\n return isGrouped(this.suggestions) ? this.suggestions : [];\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.selectedSuggestionGroup\r\n ? this.listboxGroupedItemId(this.selectedSuggestionGroup, this.selectedSuggestion)\r\n : this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.selectedSuggestionGroup = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${isFlat(this.suggestions) && this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private listboxGroupedItemId(suggestionGroup: SuggestionGroup, suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n\r\n return `${this.inputId}-${this.suggestionGroups.indexOf(suggestionGroup) + 1}-${suggestionGroup.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getMarkedChunkedExtras(extras: string[], suggestion: Suggestion): (string | VNode)[][][] {\r\n const chunkedExtras = extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n\r\n return chunkedExtras.map((chunk, index) =>\r\n chunk.map((c, i) => this.handleMark(suggestion, c, \"extra\", index * 2 + i)),\r\n );\r\n }\r\n\r\n private getMarkedSuggestions(suggestion: Suggestion): MarkedSuggestion {\r\n return {\r\n value: this.handleMark(suggestion, suggestion.value, \"value\"),\r\n type: suggestion.type ? this.handleMark(suggestion, suggestion.type, \"type\") : undefined,\r\n extras: suggestion.extras ? this.getMarkedChunkedExtras(suggestion.extras, suggestion) : undefined,\r\n };\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n const grouped = isGrouped(this.suggestions);\r\n const flat = isFlat(this.suggestions);\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <div\r\n class=\"listbox\"\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n tabindex=\"0\"\r\n >\r\n {(flat &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxItemId(suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))) ||\r\n (grouped &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestionGroup) => {\r\n const groupLabelId = v4();\r\n return (\r\n <div role=\"group\" class=\"group\" aria-labelledby={groupLabelId}>\r\n <div class=\"group-label\" role=\"presentation\" id={groupLabelId}>\r\n {suggestionGroup.groupLabel}\r\n </div>\r\n {suggestionGroup.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxGroupedItemId(suggestionGroup, suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion, suggestionGroup)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))}\r\n </div>\r\n );\r\n })) ||\r\n (this.notFound && (\r\n <div class=\"option\">\r\n <span class=\"value\">\r\n {this.notFoundLabel ||\r\n this.showInputValueNotFound(this.text(\"notFound\", { inputValue: this.inputValue }))}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"dso-autosuggest.entry.js","sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.i18n.ts","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} was not found.\",\r\n },\r\n },\r\n nl: {\r\n \"dso-autosuggest\": {\r\n notFound: \"{{inputValue}} is niet gevonden.\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\n.listbox-container {\r\n inset-inline: 0;\r\n inset-block-start: 100%;\r\n block-size: auto;\r\n max-block-size: var(--max-block-size);\r\n min-block-size: core-autosuggest-variables.$listbox-min-block-size;\r\n overflow-y: auto;\r\n position: absolute;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\n.listbox,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: core-autosuggest-variables.$listbox-border-width solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-block: 0;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding-block: units.$u1 * 1.5;\r\n padding-inline: units.$u1;\r\n}\r\n\r\n.listbox {\r\n padding-block: core-autosuggest-variables.$listbox-padding-block;\r\n padding-inline: 0;\r\n\r\n .group:not(:first-child) {\r\n .group-label {\r\n border-block-start: 1px solid colors.$grijs-30;\r\n }\r\n }\r\n\r\n .group-label {\r\n color: colors.$bosgroen;\r\n font-weight: 700;\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n margin-inline: units.$u2;\r\n }\r\n\r\n .option {\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n padding-inline: units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n &:active {\r\n background-color: colors.$bosgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.option[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen-20;\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.type {\r\n text-align: end;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n\r\n &:not(:first-child) {\r\n text-align: end;\r\n }\r\n}\r\n","import {\r\n Component,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n FunctionalComponent,\r\n h,\r\n Listen,\r\n Prop,\r\n State,\r\n VNode,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport debounce from \"debounce\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion, SuggestionGroup } from \"./autosuggest.interfaces\";\r\nimport { translations } from \"./autosuggest.i18n\";\r\n\r\ninterface MarkedSuggestion {\r\n value: (VNode | string)[];\r\n type?: (VNode | string)[];\r\n extras?: (VNode | string)[][][];\r\n}\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\nconst Option: FunctionalComponent<{\r\n id: string;\r\n mouseEnter: () => void;\r\n mouseLeave: () => void;\r\n click: () => void;\r\n selected: string;\r\n suggestion: Suggestion;\r\n markedSuggestion: MarkedSuggestion;\r\n ref: (element: HTMLDivElement | undefined) => void;\r\n}> = ({ id, mouseEnter, mouseLeave, click, selected, suggestion, ref, markedSuggestion }) => (\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n id={id}\r\n onMouseEnter={mouseEnter}\r\n onMouseLeave={mouseLeave}\r\n onClick={click}\r\n aria-selected={selected}\r\n aria-label={suggestion.value}\r\n ref={ref}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{markedSuggestion.value}</span>\r\n {markedSuggestion.type ? <span class=\"type\">{markedSuggestion.type}</span> : undefined}\r\n </div>\r\n {markedSuggestion.extras &&\r\n markedSuggestion.extras.map((markedChunk) => (\r\n <div class=\"suggestion-row\">\r\n {markedChunk.map((extra) => (\r\n <span class=\"extra\">{extra}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </div>\r\n);\r\n\r\nfunction isGrouped(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is SuggestionGroup[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) =>\r\n suggestion !== undefined &&\r\n \"groupLabel\" in suggestion &&\r\n suggestion.groupLabel !== undefined &&\r\n \"suggestions\" in suggestion &&\r\n suggestion.suggestions.length > 0,\r\n )\r\n );\r\n}\r\n\r\nfunction isFlat(suggestions: Suggestion[] | SuggestionGroup[] | null): suggestions is Suggestion[] {\r\n return (\r\n !!suggestions &&\r\n suggestions.length > 0 &&\r\n suggestions.every(\r\n (suggestion) => suggestion !== undefined && \"value\" in suggestion && suggestion.value !== undefined,\r\n )\r\n );\r\n}\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element.\r\n *\r\n * This can be an array of type Suggestion or an Array of type SuggestionGroup.\r\n *\r\n * A suggestionGroup must have a `groupLabel` and `suggestions`.\r\n *\r\n * A suggestion must have a `value` and can have a `type`, an `item` or `extras`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference the original object that was used to\r\n * create the suggestion. `extras` is an array of additional strings to further specify the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | SuggestionGroup[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n selectedSuggestionGroup: SuggestionGroup | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLDivElement | undefined;\r\n\r\n // ListboxItems are used for the calculation of the listboxContainerMaxBlockSize\r\n private listboxItems: HTMLDivElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.showSuggestions) {\r\n let blockSizeViewableListItems = 0;\r\n\r\n // The total number of list items to reserve vertical space for.\r\n const total = this.listboxItems.length ? Math.min(this.listboxItems.length, maxSuggestionsViewable) : 0;\r\n for (let i = 0; i < total; i++) {\r\n blockSizeViewableListItems =\r\n blockSizeViewableListItems + (this.listboxItems[i]?.getBoundingClientRect().height || 0);\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize = blockSizeViewableListItems + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize < listboxMaxBlockSize || availableBlockSize <= blockSizeViewableListItems) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text?: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(this.input?.value.split(\" \").filter((t) => t) ?? [], text));\r\n }\r\n\r\n private markTerms(terms: string[], suggestionValue?: string): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(terms.slice(1), valuePart));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion, group?: SuggestionGroup) {\r\n this.selectedSuggestion = suggestion;\r\n this.selectedSuggestionGroup = group;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[0];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[0];\r\n }\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions) && this.selectedSuggestionGroup) {\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup.suggestions[this.selectedSuggestionGroup.suggestions.length - 1];\r\n } else {\r\n if (isFlat(this.suggestions)) {\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n }\r\n }\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectNextGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === this.selectedSuggestionGroup.suggestions.length - 1) {\r\n // Move to first suggestion in next or first group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n this.selectedSuggestionGroup = this.suggestionGroups[groupIndex + 1] ?? this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup + 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[0];\r\n this.selectedSuggestion = this.selectedSuggestionGroup!.suggestions[0];\r\n }\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (isGrouped(this.suggestions)) {\r\n this.selectPreviousGroupedSuggestion();\r\n } else {\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n }\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousGroupedSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n if (this.selectedSuggestionGroup) {\r\n const indexInGroup = this.selectedSuggestion\r\n ? this.selectedSuggestionGroup.suggestions.indexOf(this.selectedSuggestion)\r\n : -1;\r\n\r\n if (indexInGroup === 0) {\r\n // Move to last suggestion in previous or last group\r\n const groupIndex = this.suggestionGroups.indexOf(this.selectedSuggestionGroup);\r\n\r\n this.selectedSuggestionGroup =\r\n this.suggestionGroups[groupIndex - 1] ?? this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n } else {\r\n // Within this group\r\n this.selectedSuggestion = this.selectedSuggestionGroup.suggestions[indexInGroup - 1];\r\n }\r\n } else {\r\n this.selectedSuggestionGroup = this.suggestionGroups[this.suggestions.length - 1];\r\n this.selectedSuggestion =\r\n this.selectedSuggestionGroup!.suggestions[this.selectedSuggestionGroup!.suggestions.length - 1];\r\n }\r\n }\r\n\r\n private get suggestionGroups(): SuggestionGroup[] {\r\n return isGrouped(this.suggestions) ? this.suggestions : [];\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.selectedSuggestionGroup\r\n ? this.listboxGroupedItemId(this.selectedSuggestionGroup, this.selectedSuggestion)\r\n : this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.selectedSuggestionGroup = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${isFlat(this.suggestions) && this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private listboxGroupedItemId(suggestionGroup: SuggestionGroup, suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n\r\n return `${this.inputId}-${this.suggestionGroups.indexOf(suggestionGroup) + 1}-${suggestionGroup.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getMarkedChunkedExtras(extras: string[], suggestion: Suggestion): (string | VNode)[][][] {\r\n const chunkedExtras = extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n\r\n return chunkedExtras.map((chunk, index) =>\r\n chunk.map((c, i) => this.handleMark(suggestion, c, \"extra\", index * 2 + i)),\r\n );\r\n }\r\n\r\n private getMarkedSuggestions(suggestion: Suggestion): MarkedSuggestion {\r\n return {\r\n value: this.handleMark(suggestion, suggestion.value, \"value\"),\r\n type: suggestion.type ? this.handleMark(suggestion, suggestion.type, \"type\") : undefined,\r\n extras: suggestion.extras ? this.getMarkedChunkedExtras(suggestion.extras, suggestion) : undefined,\r\n };\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n const grouped = isGrouped(this.suggestions);\r\n const flat = isFlat(this.suggestions);\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <div\r\n class=\"listbox\"\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n tabindex=\"0\"\r\n >\r\n {(flat &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxItemId(suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))) ||\r\n (grouped &&\r\n this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestionGroup) => {\r\n const groupLabelId = v4();\r\n return (\r\n <div role=\"group\" class=\"group\" aria-labelledby={groupLabelId}>\r\n <div\r\n class=\"group-label\"\r\n role=\"presentation\"\r\n id={groupLabelId}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n >\r\n {suggestionGroup.groupLabel}\r\n </div>\r\n {suggestionGroup.suggestions.map((suggestion) => (\r\n <Option\r\n id={this.listboxGroupedItemId(suggestionGroup, suggestion)}\r\n mouseEnter={() => this.selectSuggestion(suggestion, suggestionGroup)}\r\n mouseLeave={() => this.resetSelectedSuggestion()}\r\n click={() => this.pickSelectedValue()}\r\n selected={(suggestion === this.selectedSuggestion).toString()}\r\n suggestion={suggestion}\r\n ref={(element) => element && this.listboxItems.push(element)}\r\n markedSuggestion={this.getMarkedSuggestions(suggestion)}\r\n />\r\n ))}\r\n </div>\r\n );\r\n })) ||\r\n (this.notFound && (\r\n <div class=\"option\">\r\n <span class=\"value\">\r\n {this.notFoundLabel ||\r\n this.showInputValueNotFound(this.text(\"notFound\", { inputValue: this.inputValue }))}\r\n </span>\r\n </div>\r\n ))}\r\n </div>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/esm/dso-toolkit.js
CHANGED
|
@@ -17,7 +17,7 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy(JSON.parse("[[\"dso-icon\",[[1,\"dso-icon\",{\"icon\":[1]}]]],[\"dsot-document-component-demo\",[[2,\"dsot-document-component-demo\",{\"showCanvas\":[516,\"show-canvas\"],\"jsonFile\":[1,\"json-file\"],\"openDefault\":[4,\"open-default\"],\"mode\":[513],\"response\":[32],\"document\":[32],\"openOrClosed\":[32],\"openedAnnotation\":[32],\"filtered\":[32],\"notApplicable\":[32],\"activeAnnotationSelectables\":[32]},null,{\"jsonFile\":[\"jsonFileWatcher\"],\"openDefault\":[\"openDefaultWatcher\"]}]]],[\"dso-accordion-section\",[[1,\"dso-accordion-section\",{\"handleTitle\":[1,\"handle-title\"],\"wijzigactie\":[1],\"heading\":[1],\"handleUrl\":[1,\"handle-url\"],\"status\":[1],\"attachmentCount\":[2,\"attachment-count\"],\"icon\":[1],\"statusDescription\":[1,\"status-description\"],\"open\":[516],\"hasNestedAccordion\":[516,\"has-nested-accordion\"],\"label\":[1],\"labelStatus\":[1,\"label-status\"],\"activatable\":[516],\"active\":[516],\"hover\":[32],\"focusHandle\":[64]}]]],[\"dso-annotation-activiteit\",[[1,\"dso-annotation-activiteit\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1],\"regelKwalificatie\":[1,\"regel-kwalificatie\"],\"locatieNoemers\":[16],\"regelKwalificatieVoorzetsel\":[1,\"regel-kwalificatie-voorzetsel\"]}]]],[\"dso-annotation-gebiedsaanwijzing\",[[1,\"dso-annotation-gebiedsaanwijzing\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1]}]]],[\"dso-annotation-omgevingsnormwaarde\",[[1,\"dso-annotation-omgevingsnormwaarde\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1],\"toelichting\":[1],\"waardes\":[16],\"eenheid\":[1]}]]],[\"dso-advanced-select\",[[1,\"dso-advanced-select\",{\"options\":[16],\"active\":[16],\"activeHint\":[1,\"active-hint\"],\"open\":[32]},[[8,\"keydown\",\"keyDownListener\"]]]]],[\"dso-legend-item\",[[1,\"dso-legend-item\",{\"disabled\":[516],\"disabledMessage\":[1,\"disabled-message\"],\"removable\":[4],\"showBody\":[32]}]]],[\"dso-map-base-layers\",[[1,\"dso-map-base-layers\",{\"group\":[1],\"baseLayers\":[16]}]]],[\"dso-map-overlays\",[[1,\"dso-map-overlays\",{\"group\":[1],\"overlays\":[16]}]]],[\"dso-annotation-kaart\",[[1,\"dso-annotation-kaart\",{\"wijzigactie\":[513],\"naam\":[1],\"href\":[513]}]]],[\"dso-autosuggest\",[[6,\"dso-autosuggest\",{\"suggestions\":[16],\"loading\":[4],\"loadingLabel\":[1,\"loading-label\"],\"loadingDelayed\":[2,\"loading-delayed\"],\"notFoundLabel\":[1,\"not-found-label\"],\"suggestOnFocus\":[4,\"suggest-on-focus\"],\"mark\":[16],\"showSuggestions\":[32],\"selectedSuggestion\":[32],\"selectedSuggestionGroup\":[32],\"notFound\":[32],\"showLoading\":[32],\"listItemBlockSize\":[32],\"listboxContainerMaxBlockSize\":[32]},[[4,\"click\",\"onDocumentClick\"]],{\"suggestions\":[\"suggestionsWatcher\"]}]]],[\"dso-project-item\",[[1,\"dso-project-item\",{\"label\":[1]}]]],[\"dso-header\",[[1,\"dso-header\",{\"mainMenu\":[16],\"useDropDownMenu\":[1,\"use-drop-down-menu\"],\"authStatus\":[1,\"auth-status\"],\"loginUrl\":[1,\"login-url\"],\"logoutUrl\":[1,\"logout-url\"],\"showHelp\":[4,\"show-help\"],\"helpUrl\":[1,\"help-url\"],\"userProfileName\":[1,\"user-profile-name\"],\"userProfileUrl\":[1,\"user-profile-url\"],\"userHomeUrl\":[1,\"user-home-url\"],\"userHomeActive\":[4,\"user-home-active\"],\"showDropDown\":[32],\"overflowMenuItems\":[32],\"dropdownOptionsOffset\":[32]},null,{\"useDropDownMenu\":[\"setShowDropDown\"]}]]],[\"dso-map-controls\",[[1,\"dso-map-controls\",{\"open\":[1540],\"disableZoom\":[1,\"disable-zoom\"],\"hideContent\":[32],\"toggleVisibility\":[64]},null,{\"open\":[\"watchOpen\"]}]]],[\"dso-modal\",[[1,\"dso-modal\",{\"fullscreen\":[516],\"modalTitle\":[1,\"modal-title\"],\"dialogRole\":[1,\"dialog-role\"],\"returnFocus\":[4,\"return-focus\"],\"showCloseButton\":[4,\"show-close-button\"],\"ariaId\":[32]}]]],[\"dso-pagination\",[[1,\"dso-pagination\",{\"totalPages\":[2,\"total-pages\"],\"currentPage\":[2,\"current-page\"],\"formatHref\":[16],\"availablePositions\":[32]},[[0,\"dsoSizeChange\",\"sizeChangeHandler\"]]]]],[\"dso-survey-rating\",[[1,\"dso-survey-rating\"]]],[\"dso-tree-view\",[[1,\"dso-tree-view\",{\"collection\":[16],\"focusItem\":[64]}]]],[\"dso-action-list-item\",[[1,\"dso-action-list-item\",{\"step\":[2],\"itemTitle\":[1,\"item-title\"],\"flowLine\":[4,\"flow-line\"],\"warning\":[4],\"divider\":[4]}]]],[\"dso-card\",[[1,\"dso-card\",{\"href\":[513],\"mode\":[513],\"active\":[516]}]]],[\"dso-date-picker-legacy\",[[2,\"dso-date-picker-legacy\",{\"name\":[1],\"identifier\":[1],\"disabled\":[516],\"role\":[1],\"direction\":[1],\"required\":[4],\"invalid\":[516],\"describedBy\":[1,\"described-by\"],\"dsoAutofocus\":[4,\"dso-autofocus\"],\"value\":[1537],\"min\":[1],\"max\":[1],\"activeFocus\":[32],\"focusedDay\":[32],\"open\":[32],\"visible\":[32],\"setFocus\":[64],\"show\":[64],\"hide\":[64]},[[6,\"click\",\"handleDocumentClick\"]]]]],[\"dso-document-card\",[[1,\"dso-document-card\",{\"href\":[513],\"active\":[516]}]]],[\"dso-list-button\",[[1,\"dso-list-button\",{\"label\":[1],\"sublabel\":[1],\"count\":[2],\"min\":[8],\"max\":[8],\"checked\":[516],\"disabled\":[516],\"subcontentPrefix\":[1,\"subcontent-prefix\"]}]]],[\"dso-mark-bar\",[[1,\"dso-mark-bar\",{\"value\":[1],\"label\":[1],\"current\":[2],\"totalCount\":[2,\"total-count\"],\"dsoFocus\":[64]}]]],[\"dso-plekinfo-card\",[[1,\"dso-plekinfo-card\",{\"wijzigactie\":[513],\"href\":[513],\"targetBlank\":[4,\"target-blank\"],\"active\":[516]}]]],[\"dso-skiplink\",[[1,\"dso-skiplink\",{\"to\":[513],\"label\":[513]}]]],[\"dso-accordion\",[[1,\"dso-accordion\",{\"variant\":[6145],\"reverseAlign\":[6148,\"reverse-align\"],\"_getState\":[64]}]]],[\"dso-action-list\",[[1,\"dso-action-list\",{\"listTitle\":[1,\"list-title\"]}]]],[\"dso-banner\",[[1,\"dso-banner\",{\"status\":[513],\"compact\":[4],\"icon\":[516]}]]],[\"dso-card-container\",[[1,\"dso-card-container\",{\"mode\":[513]}]]],[\"dso-contact-information\",[[1,\"dso-contact-information\"]]],[\"dso-date-picker\",[[2,\"dso-date-picker\",{\"name\":[1],\"identifier\":[1],\"disabled\":[516],\"required\":[516],\"invalid\":[516],\"describedBy\":[1,\"described-by\"],\"dsoAutofocus\":[4,\"dso-autofocus\"],\"value\":[513],\"min\":[1],\"max\":[1]}]]],[\"dso-highlight-box\",[[1,\"dso-highlight-box\",{\"yellow\":[516],\"border\":[516],\"white\":[516],\"dropShadow\":[516,\"drop-shadow\"],\"step\":[514]}]]],[\"dso-input-range\",[[1,\"dso-input-range\",{\"min\":[2],\"max\":[2],\"value\":[2],\"step\":[2],\"label\":[1],\"unit\":[1],\"description\":[1]}]]],[\"dso-logo\",[[1,\"dso-logo\",{\"name\":[513],\"logoUrl\":[513,\"logo-url\"],\"label\":[513],\"labelUrl\":[513,\"label-url\"],\"ribbon\":[513]}]]],[\"dso-progress-bar\",[[1,\"dso-progress-bar\",{\"progress\":[2],\"min\":[2],\"max\":[2]}]]],[\"dso-tab\",[[1,\"dso-tab\",{\"active\":[516],\"disabled\":[516],\"href\":[1],\"_dsoFocus\":[64]}]]],[\"dso-tabs\",[[1,\"dso-tabs\"]]],[\"dso-viewer-grid\",[[1,\"dso-viewer-grid\",{\"mode\":[513],\"filterpanelTitle\":[513,\"filterpanel-title\"],\"filterpanelOpen\":[516,\"filterpanel-open\"],\"overlayOpen\":[516,\"overlay-open\"],\"documentPanelOpen\":[516,\"document-panel-open\"],\"mainSize\":[513,\"main-size\"],\"activeTab\":[1,\"active-tab\"],\"documentPanelSize\":[513,\"document-panel-size\"],\"mainPanelExpanded\":[4,\"main-panel-expanded\"],\"mainPanelHidden\":[4,\"main-panel-hidden\"],\"tabView\":[32],\"_checkMainPanelVisibility\":[64]},null,{\"documentPanelOpen\":[\"documentPanelOpenWatcher\"],\"filterpanelOpen\":[\"filterpanelOpenWatcher\"],\"overlayOpen\":[\"overlayOpenWatcher\"]}]]],[\"dso-toggletip\",[[1,\"dso-toggletip\",{\"label\":[1],\"position\":[1],\"small\":[4],\"secondary\":[4],\"active\":[32]}]]],[\"dso-dropdown-menu\",[[1,\"dso-dropdown-menu\",{\"open\":[1540],\"dropdownAlign\":[1,\"dropdown-align\"],\"dropdownOptionsOffset\":[2,\"dropdown-options-offset\"],\"checkable\":[4],\"boundary\":[1],\"placement\":[1],\"strategy\":[1]},[[8,\"click\",\"onClick\"],[8,\"keydown\",\"keyDownListener\"]],{\"placement\":[\"watchPosition\"],\"dropdownAlign\":[\"watchPosition\"],\"dropdownOptionsOffset\":[\"watchOptionsOffset\"],\"strategy\":[\"watchStrategy\"]}]]],[\"dso-annotation-locatie_2\",[[1,\"dso-document-component\",{\"heading\":[1],\"label\":[1],\"nummer\":[1],\"opschrift\":[1],\"kop\":[1],\"inhoud\":[1],\"open\":[516],\"filtered\":[516],\"notApplicable\":[516,\"not-applicable\"],\"genesteOntwerpInformatie\":[516,\"geneste-ontwerp-informatie\"],\"bevatOntwerpInformatie\":[516,\"bevat-ontwerp-informatie\"],\"annotated\":[516],\"gereserveerd\":[4],\"vervallen\":[4],\"openAnnotation\":[516,\"open-annotation\"],\"alternativeTitle\":[1,\"alternative-title\"],\"type\":[513],\"wijzigactie\":[513],\"annotationsWijzigactie\":[513,\"annotations-wijzigactie\"],\"mark\":[16],\"recursiveToggle\":[8,\"recursive-toggle\"],\"mode\":[513],\"href\":[513]}],[1,\"dso-annotation-locatie\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"locatieNoemer\":[1,\"locatie-noemer\"]}]]],[\"dso-attachments-counter_2\",[[1,\"dso-attachments-counter\",{\"count\":[2]}],[1,\"dso-expandable\",{\"open\":[516],\"enableAnimation\":[516,\"enable-animation\"],\"minimumHeight\":[2,\"minimum-height\"],\"isClosed\":[32]},[[0,\"transitionstart\",\"transitionstartHandler\"],[0,\"transitionend\",\"transitionendHandler\"]],{\"open\":[\"toggleOpen\"]}]]],[\"dso-progress-indicator\",[[1,\"dso-progress-indicator\",{\"label\":[1],\"size\":[513],\"block\":[516]}]]],[\"dso-responsive-element\",[[1,\"dso-responsive-element\",{\"sizeAlias\":[32],\"sizeWidth\":[32],\"getSize\":[64]}]]],[\"dso-scrollable\",[[1,\"dso-scrollable\",{\"scrollPosition\":[32],\"_setScrollState\":[64]}]]],[\"dso-info-button\",[[1,\"dso-info-button\",{\"active\":[1540],\"secondary\":[4],\"label\":[1],\"hover\":[32],\"setFocus\":[64]}]]],[\"dso-info_2\",[[6,\"dso-selectable\",{\"type\":[1],\"identifier\":[1],\"name\":[1],\"value\":[1],\"invalid\":[4],\"describedById\":[1,\"described-by-id\"],\"labelledById\":[1,\"labelled-by-id\"],\"disabled\":[4],\"required\":[4],\"checked\":[516],\"indeterminate\":[4],\"infoFixed\":[4,\"info-fixed\"],\"infoActive\":[32],\"keyboardFocus\":[32],\"toggleInfo\":[64]},null,{\"indeterminate\":[\"setIndeterminate\"]}],[1,\"dso-info\",{\"fixed\":[516],\"active\":[516]}]]],[\"dso-tooltip\",[[1,\"dso-tooltip\",{\"descriptive\":[516],\"position\":[1],\"strategy\":[1],\"noArrow\":[4,\"no-arrow\"],\"stateless\":[4],\"small\":[4],\"active\":[1540],\"hidden\":[32],\"activate\":[64],\"deactivate\":[64]},null,{\"position\":[\"watchPosition\"],\"strategy\":[\"watchStrategy\"],\"active\":[\"watchActive\"]}]]],[\"dso-alert_6\",[[1,\"dso-ozon-content\",{\"content\":[1],\"inline\":[516],\"addSpaceBeforeNode\":[516,\"add-space-before-node\"],\"mark\":[16],\"state\":[32]},null,{\"content\":[\"contentWatcher\"]}],[1,\"dso-alert\",{\"status\":[513],\"roleAlert\":[4,\"role-alert\"],\"compact\":[516],\"closable\":[4]}],[1,\"dso-image-overlay\",{\"wijzigactie\":[1],\"active\":[32],\"zoomable\":[32]},[[2,\"load\",\"loadListener\"]]],[1,\"dso-panel\",{\"closeButtonLabel\":[1,\"close-button-label\"],\"emphasized\":[4]}],[1,\"dso-table\",{\"noModal\":[516,\"no-modal\"],\"isResponsive\":[516,\"is-responsive\"],\"modalActive\":[32],\"placeholderHeight\":[32]}],[1,\"dso-badge\",{\"status\":[1]}]]],[\"dso-label_3\",[[1,\"dso-renvooi\",{\"value\":[1],\"mark\":[16]}],[6,\"dso-slide-toggle\",{\"checked\":[4],\"disabled\":[4],\"accessibleLabel\":[1,\"accessible-label\"],\"labelledbyId\":[1,\"labelledby-id\"],\"identifier\":[1],\"hasVisibleLabel\":[32]}],[1,\"dso-label\",{\"compact\":[4],\"removable\":[516],\"status\":[1],\"truncate\":[4],\"removeHover\":[32],\"removeFocus\":[32],\"textHover\":[32],\"textFocus\":[32],\"isTruncated\":[32],\"labelText\":[32],\"_truncateLabel\":[64]},[[4,\"keydown\",\"keyDownListener\"]],{\"removable\":[\"watchRemovable\"],\"truncate\":[\"watchTruncate\"]}]]]]"), options);
|
|
20
|
+
return bootstrapLazy(JSON.parse("[[\"dso-icon\",[[1,\"dso-icon\",{\"icon\":[1]}]]],[\"dsot-document-component-demo\",[[2,\"dsot-document-component-demo\",{\"showCanvas\":[516,\"show-canvas\"],\"jsonFile\":[1,\"json-file\"],\"openDefault\":[4,\"open-default\"],\"mode\":[513],\"response\":[32],\"document\":[32],\"openOrClosed\":[32],\"openedAnnotation\":[32],\"filtered\":[32],\"notApplicable\":[32],\"activeAnnotationSelectables\":[32]},null,{\"jsonFile\":[\"jsonFileWatcher\"],\"openDefault\":[\"openDefaultWatcher\"]}]]],[\"dso-accordion-section\",[[1,\"dso-accordion-section\",{\"handleTitle\":[1,\"handle-title\"],\"wijzigactie\":[1],\"heading\":[1],\"handleUrl\":[1,\"handle-url\"],\"status\":[1],\"attachmentCount\":[2,\"attachment-count\"],\"icon\":[1],\"statusDescription\":[1,\"status-description\"],\"open\":[516],\"hasNestedAccordion\":[516,\"has-nested-accordion\"],\"label\":[1],\"labelStatus\":[1,\"label-status\"],\"activatable\":[516],\"active\":[516],\"hover\":[32],\"focusHandle\":[64]}]]],[\"dso-annotation-activiteit\",[[1,\"dso-annotation-activiteit\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1],\"regelKwalificatie\":[1,\"regel-kwalificatie\"],\"locatieNoemers\":[16],\"regelKwalificatieVoorzetsel\":[1,\"regel-kwalificatie-voorzetsel\"]}]]],[\"dso-annotation-gebiedsaanwijzing\",[[1,\"dso-annotation-gebiedsaanwijzing\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1]}]]],[\"dso-annotation-omgevingsnormwaarde\",[[1,\"dso-annotation-omgevingsnormwaarde\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"naam\":[1],\"toelichting\":[1],\"waardes\":[16],\"eenheid\":[1]}]]],[\"dso-advanced-select\",[[1,\"dso-advanced-select\",{\"options\":[16],\"active\":[16],\"activeHint\":[1,\"active-hint\"],\"open\":[32]},[[8,\"keydown\",\"keyDownListener\"]]]]],[\"dso-legend-item\",[[1,\"dso-legend-item\",{\"disabled\":[516],\"disabledMessage\":[1,\"disabled-message\"],\"removable\":[4],\"showBody\":[32]}]]],[\"dso-map-base-layers\",[[1,\"dso-map-base-layers\",{\"group\":[1],\"baseLayers\":[16]}]]],[\"dso-map-overlays\",[[1,\"dso-map-overlays\",{\"group\":[1],\"overlays\":[16]}]]],[\"dso-annotation-kaart\",[[1,\"dso-annotation-kaart\",{\"wijzigactie\":[513],\"naam\":[1],\"href\":[513]}]]],[\"dso-autosuggest\",[[6,\"dso-autosuggest\",{\"suggestions\":[16],\"loading\":[4],\"loadingLabel\":[1,\"loading-label\"],\"loadingDelayed\":[2,\"loading-delayed\"],\"notFoundLabel\":[1,\"not-found-label\"],\"suggestOnFocus\":[4,\"suggest-on-focus\"],\"mark\":[16],\"showSuggestions\":[32],\"selectedSuggestion\":[32],\"selectedSuggestionGroup\":[32],\"notFound\":[32],\"showLoading\":[32],\"listboxContainerMaxBlockSize\":[32]},[[4,\"click\",\"onDocumentClick\"]],{\"suggestions\":[\"suggestionsWatcher\"]}]]],[\"dso-project-item\",[[1,\"dso-project-item\",{\"label\":[1]}]]],[\"dso-header\",[[1,\"dso-header\",{\"mainMenu\":[16],\"useDropDownMenu\":[1,\"use-drop-down-menu\"],\"authStatus\":[1,\"auth-status\"],\"loginUrl\":[1,\"login-url\"],\"logoutUrl\":[1,\"logout-url\"],\"showHelp\":[4,\"show-help\"],\"helpUrl\":[1,\"help-url\"],\"userProfileName\":[1,\"user-profile-name\"],\"userProfileUrl\":[1,\"user-profile-url\"],\"userHomeUrl\":[1,\"user-home-url\"],\"userHomeActive\":[4,\"user-home-active\"],\"showDropDown\":[32],\"overflowMenuItems\":[32],\"dropdownOptionsOffset\":[32]},null,{\"useDropDownMenu\":[\"setShowDropDown\"]}]]],[\"dso-map-controls\",[[1,\"dso-map-controls\",{\"open\":[1540],\"disableZoom\":[1,\"disable-zoom\"],\"hideContent\":[32],\"toggleVisibility\":[64]},null,{\"open\":[\"watchOpen\"]}]]],[\"dso-modal\",[[1,\"dso-modal\",{\"fullscreen\":[516],\"modalTitle\":[1,\"modal-title\"],\"dialogRole\":[1,\"dialog-role\"],\"returnFocus\":[4,\"return-focus\"],\"showCloseButton\":[4,\"show-close-button\"],\"ariaId\":[32]}]]],[\"dso-pagination\",[[1,\"dso-pagination\",{\"totalPages\":[2,\"total-pages\"],\"currentPage\":[2,\"current-page\"],\"formatHref\":[16],\"availablePositions\":[32]},[[0,\"dsoSizeChange\",\"sizeChangeHandler\"]]]]],[\"dso-survey-rating\",[[1,\"dso-survey-rating\"]]],[\"dso-tree-view\",[[1,\"dso-tree-view\",{\"collection\":[16],\"focusItem\":[64]}]]],[\"dso-action-list-item\",[[1,\"dso-action-list-item\",{\"step\":[2],\"itemTitle\":[1,\"item-title\"],\"flowLine\":[4,\"flow-line\"],\"warning\":[4],\"divider\":[4]}]]],[\"dso-card\",[[1,\"dso-card\",{\"href\":[513],\"mode\":[513],\"active\":[516]}]]],[\"dso-date-picker-legacy\",[[2,\"dso-date-picker-legacy\",{\"name\":[1],\"identifier\":[1],\"disabled\":[516],\"role\":[1],\"direction\":[1],\"required\":[4],\"invalid\":[516],\"describedBy\":[1,\"described-by\"],\"dsoAutofocus\":[4,\"dso-autofocus\"],\"value\":[1537],\"min\":[1],\"max\":[1],\"activeFocus\":[32],\"focusedDay\":[32],\"open\":[32],\"visible\":[32],\"setFocus\":[64],\"show\":[64],\"hide\":[64]},[[6,\"click\",\"handleDocumentClick\"]]]]],[\"dso-document-card\",[[1,\"dso-document-card\",{\"href\":[513],\"active\":[516]}]]],[\"dso-list-button\",[[1,\"dso-list-button\",{\"label\":[1],\"sublabel\":[1],\"count\":[2],\"min\":[8],\"max\":[8],\"checked\":[516],\"disabled\":[516],\"subcontentPrefix\":[1,\"subcontent-prefix\"]}]]],[\"dso-mark-bar\",[[1,\"dso-mark-bar\",{\"value\":[1],\"label\":[1],\"current\":[2],\"totalCount\":[2,\"total-count\"],\"dsoFocus\":[64]}]]],[\"dso-plekinfo-card\",[[1,\"dso-plekinfo-card\",{\"wijzigactie\":[513],\"href\":[513],\"targetBlank\":[4,\"target-blank\"],\"active\":[516]}]]],[\"dso-skiplink\",[[1,\"dso-skiplink\",{\"to\":[513],\"label\":[513]}]]],[\"dso-accordion\",[[1,\"dso-accordion\",{\"variant\":[6145],\"reverseAlign\":[6148,\"reverse-align\"],\"_getState\":[64]}]]],[\"dso-action-list\",[[1,\"dso-action-list\",{\"listTitle\":[1,\"list-title\"]}]]],[\"dso-banner\",[[1,\"dso-banner\",{\"status\":[513],\"compact\":[4],\"icon\":[516]}]]],[\"dso-card-container\",[[1,\"dso-card-container\",{\"mode\":[513]}]]],[\"dso-contact-information\",[[1,\"dso-contact-information\"]]],[\"dso-date-picker\",[[2,\"dso-date-picker\",{\"name\":[1],\"identifier\":[1],\"disabled\":[516],\"required\":[516],\"invalid\":[516],\"describedBy\":[1,\"described-by\"],\"dsoAutofocus\":[4,\"dso-autofocus\"],\"value\":[513],\"min\":[1],\"max\":[1]}]]],[\"dso-highlight-box\",[[1,\"dso-highlight-box\",{\"yellow\":[516],\"border\":[516],\"white\":[516],\"dropShadow\":[516,\"drop-shadow\"],\"step\":[514]}]]],[\"dso-input-range\",[[1,\"dso-input-range\",{\"min\":[2],\"max\":[2],\"value\":[2],\"step\":[2],\"label\":[1],\"unit\":[1],\"description\":[1]}]]],[\"dso-logo\",[[1,\"dso-logo\",{\"name\":[513],\"logoUrl\":[513,\"logo-url\"],\"label\":[513],\"labelUrl\":[513,\"label-url\"],\"ribbon\":[513]}]]],[\"dso-progress-bar\",[[1,\"dso-progress-bar\",{\"progress\":[2],\"min\":[2],\"max\":[2]}]]],[\"dso-tab\",[[1,\"dso-tab\",{\"active\":[516],\"disabled\":[516],\"href\":[1],\"_dsoFocus\":[64]}]]],[\"dso-tabs\",[[1,\"dso-tabs\"]]],[\"dso-viewer-grid\",[[1,\"dso-viewer-grid\",{\"mode\":[513],\"filterpanelTitle\":[513,\"filterpanel-title\"],\"filterpanelOpen\":[516,\"filterpanel-open\"],\"overlayOpen\":[516,\"overlay-open\"],\"documentPanelOpen\":[516,\"document-panel-open\"],\"mainSize\":[513,\"main-size\"],\"activeTab\":[1,\"active-tab\"],\"documentPanelSize\":[513,\"document-panel-size\"],\"mainPanelExpanded\":[4,\"main-panel-expanded\"],\"mainPanelHidden\":[4,\"main-panel-hidden\"],\"tabView\":[32],\"_checkMainPanelVisibility\":[64]},null,{\"documentPanelOpen\":[\"documentPanelOpenWatcher\"],\"filterpanelOpen\":[\"filterpanelOpenWatcher\"],\"overlayOpen\":[\"overlayOpenWatcher\"]}]]],[\"dso-toggletip\",[[1,\"dso-toggletip\",{\"label\":[1],\"position\":[1],\"small\":[4],\"secondary\":[4],\"active\":[32]}]]],[\"dso-dropdown-menu\",[[1,\"dso-dropdown-menu\",{\"open\":[1540],\"dropdownAlign\":[1,\"dropdown-align\"],\"dropdownOptionsOffset\":[2,\"dropdown-options-offset\"],\"checkable\":[4],\"boundary\":[1],\"placement\":[1],\"strategy\":[1]},[[8,\"click\",\"onClick\"],[8,\"keydown\",\"keyDownListener\"]],{\"placement\":[\"watchPosition\"],\"dropdownAlign\":[\"watchPosition\"],\"dropdownOptionsOffset\":[\"watchOptionsOffset\"],\"strategy\":[\"watchStrategy\"]}]]],[\"dso-annotation-locatie_2\",[[1,\"dso-document-component\",{\"heading\":[1],\"label\":[1],\"nummer\":[1],\"opschrift\":[1],\"kop\":[1],\"inhoud\":[1],\"open\":[516],\"filtered\":[516],\"notApplicable\":[516,\"not-applicable\"],\"genesteOntwerpInformatie\":[516,\"geneste-ontwerp-informatie\"],\"bevatOntwerpInformatie\":[516,\"bevat-ontwerp-informatie\"],\"annotated\":[516],\"gereserveerd\":[4],\"vervallen\":[4],\"openAnnotation\":[516,\"open-annotation\"],\"alternativeTitle\":[1,\"alternative-title\"],\"type\":[513],\"wijzigactie\":[513],\"annotationsWijzigactie\":[513,\"annotations-wijzigactie\"],\"mark\":[16],\"recursiveToggle\":[8,\"recursive-toggle\"],\"mode\":[513],\"href\":[513]}],[1,\"dso-annotation-locatie\",{\"wijzigactie\":[513],\"active\":[516],\"gewijzigdeLocatie\":[516,\"gewijzigde-locatie\"],\"locatieNoemer\":[1,\"locatie-noemer\"]}]]],[\"dso-attachments-counter_2\",[[1,\"dso-attachments-counter\",{\"count\":[2]}],[1,\"dso-expandable\",{\"open\":[516],\"enableAnimation\":[516,\"enable-animation\"],\"minimumHeight\":[2,\"minimum-height\"],\"isClosed\":[32]},[[0,\"transitionstart\",\"transitionstartHandler\"],[0,\"transitionend\",\"transitionendHandler\"]],{\"open\":[\"toggleOpen\"]}]]],[\"dso-progress-indicator\",[[1,\"dso-progress-indicator\",{\"label\":[1],\"size\":[513],\"block\":[516]}]]],[\"dso-responsive-element\",[[1,\"dso-responsive-element\",{\"sizeAlias\":[32],\"sizeWidth\":[32],\"getSize\":[64]}]]],[\"dso-scrollable\",[[1,\"dso-scrollable\",{\"scrollPosition\":[32],\"_setScrollState\":[64]}]]],[\"dso-info-button\",[[1,\"dso-info-button\",{\"active\":[1540],\"secondary\":[4],\"label\":[1],\"hover\":[32],\"setFocus\":[64]}]]],[\"dso-info_2\",[[6,\"dso-selectable\",{\"type\":[1],\"identifier\":[1],\"name\":[1],\"value\":[1],\"invalid\":[4],\"describedById\":[1,\"described-by-id\"],\"labelledById\":[1,\"labelled-by-id\"],\"disabled\":[4],\"required\":[4],\"checked\":[516],\"indeterminate\":[4],\"infoFixed\":[4,\"info-fixed\"],\"infoActive\":[32],\"keyboardFocus\":[32],\"toggleInfo\":[64]},null,{\"indeterminate\":[\"setIndeterminate\"]}],[1,\"dso-info\",{\"fixed\":[516],\"active\":[516]}]]],[\"dso-tooltip\",[[1,\"dso-tooltip\",{\"descriptive\":[516],\"position\":[1],\"strategy\":[1],\"noArrow\":[4,\"no-arrow\"],\"stateless\":[4],\"small\":[4],\"active\":[1540],\"hidden\":[32],\"activate\":[64],\"deactivate\":[64]},null,{\"position\":[\"watchPosition\"],\"strategy\":[\"watchStrategy\"],\"active\":[\"watchActive\"]}]]],[\"dso-alert_6\",[[1,\"dso-ozon-content\",{\"content\":[1],\"inline\":[516],\"addSpaceBeforeNode\":[516,\"add-space-before-node\"],\"mark\":[16],\"state\":[32]},null,{\"content\":[\"contentWatcher\"]}],[1,\"dso-alert\",{\"status\":[513],\"roleAlert\":[4,\"role-alert\"],\"compact\":[516],\"closable\":[4]}],[1,\"dso-image-overlay\",{\"wijzigactie\":[1],\"active\":[32],\"zoomable\":[32]},[[2,\"load\",\"loadListener\"]]],[1,\"dso-panel\",{\"closeButtonLabel\":[1,\"close-button-label\"],\"emphasized\":[4]}],[1,\"dso-table\",{\"noModal\":[516,\"no-modal\"],\"isResponsive\":[516,\"is-responsive\"],\"modalActive\":[32],\"placeholderHeight\":[32]}],[1,\"dso-badge\",{\"status\":[1]}]]],[\"dso-label_3\",[[1,\"dso-renvooi\",{\"value\":[1],\"mark\":[16]}],[6,\"dso-slide-toggle\",{\"checked\":[4],\"disabled\":[4],\"accessibleLabel\":[1,\"accessible-label\"],\"labelledbyId\":[1,\"labelledby-id\"],\"identifier\":[1],\"hasVisibleLabel\":[32]}],[1,\"dso-label\",{\"compact\":[4],\"removable\":[516],\"status\":[1],\"truncate\":[4],\"removeHover\":[32],\"removeFocus\":[32],\"textHover\":[32],\"textFocus\":[32],\"isTruncated\":[32],\"labelText\":[32],\"_truncateLabel\":[64]},[[4,\"keydown\",\"keyDownListener\"]],{\"removable\":[\"watchRemovable\"],\"truncate\":[\"watchTruncate\"]}]]]]"), options);
|
|
21
21
|
});
|
|
22
22
|
//# sourceMappingURL=dso-toolkit.js.map
|
|
23
23
|
|