import './checkbox.component.js';
|
import { StyleHelper } from './style.helper.js';
|
import './query-assigned-elements-fea1f631.js';
|
import './custom-element-30fc6381.js';
|
import './base.component-813fc7cf.js';
|
import '@dh-software/furnview-icons';
|
import './label.component.js';
|
import './query-1c86d710.js';
|
import './sass.default-1ca9b57f.js';
|
|
class NoticeTableRowComponent extends HTMLTableRowElement {
|
constructor() {
|
super();
|
this.hidePrice = false;
|
this.selected_ = false;
|
this.item = { properties: [], id: "", selected: false, program: "", manufacturer: "" };
|
}
|
set selected(val) {
|
this.selected_ = val;
|
if (this.selectionCheckbox)
|
this.selectionCheckbox.checked = this.selected_;
|
}
|
get selected() {
|
return this.selected_;
|
}
|
connectedCallback() {
|
var _a, _b;
|
this.render();
|
this.selectionCheckbox = this.querySelector(".checkbox");
|
if (this.selectionCheckbox) {
|
this.selectionCheckbox.checked = this.selected_;
|
this.selectionCheckbox.onChange = (e, component) => {
|
this.selected_ = component.checked;
|
this.dispatchEvent(new CustomEvent("onselectionchange", {}));
|
};
|
}
|
(_b = (_a = this.querySelector(".open-planning")) == null ? void 0 : _a.children[0]) == null ? void 0 : _b.addEventListener("click", () => {
|
this.openPlanning();
|
});
|
}
|
renderItems() {
|
return `${this.item.properties.map((item) => {
|
const element = document.createElement("td");
|
element.classList.add("item");
|
if (item) {
|
for (const value of item.propertyValues) {
|
if (value) {
|
const propertyValue = element.appendChild(Object.assign(document.createElement("div"), {
|
textContent: `${value.title}: ${value.name}`
|
}));
|
propertyValue.classList.add("item-value");
|
}
|
}
|
}
|
return element.outerHTML;
|
}).join("")}
|
`;
|
}
|
openPlanning() {
|
this.dispatchEvent(new CustomEvent("open-planning", {
|
detail: this.item,
|
bubbles: true
|
}));
|
}
|
render() {
|
this.innerHTML = `
|
<td>
|
<fv-checkbox class="checkbox" checked="${this.selected_}"></fv-checkbox>
|
</td>
|
<td class="model">
|
<div class="model-image">
|
<img src="${this.item.image}">
|
</div>
|
<div class="model-text">${this.item.programName}</div>
|
</td>
|
${this.renderItems()}
|
${this.hidePrice ? `` : `
|
<td class="price">${this.item.price}</td>
|
`}
|
<td class="open-planning">
|
${StyleHelper.getVar(this.parentElement, "--open-planning-image") ? `<img src="${StyleHelper.getVar(this.parentElement, "--open-planning-image")}">` : '<i class="icon fv-icon-folder"></i>'}
|
</td>
|
`;
|
}
|
}
|
customElements.define("table-row", NoticeTableRowComponent, { extends: "tr" });
|
|
export { NoticeTableRowComponent };
|