import { PropertyContextValueSelectionCardAppConnection } from './property-context-value-selection.connection.js';
|
import { CardFetchMethod, FilterSelectionStrategy } from './card-container-definitions.js';
|
import './card-container-events.js';
|
import './card-data-service-update-events.js';
|
import { U as UtilService } from './modal.component-db51742e.js';
|
import { CardDataService } from './card.data.service.js';
|
import './base.card.app.connection.js';
|
import './manu-prog.service.js';
|
import './catalog.service.js';
|
import './prog-context.model.js';
|
import './prog-property.model.js';
|
import './query-assigned-elements-fea1f631.js';
|
import './custom-element-30fc6381.js';
|
import './base.component-813fc7cf.js';
|
import '@dh-software/furnview-icons';
|
import './class-map-a0fb5d87.js';
|
import './event.handler.model.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 './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 './step-child.component.js';
|
import './clock.controller.js';
|
|
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());
|
});
|
};
|
class PropertyContextSelectionAppConnection extends PropertyContextValueSelectionCardAppConnection {
|
constructor() {
|
super();
|
this.Method = CardFetchMethod.PropertyContextSelection;
|
}
|
Fetch(context) {
|
var __superGet = (key) => super[key];
|
return __async(this, null, function* () {
|
const result = yield __superGet("Fetch").call(this, context);
|
if (!context.settings.Fetch.parameters["use-category-in-buttons-filter"] && !context.settings.Fetch.parameters["use-category-in-selection-filter"])
|
return result;
|
const categories = new Array();
|
const buttonsFilters = context.states.SelectedFilters;
|
for (const buttonsFilter of buttonsFilters) {
|
if (typeof buttonsFilter.filter[0] === "string") {
|
categories.push(...buttonsFilter.filter);
|
}
|
}
|
const plannedArticles = yield CommunicationMessageService.getPlannedArticles();
|
const articles = yield CommunicationMessageService.getArticleByCategories(result.manufacturer, result.program, categories);
|
const allowedKeys = new Array();
|
const classIdStrings = new Array();
|
for (const article of articles) {
|
if (classIdStrings.includes(article.ClassID) == false) {
|
classIdStrings.push(article.ClassID);
|
}
|
}
|
for (const article of plannedArticles) {
|
if (classIdStrings.includes(article.typeInfo.toFixed(0))) {
|
allowedKeys.push(...article.keys);
|
}
|
}
|
result["allowed-keys"] = [...new Set(allowedKeys)];
|
return result;
|
});
|
}
|
Filter(unfiltered, context, active) {
|
if (!context.settings.Fetch.parameters["use-category-in-buttons-filter"] && !context.settings.Fetch.parameters["use-category-in-selection-filter"])
|
return super.Filter(unfiltered, context, active);
|
const unfilteredProperty = unfiltered;
|
for (const propertyContexts of unfilteredProperty.contexts) {
|
const allowedKeys = unfilteredProperty["allowed-keys"];
|
if (allowedKeys && allowedKeys.length > 0) {
|
propertyContexts.properties = propertyContexts.properties.filter((property) => allowedKeys.includes(parseInt(property.id)));
|
} else {
|
propertyContexts.properties = [];
|
}
|
}
|
return super.Filter(unfiltered, context, active);
|
}
|
CreateCards(filtered, context) {
|
const result = new Map();
|
const filteredProperty = filtered;
|
if (filteredProperty["contexts"] && filteredProperty["contexts"].length > 0) {
|
const properties = filteredProperty.contexts.flatMap((x) => x.properties).filter((property, index, arr) => arr.findIndex((x) => x.id == property.id) === index);
|
const rootLevel = { title: "", cards: [] };
|
for (const property of properties) {
|
const current = property.children[property.currentValue];
|
rootLevel.cards.push({
|
txt: { title: UtilService.ncrToUTF8(property.name) },
|
image: { prefix: "", file: current ? current.alternativeImageUrl : "" },
|
click: {
|
"previous-level-key": context.settings.Fetch["root-level"],
|
"level-key": property.id,
|
strategy: FilterSelectionStrategy.AND,
|
priority: 0,
|
"next-level-key": ""
|
}
|
});
|
}
|
result.set(context.settings.Fetch["root-level"], rootLevel);
|
}
|
return result;
|
}
|
}
|
CardDataService.RegisterAppConnection(new PropertyContextSelectionAppConnection());
|
|
export { PropertyContextSelectionAppConnection };
|