import { e } from './custom-element-30fc6381.js';
|
import { n, C as ComponentService } from './base.component-813fc7cf.js';
|
import { i, r } from './query-assigned-elements-fea1f631.js';
|
import './input.component.js';
|
import './constrained.input.component.js';
|
import './range.slider.input.component.js';
|
import './shared.range.slider.input.component.js';
|
import './validating-input.component.js';
|
import { SliderComponent } from './slider.component.js';
|
import './labeled-input.component.js';
|
import { EventHandlerDispatchEvent } from './event.handler.model.js';
|
import { CardDataService } from './card.data.service.js';
|
import { B as BaseCardContainer, b as CardElementSliderFilterCreator } from './modal.component-7c440789.js';
|
import { FilterSelectionStrategy } from './card-container-definitions.js';
|
import { CardContainerEvents } from './card-container-events.js';
|
import './card-data-service-update-events.js';
|
import { CardContainerFilterSelection } from './card-container-filter-selection.js';
|
import '@dh-software/furnview-icons';
|
import './query-1c86d710.js';
|
import './base-input.js';
|
import './class-map-a0fb5d87.js';
|
import './loading.component.js';
|
import './dimmer.component.js';
|
import './dot-flashing-loader.component.js';
|
import './rotating-dots-loader.component.js';
|
import './key-frame-effect.service.js';
|
import './toolbar.component.js';
|
import './toggle-toolbar.component.js';
|
import './style.helper.js';
|
import './image.service.js';
|
import './svg-icon.component.js';
|
import './popup.component.js';
|
import './popup-closer.component.js';
|
import './hr-item.component.js';
|
import './hr-list.component.js';
|
import './query-all-828de4b2.js';
|
import './hr-theme.model.js';
|
import './configurator.form.component.js';
|
import './configurator.form.base.element.component.js';
|
import './scene-helper.service.js';
|
import './async.base.component.js';
|
import './card-container-settings.js';
|
import './card-container-states.js';
|
import './card-container-additional-data.js';
|
import './card-containers-shared-data.js';
|
import './input.mask.component.js';
|
import './mask.component.js';
|
import './information.mask.component.js';
|
import './open-cloud-id.mask.component.js';
|
import './share-link-per-mail.component.js';
|
import './request-appointment.component.js';
|
import './prog-property.model.js';
|
import './interface.js';
|
import './reset.mask.component.js';
|
import './configuration.service.js';
|
import './step-based.mask.component.js';
|
import './container-mask.component.js';
|
import './messageNoCalc.mask.component.js';
|
import './button.component.js';
|
import './iwoFurn.mask.component.js';
|
import './save-dialog.mask.component.js';
|
import './cloud-id.service.js';
|
import './send-offer-request-mask.component.js';
|
import './file-upload-mask.component.js';
|
import './label.component.js';
|
import './sass.default-1ca9b57f.js';
|
import './accordion.component.js';
|
import './accordion-item.component.js';
|
import './accordion-layer.component.js';
|
import './equipment-list.component.js';
|
import './state-7ee0cf4f.js';
|
import './confirming-button.component.js';
|
import './fitting-item.component.js';
|
import './proptrans-item.component.js';
|
import './shoppingcart-item.component.js';
|
import './prog-context.model.js';
|
import './manu-prog.service.js';
|
import './catalog.service.js';
|
import './step-child.component.js';
|
import './clock.controller.js';
|
|
var css_248z = i`:host{--slider-dimension:100%}`;
|
|
var __defProp = Object.defineProperty;
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
var __getProtoOf = Object.getPrototypeOf;
|
var __reflectGet = Reflect.get;
|
var __decorateClass = (decorators, target, key, kind) => {
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
if (decorator = decorators[i])
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
if (kind && result)
|
__defProp(target, key, result);
|
return result;
|
};
|
var __superStaticGet = (obj, member) => __reflectGet(__getProtoOf(obj), member, obj);
|
var __async = (__this, __arguments, generator) => {
|
return new Promise((resolve, reject) => {
|
var fulfilled = (value) => {
|
try {
|
step(generator.next(value));
|
} catch (e) {
|
reject(e);
|
}
|
};
|
var rejected = (value) => {
|
try {
|
step(generator.throw(value));
|
} catch (e) {
|
reject(e);
|
}
|
};
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
step((generator = generator.apply(__this, __arguments)).next());
|
});
|
};
|
let CardContainerSliderFilterComponent = class extends BaseCardContainer {
|
constructor() {
|
super();
|
this.useCards = false;
|
this.maxEntries = void 0;
|
this.checkDimensions = "";
|
this.onCardFilterEvents = {};
|
this.filter = new CardContainerFilterSelection();
|
this.cardCreator = new CardElementSliderFilterCreator();
|
this.addEventListener(CardContainerEvents.ResetFilter, (event) => {
|
this._state = void 0;
|
this.requestUpdate();
|
});
|
this.addEventListener(CardContainerEvents.CardContainerPostFill, () => {
|
if (!this.CardCreator.Dimensions || this.CardCreator.Dimensions.length == 0) {
|
this.classList.add("empty");
|
} else {
|
this.classList.remove("empty");
|
}
|
this.checkAllDimensionFilters();
|
});
|
this.addEventListener("cardclicked", () => {
|
this.CheckFetchPromise().then(() => {
|
this.updateComplete.then(() => {
|
CardDataService.Containers.forEach((container) => {
|
container.Refetch();
|
});
|
});
|
});
|
});
|
}
|
get CardCreator() {
|
return this.cardCreator;
|
}
|
firstUpdated(_changedProperties) {
|
this.refetch = true;
|
this.addEventListener("change", this.sliderChanged, false);
|
super.firstUpdated(_changedProperties);
|
}
|
sliderChanged(ev) {
|
return __async(this, null, function* () {
|
if (ev.detail == void 0)
|
return;
|
const { value, range, actionElement } = ev.detail;
|
if (!actionElement) {
|
this._state = value;
|
yield this.setFilterValues(value);
|
}
|
});
|
}
|
setFilter(dimensions) {
|
if (this.Filter == void 0)
|
return;
|
this.Filter.Reset(false, this.Context);
|
for (const dimension of dimensions) {
|
this.Filter.Add(dimension);
|
}
|
this.Filter.Strategy = FilterSelectionStrategy.OR;
|
}
|
setFilterValues(range) {
|
return __async(this, null, function* () {
|
const settings = this.Settings;
|
const dimension = settings.Fetch.parameters["dimension"];
|
if (dimension && this.Filter) {
|
this.Filter.AdditionalParams = {
|
"filter-type": "dimension",
|
"dimension": dimension
|
};
|
}
|
let allowed;
|
if (typeof range === "number") {
|
allowed = this.CardCreator.ActiveDimensions.filter((x) => x != range).map((x) => x);
|
} else {
|
allowed = this.CardCreator.ActiveDimensions.filter((x) => !(x < range.min || x > range.max)).map((x) => x);
|
}
|
this.setFilter(allowed);
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: [{
|
id: "refresh-all-card-containers",
|
data: {
|
refetch: this.refetch,
|
"include-hidden": this.refreshHidden,
|
"selection-result-filter-reset-targets": this.refreshFilter,
|
"selection-result-filter-reset-excludes": this.refreshExclude
|
}
|
}]
|
}));
|
yield this.CheckFetchPromise();
|
yield this.updateComplete;
|
});
|
}
|
checkAllDimensionFilters() {
|
return __async(this, null, function* () {
|
if (this.maxEntries === void 0) {
|
return;
|
}
|
if (this.checkDimensions === void 0 || this.checkDimensions === "") {
|
return;
|
}
|
yield CardDataService.WaitForAllCardContainerFetchPromises();
|
const allDimensionFilters = ComponentService.findAll("fv-card-slider-filter", this.checkDimensions);
|
let anyDimensionHasEntries = false;
|
for (const filter of allDimensionFilters) {
|
anyDimensionHasEntries || (anyDimensionHasEntries = filter.CardCreator.Dimensions.length > 0);
|
if (this.CardCreator.Dimensions.length > this.maxEntries) {
|
if (filter.onCardFilterEvents && filter.onCardFilterEvents["over-max"] !== void 0) {
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: filter.onCardFilterEvents["over-max"]
|
}));
|
}
|
filter.classList.add("hidden");
|
}
|
}
|
if (anyDimensionHasEntries === false) {
|
for (const filter of allDimensionFilters) {
|
if (filter.onCardFilterEvents && filter.onCardFilterEvents["on-empty"] !== void 0) {
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: filter.onCardFilterEvents["on-empty"]
|
}));
|
}
|
}
|
}
|
});
|
}
|
getBaseSliderState(dimensions, activeDimensions) {
|
const slider = new SliderComponent();
|
slider.innerHTML = `
|
<div class='input-container' slot='min'>
|
<fv-label style="display: inline" i18n="fv.right.panel.catalogue.dimensions.from"></fv-label>
|
<fv-input style="width: 50%; position: relative" type='number' class='sliderValue'>
|
<fv-label style="position: absolute; top: -11px; left: 5px; background: white; padding: 0 5px; font-size: 14px" i18n="webcab.Unit"></fv-label>
|
</fv-input>
|
</div>
|
<div class="input-container" slot='max'>
|
<fv-label style="display: inline" i18n="fv.right.panel.catalogue.dimensions.to"></fv-label>
|
<fv-input style="width: 50%; position: relative" type='number' class='sliderValue'>
|
<fv-label style="position: absolute; top: -11px; left: 5px; background: white; padding: 0 5px; font-size: 14px" i18n="webcab.Unit"></fv-label>
|
</fv-input>
|
</div>
|
`;
|
slider.FormatDisplayValueFunction = (value) => {
|
return (value / 10).toString();
|
};
|
slider.Range = {
|
min: Math.min(...dimensions),
|
max: Math.max(...dimensions)
|
};
|
if (this._state) {
|
slider.Value = this._state;
|
}
|
return slider;
|
}
|
};
|
CardContainerSliderFilterComponent.styles = [
|
__superStaticGet(CardContainerSliderFilterComponent, "styles") || [],
|
r(css_248z)
|
];
|
__decorateClass([
|
n({ type: Array, reflect: true })
|
], CardContainerSliderFilterComponent.prototype, "refreshFilter", 2);
|
__decorateClass([
|
n({ type: Array, reflect: true })
|
], CardContainerSliderFilterComponent.prototype, "refreshExclude", 2);
|
__decorateClass([
|
n({ type: Boolean, reflect: true })
|
], CardContainerSliderFilterComponent.prototype, "refreshHidden", 2);
|
__decorateClass([
|
n({ type: Boolean, reflect: true })
|
], CardContainerSliderFilterComponent.prototype, "refetch", 2);
|
__decorateClass([
|
n({ type: Object, reflect: true, attribute: "state" })
|
], CardContainerSliderFilterComponent.prototype, "_state", 2);
|
__decorateClass([
|
n({ type: Boolean, reflect: true, attribute: "use-cards" })
|
], CardContainerSliderFilterComponent.prototype, "useCards", 2);
|
__decorateClass([
|
n({ type: Number, reflect: true, attribute: "max-entries" })
|
], CardContainerSliderFilterComponent.prototype, "maxEntries", 2);
|
__decorateClass([
|
n({ type: String, reflect: true, attribute: "check-dimensions" })
|
], CardContainerSliderFilterComponent.prototype, "checkDimensions", 2);
|
__decorateClass([
|
n({ type: Object, reflect: true, attribute: "on-filter-events" })
|
], CardContainerSliderFilterComponent.prototype, "onCardFilterEvents", 2);
|
CardContainerSliderFilterComponent = __decorateClass([
|
e("fv-card-slider-filter")
|
], CardContainerSliderFilterComponent);
|
|
export { CardContainerSliderFilterComponent };
|