dh_ackergaul
vor 3 Tagen bb80cdf5a6157ca1f3a276e12e9faae9a4739cb7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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 };