Build files

This commit is contained in:
Ralph J. Smit
2022-08-06 17:20:41 +02:00
parent ccc09f0967
commit 60c951a1f8
369 changed files with 38882 additions and 30162 deletions

View File

@@ -1 +0,0 @@
import r from"./TopBar.d1947609.js";import m from"./Container.f87d9f62.js";import i from"./Content.e22a1fd6.js";import e from"./Page.3927bdbf.js";import p from"./PageHeader.a5f457a5.js";import a from"./PageHeaderTitle.3ed783af.js";import n from"./PageBody.dec1fae1.js";import s from"./Button.f17dffc9.js";import f from"./List.d5d221b1.js";import _ from"./ListItem.ee1e88fb.js";import l from"./StatusBubble.4f1d8322.js";import u from"./NotificationBadge.b6fae3d5.js";import d from"./MainLayout.39e63d2b.js";import{n as c}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";const g={layout:d,components:{TopBar:r,Container:m,Content:i,Page:e,PageHeader:p,PageHeaderTitle:a,PageBody:n,Button:s,List:f,ListItem:_,StatusBubble:l,NotificationBadge:u},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:"403 not found",to:"/"}]}}};var b=function(){var t=this,o=t._self._c;return o("Page",[o("TopBar",{attrs:{breadcrumbs:t.breadcrumbs}}),o("Content",[o("Container",[o("PageHeader",{scopedSlots:t._u([{key:"start",fn:function(){return[o("PageHeaderTitle",[t._v(t._s(t.__("Not allowed")))])]},proxy:!0}])}),o("PageBody",[t._v(" "+t._s(t.__("You tried to do something that is not allowed."))+" ")])],1)],1)],1)},P=[],v=c(g,b,P,!1,null,null,null,null);const mt=v.exports;export{mt as default};

85
public/build/assets/403.46af2544.js vendored Normal file
View File

@@ -0,0 +1,85 @@
import TopBar from "./TopBar.ab933635.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge
},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: "403 not found",
to: "/"
}
]
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Not allowed")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("You tried to do something that is not allowed.")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const _403 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
_403 as default
};

View File

@@ -1 +0,0 @@
import r from"./Container.f87d9f62.js";import e from"./Content.e22a1fd6.js";import i from"./Page.3927bdbf.js";import m from"./PageHeader.a5f457a5.js";import a from"./PageHeaderTitle.3ed783af.js";import n from"./PageBody.dec1fae1.js";import p from"./Button.f17dffc9.js";import s from"./List.d5d221b1.js";import f from"./ListItem.ee1e88fb.js";import l from"./StatusBubble.4f1d8322.js";import _ from"./NotificationBadge.b6fae3d5.js";import u from"./MainLayout.39e63d2b.js";import{n as c}from"./plugin-vue2_normalizer.000ba15c.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";const d={layout:u,components:{Container:r,Content:e,Page:i,PageHeader:m,PageHeaderTitle:a,PageBody:n,Button:p,List:s,ListItem:f,StatusBubble:l,NotificationBadge:_}};var g=function(){var o=this,t=o._self._c;return t("Page",[t("Content",[t("Container",[t("PageHeader",{scopedSlots:o._u([{key:"start",fn:function(){return[t("PageHeaderTitle",[o._v("Page not found")])]},proxy:!0}])}),t("PageBody",[t("div",{staticClass:"space-y-4"},[t("p",[o._v("We were unable to find this page.")]),t("p",[t("a",{staticClass:"text-primary",attrs:{href:"/"}},[o._v("Go home")])])])])],1)],1)],1)},v=[],P=c(d,g,v,!1,null,null,null,null);const D=P.exports;export{D as default};

76
public/build/assets/404.4c463f63.js vendored Normal file
View File

@@ -0,0 +1,76 @@
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, b as createBaseVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./notification.4c298cac.js";
const _sfc_main = {
layout: MainLayout,
components: {
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge
}
};
const _hoisted_1 = /* @__PURE__ */ createTextVNode("Page not found");
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("div", { class: "space-y-4" }, [
/* @__PURE__ */ createBaseVNode("p", null, "We were unable to find this page."),
/* @__PURE__ */ createBaseVNode("p", null, [
/* @__PURE__ */ createBaseVNode("a", {
class: "text-primary",
href: "/"
}, "Go home")
])
], -1);
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
_hoisted_1
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
_hoisted_2
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const _404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
_404 as default
};

File diff suppressed because one or more lines are too long

285
public/build/assets/Aliases.b6ffff64.js vendored Normal file
View File

@@ -0,0 +1,285 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, g as withModifiers, d as createCommentVNode, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Aliases")} - ${this.site.domain}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
FormSelect,
FormTextarea,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Pagination,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData,
EmptyImage
},
data() {
return {
sending: false,
form: {
domain: null
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("Aliases"),
to: this.route("sites.aliases.index", this.site.id)
}
]
};
},
mounted() {
},
watch: {},
computed: {},
props: {
site: Object,
aliases: [Object, Array]
},
methods: {
submit() {
this.sending = true;
this.$inertia.post(this.route("sites.aliases.store", this.site.id), this.form, {
onFinish: () => {
this.sending = false;
this.form.domain = null;
}
});
},
confirmDelete(alias) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your alias will be deleted permanently, this action cannot be undone."),
onConfirm: () => this.delete(alias)
});
},
delete(alias) {
this.$inertia.delete(this.route("sites.aliases.delete", [this.site.id, alias]), {
preserveScroll: true
});
}
}
};
const _hoisted_1 = /* @__PURE__ */ createTextVNode("Delete ");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Aliases")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
createVNode(_component_SettingsSegment, null, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create")), 1)
]),
form: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormInput, {
label: _ctx.__("Domain"),
errors: _ctx.$page.props.errors.domain,
modelValue: $data.form.domain,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.domain = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save changes")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
]),
_: 1
}),
!$props.aliases.length ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
$props.aliases.length ? (openBlock(), createBlock(_component_SettingsSegment, { key: 1 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Aliases")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_Table, { caption: "Aliases list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Alias")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.aliases, (alias, index) => {
return openBlock(), createBlock(_component_TableRow, { key: index }, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_StatusBubble, { variant: "success" })
], void 0, true),
_: 1
}),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(alias), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
variant: "danger",
size: "sm",
onClick: ($event) => $options.confirmDelete(alias)
}, {
default: withCtx(() => [
_hoisted_1
], void 0, true),
_: 2
}, 1032, ["onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Aliases = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Aliases as default
};

309
public/build/assets/Apps.03be88c4.js vendored Normal file
View File

@@ -0,0 +1,309 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, d as createCommentVNode, b as createBaseVNode, j as withDirectives, v as vModelCheckbox } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: this.__("Apps")
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData
},
data() {
return {
sending: false,
type: null,
options: {
create_database: false
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("Apps"),
to: this.route("sites.apps.index", this.site.id)
}
]
};
},
props: {
site: Object
},
methods: {
prepareInstall(type) {
this.type = type;
},
install() {
this.$inertia.post(this.route("sites.apps.store", this.site.id), {
type: this.type,
options: this.options
}, {
onFinish: () => {
this.type = null;
}
});
},
uninstall() {
this.$inertia.delete(this.route("sites.apps.delete", this.site.id));
}
}
};
const _hoisted_1 = { class: "grid grid-cols-1 md:grid-cols-3 gap-4" };
const _hoisted_2 = {
for: "create_database",
class: "ml-2 text-sm"
};
const _hoisted_3 = { class: "text-small mt-1 text-medium-emphasis" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_Button = resolveComponent("Button");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Apps")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
$props.site.project ? (openBlock(), createBlock(_component_SettingsSegment, { key: 0 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Overview")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("You currently have :application installed.", { application: $props.site.project })), 1)
]),
content: withCtx(() => [
createVNode(_component_Button, {
variant: "danger",
onClick: $options.uninstall
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Uninstall")), 1)
], void 0, true),
_: 1
}, 8, ["onClick"])
]),
_: 1
})) : createCommentVNode("", true),
!$props.site.project ? (openBlock(), createBlock(_component_SettingsSegment, { key: 1 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Overview")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("You have the ability here to directly install one of these applications on the fly.")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", _hoisted_1, [
createVNode(_component_Button, {
variant: $data.type === "wordpress" ? "primary" : "secondary",
onClick: _cache[0] || (_cache[0] = ($event) => $options.prepareInstall("wordpress"))
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Install WordPress")), 1)
], void 0, true),
_: 1
}, 8, ["variant"]),
createVNode(_component_Button, {
variant: $data.type === "nextcloud" ? "primary" : "secondary",
onClick: _cache[1] || (_cache[1] = ($event) => $options.prepareInstall("nextcloud"))
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Install Nextcloud")), 1)
], void 0, true),
_: 1
}, 8, ["variant"]),
createVNode(_component_Button, {
variant: $data.type === "october-cms" ? "primary" : "secondary",
onClick: _cache[2] || (_cache[2] = ($event) => $options.prepareInstall("october-cms"))
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Install October CMS")), 1)
], void 0, true),
_: 1
}, 8, ["variant"])
])
]),
_: 1
})) : createCommentVNode("", true),
$data.type === "wordpress" ? (openBlock(), createBlock(_component_SettingsSegment, { key: 2 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("WordPress")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("WordPress is open source software you can use to create a beautiful website, blog, or app.")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
withDirectives(createBaseVNode("input", {
id: "create_database",
class: "form-checkbox",
type: "checkbox",
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.options.create_database = $event)
}, null, 512), [
[vModelCheckbox, $data.options.create_database]
]),
createBaseVNode("label", _hoisted_2, toDisplayString(_ctx.__("Create database & attach to WordPress")), 1),
createBaseVNode("p", _hoisted_3, toDisplayString(_ctx.__("This will also create a database and attach it directly for you so you have a easy start.")), 1)
]),
createVNode(_component_Button, { onClick: $options.install }, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Start installation")), 1)
], void 0, true),
_: 1
}, 8, ["onClick"]),
createVNode(_component_Button, {
variant: "secondary",
onClick: _cache[4] || (_cache[4] = ($event) => $data.type = null)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Cancel")), 1)
], void 0, true),
_: 1
})
]),
_: 1
})) : createCommentVNode("", true),
$data.type === "nextcloud" ? (openBlock(), createBlock(_component_SettingsSegment, { key: 3 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Nextcloud")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Nextcloud is a suite of client-server software for creating and using file hosting services, it is comparable to Dropbox.")), 1)
]),
content: withCtx(() => [
createVNode(_component_Button, { onClick: $options.install }, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Start installation")), 1)
], void 0, true),
_: 1
}, 8, ["onClick"]),
createVNode(_component_Button, {
variant: "secondary",
onClick: _cache[5] || (_cache[5] = ($event) => $data.type = null)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Cancel")), 1)
], void 0, true),
_: 1
})
]),
_: 1
})) : createCommentVNode("", true),
$data.type === "october-cms" ? (openBlock(), createBlock(_component_SettingsSegment, { key: 4 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("October CMS")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("October is a free, open-source and self-hosted content management system (CMS) based on the PHP programming language and Laravel web application framework.")), 1)
]),
content: withCtx(() => [
createVNode(_component_Button, { onClick: $options.install }, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Start installation")), 1)
], void 0, true),
_: 1
}, 8, ["onClick"]),
createVNode(_component_Button, {
variant: "secondary",
onClick: _cache[6] || (_cache[6] = ($event) => $data.type = null)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Cancel")), 1)
], void 0, true),
_: 1
})
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Apps = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Apps as default
};

File diff suppressed because one or more lines are too long

140
public/build/assets/Article.449fe949.js vendored Normal file
View File

@@ -0,0 +1,140 @@
import TopBar from "./TopBar.cc8ad583.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import Tabs from "./Tabs.f7955794.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: this.article.title
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormTextarea,
FormActions,
EmptyImage,
Tabs,
SettingsLayout,
SettingsSegment
},
props: {
category: Object,
items: Object,
article: Object
},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Documentation"),
to: this.route("documentation.index")
},
{
title: this.category.title,
to: this.route("documentation.show", this.category.id)
},
{
title: this.article.title,
to: this.route("documentation.article.show", [this.category.id, this.article.id])
}
]
};
}
};
const _hoisted_1 = ["innerHTML"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.article.title), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, {
items: $props.items.data
}, null, 8, ["items"])
]),
segments: withCtx(() => [
createBaseVNode("div", {
class: "prose",
innerHTML: $props.article.content
}, null, 8, _hoisted_1)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Article = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Article as default
};

View File

@@ -1 +0,0 @@
import r from"./TopBar.3db272ee.js";import i from"./Container.f87d9f62.js";import e from"./Content.e22a1fd6.js";import m from"./Page.3927bdbf.js";import p from"./PageHeader.a5f457a5.js";import n from"./PageHeaderTitle.3ed783af.js";import a from"./PageBody.dec1fae1.js";import s from"./Button.f17dffc9.js";import c from"./EmptyImage.4bfdf9ac.js";import f from"./List.d5d221b1.js";import l from"./ListItem.ee1e88fb.js";import u from"./StatusBubble.4f1d8322.js";import d from"./NotificationBadge.b6fae3d5.js";import g from"./MainLayout.39e63d2b.js";import _ from"./IconBox.e6c961ac.js";import y from"./IconGlobe.07030b80.js";import b from"./IconStorage.ef2b2e41.js";import h from"./Modal.a59fc373.js";import P from"./ModalContainer.51de3ea9.js";import v from"./FormInput.e3b01057.js";import x from"./FormTextarea.5b8e3d32.js";import B from"./FormActions.83ccca91.js";import S from"./SettingsSegment.e8fdfb41.js";import T from"./SettingsLayout.3305573b.js";import C from"./Tabs.7c761f05.js";import{n as I}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./IconClose.edb7c8fd.js";import"./Form.2cdcadd9.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const L={metaInfo(){return{title:this.article.title}},layout:g,components:{TopBar:r,Container:i,Content:e,Page:m,PageHeader:p,PageHeaderTitle:n,PageBody:a,Button:s,List:f,ListItem:l,StatusBubble:u,NotificationBadge:d,IconBox:_,IconGlobe:y,IconStorage:b,Modal:h,ModalContainer:P,FormInput:v,FormTextarea:x,FormActions:B,EmptyImage:c,Tabs:C,SettingsLayout:T,SettingsSegment:S},props:{category:Object,items:Object,article:Object},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Documentation"),to:this.route("documentation.index")},{title:this.category.title,to:this.route("documentation.show",this.category.id)},{title:this.article.title,to:this.route("documentation.article.show",[this.category.id,this.article.id])}]}}};var H=function(){var t=this,o=t._self._c;return o("Page",[o("TopBar",{attrs:{breadcrumbs:t.breadcrumbs}}),o("Content",[o("Container",[o("PageHeader",{scopedSlots:t._u([{key:"start",fn:function(){return[o("PageHeaderTitle",[t._v(t._s(t.article.title))])]},proxy:!0}])}),o("PageBody",[o("SettingsLayout",{scopedSlots:t._u([{key:"nav",fn:function(){return[o("Tabs",{attrs:{items:t.items.data}})]},proxy:!0},{key:"segments",fn:function(){return[o("div",{staticClass:"prose",domProps:{innerHTML:t._s(t.article.content)}})]},proxy:!0}])})],1)],1)],1)],1)},F=[],M=I(L,H,F,!1,null,null,null,null);const wt=M.exports;export{wt as default};

680
public/build/assets/Billing.12cb1bf8.js vendored Normal file
View File

@@ -0,0 +1,680 @@
import TopBar from "./TopBar.1920e57d.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { I as IconArrowDown, a as IconArrowUp } from "./IconArrowDown.9b5fd04b.js";
import { I as IconClose, M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { u as useNotification } from "./notification.4c298cac.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, b as createBaseVNode, c as createElementBlock, t as toDisplayString, d as createCommentVNode, g as withModifiers, e as createTextVNode, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Billing")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
IconArrowDown,
IconArrowUp,
IconClose,
Modal,
ModalContainer,
FormInput,
FormSelect,
FormTextarea,
FormActions,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData
},
props: {
packages: Array,
countries: Object,
subscription: [Object, null],
public_key: String,
data_client_secret: String,
card: Object,
filters: Object,
ends: String
},
data() {
return {
sending: false,
clientSecret: this.data_client_secret,
stripe: null,
cardElement: null,
cardHolderName: this.$page.props.auth.user.name,
currentCardLastFour: this.card.last_four,
currentCardBrand: this.card.brand,
coupon: "",
address: this.$page.props.auth.user.address,
country: this.$page.props.auth.user.country,
zip: this.$page.props.auth.user.zip,
city: this.$page.props.auth.user.city,
invoices: [],
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Billing"),
to: this.route("profile.billing.index")
}
]
};
},
mounted() {
const stripe = Stripe(this.public_key);
this.stripe = stripe;
const elements = stripe.elements();
const cardElement = elements.create("card");
cardElement.mount("#card-element");
this.cardElement = cardElement;
this.getInvoices();
},
watch: {
sending: function(value) {
if (value) {
this.cardElement.update({
disabled: true
});
} else {
this.cardElement.update({
disabled: false
});
}
}
},
methods: {
useNotification,
useConfirm,
async updateBilling() {
this.sending = true;
const { setupIntent, error } = await this.stripe.confirmCardSetup(
this.clientSecret,
{
payment_method: {
card: this.cardElement,
billing_details: {
name: this.cardHolderName,
address: {
line1: this.address,
postal_code: this.zip,
city: this.city,
country: this.country
}
}
}
}
);
if (error) {
this.sending = false;
this.useNotification({
variant: "danger",
title: this.__(`Error`),
message: error.message
});
} else {
const paymentMethod = setupIntent.payment_method;
this.$inertia.post(this.route("profile.billing.update.card"), {
payment_method: paymentMethod,
billing_details: {
name: this.cardHolderName,
address: {
line1: this.address,
postal_code: this.zip,
city: this.city,
country: this.country
}
}
}, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
}
},
updatePlan(id) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Are you ready to subscribe to this plan? If you have any coupon codes, make sure to enter them before subscribing."),
variant: "info",
onConfirm: () => {
this.$inertia.post(this.route("profile.billing.update.plan"), {
plan: id,
coupon: this.coupon
}, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
}
});
},
confirmCancel() {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your subscription will be put to an end. An expire date will be send to you when your plan expires."),
onConfirm: () => this.cancel()
});
},
cancel() {
this.$inertia.delete(this.route("profile.billing.cancel.plan"), {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
},
getInvoices() {
window.axios.get(this.route("profile.billing.invoices")).then((response) => this.invoices = response.data);
},
requestFilterUrl(properties) {
this.$inertia.visit(route("profile.billing.index", properties), {
only: ["filters", "packages"]
});
},
deleteCard() {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Are you sure you want to remove your card from your account? New payments will not be able to process."),
onConfirm: () => {
this.$inertia.delete(route("profile.billing.delete.card"), {
onStart: () => {
this.sending = true;
},
onFinish: () => {
this.sending = false;
this.currentCardLastFour = null;
}
});
}
});
}
}
};
const _hoisted_1 = { class: "grid grid-cols-1 md:grid-cols-5 gap-8" };
const _hoisted_2 = { class: "md:col-span-2 space-y-4" };
const _hoisted_3 = {
key: 0,
class: "space-y-4 border-b border-low-emphasis pb-4"
};
const _hoisted_4 = { class: "text-lg text-medium-emphasis" };
const _hoisted_5 = { class: "text-lg text-medium-emphasis" };
const _hoisted_6 = {
key: 0,
class: "border-b border-low-emphasis pb-4 space-y-2"
};
const _hoisted_7 = ["value", "textContent"];
const _hoisted_8 = { class: "w-full pb-4" };
const _hoisted_9 = {
class: "form-label",
for: "card-element"
};
const _hoisted_10 = /* @__PURE__ */ createBaseVNode("div", {
id: "card-element",
class: "form-input"
}, null, -1);
const _hoisted_11 = {
key: 0,
class: "md:col-span-3 space-y-8"
};
const _hoisted_12 = /* @__PURE__ */ createBaseVNode("div", {
class: "bg-primary text-on-primary px-4 py-3 rounded relative space-y-2",
role: "alert"
}, [
/* @__PURE__ */ createBaseVNode("strong", { class: "font-bold" }, "No packages available."),
/* @__PURE__ */ createBaseVNode("p", { class: "block" }, " There are currently no packages to choose from. If you're and administrator, you can attach packages via the administrator area. ")
], -1);
const _hoisted_13 = [
_hoisted_12
];
const _hoisted_14 = {
key: 1,
class: "md:col-span-3 space-y-8"
};
const _hoisted_15 = { class: "text-lg text-medium-emphasis" };
const _hoisted_16 = ["aria-label"];
const _hoisted_17 = ["aria-label"];
const _hoisted_18 = ["aria-label"];
const _hoisted_19 = ["aria-label"];
const _hoisted_20 = { class: "md:col-span-5 space-y-8 border-t border-low-emphasis" };
const _hoisted_21 = {
key: 0,
class: "mt-5 text-lg text-medium-emphasis"
};
const _hoisted_22 = ["href"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_Button = resolveComponent("Button");
const _component_form_input = resolveComponent("form-input");
const _component_form_select = resolveComponent("form-select");
const _component_IconArrowUp = resolveComponent("IconArrowUp");
const _component_IconArrowDown = resolveComponent("IconArrowDown");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_IconClose = resolveComponent("IconClose");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createBaseVNode("div", _hoisted_1, [
createBaseVNode("div", _hoisted_2, [
$props.ends ? (openBlock(), createElementBlock("div", _hoisted_3, [
createBaseVNode("h2", _hoisted_4, toDisplayString(_ctx.__("Subscription")), 1),
createBaseVNode("p", null, " Renews on " + toDisplayString($props.ends), 1)
])) : createCommentVNode("", true),
createBaseVNode("h2", _hoisted_5, toDisplayString(_ctx.__("Card information")), 1),
createBaseVNode("form", {
onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.updateBilling && $options.updateBilling(...args), ["prevent"])),
class: "space-y-4"
}, [
$data.currentCardLastFour ? (openBlock(), createElementBlock("div", _hoisted_6, [
createBaseVNode("p", null, " \xB7\xB7\xB7\xB7\xA0\xB7\xB7\xB7\xB7\xA0\xB7\xB7\xB7\xB7\xA0 " + toDisplayString($data.currentCardLastFour) + " (" + toDisplayString($data.currentCardBrand) + ") ", 1),
createVNode(_component_Button, {
onClick: $options.deleteCard,
size: "sm",
loading: $data.sending,
variant: "danger",
type: "button"
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Remove card")), 1)
], void 0, true),
_: 1
}, 8, ["onClick", "loading"])
])) : createCommentVNode("", true),
createVNode(_component_form_input, {
modelValue: $data.cardHolderName,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.cardHolderName = $event),
errors: _ctx.$page.props.errors.card_holder_name,
disabled: $data.sending,
id: "card-holder-name",
label: _ctx.__("Card holder name")
}, null, 8, ["modelValue", "errors", "disabled", "label"]),
createVNode(_component_form_input, {
modelValue: $data.address,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.address = $event),
errors: _ctx.$page.props.errors.address,
disabled: $data.sending,
label: _ctx.__("Address")
}, null, 8, ["modelValue", "errors", "disabled", "label"]),
createVNode(_component_form_select, {
disabled: $data.sending,
label: _ctx.__("Country"),
errors: _ctx.$page.props.errors.country,
modelValue: $data.country,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.country = $event)
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.countries, (country, code) => {
return openBlock(), createElementBlock("option", {
value: code,
textContent: toDisplayString(country)
}, null, 8, _hoisted_7);
}), 256))
], void 0, true),
_: 1
}, 8, ["disabled", "label", "errors", "modelValue"]),
createVNode(_component_form_input, {
modelValue: $data.zip,
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.zip = $event),
errors: _ctx.$page.props.errors.zip,
disabled: $data.sending,
label: _ctx.__("ZIP (postal code)")
}, null, 8, ["modelValue", "errors", "disabled", "label"]),
createVNode(_component_form_input, {
modelValue: $data.city,
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.city = $event),
errors: _ctx.$page.props.errors.city,
disabled: $data.sending,
label: _ctx.__("City")
}, null, 8, ["modelValue", "errors", "disabled", "label"]),
createBaseVNode("div", _hoisted_8, [
createBaseVNode("label", _hoisted_9, toDisplayString(_ctx.__("Card details")), 1),
_hoisted_10
]),
createVNode(_component_Button, {
"data-secret": $data.clientSecret,
id: "card-button",
loading: $data.sending,
type: "submit"
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
}, 8, ["data-secret", "loading"]),
$props.subscription ? (openBlock(), createBlock(_component_Button, {
key: 1,
onClick: $options.confirmCancel,
loading: $data.sending,
variant: "danger",
type: "button"
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Cancel")), 1)
], void 0, true),
_: 1
}, 8, ["onClick", "loading"])) : createCommentVNode("", true)
], 32)
]),
!$props.packages.length ? (openBlock(), createElementBlock("div", _hoisted_11, _hoisted_13)) : createCommentVNode("", true),
$props.packages.length ? (openBlock(), createElementBlock("div", _hoisted_14, [
createBaseVNode("h2", _hoisted_15, toDisplayString(_ctx.__("Available packages")), 1),
createVNode(_component_form_input, {
modelValue: $data.coupon,
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $data.coupon = $event),
errors: _ctx.$page.props.errors.coupon,
disabled: $data.sending,
placeholder: _ctx.__("Enter a coupon code if you have one, before subscribing"),
class: "pb-4",
label: _ctx.__("Coupon")
}, null, 8, ["modelValue", "errors", "disabled", "placeholder", "label"]),
createVNode(_component_Table, { caption: "Package list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createBaseVNode("a", {
href: "javascript:void(0);",
"data-balloon-blunt": "",
"aria-label": _ctx.__("Sort by name"),
"data-balloon-pos": "up",
class: "text-primary flex items-center space-x-2",
onClick: _cache[7] || (_cache[7] = ($event) => $options.requestFilterUrl({ sortBy: { "name": $props.filters.sort.name === "asc" ? "desc" : "asc" } }))
}, [
createBaseVNode("span", null, toDisplayString(_ctx.__("Name")), 1),
$props.filters.sort.name === "asc" ? (openBlock(), createBlock(_component_IconArrowUp, { key: 0 })) : createCommentVNode("", true),
$props.filters.sort.name === "desc" ? (openBlock(), createBlock(_component_IconArrowDown, { key: 1 })) : createCommentVNode("", true)
], 8, _hoisted_16)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createBaseVNode("a", {
href: "javascript:void(0);",
"data-balloon-blunt": "",
"aria-label": _ctx.__("Sort by maximum sites"),
"data-balloon-pos": "up",
class: "text-primary flex items-center space-x-2",
onClick: _cache[8] || (_cache[8] = ($event) => $options.requestFilterUrl({ sortBy: { "sites": $props.filters.sort.sites === "asc" ? "desc" : "asc" } }))
}, [
createBaseVNode("span", null, toDisplayString(_ctx.__("Max sites")), 1),
$props.filters.sort.sites === "asc" ? (openBlock(), createBlock(_component_IconArrowUp, { key: 0 })) : createCommentVNode("", true),
$props.filters.sort.sites === "desc" ? (openBlock(), createBlock(_component_IconArrowDown, { key: 1 })) : createCommentVNode("", true)
], 8, _hoisted_17)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createBaseVNode("a", {
href: "javascript:void(0);",
"data-balloon-blunt": "",
"aria-label": _ctx.__("Sort by maximum servers"),
"data-balloon-pos": "up",
class: "text-primary flex items-center space-x-2",
onClick: _cache[9] || (_cache[9] = ($event) => $options.requestFilterUrl({ sortBy: { "servers": $props.filters.sort.servers === "asc" ? "desc" : "asc" } }))
}, [
createBaseVNode("span", null, toDisplayString(_ctx.__("Max servers")), 1),
$props.filters.sort.servers === "asc" ? (openBlock(), createBlock(_component_IconArrowUp, { key: 0 })) : createCommentVNode("", true),
$props.filters.sort.servers === "desc" ? (openBlock(), createBlock(_component_IconArrowDown, { key: 1 })) : createCommentVNode("", true)
], 8, _hoisted_18)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createBaseVNode("a", {
href: "javascript:void(0);",
"data-balloon-blunt": "",
"aria-label": _ctx.__("Sort by price"),
"data-balloon-pos": "up",
class: "text-primary flex items-center space-x-2",
onClick: _cache[10] || (_cache[10] = ($event) => $options.requestFilterUrl({ sortBy: { "price": $props.filters.sort.price === "asc" ? "desc" : "asc" } }))
}, [
createBaseVNode("span", null, toDisplayString(_ctx.__("Price")), 1),
$props.filters.sort.price === "asc" ? (openBlock(), createBlock(_component_IconArrowUp, { key: 0 })) : createCommentVNode("", true),
$props.filters.sort.price === "desc" ? (openBlock(), createBlock(_component_IconArrowDown, { key: 1 })) : createCommentVNode("", true)
], 8, _hoisted_19)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createVNode(_component_inertia_link, {
href: _ctx.route("profile.billing.index"),
"data-balloon-blunt": "",
"aria-label": _ctx.__("Clear sorting"),
"data-balloon-pos": "up"
}, {
default: withCtx(() => [
createVNode(_component_IconClose)
], void 0, true),
_: 1
}, 8, ["href", "aria-label"])
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.packages, (webPackage) => {
return openBlock(), createBlock(_component_TableRow, {
key: webPackage.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(webPackage.name), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(webPackage.maximum_sites === 0 ? "Unlimited" : webPackage.maximum_sites), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(webPackage.maximum_servers === 0 ? "Unlimited" : webPackage.maximum_servers), 1)
], void 0, true),
_: 2
}, 1024),
webPackage.period === "monthly" ? (openBlock(), createBlock(_component_TableData, { key: 0 }, {
default: withCtx(() => [
createTextVNode(toDisplayString(webPackage.price_monthly) + " p/month ", 1)
], void 0, true),
_: 2
}, 1024)) : webPackage.period === "yearly" ? (openBlock(), createBlock(_component_TableData, { key: 1 }, {
default: withCtx(() => [
createTextVNode(toDisplayString(webPackage.price_yearly) + " yearly ", 1)
], void 0, true),
_: 2
}, 1024)) : createCommentVNode("", true),
createVNode(_component_TableData, { class: "text-right" }, {
default: withCtx(() => [
createVNode(_component_Button, {
size: "sm",
disabled: $data.sending || $props.subscription && webPackage.plan_id === $props.subscription.stripe_plan,
onClick: ($event) => $options.updatePlan(webPackage.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Subscribe")), 1)
], void 0, true),
_: 2
}, 1032, ["disabled", "onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
])) : createCommentVNode("", true),
createBaseVNode("div", _hoisted_20, [
$data.invoices.length ? (openBlock(), createElementBlock("h2", _hoisted_21, toDisplayString(_ctx.__("Invoices")), 1)) : createCommentVNode("", true),
$data.invoices.length ? (openBlock(), createBlock(_component_Table, {
key: 1,
caption: "Invoice list overview"
}, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Number")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Status")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Total")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Date")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($data.invoices, (invoice) => {
return openBlock(), createBlock(_component_TableRow, {
key: invoice.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(invoice.number), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(invoice.status), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(invoice.total), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(invoice.created), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createBaseVNode("a", {
class: "text-primary",
href: _ctx.route("profile.billing.invoices.pdf", invoice.id)
}, "Download", 8, _hoisted_22)
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})) : createCommentVNode("", true)
])
])
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Billing = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Billing as default
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,102 @@
import TopBar from "./TopBar.1920e57d.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { I as IconArrowDown, a as IconArrowUp } from "./IconArrowDown.9b5fd04b.js";
import { I as IconClose, M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, b as createBaseVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
import "./Form.097b2c0b.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Billing error")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
IconArrowDown,
IconArrowUp,
IconClose,
Modal,
ModalContainer
},
props: {},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Billing error"),
to: this.route("profile.billing.index")
}
]
};
}
};
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("div", {
class: "bg-warning text-on-warning px-4 py-3 rounded relative space-y-2",
role: "alert"
}, [
/* @__PURE__ */ createBaseVNode("strong", { class: "font-bold" }, "Problem with billing provider."),
/* @__PURE__ */ createBaseVNode("p", { class: "block" }, " There's an issue getting in touch with the payment service provider. Please check your settings and the error log or get in touch with the administrator of this software. "),
/* @__PURE__ */ createBaseVNode("a", {
class: "block font-bold underline",
href: "https://docs.ploi-core.io/digging-deeper/using-stripe",
target: "_blank"
}, "How to setup Stripe for billing")
], -1);
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageBody, null, {
default: withCtx(() => [
_hoisted_1
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const BillingError = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
BillingError as default
};

View File

@@ -1 +0,0 @@
import t from"./TopBar.51894da2.js";import i from"./Container.f87d9f62.js";import e from"./Content.e22a1fd6.js";import m from"./Page.3927bdbf.js";import n from"./PageHeader.a5f457a5.js";import p from"./PageHeaderTitle.3ed783af.js";import a from"./PageBody.dec1fae1.js";import s from"./Button.f17dffc9.js";import l from"./List.d5d221b1.js";import f from"./ListItem.ee1e88fb.js";import c from"./StatusBubble.4f1d8322.js";import g from"./NotificationBadge.b6fae3d5.js";import d from"./MainLayout.39e63d2b.js";import u from"./IconBox.e6c961ac.js";import _ from"./IconGlobe.07030b80.js";import b from"./IconStorage.ef2b2e41.js";import h from"./IconArrowUp.5ed32d30.js";import v from"./IconArrowDown.defeed18.js";import B from"./IconClose.edb7c8fd.js";import C from"./Modal.a59fc373.js";import w from"./ModalContainer.51de3ea9.js";import{n as y}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./FormActions.83ccca91.js";import"./Form.2cdcadd9.js";const I={metaInfo(){return{title:`${this.__("Billing error")}`}},layout:d,components:{TopBar:t,Container:i,Content:e,Page:m,PageHeader:n,PageHeaderTitle:p,PageBody:a,Button:s,List:l,ListItem:f,StatusBubble:c,NotificationBadge:g,IconBox:u,IconGlobe:_,IconStorage:b,IconArrowDown:v,IconArrowUp:h,IconClose:B,Modal:C,ModalContainer:w},props:{},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Billing error"),to:this.route("profile.billing.index")}]}}};var P=function(){var o=this,r=o._self._c;return r("Page",[r("TopBar",{attrs:{breadcrumbs:o.breadcrumbs}}),r("Content",[r("Container",[r("PageBody",[r("div",{staticClass:"bg-warning text-on-warning px-4 py-3 rounded relative space-y-2",attrs:{role:"alert"}},[r("strong",{staticClass:"font-bold"},[o._v("Problem with billing provider.")]),r("p",{staticClass:"block"},[o._v(" There's an issue getting in touch with the payment service provider. Please check your settings and the error log or get in touch with the administrator of this software. ")]),r("a",{staticClass:"block font-bold underline",attrs:{href:"https://docs.ploi-core.io/digging-deeper/using-stripe",target:"_blank"}},[o._v("How to setup Stripe for billing")])])])],1)],1)],1)},x=[],k=y(I,P,x,!1,null,null,null,null);const Cr=k.exports;export{Cr as default};

