1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2645],{72645:function(e,a,l){l.r(a),l.d(a,{multi_select_dropdown:function(){return s}});var o=l(39986);l(67294),l(85893),l(73935);let s=class{constructor(e){(0,o.r)(this,e),this.selectedOptionsChanged=(0,o.a)(this,"selectedOptionsChanged",7),this.name=void 0,this.label=void 0,this.options=[],this.error="",this.required=!1,this.readOnly=!1,this.multipleOptionsSelectedLabel="Multiple options selected",this.selectAtLeastOneOptionLabel="Please select at least one option",this.availableOptions=this.options,this.isOpen=!1,this.ariaActivedescendant="",this.shouldFocusFirstOption=!1}areOptionsEqual(e,a){if(e.length!==a.length)return!1;let l=[...e].sort((e,a)=>e.label.localeCompare(a.label)||e.value.localeCompare(a.value)),o=[...a].sort((e,a)=>e.label.localeCompare(a.label)||e.value.localeCompare(a.value));return l.every((e,a)=>{let l=o[a];return e.label===l.label&&e.value===l.value})}optionsChangedHandler(e){this.areOptionsEqual(e,this.availableOptions)||(this.availableOptions=e)}componentDidLoad(){(0,o.b)("multi-select-dropdown","componentDidLoad"),this.options&&(this.availableOptions=this.options)}componentDidRender(){var e;(0,o.b)("multi-select-dropdown","componentDidRender"),this.isOpen&&this.shouldFocusFirstOption&&(this.ariaActivedescendant=null==(e=this.availableOptions[0])?void 0:e.value,this.focusOption(0),this.shouldFocusFirstOption=!1)}handleOutsideClick(e){!e.composedPath().includes(this.el)&&this.isOpen&&(this.isOpen=!1)}handleBookingFormSubmitted(e){let a=this.availableOptions.filter(e=>e.selected).map(e=>e.value);this.required&&(!a||a.length<=0)&&(this.error="Please select at least one option"),this.error&&e.preventDefault()}selectOption(e){this.availableOptions=this.availableOptions.map(a=>(a.value===e.value&&(a.selected=!e.selected,a.selected&&(this.error="")),a));let a=this.availableOptions.filter(e=>e.selected).map(e=>e.value);this.selectedOptionsChanged.emit({value:a,name:this.name})}toggleDropdown(){this.isOpen=!this.isOpen,this.isOpen?this.shouldFocusFirstOption=!0:this.ariaActivedescendant=""}handleSelectButtonKeyDown(e){switch(e.key){case"ArrowDown":case"Enter":e.preventDefault(),this.isOpen||this.toggleDropdown();break;case"Escape":this.isOpen=!1}}handleListboxKeydown(e){let a=this.availableOptions,l=a.findIndex(e=>e.value===this.ariaActivedescendant);switch(e.key){case"ArrowDown":case"Tab":if(e.shiftKey){e.preventDefault();let o=l-1>=0?l-1:a.length-1;this.ariaActivedescendant=a[o].value,this.focusOption(o)}else{e.preventDefault();let o=l+1<a.length?l+1:0;this.ariaActivedescendant=a[o].value,this.focusOption(o)}break;case"ArrowUp":{e.preventDefault();let o=l-1>=0?l-1:a.length-1;this.ariaActivedescendant=a[o].value,this.focusOption(o);break}case"Enter":e.preventDefault(),this.ariaActivedescendant&&this.selectOption(a[l]);break;case"Escape":this.isOpen=!1}}focusOption(e){var a;let l=this.availableOptions[e];if(!l)return;let o=l.value,s=null==(a=this.el.shadowRoot)?void 0:a.getElementById(o);s&&(s.focus(),s.scrollIntoView({behavior:"smooth",block:"nearest"}))}getSelectedOptions(){return this.availableOptions.filter(e=>e.selected)}renderOption(e){return(0,o.h)("li",{key:e.value,id:e.value,role:"option",tabindex:"0","aria-selected":e.selected?"true":"false",onClick:a=>{a.stopImmediatePropagation(),null!=e&&e.disabled||this.selectOption(e)},class:{selected:!!e.selected,disabled:!!e.disabled}},(0,o.h)("label",{htmlFor:e.value},(0,o.h)("input",{"aria-hidden":"true",id:e.value,type:"checkbox",checked:e.selected,disabled:!!(null!=e&&e.disabled)}),(0,o.h)("span",null,e.label)))}render(){var e,a;return(0,o.h)(o.H,{key:"d0b2dba51e53ebd85e26eb55798f868e78353c9b"},(0,o.h)("div",{key:"734ddac426729d6428ba7876b4fce2af038c8693",class:"dropdown",part:"msd_dropdown"},(0,o.h)("label",{key:"f59ac5c52d91b4f3c1250e2294517e543e04e2e3",class:"dropdown-label",part:"msd_dropdown-label"},(0,o.h)("p",{key:"35d11a9d8a07e6e6dc47a3be18687a2296ec3364"},(0,o.h)("span",{key:"6a5f3510cff852df33adea9dadf138f7bea6c5c8",class:"label"},this.label),this.required&&(0,o.h)("span",{class:"required"},"*")),(0,o.h)("slot",{key:"7e2547b4767fe67f752cae7ffd0ba5e776455c8c",name:"label-icon","aria-hidden":"true"})),(0,o.h)("button",{key:"24579f516264491ac90cf72d32f256107000c0b7",name:this.name,part:`msd_dropdown-button ${this.error?"msd_dropdown-button--error":""}`,class:{dropbtn:!0,open:this.isOpen,error:!!this.error},onClick:()=>this.toggleDropdown(),disabled:this.readOnly,title:this.readOnly?"read-only field":void 0,"aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-label":this.name,onKeyDown:e=>this.handleSelectButtonKeyDown(e)}
1,(0,o.h)("slot",{key:"e50db39a7e6d2e31605ce2377f99c36da5e847b5",name:"select-icon","aria-hidden":"true"}),(0,o.h)("span",{key:"a7f18b098f7bc573e91ef9e5b2348ff8de95c13a",class:"selected-option",part:"msd_dropdown-button-selected-label"},this.getSelectedOptions().length>1?this.multipleOptionsSelectedLabel:(null==(e=this.availableOptions.filter(e=>e.selected)[0])?void 0:e.label)??this.selectAtLeastOneOptionLabel??(null==(a=this.availableOptions[0])?void 0:a.label)),(0,o.h)("span",{key:"f2b00f9e55299d48161910627a7d6f5a646f5a44",class:this.isOpen?"open":"closed","aria-hidden":"true"},(0,o.h)("chevron-icon",{key:"6d1a184975ac00bbbe79632eda290590a2f2744d",width:"16",height:"16"}))),this.error?(0,o.h)("span",{class:"error",part:"msd_dropdown_error"},this.error):null,(0,o.h)("div",{key:"34cfb8ded6c549a7d8b0ce38c0093cc94a7aa2a3",class:"selected-options"},this.getSelectedOptions().map(e=>(0,o.h)("span",{class:"selected-option"},e.label,(0,o.h)("button",{disabled:this.readOnly||!!(null!=e&&e.disabled),key:e.label,onClick:()=>this.selectOption(e)},(0,o.h)("close-icon",null))))),this.isOpen?(0,o.h)("div",{class:"dropdown-content",part:"msd_dropdown-content"},(0,o.h)("ul",{tabindex:"-1",role:"listbox","aria-label":this.name,"aria-multiselectable":!0,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:e=>this.handleListboxKeydown(e)},this.availableOptions.map(e=>this.renderOption(e)))):null))}get el(){return(0,o.g)(this)}static get watchers(){return{options:["optionsChangedHandler"]}}};s.style=':host{display:block;width:inherit;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.dropdown{display:inline-block;width:100%;position:relative}.dropdown .dropdown-label{display:flex;align-items:center;gap:0.25rem;color:var(--nylas-base-800)}.dropdown .dropdown-label p{margin:0}.dropdown .dropdown-label span.required{color:var(--nylas-error);padding:0 0.25rem}.dropdown span.error{color:var(--nylas-error);font-size:14px}.dropbtn{width:inherit;height:48px;color:var(--nylas-base-900);padding:0.5rem;font-size:16px;cursor:pointer;display:flex;gap:0.5rem;justify-content:space-between;align-items:center;background:transparent;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.dropbtn.error{border:1px solid var(--nylas-error)}.dropbtn:hover,.dropbtn:active{border:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn:disabled{cursor:not-allowed;background:var(--nylas-base-100)}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);width:100%;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;top:72px;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.0509803922);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1019607843)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:var(--nylas-base-900);padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content ul li label{display:flex;align-items:center;gap:0.5rem}.dropdown-content ul li label input{margin:0}.dropdown-content ul li.disabled{cursor:not-allowed;opacity:0.5}.dropdown-content ul li.disabled label{cursor:not-allowed}.dropdown-content ul li.disabled label input{cursor:not-allowed}.selected-options{display:flex;flex-wrap:wrap;gap:0.5rem;padding:0.5rem 0;margin-top:0.25rem;background:var(--nylas-base-0)}
1.selected-options .selected-option{display:flex;align-items:center;gap:0.5rem;padding:4px 8px;border-radius:var(--nylas-border-radius-2x);background:var(--nylas-base-100);color:var(--nylas-base-800);font-size:16px;font-weight:500;line-height:1.5rem;letter-spacing:0.5px}.selected-options .selected-option button{background:transparent;border:none;cursor:pointer;padding:0}.selected-options .selected-option button:hover{color:var(--nylas-primary)}.selected-options .selected-option button:disabled{cursor:not-allowed;background:var(--nylas-base-100)}'}}]); 2//# sourceMappingURL=2645.900ea9661c02d6c7.js.map
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.