import { BaseCardDataAppConnection } from './base.card.app.connection.js';
|
import { CardFetchMethod, FilterSelectionStrategy, CardContainerUpdate } from './card-container-definitions.js';
|
import './card-container-events.js';
|
import { CardDataUpdateEvent } from './card-data-service-update-events.js';
|
import { CardDataService } from './card.data.service.js';
|
import { DragType } from './interface.js';
|
import { ProgPropertyModel } from './prog-property.model.js';
|
import { U as UtilService } from './modal.component-db51742e.js';
|
import { ManuProgService } from './manu-prog.service.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 './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 './step-child.component.js';
|
import './catalog.service.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());
|
});
|
};
|
const _PropertyValueSelectionCardAppConnection = class extends BaseCardDataAppConnection {
|
constructor() {
|
super();
|
this.Method = CardFetchMethod.PropertyValueSelection;
|
}
|
CheckUpdate(event, eventParameters, context) {
|
return __async(this, null, function* () {
|
if (event == CardDataUpdateEvent.RefreshPropertyPanel) {
|
_PropertyValueSelectionCardAppConnection.lastRefreshProperyPanelTimestamp = Date.now();
|
}
|
if (event == CardDataUpdateEvent.LastPOLoaded || event == CardDataUpdateEvent.RefreshPropertyPanel) {
|
return CardContainerUpdate.FETCH;
|
}
|
return CardContainerUpdate.NONE;
|
});
|
}
|
Find(manufacturer, program, useSelection, useRelevant, fullHierarchy, instanceIdents) {
|
return __async(this, null, function* () {
|
const cacheKey = manufacturer + program + (useSelection ? "Selection" : "NoSelection") + (useRelevant ? "Relevant" : "NotRelevant") + (fullHierarchy ? "FullHierarchy" : "SmallHierarchy") + (instanceIdents != void 0 ? instanceIdents.toString() : "[]") + (_PropertyValueSelectionCardAppConnection.lastRefreshProperyPanelTimestamp ? _PropertyValueSelectionCardAppConnection.lastRefreshProperyPanelTimestamp.toString() : "");
|
const cachedResult = _PropertyValueSelectionCardAppConnection.propertiesCache.get(cacheKey);
|
if (cachedResult != void 0) {
|
if (cachedResult.then != void 0) {
|
return yield cachedResult;
|
} else {
|
return cachedResult;
|
}
|
}
|
const fetchPromise = ProgPropertyModel.find(manufacturer, program, useSelection, useRelevant, fullHierarchy, instanceIdents);
|
_PropertyValueSelectionCardAppConnection.propertiesCache.set(cacheKey, fetchPromise);
|
const fetchedResult = yield fetchPromise;
|
_PropertyValueSelectionCardAppConnection.propertiesCache.set(cacheKey, fetchedResult);
|
return fetchedResult;
|
});
|
}
|
Fetch(context) {
|
return __async(this, null, function* () {
|
const useSelection = context.settings.Fetch.parameters["use-selection"] != void 0 ? context.settings.Fetch.parameters["use-selection"] : false;
|
const useRelevant = context.settings.Fetch.parameters["use-relevant"] != void 0 ? context.settings.Fetch.parameters["use-relevant"] : true;
|
const ignoreSingleValueProperties = context.settings.Fetch.parameters["ignore-single-value-properties"] != void 0 ? context.settings.Fetch.parameters["ignore-single-value-properties"] : false;
|
const manufacturer = context.settings.Fetch.manufacturer && context.settings.Fetch.manufacturer.length > 0 ? context.settings.Fetch.manufacturer : yield ManuProgService.getManufacturer();
|
const program = context.settings.Fetch.program ? context.settings.Fetch.program : yield ManuProgService.getProgram();
|
const properties = new Array();
|
const propertiesHirarchy = yield this.Find(manufacturer, program, useSelection, useRelevant, false);
|
if (propertiesHirarchy != void 0) {
|
if (propertiesHirarchy.propertyKeyOrder) {
|
for (const key of propertiesHirarchy.propertyKeyOrder) {
|
if (ignoreSingleValueProperties) {
|
if (Object.keys(propertiesHirarchy.children[key].children).length < 2) {
|
continue;
|
}
|
}
|
properties.push(propertiesHirarchy.children[key]);
|
}
|
} else {
|
const propertyKeysUnsorted = Object.keys(propertiesHirarchy.children);
|
for (const key of propertyKeysUnsorted) {
|
if (ignoreSingleValueProperties) {
|
if (Object.keys(propertiesHirarchy.children[key].children).length < 2) {
|
continue;
|
}
|
}
|
properties.push(propertiesHirarchy.children[key]);
|
}
|
}
|
} else {
|
console.error("card.data.service> ReadProperties Failed! ProgPropertyModel.find returned undefined!", {
|
"manufacturer": manufacturer,
|
"program": program
|
});
|
}
|
return {
|
"manufacturer": manufacturer,
|
"program": program,
|
"properties": properties
|
};
|
});
|
}
|
Filter(unfiltered, context, active) {
|
const filteredProperties = new Array();
|
if (unfiltered.properties == void 0)
|
return {
|
"manufacturer": unfiltered["manufacturer"],
|
"program": unfiltered["program"],
|
"properties": filteredProperties
|
};
|
const allowedProperties = new Array();
|
const allowedPropertyKeys = context.settings.Fetch.filter["property-keys"];
|
if (allowedPropertyKeys && allowedPropertyKeys.keys && allowedPropertyKeys.keys.length > 0) {
|
const hasToInclude = allowedPropertyKeys["prohibit-listed"] == void 0 ? true : allowedPropertyKeys["prohibit-listed"] == false;
|
for (const property of unfiltered["properties"]) {
|
if (allowedPropertyKeys.keys.includes(property.id) == hasToInclude) {
|
allowedProperties.push(property);
|
} else if (allowedPropertyKeys.keys.includes(parseInt(property.id)) == hasToInclude) {
|
allowedProperties.push(property);
|
}
|
}
|
} else {
|
allowedProperties.push(...unfiltered.properties);
|
}
|
if (context.states.SelectedFilters && context.states.SelectedFilters.length > 0) {
|
const sorted = context.states.SelectedFilters.sort((a, b) => (a.priority ? a.priority : 0) - (b.priority ? b.priority : 0));
|
let anyFiltersApplied = false;
|
for (const filterEntry of sorted) {
|
if (filterEntry.strategy == FilterSelectionStrategy.OR) {
|
anyFiltersApplied = true;
|
for (const property of allowedProperties) {
|
if (filterEntry.filter.includes(property.id)) {
|
filteredProperties.push(property);
|
}
|
}
|
}
|
}
|
if (anyFiltersApplied == false) {
|
filteredProperties.push(...allowedProperties);
|
}
|
} else {
|
filteredProperties.push(...allowedProperties);
|
}
|
return {
|
"manufacturer": unfiltered["manufacturer"],
|
"program": unfiltered["program"],
|
"properties": filteredProperties
|
};
|
}
|
CreateCards(filtered, context) {
|
const result = new Map();
|
if (filtered.properties == void 0 || filtered.manufacturer == void 0 || filtered.program == void 0)
|
return result;
|
for (const property of filtered.properties) {
|
const level = { title: property.name, cards: [] };
|
if (property.children == void 0) {
|
result.set(property.id, level);
|
continue;
|
}
|
const propertyValueKeys = Object.keys(property.children);
|
for (const propertyValueKey of propertyValueKeys) {
|
const propertyValue = property.children[propertyValueKey];
|
level.cards.push({
|
txt: { title: UtilService.ncrToUTF8(propertyValue.name), tooltip: propertyValue.toolTipType == "text" ? propertyValue.toolTipData : "" },
|
image: { prefix: "", file: propertyValue.alternativeImageUrl },
|
click: {
|
"modify-property-request": {
|
manufacturer: filtered.manufacturer,
|
program: filtered.program,
|
key: property.id,
|
property: propertyValue.key,
|
propertyKey: propertyValue.propertyKey
|
},
|
"previous-level-key": context.settings.Fetch["root-level"],
|
"level-key": property.id,
|
"next-level-key": ""
|
},
|
active: property.currentValue == propertyValueKey
|
});
|
}
|
result.set(property.id, level);
|
}
|
return result;
|
}
|
Click(card, context) {
|
return __async(this, null, function* () {
|
if (card.click && card.click["modify-property-request"]) {
|
yield CommunicationMessageService.modifyProperty(JSON.stringify(card.click["modify-property-request"]), card.click["modify-property-options"]);
|
}
|
});
|
}
|
GetFormattedDragData(card, context) {
|
if (card.click) {
|
const request = card.click["modify-property-request"];
|
return {
|
id: request.key,
|
type: DragType.PROGPROPERTY,
|
extData: request,
|
options: { modifyElement: true }
|
};
|
}
|
}
|
};
|
let PropertyValueSelectionCardAppConnection = _PropertyValueSelectionCardAppConnection;
|
PropertyValueSelectionCardAppConnection.lastRefreshProperyPanelTimestamp = void 0;
|
PropertyValueSelectionCardAppConnection.propertiesCache = new Map();
|
CardDataService.RegisterAppConnection(new PropertyValueSelectionCardAppConnection());
|
|
export { PropertyValueSelectionCardAppConnection };
|