View File

@@ -1 +0,0 @@
import n from"./BreadcrumbsItem.da3f8155.js";import{n as a}from"./plugin-vue2_normalizer.000ba15c.js";const l={components:{BreadcrumbsItem:n},props:{items:{type:Array,required:!0}}};var o=function(){var e=this,t=e._self._c;return t("ul",{staticClass:"flex items-center space-x-2"},e._l(e.items,function(r,s){return t("li",{key:r.title},[t("BreadcrumbsItem",{attrs:{to:r.to}},[e._v(e._s(r.title))]),s<e.items.length-1?t("span",{staticClass:"ml-2 text-low-emphasis"},[e._v("/")]):e._e()],1)}),0)},c=[],m=a(l,o,c,!1,null,null,null,null);const p=m.exports;export{p as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const n={props:{to:{type:String,required:!0}}};var s=function(){var t=this,e=t._self._c;return e("inertia-link",{staticClass:"font-medium text-body text-breadcrumbs",attrs:{href:t.to}},[t._t("default")],2)},a=[],o=r(n,s,a,!1,null,null,null,null);const c=o.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const l="items-center justify-center font-medium capitalize rounded select-none focus:outline-none",i="flex w-full text-body",r="inline-flex text-small",a={primary:"bg-primary text-on-primary shadow",danger:"bg-danger text-on-danger shadow",secondary:"bg-surface-2 text-high-emphasis"},o={sm:"h-8 px-2",md:"h-10 px-5"},d={props:{as:{default:()=>"button"},href:{default:()=>null},block:{type:Boolean,default:()=>!1},variant:{type:String,default:()=>"primary",validator:s=>Object.keys(a).includes(s)},size:{type:String,default:"md"},loading:{default:!1},disabled:{default:!1}},data(){return{baseClasses:l,flexClasses:i,inlineFlexClasses:r,variantClasses:a,sizeClasses:o}}};var c=function(){var e=this,t=e._self._c;return t(e.as,{tag:"Component",class:[e.baseClasses,e.sizeClasses[e.size],e.variantClasses[e.variant],e.block?e.flexClasses:e.inlineFlexClasses,e.disabled||e.loading?"opacity-50":"",e.loading?"cursor-wait":""],attrs:{disabled:e.loading||e.disabled,href:e.href},on:{click:function(m){return e.$emit("click")}}},[e._t("default")],2)},f=[],u=n(d,c,f,!1,null,null,null,null);const x=u.exports;export{x as default};

76
public/build/assets/Button.f40f5f07.js vendored Normal file
View File

@@ -0,0 +1,76 @@
import { o as openBlock, f as createBlock, w as withCtx, h as renderSlot, n as normalizeClass, i as resolveDynamicComponent } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const baseClasses = "items-center justify-center font-medium capitalize rounded select-none focus:outline-none";
const flexClasses = "flex w-full text-body";
const inlineFlexClasses = "inline-flex text-small";
const variantClasses = {
primary: "bg-primary text-on-primary shadow",
danger: "bg-danger text-on-danger shadow",
secondary: "bg-surface-2 text-high-emphasis"
};
const sizeClasses = {
sm: "h-8 px-2",
md: "h-10 px-5"
};
const _sfc_main = {
props: {
as: {
default: () => "button"
},
href: {
default: () => null
},
block: {
type: Boolean,
default: () => false
},
variant: {
type: String,
default: () => "primary",
validator: (variant) => Object.keys(variantClasses).includes(variant)
},
size: {
type: String,
default: "md"
},
loading: {
default: false
},
disabled: {
default: false
}
},
data() {
return {
baseClasses,
flexClasses,
inlineFlexClasses,
variantClasses,
sizeClasses
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createBlock(resolveDynamicComponent($props.as), {
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click")),
class: normalizeClass([
$data.baseClasses,
$data.sizeClasses[$props.size],
$data.variantClasses[$props.variant],
$props.block ? $data.flexClasses : $data.inlineFlexClasses,
$props.disabled || $props.loading ? "opacity-50" : "",
$props.loading ? "cursor-wait" : ""
]),
disabled: $props.loading || $props.disabled,
href: $props.href
}, {
default: withCtx(() => [
renderSlot(_ctx.$slots, "default")
], void 0, true),
_: 3
}, 8, ["class", "disabled", "href"]);
}
const Button = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Button as B
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,398 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, c as createElementBlock, d as createCommentVNode, b as createBaseVNode, g as withModifiers, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Certificates")} - ${this.site.domain}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
FormSelect,
FormTextarea,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Pagination,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData,
EmptyImage
},
data() {
return {
sending: false,
form: {
domain: null,
type: "letsencrypt",
certificate: null,
private: null
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("Certificates"),
to: this.route("sites.certificates.index", this.site.id)
}
]
};
},
mounted() {
if (this.shouldBePolling) {
this.startPollingInterval();
}
this.setDomainData();
},
watch: {
shouldBePolling: function(value) {
if (!value) {
this.clearPollingInterval();
return;
}
if (!this.pollingInterval) {
this.startPollingInterval();
}
}
},
computed: {
shouldBePolling() {
return !!this.certificates.data.filter((certificate) => {
return certificate.status === "busy";
}).length;
}
},
props: {
site: Object,
certificates: Object
},
methods: {
startPollingInterval() {
this.pollingInterval = setInterval(function() {
this.poll();
}.bind(this), 3e3);
},
clearPollingInterval() {
clearTimeout(this.pollingInterval);
this.pollingInterval = null;
},
poll() {
this.$inertia.get(this.route("sites.certificates.index", this.site.id), {
only: ["certificates"],
preserveScroll: true
});
},
submit() {
this.sending = true;
this.$inertia.post(this.route("sites.certificates.store", this.site.id), this.form, {
onFinish: () => {
this.sending = false;
if (!Object.keys(this.$page.props.errors).length) {
this.setDomainData();
}
}
});
},
confirmDelete(certificate) {
useConfirm({
title: this.__("Are you sure?"),
message: `Your certificate will be deleted permanently, this action cannot be undone.`,
onConfirm: () => this.delete(certificate)
});
},
delete(certificate) {
this.$inertia.delete(this.route("sites.certificates.delete", [this.site.id, certificate.id]), {
preserveScroll: true
});
},
setDomainData(withAliases) {
this.form.certificate = null;
this.form.private = null;
if (this.site.domain.startsWith("www.")) {
this.form.domain = this.site.domain + "," + this.site.domain.replace("www.", "");
} else {
this.form.domain = this.site.domain + ",www." + this.site.domain;
}
if (withAliases) {
this.form.domain = this.form.domain + "," + this.site.aliases.join(",");
}
}
},
beforeDestroy() {
this.clearPollingInterval();
}
};
const _hoisted_1 = ["textContent"];
const _hoisted_2 = ["textContent"];
const _hoisted_3 = /* @__PURE__ */ createBaseVNode("option", { value: "letsencrypt" }, "Let's Encrypt certificate", -1);
const _hoisted_4 = /* @__PURE__ */ createBaseVNode("option", { value: "custom" }, "Custom SSL certificate", -1);
const _hoisted_5 = /* @__PURE__ */ createTextVNode("Delete ");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_FormSelect = resolveComponent("FormSelect");
const _component_FormInput = resolveComponent("FormInput");
const _component_FormTextarea = resolveComponent("FormTextarea");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_pagination = resolveComponent("pagination");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Certificates")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
createVNode(_component_SettingsSegment, null, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create")), 1)
]),
subtitle: withCtx(() => [
$data.form.type === "letsencrypt" ? (openBlock(), createElementBlock("span", {
key: 0,
textContent: toDisplayString(_ctx.__("Request a new Let's Encrypt certificate here. Make sure that the DNS has fully propagated."))
}, null, 8, _hoisted_1)) : createCommentVNode("", true),
$data.form.type === "custom" ? (openBlock(), createElementBlock("span", {
key: 1,
textContent: toDisplayString(_ctx.__("Install your own SSL certificate here. Make sure to enter the private key and certificate."))
}, null, 8, _hoisted_2)) : createCommentVNode("", true)
]),
form: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[5] || (_cache[5] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormSelect, {
label: _ctx.__("Select certificate type"),
modelValue: $data.form.type,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.type = $event)
}, {
default: withCtx(() => [
_hoisted_3,
_hoisted_4
], void 0, true),
_: 1
}, 8, ["label", "modelValue"]),
createBaseVNode("div", null, [
$data.form.type === "letsencrypt" ? (openBlock(), createBlock(_component_FormInput, {
key: 0,
label: _ctx.__("Domain"),
errors: _ctx.$page.props.errors.domain,
modelValue: $data.form.domain,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.domain = $event)
}, null, 8, ["label", "errors", "modelValue"])) : createCommentVNode("", true),
createBaseVNode("button", {
type: "button",
onClick: _cache[2] || (_cache[2] = ($event) => $options.setDomainData(true)),
class: "text-primary text-small border-b border-dotted"
}, "Click here to add aliases")
]),
$data.form.type === "custom" ? (openBlock(), createBlock(_component_FormTextarea, {
key: 0,
label: _ctx.__("Private key"),
errors: _ctx.$page.props.errors.private,
rows: "2",
modelValue: $data.form.private,
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.form.private = $event)
}, null, 8, ["label", "errors", "modelValue"])) : createCommentVNode("", true),
$data.form.type === "custom" ? (openBlock(), createBlock(_component_FormTextarea, {
key: 1,
label: _ctx.__("Certificate"),
errors: _ctx.$page.props.errors.certificate,
rows: "2",
modelValue: $data.form.certificate,
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.form.certificate = $event)
}, null, 8, ["label", "errors", "modelValue"])) : createCommentVNode("", true),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save changes")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
]),
_: 1
}),
!$props.certificates.meta.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
$props.certificates.meta.total ? (openBlock(), createBlock(_component_SettingsSegment, { key: 1 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Certificates")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_Table, { caption: "Cronjob list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Certificate")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.certificates.data, (certificate) => {
return openBlock(), createBlock(_component_TableRow, {
key: certificate.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_StatusBubble, {
variant: certificate.status === "busy" ? "gray" : "success"
}, null, 8, ["variant"])
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(certificate.domain), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
disabled: certificate.status === "busy",
variant: "danger",
size: "sm",
onClick: ($event) => $options.confirmDelete(certificate)
}, {
default: withCtx(() => [
_hoisted_5
], void 0, true),
_: 2
}, 1032, ["disabled", "onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
]),
createVNode(_component_pagination, { links: $props.certificates }, null, 8, ["links"])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Certificates = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Certificates as default
};

View File

@@ -1 +0,0 @@
import i from"./TopBar.5d5cd899.js";import e from"./Container.f87d9f62.js";import m from"./Content.e22a1fd6.js";import p from"./Page.3927bdbf.js";import s from"./PageHeader.a5f457a5.js";import n from"./PageHeaderTitle.3ed783af.js";import a from"./PageBody.dec1fae1.js";import u from"./Button.f17dffc9.js";import f from"./List.d5d221b1.js";import l from"./ListItem.ee1e88fb.js";import d from"./StatusBubble.4f1d8322.js";import _ from"./NotificationBadge.b6fae3d5.js";import c from"./MainLayout.39e63d2b.js";import g from"./IconBox.e6c961ac.js";import C from"./IconGlobe.07030b80.js";import b from"./IconStorage.ef2b2e41.js";import h from"./Modal.a59fc373.js";import y from"./ModalContainer.51de3ea9.js";import x from"./FormInput.e3b01057.js";import B from"./FormActions.83ccca91.js";import{n as P}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./IconClose.edb7c8fd.js";import"./Form.2cdcadd9.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const v={metaInfo(){return{title:`${this.__("Closed support requests")}`}},layout:c,components:{TopBar:i,Container:e,Content:m,Page:p,PageHeader:s,PageHeaderTitle:n,PageBody:a,Button:u,List:f,ListItem:l,StatusBubble:d,NotificationBadge:_,IconBox:g,IconGlobe:C,IconStorage:b,Modal:h,ModalContainer:y,FormInput:x,FormActions:B},props:{tickets:Object},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Support"),to:this.route("support.index")},{title:this.__("Closed support requests"),to:this.route("support.index.closed")}]}},methods:{}};var I=function(){var t=this,o=t._self._c;return o("Page",[o("TopBar",{attrs:{breadcrumbs:t.breadcrumbs}}),o("Content",[o("Container",[o("PageHeader",{scopedSlots:t._u([{key:"start",fn:function(){return[o("PageHeaderTitle",[t._v(t._s(t.__("Closed support requests")))])]},proxy:!0}])}),o("PageBody",[o("List",t._l(t.tickets.data,function(r){return o("ListItem",{key:r.id,scopedSlots:t._u([{key:"title",fn:function(){return[o("inertia-link",{staticClass:"text-primary font-medium",attrs:{href:t.route("support.show",r.id)}},[t._v(" "+t._s(r.title)+" ")])]},proxy:!0}],null,!0)})}),1)],1)],1)],1)],1)},L=[],S=P(v,I,L,!1,null,null,null,null);const Lt=S.exports;export{Lt as default};

134
public/build/assets/Closed.d8fe68d2.js vendored Normal file
View File

@@ -0,0 +1,134 @@
import TopBar from "./TopBar.a535e262.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Closed support requests")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormActions
},
props: {
tickets: Object
},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Support"),
to: this.route("support.index")
},
{
title: this.__("Closed support requests"),
to: this.route("support.index.closed")
}
]
};
},
methods: {}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_ListItem = resolveComponent("ListItem");
const _component_List = resolveComponent("List");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Closed support requests")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_List, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.tickets.data, (ticket) => {
return openBlock(), createBlock(_component_ListItem, {
key: ticket.id
}, {
title: withCtx(() => [
createVNode(_component_inertia_link, {
class: "text-primary font-medium",
href: _ctx.route("support.show", ticket.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(ticket.title), 1)
], void 0, true),
_: 2
}, 1032, ["href"])
]),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Closed = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Closed as default
};

