var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var _, done = false; for (var i = decorators.length - 1; i >= 0; i--) { var context = {}; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p]; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); if (kind === "accessor") { if (result === void 0) continue; if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.init)) initializers.unshift(_); } else if (_ = accept(result)) { if (kind === "field") initializers.unshift(_); else descriptor[key] = _; } } if (target) Object.defineProperty(target, contextIn.name, descriptor); done = true; }; var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) { var useValue = arguments.length > 2; for (var i = 0; i < initializers.length; i++) { value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); } return useValue ? value : void 0; }; import * as plugins from '../../plugins.js'; import { DeesElement, property, html, customElement, css, cssManager, unsafeCSS, state, } from '@design.estate/dees-element'; import * as sharedStyles from '../../styles/shared.styles.js'; import { demoFunc } from './upladmin-statuspage-config.demo.js'; let UpladminStatuspageConfig = (() => { let _classDecorators = [customElement('upladmin-statuspage-config')]; let _classDescriptor; let _classExtraInitializers = []; let _classThis; let _classSuper = DeesElement; let _config_decorators; let _config_initializers = []; let _config_extraInitializers = []; let _loading_decorators; let _loading_initializers = []; let _loading_extraInitializers = []; let _formData_decorators; let _formData_initializers = []; let _formData_extraInitializers = []; let _activeSection_decorators; let _activeSection_initializers = []; let _activeSection_extraInitializers = []; let _hasChanges_decorators; let _hasChanges_initializers = []; let _hasChanges_extraInitializers = []; var UpladminStatuspageConfig = class extends _classSuper { static { _classThis = this; } static { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0; _config_decorators = [property({ type: Object })]; _loading_decorators = [property({ type: Boolean })]; _formData_decorators = [state()]; _activeSection_decorators = [state()]; _hasChanges_decorators = [state()]; __esDecorate(this, null, _config_decorators, { kind: "accessor", name: "config", static: false, private: false, access: { has: obj => "config" in obj, get: obj => obj.config, set: (obj, value) => { obj.config = value; } }, metadata: _metadata }, _config_initializers, _config_extraInitializers); __esDecorate(this, null, _loading_decorators, { kind: "accessor", name: "loading", static: false, private: false, access: { has: obj => "loading" in obj, get: obj => obj.loading, set: (obj, value) => { obj.loading = value; } }, metadata: _metadata }, _loading_initializers, _loading_extraInitializers); __esDecorate(this, null, _formData_decorators, { kind: "accessor", name: "formData", static: false, private: false, access: { has: obj => "formData" in obj, get: obj => obj.formData, set: (obj, value) => { obj.formData = value; } }, metadata: _metadata }, _formData_initializers, _formData_extraInitializers); __esDecorate(this, null, _activeSection_decorators, { kind: "accessor", name: "activeSection", static: false, private: false, access: { has: obj => "activeSection" in obj, get: obj => obj.activeSection, set: (obj, value) => { obj.activeSection = value; } }, metadata: _metadata }, _activeSection_initializers, _activeSection_extraInitializers); __esDecorate(this, null, _hasChanges_decorators, { kind: "accessor", name: "hasChanges", static: false, private: false, access: { has: obj => "hasChanges" in obj, get: obj => obj.hasChanges, set: (obj, value) => { obj.hasChanges = value; } }, metadata: _metadata }, _hasChanges_initializers, _hasChanges_extraInitializers); __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); UpladminStatuspageConfig = _classThis = _classDescriptor.value; if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); } static demo = demoFunc; #config_accessor_storage = __runInitializers(this, _config_initializers, {}); get config() { return this.#config_accessor_storage; } set config(value) { this.#config_accessor_storage = value; } #loading_accessor_storage = (__runInitializers(this, _config_extraInitializers), __runInitializers(this, _loading_initializers, false)); get loading() { return this.#loading_accessor_storage; } set loading(value) { this.#loading_accessor_storage = value; } #formData_accessor_storage = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _formData_initializers, {})); get formData() { return this.#formData_accessor_storage; } set formData(value) { this.#formData_accessor_storage = value; } #activeSection_accessor_storage = (__runInitializers(this, _formData_extraInitializers), __runInitializers(this, _activeSection_initializers, 'branding')); get activeSection() { return this.#activeSection_accessor_storage; } set activeSection(value) { this.#activeSection_accessor_storage = value; } #hasChanges_accessor_storage = (__runInitializers(this, _activeSection_extraInitializers), __runInitializers(this, _hasChanges_initializers, false)); get hasChanges() { return this.#hasChanges_accessor_storage; } set hasChanges(value) { this.#hasChanges_accessor_storage = value; } static styles = [ plugins.domtools.elementBasic.staticStyles, sharedStyles.commonStyles, css ` :host { display: block; font-family: ${unsafeCSS(sharedStyles.fonts.base)}; } .config-container { display: grid; grid-template-columns: 220px 1fr; gap: ${unsafeCSS(sharedStyles.spacing.lg)}; min-height: 500px; } @media (max-width: 768px) { .config-container { grid-template-columns: 1fr; } } .config-nav { background: ${sharedStyles.colors.background.secondary}; border: 1px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)}; padding: ${unsafeCSS(sharedStyles.spacing.sm)}; height: fit-content; } .nav-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 16px; font-size: 14px; font-weight: 500; font-family: ${unsafeCSS(sharedStyles.fonts.base)}; color: ${sharedStyles.colors.text.secondary}; background: transparent; border: none; border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; cursor: pointer; text-align: left; transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; } .nav-item:hover { background: ${sharedStyles.colors.background.muted}; color: ${sharedStyles.colors.text.primary}; } .nav-item.active { background: ${sharedStyles.colors.accent.primary}; color: white; } .nav-item.active dees-icon { --icon-color: white; } .nav-item dees-icon { --icon-color: ${sharedStyles.colors.text.muted}; transition: color ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; } .nav-item:hover dees-icon { --icon-color: ${sharedStyles.colors.text.primary}; } .config-content { background: ${sharedStyles.colors.background.secondary}; border: 1px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)}; overflow: hidden; } .content-header { display: flex; align-items: center; justify-content: space-between; padding: ${unsafeCSS(sharedStyles.spacing.md)} ${unsafeCSS(sharedStyles.spacing.lg)}; border-bottom: 1px solid ${sharedStyles.colors.border.default}; background: ${sharedStyles.colors.background.muted}; } .content-title { font-size: 16px; font-weight: 600; color: ${sharedStyles.colors.text.primary}; } .content-subtitle { font-size: 13px; color: ${sharedStyles.colors.text.muted}; margin-top: 2px; } .save-indicator { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 12px; font-weight: 500; color: ${sharedStyles.colors.accent.warning}; background: ${cssManager.bdTheme('rgba(234, 179, 8, 0.1)', 'rgba(234, 179, 8, 0.15)')}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; } .save-indicator dees-icon { --icon-color: ${sharedStyles.colors.accent.warning}; } .content-body { padding: ${unsafeCSS(sharedStyles.spacing.lg)}; } dees-form { display: contents; } .form-section { margin-bottom: ${unsafeCSS(sharedStyles.spacing.xl)}; } .form-section:last-child { margin-bottom: 0; } .section-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: ${sharedStyles.colors.text.primary}; margin-bottom: ${unsafeCSS(sharedStyles.spacing.md)}; padding-bottom: ${unsafeCSS(sharedStyles.spacing.xs)}; border-bottom: 1px solid ${sharedStyles.colors.border.light}; } .section-title dees-icon { --icon-color: ${sharedStyles.colors.text.muted}; } .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: ${unsafeCSS(sharedStyles.spacing.md)}; } .content-actions { display: flex; justify-content: flex-end; gap: ${unsafeCSS(sharedStyles.spacing.sm)}; padding: ${unsafeCSS(sharedStyles.spacing.md)} ${unsafeCSS(sharedStyles.spacing.lg)}; border-top: 1px solid ${sharedStyles.colors.border.default}; background: ${sharedStyles.colors.background.muted}; } .theme-options { display: flex; gap: ${unsafeCSS(sharedStyles.spacing.sm)}; } .theme-option { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px; background: ${sharedStyles.colors.background.primary}; border: 2px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; cursor: pointer; transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; } .theme-option:hover { border-color: ${sharedStyles.colors.border.strong}; } .theme-option.selected { border-color: ${sharedStyles.colors.accent.primary}; background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(96, 165, 250, 0.1)')}; } .theme-option input { display: none; } .theme-preview { width: 56px; height: 36px; border-radius: 6px; border: 1px solid ${sharedStyles.colors.border.default}; overflow: hidden; } .theme-preview.light { background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%); } .theme-preview.dark { background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%); } .theme-preview.auto { background: linear-gradient(135deg, #f8fafc 0%, #f8fafc 50%, #1e293b 50%, #1e293b 100%); } .theme-label { font-size: 13px; font-weight: 500; color: ${sharedStyles.colors.text.primary}; } .logo-preview { display: flex; align-items: center; gap: ${unsafeCSS(sharedStyles.spacing.md)}; padding: ${unsafeCSS(sharedStyles.spacing.md)}; background: ${sharedStyles.colors.background.primary}; border: 1px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; margin-top: ${unsafeCSS(sharedStyles.spacing.sm)}; } .logo-preview img { max-width: 140px; max-height: 48px; object-fit: contain; } .logo-placeholder { display: flex; align-items: center; gap: 8px; color: ${sharedStyles.colors.text.muted}; font-size: 13px; } .logo-placeholder dees-icon { --icon-color: ${sharedStyles.colors.text.muted}; opacity: 0.5; } .toggle-row { display: flex; align-items: center; gap: ${unsafeCSS(sharedStyles.spacing.md)}; padding: ${unsafeCSS(sharedStyles.spacing.sm)} 0; } .toggle-label { flex: 1; } .toggle-label-text { font-size: 14px; font-weight: 500; color: ${sharedStyles.colors.text.primary}; } .toggle-label-hint { font-size: 12px; color: ${sharedStyles.colors.text.muted}; margin-top: 2px; } /* Style dees-input components */ dees-input-text, dees-input-dropdown { --dees-input-background: ${sharedStyles.colors.background.primary}; --dees-input-border-color: ${sharedStyles.colors.border.default}; } ` ]; async connectedCallback() { await super.connectedCallback(); this.formData = { ...this.config }; } updated(changedProperties) { if (changedProperties.has('config')) { this.formData = { ...this.config }; this.hasChanges = false; } } render() { const sections = [ { id: 'branding', icon: 'lucide:Palette', label: 'Branding', subtitle: 'Logo, company name, colors' }, { id: 'urls', icon: 'lucide:Link', label: 'URLs', subtitle: 'Links and endpoints' }, { id: 'behavior', icon: 'lucide:Settings', label: 'Behavior', subtitle: 'Refresh, notifications, history' }, { id: 'advanced', icon: 'lucide:Wrench', label: 'Advanced', subtitle: 'API, timezone, language' }, ]; return html `
${sections.find(s => s.id === this.activeSection)?.label}
${sections.find(s => s.id === this.activeSection)?.subtitle}
${this.hasChanges ? html `
Unsaved changes
` : ''}
${this.renderSection()}
Reset ${this.loading ? html `` : html ``} Save Changes
`; } renderSection() { switch (this.activeSection) { case 'branding': return this.renderBrandingSection(); case 'urls': return this.renderUrlsSection(); case 'behavior': return this.renderBehaviorSection(); case 'advanced': return this.renderAdvancedSection(); default: return html ``; } } renderBrandingSection() { const themeOptions = [ { value: 'light', label: 'Light', icon: 'lucide:Sun' }, { value: 'dark', label: 'Dark', icon: 'lucide:Moon' }, { value: 'auto', label: 'Auto', icon: 'lucide:Monitor' }, ]; return html `
Company Information
${this.formData.companyLogo ? html `
Company logo
` : html `
No logo configured
`}
Theme
${themeOptions.map(opt => html ` `)}
White Label Mode
Hide 'Powered by' branding
`; } renderUrlsSection() { return html `
Status Page URLs
API Configuration
`; } renderBehaviorSection() { return html `
Auto-refresh
History
Features
WebSocket Updates
Enable real-time updates
Browser Notifications
Allow push notifications
`; } renderAdvancedSection() { const timezoneOptions = [ { key: 'UTC', option: 'UTC', payload: null }, { key: 'America/New_York', option: 'Eastern Time (US)', payload: null }, { key: 'America/Los_Angeles', option: 'Pacific Time (US)', payload: null }, { key: 'Europe/London', option: 'London', payload: null }, { key: 'Europe/Berlin', option: 'Berlin', payload: null }, { key: 'Asia/Tokyo', option: 'Tokyo', payload: null }, { key: 'Asia/Shanghai', option: 'Shanghai', payload: null }, ]; const dateFormatOptions = [ { key: 'relative', option: 'Relative (2 hours ago)', payload: null }, { key: 'absolute', option: 'Absolute (Dec 23, 2024 14:30)', payload: null }, { key: 'iso', option: 'ISO (2024-12-23T14:30:00)', payload: null }, ]; const languageOptions = [ { key: 'en', option: 'English', payload: null }, { key: 'de', option: 'German', payload: null }, { key: 'fr', option: 'French', payload: null }, { key: 'es', option: 'Spanish', payload: null }, { key: 'ja', option: 'Japanese', payload: null }, { key: 'zh', option: 'Chinese', payload: null }, ]; return html `
Localization
`; } handleTextChange(name, value) { this.formData = { ...this.formData, [name]: value }; this.hasChanges = true; } handleNumberChange(name, value) { this.formData = { ...this.formData, [name]: parseInt(value, 10) || 0 }; this.hasChanges = true; } handleBooleanChange(name, value) { this.formData = { ...this.formData, [name]: value }; this.hasChanges = true; } handleDropdownChange(name, value) { this.formData = { ...this.formData, [name]: value }; this.hasChanges = true; } handleThemeChange(theme) { this.formData = { ...this.formData, theme }; this.hasChanges = true; } handleLogoError(e) { const img = e.target; img.style.display = 'none'; } handleSave() { this.dispatchEvent(new CustomEvent('configSave', { detail: { config: { ...this.formData } }, bubbles: true, composed: true })); } handleReset() { this.formData = { ...this.config }; this.hasChanges = false; } setConfig(config) { this.formData = { ...config }; this.hasChanges = false; } constructor() { super(...arguments); __runInitializers(this, _hasChanges_extraInitializers); } static { __runInitializers(_classThis, _classExtraInitializers); } }; return UpladminStatuspageConfig = _classThis; })(); export { UpladminStatuspageConfig }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsYWRtaW4tc3RhdHVzcGFnZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c193ZWIvZWxlbWVudHMvdXBsYWRtaW4tc3RhdHVzcGFnZS1jb25maWcvdXBsYWRtaW4tc3RhdHVzcGFnZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsVUFBVSxFQUNWLFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssWUFBWSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztJQVNuRCx3QkFBd0I7NEJBRHBDLGFBQWEsQ0FBQyw0QkFBNEIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7O3dDQUFuQixTQUFRLFdBQVc7Ozs7a0NBR3RELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzttQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO29DQUczQixLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFO3NDQUdQLEtBQUssRUFBRTtZQVhSLHVLQUFTLE1BQU0sNkJBQU4sTUFBTSx1RkFBeUI7WUFHeEMsMEtBQVMsT0FBTyw2QkFBUCxPQUFPLHlGQUFrQjtZQUdsQyw2S0FBUyxRQUFRLDZCQUFSLFFBQVEsMkZBQXlCO1lBRzFDLDRMQUFTLGFBQWEsNkJBQWIsYUFBYSxxR0FBc0I7WUFHNUMsbUxBQVMsVUFBVSw2QkFBVixVQUFVLCtGQUFrQjtZQWhCdkMsNktBcXJCQzs7OztRQXByQlEsTUFBTSxDQUFDLElBQUks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