@fluid-topics/ft-filter 1.0.12 → 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.
package/build/ft-filter.d.ts
CHANGED
|
@@ -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;
|
package/build/ft-filter.js
CHANGED
|
@@ -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);
|
package/build/ft-filter.light.js
CHANGED
|
@@ -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
|
|
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);
|
package/build/ft-filter.min.js
CHANGED
|
@@ -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
|
|
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}({});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-topics/ft-filter",
|
|
3
|
-
"version": "1.0.
|
|
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.
|
|
23
|
-
"@fluid-topics/ft-checkbox": "1.0.
|
|
24
|
-
"@fluid-topics/ft-icon": "1.0.
|
|
25
|
-
"@fluid-topics/ft-radio": "1.0.
|
|
26
|
-
"@fluid-topics/ft-ripple": "1.0.
|
|
27
|
-
"@fluid-topics/ft-snap-scroll": "1.0.
|
|
28
|
-
"@fluid-topics/ft-typography": "1.0.
|
|
29
|
-
"@fluid-topics/ft-wc-utils": "1.0.
|
|
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": "
|
|
32
|
+
"gitHead": "64f454f95e974951f40c77c5dd5b3a3715ebbed9"
|
|
33
33
|
}
|