View File

@@ -1 +0,0 @@
import{n as s}from"./plugin-vue2_normalizer.000ba15c.js";const i={danger:"text-danger",info:"text-primary"},r={data(){return{variantClasses:i}},computed:{confirm(){return this.$store.state.confirm}},methods:{cancelConfirm(){return this.$store.dispatch("confirm/close")}}};var a=function(){var e=this,t=e._self._c;return e.confirm.isOpen?t("div",{staticClass:"fixed inset-0 z-50 flex items-end justify-center p-2 sm:items-center"},[t("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.cancelConfirm,expression:"cancelConfirm"}],staticClass:"w-full max-w-xs overflow-hidden rounded shadow-2xl bg-surface-1"},[t("header",{staticClass:"px-4 py-6 space-y-2 text-center"},[t("h2",{staticClass:"font-medium text-body"},[e._v(e._s(e.confirm.title))]),t("p",{staticClass:"text-small text-medium-emphasis"},[e._v(e._s(e.confirm.message))])]),t("footer",{staticClass:"grid grid-cols-2 border-t divide-x border-low-emphasis divide-low-emphasis"},[t("button",{staticClass:"inline-flex items-center justify-center h-12 px-4 font-medium transition ease-in-out text-small focus:outline-none text-high-emphasis duration-fast",on:{click:function(n){return e.cancelConfirm()}}},[e._v(" "+e._s(e.__("Cancel"))+" ")]),t("button",{staticClass:"inline-flex items-center justify-center h-12 px-4 font-medium transition ease-in-out text-small focus:outline-none duration-fast",class:e.variantClasses[e.confirm.variant?e.confirm.variant:"danger"],on:{click:function(n){return e.confirm.onConfirm()}}},[e._v(" "+e._s(e.__("Confirm"))+" ")])])])]):e._e()},o=[],c=s(r,a,o,!1,null,null,null,null);const f=c.exports;export{f as default};

View File

@@ -1 +0,0 @@
import r from"./TextDivider.54add59f.js";import i from"./FormInput.e3b01057.js";import o from"./Button.f17dffc9.js";import a from"./Container.f87d9f62.js";import{n}from"./plugin-vue2_normalizer.000ba15c.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const m={metaInfo:{title:"Login"},components:{TextDivider:r,FormInput:i,Button:o,Container:a},props:{errors:Object},data(){return{sending:!1,form:{code:null}}},methods:{submit(){this.$inertia.post(this.route("auth.confirm-2fa.confirm"),this.form,{onStart:()=>this.sending=!0,onFinish:()=>this.sending=!1})}}};var p=function(){var t=this,e=t._self._c;return e("div",{staticClass:"flex items-center justify-center w-full min-h-screen"},[e("Container",{attrs:{size:"small"}},[e("form",{staticClass:"space-y-4",on:{submit:function(s){return s.preventDefault(),t.submit.apply(null,arguments)}}},[e("div",{staticClass:"flex flex-col items-center space-y-5"},[t.$page.props.settings.logo?e("img",{staticClass:"h-14",attrs:{src:t.$page.props.settings.logo}}):t._e(),e("h1",{staticClass:"font-semibold text-center text-title"},[t._v(" Confirm access to "+t._s(t.$page.props.settings.name)+" ")])]),e("FormInput",{attrs:{label:t.__("Code"),autofocus:!0,errors:t.$page.props.errors.code,id:"code",required:""},model:{value:t.form.code,callback:function(s){t.$set(t.form,"code",s)},expression:"form.code"}}),e("Button",{attrs:{variant:"primary",disabled:t.sending,block:""}},[t._v(t._s(t.__("Confirm")))]),t.$page.props.settings.has_terms?e("TextDivider",{attrs:{"without-text":!0}}):t._e(),t.$page.props.settings.has_terms||t.$page.props.settings.has_privacy?e("div",{staticClass:"flex justify-between"},[t.$page.props.settings.has_terms?e("div",[e("inertia-link",{staticClass:"text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted",attrs:{href:t.route("page.show","terms-of-service")}},[t._v(" Terms Of Service ")])],1):t._e(),t.$page.props.settings.has_privacy?e("div",[e("inertia-link",{staticClass:"text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted",attrs:{href:t.route("page.show","privacy-policy")}},[t._v(" Privacy Policy ")])],1):t._e()]):t._e()],1)])],1)},l=[],c=n(m,p,l,!1,null,null,null,null);const w=c.exports;export{w as default};

View File

@@ -0,0 +1,124 @@
import { T as TextDivider } from "./TextDivider.5d9b42bc.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { B as Button } from "./Button.f40f5f07.js";
import { C as Container } from "./Container.23db6f9d.js";
import { c as createElementBlock, a as createVNode, w as withCtx, r as resolveComponent, o as openBlock, b as createBaseVNode, d as createCommentVNode, t as toDisplayString, e as createTextVNode, f as createBlock, g as withModifiers } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main = {
metaInfo: { title: "Login" },
components: {
TextDivider,
FormInput,
Button,
Container
},
props: {
errors: Object
},
data() {
return {
sending: false,
form: {
code: null
}
};
},
methods: {
submit() {
this.$inertia.post(this.route("auth.confirm-2fa.confirm"), this.form, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
}
}
};
const _hoisted_1 = { class: "flex items-center justify-center w-full min-h-screen" };
const _hoisted_2 = { class: "flex flex-col items-center space-y-5" };
const _hoisted_3 = ["src"];
const _hoisted_4 = { class: "font-semibold text-center text-title" };
const _hoisted_5 = {
key: 1,
class: "flex justify-between"
};
const _hoisted_6 = { key: 0 };
const _hoisted_7 = /* @__PURE__ */ createTextVNode(" Terms Of Service ");
const _hoisted_8 = { key: 1 };
const _hoisted_9 = /* @__PURE__ */ createTextVNode(" Privacy Policy ");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_TextDivider = resolveComponent("TextDivider");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_Container = resolveComponent("Container");
return openBlock(), createElementBlock("div", _hoisted_1, [
createVNode(_component_Container, { size: "small" }, {
default: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createBaseVNode("div", _hoisted_2, [
_ctx.$page.props.settings.logo ? (openBlock(), createElementBlock("img", {
key: 0,
class: "h-14",
src: _ctx.$page.props.settings.logo
}, null, 8, _hoisted_3)) : createCommentVNode("", true),
createBaseVNode("h1", _hoisted_4, " Confirm access to " + toDisplayString(_ctx.$page.props.settings.name), 1)
]),
createVNode(_component_FormInput, {
label: _ctx.__("Code"),
autofocus: true,
errors: _ctx.$page.props.errors.code,
modelValue: $data.form.code,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.code = $event),
id: "code",
required: ""
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_Button, {
variant: "primary",
disabled: $data.sending,
block: ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Confirm")), 1)
], void 0, true),
_: 1
}, 8, ["disabled"]),
_ctx.$page.props.settings.has_terms ? (openBlock(), createBlock(_component_TextDivider, {
key: 0,
"without-text": true
})) : createCommentVNode("", true),
_ctx.$page.props.settings.has_terms || _ctx.$page.props.settings.has_privacy ? (openBlock(), createElementBlock("div", _hoisted_5, [
_ctx.$page.props.settings.has_terms ? (openBlock(), createElementBlock("div", _hoisted_6, [
createVNode(_component_inertia_link, {
href: _ctx.route("page.show", "terms-of-service"),
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => [
_hoisted_7
], void 0, true),
_: 1
}, 8, ["href"])
])) : createCommentVNode("", true),
_ctx.$page.props.settings.has_privacy ? (openBlock(), createElementBlock("div", _hoisted_8, [
createVNode(_component_inertia_link, {
href: _ctx.route("page.show", "privacy-policy"),
class: "text-small text-medium-emphasis hover:text-high-emphasis border-b border-dotted"
}, {
default: withCtx(() => [
_hoisted_9
], void 0, true),
_: 1
}, 8, ["href"])
])) : createCommentVNode("", true)
])) : createCommentVNode("", true)
], 32)
], void 0, true),
_: 1
})
]);
}
const ConfirmTwoFactorAuthentication = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
ConfirmTwoFactorAuthentication as default
};

View File

@@ -0,0 +1,36 @@
import { o as openBlock, c as createElementBlock, h as renderSlot, n as normalizeClass } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const baseClasses = "w-full px-4 sm:px-8 mx-auto";
const sizeClasses = {
small: "max-w-sm",
medium: "max-w-xl",
base: "max-w-5xl",
large: "max-w-screen-xl",
fluid: "max-w-none"
};
const _sfc_main = {
props: {
size: {
type: String,
default: () => "base",
validator: (size) => Object.keys(sizeClasses).includes(size)
}
},
data() {
return {
baseClasses,
sizeClasses
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", {
class: normalizeClass([$data.baseClasses, $data.sizeClasses[$props.size]])
}, [
renderSlot(_ctx.$slots, "default")
], 2);
}
const Container = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Container as C
};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const t="w-full px-4 sm:px-8 mx-auto",a={small:"max-w-sm",medium:"max-w-xl",base:"max-w-5xl",large:"max-w-screen-xl",fluid:"max-w-none"},r={props:{size:{type:String,default:()=>"base",validator:e=>Object.keys(a).includes(e)}},data(){return{baseClasses:t,sizeClasses:a}}};var o=function(){var s=this,l=s._self._c;return l("div",{class:[s.baseClasses,s.sizeClasses[s.size]]},[s._t("default")],2)},m=[],i=n(r,o,m,!1,null,null,null,null);const u=i.exports;export{u as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const a={};var r=function(){var n=this,t=n._self._c;return t("main",{staticClass:"flex-1 bg-surface-1",attrs:{id:"main"}},[n._t("default")],2)},s=[],l=e(a,r,s,!1,null,null,null,null);const c=l.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n as s}from"./plugin-vue2_normalizer.000ba15c.js";const r={data(){return{copied:!1}},props:{label:String,value:String},methods:{copy(){this.copied=!0,this.$copyText(this.value)}},watch:{copied(){let t=this;this.copied&&setTimeout(()=>{t.copied=!1},1250)}},computed:{copyText(){return this.copied?this.__("Copied to clipboard"):`${this.label}`}}};var i=function(){var e=this,o=e._self._c;return o("span",{staticClass:"cursor-pointer",domProps:{innerHTML:e._s(e.copyText)},on:{click:e.copy}})},n=[],c=s(r,i,n,!1,null,null,null,null);const a=c.exports;export{a as default};

File diff suppressed because one or more lines are too long

472
public/build/assets/Cronjobs.d54d4304.js vendored Normal file
View File

@@ -0,0 +1,472 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { u as useNotification } from "./notification.4c298cac.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, j as withDirectives, A as vModelRadio, B as vShow, g as withModifiers, d as createCommentVNode, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
const _sfc_main = {
metaInfo() {
return {
title: `Cronjobs - ${this.site.domain}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Pagination,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData,
EmptyImage
},
data() {
return {
sending: false,
form: {
command: `php /home/${this.$page.props.auth.user.user_name}/${this.site.domain}/script.php`,
interval: "minutely",
frequency: "* * * * *"
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("Cronjobs"),
to: this.route("sites.cronjobs.index", this.site.id)
}
]
};
},
mounted() {
if (this.shouldBePolling) {
this.startPollingInterval();
}
},
watch: {
shouldBePolling: function(value) {
if (!value) {
this.clearPollingInterval();
return;
}
if (!this.pollingInterval) {
this.startPollingInterval();
}
}
},
computed: {
shouldBePolling() {
return !!this.cronjobs.data.filter((cronjob) => {
return cronjob.status === "busy";
}).length;
},
convertedFrequency: function() {
if (this.form.interval === "minutely") {
return this.form.frequency = "* * * * *";
} else if (this.form.interval === "hourly") {
return this.form.frequency = "0 * * * *";
} else if (this.form.interval === "nightly") {
return this.form.frequency = "0 2 * * *";
} else if (this.form.interval === "weekly") {
return this.form.frequency = "0 0 * * 0";
} else if (this.form.interval === "monthly") {
return this.form.frequency = "0 0 1 * *";
} else {
return this.form.frequency;
}
}
},
props: {
site: Object,
cronjobs: Object
},
methods: {
useNotification,
startPollingInterval() {
this.pollingInterval = setInterval(function() {
this.poll();
}.bind(this), 3e3);
},
clearPollingInterval() {
clearTimeout(this.pollingInterval);
this.pollingInterval = null;
},
poll() {
this.$inertia.get(this.route("sites.cronjobs.index", this.site.id), {
only: ["cronjobs"],
preserveScroll: true
});
},
submit() {
this.sending = true;
this.$inertia.post(this.route("sites.cronjobs.store", this.site.id), this.form, {
onFinish: () => {
this.sending = false;
if (!Object.keys(this.$page.props.errors).length) {
this.form = {
command: `php /home/${this.$page.props.auth.user.user_name}/${this.site.domain}/script.php`,
interval: "minutely",
frequency: "* * * * *"
};
}
}
});
},
confirmDelete(cronjob) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your cronjob will be deleted permanently, this action cannot be undone."),
onConfirm: () => this.delete(cronjob)
});
},
delete(cronjob) {
this.$inertia.delete(this.route("sites.cronjobs.delete", [this.site.id, cronjob.id]), {
preserveScroll: true
});
}
},
beforeDestroy() {
this.clearPollingInterval();
}
};
const _hoisted_1 = /* @__PURE__ */ createTextVNode("Cronjobs");
const _hoisted_2 = { class: "inline-block text-small font-medium" };
const _hoisted_3 = { class: "inline-flex items-center" };
const _hoisted_4 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Every minute", -1);
const _hoisted_5 = { class: "inline-flex items-center" };
const _hoisted_6 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Hourly", -1);
const _hoisted_7 = { class: "inline-flex items-center" };
const _hoisted_8 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Nightly (2AM)", -1);
const _hoisted_9 = { class: "inline-flex items-center" };
const _hoisted_10 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Weekly", -1);
const _hoisted_11 = { class: "inline-flex items-center" };
const _hoisted_12 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Monthly", -1);
const _hoisted_13 = { class: "inline-flex items-center" };
const _hoisted_14 = /* @__PURE__ */ createBaseVNode("span", { class: "ml-2" }, "Custom", -1);
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_pagination = resolveComponent("pagination");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
_hoisted_1
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
createVNode(_component_SettingsSegment, null, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Add a new cronjob here to run your background tasks with.")), 1)
]),
form: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[8] || (_cache[8] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormInput, {
label: _ctx.__("Command"),
errors: _ctx.$page.props.errors.command,
modelValue: $data.form.command,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.command = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_2, " Frequency (" + toDisplayString($options.convertedFrequency) + ") ", 1),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_3, [
withDirectives(createBaseVNode("input", {
class: "form-radio",
type: "radio",
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.interval = $event),
value: "minutely"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_4
])
]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_5, [
withDirectives(createBaseVNode("input", {
type: "radio",
class: "form-radio",
name: "radio",
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.interval = $event),
value: "hourly"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_6
])
]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_7, [
withDirectives(createBaseVNode("input", {
type: "radio",
class: "form-radio",
name: "radio",
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.form.interval = $event),
value: "nightly"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_8
])
]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_9, [
withDirectives(createBaseVNode("input", {
type: "radio",
class: "form-radio",
name: "radio",
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.form.interval = $event),
value: "weekly"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_10
])
]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_11, [
withDirectives(createBaseVNode("input", {
type: "radio",
class: "form-radio",
name: "radio",
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $data.form.interval = $event),
value: "monthly"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_12
])
]),
createBaseVNode("div", null, [
createBaseVNode("label", _hoisted_13, [
withDirectives(createBaseVNode("input", {
type: "radio",
class: "form-radio",
name: "radio",
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $data.form.interval = $event),
value: "custom"
}, null, 512), [
[vModelRadio, $data.form.interval]
]),
_hoisted_14
])
]),
withDirectives(createVNode(_component_FormInput, {
"helper-text": "min | hour | day/month | month | day/week",
modelValue: $data.form.frequency,
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => $data.form.frequency = $event),
errors: _ctx.$page.props.errors.frequency,
label: _ctx.__("Custom frequency")
}, null, 8, ["modelValue", "errors", "label"]), [
[vShow, $data.form.interval === "custom"]
])
]),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
]),
_: 1
}),
!$props.cronjobs.meta.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
$props.cronjobs.meta.total ? (openBlock(), createBlock(_component_SettingsSegment, { key: 1 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Cronjobs")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_Table, { caption: "Cronjob list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Command")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Frequency")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.cronjobs.data, (cronjob) => {
return openBlock(), createBlock(_component_TableRow, {
key: cronjob.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_StatusBubble, {
variant: cronjob.status === "busy" ? "gray" : "success"
}, null, 8, ["variant"])
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(cronjob.command), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(cronjob.frequency), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
disabled: cronjob.status === "busy",
variant: "danger",
size: "sm",
onClick: ($event) => $options.confirmDelete(cronjob)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Delete")), 1)
], void 0, true),
_: 2
}, 1032, ["disabled", "onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
]),
createVNode(_component_pagination, { links: $props.cronjobs }, null, 8, ["links"])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Cronjobs = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Cronjobs as default
};

View File

@@ -0,0 +1,346 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, g as withModifiers, d as createCommentVNode, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `Databases - ${this.site.domain}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Pagination,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData,
EmptyImage
},
data() {
return {
sending: false,
form: {
name: null,
user_name: null,
password: null
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("Databases"),
to: this.route("sites.databases.index", this.site.id)
}
]
};
},
mounted() {
if (this.shouldBePolling) {
this.startPollingInterval();
}
},
watch: {
shouldBePolling: function(value) {
if (!value) {
this.clearPollingInterval();
return;
}
if (!this.pollingInterval) {
this.startPollingInterval();
}
}
},
computed: {
shouldBePolling() {
return !!this.databases.data.filter((database) => {
return database.status === "busy";
}).length;
}
},
props: {
site: Object,
databases: Object
},
methods: {
startPollingInterval() {
this.pollingInterval = setInterval(function() {
this.poll();
}.bind(this), 3e3);
},
clearPollingInterval() {
clearTimeout(this.pollingInterval);
this.pollingInterval = null;
},
poll() {
this.$inertia.get(this.route("sites.databases.index", this.site.id), {
only: ["databases"],
preserveScroll: true
});
},
submit() {
this.sending = true;
this.$inertia.post(this.route("sites.databases.store", this.site.id), this.form, {
onFinish: () => {
this.sending = false;
if (!Object.keys(this.$page.props.errors).length) {
this.form.name = null;
this.form.user_name = null;
this.form.password = null;
}
}
});
},
confirmDelete(database) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your database will be deleted permanently, this action cannot be undone."),
onConfirm: () => this.delete(database)
});
},
delete(database) {
this.$inertia.delete(this.route("sites.databases.delete", [this.site.id, database.id]), {
preserveScroll: true
});
}
},
beforeDestroy() {
this.clearPollingInterval();
}
};
const _hoisted_1 = /* @__PURE__ */ createTextVNode("Databases");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_pagination = resolveComponent("pagination");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
_hoisted_1
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
createVNode(_component_SettingsSegment, null, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create a new database here to store your application data in.")), 1)
]),
form: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormInput, {
label: _ctx.__("Name"),
errors: _ctx.$page.props.errors.name,
modelValue: $data.form.name,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("User"),
errors: _ctx.$page.props.errors.user_name,
modelValue: $data.form.user_name,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.user_name = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("Password"),
errors: _ctx.$page.props.errors.password,
modelValue: $data.form.password,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.password = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
]),
_: 1
}),
!$props.databases.meta.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
$props.databases.meta.total ? (openBlock(), createBlock(_component_SettingsSegment, { key: 1 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Databases")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_Table, { caption: "Database list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Name")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.databases.data, (database) => {
return openBlock(), createBlock(_component_TableRow, {
key: database.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_StatusBubble, {
variant: database.status === "busy" ? "gray" : "success"
}, null, 8, ["variant"])
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(database.name), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
disabled: database.status === "busy",
variant: "danger",
size: "sm",
onClick: ($event) => $options.confirmDelete(database)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Delete")), 1)
], void 0, true),
_: 2
}, 1032, ["disabled", "onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
]),
createVNode(_component_pagination, { links: $props.databases }, null, 8, ["links"])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Databases = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Databases as default
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

350
public/build/assets/Dns.f532d803.js vendored Normal file
View File

