@fluid-topics/ft-filter 1.0.13 → 1.0.14

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.
@@ -16,6 +16,7 @@ export declare class FtFilter extends FtLitElement implements FtFilterProperties
16
16
  noValuesLabel: string;
17
17
  options: Array<FtFilterOptionProperties>;
18
18
  multivalued: boolean;
19
+ forceOneSelected: boolean;
19
20
  disabled: boolean;
20
21
  raiseSelectedOptions: boolean;
21
22
  displayedValuesLimit: number;
@@ -28,6 +28,7 @@ class FtFilter extends FtLitElement {
28
28
  this.noValuesLabel = "No values available";
29
29
  this.options = [];
30
30
  this.multivalued = false;
31
+ this.forceOneSelected = false;
31
32
  this.disabled = false;
32
33
  this.raiseSelectedOptions = false;
33
34
  this.displayedValuesLimit = 0;
@@ -133,6 +134,7 @@ class FtFilter extends FtLitElement {
133
134
  <ft-filter-level
134
135
  filterId="${this.id}"
135
136
  ?multivalued=${this.multivalued}
137
+ ?forceOneSelected=${this.forceOneSelected}
136
138
  ?disabled=${this.disabled}
137
139
  preventNavigation
138
140
  .options=${selectedOptions}
@@ -173,6 +175,7 @@ class FtFilter extends FtLitElement {
173
175
  .filter="${this.filter}"
174
176
  moreValuesButtonLabel="${this.moreValuesButtonLabel}"
175
177
  ?multivalued=${this.multivalued}
178
+ ?forceOneSelected=${this.forceOneSelected}
176
179
  ?disabled=${this.disabled || className !== "ft-filter--level-center"}
177
180
  ?hideSelectedOptions=${this.raiseSelectedOptions}
178
181
  .parent=${parent}
@@ -207,7 +210,7 @@ class FtFilter extends FtLitElement {
207
210
  var _a;
208
211
  e.stopPropagation();
209
212
  const option = this.flatOptions.find(o => o.value === e.detail.value);
210
- option.selected = !option.selected;
213
+ option.selected = this.forceOneSelected || !option.selected;
211
214
  const clearOption = (o) => {
212
215
  var _a;
213
216
  if (o !== option) {
@@ -285,6 +288,9 @@ __decorate([
285
288
  __decorate([
286
289
  property({ type: Boolean })
287
290
  ], FtFilter.prototype, "multivalued", void 0);
291
+ __decorate([
292
+ property({ type: Boolean })
293
+ ], FtFilter.prototype, "forceOneSelected", void 0);
288
294
  __decorate([
289
295
  property({ type: Boolean })
290
296
  ], FtFilter.prototype, "disabled", void 0);
@@ -1166,7 +1166,7 @@ const V=Symbol.for(""),W=t=>{if((null==t?void 0:t.r)===V)return null==t?void 0:t
1166
1166
  slot:not([name]) {
1167
1167
  display: none;
1168
1168
  }
1169
- `];var Se=function(t,i,e,o){for(var s,r=arguments.length,n=r<3?i:null===o?o=Object.getOwnPropertyDescriptor(i,e):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(i,e,n):s(i,e))||n);return r>3&&n&&Object.defineProperty(i,e,n),n};class Oe extends CustomEvent{constructor(t){super("change",{detail:t})}}class Ce extends i.FtLitElement{constructor(){super(...arguments),this.id="",this.label="",this.filterPlaceHolder="Filter {0}",this.clearButtonLabel="Clear",this.moreValuesButtonLabel="More",this.noValuesLabel="No values available",this.options=[],this.multivalued=!1,this.disabled=!1,this.raiseSelectedOptions=!1,this.displayedValuesLimit=0,this.hideClearButton=!1,this.lastLevelHasHiddenvalues=!1,this.withScroll=!1,this.filter="",this.displayedLevels=[],this.scrollResizeObserver=new ResizeObserver((()=>this.updateScroll())),this.levelsScrollDebouncer=new i.Debouncer(300),this.changeDebouncer=new i.Debouncer(10),this.lastDispatchedValues=[]}get flatOptions(){return i.flatDeep(this.options,(t=>{var i;return null!==(i=t.subOptions)&&void 0!==i?i:[]}))}get selectedValues(){return this.flatOptions.filter((t=>t.selected)).map((t=>t.value))}render(){const t=this.flatOptions.some((t=>t.selected)),i=this.withScroll||this.filter||this.lastLevelHasHiddenvalues,o=this.filterPlaceHolder.replace("{0}",this.label);return e.html`
1169
+ `];var Se=function(t,i,e,o){for(var s,r=arguments.length,n=r<3?i:null===o?o=Object.getOwnPropertyDescriptor(i,e):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(i,e,n):s(i,e))||n);return r>3&&n&&Object.defineProperty(i,e,n),n};class Oe extends CustomEvent{constructor(t){super("change",{detail:t})}}class Ce extends i.FtLitElement{constructor(){super(...arguments),this.id="",this.label="",this.filterPlaceHolder="Filter {0}",this.clearButtonLabel="Clear",this.moreValuesButtonLabel="More",this.noValuesLabel="No values available",this.options=[],this.multivalued=!1,this.forceOneSelected=!1,this.disabled=!1,this.raiseSelectedOptions=!1,this.displayedValuesLimit=0,this.hideClearButton=!1,this.lastLevelHasHiddenvalues=!1,this.withScroll=!1,this.filter="",this.displayedLevels=[],this.scrollResizeObserver=new ResizeObserver((()=>this.updateScroll())),this.levelsScrollDebouncer=new i.Debouncer(300),this.changeDebouncer=new i.Debouncer(10),this.lastDispatchedValues=[]}get flatOptions(){return i.flatDeep(this.options,(t=>{var i;return null!==(i=t.subOptions)&&void 0!==i?i:[]}))}get selectedValues(){return this.flatOptions.filter((t=>t.selected)).map((t=>t.value))}render(){const t=this.flatOptions.some((t=>t.selected)),i=this.withScroll||this.filter||this.lastLevelHasHiddenvalues,o=this.filterPlaceHolder.replace("{0}",this.label);return e.html`
1170
1170
  <div class="ft-filter--container ${this.disabled?"ft-filter--disabled":""}"
1171
1171
  part="container">
1172
1172
  ${this.label||t?e.html`
@@ -1204,6 +1204,7 @@ const V=Symbol.for(""),W=t=>{if((null==t?void 0:t.r)===V)return null==t?void 0:t
1204
1204
  <ft-filter-level
1205
1205
  filterId="${this.id}"
1206
1206
  ?multivalued=${this.multivalued}
1207
+ ?forceOneSelected=${this.forceOneSelected}
1207
1208
  ?disabled=${this.disabled}
1208
1209
  preventNavigation
1209
1210
  .options=${i}
@@ -1226,6 +1227,7 @@ const V=Symbol.for(""),W=t=>{if((null==t?void 0:t.r)===V)return null==t?void 0:t
1226
1227
  .filter="${this.filter}"
1227
1228
  moreValuesButtonLabel="${this.moreValuesButtonLabel}"
1228
1229
  ?multivalued=${this.multivalued}
1230
+ ?forceOneSelected=${this.forceOneSelected}
1229
1231
  ?disabled=${this.disabled||"ft-filter--level-center"!==t}
1230
1232
  ?hideSelectedOptions=${this.raiseSelectedOptions}
1231
1233
  .parent=${o}
@@ -1238,6 +1240,6 @@ const V=Symbol.for(""),W=t=>{if((null==t?void 0:t.r)===V)return null==t?void 0:t
1238
1240
  .exportpartsPrefixes=${["values","available-values"]}
1239
1241
  noValuesLabel="${this.noValuesLabel}"
1240
1242
  ></ft-filter-level>
1241
- `}goBack(t){this.slideOut=t.detail.value}onDisplayLevel(t){this.displayedLevels.push(t.detail.value),this.slideIn=t.detail.value}clear(){if(this.flatOptions.forEach((t=>t.selected=!1)),this.displayedLevels.length>0){let t=this.displayedLevels[this.displayedLevels.length-1];this.displayedLevels=[t],this.slideOut=t}this.optionsChanged()}onChange(t){var i;t.stopPropagation();const e=this.flatOptions.find((i=>i.value===t.detail.value));e.selected=!e.selected;const o=t=>{var i;t!==e&&(t.selected=!1),null===(i=t.subOptions)||void 0===i||i.forEach(o)};this.multivalued?null===(i=e.subOptions)||void 0===i||i.forEach(o):this.options.forEach(o),this.optionsChanged()}optionsChanged(){this.changeDebouncer.run((()=>{var t;this.sendEventIfValuesChanged(),this.requestUpdate(),null===(t=this.levels)||void 0===t||t.forEach((t=>t.requestUpdate()))}))}sendEventIfValuesChanged(){const t=this.selectedValues;i.deepEqual(this.lastDispatchedValues,t)||(this.dispatchEvent(new Oe(t)),this.lastDispatchedValues=t)}updateOptionsFromSlot(t){t.stopPropagation(),this.options=this.slotElement.assignedElements().map((t=>t)),this.optionsChanged()}onFilterChange(){var t,i;this.filter=null!==(i=null===(t=this.filterInput)||void 0===t?void 0:t.value)&&void 0!==i?i:""}updateScroll(){this.valuesContainer&&(this.withScroll=this.valuesContainer.scrollHeight>this.valuesContainer.clientHeight)}}Ce.elementDefinitions={"ft-button":Gi,"ft-filter-level":xe,"ft-snap-scroll":ke,"ft-typography":li},Ce.styles=ze,Se([o.property({type:String})],Ce.prototype,"id",void 0),Se([o.property({type:String})],Ce.prototype,"label",void 0),Se([o.property({type:String})],Ce.prototype,"filterPlaceHolder",void 0),Se([o.property({type:String})],Ce.prototype,"clearButtonLabel",void 0),Se([o.property({type:String})],Ce.prototype,"moreValuesButtonLabel",void 0),Se([o.property({type:String})],Ce.prototype,"noValuesLabel",void 0),Se([i.jsonProperty([])],Ce.prototype,"options",void 0),Se([o.property({type:Boolean})],Ce.prototype,"multivalued",void 0),Se([o.property({type:Boolean})],Ce.prototype,"disabled",void 0),Se([o.property({type:Boolean})],Ce.prototype,"raiseSelectedOptions",void 0),Se([o.property({type:Number})],Ce.prototype,"displayedValuesLimit",void 0),Se([o.property({type:Boolean})],Ce.prototype,"hideClearButton",void 0),Se([o.query(".ft-filter--slot")],Ce.prototype,"slotElement",void 0),Se([o.query(".ft-filter--container")],Ce.prototype,"container",void 0),Se([o.query(".ft-filter--values")],Ce.prototype,"valuesContainer",void 0),Se([o.query(".ft-filter--levels")],Ce.prototype,"levelsContainer",void 0),Se([o.state()],Ce.prototype,"lastLevelHasHiddenvalues",void 0),Se([o.query(".ft-filter--filter input")],Ce.prototype,"filterInput",void 0),Se([o.queryAll(".ft-filter--levels ft-filter-level")],Ce.prototype,"levels",void 0),Se([o.state()],Ce.prototype,"withScroll",void 0),Se([o.state()],Ce.prototype,"filter",void 0),Se([o.state()],Ce.prototype,"slideIn",void 0),Se([o.state()],Ce.prototype,"slideOut",void 0);var Be=function(t,i,e,o){for(var s,r=arguments.length,n=r<3?i:null===o?o=Object.getOwnPropertyDescriptor(i,e):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(i,e,n):s(i,e))||n);return r>3&&n&&Object.defineProperty(i,e,n),n};class je extends i.FtLitElement{constructor(){super(...arguments),this.label="",this.value=null,this.selected=!1,this.subOptions=[]}render(){return e.html`
1243
+ `}goBack(t){this.slideOut=t.detail.value}onDisplayLevel(t){this.displayedLevels.push(t.detail.value),this.slideIn=t.detail.value}clear(){if(this.flatOptions.forEach((t=>t.selected=!1)),this.displayedLevels.length>0){let t=this.displayedLevels[this.displayedLevels.length-1];this.displayedLevels=[t],this.slideOut=t}this.optionsChanged()}onChange(t){var i;t.stopPropagation();const e=this.flatOptions.find((i=>i.value===t.detail.value));e.selected=this.forceOneSelected||!e.selected;const o=t=>{var i;t!==e&&(t.selected=!1),null===(i=t.subOptions)||void 0===i||i.forEach(o)};this.multivalued?null===(i=e.subOptions)||void 0===i||i.forEach(o):this.options.forEach(o),this.optionsChanged()}optionsChanged(){this.changeDebouncer.run((()=>{var t;this.sendEventIfValuesChanged(),this.requestUpdate(),null===(t=this.levels)||void 0===t||t.forEach((t=>t.requestUpdate()))}))}sendEventIfValuesChanged(){const t=this.selectedValues;i.deepEqual(this.lastDispatchedValues,t)||(this.dispatchEvent(new Oe(t)),this.lastDispatchedValues=t)}updateOptionsFromSlot(t){t.stopPropagation(),this.options=this.slotElement.assignedElements().map((t=>t)),this.optionsChanged()}onFilterChange(){var t,i;this.filter=null!==(i=null===(t=this.filterInput)||void 0===t?void 0:t.value)&&void 0!==i?i:""}updateScroll(){this.valuesContainer&&(this.withScroll=this.valuesContainer.scrollHeight>this.valuesContainer.clientHeight)}}Ce.elementDefinitions={"ft-button":Gi,"ft-filter-level":xe,"ft-snap-scroll":ke,"ft-typography":li},Ce.styles=ze,Se([o.property({type:String})],Ce.prototype,"id",void 0),Se([o.property({type:String})],Ce.prototype,"label",void 0),Se([o.property({type:String})],Ce.prototype,"filterPlaceHolder",void 0),Se([o.property({type:String})],Ce.prototype,"clearButtonLabel",void 0),Se([o.property({type:String})],Ce.prototype,"moreValuesButtonLabel",void 0),Se([o.property({type:String})],Ce.prototype,"noValuesLabel",void 0),Se([i.jsonProperty([])],Ce.prototype,"options",void 0),Se([o.property({type:Boolean})],Ce.prototype,"multivalued",void 0),Se([o.property({type:Boolean})],Ce.prototype,"forceOneSelected",void 0),Se([o.property({type:Boolean})],Ce.prototype,"disabled",void 0),Se([o.property({type:Boolean})],Ce.prototype,"raiseSelectedOptions",void 0),Se([o.property({type:Number})],Ce.prototype,"displayedValuesLimit",void 0),Se([o.property({type:Boolean})],Ce.prototype,"hideClearButton",void 0),Se([o.query(".ft-filter--slot")],Ce.prototype,"slotElement",void 0),Se([o.query(".ft-filter--container")],Ce.prototype,"container",void 0),Se([o.query(".ft-filter--values")],Ce.prototype,"valuesContainer",void 0),Se([o.query(".ft-filter--levels")],Ce.prototype,"levelsContainer",void 0),Se([o.state()],Ce.prototype,"lastLevelHasHiddenvalues",void 0),Se([o.query(".ft-filter--filter input")],Ce.prototype,"filterInput",void 0),Se([o.queryAll(".ft-filter--levels ft-filter-level")],Ce.prototype,"levels",void 0),Se([o.state()],Ce.prototype,"withScroll",void 0),Se([o.state()],Ce.prototype,"filter",void 0),Se([o.state()],Ce.prototype,"slideIn",void 0),Se([o.state()],Ce.prototype,"slideOut",void 0);var Be=function(t,i,e,o){for(var s,r=arguments.length,n=r<3?i:null===o?o=Object.getOwnPropertyDescriptor(i,e):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(i,e,n):s(i,e))||n);return r>3&&n&&Object.defineProperty(i,e,n),n};class je extends i.FtLitElement{constructor(){super(...arguments),this.label="",this.value=null,this.selected=!1,this.subOptions=[]}render(){return e.html`
1242
1244
  <slot class="ft-filter-option--slot" @slotchange=${this.updateSubOptionsFromSlot}></slot>
1243
1245
  `}updateSubOptionsFromSlot(t){t.stopPropagation(),this.subOptions=this.slotElement.assignedElements().map((t=>t))}updated(t){super.updated(t),this.dispatchEvent(new CustomEvent("option-change",{detail:this,bubbles:!0}))}}je.elementDefinitions={},Be([o.property({type:String})],je.prototype,"label",void 0),Be([o.property({type:Object,converter:t=>t})],je.prototype,"value",void 0),Be([o.property({type:Boolean,reflect:!0})],je.prototype,"selected",void 0),Be([o.property({type:Object})],je.prototype,"subOptions",void 0),Be([i.jsonProperty({})],je.prototype,"renderOption",void 0),Be([o.query(".ft-filter-option--slot")],je.prototype,"slotElement",void 0),i.customElement("ft-filter")(Ce),i.customElement("ft-filter-option")(je),t.FtFilter=Ce,t.FtFilterChangeEvent=Oe,t.FtFilterCssVariables=we,t.FtFilterLevelCssVariables=ue,t.FtFilterOption=je,t.levelStyles=ve,t.styles=ze}({},ftGlobals.wcUtils,ftGlobals.lit,ftGlobals.litDecorators,ftGlobals.litRepeat,ftGlobals.litClassMap,ftGlobals.litUnsafeHTML);
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * @see https://github.com/webcomponents/polyfills/tree/master/packages/scoped-custom-element-registry
16
16
  */
17
- if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,i=window.customElements.get,o=window.customElements,s=new WeakMap,r=new WeakMap,n=new WeakMap,l=new WeakMap;let a;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,s){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(s))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const l=s.prototype.attributeChangedCallback,a=new Set(s.observedAttributes||[]);d(s,a,l);const h={elementClass:s,connectedCallback:s.prototype.connectedCallback,disconnectedCallback:s.prototype.disconnectedCallback,adoptedCallback:s.prototype.adoptedCallback,attributeChangedCallback:l,formAssociated:s.formAssociated,formAssociatedCallback:s.prototype.formAssociatedCallback,formDisabledCallback:s.prototype.formDisabledCallback,formResetCallback:s.prototype.formResetCallback,formStateRestoreCallback:s.prototype.formStateRestoreCallback,observedAttributes:a};this._definitionsByTag.set(t,h),this._definitionsByClass.set(s,h);let c=i.call(o,t);c||(c=p(t),e.call(o,t,c)),this===window.customElements&&(n.set(s,h),h.standInClass=c);const f=this._awaitingUpgrade.get(t);if(f){this._awaitingUpgrade.delete(t);for(const t of f)r.delete(t),u(t,h,!0)}const v=this._whenDefinedPromises.get(t);return void 0!==v&&(v.resolve(s),this._whenDefinedPromises.delete(t)),s}upgrade(){b.push(this),o.upgrade.apply(o,arguments),b.pop()}get(t){const e=this._definitionsByTag.get(t);return e?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const e=this._getDefinition(t);if(void 0!==e)return Promise.resolve(e.elementClass);let i=this._whenDefinedPromises.get(t);return void 0===i&&(i={},i.promise=new Promise((t=>i.resolve=t)),this._whenDefinedPromises.set(t,i)),i.promise}_upgradeWhenDefined(t,e,i){let o=this._awaitingUpgrade.get(e);o||this._awaitingUpgrade.set(e,o=new Set),i?o.add(t):o.delete(t)}},window.HTMLElement=function(){let e=a;if(e)return a=void 0,e;const i=n.get(this.constructor);if(!i)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return e=Reflect.construct(t,[],i.standInClass),Object.setPrototypeOf(e,this.constructor.prototype),s.set(e,i),e},window.HTMLElement.prototype=t.prototype;const h=t=>t===document||t instanceof ShadowRoot,c=t=>{let e=t.getRootNode();if(!h(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),h(e)||(e=l.get(e)?.getRootNode()||document)}return e.customElements},p=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const o=c(i)||window.customElements,s=o._getDefinition(e);return s?u(i,s):r.set(i,o),i}connectedCallback(){const t=s.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):r.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=s.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):r.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){const t=s.get(this);t?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=s.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=s.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=s.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=s.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},d=(t,e,i)=>{if(0===e.size||void 0===i)return;const o=t.prototype.setAttribute;o&&(t.prototype.setAttribute=function(t,s){const r=t.toLowerCase();if(e.has(r)){const t=this.getAttribute(r);o.call(this,r,s),i.call(this,r,t,s)}else o.call(this,r,s)});const s=t.prototype.removeAttribute;s&&(t.prototype.removeAttribute=function(t){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);s.call(this,o),i.call(this,o,t,null)}else s.call(this,o)})},f=e=>{const i=Object.getPrototypeOf(e);if(i!==window.HTMLElement)return i===t||"HTMLElement"===i?.prototype?.constructor?.name?Object.setPrototypeOf(e,window.HTMLElement):f(i)},u=(t,e,i=!1)=>{Object.setPrototypeOf(t,e.elementClass.prototype),s.set(t,e),a=t;try{new e.elementClass}catch(t){f(e.elementClass),new e.elementClass}e.observedAttributes.forEach((i=>{t.hasAttribute(i)&&e.attributeChangedCallback.call(t,i,null,t.getAttribute(i))})),i&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},v=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const e=v.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};let b=[document];const x=(t,e,i=void 0)=>{const o=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=o.apply(i||this,arguments);return void 0!==t&&l.set(t,this),b.pop(),t}};x(ShadowRoot,"createElement",document),x(ShadowRoot,"importNode",document),x(Element,"insertAdjacentHTML");const y=(t,e)=>{const i=Object.getOwnPropertyDescriptor(t.prototype,e);Object.defineProperty(t.prototype,e,{...i,set(t){b.push(this),i.set.call(this,t),b.pop()}})};if(y(Element,"innerHTML"),y(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,e=HTMLElement.prototype.attachInternals,i=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...i){const o=e.call(this,...i);return t.set(o,this),o},i.forEach((e=>{const i=window.ElementInternals.prototype,o=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==s.get(i).formAssociated)throw new DOMException(`Failed to execute ${o} on 'ElementInternals': The target element is not a form-associated custom element.`);o?.call(this,...e)}}));class o extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class r{constructor(t){const e=new Map;t.forEach(((t,i)=>{const o=t.getAttribute("name"),s=e.get(o)||[];this[+i]=t,s.push(t),e.set(o,s)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new o(t))}))}namedItem(t){return this[t]}}const n=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=n.get.call(this,[]),e=[];for(const i of t){const t=s.get(i);t&&!0!==t.formAssociated||e.push(i)}return new r(e)}})}}try{window.customElements.define("custom-element",null)}catch(Di){const t=window.customElements.define;window.customElements.define=(e,i,o)=>{try{t.bind(window.customElements)(e,i,o)}catch(t){console.info(e,i,o,t)}}}class e{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){return this.callbacks=[t],this.debounce(e)}queue(t,e){return this.callbacks.push(t),this.debounce(e)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,e)=>{this.resolvePromise=t,this.rejectPromise=e}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,e;const i=[...this.callbacks];this.callbacks=[];const o=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,s=null!==(e=this.resolvePromise)&&void 0!==e?e:()=>null;this.clearPromise();for(let t of i)try{await t()}catch(t){return void o(t)}s(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
17
+ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,e=window.customElements.define,i=window.customElements.get,o=window.customElements,s=new WeakMap,r=new WeakMap,n=new WeakMap,l=new WeakMap;let a;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,s){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(s))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const l=s.prototype.attributeChangedCallback,a=new Set(s.observedAttributes||[]);d(s,a,l);const h={elementClass:s,connectedCallback:s.prototype.connectedCallback,disconnectedCallback:s.prototype.disconnectedCallback,adoptedCallback:s.prototype.adoptedCallback,attributeChangedCallback:l,formAssociated:s.formAssociated,formAssociatedCallback:s.prototype.formAssociatedCallback,formDisabledCallback:s.prototype.formDisabledCallback,formResetCallback:s.prototype.formResetCallback,formStateRestoreCallback:s.prototype.formStateRestoreCallback,observedAttributes:a};this._definitionsByTag.set(t,h),this._definitionsByClass.set(s,h);let c=i.call(o,t);c||(c=p(t),e.call(o,t,c)),this===window.customElements&&(n.set(s,h),h.standInClass=c);const f=this._awaitingUpgrade.get(t);if(f){this._awaitingUpgrade.delete(t);for(const t of f)r.delete(t),u(t,h,!0)}const v=this._whenDefinedPromises.get(t);return void 0!==v&&(v.resolve(s),this._whenDefinedPromises.delete(t)),s}upgrade(){b.push(this),o.upgrade.apply(o,arguments),b.pop()}get(t){const e=this._definitionsByTag.get(t);return e?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const e=this._getDefinition(t);if(void 0!==e)return Promise.resolve(e.elementClass);let i=this._whenDefinedPromises.get(t);return void 0===i&&(i={},i.promise=new Promise((t=>i.resolve=t)),this._whenDefinedPromises.set(t,i)),i.promise}_upgradeWhenDefined(t,e,i){let o=this._awaitingUpgrade.get(e);o||this._awaitingUpgrade.set(e,o=new Set),i?o.add(t):o.delete(t)}},window.HTMLElement=function(){let e=a;if(e)return a=void 0,e;const i=n.get(this.constructor);if(!i)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return e=Reflect.construct(t,[],i.standInClass),Object.setPrototypeOf(e,this.constructor.prototype),s.set(e,i),e},window.HTMLElement.prototype=t.prototype;const h=t=>t===document||t instanceof ShadowRoot,c=t=>{let e=t.getRootNode();if(!h(e)){const t=b[b.length-1];if(t instanceof CustomElementRegistry)return t;e=t.getRootNode(),h(e)||(e=l.get(e)?.getRootNode()||document)}return e.customElements},p=e=>class{static get formAssociated(){return!0}constructor(){const i=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(i,HTMLElement.prototype);const o=c(i)||window.customElements,s=o._getDefinition(e);return s?u(i,s):r.set(i,o),i}connectedCallback(){const t=s.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):r.get(this)._upgradeWhenDefined(this,e,!0)}disconnectedCallback(){const t=s.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):r.get(this)._upgradeWhenDefined(this,e,!1)}adoptedCallback(){const t=s.get(this);t?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=s.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=s.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=s.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=s.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},d=(t,e,i)=>{if(0===e.size||void 0===i)return;const o=t.prototype.setAttribute;o&&(t.prototype.setAttribute=function(t,s){const r=t.toLowerCase();if(e.has(r)){const t=this.getAttribute(r);o.call(this,r,s),i.call(this,r,t,s)}else o.call(this,r,s)});const s=t.prototype.removeAttribute;s&&(t.prototype.removeAttribute=function(t){const o=t.toLowerCase();if(e.has(o)){const t=this.getAttribute(o);s.call(this,o),i.call(this,o,t,null)}else s.call(this,o)})},f=e=>{const i=Object.getPrototypeOf(e);if(i!==window.HTMLElement)return i===t||"HTMLElement"===i?.prototype?.constructor?.name?Object.setPrototypeOf(e,window.HTMLElement):f(i)},u=(t,e,i=!1)=>{Object.setPrototypeOf(t,e.elementClass.prototype),s.set(t,e),a=t;try{new e.elementClass}catch(t){f(e.elementClass),new e.elementClass}e.observedAttributes.forEach((i=>{t.hasAttribute(i)&&e.attributeChangedCallback.call(t,i,null,t.getAttribute(i))})),i&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},v=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const e=v.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};let b=[document];const x=(t,e,i=void 0)=>{const o=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){b.push(this);const t=o.apply(i||this,arguments);return void 0!==t&&l.set(t,this),b.pop(),t}};x(ShadowRoot,"createElement",document),x(ShadowRoot,"importNode",document),x(Element,"insertAdjacentHTML");const y=(t,e)=>{const i=Object.getOwnPropertyDescriptor(t.prototype,e);Object.defineProperty(t.prototype,e,{...i,set(t){b.push(this),i.set.call(this,t),b.pop()}})};if(y(Element,"innerHTML"),y(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,e=HTMLElement.prototype.attachInternals,i=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...i){const o=e.call(this,...i);return t.set(o,this),o},i.forEach((e=>{const i=window.ElementInternals.prototype,o=i[e];i[e]=function(...e){const i=t.get(this);if(!0!==s.get(i).formAssociated)throw new DOMException(`Failed to execute ${o} on 'ElementInternals': The target element is not a form-associated custom element.`);o?.call(this,...e)}}));class o extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class r{constructor(t){const e=new Map;t.forEach(((t,i)=>{const o=t.getAttribute("name"),s=e.get(o)||[];this[+i]=t,s.push(t),e.set(o,s)})),this.length=t.length,e.forEach(((t,e)=>{t&&(1===t.length?this[e]=t[0]:this[e]=new o(t))}))}namedItem(t){return this[t]}}const n=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=n.get.call(this,[]),e=[];for(const i of t){const t=s.get(i);t&&!0!==t.formAssociated||e.push(i)}return new r(e)}})}}try{window.customElements.define("custom-element",null)}catch(Di){const t=window.customElements.define;window.customElements.define=(e,i,o)=>{if(null!==i)try{t.bind(window.customElements)(e,i,o)}catch(t){console.info(e,i,o,t)}}}class e{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,e){return this.callbacks=[t],this.debounce(e)}queue(t,e){return this.callbacks.push(t),this.debounce(e)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,e)=>{this.resolvePromise=t,this.rejectPromise=e}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,e;const i=[...this.callbacks];this.callbacks=[];const o=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,s=null!==(e=this.resolvePromise)&&void 0!==e?e:()=>null;this.clearPromise();for(let t of i)try{await t()}catch(t){return void o(t)}s(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
18
18
  /**
19
19
  * @license
20
20
  * Copyright 2017 Google LLC
@@ -1287,7 +1287,7 @@ class Di extends si{constructor(t){if(super(t),this.et=et,t.type!==ii)throw Erro
1287
1287
  slot:not([name]) {
1288
1288
  display: none;
1289
1289
  }
1290
- `];var Fo=function(t,e,i,o){for(var s,r=arguments.length,n=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(e,i,n):s(e,i))||n);return r>3&&n&&Object.defineProperty(e,i,n),n};class Uo extends CustomEvent{constructor(t){super("change",{detail:t})}}class Lo extends zt{constructor(){super(...arguments),this.id="",this.label="",this.filterPlaceHolder="Filter {0}",this.clearButtonLabel="Clear",this.moreValuesButtonLabel="More",this.noValuesLabel="No values available",this.options=[],this.multivalued=!1,this.disabled=!1,this.raiseSelectedOptions=!1,this.displayedValuesLimit=0,this.hideClearButton=!1,this.lastLevelHasHiddenvalues=!1,this.withScroll=!1,this.filter="",this.displayedLevels=[],this.scrollResizeObserver=new ResizeObserver((()=>this.updateScroll())),this.levelsScrollDebouncer=new e(300),this.changeDebouncer=new e(10),this.lastDispatchedValues=[]}get flatOptions(){return c(this.options,(t=>{var e;return null!==(e=t.subOptions)&&void 0!==e?e:[]}))}get selectedValues(){return this.flatOptions.filter((t=>t.selected)).map((t=>t.value))}render(){const t=this.flatOptions.some((t=>t.selected)),e=this.withScroll||this.filter||this.lastLevelHasHiddenvalues,i=this.filterPlaceHolder.replace("{0}",this.label);return Q`
1290
+ `];var Fo=function(t,e,i,o){for(var s,r=arguments.length,n=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(e,i,n):s(e,i))||n);return r>3&&n&&Object.defineProperty(e,i,n),n};class Uo extends CustomEvent{constructor(t){super("change",{detail:t})}}class Lo extends zt{constructor(){super(...arguments),this.id="",this.label="",this.filterPlaceHolder="Filter {0}",this.clearButtonLabel="Clear",this.moreValuesButtonLabel="More",this.noValuesLabel="No values available",this.options=[],this.multivalued=!1,this.forceOneSelected=!1,this.disabled=!1,this.raiseSelectedOptions=!1,this.displayedValuesLimit=0,this.hideClearButton=!1,this.lastLevelHasHiddenvalues=!1,this.withScroll=!1,this.filter="",this.displayedLevels=[],this.scrollResizeObserver=new ResizeObserver((()=>this.updateScroll())),this.levelsScrollDebouncer=new e(300),this.changeDebouncer=new e(10),this.lastDispatchedValues=[]}get flatOptions(){return c(this.options,(t=>{var e;return null!==(e=t.subOptions)&&void 0!==e?e:[]}))}get selectedValues(){return this.flatOptions.filter((t=>t.selected)).map((t=>t.value))}render(){const t=this.flatOptions.some((t=>t.selected)),e=this.withScroll||this.filter||this.lastLevelHasHiddenvalues,i=this.filterPlaceHolder.replace("{0}",this.label);return Q`
1291
1291
  <div class="ft-filter--container ${this.disabled?"ft-filter--disabled":""}"
1292
1292
  part="container">
1293
1293
  ${this.label||t?Q`
@@ -1325,6 +1325,7 @@ class Di extends si{constructor(t){if(super(t),this.et=et,t.type!==ii)throw Erro
1325
1325
  <ft-filter-level
1326
1326
  filterId="${this.id}"
1327
1327
  ?multivalued=${this.multivalued}
1328
+ ?forceOneSelected=${this.forceOneSelected}
1328
1329
  ?disabled=${this.disabled}
1329
1330
  preventNavigation
1330
1331
  .options=${e}
@@ -1347,6 +1348,7 @@ class Di extends si{constructor(t){if(super(t),this.et=et,t.type!==ii)throw Erro
1347
1348
  .filter="${this.filter}"
1348
1349
  moreValuesButtonLabel="${this.moreValuesButtonLabel}"
1349
1350
  ?multivalued=${this.multivalued}
1351
+ ?forceOneSelected=${this.forceOneSelected}
1350
1352
  ?disabled=${this.disabled||"ft-filter--level-center"!==t}
1351
1353
  ?hideSelectedOptions=${this.raiseSelectedOptions}
1352
1354
  .parent=${i}
@@ -1359,6 +1361,6 @@ class Di extends si{constructor(t){if(super(t),this.et=et,t.type!==ii)throw Erro
1359
1361
  .exportpartsPrefixes=${["values","available-values"]}
1360
1362
  noValuesLabel="${this.noValuesLabel}"
1361
1363
  ></ft-filter-level>
1362
- `}goBack(t){this.slideOut=t.detail.value}onDisplayLevel(t){this.displayedLevels.push(t.detail.value),this.slideIn=t.detail.value}clear(){if(this.flatOptions.forEach((t=>t.selected=!1)),this.displayedLevels.length>0){let t=this.displayedLevels[this.displayedLevels.length-1];this.displayedLevels=[t],this.slideOut=t}this.optionsChanged()}onChange(t){var e;t.stopPropagation();const i=this.flatOptions.find((e=>e.value===t.detail.value));i.selected=!i.selected;const o=t=>{var e;t!==i&&(t.selected=!1),null===(e=t.subOptions)||void 0===e||e.forEach(o)};this.multivalued?null===(e=i.subOptions)||void 0===e||e.forEach(o):this.options.forEach(o),this.optionsChanged()}optionsChanged(){this.changeDebouncer.run((()=>{var t;this.sendEventIfValuesChanged(),this.requestUpdate(),null===(t=this.levels)||void 0===t||t.forEach((t=>t.requestUpdate()))}))}sendEventIfValuesChanged(){const t=this.selectedValues;p(this.lastDispatchedValues,t)||(this.dispatchEvent(new Uo(t)),this.lastDispatchedValues=t)}updateOptionsFromSlot(t){t.stopPropagation(),this.options=this.slotElement.assignedElements().map((t=>t)),this.optionsChanged()}onFilterChange(){var t,e;this.filter=null!==(e=null===(t=this.filterInput)||void 0===t?void 0:t.value)&&void 0!==e?e:""}updateScroll(){this.valuesContainer&&(this.withScroll=this.valuesContainer.scrollHeight>this.valuesContainer.clientHeight)}}Lo.elementDefinitions={"ft-button":io,"ft-filter-level":Co,"ft-snap-scroll":Mo,"ft-typography":ti},Lo.styles=Bo,Fo([o({type:String})],Lo.prototype,"id",void 0),Fo([o({type:String})],Lo.prototype,"label",void 0),Fo([o({type:String})],Lo.prototype,"filterPlaceHolder",void 0),Fo([o({type:String})],Lo.prototype,"clearButtonLabel",void 0),Fo([o({type:String})],Lo.prototype,"moreValuesButtonLabel",void 0),Fo([o({type:String})],Lo.prototype,"noValuesLabel",void 0),Fo([f([])],Lo.prototype,"options",void 0),Fo([o({type:Boolean})],Lo.prototype,"multivalued",void 0),Fo([o({type:Boolean})],Lo.prototype,"disabled",void 0),Fo([o({type:Boolean})],Lo.prototype,"raiseSelectedOptions",void 0),Fo([o({type:Number})],Lo.prototype,"displayedValuesLimit",void 0),Fo([o({type:Boolean})],Lo.prototype,"hideClearButton",void 0),Fo([n(".ft-filter--slot")],Lo.prototype,"slotElement",void 0),Fo([n(".ft-filter--container")],Lo.prototype,"container",void 0),Fo([n(".ft-filter--values")],Lo.prototype,"valuesContainer",void 0),Fo([n(".ft-filter--levels")],Lo.prototype,"levelsContainer",void 0),Fo([s()],Lo.prototype,"lastLevelHasHiddenvalues",void 0),Fo([n(".ft-filter--filter input")],Lo.prototype,"filterInput",void 0),Fo([function(t){return r({descriptor:e=>({get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelectorAll(t))&&void 0!==i?i:[]},enumerable:!0,configurable:!0})})}(".ft-filter--levels ft-filter-level")],Lo.prototype,"levels",void 0),Fo([s()],Lo.prototype,"withScroll",void 0),Fo([s()],Lo.prototype,"filter",void 0),Fo([s()],Lo.prototype,"slideIn",void 0),Fo([s()],Lo.prototype,"slideOut",void 0);var Do=function(t,e,i,o){for(var s,r=arguments.length,n=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(e,i,n):s(e,i))||n);return r>3&&n&&Object.defineProperty(e,i,n),n};class To extends zt{constructor(){super(...arguments),this.label="",this.value=null,this.selected=!1,this.subOptions=[]}render(){return Q`
1364
+ `}goBack(t){this.slideOut=t.detail.value}onDisplayLevel(t){this.displayedLevels.push(t.detail.value),this.slideIn=t.detail.value}clear(){if(this.flatOptions.forEach((t=>t.selected=!1)),this.displayedLevels.length>0){let t=this.displayedLevels[this.displayedLevels.length-1];this.displayedLevels=[t],this.slideOut=t}this.optionsChanged()}onChange(t){var e;t.stopPropagation();const i=this.flatOptions.find((e=>e.value===t.detail.value));i.selected=this.forceOneSelected||!i.selected;const o=t=>{var e;t!==i&&(t.selected=!1),null===(e=t.subOptions)||void 0===e||e.forEach(o)};this.multivalued?null===(e=i.subOptions)||void 0===e||e.forEach(o):this.options.forEach(o),this.optionsChanged()}optionsChanged(){this.changeDebouncer.run((()=>{var t;this.sendEventIfValuesChanged(),this.requestUpdate(),null===(t=this.levels)||void 0===t||t.forEach((t=>t.requestUpdate()))}))}sendEventIfValuesChanged(){const t=this.selectedValues;p(this.lastDispatchedValues,t)||(this.dispatchEvent(new Uo(t)),this.lastDispatchedValues=t)}updateOptionsFromSlot(t){t.stopPropagation(),this.options=this.slotElement.assignedElements().map((t=>t)),this.optionsChanged()}onFilterChange(){var t,e;this.filter=null!==(e=null===(t=this.filterInput)||void 0===t?void 0:t.value)&&void 0!==e?e:""}updateScroll(){this.valuesContainer&&(this.withScroll=this.valuesContainer.scrollHeight>this.valuesContainer.clientHeight)}}Lo.elementDefinitions={"ft-button":io,"ft-filter-level":Co,"ft-snap-scroll":Mo,"ft-typography":ti},Lo.styles=Bo,Fo([o({type:String})],Lo.prototype,"id",void 0),Fo([o({type:String})],Lo.prototype,"label",void 0),Fo([o({type:String})],Lo.prototype,"filterPlaceHolder",void 0),Fo([o({type:String})],Lo.prototype,"clearButtonLabel",void 0),Fo([o({type:String})],Lo.prototype,"moreValuesButtonLabel",void 0),Fo([o({type:String})],Lo.prototype,"noValuesLabel",void 0),Fo([f([])],Lo.prototype,"options",void 0),Fo([o({type:Boolean})],Lo.prototype,"multivalued",void 0),Fo([o({type:Boolean})],Lo.prototype,"forceOneSelected",void 0),Fo([o({type:Boolean})],Lo.prototype,"disabled",void 0),Fo([o({type:Boolean})],Lo.prototype,"raiseSelectedOptions",void 0),Fo([o({type:Number})],Lo.prototype,"displayedValuesLimit",void 0),Fo([o({type:Boolean})],Lo.prototype,"hideClearButton",void 0),Fo([n(".ft-filter--slot")],Lo.prototype,"slotElement",void 0),Fo([n(".ft-filter--container")],Lo.prototype,"container",void 0),Fo([n(".ft-filter--values")],Lo.prototype,"valuesContainer",void 0),Fo([n(".ft-filter--levels")],Lo.prototype,"levelsContainer",void 0),Fo([s()],Lo.prototype,"lastLevelHasHiddenvalues",void 0),Fo([n(".ft-filter--filter input")],Lo.prototype,"filterInput",void 0),Fo([function(t){return r({descriptor:e=>({get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelectorAll(t))&&void 0!==i?i:[]},enumerable:!0,configurable:!0})})}(".ft-filter--levels ft-filter-level")],Lo.prototype,"levels",void 0),Fo([s()],Lo.prototype,"withScroll",void 0),Fo([s()],Lo.prototype,"filter",void 0),Fo([s()],Lo.prototype,"slideIn",void 0),Fo([s()],Lo.prototype,"slideOut",void 0);var Do=function(t,e,i,o){for(var s,r=arguments.length,n=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(e,i,n):s(e,i))||n);return r>3&&n&&Object.defineProperty(e,i,n),n};class To extends zt{constructor(){super(...arguments),this.label="",this.value=null,this.selected=!1,this.subOptions=[]}render(){return Q`
1363
1365
  <slot class="ft-filter-option--slot" @slotchange=${this.updateSubOptionsFromSlot}></slot>
1364
1366
  `}updateSubOptionsFromSlot(t){t.stopPropagation(),this.subOptions=this.slotElement.assignedElements().map((t=>t))}updated(t){super.updated(t),this.dispatchEvent(new CustomEvent("option-change",{detail:this,bubbles:!0}))}}To.elementDefinitions={},Do([o({type:String})],To.prototype,"label",void 0),Do([o({type:Object,converter:t=>t})],To.prototype,"value",void 0),Do([o({type:Boolean,reflect:!0})],To.prototype,"selected",void 0),Do([o({type:Object})],To.prototype,"subOptions",void 0),Do([f({})],To.prototype,"renderOption",void 0),Do([n(".ft-filter-option--slot")],To.prototype,"slotElement",void 0),d("ft-filter")(Lo),d("ft-filter-option")(To),t.FtFilter=Lo,t.FtFilterChangeEvent=Uo,t.FtFilterCssVariables=jo,t.FtFilterLevelCssVariables=ko,t.FtFilterOption=To,t.levelStyles=Oo,t.styles=Bo}({});
@@ -8,6 +8,7 @@ export interface FtFilterProperties {
8
8
  noValuesLabel?: string;
9
9
  options: Array<FtFilterOptionProperties>;
10
10
  multivalued?: boolean;
11
+ forceOneSelected?: boolean;
11
12
  disabled?: boolean;
12
13
  raiseSelectedOptions?: boolean;
13
14
  displayedValuesLimit?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-filter",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Flat selector for multivalued or monovalued filters",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,15 +19,15 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-button": "1.0.13",
23
- "@fluid-topics/ft-checkbox": "1.0.13",
24
- "@fluid-topics/ft-icon": "1.0.13",
25
- "@fluid-topics/ft-radio": "1.0.13",
26
- "@fluid-topics/ft-ripple": "1.0.13",
27
- "@fluid-topics/ft-snap-scroll": "1.0.13",
28
- "@fluid-topics/ft-typography": "1.0.13",
29
- "@fluid-topics/ft-wc-utils": "1.0.13",
22
+ "@fluid-topics/ft-button": "1.0.14",
23
+ "@fluid-topics/ft-checkbox": "1.0.14",
24
+ "@fluid-topics/ft-icon": "1.0.14",
25
+ "@fluid-topics/ft-radio": "1.0.14",
26
+ "@fluid-topics/ft-ripple": "1.0.14",
27
+ "@fluid-topics/ft-snap-scroll": "1.0.14",
28
+ "@fluid-topics/ft-typography": "1.0.14",
29
+ "@fluid-topics/ft-wc-utils": "1.0.14",
30
30
  "lit": "2.7.2"
31
31
  },
32
- "gitHead": "3ce26f9002e59dd63fced5c00272dcb4cf863d10"
32
+ "gitHead": "64f454f95e974951f40c77c5dd5b3a3715ebbed9"
33
33
  }