@govtechsg/sgds-web-component 3.5.6-rc.1 → 3.5.6-rc.2

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.
@@ -2087,7 +2087,7 @@ class extends ct{constructor(e){if(super(e),e.type!==at&&e.type!==ot&&e.type!==n
2087
2087
  * Copyright 2017 Google LLC
2088
2088
  * SPDX-License-Identifier: BSD-3-Clause
2089
2089
  */
2090
- const ql=(e,t,i)=>{const l=new Map;for(let o=t;o<=i;o++)l.set(e[o],o);return l};const jl=rt(class extends ct{constructor(e){if(super(e),e.type!==st)throw new Error("repeat() can only be used in text expressions")}_getValuesAndKeys(e,t,i){let l;void 0===i?i=t:void 0!==t&&(l=t);const o=[],s=[];let a=0;for(const t of e)o[a]=l?l(t,a):a,s[a]=i(t,a),a++;return{values:s,keys:o}}render(e,t,i){return this._getValuesAndKeys(e,t,i).values}update(e,[t,i,l]){const o=e._$committedValue;const{values:s,keys:a}=this._getValuesAndKeys(t,i,l);if(!Array.isArray(o))return this._itemKeys=a,s;const n=this._itemKeys??=[],r=[];let c,d,h=0,u=o.length-1,v=0,p=s.length-1;for(;h<=u&&v<=p;)if(null===o[h])h++;else if(null===o[u])u--;else if(n[h]===a[v])r[v]=mt(o[h],s[v]),h++,v++;else if(n[u]===a[p])r[p]=mt(o[u],s[p]),u--,p--;else if(n[h]===a[p])r[p]=mt(o[h],s[p]),ft(e,r[p+1],o[h]),h++,p--;else if(n[u]===a[v])r[v]=mt(o[u],s[v]),ft(e,o[h],o[u]),u--,v++;else if(void 0===c&&(c=ql(a,v,p),d=ql(n,h,u)),c.has(n[h]))if(c.has(n[u])){const t=d.get(a[v]),i=void 0!==t?o[t]:null;if(null===i){const t=ft(e,o[h]);mt(t,s[v]),r[v]=t}else r[v]=mt(i,s[v]),ft(e,o[h],i),o[t]=null;v++}else yt(o[u]),u--;else yt(o[h]),h++;for(;v<=p;){const t=ft(e,r[p+1]);mt(t,s[v]),r[v++]=t}for(;h<=u;){const e=o[h++];null!==e&&yt(e)}return this._itemKeys=a,bt(e,r),te}});class Kl extends Cl{constructor(){super(...arguments),this.multiSelect=!1,this.badgeFullWidth=!1,this.filterFunction=(e,t)=>t.label.toLowerCase().startsWith(e.toLowerCase()),this.optionList=[],this.emptyMenu=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("sgds-hide",(async()=>{(await this._input).focus(),this.options.forEach((e=>e.removeAttribute("hidden"))),this.emptyMenu=!1}))}async firstUpdated(e){super.firstUpdated(e),this.menuList.forEach((e=>{const t=document.createElement("sgds-combo-box-option");t.innerText=e.label,t.value=e.value,t.checkbox=this.multiSelect,t.active=this.value.includes(e.value),this.appendChild(t)})),this._setupValidation(this.menuList),this.menuIsOpen&&!this.readonly&&this.showMenu()}async _handleDefaultSlotChange(e){const t=e.target.assignedElements({flatten:!0});t.forEach((e=>{e.addEventListener("i-sgds-select",(t=>{e.hasAttribute("disabled")||this._handleItemSelected(t)})),this.value.includes(e.getAttribute("value"))&&e.setAttribute("active","true"),this.multiSelect&&e.addEventListener("i-sgds-unselect",(e=>{e.target.disabled||this._handleItemUnselect(e)}))})),this.optionList=await this._getMenuListFromOptions(t),this._setupValidation(this.optionList)}async _setupValidation(e){var t;if(this.value&&e.length>0){const i=this.value.split(";"),l=e.filter((({value:e})=>i.includes(e)));this.selectedItems=[...l,...this.selectedItems],this.multiSelect||(this.displayValue=null===(t=l[0])||void 0===t?void 0:t.label),this.multiSelect?this.input=await this._multiSelectInput:this.input=await this._input,this._mixinValidate(this.input)}}async _handleValueChange(){this.emit("sgds-change"),this.options.forEach((e=>e.removeAttribute("hidden"))),this.value&&this.emit("sgds-select");const e=await this._input;this._mixinSetFormValue(),this.multiSelect?this._mixinValidate(this.input):this._mixinValidate(e);this.selectedItems.map((e=>e.value)).join(";")!==this.value&&this._updateValueAndDisplayValue(this.optionList),(this._isTouched||""!==this.value)&&(this.invalid=!this._mixinReportValidity())}_handleOptionListChange(){this._updateValueAndDisplayValue(this.optionList)}_handleMenuListChange(){const e=this.menuList.map((e=>{const t=document.createElement("sgds-combo-box-option");return t.innerText=e.label,t.value=e.value,t.checkbox=this.multiSelect,t.active=this.value.includes(e.value),t}));this.replaceChildren(...e)}_updateValueAndDisplayValue(e){var t,i;const l=this.value.split(";"),o=e.filter((({value:e})=>l.includes(e)));this.selectedItems=[...o];const s=o.map((e=>e.value)).join(";");s!==this.value&&(this.value=s),this.multiSelect||(this.displayValue=null!==(i=null===(t=o[0])||void 0===t?void 0:t.label)&&void 0!==i?i:"")}async _handleInputChange(e){this.emit("sgds-input");const t=e.target;this.displayValue=t.value,this.filteredList=this.optionList.filter((e=>this.filterFunction(this.displayValue,e))),""!==this.displayValue||this.multiSelect||(this.selectedItems=[],this.value=this.selectedItems.join(";"),this.options.forEach((e=>e.active=!1))),this.invalid=!1,this.showMenu(),this.emptyMenu=0===this.filteredList.length;const i=this.filteredList.map((e=>e.value));this.options.forEach((e=>{i.includes(e.value)?e.hidden=!1:e.hidden=!0})),""===this.displayValue&&(this.options.forEach((e=>e.hidden=!1)),await this.updateComplete)}async _handleItemSelected(e){var t,i,l,o;const s=e.target;s.active=!0;const a=null!==(i=null===(t=s.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:"",n=null!==(l=s.getAttribute("value"))&&void 0!==l?l:a,r=this.filteredList.find((e=>e.value.toString()===n))||{label:a,value:n};if(this.multiSelect)this.selectedItems.some((e=>e.value===r.value))||(this.selectedItems=[...this.selectedItems,r],setTimeout((()=>this.displayValue=""))),this.hideMenu(),this.value=this.selectedItems.map((e=>e.value)).join(";");else{const e=this.value;null===(o=this.options)||void 0===o||o.forEach((t=>t.value===e?t.active=!1:null)),this.selectedItems=[r],this.value=r.value.toString(),this.displayValue=this.selectedItems[0].label,this.hideMenu()}}_handleItemUnselect(e){var t,i,l;const o=e.target;o.removeAttribute("active");const s=null!==(i=null===(t=o.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:"",a=null!==(l=o.getAttribute("value"))&&void 0!==l?l:s,n=this.filteredList.find((e=>e.value.toString()===a))||{label:s,value:a};this.selectedItems=this.selectedItems.filter((e=>e.value!==n.value)),this.value=this.selectedItems.map((e=>e.value)).join(";")}async _handleBadgeDismissed(e,t){var i;e.preventDefault();const l=t.value;null===(i=this.options)||void 0===i||i.forEach((e=>e.value===l?e.active=!1:null)),this.selectedItems=this.selectedItems.filter((e=>e.value!==t.value)),this.value=this.selectedItems.map((e=>e.value)).join(";")}async _handleMultiSelectKeyDown(e){var t;if(this.multiSelect&&"Backspace"===e.key&&this.multiSelect&&""===this.displayValue.trim()&&this.selectedItems.length>0){const e=this.selectedItems[this.selectedItems.length-1].value;null===(t=this.options)||void 0===t||t.forEach((t=>t.value===e?t.active=!1:null)),this.selectedItems=this.selectedItems.slice(0,-1),this.value=this.selectedItems.map((e=>e.value)).join(";")}}_handleFocus(){this.emit("sgds-focus")}async _handleInputBlur(e){if(e.preventDefault(),this.emit("sgds-blur"),this.multiSelect){this.selectedItems.filter((({label:e})=>this.displayValue===e)).length<=0&&(this.displayValue="")}else this.selectedItems.length>0?this.displayValue=this.selectedItems[0].label:this.displayValue=""}async _mixinResetFormControl(){if(this.value=this.defaultValue,this.multiSelect){const e=this.value.split(";"),t=this.optionList.filter((({value:t})=>e.includes(t)));this.selectedItems=t,this._mixinResetValidity(await this._multiSelectInput)}else{const e=this.optionList.filter((({value:e})=>e===this.value));e.length<=0?this.displayValue="":this.displayValue=e[0].label,this._mixinResetValidity(await this._input)}}_renderInput(){const e=this.hasFeedback;return Q`
2090
+ const ql=(e,t,i)=>{const l=new Map;for(let o=t;o<=i;o++)l.set(e[o],o);return l};const jl=rt(class extends ct{constructor(e){if(super(e),e.type!==st)throw new Error("repeat() can only be used in text expressions")}_getValuesAndKeys(e,t,i){let l;void 0===i?i=t:void 0!==t&&(l=t);const o=[],s=[];let a=0;for(const t of e)o[a]=l?l(t,a):a,s[a]=i(t,a),a++;return{values:s,keys:o}}render(e,t,i){return this._getValuesAndKeys(e,t,i).values}update(e,[t,i,l]){const o=e._$committedValue;const{values:s,keys:a}=this._getValuesAndKeys(t,i,l);if(!Array.isArray(o))return this._itemKeys=a,s;const n=this._itemKeys??=[],r=[];let c,d,h=0,u=o.length-1,v=0,p=s.length-1;for(;h<=u&&v<=p;)if(null===o[h])h++;else if(null===o[u])u--;else if(n[h]===a[v])r[v]=mt(o[h],s[v]),h++,v++;else if(n[u]===a[p])r[p]=mt(o[u],s[p]),u--,p--;else if(n[h]===a[p])r[p]=mt(o[h],s[p]),ft(e,r[p+1],o[h]),h++,p--;else if(n[u]===a[v])r[v]=mt(o[u],s[v]),ft(e,o[h],o[u]),u--,v++;else if(void 0===c&&(c=ql(a,v,p),d=ql(n,h,u)),c.has(n[h]))if(c.has(n[u])){const t=d.get(a[v]),i=void 0!==t?o[t]:null;if(null===i){const t=ft(e,o[h]);mt(t,s[v]),r[v]=t}else r[v]=mt(i,s[v]),ft(e,o[h],i),o[t]=null;v++}else yt(o[u]),u--;else yt(o[h]),h++;for(;v<=p;){const t=ft(e,r[p+1]);mt(t,s[v]),r[v++]=t}for(;h<=u;){const e=o[h++];null!==e&&yt(e)}return this._itemKeys=a,bt(e,r),te}});class Kl extends Cl{constructor(){super(...arguments),this.multiSelect=!1,this.badgeFullWidth=!1,this.filterFunction=(e,t)=>t.label.toLowerCase().startsWith(e.toLowerCase()),this.optionList=[],this.emptyMenu=!1}connectedCallback(){super.connectedCallback(),this.addEventListener("sgds-hide",(async()=>{(await this._input).focus(),this.options.forEach((e=>e.removeAttribute("hidden"))),this.emptyMenu=!1}))}async firstUpdated(e){super.firstUpdated(e),this.menuList.forEach((e=>{const t=document.createElement("sgds-combo-box-option");t.innerText=e.label,t.value=e.value,t.checkbox=this.multiSelect,t.active=this.value.includes(e.value),this.appendChild(t)})),this._setupValidation(this.menuList),this.menuIsOpen&&!this.readonly&&this.showMenu()}async _handleDefaultSlotChange(e){const t=e.target.assignedElements({flatten:!0});t.forEach((e=>{e.addEventListener("i-sgds-select",(t=>{e.hasAttribute("disabled")||this._handleItemSelected(t)})),this.value.includes(e.getAttribute("value"))&&e.setAttribute("active","true"),this.multiSelect&&e.addEventListener("i-sgds-unselect",(e=>{e.target.disabled||this._handleItemUnselect(e)}))})),this.optionList=await this._getMenuListFromOptions(t),console.log("optionList",this.optionList),this._setupValidation(this.optionList)}async _setupValidation(e){var t;if(this.value&&e.length>0){const i=this.value.split(";"),l=e.filter((({value:e})=>i.includes(e)));this.selectedItems=[...l,...this.selectedItems],this.multiSelect||(this.displayValue=null===(t=l[0])||void 0===t?void 0:t.label),this.multiSelect?this.input=await this._multiSelectInput:this.input=await this._input,this._mixinValidate(this.input)}}async _handleValueChange(){this.emit("sgds-change"),this.options.forEach((e=>e.removeAttribute("hidden"))),this.value&&this.emit("sgds-select");const e=await this._input;this._mixinSetFormValue(),this.multiSelect?this._mixinValidate(this.input):this._mixinValidate(e);this.selectedItems.map((e=>e.value)).join(";")!==this.value&&this._updateValueAndDisplayValue(this.optionList),(this._isTouched||""!==this.value)&&(this.invalid=!this._mixinReportValidity())}_handleOptionListChange(){this._updateValueAndDisplayValue(this.optionList)}_handleMenuListChange(){const e=this.menuList.map((e=>{const t=document.createElement("sgds-combo-box-option");return t.innerText=e.label,t.value=e.value,t.checkbox=this.multiSelect,t.active=this.value.includes(e.value),t}));this.replaceChildren(...e)}_updateValueAndDisplayValue(e){var t,i;const l=this.value.split(";"),o=e.filter((({value:e})=>l.includes(e)));this.selectedItems=[...o];const s=o.map((e=>e.value)).join(";");s!==this.value&&(this.value=s),this.multiSelect||(this.displayValue=null!==(i=null===(t=o[0])||void 0===t?void 0:t.label)&&void 0!==i?i:"")}async _handleInputChange(e){this.emit("sgds-input");const t=e.target;this.displayValue=t.value,console.log(this.optionList,"handleInputChange"),this.filteredList=this.optionList.filter((e=>this.filterFunction(this.displayValue,e))),""!==this.displayValue||this.multiSelect||(this.selectedItems=[],this.value=this.selectedItems.join(";"),this.options.forEach((e=>e.active=!1))),this.invalid=!1,this.showMenu(),this.emptyMenu=0===this.filteredList.length;const i=this.filteredList.map((e=>e.value));this.options.forEach((e=>{i.includes(e.value)?e.hidden=!1:e.hidden=!0})),""===this.displayValue&&(this.options.forEach((e=>e.hidden=!1)),await this.updateComplete)}async _handleItemSelected(e){var t,i,l,o;const s=e.target;s.active=!0;const a=null!==(i=null===(t=s.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:"",n=null!==(l=s.getAttribute("value"))&&void 0!==l?l:a,r=this.filteredList.find((e=>e.value.toString()===n))||{label:a,value:n};if(this.multiSelect)this.selectedItems.some((e=>e.value===r.value))||(this.selectedItems=[...this.selectedItems,r],setTimeout((()=>this.displayValue=""))),this.hideMenu(),this.value=this.selectedItems.map((e=>e.value)).join(";");else{const e=this.value;null===(o=this.options)||void 0===o||o.forEach((t=>t.value===e?t.active=!1:null)),this.selectedItems=[r],this.value=r.value.toString(),this.displayValue=this.selectedItems[0].label,this.hideMenu()}}_handleItemUnselect(e){var t,i,l;const o=e.target;o.removeAttribute("active");const s=null!==(i=null===(t=o.textContent)||void 0===t?void 0:t.trim())&&void 0!==i?i:"",a=null!==(l=o.getAttribute("value"))&&void 0!==l?l:s,n=this.filteredList.find((e=>e.value.toString()===a))||{label:s,value:a};this.selectedItems=this.selectedItems.filter((e=>e.value!==n.value)),this.value=this.selectedItems.map((e=>e.value)).join(";")}async _handleBadgeDismissed(e,t){var i;e.preventDefault();const l=t.value;null===(i=this.options)||void 0===i||i.forEach((e=>e.value===l?e.active=!1:null)),this.selectedItems=this.selectedItems.filter((e=>e.value!==t.value)),this.value=this.selectedItems.map((e=>e.value)).join(";")}async _handleMultiSelectKeyDown(e){var t;if(this.multiSelect&&"Backspace"===e.key&&this.multiSelect&&""===this.displayValue.trim()&&this.selectedItems.length>0){const e=this.selectedItems[this.selectedItems.length-1].value;null===(t=this.options)||void 0===t||t.forEach((t=>t.value===e?t.active=!1:null)),this.selectedItems=this.selectedItems.slice(0,-1),this.value=this.selectedItems.map((e=>e.value)).join(";")}}_handleFocus(){this.emit("sgds-focus")}async _handleInputBlur(e){if(e.preventDefault(),this.emit("sgds-blur"),this.multiSelect){this.selectedItems.filter((({label:e})=>this.displayValue===e)).length<=0&&(this.displayValue="")}else this.selectedItems.length>0?this.displayValue=this.selectedItems[0].label:this.displayValue=""}async _mixinResetFormControl(){if(this.value=this.defaultValue,this.multiSelect){const e=this.value.split(";"),t=this.optionList.filter((({value:t})=>e.includes(t)));this.selectedItems=t,this._mixinResetValidity(await this._multiSelectInput)}else{const e=this.optionList.filter((({value:e})=>e===this.value));e.length<=0?this.displayValue="":this.displayValue=e[0].label,this._mixinResetValidity(await this._input)}}_renderInput(){const e=this.hasFeedback;return Q`
2091
2091
  <div
2092
2092
  ${Lt(this.myDropdown)}
2093
2093
  class="form-control-group ${dt({disabled:this.disabled,readonly:this.readonly,"is-invalid":this.invalid&&e})}"