@@ -0,0 +1,350 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { a as Form, F as FormActions } from "./Form.097b2c0b.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import { u as useNotification } from "./notification.4c298cac.js";
import Tabs from "./Tabs.992be93e.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, g as withModifiers, d as createCommentVNode, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("DNS")} - ${this.site.domain}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
FormInput,
SettingsLayout,
SettingsSegment,
Form,
FormActions,
Pagination,
Tabs,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData,
EmptyImage
},
data() {
return {
sending: false,
loading: true,
records: [],
form: {
name: null,
address: null
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
},
{
title: this.site.domain,
to: this.route("sites.show", this.site.id)
},
{
title: this.__("DNS"),
to: this.route("sites.dns.index", this.site.id)
}
]
};
},
props: {
site: Object
},
mounted() {
this.getRecords();
},
methods: {
useNotification,
submit() {
this.$inertia.post(this.route("sites.dns.store", this.site.id), this.form, {
onStart: () => this.sending = true,
onFinish: () => {
this.sending = false;
this.records = [];
this.getRecords();
this.form = {
name: null,
address: null
};
}
});
},
getRecords() {
this.loading = true;
window.axios.get(this.route("sites.dns.records", this.site.id)).then((response) => {
this.loading = false;
this.records = response.data;
}).catch((error) => {
this.loading = false;
});
},
confirmDelete(record) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your DNS will be completely removed."),
onConfirm: () => this.delete(record)
});
},
delete(record) {
this.$inertia.delete(this.route("sites.dns.delete", [this.site.id, record.id]), {
preserveScroll: true,
onStart: () => this.sending = true,
onFinish: () => {
this.sending = false;
this.records = [];
this.getRecords();
}
});
}
}
};
const _hoisted_1 = {
key: 1,
class: "inline-flex px-4"
};
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("svg", {
class: "animate-spin -ml-1 mr-3 h-5 w-5 text-white",
xmlns: "http://www.w3.org/2000/svg",
fill: "none",
viewBox: "0 0 24 24"
}, [
/* @__PURE__ */ createBaseVNode("circle", {
class: "opacity-25",
cx: "12",
cy: "12",
r: "10",
stroke: "currentColor",
"stroke-width": "4"
}),
/* @__PURE__ */ createBaseVNode("path", {
class: "opacity-75",
fill: "currentColor",
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
})
], -1);
const _hoisted_3 = /* @__PURE__ */ createTextVNode(" Loading records.. ");
const _hoisted_4 = [
_hoisted_2,
_hoisted_3
];
const _hoisted_5 = /* @__PURE__ */ createTextVNode("Delete");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_SettingsSegment = resolveComponent("SettingsSegment");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("DNS")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, { site: $props.site }, null, 8, ["site"])
]),
segments: withCtx(() => [
createVNode(_component_SettingsSegment, null, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create")), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create a new DNS record here.")), 1)
]),
form: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[2] || (_cache[2] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormInput, {
disabled: $data.sending,
label: _ctx.__("Name"),
errors: _ctx.$page.props.errors.name,
modelValue: $data.form.name,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event)
}, null, 8, ["disabled", "label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
disabled: $data.sending,
label: _ctx.__("IPv4 address"),
errors: _ctx.$page.props.errors.address,
modelValue: $data.form.address,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.address = $event)
}, null, 8, ["disabled", "label", "errors", "modelValue"]),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
]),
_: 1
}),
!$data.records.length && !$data.loading ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
$data.loading ? (openBlock(), createElementBlock("div", _hoisted_1, _hoisted_4)) : createCommentVNode("", true),
$data.records.length ? (openBlock(), createBlock(_component_SettingsSegment, { key: 2 }, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Records")), 1)
]),
content: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_Table, { caption: "DNS records list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Name")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Content")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($data.records, (record) => {
return openBlock(), createBlock(_component_TableRow, {
key: record.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(record.name), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(record.display_content), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
onClick: ($event) => $options.confirmDelete(record),
variant: "danger",
size: "sm"
}, {
default: withCtx(() => [
_hoisted_5
], void 0, true),
_: 2
}, 1032, ["onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
])
]),
_: 1
})) : createCommentVNode("", true)
]),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Dns = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Dns as default
};

View File

@@ -1 +0,0 @@
import{n as o}from"./plugin-vue2_normalizer.000ba15c.js";const s={data:()=>({isOpen:!1,position:"top"}),methods:{open(){this.isOpen=!0,this.calculatePosition()},close(){this.isOpen=!1,this.calculatePosition()},toggle(){this.isOpen=!this.isOpen,this.calculatePosition()},outsideClickListener(t){this.$refs.dropdown!==t.target.closest(this.$refs.dropdown.tagName)&&this.close()},calculatePosition(){const t=this.$refs.dropdown.getBoundingClientRect().top,e=window.innerHeight;if(t>e*.75){this.position="bottom";return}this.position="top"}},mounted(){window.addEventListener("click",this.outsideClickListener)},beforeDestroy(){window.removeEventListener("click",this.outsideClickListener)}};var n=function(){var e=this,i=e._self._c;return i("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:e.close,expression:"close"}],ref:"dropdown",staticClass:"relative"},[e._t("default",null,null,{isOpen:e.isOpen,open:e.open,close:e.close,toggle:e.toggle,position:e.position})],2)},l=[],r=o(s,n,l,!1,null,null,null,null);const a=r.exports;export{a as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const s={top:"right-0 top-0 mt-8",bottom:"right-0 bottom-0 mb-8"},r={props:{position:{type:String,default:()=>"top",validator:t=>Object.keys(s).includes(t)}},computed:{positionClasses(){return s[this.position]}}};var l=function(){var o=this,e=o._self._c;return e("div",{class:["absolute flex flex-col py-1 overflow-hidden rounded shadow-2xl z-20 bg-surface-1",o.positionClasses]},[o._t("default")],2)},i=[],a=n(r,l,i,!1,null,null,null,null);const c=a.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const r={props:{to:{type:String,required:!0},componentIs:{type:String,default:"a"},method:{required:!1,default:"get"}}};var s=function(){var e=this,t=e._self._c;return t("inertia-link",{staticClass:"flex items-center w-full h-10 px-6 whitespace-nowrap text-medium-emphasis text-small focus:bg-primary focus:text-on-primary hover:text-high-emphasis focus:outline-none",attrs:{as:e.componentIs,href:e.to,method:e.method}},[e._t("default")],2)},o=[],a=n(r,s,o,!1,null,null,null,null);const m=a.exports;export{m as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const r={props:{as:{default:"inertia-link"},to:{type:String,required:!1},method:{required:!1,default:"get"}}};var s=function(){var e=this,t=e._self._c;return t("button",{staticClass:"flex items-center w-full h-10 px-6 whitespace-nowrap text-medium-emphasis text-small focus:bg-primary focus:text-on-primary hover:text-high-emphasis focus:outline-none",on:{click:function(l){return e.$emit("click")}}},[e._t("default")],2)},o=[],a=n(r,s,o,!1,null,null,null,null);const c=a.exports;export{c as default};

View File

@@ -0,0 +1,49 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode, h as renderSlot } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main$1 = {};
const _hoisted_1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"
}, null, -1);
const _hoisted_3 = [
_hoisted_2
];
function _sfc_render$1(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1, _hoisted_3);
}
const IconMore = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const _sfc_main = {
props: {
as: {
default: "inertia-link"
},
to: {
type: String,
required: false
},
method: {
required: false,
default: "get"
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("button", {
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click")),
class: "flex items-center w-full h-10 px-6 whitespace-nowrap text-medium-emphasis text-small focus:bg-primary focus:text-on-primary hover:text-high-emphasis focus:outline-none"
}, [
renderSlot(_ctx.$slots, "default")
]);
}
const DropdownListItemButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
DropdownListItemButton as D,
IconMore as I
};

125
public/build/assets/Email.08f86537.js vendored Normal file
View File

@@ -0,0 +1,125 @@
import { T as TextDivider } from "./TextDivider.5d9b42bc.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { B as Button } from "./Button.f40f5f07.js";
import { C as Container } from "./Container.23db6f9d.js";
import { u as useNotification } from "./notification.4c298cac.js";
import { c as createElementBlock, a as createVNode, w as withCtx, r as resolveComponent, o as openBlock, b as createBaseVNode, d as createCommentVNode, t as toDisplayString, e as createTextVNode, g as withModifiers } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Reset password")}`
};
},
components: {
TextDivider,
FormInput,
Button,
Container
},
props: {
errors: Object
},
data() {
return {
sending: false,
form: {
email: null
}
};
},
methods: {
useNotification,
submit() {
this.sending = true;
this.$inertia.post(this.route("password.email"), {
email: this.form.email
}, {
onFinish: () => {
this.sending = false;
if (!Object.keys(this.$page.props.errors).length) {
this.form.email = null;
useNotification({
variant: "success",
title: this.__("Reset password"),
message: this.$page.props.flash.success
});
}
}
});
}
}
};
const _hoisted_1 = { class: "flex items-center justify-center w-full min-h-screen" };
const _hoisted_2 = { class: "flex flex-col items-center space-y-5" };
const _hoisted_3 = ["src"];
const _hoisted_4 = { class: "font-semibold text-center text-title" };
const _hoisted_5 = { class: "space-y-3" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_TextDivider = resolveComponent("TextDivider");
const _component_Container = resolveComponent("Container");
return openBlock(), createElementBlock("div", _hoisted_1, [
createVNode(_component_Container, { size: "small" }, {
default: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createBaseVNode("div", _hoisted_2, [
_ctx.$page.props.settings.logo ? (openBlock(), createElementBlock("img", {
key: 0,
class: "h-14",
src: _ctx.$page.props.settings.logo
}, null, 8, _hoisted_3)) : createCommentVNode("", true),
createBaseVNode("h1", _hoisted_4, toDisplayString(_ctx.__("Reset password")), 1)
]),
createVNode(_component_FormInput, {
label: _ctx.__("Email"),
errors: _ctx.$page.props.errors.email,
modelValue: $data.form.email,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.email = $event),
id: "email",
type: "email",
required: ""
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_Button, {
variant: "primary",
disabled: $data.sending,
block: ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Reset")), 1)
], void 0, true),
_: 1
}, 8, ["disabled"]),
createVNode(_component_TextDivider, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Or")), 1)
], void 0, true),
_: 1
}),
createBaseVNode("div", _hoisted_5, [
createVNode(_component_Button, {
as: "inertia-link",
href: _ctx.route("login"),
variant: "secondary",
block: ""
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Login")), 1)
], void 0, true),
_: 1
}, 8, ["href"])
])
], 32)
], void 0, true),
_: 1
})
]);
}
const Email = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Email as default
};

View File

@@ -1 +0,0 @@
import i from"./TextDivider.54add59f.js";import a from"./FormInput.e3b01057.js";import o from"./Button.f17dffc9.js";import n from"./Container.f87d9f62.js";import{u as r}from"./notification.f3a0f54e.js";import{n as l}from"./plugin-vue2_normalizer.000ba15c.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";import"./app.0131bc0c.js";const m={metaInfo(){return{title:`${this.__("Reset password")}`}},components:{TextDivider:i,FormInput:a,Button:o,Container:n},props:{errors:Object},data(){return{sending:!1,form:{email:null}}},methods:{useNotification:r,submit(){this.sending=!0,this.$inertia.post(this.route("password.email"),{email:this.form.email},{onFinish:()=>{this.sending=!1,Object.keys(this.$page.props.errors).length||(this.form.email=null,r({variant:"success",title:this.__("Reset password"),message:this.$page.props.flash.success}))}})}}};var p=function(){var t=this,e=t._self._c;return e("div",{staticClass:"flex items-center justify-center w-full min-h-screen"},[e("Container",{attrs:{size:"small"}},[e("form",{staticClass:"space-y-4",on:{submit:function(s){return s.preventDefault(),t.submit.apply(null,arguments)}}},[e("div",{staticClass:"flex flex-col items-center space-y-5"},[t.$page.props.settings.logo?e("img",{staticClass:"h-14",attrs:{src:t.$page.props.settings.logo}}):t._e(),e("h1",{staticClass:"font-semibold text-center text-title"},[t._v(" "+t._s(t.__("Reset password"))+" ")])]),e("FormInput",{attrs:{label:t.__("Email"),errors:t.$page.props.errors.email,id:"email",type:"email",required:""},model:{value:t.form.email,callback:function(s){t.$set(t.form,"email",s)},expression:"form.email"}}),e("Button",{attrs:{variant:"primary",disabled:t.sending,block:""}},[t._v(t._s(t.__("Reset")))]),e("TextDivider",[t._v(t._s(t.__("Or")))]),e("div",{staticClass:"space-y-3"},[e("Button",{attrs:{as:"inertia-link",href:t.route("login"),variant:"secondary",block:""}},[t._v(t._s(t.__("Login")))])],1)],1)])],1)},c=[],_=l(m,p,c,!1,null,null,null,null);const F=_.exports;export{F as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const a={};var r=function(){var t=this,e=t._self._c;return e("img",{staticClass:"w-32 md:w-48 m-auto",attrs:{src:"/images/empty.png",alt:"Decorative image for empty list."}})},s=[],m=n(a,r,s,!1,null,null,null,null);const _=m.exports;export{_ as default};

View File

@@ -0,0 +1,15 @@
import { o as openBlock, c as createElementBlock } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main = {};
const _hoisted_1 = {
src: "/images/empty.png",
class: "w-32 md:w-48 m-auto",
alt: "Decorative image for empty list."
};
function _sfc_render(_ctx, _cache) {
return openBlock(), createElementBlock("img", _hoisted_1);
}
const EmptyImage = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
EmptyImage as E
};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var s=function(){var n=this,r=n._self._c;return r("p",{staticClass:"text-danger"},[n._t("default")],2)},a=[],_=t(e,s,a,!1,null,null,null,null);const c=_.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const a={};var l=function(){var s=this,t=s._self._c;return t("div",{staticClass:"p-6 rounded shadow bg-surface-3"},[t("div",{staticClass:"flex space-x-4"},[t("div",[s._t("prefix")],2),t("div",[t("h3",{staticClass:"font-semibold text-body"},[s._t("title")],2),t("p",{staticClass:"text-medium-emphasis text-small"},[s._t("subtitle")],2)])])])},n=[],r=e(a,l,n,!1,null,null,null,null);const _=r.exports;export{_ as default};

32
public/build/assets/Form.097b2c0b.js vendored Normal file
View File

@@ -0,0 +1,32 @@
import { o as openBlock, c as createElementBlock, h as renderSlot, n as normalizeClass, g as withModifiers } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main$1 = {
props: {
justify: {
type: String,
default: "justify-start"
}
}
};
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", {
class: normalizeClass(["flex items-center space-x-2", [$props.justify]])
}, [
renderSlot(_ctx.$slots, "default")
], 2);
}
const FormActions = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const _sfc_main = {};
function _sfc_render(_ctx, _cache) {
return openBlock(), createElementBlock("form", {
class: "space-y-4",
onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$emit("submit"), ["prevent"]))
}, [
renderSlot(_ctx.$slots, "default")
], 32);
}
const Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
FormActions as F,
Form as a
};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const s={};var a=function(){var n=this,t=n._self._c;return t("form",{staticClass:"space-y-4",on:{submit:function(e){return e.preventDefault(),n.$emit("submit")}}},[n._t("default")],2)},o=[],l=r(s,a,o,!1,null,null,null,null);const u=l.exports;export{u as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const n={props:{justify:{type:String,default:"justify-start"}}};var r=function(){var t=this,s=t._self._c;return s("div",{staticClass:"flex items-center space-x-2",class:[t.justify]},[t._t("default")],2)},a=[],l=e(n,r,a,!1,null,null,null,null);const _=l.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import a from"./FormGroup.efd02a6a.js";import l from"./Label.9d0d3ee0.js";import s from"./ErrorText.b141a597.js";import i from"./HelperText.14a7ed0b.js";import d from"./IconClipboard.8551be1b.js";import u from"./IconKey.455a255f.js";import{n as p}from"./plugin-vue2_normalizer.000ba15c.js";const n="",f={props:{id:{type:String,required:!1},label:{type:String,required:!0},required:{type:Boolean,default:()=>!1},errors:{type:Array},helperText:{type:String},placeholder:{type:String},value:{required:!1,default:""},loading:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},autofocus:{type:Boolean,required:!1,default:!1}},components:{FormGroup:a,Label:l,ErrorText:s,HelperText:i,IconClipboard:d,IconKey:u},data(){return{defaultClasses:n,copied:!1}},watch:{copied(){let t=this;this.copied&&setTimeout(()=>{t.copied=!1},1250)}},methods:{updateValue(t){this.$emit("input",t)}},computed:{}};var c=function(){var e=this,r=e._self._c;return r("FormGroup",{},[r("div",{staticClass:"flex flex-row items-center"},[r("input",{class:[e.defaultClasses,e.disabled||e.loading?"opacity-50":"",e.loading?"cursor-wait":""],attrs:{id:e.id,type:"checkbox",required:e.required,disabled:e.loading||e.disabled,autofocus:e.autofocus,placeholder:e.placeholder},domProps:{value:e.value},on:{input:function(o){return e.updateValue(o.target.value)}}}),e.errors?r("ErrorText",[e._v(e._s(e.errors[0]))]):e._e(),e.helperText&&!e.errors?r("HelperText",[e._v(e._s(e.helperText))]):e._e(),r("Label",{staticClass:"ml-2",attrs:{errors:e.errors,forId:e.id}},[e._v(e._s(e.label))])],1)])},m=[],_=p(f,c,m,!1,null,null,null,null);const T=_.exports;export{T as default};

View File

@@ -1 +0,0 @@
import o from"./FormGroup.efd02a6a.js";import l from"./Label.9d0d3ee0.js";import s from"./ErrorText.b141a597.js";import a from"./HelperText.14a7ed0b.js";import{n}from"./plugin-vue2_normalizer.000ba15c.js";const u="w-full border-medium-emphasis text-body max-w-lg px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",p={props:{id:{type:String,required:!1},label:{type:String,required:!0},required:{type:Boolean,default:()=>!1},errors:{type:Array},placeholder:{type:String},value:{required:!1,default:""},rows:{default:3,required:!1},helperText:{type:String}},components:{FormGroup:o,Label:l,ErrorText:s,HelperText:a},data(){return{defaultClasses:u}},methods:{updateValue(t){this.$emit("input",t)}}};var d=function(){var r=this,e=r._self._c;return e("FormGroup",[e("Label",{attrs:{errors:r.errors,forId:r.id}},[r._v(r._s(r.label))]),r._t("default"),r.errors?e("ErrorText",[r._v(r._s(r.errors[0]))]):r._e(),r.helperText&&!r.errors?e("HelperText",[r._v(r._s(r.helperText))]):r._e()],2)},i=[],m=n(p,d,i,!1,null,null,null,null);const v=m.exports;export{v as default};

View File

@@ -1 +0,0 @@
import s from"./FormGroup.efd02a6a.js";import a from"./Label.9d0d3ee0.js";import o from"./Button.f17dffc9.js";import l from"./ErrorText.b141a597.js";import i from"./HelperText.14a7ed0b.js";import n from"./IconClipboard.8551be1b.js";import p from"./IconKey.455a255f.js";import{n as u}from"./plugin-vue2_normalizer.000ba15c.js";const d="w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",f={props:{id:{type:String,required:!1},label:{type:String,required:!0},required:{type:Boolean,default:()=>!1},errors:{type:Array},helperText:{type:String},placeholder:{type:String},value:File,loading:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},accept:String},components:{FormGroup:s,Label:a,ErrorText:l,HelperText:i,IconClipboard:n,IconKey:p,Button:o},data(){return{defaultClasses:d}},watch:{value(r){r||(this.$refs.file.value="")}},methods:{filesize(r){var e=Math.floor(Math.log(r)/Math.log(1024));return(r/Math.pow(1024,e)).toFixed(2)*1+" "+["B","kB","MB","GB","TB"][e]},browse(){this.$refs.file.click()},change(r){this.$emit("input",r.target.files[0])},remove(){this.$emit("input",null)}}};var c=function(){var e=this,t=e._self._c;return t("FormGroup",{staticClass:"relative max-w-lg"},[t("Label",{attrs:{errors:e.errors,forId:e.id}},[e._v(e._s(e.label))]),t("input",{ref:"file",staticClass:"hidden",class:[e.defaultClasses,e.disabled||e.loading?"opacity-50":"",e.loading?"cursor-wait":""],attrs:{id:e.id,type:"file",accept:e.accept},on:{change:e.change}}),e.value?t("div",{staticClass:"flex items-center justify-between p-2"},[t("div",{staticClass:"flex-1 pr-1"},[e._v(e._s(e.value.name)+" "),t("span",{staticClass:"text-gray-500 text-xs"},[e._v("("+e._s(e.filesize(e.value.size))+")")])]),t("Button",{staticClass:"px-4 py-1 rounded-sm text-xs font-medium text-white",attrs:{variant:"danger",type:"button"},on:{click:e.remove}},[e._v(" Remove ")])],1):t("div",{staticClass:"p-2"},[t("Button",{staticClass:"px-4 py-1 rounded-sm text-xs font-medium text-white",attrs:{type:"button"},on:{click:e.browse}},[e._v(" Browse ")])],1),e.errors?t("ErrorText",[e._v(e._s(e.errors[0]))]):e._e(),e.helperText&&!e.errors?t("HelperText",[e._v(e._s(e.helperText))]):e._e()],1)},m=[],_=u(f,c,m,!1,null,null,null,null);const w=_.exports;export{w as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const l={};var s=function(){var n=this,e=n._self._c;return e("div",{staticClass:"flex flex-col space-y-1"},[n._t("default")],2)},t=[],a=r(l,s,t,!1,null,null,null,null);const c=a.exports;export{c as default};

View File

@@ -0,0 +1,274 @@
import { o as openBlock, c as createElementBlock, h as renderSlot, n as normalizeClass, b as createBaseVNode, f as createBlock, w as withCtx, e as createTextVNode, t as toDisplayString, d as createCommentVNode, a as createVNode, r as resolveComponent } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main$6 = {};
const _hoisted_1$6 = { class: "flex flex-col space-y-1" };
function _sfc_render$6(_ctx, _cache) {
return openBlock(), createElementBlock("div", _hoisted_1$6, [
renderSlot(_ctx.$slots, "default")
]);
}
const FormGroup = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6]]);
const _sfc_main$5 = {
props: {
forId: {
type: String,
required: false
},
errors: {
type: Array
}
}
};
const _hoisted_1$5 = ["for"];
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("label", {
class: normalizeClass(["text-small"]),
for: $props.forId
}, [
renderSlot(_ctx.$slots, "default")
], 8, _hoisted_1$5);
}
const Label = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5]]);
const _sfc_main$4 = {};
const _hoisted_1$4 = { class: "text-danger" };
function _sfc_render$4(_ctx, _cache) {
return openBlock(), createElementBlock("p", _hoisted_1$4, [
renderSlot(_ctx.$slots, "default")
]);
}
const ErrorText = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4]]);
const _sfc_main$3 = {};
const _hoisted_1$3 = { class: "text-medium-emphasis text-small" };
function _sfc_render$3(_ctx, _cache) {
return openBlock(), createElementBlock("p", _hoisted_1$3, [
renderSlot(_ctx.$slots, "default")
]);
}
const HelperText = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3]]);
const _sfc_main$2 = {};
const _hoisted_1$2 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
class: "bi bi-clipboard",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$1 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"
}, null, -1);
const _hoisted_3$1 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M9.5 1h-3a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"
}, null, -1);
const _hoisted_4$1 = [
_hoisted_2$1,
_hoisted_3$1
];
function _sfc_render$2(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$2, _hoisted_4$1);
}
const IconClipboard = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
const _sfc_main$1 = {};
const _hoisted_1$1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
class: "bi bi-key",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M0 8a4 4 0 0 1 7.465-2H14a.5.5 0 0 1 .354.146l1.5 1.5a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0L13 9.207l-.646.647a.5.5 0 0 1-.708 0L11 9.207l-.646.647a.5.5 0 0 1-.708 0L9 9.207l-.646.647A.5.5 0 0 1 8 10h-.535A4 4 0 0 1 0 8zm4-3a3 3 0 1 0 2.712 4.285A.5.5 0 0 1 7.163 9h.63l.853-.854a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.793-.793-1-1h-6.63a.5.5 0 0 1-.451-.285A3 3 0 0 0 4 5z"
}, null, -1);
const _hoisted_3 = /* @__PURE__ */ createBaseVNode("path", { d: "M4 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0z" }, null, -1);
const _hoisted_4 = [
_hoisted_2,
_hoisted_3
];
function _sfc_render$1(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$1, _hoisted_4);
}
const IconKey = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const defaultClasses = "w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main = {
props: {
id: {
type: String,
required: false
},
label: {
type: String,
required: false
},
type: {
type: String,
default: () => "text"
},
required: {
type: Boolean,
default: () => false
},
errors: {
type: Array
},
helperText: {
type: String
},
placeholder: {
type: String
},
value: {
required: false,
default: ""
},
allowCopy: {
required: false,
default: false,
type: Boolean
},
allowRandomString: {
required: false,
default: false,
type: Boolean
},
loading: {
type: Boolean,
required: false,
default: false
},
disabled: {
type: Boolean,
required: false,
default: false
},
autofocus: {
type: Boolean,
required: false,
default: false
}
},
components: {
FormGroup,
Label,
ErrorText,
HelperText,
IconClipboard,
IconKey
},
data() {
return {
defaultClasses,
copied: false
};
},
watch: {
copied() {
let vm = this;
if (this.copied) {
setTimeout(() => {
vm.copied = false;
}, 1250);
}
}
},
methods: {
updateValue(value) {
this.$emit("input", value);
},
copy() {
this.copied = true;
this.$copyText(this.value);
},
generateString() {
this.$emit("input", this.randomString());
}
},
computed: {
copyText() {
if (this.copied) {
return this.__("Copied to clipboard");
}
return this.__("Copy");
}
}
};
const _hoisted_1 = ["id", "type", "required", "value", "disabled", "autofocus", "placeholder"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_Label = resolveComponent("Label");
const _component_IconClipboard = resolveComponent("IconClipboard");
const _component_IconKey = resolveComponent("IconKey");
const _component_ErrorText = resolveComponent("ErrorText");
const _component_HelperText = resolveComponent("HelperText");
const _component_FormGroup = resolveComponent("FormGroup");
return openBlock(), createBlock(_component_FormGroup, { class: "relative" }, {
default: withCtx(() => [
$props.label ? (openBlock(), createBlock(_component_Label, {
key: 0,
errors: $props.errors,
forId: $props.id
}, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.label), 1)
], void 0, true),
_: 1
}, 8, ["errors", "forId"])) : createCommentVNode("", true),
$props.allowCopy ? (openBlock(), createElementBlock("button", {
key: 1,
type: "button",
onClick: _cache[0] || (_cache[0] = (...args) => $options.copy && $options.copy(...args)),
class: "flex items-center right-0 absolute text-xs text-medium-emphasis"
}, [
createVNode(_component_IconClipboard, { class: "mr-2" }),
createTextVNode(" " + toDisplayString($options.copyText), 1)
])) : createCommentVNode("", true),
$props.allowRandomString ? (openBlock(), createElementBlock("button", {
key: 2,
type: "button",
onClick: _cache[1] || (_cache[1] = (...args) => $options.generateString && $options.generateString(...args)),
class: "flex items-center right-0 absolute text-xs text-medium-emphasis"
}, [
createVNode(_component_IconKey, { class: "mr-2" }),
createTextVNode(" " + toDisplayString(_ctx.__("Generate")), 1)
])) : createCommentVNode("", true),
createBaseVNode("input", {
id: $props.id,
class: normalizeClass([
$data.defaultClasses,
$props.disabled || $props.loading ? "opacity-50" : "",
$props.loading ? "cursor-wait" : ""
]),
type: $props.type,
required: $props.required,
value: $props.value,
onInput: _cache[2] || (_cache[2] = ($event) => $options.updateValue($event.target.value)),
disabled: $props.loading || $props.disabled,
autofocus: $props.autofocus,
placeholder: $props.placeholder
}, null, 42, _hoisted_1),
$props.errors ? (openBlock(), createBlock(_component_ErrorText, { key: 3 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.errors[0]), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true),
$props.helperText && !$props.errors ? (openBlock(), createBlock(_component_HelperText, { key: 4 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.helperText), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true)
], void 0, true),
_: 1
});
}
const FormInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
ErrorText as E,
FormInput as F,
HelperText as H,
Label as L,
FormGroup as a
};

