PageSourceSearch

https://www.lahitapiola.fi/9205-f6295e3609e895d03542.js

js lahitapiola.fi collected 2026-10-01 10:37:38 UTC 14,207 bytes, 2 lines download raw bytes

1/*! For license information please see 9205-f6295e3609e895d03542.js.LICENSE.txt */
2"use strict";(self.webpackChunkltfi=self.webpackChunkltfi||[]).push([[9205],{9205:function(e,t,i){i.r(t),i.d(t,{duet_combobox:function(){return p}});var s=i(5763),n=i(5186),l=i(1622),a=i(6596),o=i(2534),h=i(8875),r=i(210),d=i(8479),c=i(6080);const u=({item:e,activeDescendant:t,selected:i,label:n,clickHandler:l=e=>{e.preventDefault()},keyHandler:a=e=>{e.preventDefault()},search:o,isAndroidDevice:h,id:r})=>{const c=o.split(" ").filter((e=>!!e.trim())).map((e=>(0,d.r)(e))),u=""!==o?new RegExp(`(${c.join("|")})`,"i"):void 0;return(0,s.h)("duet-popup-menu-item",{id:t?r:"",active:i,"data-index":e.id,"aria-selected":t?"true":void 0,"aria-current":i?"true":void 0,role:"option","aria-label":n,tabindex:h?"-1":null,onClick:e=>l(e),onKeyUp:e=>a(e),accessibleRole:"option",activeDescendant:t},u?(0,s.h)("span",{class:"option-container","aria-hidden":"true"},(0,s.h)("span",{innerHTML:e.name.replace(u,'<span style="text-decoration: underline">$&</span>')})):e.name,e.tags&&(0,s.h)("span",{class:"option-tags"},e.tags.join(", ")))},p=class{constructor(e){var t,i;(0,s.r)(this,e),this.duetChange=(0,s.c)(this,"duetChange",3),this.listBoxId=(0,l.c)("duet-combobox-list-element"),this.inputId=(0,l.c)("duet-combobox-input-id"),this.activeDescendantId=(0,l.c)("duet-combobox-active-descendant"),this.isAndroidDevice=(null===(i=null===(t=null===navigator||void 0===navigator?void 0:navigator.userAgent)||void 0===t?void 0:t.toLowerCase())||void 0===i?void 0:i.indexOf("android"))>-1||null,this.isInsideModal=!1,this.resizeObserver=new ResizeObserver((0,a.d)((e=>{var t,i,s;if(1===(null==e?void 0:e.length)){const n=null===(i=null===(t=e[0])||void 0===t?void 0:t.target)||void 0===i?void 0:i.getBoundingClientRect().width,l=parseInt(null===(s=getComputedStyle(this.listContainer.shadowRoot.querySelector(".duet-popup-menu-list")))||void 0===s?void 0:s.padding);this.listContainer.style.setProperty("--popup-width",n-2*l+"px")}}),100)),this.processedItems=null,this.inputValue="",this.listOpen=!1,this.selectedItems=new Set,this.activeItem=void 0,this.activeItemAnnouncement="",this.accessibleLabelDefaults={en:{heading:"Select:",item:"{name}",itemFiltered:"{name}, {hiddenItems} filtered"},fi:{heading:"Valitse:",item:"{name}",itemFiltered:"{name}, {hiddenItems} suodatettu"},sv:{heading:"Välj:",item:"{name}",itemFiltered:"{name}, {hiddenItems} filtrerade"}},this.accessibleLabels=(0,h.g)(this.accessibleLabelDefaults,(0,h.a)()),this.label="",this.caption="",this.theme="",this.force=!1,this.multiple=!1,this.formatter=e=>e&&e.name?e.name:"",this.minCharacters=0,this.openListOnClick=!1,this.filterType="startsWith",this.onInputChange=async e=>{const t=e.detail.value;this.inputValue=t},this.onInputClick=()=>{this.popupMenuController=this.input.nativeInputElement,setTimeout((()=>{var e,t;this.openListOnClick?this.listOpen=!this.listOpen:this.listOpen=(null===(e=this.inputValue)||void 0===e?void 0:e.length)>=this.minCharacters,(null===(t=this.getFilteredItems())||void 0===t?void 0:t.length)||(this.listOpen=!1)}))},this.onInputTyping=async e=>{var t;const i=e.detail.value;!this.force&&!this.multiple&&this.selectedItems.size>0&&i!==this.getSelectedItemLabel()&&this.selectedItems.clear(),this.force||this.multiple||""!==i||(this.value=void 0),this.listOpen=String(i).length>=this.minCharacters&&(null===(t=this.getFilteredItems())||void 0===t?void 0:t.length)>0},this.onKeyDown=e=>{var t,i,s;const n=this.returnFilteredOrNonFiltered(),l=n.filter((e=>!this.selectedItems.has(e.id)));if((0,o.c)(e))return e.preventDefault(),this.listOpen&&void 0!==this.activeItem&&n[this.activeItem]&&!this.selectedItems.has(n[this.activeItem].id)?this.multiple?this.addSelectedItem(n[this.activeItem].id,!0):this.updateSelectedItem(n[this.activeItem].id,!0):!this.multiple&&this.listOpen&&1===l.length&&l[0].name.toLowerCase()===this.input.value.toLowerCase()&&this.updateSelectedItem(l[0].id,!0),this.activeItem=void 0,void(this.listOpen=!1);if((0,o.a)(e)||(0,o.b)(e))return(0,o.a)(e)&&this.listOpen&&e.preventDefault(),this.updateInputText(!0),this.activeItem=void 0,void(this.listOpen=!1);let a=this.activeItem;if((0,o.e)(e)&&(a=this.activeItem-1),(0,o.g)(e)){if((null!==(s=null===(i=null===(t=this.input)||void 0===t?void 0:t.value)||void 0===i?void 0:i.length)&&void 0!==s?s:0)<this.minCharacters)return;a=this.listOpen?this.activeItem+1:this.activeItem,this.popupMenuController=this.input.nativeInputElement,setTimeout((()=>{this.listOpen=!0}))}((0,o.g)(e)||(0,o.e)(e))&&(e.preventDefault(),(a<0||!a)&&(a=0),a>=n.length&&(a=n.length-1),this.activeItem=a,this.scrollToActive())}}popupMenuOpenHandler(){this.listOpen?(this.listContainer.show(),this.announceActiveItem()):this.listContainer.hide()}activeItemHandler(e){this.announceActiveItem()}announceActiveItem(){if(this.listOpen&&(this.activeItem||0===this.activeItem)&&this.processedItems){const e=this.returnFilteredOrNonFiltered(),t=e[this.activeItem];if(t)return void(this.activeItemAnnouncement=this.formatLabel(t,this.activeItem,e.length,this.processedItems.length))}this.activeItemAnnouncement=""}inputValueHandler(){setTimeout((async()=>
2{const e=await this.getSelectedItemLabel();""==this.input.value&&e&&(this.input.value="",this.value=void 0)}),200)}handleDocumentClick(e){e.composedPath().every((e=>e!==this.element))&&(this.updateInputText(!0),this.listOpen=!1)}async formatItem(e){return this.formatter(e)}processItems(){const e=[];if(this.processedItems=(0,d.p)(this.items),!Array.isArray(this.processedItems))return void console.error("DuetCombobox: Items should be an array");this.processedItems.length!==new Set([...this.processedItems]).size&&console.warn("DuetCombobox: Duplicate item values found in the list"),this.processedItems=this.processedItems.map(((t,i)=>("string"==typeof t&&(t={name:t,value:t}),void 0!==t.id?t.id=String(t.id):t.id=`${JSON.stringify(t.value)}-${t.name}`,e.includes(t.id)&&(console.warn("DuetCombobox: Duplicate item id found in the list, postfixed with index"),t.id=`${t.id}-${i}`),e.push(t.id),t)));const t=Array.from(this.selectedItems).filter((e=>!this.processedItems.find((t=>t.id===e))));t.length&&(this.multiple?t.forEach((e=>this.removeSelectedItem(e))):this.updateSelectedItem(t[0],!0))}processValue(){if(""!==this.value&&!this.value)return void this.selectedItems.clear();const e=Array.isArray(this.value)?this.value:[this.value],t=this.processedItems.filter((t=>e.includes(t.value))).map((e=>e.id));if(t.length!==this.selectedItems.size||!t.every((e=>this.selectedItems.has(e))))if(this.multiple)this.selectedItems.clear(),this.input.clearChips(),t.forEach((e=>this.addSelectedItem(e)));else{const e=this.processedItems.find((e=>e.value===this.value));this.updateSelectedItem(e.id)}}processListOpenChange(){this.openListOnClick&&(this.input.icon=this.listOpen?"action-arrow-up":"action-arrow-down"),this.input.accessibleExpanded=this.listOpen?"true":"false"}componentWillLoad(){this.element.closest("duet-modal")&&(this.isInsideModal=!0),(0,n.i)(this)}connectedCallback(){this.items&&this.processItems();const e=(0,r.g)(this.element);e.length?this.input=e[0]:(this.input=document.createElement("duet-input"),this.input.label=this.label,this.input.caption=this.caption,this.input.expand=!0,this.element.prepend(this.input)),this.input.chips=this.multiple,this.input.addEventListener("duetChange",this.onInputChange),this.input.addEventListener("duetInput",this.onInputTyping),this.input.addEventListener("click",this.onInputClick),this.input.role="combobox",this.input.accessibleExpanded=this.listOpen?"true":"false",this.input.accessibleAutocomplete="list",this.input.accessibleControls=this.listBoxId,this.input.id=this.inputId,this.element.addEventListener("keydown",this.onKeyDown),(0,h.c)(this,{prop:"accessibleLabels",defaults:"accessibleLabelDefaults"}),this.processListOpenChange()}disconnectedCallback(){this.input.removeEventListener("duetChange",this.onInputChange),this.input.removeEventListener("click",this.onInputClick),this.element.removeEventListener("keydown",this.onKeyDown),this.resizeObserver.disconnect(),(0,h.d)(this)}componentDidLoad(){this.resizeObserver.observe(this.input),this.processValue()}
2shouldListBeFiltered(){var e;if(!this.multiple&&this.selectedItems.size&&this.input.value===this.inputValue&&(null===(e=this.inputValue)||void 0===e?void 0:e.length)<this.minCharacters){const e=this.processedItems.find((e=>this.selectedItems.has(e.id)));return!(this.formatter(e).toLowerCase()===this.input.value.toLowerCase())}return!0}returnFilteredOrNonFiltered(){return this.processedItems?this.shouldListBeFiltered()?this.getFilteredItems():this.sortFilteredItems(this.processedItems):[]}emitChangeEvent(e){const t=this.processedItems.find((t=>t.id===e));this.duetChange.emit({item:t,value:this.value,component:"duet-combobox"})}updateMultipleValue(){this.value=this.processedItems.filter((e=>this.selectedItems.has(e.id))).map((e=>e.value)),this.input.value="",this.updateChips(),this.input.setFocus()}addSelectedItem(e,t){this.selectedItems.has(e)||(this.selectedItems.add(e),this.updateMultipleValue(),t&&this.emitChangeEvent(e))}removeSelectedItem(e,t){this.selectedItems.has(e)&&(this.selectedItems.delete(e),this.updateMultipleValue(),t&&this.emitChangeEvent(e))}async updateSelectedItem(e,t){this.selectedItems.clear(),this.selectedItems.add(e),this.value=this.processedItems.find((t=>t.id===e)).value,t&&this.emitChangeEvent(this.value&&e),await this.updateInputText()}async updateChips(){const e=Array.from(this.selectedItems),t=await this.input.getChips();e.forEach((async e=>{const t=this.processedItems.find((t=>t.id===e)),i=await this.formatItem(t);if(!await this.input.hasChip({value:`${e}`,text:i})){const t=document.createElement("duet-chip");t.variation="input",t.role="option",t.value=`${e}`,t.textContent=i,t.addEventListener("duetRemove",(e=>{const t=e.detail.value;this.removeSelectedItem(t,!0)})),this.input.addChip(t)}})),t.forEach((t=>{e.includes(t.value)||t.remove()}))}async getSelectedItemLabel(){const e=this.processedItems.find((e=>this.selectedItems.has(e.id)));return e?await this.formatItem(e):""}async updateInputText(e=!1){if(e&&this.multiple)this.input.value="";else{if(e&&this.force){const e=this.returnFilteredOrNonFiltered();!this.multiple&&this.listOpen&&1===e.length&&e[0].name.toLowerCase()===this.input.value.toLowerCase()&&this.updateSelectedItem(e[0].id,!0),0===this.selectedItems.size?this.input.value="":this.input.value=await this.get
2SelectedItemLabel()}!e&&this.selectedItems.size>0&&(this.input.value="",this.input.value=await this.getSelectedItemLabel(),this.input.scrollLeft=this.input.scrollWidth,await this.input.setFocus())}}onListClick(e,t){return e.preventDefault(),e.stopPropagation(),this.multiple?this.addSelectedItem(t.id,!0):this.updateSelectedItem(t.id,!0),this.activeItem=void 0,this.listOpen=!1,this.listOpen}scrollToActive(){const e=document.getElementById(`${this.activeDescendantId}`);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}formatLabel(e,t,i,s){if(!e||void 0===s)return"";return(i===s?this.accessibleLabels.item:this.accessibleLabels.itemFiltered).replace("{name}",String(e.name)).replace("{current}",String(t+1)).replace("{total}",String(i)).replace("{hiddenItems}",String(s-i))}getFilteredItems(){const e=this.processedItems.filter((e=>{var t,i,s,n,l;return(null===(t=String(e.value))||void 0===t?void 0:t.toLowerCase()[this.filterType](null===(i=this.inputValue)||void 0===i?void 0:i.toLowerCase()))||(null===(s=String(e.name))||void 0===s?void 0:s.toLowerCase()[this.filterType](null===(n=this.inputValue)||void 0===n?void 0:n.toLowerCase()))||this.formatter(e).toLowerCase()[this.filterType](null===(l=this.inputValue)||void 0===l?void 0:l.toLowerCase())||this.selectedItems.has(e.id)})).filter((e=>{let t=!0;return this.multiple&&this.selectedItems.has(e.id)&&(t=!1),t}));return this.sortFilteredItems(e)}sortFilteredItems(e){return e.length>0&&e.filter((e=>this.selectedItems.has(e.id))).forEach((t=>{const i=e.indexOf(t);e.splice(i,1),e.unshift(t)})),e}getMenuContainerStyles(){const e=16*parseInt(c.p);return{"max-height":5*(parseFloat(c.n)*e+2*parseInt(c.o))+"px",width:"var(--popup-width)"}}render(){var e;const t=-1*(null===(e=this.input.nativeInputElement)||void 0===e?void 0:e.offsetLeft),i=this.returnFilteredOrNonFiltered();return(0,s.h)(s.H,{class:{"duet-combobox":!0,[`duet-theme-${this.theme}`]:!0}},(0,s.h)("slot",null),(0,s.h)("duet-visually-hidden",null,(0,s.h)("span",{"aria-live":"assertive","aria-atomic":"true"},this.activeItemAnnouncement)),(0,s.h)("div",null,(0,s.h)("duet-popup-menu",{id:this.listBoxId,controller:this.popupMenuController,ref:e=>this.listContainer=e,accessibleRole:"listbox",allowVerticalFlip:!1,mainAxisOffset:2,crossAxisOffset:t,class:{"duet-skip-teleport-inert":this.isInsideModal}},(0,s.h)("div",{class:"combobox-menu-container",style:this.getMenuContainerStyles()},this.listOpen&&i.map(((e,t)=>(0,s.h)(u,{id:this.activeDescendantId,item:e,activeDescendant:t===this.activeItem,selected:this.selectedItems.has(e.id),search:this.inputValue,clickHandler:t=>this.onListClick(t,e),label:this.formatLabel(e,t,i.length,this.processedItems.length),isAndroidDevice:this.isAndroidDevice}))),(0,s.h)("duet-spacer",{size:"x-small"})))))}get element(){return(0,s.g)(this)}static get watchers(){return{listOpen:["popupMenuOpenHandler","processListOpenChange"],activeItem:["activeItemHandler"],inputValue:["inputValueHandler"],items:["processItems"],value:["processValue"]}}};p.style=':host{box-sizing:border-box;padding:0;margin:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;position:relative;display:inline-block;width:100%;font-family:"localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:rgb(8, 42, 77)}:host a{color:rgb(8, 42, 77);transition:none}:host(.duet-theme-turva){font-family:"turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";color:rgb(23, 42, 59)}:host(.duet-theme-turva) a{color:rgb(23, 42, 59)}'}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.