import { i, x } from "./lit-DkXrt_Iv.mjs"; import { n as n$1, t } from "./property-B8WoKf1Y.mjs"; import { e, n } from "./ref-BwbQvJBB.mjs"; import { e as escapeXml } from "./index-_IB1wMbZ.mjs"; 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 i2 = decorators.length - 1, decorator; i2 >= 0; i2--) if (decorator = decorators[i2]) result = (kind ? decorator(target, key, result) : decorator(result)) || result; if (kind && result) __defProp(target, key, result); return result; }; let CreateCalendarForm = class extends i { constructor() { super(); this.user = ""; this.principal = ""; this.cal_id = self.crypto.randomUUID(); this.displayname = ""; this.description = ""; this.timezone_id = ""; this.color = ""; this.isSubscription = false; this.subscriptionUrl = ""; this.components = /* @__PURE__ */ new Set(); this.dialog = e(); this.form = e(); this.timezones = []; this.fetchTimezones(); } async fetchTimezones() { this.timezones = await getTimezones(); } createRenderRoot() { return this; } render() { return x`

Create calendar









${this.isSubscription ? x`
` : x``}
${["VEVENT", "VTODO", "VJOURNAL"].map((comp) => x`
`)}
`; } async submit(e2) { console.log(this.displayname); e2.preventDefault(); if (!this.cal_id) { alert("Empty id"); return; } if (!this.displayname) { alert("Empty displayname"); return; } if (!this.components.size) { alert("No calendar components selected"); return; } let response = await fetch(`/caldav/principal/${this.principal || this.user}/${this.cal_id}`, { method: "MKCOL", headers: { "Content-Type": "application/xml" }, body: ` ${escapeXml(this.displayname)} ${this.timezone_id ? `${escapeXml(this.timezone_id)}` : ""} ${this.description ? `${escapeXml(this.description)}` : ""} ${this.color ? `${escapeXml(this.color)}` : ""} ${this.isSubscription && this.subscriptionUrl ? `${escapeXml(this.subscriptionUrl)}` : ""} ${Array.from(this.components.keys()).map((comp) => ``).join("\n")} ` }); if (response.status >= 400) { alert(`Error ${response.status}: ${await response.text()}`); return null; } window.location.reload(); return null; } }; __decorateClass([ n$1() ], CreateCalendarForm.prototype, "user", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "principal", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "cal_id", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "displayname", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "description", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "timezone_id", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "color", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "isSubscription", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "subscriptionUrl", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "components", 2); __decorateClass([ n$1() ], CreateCalendarForm.prototype, "timezones", 2); CreateCalendarForm = __decorateClass([ t("create-calendar-form") ], CreateCalendarForm); export { CreateCalendarForm };