View File

@@ -1 +0,0 @@
import a from"./FormGroup.efd02a6a.js";import l from"./Label.9d0d3ee0.js";import s from"./ErrorText.b141a597.js";import i from"./HelperText.14a7ed0b.js";import n from"./IconClipboard.8551be1b.js";import p from"./IconKey.455a255f.js";import{n as u}from"./plugin-vue2_normalizer.000ba15c.js";const d="w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",c={props:{id:{type:String,required:!1},label:{type:String,required:!1},type:{type:String,default:()=>"text"},required:{type:Boolean,default:()=>!1},errors:{type:Array},helperText:{type:String},placeholder:{type:String},value:{required:!1,default:""},allowCopy:{required:!1,default:!1,type:Boolean},allowRandomString:{required:!1,default:!1,type:Boolean},loading:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1},autofocus:{type:Boolean,required:!1,default:!1}},components:{FormGroup:a,Label:l,ErrorText:s,HelperText:i,IconClipboard:n,IconKey:p},data(){return{defaultClasses:d,copied:!1}},watch:{copied(){let r=this;this.copied&&setTimeout(()=>{r.copied=!1},1250)}},methods:{updateValue(r){this.$emit("input",r)},copy(){this.copied=!0,this.$copyText(this.value)},generateString(){this.$emit("input",this.randomString())}},computed:{copyText(){return this.copied?this.__("Copied to clipboard"):this.__("Copy")}}};var f=function(){var e=this,t=e._self._c;return t("FormGroup",{staticClass:"relative"},[e.label?t("Label",{attrs:{errors:e.errors,forId:e.id}},[e._v(e._s(e.label))]):e._e(),e.allowCopy?t("button",{staticClass:"flex items-center right-0 absolute text-xs text-medium-emphasis",attrs:{type:"button"},on:{click:e.copy}},[t("IconClipboard",{staticClass:"mr-2"}),e._v(" "+e._s(e.copyText)+" ")],1):e._e(),e.allowRandomString?t("button",{staticClass:"flex items-center right-0 absolute text-xs text-medium-emphasis",attrs:{type:"button"},on:{click:e.generateString}},[t("IconKey",{staticClass:"mr-2"}),e._v(" "+e._s(e.__("Generate"))+" ")],1):e._e(),t("input",{class:[e.defaultClasses,e.disabled||e.loading?"opacity-50":"",e.loading?"cursor-wait":""],attrs:{id:e.id,type:e.type,required:e.required,disabled:e.loading||e.disabled,autofocus:e.autofocus,placeholder:e.placeholder},domProps:{value:e.value},on:{input:function(o){return e.updateValue(o.target.value)}}}),e.errors?t("ErrorText",[e._v(e._s(e.errors[0]))]):e._e(),e.helperText&&!e.errors?t("HelperText",[e._v(e._s(e.helperText))]):e._e()],1)},m=[],_=u(c,f,m,!1,null,null,null,null);const q=_.exports;export{q as default};

View File

@@ -0,0 +1,119 @@
import { a as FormGroup, L as Label, E as ErrorText, H as HelperText } from "./FormInput.8ab0f203.js";
import { o as openBlock, f as createBlock, w as withCtx, e as createTextVNode, t as toDisplayString, d as createCommentVNode, j as withDirectives, x as vModelSelect, b as createBaseVNode, h as renderSlot, n as normalizeClass, r as resolveComponent } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const defaultClasses = "w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main = {
props: {
id: {
type: String,
required: false
},
label: {
type: String,
required: false
},
type: {
type: String,
default: () => "text"
},
required: {
type: Boolean,
default: () => false
},
helperText: {
type: String
},
errors: {
type: Array
},
placeholder: {
type: String
},
value: {
required: false,
default: ""
},
loading: {
type: Boolean,
required: false,
default: false
},
disabled: {
type: Boolean,
required: false,
default: false
}
},
components: {
FormGroup,
Label,
ErrorText,
HelperText
},
data() {
return {
defaultClasses,
selected: this.value
};
},
methods: {
updateValue(value) {
this.$emit("input", value);
}
}
};
const _hoisted_1 = ["disabled", "id", "required", "placeholder"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_Label = resolveComponent("Label");
const _component_ErrorText = resolveComponent("ErrorText");
const _component_HelperText = resolveComponent("HelperText");
const _component_FormGroup = resolveComponent("FormGroup");
return openBlock(), createBlock(_component_FormGroup, null, {
default: withCtx(() => [
$props.label ? (openBlock(), createBlock(_component_Label, {
key: 0,
errors: $props.errors,
forId: $props.id
}, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.label), 1)
], void 0, true),
_: 1
}, 8, ["errors", "forId"])) : createCommentVNode("", true),
withDirectives(createBaseVNode("select", {
disabled: $props.loading || $props.disabled,
class: normalizeClass([
$data.defaultClasses,
$props.disabled || $props.loading ? "opacity-50" : "",
$props.loading ? "cursor-wait" : ""
]),
id: $props.id,
required: $props.required,
placeholder: $props.placeholder,
onInput: _cache[0] || (_cache[0] = ($event) => $options.updateValue($event.target.value)),
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $props.value = $event)
}, [
renderSlot(_ctx.$slots, "default")
], 42, _hoisted_1), [
[vModelSelect, $props.value]
]),
$props.errors ? (openBlock(), createBlock(_component_ErrorText, { key: 1 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.errors[0]), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true),
$props.helperText && !$props.errors ? (openBlock(), createBlock(_component_HelperText, { key: 2 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.helperText), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true)
], void 0, true),
_: 3
});
}
const FormSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
FormSelect as F
};

View File

@@ -1 +0,0 @@
import n from"./FormGroup.efd02a6a.js";import u from"./Label.9d0d3ee0.js";import d from"./ErrorText.b141a597.js";import i from"./HelperText.14a7ed0b.js";import{n as p}from"./plugin-vue2_normalizer.000ba15c.js";const f="w-full border-medium-emphasis text-body h-10 px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",c={props:{id:{type:String,required:!1},label:{type:String,required:!1},type:{type:String,default:()=>"text"},required:{type:Boolean,default:()=>!1},helperText:{type:String},errors:{type:Array},placeholder:{type:String},value:{required:!1,default:""},loading:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1,default:!1}},components:{FormGroup:n,Label:u,ErrorText:d,HelperText:i},data(){return{defaultClasses:f,selected:this.value}},methods:{updateValue(a){this.$emit("input",a)}}};var m=function(){var e=this,r=e._self._c;return r("FormGroup",[e.label?r("Label",{attrs:{errors:e.errors,forId:e.id}},[e._v(e._s(e.label))]):e._e(),r("select",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],class:[e.defaultClasses,e.disabled||e.loading?"opacity-50":"",e.loading?"cursor-wait":""],attrs:{disabled:e.loading||e.disabled,id:e.id,required:e.required,placeholder:e.placeholder},on:{input:function(l){return e.updateValue(l.target.value)},change:function(l){var o=Array.prototype.filter.call(l.target.options,function(t){return t.selected}).map(function(t){var s="_value"in t?t._value:t.value;return s});e.value=l.target.multiple?o:o[0]}}},[e._t("default")],2),e.errors?r("ErrorText",[e._v(e._s(e.errors[0]))]):e._e(),e.helperText&&!e.errors?r("HelperText",[e._v(e._s(e.helperText))]):e._e()],1)},_=[],v=p(c,m,_,!1,null,null,null,null);const q=v.exports;export{q as default};

View File

@@ -1 +0,0 @@
import a from"./FormGroup.efd02a6a.js";import l from"./Label.9d0d3ee0.js";import s from"./ErrorText.b141a597.js";import u from"./HelperText.14a7ed0b.js";import{n}from"./plugin-vue2_normalizer.000ba15c.js";const d="w-full border-medium-emphasis text-body px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",p={props:{id:{type:String,required:!1},label:{type:String,required:!0},required:{type:Boolean,default:()=>!1},errors:{type:Array},placeholder:{type:String},value:{required:!1,default:""},rows:{default:3,required:!1},helperText:{type:String}},components:{FormGroup:a,Label:l,ErrorText:s,HelperText:u},data(){return{defaultClasses:d}},methods:{updateValue(t){this.$emit("input",t)}}};var i=function(){var e=this,r=e._self._c;return r("FormGroup",[r("Label",{attrs:{errors:e.errors,forId:e.id}},[e._v(e._s(e.label))]),r("textarea",{class:[e.defaultClasses],attrs:{id:e.id,required:e.required,rows:e.rows,placeholder:e.placeholder},domProps:{value:e.value},on:{input:function(o){return e.updateValue(o.target.value)}}}),e.errors?r("ErrorText",[e._v(e._s(e.errors[0]))]):e._e(),e.helperText&&!e.errors?r("HelperText",[e._v(e._s(e.helperText))]):e._e()],1)},f=[],m=n(p,i,f,!1,null,null,null,null);const b=m.exports;export{b as default};

View File

@@ -0,0 +1,99 @@
import { a as FormGroup, L as Label, E as ErrorText, H as HelperText } from "./FormInput.8ab0f203.js";
import { o as openBlock, f as createBlock, w as withCtx, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, n as normalizeClass, d as createCommentVNode, r as resolveComponent } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const defaultClasses = "w-full border-medium-emphasis text-body px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary";
const _sfc_main = {
props: {
id: {
type: String,
required: false
},
label: {
type: String,
required: true
},
required: {
type: Boolean,
default: () => false
},
errors: {
type: Array
},
placeholder: {
type: String
},
value: {
required: false,
default: ""
},
rows: {
default: 3,
required: false
},
helperText: {
type: String
}
},
components: {
FormGroup,
Label,
ErrorText,
HelperText
},
data() {
return {
defaultClasses
};
},
methods: {
updateValue(value) {
this.$emit("input", value);
}
}
};
const _hoisted_1 = ["id", "required", "value", "rows", "placeholder"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_Label = resolveComponent("Label");
const _component_ErrorText = resolveComponent("ErrorText");
const _component_HelperText = resolveComponent("HelperText");
const _component_FormGroup = resolveComponent("FormGroup");
return openBlock(), createBlock(_component_FormGroup, null, {
default: withCtx(() => [
createVNode(_component_Label, {
errors: $props.errors,
forId: $props.id
}, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.label), 1)
], void 0, true),
_: 1
}, 8, ["errors", "forId"]),
createBaseVNode("textarea", {
id: $props.id,
class: normalizeClass([$data.defaultClasses]),
required: $props.required,
value: $props.value,
rows: $props.rows,
onInput: _cache[0] || (_cache[0] = ($event) => $options.updateValue($event.target.value)),
placeholder: $props.placeholder
}, null, 42, _hoisted_1),
$props.errors ? (openBlock(), createBlock(_component_ErrorText, { key: 0 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.errors[0]), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true),
$props.helperText && !$props.errors ? (openBlock(), createBlock(_component_HelperText, { key: 1 }, {
default: withCtx(() => [
createTextVNode(toDisplayString($props.helperText), 1)
], void 0, true),
_: 1
})) : createCommentVNode("", true)
], void 0, true),
_: 1
});
}
const FormTextarea = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
FormTextarea as F
};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const s={};var l=function(){var e=this,t=e._self._c;return t("p",{staticClass:"text-medium-emphasis text-small"},[e._t("default")],2)},r=[],a=n(s,l,r,!1,null,null,null,null);const c=a.exports;export{c as default};

View File

@@ -0,0 +1,46 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main$1 = {};
const _hoisted_1$1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
class: "bi bi-arrow-up",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$1 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5z"
}, null, -1);
const _hoisted_3$1 = [
_hoisted_2$1
];
function _sfc_render$1(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$1, _hoisted_3$1);
}
const IconArrowUp = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const _sfc_main = {};
const _hoisted_1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
class: "bi bi-arrow-down",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1z"
}, null, -1);
const _hoisted_3 = [
_hoisted_2
];
function _sfc_render(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1, _hoisted_3);
}
const IconArrowDown = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
IconArrowDown as I,
IconArrowUp as a
};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var l=function(){var n=this,r=n._self._c;return r("svg",{staticClass:"bi bi-arrow-down",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[r("path",{attrs:{"fill-rule":"evenodd",d:"M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1z"}})])},o=[],a=t(e,l,o,!1,null,null,null,null);const _=a.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var l=function(){var t=this,r=t._self._c;return r("svg",{staticClass:"bi bi-arrow-up",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[r("path",{attrs:{"fill-rule":"evenodd",d:"M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5z"}})])},a=[],s=n(e,l,a,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const r={};var t=function(){var n=this,l=n._self._c;return l("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[l("path",{attrs:{"fill-rule":"evenodd",d:"M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2l-2.218-.887zm3.564 1.426L5.596 5 8 5.961 14.154 3.5l-2.404-.961zm3.25 1.7l-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z"}})])},a=[],o=e(r,t,a,!1,null,null,null,null);const c=o.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const s={};var c=function(){var e=this,n=e._self._c;return n("button",{staticClass:"inline-flex items-center justify-center w-10 h-10 text-medium-emphasis rounded-circle focus:outline-none focus:text-high-emphasis",on:{click:function(l){return e.$emit("click")}}},[e._t("default")],2)},o=[],r=t(s,c,o,!1,null,null,null,null);const a=r.exports;export{a as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const t={};var l=function(){var n=this,e=n._self._c;return e("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"}})])},o=[],a=r(t,l,o,!1,null,null,null,null);const c=a.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var l=function(){var t=this,a=t._self._c;return a("svg",{staticClass:"bi bi-clipboard",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"}}),a("path",{attrs:{"fill-rule":"evenodd",d:"M9.5 1h-3a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"}})])},n=[],s=r(e,l,n,!1,null,null,null,null);const v=s.exports;export{v as default};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const n={};var r=function(){var l=this,e=l._self._c;return e("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M11.854 4.146a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708-.708l7-7a.5.5 0 0 1 .708 0z"}}),e("path",{attrs:{"fill-rule":"evenodd",d:"M4.146 4.146a.5.5 0 0 0 0 .708l7 7a.5.5 0 0 0 .708-.708l-7-7a.5.5 0 0 0-.708 0z"}})])},a=[],o=t(n,r,a,!1,null,null,null,null);const c=o.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const r={};var e=function(){var t=this,a=t._self._c;return a("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M7.938 2.016a.146.146 0 0 0-.054.057L1.027 13.74a.176.176 0 0 0-.002.183c.016.03.037.05.054.06.015.01.034.017.066.017h13.713a.12.12 0 0 0 .066-.017.163.163 0 0 0 .055-.06.176.176 0 0 0-.003-.183L8.12 2.073a.146.146 0 0 0-.054-.057A.13.13 0 0 0 8.002 2a.13.13 0 0 0-.064.016zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"}}),a("path",{attrs:{d:"M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"}})])},l=[],s=n(r,e,l,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const n={};var m=function(){var c=this,a=c._self._c;return a("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M1.018 7.5h2.49c.037-1.07.189-2.087.437-3.008a9.124 9.124 0 0 1-1.565-.667A6.964 6.964 0 0 0 1.018 7.5zM3.05 3.049c.362.184.763.349 1.198.49.142-.384.304-.744.481-1.078a6.7 6.7 0 0 1 .597-.933A7.01 7.01 0 0 0 3.051 3.05zM8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm-.5 1.077c-.67.204-1.335.82-1.887 1.855-.143.268-.276.56-.395.872.705.157 1.473.257 2.282.287V1.077zm0 4.014c-.91-.03-1.783-.145-2.591-.332a12.344 12.344 0 0 0-.4 2.741H7.5V5.091zm1 2.409V5.091c.91-.03 1.783-.145 2.591-.332.223.827.364 1.754.4 2.741H8.5zm-1 1H4.51c.035.987.176 1.914.399 2.741A13.596 13.596 0 0 1 7.5 10.91V8.5zm1 2.409V8.5h2.99a12.343 12.343 0 0 1-.399 2.741A13.596 13.596 0 0 0 8.5 10.91zm-1 1c-.81.03-1.577.13-2.282.287.12.312.252.604.395.872.552 1.035 1.218 1.65 1.887 1.855V11.91zm-2.173 2.563a6.695 6.695 0 0 1-.597-.933 8.857 8.857 0 0 1-.481-1.078 8.356 8.356 0 0 0-1.198.49 7.01 7.01 0 0 0 2.276 1.52zM2.38 12.175c.47-.258.995-.482 1.565-.667A13.36 13.36 0 0 1 3.508 8.5h-2.49a6.964 6.964 0 0 0 1.362 3.675zm8.293 2.297a7.01 7.01 0 0 0 2.275-1.521 8.353 8.353 0 0 0-1.197-.49 8.859 8.859 0 0 1-.481 1.078 6.688 6.688 0 0 1-.597.933zm.11-2.276A12.63 12.63 0 0 0 8.5 11.91v3.014c.67-.204 1.335-.82 1.887-1.855.143-.268.276-.56.395-.872zm1.272-.688c.57.185 1.095.409 1.565.667A6.964 6.964 0 0 0 14.982 8.5h-2.49a13.355 13.355 0 0 1-.437 3.008zm.437-4.008h2.49a6.963 6.963 0 0 0-1.362-3.675c-.47.258-.995.482-1.565.667.248.92.4 1.938.437 3.008zm-.74-3.96a8.854 8.854 0 0 0-.482-1.079 6.692 6.692 0 0 0-.597-.933c.857.355 1.63.875 2.275 1.521a8.368 8.368 0 0 1-1.197.49zm-.97.264c-.705.157-1.473.257-2.282.287V1.077c.67.204 1.335.82 1.887 1.855.143.268.276.56.395.872z"}})])},r=[],t=e(n,m,r,!1,null,null,null,null);const s=t.exports;export{s as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var l=function(){var t=this,a=t._self._c;return a("svg",{staticClass:"bi bi-hdd",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M14 9H2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zM2 8a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-1a2 2 0 0 0-2-2H2z"}}),a("path",{attrs:{d:"M5 10.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-2 0a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z"}}),a("path",{attrs:{"fill-rule":"evenodd",d:"M4.094 4a.5.5 0 0 0-.44.26l-2.47 4.532A1.5 1.5 0 0 0 1 9.51v.99H0v-.99c0-.418.105-.83.305-1.197l2.472-4.531A1.5 1.5 0 0 1 4.094 3h7.812a1.5 1.5 0 0 1 1.317.782l2.472 4.53c.2.368.305.78.305 1.198v.99h-1v-.99a1.5 1.5 0 0 0-.183-.718L12.345 4.26a.5.5 0 0 0-.439-.26H4.094z"}})])},n=[],s=r(e,l,n,!1,null,null,null,null);const d=s.exports;export{d as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var l=function(){var r=this,t=r._self._c;return t("svg",{staticClass:"bi bi-info-circle",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{"fill-rule":"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"}}),t("path",{attrs:{d:"M8.93 6.588l-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588z"}}),t("circle",{attrs:{cx:"8",cy:"4.5",r:"1"}})])},s=[],c=n(e,l,s,!1,null,null,null,null);const i=c.exports;export{i as default};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var n=function(){var l=this,a=l._self._c;return a("svg",{staticClass:"bi bi-key",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M0 8a4 4 0 0 1 7.465-2H14a.5.5 0 0 1 .354.146l1.5 1.5a.5.5 0 0 1 0 .708l-1.5 1.5a.5.5 0 0 1-.708 0L13 9.207l-.646.647a.5.5 0 0 1-.708 0L11 9.207l-.646.647a.5.5 0 0 1-.708 0L9 9.207l-.646.647A.5.5 0 0 1 8 10h-.535A4 4 0 0 1 0 8zm4-3a3 3 0 1 0 2.712 4.285A.5.5 0 0 1 7.163 9h.63l.853-.854a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.646-.647a.5.5 0 0 1 .708 0l.646.647.793-.793-1-1h-6.63a.5.5 0 0 1-.451-.285A3 3 0 0 0 4 5z"}}),a("path",{attrs:{d:"M4 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"}})])},r=[],s=t(e,n,r,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const r={};var o=function(){var t=this,n=t._self._c;return n("svg",{staticClass:"bi bi-moon",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[n("path",{attrs:{"fill-rule":"evenodd",d:"M14.53 10.53a7 7 0 0 1-9.058-9.058A7.003 7.003 0 0 0 8 15a7.002 7.002 0 0 0 6.53-4.47z"}})])},s=[],l=e(r,o,s,!1,null,null,null,null);const _=l.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const t={};var l=function(){var n=this,e=n._self._c;return e("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"}})])},o=[],s=r(t,l,o,!1,null,null,null,null);const c=s.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const t={};var s=function(){var e=this,n=e._self._c;return n("svg",{staticClass:"bi bi-person",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[n("path",{attrs:{"fill-rule":"evenodd",d:"M13 14s1 0 1-1-1-4-6-4-6 3-6 4 1 1 1 1h10zm-9.995-.944v-.002.002zM3.022 13h9.956a.274.274 0 0 0 .014-.002l.008-.002c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664a1.05 1.05 0 0 0 .022.004zm9.974.056v-.002.002zM8 7a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm3-2a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"}})])},l=[],a=r(t,s,l,!1,null,null,null,null);const i=a.exports;export{i as default};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const c={};var r=function(){var n=this,l=n._self._c;return l("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 640 512",width:"1.5em",height:"1.5em",fill:"currentColor"}},[l("path",{attrs:{d:"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"}})])},e=[],s=t(c,r,e,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const a={};var l=function(){var t=this,e=t._self._c;return e("svg",{staticClass:"bi bi-search",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M10.442 10.442a1 1 0 0 1 1.415 0l3.85 3.85a1 1 0 0 1-1.414 1.415l-3.85-3.85a1 1 0 0 1 0-1.415z"}}),e("path",{attrs:{"fill-rule":"evenodd",d:"M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"}})])},n=[],s=r(a,l,n,!1,null,null,null,null);const i=s.exports;export{i as default};

View File

@@ -0,0 +1,71 @@
import { o as openBlock, c as createElementBlock, b as createBaseVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main$2 = {};
const _hoisted_1$2 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$2 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2l-2.218-.887zm3.564 1.426L5.596 5 8 5.961 14.154 3.5l-2.404-.961zm3.25 1.7l-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z"
}, null, -1);
const _hoisted_3$2 = [
_hoisted_2$2
];
function _sfc_render$2(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$2, _hoisted_3$2);
}
const IconBox = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2]]);
const _sfc_main$1 = {};
const _hoisted_1$1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2$1 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M1.018 7.5h2.49c.037-1.07.189-2.087.437-3.008a9.124 9.124 0 0 1-1.565-.667A6.964 6.964 0 0 0 1.018 7.5zM3.05 3.049c.362.184.763.349 1.198.49.142-.384.304-.744.481-1.078a6.7 6.7 0 0 1 .597-.933A7.01 7.01 0 0 0 3.051 3.05zM8 0a8 8 0 1 0 0 16A8 8 0 0 0 8 0zm-.5 1.077c-.67.204-1.335.82-1.887 1.855-.143.268-.276.56-.395.872.705.157 1.473.257 2.282.287V1.077zm0 4.014c-.91-.03-1.783-.145-2.591-.332a12.344 12.344 0 0 0-.4 2.741H7.5V5.091zm1 2.409V5.091c.91-.03 1.783-.145 2.591-.332.223.827.364 1.754.4 2.741H8.5zm-1 1H4.51c.035.987.176 1.914.399 2.741A13.596 13.596 0 0 1 7.5 10.91V8.5zm1 2.409V8.5h2.99a12.343 12.343 0 0 1-.399 2.741A13.596 13.596 0 0 0 8.5 10.91zm-1 1c-.81.03-1.577.13-2.282.287.12.312.252.604.395.872.552 1.035 1.218 1.65 1.887 1.855V11.91zm-2.173 2.563a6.695 6.695 0 0 1-.597-.933 8.857 8.857 0 0 1-.481-1.078 8.356 8.356 0 0 0-1.198.49 7.01 7.01 0 0 0 2.276 1.52zM2.38 12.175c.47-.258.995-.482 1.565-.667A13.36 13.36 0 0 1 3.508 8.5h-2.49a6.964 6.964 0 0 0 1.362 3.675zm8.293 2.297a7.01 7.01 0 0 0 2.275-1.521 8.353 8.353 0 0 0-1.197-.49 8.859 8.859 0 0 1-.481 1.078 6.688 6.688 0 0 1-.597.933zm.11-2.276A12.63 12.63 0 0 0 8.5 11.91v3.014c.67-.204 1.335-.82 1.887-1.855.143-.268.276-.56.395-.872zm1.272-.688c.57.185 1.095.409 1.565.667A6.964 6.964 0 0 0 14.982 8.5h-2.49a13.355 13.355 0 0 1-.437 3.008zm.437-4.008h2.49a6.963 6.963 0 0 0-1.362-3.675c-.47.258-.995.482-1.565.667.248.92.4 1.938.437 3.008zm-.74-3.96a8.854 8.854 0 0 0-.482-1.079 6.692 6.692 0 0 0-.597-.933c.857.355 1.63.875 2.275 1.521a8.368 8.368 0 0 1-1.197.49zm-.97.264c-.705.157-1.473.257-2.282.287V1.077c.67.204 1.335.82 1.887 1.855.143.268.276.56.395.872z"
}, null, -1);
const _hoisted_3$1 = [
_hoisted_2$1
];
function _sfc_render$1(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$1, _hoisted_3$1);
}
const IconGlobe = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const _sfc_main = {};
const _hoisted_1 = {
width: "1em",
height: "1em",
viewBox: "0 0 16 16",
fill: "currentColor",
xmlns: "http://www.w3.org/2000/svg"
};
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M14 9H2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zM2 8a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-1a2 2 0 0 0-2-2H2z"
}, null, -1);
const _hoisted_3 = /* @__PURE__ */ createBaseVNode("path", { d: "M5 10.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-2 0a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z" }, null, -1);
const _hoisted_4 = /* @__PURE__ */ createBaseVNode("path", {
"fill-rule": "evenodd",
d: "M4.094 4a.5.5 0 0 0-.44.26l-2.47 4.532A1.5 1.5 0 0 0 1 9.51v.99H0v-.99c0-.418.105-.83.305-1.197l2.472-4.531A1.5 1.5 0 0 1 4.094 3h7.812a1.5 1.5 0 0 1 1.317.782l2.472 4.53c.2.368.305.78.305 1.198v.99h-1v-.99a1.5 1.5 0 0 0-.183-.718L12.345 4.26a.5.5 0 0 0-.439-.26H4.094z"
}, null, -1);
const _hoisted_5 = [
_hoisted_2,
_hoisted_3,
_hoisted_4
];
function _sfc_render(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1, _hoisted_5);
}
const IconStorage = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
IconBox as I,
IconGlobe as a,
IconStorage as b
};

