import { e } from './custom-element-30fc6381.js';
|
import { n } from './base.component-813fc7cf.js';
|
import './query-assigned-elements-fea1f631.js';
|
import { B as BaseCardContainer, C as CardElementAccordionCreator, a as CardContainerEventContainer } from './modal.component-db51742e.js';
|
import { FilterSelectionStrategy } from './card-container-definitions.js';
|
import { CardContainerEvents } from './card-container-events.js';
|
import './card-data-service-update-events.js';
|
import { EventHandlerDispatchEvent } from './event.handler.model.js';
|
import { CardDataService } from './card.data.service.js';
|
import '@dh-software/furnview-icons';
|
import './class-map-a0fb5d87.js';
|
import './loading.component.js';
|
import './dimmer.component.js';
|
import './query-1c86d710.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 './input.component.js';
|
import './base-input.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-d943b107.js';
|
import './accordion.component.js';
|
import './accordion-item.component.js';
|
import './accordion-layer.component.js';
|
import './slider.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 __defProp = Object.defineProperty;
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
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 __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 CardAccordionContainerComponent = class extends BaseCardContainer {
|
constructor() {
|
super();
|
this.lastClickedIsSelectionFilter = false;
|
this.overwriteToggleContainerSlotName = "";
|
this.refreshTargets = new Array();
|
this.cardContainersToCreate = {
|
tag: "",
|
settings: void 0,
|
"fetch-parameters": void 0,
|
"style-vars": {},
|
modules: new Array(),
|
classes: new Array()
|
};
|
this.cardContainersToCloseOnOpen = new Array();
|
this.cardAccordionEvents = {};
|
this.cardToOpenAfterFill = "";
|
this.cardToOpenShowedOnce = false;
|
this.open = void 0;
|
this.cardCreator = new CardElementAccordionCreator();
|
this.addEventListener("cardclicked", (event) => __async(this, null, function* () {
|
if (event == void 0)
|
return;
|
const cardClickEvent = event;
|
if (cardClickEvent.target && cardClickEvent.target != this) {
|
return;
|
}
|
if (cardClickEvent.detail && cardClickEvent.detail.data && cardClickEvent.detail.data.click && cardClickEvent.detail.data.click["level-key"]) {
|
if (this.open == cardClickEvent.detail.data.click["level-key"]) {
|
this.open = void 0;
|
this.triggerCloseEvents(cardClickEvent.detail.data.click);
|
} else {
|
this.open = event.detail.data.click["level-key"];
|
this.triggerOpenEvents(cardClickEvent.detail.data.click);
|
}
|
}
|
if (!this.lastClickedIsSelectionFilter)
|
return;
|
if (event.detail == void 0)
|
return;
|
if (event.detail.data == void 0 || event.detail.data.click == void 0 || event.detail.data.click["level-key"] == void 0)
|
return;
|
if (this.Filter == void 0)
|
return;
|
const alreadyActive = this.Filter.Filter.includes(event.detail.data.click["level-key"]);
|
this.Filter.Reset(true, this.Context);
|
if (alreadyActive == false) {
|
this.Filter.Strategy = FilterSelectionStrategy.OR;
|
this.Filter.Add(event.detail.data.click["level-key"]);
|
}
|
this.refreshTargets.forEach((refreshTarget) => {
|
CardContainerEventContainer.Refetch(refreshTarget);
|
});
|
}));
|
EventFactoryService.LastPOLoaded.register(() => {
|
if (this.cardAccordionEvents["on-last-po-loaded"] != void 0) {
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: this.cardAccordionEvents["on-last-po-loaded"]
|
}));
|
}
|
});
|
this.addEventListener(CardContainerEvents.CardContainerPostFill, () => {
|
this.openItem();
|
});
|
}
|
get Open() {
|
return this.open;
|
}
|
triggerCloseEvents(clickData) {
|
if (this.cardAccordionEvents["on-close"] == void 0)
|
return;
|
this.cardAccordionEvents["on-close"] = CardDataService.PrepareClickedCardEventsData(this.cardAccordionEvents["on-close"], clickData);
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: this.cardAccordionEvents["on-close"]
|
}));
|
}
|
triggerOpenEvents(clickData) {
|
if (this.cardAccordionEvents["on-open"] == void 0)
|
return;
|
this.cardAccordionEvents["on-open"] = CardDataService.PrepareClickedCardEventsData(this.cardAccordionEvents["on-open"], clickData);
|
window.dispatchEvent(new EventHandlerDispatchEvent({
|
async: false,
|
events: this.cardAccordionEvents["on-open"]
|
}));
|
}
|
findContainers(query) {
|
const result = new Array();
|
if (this.shadowRoot) {
|
const containers = this.shadowRoot.querySelectorAll(query);
|
containers.forEach((container) => {
|
if (container.parentNode == this.shadowRoot) {
|
result.push(container);
|
}
|
});
|
}
|
return result;
|
}
|
updated(changedProperties) {
|
super.updated(changedProperties);
|
}
|
openItem() {
|
return __async(this, null, function* () {
|
if (!this.cardToOpenShowedOnce && this.open === void 0 && this.cardToOpenAfterFill && this.cardToOpenAfterFill !== "") {
|
this.open = this.cardToOpenAfterFill;
|
this.cardToOpenShowedOnce = true;
|
}
|
if (this.open && this.cardContainersToCreate.tag.length > 0) {
|
const newContainers = this.findContainers("fv-accordion.accordion-container");
|
for (const container of newContainers) {
|
const item = container.querySelector('[level-identifier="' + this.open + '"]');
|
if (item) {
|
const createdCardContainer = item.querySelector(this.cardContainersToCreate.tag);
|
if (createdCardContainer) {
|
yield createdCardContainer.CheckFetchPromise();
|
yield createdCardContainer.updateComplete;
|
item.open();
|
const card = item.querySelector("fv-card");
|
if (card && card.data.click) {
|
this.triggerOpenEvents(card.data.click);
|
}
|
}
|
}
|
}
|
}
|
});
|
}
|
};
|
__decorateClass([
|
n({ type: Boolean, reflect: true, attribute: "last-clicked-is-selection-filter" })
|
], CardAccordionContainerComponent.prototype, "lastClickedIsSelectionFilter", 2);
|
__decorateClass([
|
n({ type: String, reflect: true, attribute: "overwrite-toggle-container-slot-name" })
|
], CardAccordionContainerComponent.prototype, "overwriteToggleContainerSlotName", 2);
|
__decorateClass([
|
n({ type: Array, reflect: true, attribute: "refresh-targets" })
|
], CardAccordionContainerComponent.prototype, "refreshTargets", 2);
|
__decorateClass([
|
n({ type: Object, reflect: true, attribute: "card-containers-to-create" })
|
], CardAccordionContainerComponent.prototype, "cardContainersToCreate", 2);
|
__decorateClass([
|
n({ type: Array, reflect: true, attribute: "card-accordion-container-queries-to-close-on-open" })
|
], CardAccordionContainerComponent.prototype, "cardContainersToCloseOnOpen", 2);
|
__decorateClass([
|
n({ type: Object, reflect: true, attribute: "card-accordion-events" })
|
], CardAccordionContainerComponent.prototype, "cardAccordionEvents", 2);
|
__decorateClass([
|
n({ type: String, reflect: true, attribute: "card-to-open-after-fill" })
|
], CardAccordionContainerComponent.prototype, "cardToOpenAfterFill", 2);
|
CardAccordionContainerComponent = __decorateClass([
|
e("fv-card-accordion-container")
|
], CardAccordionContainerComponent);
|
|
export { CardAccordionContainerComponent };
|