View File

@@ -1 +0,0 @@
import{n as e}from"./plugin-vue2_normalizer.000ba15c.js";const r={};var l=function(){var t=this,a=t._self._c;return a("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{"fill-rule":"evenodd",d:"M14 9H2a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zM2 8a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-1a2 2 0 0 0-2-2H2z"}}),a("path",{attrs:{d:"M5 10.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm-2 0a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0z"}}),a("path",{attrs:{"fill-rule":"evenodd",d:"M4.094 4a.5.5 0 0 0-.44.26l-2.47 4.532A1.5 1.5 0 0 0 1 9.51v.99H0v-.99c0-.418.105-.83.305-1.197l2.472-4.531A1.5 1.5 0 0 1 4.094 3h7.812a1.5 1.5 0 0 1 1.317.782l2.472 4.53c.2.368.305.78.305 1.198v.99h-1v-.99a1.5 1.5 0 0 0-.183-.718L12.345 4.26a.5.5 0 0 0-.439-.26H4.094z"}})])},n=[],o=e(r,l,n,!1,null,null,null,null);const c=o.exports;export{c as default};

View File

@@ -1 +0,0 @@
import{n}from"./plugin-vue2_normalizer.000ba15c.js";const r={};var l=function(){var t=this,e=t._self._c;return e("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[e("path",{attrs:{"fill-rule":"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"}}),e("path",{attrs:{"fill-rule":"evenodd",d:"M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.236.236 0 0 1 .02-.022z"}})])},a=[],s=n(r,l,a,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const n={};var r=function(){var l=this,a=l._self._c;return a("svg",{staticClass:"bi bi-sun",attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M3.5 8a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0z"}}),a("path",{attrs:{"fill-rule":"evenodd",d:"M8.202.28a.25.25 0 0 0-.404 0l-.91 1.255a.25.25 0 0 1-.334.067L5.232.79a.25.25 0 0 0-.374.155l-.36 1.508a.25.25 0 0 1-.282.19l-1.532-.245a.25.25 0 0 0-.286.286l.244 1.532a.25.25 0 0 1-.189.282l-1.509.36a.25.25 0 0 0-.154.374l.812 1.322a.25.25 0 0 1-.067.333l-1.256.91a.25.25 0 0 0 0 .405l1.256.91a.25.25 0 0 1 .067.334L.79 10.768a.25.25 0 0 0 .154.374l1.51.36a.25.25 0 0 1 .188.282l-.244 1.532a.25.25 0 0 0 .286.286l1.532-.244a.25.25 0 0 1 .282.189l.36 1.508a.25.25 0 0 0 .374.155l1.322-.812a.25.25 0 0 1 .333.067l.91 1.256a.25.25 0 0 0 .405 0l.91-1.256a.25.25 0 0 1 .334-.067l1.322.812a.25.25 0 0 0 .374-.155l.36-1.508a.25.25 0 0 1 .282-.19l1.532.245a.25.25 0 0 0 .286-.286l-.244-1.532a.25.25 0 0 1 .189-.282l1.508-.36a.25.25 0 0 0 .155-.374l-.812-1.322a.25.25 0 0 1 .067-.333l1.256-.91a.25.25 0 0 0 0-.405l-1.256-.91a.25.25 0 0 1-.067-.334l.812-1.322a.25.25 0 0 0-.155-.374l-1.508-.36a.25.25 0 0 1-.19-.282l.245-1.532a.25.25 0 0 0-.286-.286l-1.532.244a.25.25 0 0 1-.282-.189l-.36-1.508a.25.25 0 0 0-.374-.155l-1.322.812a.25.25 0 0 1-.333-.067L8.203.28zM8 2.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z"}})])},e=[],s=t(n,r,e,!1,null,null,null,null);const _=s.exports;export{_ as default};

View File

@@ -1 +0,0 @@
import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";const e={};var a=function(){var t=this,n=t._self._c;return n("svg",{attrs:{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"}},[n("path",{attrs:{"fill-rule":"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"}}),n("path",{attrs:{d:"M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z"}})])},l=[],s=r(e,a,l,!1,null,null,null,null);const c=s.exports;export{c as default};

124
public/build/assets/Index.0cf7e40f.js vendored Normal file
View File

@@ -0,0 +1,124 @@
import TopBar from "./TopBar.cc8ad583.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { S as SettingsSegment } from "./SettingsSegment.8dedf9a4.js";
import { S as SettingsLayout } from "./SettingsLayout.76203a2a.js";
import Tabs from "./Tabs.f7955794.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Documentation")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormTextarea,
FormActions,
EmptyImage,
Tabs,
SettingsLayout,
SettingsSegment
},
props: {
items: Object
},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Documentation"),
to: this.route("documentation.index")
}
]
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_Tabs = resolveComponent("Tabs");
const _component_SettingsLayout = resolveComponent("SettingsLayout");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Documentation")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createVNode(_component_SettingsLayout, null, {
nav: withCtx(() => [
createVNode(_component_Tabs, {
items: $props.items.data
}, null, 8, ["items"])
]),
segments: withCtx(() => []),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

View File

@@ -1 +0,0 @@
import i from"./TopBar.51894da2.js";import m from"./Container.f87d9f62.js";import a from"./Content.e22a1fd6.js";import p from"./Page.3927bdbf.js";import s from"./PageHeader.a5f457a5.js";import n from"./PageHeaderTitle.3ed783af.js";import l from"./PageBody.dec1fae1.js";import f from"./Button.f17dffc9.js";import u from"./List.d5d221b1.js";import c from"./ListItem.ee1e88fb.js";import d from"./StatusBubble.4f1d8322.js";import _ from"./NotificationBadge.b6fae3d5.js";import g from"./MainLayout.39e63d2b.js";import b from"./IconBox.e6c961ac.js";import v from"./IconGlobe.07030b80.js";import h from"./IconStorage.ef2b2e41.js";import y from"./Modal.a59fc373.js";import $ from"./ModalContainer.51de3ea9.js";import x from"./FormInput.e3b01057.js";import F from"./FormSelect.9822372e.js";import I from"./FormActions.83ccca91.js";import{n as P}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./IconClose.edb7c8fd.js";import"./Form.2cdcadd9.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const C={metaInfo(){return{title:`${this.__("Profile")}`}},layout:g,components:{TopBar:i,Container:m,Content:a,Page:p,PageHeader:s,PageHeaderTitle:n,PageBody:l,Button:f,List:u,ListItem:c,StatusBubble:d,NotificationBadge:_,IconBox:b,IconGlobe:v,IconStorage:h,Modal:y,ModalContainer:$,FormInput:x,FormSelect:F,FormActions:I},props:{profile:Object,countries:Object},data(){return{form:{name:this.profile.name,email:this.profile.email,language:this.profile.language,address:this.profile.address,country:this.profile.country,zip:this.profile.zip,city:this.profile.city},breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Profile"),to:this.route("profile.index")}]}},methods:{submit(){this.$inertia.patch(this.route("profile.update"),this.form,{onStart:()=>this.sending=!0,onFinish:()=>this.sending=!1})}}};var B=function(){var r=this,o=r._self._c;return o("Page",[o("TopBar",{attrs:{breadcrumbs:r.breadcrumbs}}),o("Content",[o("Container",[o("PageBody",[o("form",{staticClass:"space-y-4",on:{submit:function(t){return t.preventDefault(),r.submit.apply(null,arguments)}}},[o("FormInput",{attrs:{label:r.__("Name"),errors:r.$page.props.errors.name},model:{value:r.form.name,callback:function(t){r.$set(r.form,"name",t)},expression:"form.name"}}),o("FormInput",{attrs:{label:r.__("Email"),type:"email",errors:r.$page.props.errors.email},model:{value:r.form.email,callback:function(t){r.$set(r.form,"email",t)},expression:"form.email"}}),o("FormSelect",{attrs:{label:r.__("Language"),errors:r.$page.props.errors.language},model:{value:r.form.language,callback:function(t){r.$set(r.form,"language",t)},expression:"form.language"}},[o("option",{attrs:{value:"en"}},[r._v("English")]),o("option",{attrs:{value:"nl"}},[r._v("Dutch")]),o("option",{attrs:{value:"fr"}},[r._v("French")]),o("option",{attrs:{value:"da"}},[r._v("Danish")]),o("option",{attrs:{value:"nb-no"}},[r._v("Norwegian")]),o("option",{attrs:{value:"pt"}},[r._v("Portuguese")])]),o("FormInput",{attrs:{label:r.__("Address"),type:"text",errors:r.$page.props.errors.address},model:{value:r.form.address,callback:function(t){r.$set(r.form,"address",t)},expression:"form.address"}}),o("FormSelect",{attrs:{label:r.__("Country"),errors:r.$page.props.errors.country},model:{value:r.form.country,callback:function(t){r.$set(r.form,"country",t)},expression:"form.country"}},r._l(r.countries,function(t,e){return o("option",{domProps:{value:e,textContent:r._s(t)}})}),0),o("FormInput",{attrs:{label:r.__("ZIP"),type:"text",errors:r.$page.props.errors.zip},model:{value:r.form.zip,callback:function(t){r.$set(r.form,"zip",t)},expression:"form.zip"}}),o("FormInput",{attrs:{label:r.__("City"),type:"text",errors:r.$page.props.errors.city},model:{value:r.form.city,callback:function(t){r.$set(r.form,"city",t)},expression:"form.city"}}),o("FormActions",[o("Button",[r._v(r._s(r.__("Save")))])],1)],1)])],1)],1)],1)},k=[],z=P(C,B,k,!1,null,null,null,null);const zr=z.exports;export{zr as default};

View File

@@ -1 +0,0 @@
import a from"./TopBar.d1947609.js";import i from"./Container.f87d9f62.js";import o from"./Content.e22a1fd6.js";import n from"./Page.3927bdbf.js";import p from"./PageHeader.a5f457a5.js";import m from"./PageHeaderTitle.3ed783af.js";import l from"./PageBody.dec1fae1.js";import c from"./Button.f17dffc9.js";import u from"./List.d5d221b1.js";import f from"./ListItem.ee1e88fb.js";import d from"./StatusBubble.4f1d8322.js";import _ from"./NotificationBadge.b6fae3d5.js";import h from"./MainLayout.39e63d2b.js";import g from"./IconBox.e6c961ac.js";import v from"./IconGlobe.07030b80.js";import x from"./IconStorage.ef2b2e41.js";import{u as r}from"./notification.f3a0f54e.js";import{n as b}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./app.0131bc0c.js";const C={metaInfo(){return{title:`${this.__("Dashboard")}`}},layout:h,components:{TopBar:a,Container:i,Content:o,Page:n,PageHeader:p,PageHeaderTitle:m,PageBody:l,Button:c,List:u,ListItem:f,StatusBubble:d,NotificationBadge:_,IconBox:g,IconGlobe:v,IconStorage:x},props:{sites:Number,servers:Number,package:Object,logs:Array},methods:{useNotification:r},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:"Dashboard",to:"/"}]}},computed:{hasAccessToServers(){return Object.keys(this.$page.props.auth.can).length&&(this.$page.props.auth.can.servers.create||this.$page.props.auth.can.servers.update||this.$page.props.auth.can.servers.delete)}},mounted(){this.$page.props.flash.info&&r({variant:"info",title:"Information",message:this.$page.props.flash.info})}};var y=function(){var t=this,e=t._self._c;return e("Page",[e("TopBar",{attrs:{breadcrumbs:t.breadcrumbs}}),e("Content",[e("Container",[e("PageHeader",{scopedSlots:t._u([{key:"start",fn:function(){return[e("PageHeaderTitle",[t._v(t._s(t.__("Dashboard")))])]},proxy:!0}])}),e("PageBody",[e("div",[e("ul",{staticClass:"grid grid-cols-1 gap-4",class:{"md:grid-cols-3":t.hasAccessToServers,"md:grid-cols-2":!t.hasAccessToServers}},[e("li",{staticClass:"p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95"},[e("inertia-link",{staticClass:"flex space-x-4",attrs:{href:t.route("sites.index")}},[e("div",[e("IconGlobe",{staticClass:"w-6 h-6"})],1),e("div",[e("h3",{staticClass:"font-semibold text-body"},[t._v(t._s(t.sites))]),e("p",{staticClass:"text-medium-emphasis text-small"},[t._v(t._s(t.__("Sites")))])])])],1),t.hasAccessToServers?e("li",{staticClass:"p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95"},[e("inertia-link",{staticClass:"flex space-x-4",attrs:{href:t.route("servers.index")}},[e("div",[e("IconStorage",{staticClass:"w-6 h-6"})],1),e("div",[e("h3",{staticClass:"font-semibold text-body"},[t._v(t._s(t.servers))]),e("p",{staticClass:"text-medium-emphasis text-small"},[t._v(t._s(t.__("Servers")))])])])],1):t._e(),e("li",{staticClass:"p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95"},[e("inertia-link",{staticClass:"flex space-x-4",attrs:{href:t.$page.props.settings.billing?t.route("profile.billing.index"):t.route("profile.index")}},[e("div",[e("IconBox",{staticClass:"w-6 h-6"})],1),e("div",{staticClass:"w-full"},[e("div",{staticClass:"flex justify-between"},[e("h3",{staticClass:"font-semibold text-body"},[t._v(t._s(t.$page.props.auth.package.name))]),t.$page.props.auth.package.trial?e("span",{staticClass:"inline-flex items-center justify-center h-6 px-2 text-xs font-semibold tracking-tight text-blue-700 rounded-full bg-blue-500/10"},[t._v(" Trial ")]):t._e()]),e("p",{staticClass:"text-medium-emphasis text-small"},[t._v(t._s(t.__("Package")))])])])],1)])]),e("List",t._l(t.logs,function(s){return e("ListItem",{key:s.id,scopedSlots:t._u([{key:"title",fn:function(){return[t._v(" "+t._s(s.title)+" ")]},proxy:!0},{key:"subtitle",fn:function(){return[t._v(t._s(s.description))]},proxy:!0},{key:"suffix",fn:function(){return[e("span",{staticClass:"text-medium-emphasis"},[t._v(t._s(s.created_at_human))])]},proxy:!0}],null,!0)})}),1)],1)],1)],1)],1)},k=[],I=b(C,y,k,!1,null,null,null,null);const ct=I.exports;export{ct as default};

431
public/build/assets/Index.42665b14.js vendored Normal file
View File

@@ -0,0 +1,431 @@
import TopBar from "./TopBar.c224fedc.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar.2102e192.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton.b3b80236.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, c as createElementBlock, k as renderList, F as Fragment, d as createCommentVNode, z as createSlots } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Servers")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
IconButton,
IconMore,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
EmptyImage,
Modal,
ModalContainer,
FormInput,
FormActions,
FormSelect,
Dropdown,
DropdownList,
DropdownListItem,
DropdownListItemButton
},
props: {
servers: Object,
dataProviders: [Array, Object]
},
computed: {
shouldBePolling() {
return !!this.servers.data.filter((server) => {
return server.status === "busy";
}).length;
}
},
mounted() {
if (this.shouldBePolling) {
this.startPollingInterval();
}
},
watch: {
shouldBePolling: function(value) {
if (!value) {
this.clearPollingInterval();
return;
}
if (!this.pollingInterval) {
this.startPollingInterval();
}
},
"form.provider": function(value) {
if (!value) {
this.regions = [];
this.plans = [];
return;
}
this.loading = true;
window.axios.get(this.route("servers.plans-and-regions", value)).then((response) => {
this.loading = false;
this.regions = response.data.regions;
this.plans = response.data.plans;
}).catch((error) => {
this.loading = false;
});
}
},
data() {
return {
loading: false,
form: {
name: null,
provider_id: null,
provider_region_id: null,
provider_plan_id: null,
database_type: "mysql"
},
providers: this.dataProviders,
regions: [],
plans: [],
pollingInterval: null,
modalIsOpen: false,
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Servers"),
to: this.route("servers.index")
}
]
};
},
methods: {
startPollingInterval() {
this.pollingInterval = setInterval(function() {
this.poll();
}.bind(this), 12e4);
},
clearPollingInterval() {
clearTimeout(this.pollingInterval);
this.pollingInterval = null;
},
poll() {
this.$inertia.get(this.route("servers.index"), {}, {
only: ["servers"],
preserveScroll: true
});
},
submit() {
this.$inertia.post(this.route("servers.store"), this.form, {
only: ["errors", "flash", "servers"],
onStart: () => this.loading = true,
onSuccess: () => {
if (!Object.keys(this.$page.props.errors).length) {
this.form.domain = null;
this.modalIsOpen = false;
this.form = {
name: null,
provider_id: null,
provider_region_id: null,
provider_plan_id: null
};
}
},
onFinish: () => this.loading = false
});
},
confirmDelete(server) {
useConfirm({
title: this.__("Are you sure?"),
message: `Your server will be deleted completely, this action is irreversible.`,
onConfirm: () => this.delete(server)
});
},
delete(server) {
this.$inertia.delete(this.route("servers.delete", server.id));
}
},
beforeDestroy() {
this.clearPollingInterval();
}
};
const _hoisted_1 = { value: `${null}` };
const _hoisted_2 = ["value"];
const _hoisted_3 = { value: `${null}` };
const _hoisted_4 = ["value"];
const _hoisted_5 = { value: `${null}` };
const _hoisted_6 = ["value"];
const _hoisted_7 = { value: "mysql" };
const _hoisted_8 = { value: "mariadb" };
const _hoisted_9 = { value: "postgresql" };
const _hoisted_10 = { value: "postgresql13" };
const _hoisted_11 = { key: 0 };
const _hoisted_12 = /* @__PURE__ */ createTextVNode("View");
const _hoisted_13 = /* @__PURE__ */ createTextVNode(" Delete ");
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormInput = resolveComponent("FormInput");
const _component_FormSelect = resolveComponent("FormSelect");
const _component_Button = resolveComponent("Button");
const _component_Modal = resolveComponent("Modal");
const _component_ModalContainer = resolveComponent("ModalContainer");
const _component_Portal = resolveComponent("Portal");
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_IconMore = resolveComponent("IconMore");
const _component_IconButton = resolveComponent("IconButton");
const _component_DropdownListItem = resolveComponent("DropdownListItem");
const _component_DropdownListItemButton = resolveComponent("DropdownListItemButton");
const _component_DropdownList = resolveComponent("DropdownList");
const _component_Dropdown = resolveComponent("Dropdown");
const _component_ListItem = resolveComponent("ListItem");
const _component_List = resolveComponent("List");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
_ctx.can("servers", "create") ? (openBlock(), createBlock(_component_Portal, {
key: 0,
to: "modals"
}, {
default: withCtx(() => [
createVNode(_component_ModalContainer, null, {
default: withCtx(() => [
$data.modalIsOpen ? (openBlock(), createBlock(_component_Modal, {
key: 0,
onClose: _cache[5] || (_cache[5] = ($event) => $data.modalIsOpen = false),
onSubmit: $options.submit
}, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create a server")), 1)
]),
form: withCtx(() => [
createVNode(_component_FormInput, {
loading: $data.loading,
label: _ctx.__("Name"),
placeholder: "webserver-01",
errors: _ctx.$page.props.errors.name,
modelValue: $data.form.name,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event)
}, null, 8, ["loading", "label", "errors", "modelValue"]),
createVNode(_component_FormSelect, {
loading: $data.loading,
errors: _ctx.$page.props.errors.provider_id,
label: _ctx.__("Select provider"),
modelValue: $data.form.provider_id,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.provider_id = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_1, toDisplayString(_ctx.__("Select random provider")), 1),
(openBlock(true), createElementBlock(Fragment, null, renderList($data.providers, (name, id) => {
return openBlock(), createElementBlock("option", { value: id }, toDisplayString(name), 9, _hoisted_2);
}), 256))
], void 0, true),
_: 1
}, 8, ["loading", "errors", "label", "modelValue"]),
createVNode(_component_FormSelect, {
loading: $data.loading,
errors: _ctx.$page.props.errors.provider_region_id,
label: _ctx.__("Select region"),
modelValue: $data.form.provider_region_id,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.provider_region_id = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_3, toDisplayString(_ctx.__("Select random region")), 1),
(openBlock(true), createElementBlock(Fragment, null, renderList($data.regions, (name, id) => {
return openBlock(), createElementBlock("option", { value: id }, toDisplayString(name), 9, _hoisted_4);
}), 256))
], void 0, true),
_: 1
}, 8, ["loading", "errors", "label", "modelValue"]),
createVNode(_component_FormSelect, {
loading: $data.loading,
errors: _ctx.$page.props.errors.provider_plan_id,
label: _ctx.__("Select plan"),
modelValue: $data.form.provider_plan_id,
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.form.provider_plan_id = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_5, toDisplayString(_ctx.__("Select random plan")), 1),
(openBlock(true), createElementBlock(Fragment, null, renderList($data.plans, (name, id) => {
return openBlock(), createElementBlock("option", { value: id }, toDisplayString(name), 9, _hoisted_6);
}), 256))
], void 0, true),
_: 1
}, 8, ["loading", "errors", "label", "modelValue"]),
createVNode(_component_FormSelect, {
loading: $data.loading,
errors: _ctx.$page.props.errors.database_type,
label: _ctx.__("Select database type"),
modelValue: $data.form.database_type,
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.form.database_type = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_7, toDisplayString(_ctx.__("MySQL 5.7")), 1),
createBaseVNode("option", _hoisted_8, toDisplayString(_ctx.__("MariaDB")), 1),
createBaseVNode("option", _hoisted_9, toDisplayString(_ctx.__("PostgreSQL")), 1),
createBaseVNode("option", _hoisted_10, toDisplayString(_ctx.__("PostgreSQL 13")), 1)
], void 0, true),
_: 1
}, 8, ["loading", "errors", "label", "modelValue"])
]),
"form-actions": withCtx(() => [
createVNode(_component_Button, {
textContent: toDisplayString(_ctx.__("Create"))
}, null, 8, ["textContent"])
]),
_: 1
}, 8, ["onSubmit"])) : createCommentVNode("", true)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})) : createCommentVNode("", true),
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, createSlots({
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Servers")), 1)
], void 0, true),
_: 1
})
]),
_: 2
}, [
_ctx.can("servers", "create") ? {
name: "end",
fn: withCtx(() => [
createVNode(_component_Button, {
onClick: _cache[6] || (_cache[6] = ($event) => $data.modalIsOpen = true)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create server")), 1)
], void 0, true),
_: 1
})
])
} : void 0
]), 1024),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
!$props.servers.meta.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
createVNode(_component_List, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.servers.data, (server) => {
return openBlock(), createBlock(_component_ListItem, {
key: server.id
}, {
prefix: withCtx(() => [
createVNode(_component_StatusBubble, {
variant: server.status === "busy" ? "gray" : "success"
}, null, 8, ["variant"])
]),
title: withCtx(() => [
createVNode(_component_inertia_link, {
class: "text-primary font-medium",
href: _ctx.route("servers.show", server.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(server.name), 1)
], void 0, true),
_: 2
}, 1032, ["href"])
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(server.ip) + " ", 1),
server.ip ? (openBlock(), createElementBlock("span", _hoisted_11, "\xB7")) : createCommentVNode("", true),
createTextVNode(" " + toDisplayString(server.sites_count) + " " + toDisplayString(_ctx.__choice("site|sites", server.sites_count)), 1)
]),
suffix: withCtx(() => [
createVNode(_component_Dropdown, null, {
default: withCtx(({ isOpen, toggle, position }) => [
createVNode(_component_IconButton, { onClick: toggle }, {
default: withCtx(() => [
createVNode(_component_IconMore, { class: "w-5 h-5" })
], void 0, true),
_: 2
}, 1032, ["onClick"]),
isOpen ? (openBlock(), createBlock(_component_DropdownList, {
key: 0,
position
}, {
default: withCtx(() => [
createVNode(_component_DropdownListItem, {
to: _ctx.route("servers.show", server.id)
}, {
default: withCtx(() => [
_hoisted_12
], void 0, true),
_: 2
}, 1032, ["to"]),
_ctx.can("servers", "delete") ? (openBlock(), createBlock(_component_DropdownListItemButton, {
key: 0,
class: "!text-danger",
onClick: ($event) => $options.confirmDelete(server)
}, {
default: withCtx(() => [
_hoisted_13
], void 0, true),
_: 2
}, 1032, ["onClick"])) : createCommentVNode("", true)
], void 0, true),
_: 2
}, 1032, ["position"])) : createCommentVNode("", true)
]),
_: 2
}, 1024)
]),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

File diff suppressed because one or more lines are too long

395
public/build/assets/Index.72aae7d1.js vendored Normal file
View File

@@ -0,0 +1,395 @@
import TopBar from "./TopBar.27e62198.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { I as IconButton, D as Dropdown, c as DropdownList, d as DropdownListItem } from "./TabBar.2102e192.js";
import { I as IconMore, D as DropdownListItemButton } from "./DropdownListItemButton.b3b80236.js";
import { o as openBlock, c as createElementBlock, b as createBaseVNode, f as createBlock, w as withCtx, r as resolveComponent, a as createVNode, e as createTextVNode, t as toDisplayString, k as renderList, F as Fragment, d as createCommentVNode, z as createSlots } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import { P as Pagination } from "./Pagination.99c0720a.js";
import "./notification.4c298cac.js";
const _sfc_main$1 = {};
const _hoisted_1$1 = {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 640 512",
width: "1.5em",
height: "1.5em",
fill: "currentColor"
};
const _hoisted_2$1 = /* @__PURE__ */ createBaseVNode("path", { d: "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z" }, null, -1);
const _hoisted_3$1 = [
_hoisted_2$1
];
function _sfc_render$1(_ctx, _cache) {
return openBlock(), createElementBlock("svg", _hoisted_1$1, _hoisted_3$1);
}
const IconPhp = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Sites")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
IconButton,
IconMore,
IconPhp,
ListItem,
StatusBubble,
NotificationBadge,
EmptyImage,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormActions,
FormSelect,
Dropdown,
DropdownList,
DropdownListItem,
DropdownListItemButton,
Pagination
},
props: {
sites: Object,
availableServers: [Array, Object]
},
computed: {
shouldBePolling() {
return !!this.sites.data.filter((site) => {
return site.status === "busy";
}).length;
}
},
mounted() {
if (this.shouldBePolling) {
this.startPollingInterval();
}
if (window.location.search.includes("create=")) {
this.modalIsOpen = true;
}
if (window.location.search.includes("server=")) {
let urlParams = new URLSearchParams(window.location.search);
this.form.server_id = urlParams.get("server");
}
},
watch: {
shouldBePolling: function(value) {
if (!value) {
this.clearPollingInterval();
return;
}
if (!this.pollingInterval) {
this.startPollingInterval();
}
}
},
data() {
return {
form: {
domain: null,
server_id: null
},
pollingInterval: null,
modalIsOpen: false,
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Sites"),
to: this.route("sites.index")
}
]
};
},
methods: {
startPollingInterval() {
this.pollingInterval = setInterval(function() {
this.poll();
}.bind(this), 3e3);
},
clearPollingInterval() {
clearTimeout(this.pollingInterval);
this.pollingInterval = null;
},
poll() {
this.$inertia.replace(this.route("sites.index"), {
only: ["sites"],
preserveScroll: true
});
},
closeModal() {
this.modalIsOpen = false;
this.form.domain = null;
this.$page.props.errors = [];
},
submit() {
this.$inertia.post(this.route("sites.store"), this.form, {
only: ["errors", "flash", "sites"],
onFinish: () => {
if (!Object.keys(this.$page.props.errors).length) {
this.form.domain = null;
this.form.server_id = null;
this.modalIsOpen = false;
}
}
});
},
confirmDelete(site) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your site will be deleted completely, this action is irreversible."),
onConfirm: () => this.delete(site)
});
},
delete(site) {
this.$inertia.delete(this.route("sites.delete", site.id));
}
},
beforeDestroy() {
this.clearPollingInterval();
}
};
const _hoisted_1 = { value: `${null}` };
const _hoisted_2 = ["value", "textContent"];
const _hoisted_3 = { class: "flex items-center space-x-2" };
const _hoisted_4 = { class: "flex items-center space-x-2" };
const _hoisted_5 = { key: 0 };
const _hoisted_6 = { key: 1 };
const _hoisted_7 = { key: 2 };
const _hoisted_8 = { key: 3 };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormInput = resolveComponent("FormInput");
const _component_FormSelect = resolveComponent("FormSelect");
const _component_Button = resolveComponent("Button");
const _component_Modal = resolveComponent("Modal");
const _component_ModalContainer = resolveComponent("ModalContainer");
const _component_Portal = resolveComponent("Portal");
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_StatusBubble = resolveComponent("StatusBubble");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_icon_php = resolveComponent("icon-php");
const _component_IconMore = resolveComponent("IconMore");
const _component_IconButton = resolveComponent("IconButton");
const _component_DropdownListItem = resolveComponent("DropdownListItem");
const _component_DropdownListItemButton = resolveComponent("DropdownListItemButton");
const _component_DropdownList = resolveComponent("DropdownList");
const _component_Dropdown = resolveComponent("Dropdown");
const _component_ListItem = resolveComponent("ListItem");
const _component_List = resolveComponent("List");
const _component_pagination = resolveComponent("pagination");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
_ctx.can("sites", "create") ? (openBlock(), createBlock(_component_Portal, {
key: 0,
to: "modals"
}, {
default: withCtx(() => [
createVNode(_component_ModalContainer, null, {
default: withCtx(() => [
$data.modalIsOpen ? (openBlock(), createBlock(_component_Modal, {
key: 0,
onClose: $options.closeModal,
onSubmit: $options.submit
}, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create a site")), 1)
]),
form: withCtx(() => [
createVNode(_component_FormInput, {
label: _ctx.__("Domain"),
errors: _ctx.$page.props.errors.domain,
modelValue: $data.form.domain,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.domain = $event)
}, null, 8, ["label", "errors", "modelValue"]),
Object.keys($props.availableServers).length ? (openBlock(), createBlock(_component_FormSelect, {
key: 0,
label: _ctx.__("Select server"),
modelValue: $data.form.server_id,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.server_id = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_1, toDisplayString(_ctx.__("Select random server")), 1),
(openBlock(true), createElementBlock(Fragment, null, renderList($props.availableServers, (name, id) => {
return openBlock(), createElementBlock("option", {
value: id,
textContent: toDisplayString(name)
}, null, 8, _hoisted_2);
}), 256))
], void 0, true),
_: 1
}, 8, ["label", "modelValue"])) : createCommentVNode("", true)
]),
"form-actions": withCtx(() => [
createVNode(_component_Button, {
textContent: toDisplayString(_ctx.__("Create"))
}, null, 8, ["textContent"])
]),
_: 1
}, 8, ["onClose", "onSubmit"])) : createCommentVNode("", true)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})) : createCommentVNode("", true),
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, createSlots({
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Sites")), 1)
], void 0, true),
_: 1
})
]),
_: 2
}, [
_ctx.can("sites", "create") ? {
name: "end",
fn: withCtx(() => [
createVNode(_component_Button, {
onClick: _cache[2] || (_cache[2] = ($event) => $data.modalIsOpen = true)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create site")), 1)
], void 0, true),
_: 1
})
])
} : void 0
]), 1024),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
!$props.sites.meta.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
createVNode(_component_List, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.sites.data, (site) => {
return openBlock(), createBlock(_component_ListItem, {
key: site.id
}, {
prefix: withCtx(() => [
createVNode(_component_StatusBubble, {
variant: site.status === "busy" ? "gray" : "success"
}, null, 8, ["variant"])
]),
title: withCtx(() => [
createVNode(_component_inertia_link, {
class: "text-primary font-medium",
href: _ctx.route("sites.show", site.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(site.domain), 1)
], void 0, true),
_: 2
}, 1032, ["href"])
]),
subtitle: withCtx(() => [
createBaseVNode("div", _hoisted_3, [
createBaseVNode("div", _hoisted_4, [
createBaseVNode("span", null, [
createVNode(_component_icon_php)
]),
createBaseVNode("span", null, toDisplayString(site.php_version), 1)
]),
site.project === "wordpress" ? (openBlock(), createElementBlock("div", _hoisted_5, "\xB7")) : createCommentVNode("", true),
site.project === "wordpress" ? (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(_ctx.__("WordPress installed")), 1)) : createCommentVNode("", true),
site.server ? (openBlock(), createElementBlock("div", _hoisted_7, "\xB7")) : createCommentVNode("", true),
site.server ? (openBlock(), createElementBlock("div", _hoisted_8, toDisplayString(_ctx.__("On server")) + " " + toDisplayString(site.server.name), 1)) : createCommentVNode("", true)
])
]),
suffix: withCtx(() => [
createVNode(_component_Dropdown, null, {
default: withCtx(({ isOpen, toggle, position }) => [
createVNode(_component_IconButton, { onClick: toggle }, {
default: withCtx(() => [
createVNode(_component_IconMore, { class: "w-5 h-5" })
], void 0, true),
_: 2
}, 1032, ["onClick"]),
isOpen ? (openBlock(), createBlock(_component_DropdownList, {
key: 0,
position
}, {
default: withCtx(() => [
createVNode(_component_DropdownListItem, {
to: _ctx.route("sites.show", site.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("View")), 1)
], void 0, true),
_: 2
}, 1032, ["to"]),
_ctx.can("sites", "delete") ? (openBlock(), createBlock(_component_DropdownListItemButton, {
key: 0,
class: "!text-danger",
onClick: ($event) => $options.confirmDelete(site)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Delete")), 1)
], void 0, true),
_: 2
}, 1032, ["onClick"])) : createCommentVNode("", true)
], void 0, true),
_: 2
}, 1032, ["position"])) : createCommentVNode("", true)
]),
_: 2
}, 1024)
]),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
}),
createVNode(_component_pagination, { links: $props.sites }, null, 8, ["links"])
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

203
public/build/assets/Index.74d55b9c.js vendored Normal file
View File

@@ -0,0 +1,203 @@
import TopBar from "./TopBar.1920e57d.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, b as createBaseVNode, c as createElementBlock, k as renderList, t as toDisplayString, F as Fragment, e as createTextVNode, g as withModifiers } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Profile")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormSelect,
FormActions
},
props: {
profile: Object,
countries: Object
},
data() {
return {
form: {
name: this.profile.name,
email: this.profile.email,
language: this.profile.language,
address: this.profile.address,
country: this.profile.country,
zip: this.profile.zip,
city: this.profile.city
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Profile"),
to: this.route("profile.index")
}
]
};
},
methods: {
submit() {
this.$inertia.patch(this.route("profile.update"), this.form, {
onStart: () => this.sending = true,
onFinish: () => this.sending = false
});
}
}
};
const _hoisted_1 = /* @__PURE__ */ createBaseVNode("option", { value: "en" }, "English", -1);
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("option", { value: "nl" }, "Dutch", -1);
const _hoisted_3 = /* @__PURE__ */ createBaseVNode("option", { value: "fr" }, "French", -1);
const _hoisted_4 = /* @__PURE__ */ createBaseVNode("option", { value: "da" }, "Danish", -1);
const _hoisted_5 = /* @__PURE__ */ createBaseVNode("option", { value: "nb-no" }, "Norwegian", -1);
const _hoisted_6 = /* @__PURE__ */ createBaseVNode("option", { value: "pt" }, "Portuguese", -1);
const _hoisted_7 = ["value", "textContent"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_FormInput = resolveComponent("FormInput");
const _component_FormSelect = resolveComponent("FormSelect");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[7] || (_cache[7] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormInput, {
label: _ctx.__("Name"),
errors: _ctx.$page.props.errors.name,
modelValue: $data.form.name,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.name = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("Email"),
type: "email",
errors: _ctx.$page.props.errors.email,
modelValue: $data.form.email,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.email = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormSelect, {
label: _ctx.__("Language"),
errors: _ctx.$page.props.errors.language,
modelValue: $data.form.language,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.language = $event)
}, {
default: withCtx(() => [
_hoisted_1,
_hoisted_2,
_hoisted_3,
_hoisted_4,
_hoisted_5,
_hoisted_6
], void 0, true),
_: 1
}, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("Address"),
type: "text",
errors: _ctx.$page.props.errors.address,
modelValue: $data.form.address,
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => $data.form.address = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormSelect, {
label: _ctx.__("Country"),
errors: _ctx.$page.props.errors.country,
modelValue: $data.form.country,
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => $data.form.country = $event)
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.countries, (country, code) => {
return openBlock(), createElementBlock("option", {
value: code,
textContent: toDisplayString(country)
}, null, 8, _hoisted_7);
}), 256))
], void 0, true),
_: 1
}, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("ZIP"),
type: "text",
errors: _ctx.$page.props.errors.zip,
modelValue: $data.form.zip,
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => $data.form.zip = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormInput, {
label: _ctx.__("City"),
type: "text",
errors: _ctx.$page.props.errors.city,
modelValue: $data.form.city,
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $data.form.city = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import r from"./TopBar.3db272ee.js";import m from"./Container.f87d9f62.js";import i from"./Content.e22a1fd6.js";import e from"./Page.3927bdbf.js";import n from"./PageHeader.a5f457a5.js";import p from"./PageHeaderTitle.3ed783af.js";import a from"./PageBody.dec1fae1.js";import s from"./Button.f17dffc9.js";import f from"./EmptyImage.4bfdf9ac.js";import u from"./List.d5d221b1.js";import c from"./ListItem.ee1e88fb.js";import d from"./StatusBubble.4f1d8322.js";import l from"./NotificationBadge.b6fae3d5.js";import _ from"./MainLayout.39e63d2b.js";import g from"./IconBox.e6c961ac.js";import y from"./IconGlobe.07030b80.js";import b from"./IconStorage.ef2b2e41.js";import x from"./Modal.a59fc373.js";import B from"./ModalContainer.51de3ea9.js";import I from"./FormInput.e3b01057.js";import P from"./FormTextarea.5b8e3d32.js";import S from"./FormActions.83ccca91.js";import v from"./SettingsSegment.e8fdfb41.js";import T from"./SettingsLayout.3305573b.js";import C from"./Tabs.7c761f05.js";import{n as h}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./IconClose.edb7c8fd.js";import"./Form.2cdcadd9.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const L={metaInfo(){return{title:`${this.__("Documentation")}`}},layout:_,components:{TopBar:r,Container:m,Content:i,Page:e,PageHeader:n,PageHeaderTitle:p,PageBody:a,Button:s,List:u,ListItem:c,StatusBubble:d,NotificationBadge:l,IconBox:g,IconGlobe:y,IconStorage:b,Modal:x,ModalContainer:B,FormInput:I,FormTextarea:P,FormActions:S,EmptyImage:f,Tabs:C,SettingsLayout:T,SettingsSegment:v},props:{items:Object},data(){return{breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Documentation"),to:this.route("documentation.index")}]}}};var F=function(){var o=this,t=o._self._c;return t("Page",[t("TopBar",{attrs:{breadcrumbs:o.breadcrumbs}}),t("Content",[t("Container",[t("PageHeader",{scopedSlots:o._u([{key:"start",fn:function(){return[t("PageHeaderTitle",[o._v(o._s(o.__("Documentation")))])]},proxy:!0}])}),t("PageBody",[t("SettingsLayout",{scopedSlots:o._u([{key:"nav",fn:function(){return[t("Tabs",{attrs:{items:o.items.data}})]},proxy:!0},{key:"segments",fn:function(){},proxy:!0}])})],1)],1)],1)],1)},H=[],k=h(L,F,H,!1,null,null,null,null);const jt=k.exports;export{jt as default};

222
public/build/assets/Index.b2298b2e.js vendored Normal file
View File

@@ -0,0 +1,222 @@
import TopBar from "./TopBar.ab933635.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { u as useNotification } from "./notification.4c298cac.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, b as createBaseVNode, n as normalizeClass, c as createElementBlock, d as createCommentVNode, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Dashboard")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage
},
props: {
sites: Number,
servers: Number,
package: Object,
logs: Array
},
methods: {
useNotification
},
data() {
return {
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: "Dashboard",
to: "/"
}
]
};
},
computed: {
hasAccessToServers() {
return Object.keys(this.$page.props.auth.can).length && (this.$page.props.auth.can.servers.create || this.$page.props.auth.can.servers.update || this.$page.props.auth.can.servers.delete);
}
},
mounted() {
if (this.$page.props.flash.info) {
useNotification({
variant: "info",
title: `Information`,
message: this.$page.props.flash.info
});
}
}
};
const _hoisted_1 = { class: "p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95" };
const _hoisted_2 = { class: "font-semibold text-body" };
const _hoisted_3 = { class: "text-medium-emphasis text-small" };
const _hoisted_4 = {
key: 0,
class: "p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95"
};
const _hoisted_5 = { class: "font-semibold text-body" };
const _hoisted_6 = { class: "text-medium-emphasis text-small" };
const _hoisted_7 = { class: "p-6 rounded shadow bg-surface-3 transform transition duration-fast ease-in-out hover:scale-95" };
const _hoisted_8 = { class: "w-full" };
const _hoisted_9 = { class: "flex justify-between" };
const _hoisted_10 = { class: "font-semibold text-body" };
const _hoisted_11 = {
key: 0,
class: "inline-flex items-center justify-center h-6 px-2 text-xs font-semibold tracking-tight text-blue-700 rounded-full bg-blue-500/10"
};
const _hoisted_12 = { class: "text-medium-emphasis text-small" };
const _hoisted_13 = { class: "text-medium-emphasis" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_IconGlobe = resolveComponent("IconGlobe");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_IconStorage = resolveComponent("IconStorage");
const _component_IconBox = resolveComponent("IconBox");
const _component_ListItem = resolveComponent("ListItem");
const _component_List = resolveComponent("List");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Dashboard")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createBaseVNode("div", null, [
createBaseVNode("ul", {
class: normalizeClass(["grid grid-cols-1 gap-4", { "md:grid-cols-3": $options.hasAccessToServers, "md:grid-cols-2": !$options.hasAccessToServers }])
}, [
createBaseVNode("li", _hoisted_1, [
createVNode(_component_inertia_link, {
href: _ctx.route("sites.index"),
class: "flex space-x-4"
}, {
default: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_IconGlobe, { class: "w-6 h-6" })
]),
createBaseVNode("div", null, [
createBaseVNode("h3", _hoisted_2, toDisplayString($props.sites), 1),
createBaseVNode("p", _hoisted_3, toDisplayString(_ctx.__("Sites")), 1)
])
], void 0, true),
_: 1
}, 8, ["href"])
]),
$options.hasAccessToServers ? (openBlock(), createElementBlock("li", _hoisted_4, [
createVNode(_component_inertia_link, {
href: _ctx.route("servers.index"),
class: "flex space-x-4"
}, {
default: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_IconStorage, { class: "w-6 h-6" })
]),
createBaseVNode("div", null, [
createBaseVNode("h3", _hoisted_5, toDisplayString($props.servers), 1),
createBaseVNode("p", _hoisted_6, toDisplayString(_ctx.__("Servers")), 1)
])
], void 0, true),
_: 1
}, 8, ["href"])
])) : createCommentVNode("", true),
createBaseVNode("li", _hoisted_7, [
createVNode(_component_inertia_link, {
href: _ctx.$page.props.settings.billing ? _ctx.route("profile.billing.index") : _ctx.route("profile.index"),
class: "flex space-x-4"
}, {
default: withCtx(() => [
createBaseVNode("div", null, [
createVNode(_component_IconBox, { class: "w-6 h-6" })
]),
createBaseVNode("div", _hoisted_8, [
createBaseVNode("div", _hoisted_9, [
createBaseVNode("h3", _hoisted_10, toDisplayString(_ctx.$page.props.auth.package.name), 1),
_ctx.$page.props.auth.package.trial ? (openBlock(), createElementBlock("span", _hoisted_11, " Trial ")) : createCommentVNode("", true)
]),
createBaseVNode("p", _hoisted_12, toDisplayString(_ctx.__("Package")), 1)
])
], void 0, true),
_: 1
}, 8, ["href"])
])
], 2)
]),
createVNode(_component_List, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.logs, (log) => {
return openBlock(), createBlock(_component_ListItem, {
key: log.id
}, {
title: withCtx(() => [
createTextVNode(toDisplayString(log.title), 1)
]),
subtitle: withCtx(() => [
createTextVNode(toDisplayString(log.description), 1)
]),
suffix: withCtx(() => [
createBaseVNode("span", _hoisted_13, toDisplayString(log.created_at_human), 1)
]),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

View File

@@ -1 +0,0 @@
import e from"./TopBar.5d5cd899.js";import i from"./Container.f87d9f62.js";import n from"./Content.e22a1fd6.js";import m from"./Page.3927bdbf.js";import p from"./PageHeader.a5f457a5.js";import s from"./PageHeaderTitle.3ed783af.js";import a from"./PageBody.dec1fae1.js";import l from"./Button.f17dffc9.js";import u from"./List.d5d221b1.js";import f from"./ListItem.ee1e88fb.js";import c from"./StatusBubble.4f1d8322.js";import _ from"./NotificationBadge.b6fae3d5.js";import d from"./MainLayout.39e63d2b.js";import g from"./IconBox.e6c961ac.js";import y from"./IconGlobe.07030b80.js";import h from"./IconStorage.ef2b2e41.js";import b from"./Modal.a59fc373.js";import x from"./ModalContainer.51de3ea9.js";import I from"./FormInput.e3b01057.js";import k from"./FormTextarea.5b8e3d32.js";import v from"./FormActions.83ccca91.js";import C from"./EmptyImage.4bfdf9ac.js";import{n as B}from"./plugin-vue2_normalizer.000ba15c.js";import"./TopBar.f6a175cb.js";import"./Dropdown.d1060583.js";import"./DropdownList.02c48c2f.js";import"./DropdownListItem.ac31464c.js";import"./IconMoon.ade3e41b.js";import"./IconSun.8809e5d7.js";import"./IconSearch.27dac870.js";import"./IconButton.eadc8d3d.js";import"./Breadcrumbs.d39e2491.js";import"./BreadcrumbsItem.da3f8155.js";import"./TopBarTabBarContainer.3bdb2bb3.js";import"./TabBar.c1d45ed5.js";import"./TabBarItem.e9886f0a.js";import"./Confirm.888708f1.js";import"./Notification.d432029f.js";import"./IconDanger.2f6e115d.js";import"./IconWarning.ca92fb65.js";import"./IconSuccess.09b85716.js";import"./IconInfo.ad7662f9.js";import"./SearchPalette.282fdde5.js";import"./notification.f3a0f54e.js";import"./app.0131bc0c.js";import"./IconClose.edb7c8fd.js";import"./Form.2cdcadd9.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const P={metaInfo(){return{title:`${this.__("Support")}`}},layout:d,components:{TopBar:e,Container:i,Content:n,Page:m,PageHeader:p,PageHeaderTitle:s,PageBody:a,Button:l,List:u,ListItem:f,StatusBubble:c,NotificationBadge:_,IconBox:g,IconGlobe:y,IconStorage:h,Modal:b,ModalContainer:x,FormInput:I,FormTextarea:k,FormActions:v,EmptyImage:C},props:{tickets:Object},data(){return{loading:!1,modalIsOpen:!1,form:{title:null,content:null},breadcrumbs:[{title:this.$page.props.settings.name,to:"/"},{title:this.__("Support"),to:this.route("support.index")}]}},methods:{submit(){this.loading=!0,this.$inertia.post(this.route("support.store"),this.form,{onFinish:()=>{Object.keys(this.$page.props.errors).length||(this.form.title=null,this.form.content=null,this.loading=!1,this.modalIsOpen=!1)}})}}};var $=function(){var t=this,o=t._self._c;return o("Page",[o("Portal",{attrs:{to:"modals"}},[o("ModalContainer",[t.modalIsOpen?o("Modal",{on:{close:function(r){t.modalIsOpen=!1},submit:t.submit},scopedSlots:t._u([{key:"title",fn:function(){return[t._v(t._s(t.__("Create support request")))]},proxy:!0},{key:"form",fn:function(){return[o("FormInput",{attrs:{label:t.__("Title"),errors:t.$page.props.errors.title},model:{value:t.form.title,callback:function(r){t.$set(t.form,"title",r)},expression:"form.title"}}),o("FormTextarea",{attrs:{label:t.__("Content"),errors:t.$page.props.errors.content},model:{value:t.form.content,callback:function(r){t.$set(t.form,"content",r)},expression:"form.content"}})]},proxy:!0},{key:"form-actions",fn:function(){return[o("Button",{domProps:{textContent:t._s(t.__("Create"))}})]},proxy:!0}],null,!1,1024002657)}):t._e()],1)],1),o("TopBar",{attrs:{breadcrumbs:t.breadcrumbs}}),o("Content",[o("Container",[o("PageHeader",{scopedSlots:t._u([{key:"start",fn:function(){return[o("PageHeaderTitle",[t._v(t._s(t.__("Support")))])]},proxy:!0},{key:"end",fn:function(){return[o("Button",{on:{click:function(r){t.modalIsOpen=!0}}},[t._v(t._s(t.__("Create ticket")))])]},proxy:!0}])}),o("PageBody",[t.tickets.total?t._e():o("EmptyImage"),o("List",t._l(t.tickets.data,function(r){return o("ListItem",{key:r.id,scopedSlots:t._u([{key:"title",fn:function(){return[o("inertia-link",{staticClass:"text-primary font-medium",attrs:{href:t.route("support.show",r.id)}},[t._v(" "+t._s(r.title)+" ")])]},proxy:!0}],null,!0)})}),1)],1)],1)],1)],1)},S=[],F=B(P,$,S,!1,null,null,null,null);const Ot=F.exports;export{Ot as default};

211
public/build/assets/Index.d2887586.js vendored Normal file
View File

@@ -0,0 +1,211 @@
import TopBar from "./TopBar.a535e262.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormTextarea } from "./FormTextarea.deefc03c.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { E as EmptyImage } from "./EmptyImage.626bec44.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, e as createTextVNode, t as toDisplayString, d as createCommentVNode, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Support")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormTextarea,
FormActions,
EmptyImage
},
props: {
tickets: Object
},
data() {
return {
loading: false,
modalIsOpen: false,
form: {
title: null,
content: null
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Support"),
to: this.route("support.index")
}
]
};
},
methods: {
submit() {
this.loading = true;
this.$inertia.post(this.route("support.store"), this.form, {
onFinish: () => {
if (!Object.keys(this.$page.props.errors).length) {
this.form.title = null;
this.form.content = null;
this.loading = false;
this.modalIsOpen = false;
}
}
});
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_FormInput = resolveComponent("FormInput");
const _component_FormTextarea = resolveComponent("FormTextarea");
const _component_Button = resolveComponent("Button");
const _component_Modal = resolveComponent("Modal");
const _component_ModalContainer = resolveComponent("ModalContainer");
const _component_Portal = resolveComponent("Portal");
const _component_TopBar = resolveComponent("TopBar");
const _component_PageHeaderTitle = resolveComponent("PageHeaderTitle");
const _component_PageHeader = resolveComponent("PageHeader");
const _component_EmptyImage = resolveComponent("EmptyImage");
const _component_inertia_link = resolveComponent("inertia-link");
const _component_ListItem = resolveComponent("ListItem");
const _component_List = resolveComponent("List");
const _component_PageBody = resolveComponent("PageBody");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_Portal, { to: "modals" }, {
default: withCtx(() => [
createVNode(_component_ModalContainer, null, {
default: withCtx(() => [
$data.modalIsOpen ? (openBlock(), createBlock(_component_Modal, {
key: 0,
onClose: _cache[2] || (_cache[2] = ($event) => $data.modalIsOpen = false),
onSubmit: $options.submit
}, {
title: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create support request")), 1)
]),
form: withCtx(() => [
createVNode(_component_FormInput, {
label: _ctx.__("Title"),
errors: _ctx.$page.props.errors.title,
modelValue: $data.form.title,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.title = $event)
}, null, 8, ["label", "errors", "modelValue"]),
createVNode(_component_FormTextarea, {
label: _ctx.__("Content"),
errors: _ctx.$page.props.errors.content,
modelValue: $data.form.content,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.content = $event)
}, null, 8, ["label", "errors", "modelValue"])
]),
"form-actions": withCtx(() => [
createVNode(_component_Button, {
textContent: toDisplayString(_ctx.__("Create"))
}, null, 8, ["textContent"])
]),
_: 1
}, 8, ["onSubmit"])) : createCommentVNode("", true)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageHeader, null, {
start: withCtx(() => [
createVNode(_component_PageHeaderTitle, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Support")), 1)
], void 0, true),
_: 1
})
]),
end: withCtx(() => [
createVNode(_component_Button, {
onClick: _cache[3] || (_cache[3] = ($event) => $data.modalIsOpen = true)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Create ticket")), 1)
], void 0, true),
_: 1
})
]),
_: 1
}),
createVNode(_component_PageBody, null, {
default: withCtx(() => [
!$props.tickets.total ? (openBlock(), createBlock(_component_EmptyImage, { key: 0 })) : createCommentVNode("", true),
createVNode(_component_List, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.tickets.data, (ticket) => {
return openBlock(), createBlock(_component_ListItem, {
key: ticket.id
}, {
title: withCtx(() => [
createVNode(_component_inertia_link, {
class: "text-primary font-medium",
href: _ctx.route("support.show", ticket.id)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(ticket.title), 1)
], void 0, true),
_: 2
}, 1032, ["href"])
]),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Index as default
};

View File

@@ -1 +0,0 @@
import{n as t}from"./plugin-vue2_normalizer.000ba15c.js";const n="w-full border-medium-emphasis text-body h-10 max-w-lg px-2 border rounded bg-surface-1 focus:outline-none focus:border-primary",a={props:{id:{type:String,required:!0},type:{type:String,default:()=>"text"},required:{type:Boolean,default:()=>!1},errors:{type:Array},placeholder:{type:String}},data(){return{defaultClasses:n}}};var l=function(){var e=this,r=e._self._c;return r("input",{class:[e.defaultClasses],attrs:{id:e.id,type:e.type,required:e.required,placeholder:e.placeholder}})},s=[],o=t(a,l,s,!1,null,null,null,null);const p=o.exports;export{p as default};

View File

@@ -1 +0,0 @@
import o from"./TextDivider.54add59f.js";import n from"./FormInput.e3b01057.js";import i from"./Button.f17dffc9.js";import s from"./Container.f87d9f62.js";import{n as r}from"./plugin-vue2_normalizer.000ba15c.js";import"./FormGroup.efd02a6a.js";import"./Label.9d0d3ee0.js";import"./ErrorText.b141a597.js";import"./HelperText.14a7ed0b.js";import"./IconClipboard.8551be1b.js";import"./IconKey.455a255f.js";const a={metaInfo:{title:"Installation incomplete"},components:{TextDivider:o,FormInput:n,Button:i,Container:s}};var l=function(){var e=this,t=e._self._c;return t("div",{staticClass:"flex items-center justify-center w-full min-h-screen"},[t("Container",{attrs:{size:"small"}},[t("div",{staticClass:"space-y-4"},[t("h1",{staticClass:"font-semibold text-center text-title"},[e._v("Installation incomplete")]),t("p",[e._v("It seems your installation is incomplete, we seem to miss some important credentials.")]),t("p",[e._v("Please go over the installation process again so all credentials can be filled in.")]),t("p",[e._v("You can start the Ploi Core installation by running "),t("code",[e._v("php artisan core:install")])]),t("a",{staticClass:"block text-primary",attrs:{target:"_blank",href:"https://docs.ploi-core.io"}},[e._v("View Ploi Core Documentation")])])])],1)},m=[],c=r(a,l,m,!1,null,null,null,null);const g=c.exports;export{g as default};

View File

@@ -0,0 +1,45 @@
import { T as TextDivider } from "./TextDivider.5d9b42bc.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { B as Button } from "./Button.f40f5f07.js";
import { C as Container } from "./Container.23db6f9d.js";
import { c as createElementBlock, a as createVNode, w as withCtx, r as resolveComponent, o as openBlock, b as createBaseVNode, e as createTextVNode } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
const _sfc_main = {
metaInfo: { title: "Installation incomplete" },
components: {
TextDivider,
FormInput,
Button,
Container
}
};
const _hoisted_1 = { class: "flex items-center justify-center w-full min-h-screen" };
const _hoisted_2 = /* @__PURE__ */ createBaseVNode("div", { class: "space-y-4" }, [
/* @__PURE__ */ createBaseVNode("h1", { class: "font-semibold text-center text-title" }, "Installation incomplete"),
/* @__PURE__ */ createBaseVNode("p", null, "It seems your installation is incomplete, we seem to miss some important credentials."),
/* @__PURE__ */ createBaseVNode("p", null, "Please go over the installation process again so all credentials can be filled in."),
/* @__PURE__ */ createBaseVNode("p", null, [
/* @__PURE__ */ createTextVNode("You can start the Ploi Core installation by running "),
/* @__PURE__ */ createBaseVNode("code", null, "php artisan core:install")
]),
/* @__PURE__ */ createBaseVNode("a", {
class: "block text-primary",
target: "_blank",
href: "https://docs.ploi-core.io"
}, "View Ploi Core Documentation")
], -1);
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_Container = resolveComponent("Container");
return openBlock(), createElementBlock("div", _hoisted_1, [
createVNode(_component_Container, { size: "small" }, {
default: withCtx(() => [
_hoisted_2
], void 0, true),
_: 1
})
]);
}
const InstallationIncomplete = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
InstallationIncomplete as default
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,261 @@
import TopBar from "./TopBar.1920e57d.js";
import { C as Container } from "./Container.23db6f9d.js";
import { M as MainLayout, C as Content, P as Page, a as PageHeader, b as PageHeaderTitle, c as PageBody, L as List, d as ListItem, S as StatusBubble, N as NotificationBadge } from "./MainLayout.46aebdcf.js";
import { B as Button } from "./Button.f40f5f07.js";
import { I as IconBox, a as IconGlobe, b as IconStorage } from "./IconStorage.3e58486a.js";
import { M as Modal, a as ModalContainer } from "./ModalContainer.34fa6055.js";
import { F as FormInput } from "./FormInput.8ab0f203.js";
import { F as FormSelect } from "./FormSelect.08a72bf9.js";
import { F as FormActions } from "./Form.097b2c0b.js";
import { T as Table, a as TableHead, b as TableHeader, c as TableRow, d as TableBody, e as TableData } from "./TableData.b232d5e4.js";
import { u as useConfirm } from "./confirm.c1a36d4c.js";
import { f as createBlock, w as withCtx, r as resolveComponent, o as openBlock, a as createVNode, b as createBaseVNode, t as toDisplayString, d as createCommentVNode, e as createTextVNode, g as withModifiers, c as createElementBlock, k as renderList, F as Fragment } from "./app.d0c43a70.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper.cdc0426e.js";
import "./TabBar.2102e192.js";
import "./notification.4c298cac.js";
const _sfc_main = {
metaInfo() {
return {
title: `${this.__("Integrations")}`
};
},
layout: MainLayout,
components: {
TopBar,
Container,
Content,
Page,
PageHeader,
PageHeaderTitle,
PageBody,
Button,
List,
ListItem,
StatusBubble,
NotificationBadge,
IconBox,
IconGlobe,
IconStorage,
Modal,
ModalContainer,
FormInput,
FormSelect,
FormActions,
Table,
TableHead,
TableHeader,
TableRow,
TableBody,
TableData
},
props: {
providers: Array
},
data() {
return {
form: {
provider: null,
meta: {}
},
breadcrumbs: [
{
title: this.$page.props.settings.name,
to: "/"
},
{
title: this.__("Profile"),
to: this.route("profile.index")
},
{
title: this.__("Integrations"),
to: this.route("profile.integrations.index")
}
]
};
},
methods: {
submit() {
this.$inertia.post(this.route("profile.integrations.store"), this.form, {
onStart: () => this.sending = true,
onFinish: () => {
this.sending = false;
if (!Object.keys(this.$page.props.errors).length) {
this.form = {
provider: null,
meta: {}
};
}
}
});
},
confirmDelete(provider) {
useConfirm({
title: this.__("Are you sure?"),
message: this.__("Your provider integration will be deleted permanently, this cannot be undone."),
onConfirm: () => this.delete(provider)
});
},
delete(provider) {
this.$inertia.delete(this.route("profile.integrations.destroy", provider.id), {
preserveScroll: true
});
}
}
};
const _hoisted_1 = { value: "cloudflare" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_TopBar = resolveComponent("TopBar");
const _component_FormSelect = resolveComponent("FormSelect");
const _component_FormInput = resolveComponent("FormInput");
const _component_Button = resolveComponent("Button");
const _component_FormActions = resolveComponent("FormActions");
const _component_PageBody = resolveComponent("PageBody");
const _component_TableHeader = resolveComponent("TableHeader");
const _component_TableRow = resolveComponent("TableRow");
const _component_TableHead = resolveComponent("TableHead");
const _component_TableData = resolveComponent("TableData");
const _component_TableBody = resolveComponent("TableBody");
const _component_Table = resolveComponent("Table");
const _component_Container = resolveComponent("Container");
const _component_Content = resolveComponent("Content");
const _component_Page = resolveComponent("Page");
return openBlock(), createBlock(_component_Page, null, {
default: withCtx(() => [
createVNode(_component_TopBar, { breadcrumbs: $data.breadcrumbs }, null, 8, ["breadcrumbs"]),
createVNode(_component_Content, null, {
default: withCtx(() => [
createVNode(_component_Container, null, {
default: withCtx(() => [
createVNode(_component_PageBody, null, {
default: withCtx(() => [
createBaseVNode("form", {
class: "space-y-4",
onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => $options.submit && $options.submit(...args), ["prevent"]))
}, [
createVNode(_component_FormSelect, {
label: _ctx.__("Select provider"),
errors: _ctx.$page.props.errors.provider,
modelValue: $data.form.provider,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.form.provider = $event)
}, {
default: withCtx(() => [
createBaseVNode("option", _hoisted_1, toDisplayString(_ctx.__("Cloudflare")), 1)
], void 0, true),
_: 1
}, 8, ["label", "errors", "modelValue"]),
$data.form.provider === "cloudflare" ? (openBlock(), createBlock(_component_FormInput, {
key: 0,
label: _ctx.__("API key"),
errors: _ctx.$page.props.errors["meta.api_key"],
modelValue: $data.form.meta.api_key,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.form.meta.api_key = $event)
}, null, 8, ["label", "errors", "modelValue"])) : createCommentVNode("", true),
$data.form.provider === "cloudflare" ? (openBlock(), createBlock(_component_FormInput, {
key: 1,
label: _ctx.__("Cloudflare email"),
errors: _ctx.$page.props.errors["meta.cloudflare_email"],
modelValue: $data.form.meta.cloudflare_email,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.form.meta.cloudflare_email = $event)
}, null, 8, ["label", "errors", "modelValue"])) : createCommentVNode("", true),
createVNode(_component_FormActions, null, {
default: withCtx(() => [
createVNode(_component_Button, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Save")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], 32)
], void 0, true),
_: 1
}),
$props.providers.length ? (openBlock(), createBlock(_component_PageBody, { key: 0 }, {
default: withCtx(() => [
createVNode(_component_Table, { caption: "Provider list overview" }, {
default: withCtx(() => [
createVNode(_component_TableHead, null, {
default: withCtx(() => [
createVNode(_component_TableRow, null, {
default: withCtx(() => [
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Provider")), 1)
], void 0, true),
_: 1
}),
createVNode(_component_TableHeader, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Date")), 1)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
}),
createVNode(_component_TableBody, null, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList($props.providers, (provider) => {
return openBlock(), createBlock(_component_TableRow, {
key: provider.id
}, {
default: withCtx(() => [
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(provider.type), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createTextVNode(toDisplayString(provider.created_at), 1)
], void 0, true),
_: 2
}, 1024),
createVNode(_component_TableData, null, {
default: withCtx(() => [
createVNode(_component_Button, {
variant: "danger",
size: "sm",
onClick: ($event) => $options.confirmDelete(provider)
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.__("Delete")), 1)
], void 0, true),
_: 2
}, 1032, ["onClick"])
], void 0, true),
_: 2
}, 1024)
], void 0, true),
_: 2
}, 1024);
}), 128))
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})) : createCommentVNode("", true)
], void 0, true),
_: 1
})
], void 0, true),
_: 1
})
], void 0, true),
_: 1
});
}
const Integrations = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
Integrations as default
};

Some files were not shown because too many files have changed in this diff Show More