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-incident-update.demo.js'; let UpladminIncidentUpdate = (() => { let _classDecorators = [customElement('upladmin-incident-update')]; let _classDescriptor; let _classExtraInitializers = []; let _classThis; let _classSuper = DeesElement; let _incident_decorators; let _incident_initializers = []; let _incident_extraInitializers = []; let _loading_decorators; let _loading_initializers = []; let _loading_extraInitializers = []; let _formData_decorators; let _formData_initializers = []; let _formData_extraInitializers = []; let _errors_decorators; let _errors_initializers = []; let _errors_extraInitializers = []; var UpladminIncidentUpdate = class extends _classSuper { static { _classThis = this; } static { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0; _incident_decorators = [property({ type: Object })]; _loading_decorators = [property({ type: Boolean })]; _formData_decorators = [state()]; _errors_decorators = [state()]; __esDecorate(this, null, _incident_decorators, { kind: "accessor", name: "incident", static: false, private: false, access: { has: obj => "incident" in obj, get: obj => obj.incident, set: (obj, value) => { obj.incident = value; } }, metadata: _metadata }, _incident_initializers, _incident_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, _errors_decorators, { kind: "accessor", name: "errors", static: false, private: false, access: { has: obj => "errors" in obj, get: obj => obj.errors, set: (obj, value) => { obj.errors = value; } }, metadata: _metadata }, _errors_initializers, _errors_extraInitializers); __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); UpladminIncidentUpdate = _classThis = _classDescriptor.value; if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); } static demo = demoFunc; #incident_accessor_storage = __runInitializers(this, _incident_initializers, null); get incident() { return this.#incident_accessor_storage; } set incident(value) { this.#incident_accessor_storage = value; } #loading_accessor_storage = (__runInitializers(this, _incident_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, { status: 'investigating', message: '', author: '', })); get formData() { return this.#formData_accessor_storage; } set formData(value) { this.#formData_accessor_storage = value; } #errors_accessor_storage = (__runInitializers(this, _formData_extraInitializers), __runInitializers(this, _errors_initializers, {})); get errors() { return this.#errors_accessor_storage; } set errors(value) { this.#errors_accessor_storage = value; } statusIcons = (__runInitializers(this, _errors_extraInitializers), { investigating: 'lucide:Search', identified: 'lucide:Target', monitoring: 'lucide:Eye', resolved: 'lucide:CheckCircle', postmortem: 'lucide:FileText', }); static styles = [ plugins.domtools.elementBasic.staticStyles, sharedStyles.commonStyles, css ` :host { display: block; font-family: ${unsafeCSS(sharedStyles.fonts.base)}; } .update-container { background: ${sharedStyles.colors.background.secondary}; border: 1px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.lg)}; overflow: hidden; } .update-header { padding: ${unsafeCSS(sharedStyles.spacing.lg)}; border-bottom: 1px solid ${sharedStyles.colors.border.default}; background: ${sharedStyles.colors.background.muted}; } .update-title-row { display: flex; align-items: center; gap: ${unsafeCSS(sharedStyles.spacing.md)}; margin-bottom: ${unsafeCSS(sharedStyles.spacing.sm)}; } .update-title-row dees-icon { --icon-color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')}; } .update-title { font-size: 18px; font-weight: 600; color: ${sharedStyles.colors.text.primary}; margin: 0; } .incident-info { display: flex; align-items: center; gap: ${unsafeCSS(sharedStyles.spacing.sm)}; padding-left: 36px; } .incident-name { font-size: 14px; color: ${sharedStyles.colors.text.secondary}; } .severity-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font-size: 11px; font-weight: 500; border-radius: 9999px; text-transform: uppercase; } .severity-badge dees-icon { font-size: 12px; } .severity-badge.critical { background: ${cssManager.bdTheme('rgba(239, 68, 68, 0.1)', 'rgba(239, 68, 68, 0.2)')}; color: ${sharedStyles.colors.status.majorOutage}; --icon-color: ${sharedStyles.colors.status.majorOutage}; } .severity-badge.major { background: ${cssManager.bdTheme('rgba(249, 115, 22, 0.1)', 'rgba(249, 115, 22, 0.2)')}; color: ${sharedStyles.colors.status.partialOutage}; --icon-color: ${sharedStyles.colors.status.partialOutage}; } .severity-badge.minor { background: ${cssManager.bdTheme('rgba(234, 179, 8, 0.1)', 'rgba(234, 179, 8, 0.2)')}; color: ${sharedStyles.colors.status.degraded}; --icon-color: ${sharedStyles.colors.status.degraded}; } .severity-badge.maintenance { background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.1)', 'rgba(59, 130, 246, 0.2)')}; color: ${sharedStyles.colors.status.maintenance}; --icon-color: ${sharedStyles.colors.status.maintenance}; } .update-body { display: grid; gap: ${unsafeCSS(sharedStyles.spacing.lg)}; padding: ${unsafeCSS(sharedStyles.spacing.lg)}; } dees-form { display: contents; } .status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: ${unsafeCSS(sharedStyles.spacing.sm)}; } .status-option { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 14px; 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)}; text-align: center; } .status-option:hover { border-color: ${sharedStyles.colors.border.strong}; background: ${sharedStyles.colors.background.muted}; } .status-option.selected { border-color: ${sharedStyles.colors.accent.primary}; background: ${cssManager.bdTheme('rgba(59, 130, 246, 0.05)', 'rgba(96, 165, 250, 0.1)')}; } .status-option input { display: none; } .status-option.investigating dees-icon { --icon-color: ${sharedStyles.colors.status.partialOutage}; } .status-option.identified dees-icon { --icon-color: ${sharedStyles.colors.status.degraded}; } .status-option.monitoring dees-icon { --icon-color: ${sharedStyles.colors.status.maintenance}; } .status-option.resolved dees-icon { --icon-color: ${sharedStyles.colors.status.operational}; } .status-option.postmortem dees-icon { --icon-color: #a855f7; } .status-label { font-size: 13px; font-weight: 600; color: ${sharedStyles.colors.text.primary}; } .status-desc { font-size: 11px; color: ${sharedStyles.colors.text.muted}; line-height: 1.3; } .field-label { display: block; font-size: 13px; font-weight: 500; color: ${sharedStyles.colors.text.primary}; margin-bottom: ${unsafeCSS(sharedStyles.spacing.xs)}; } .field-label.required::after { content: ' *'; color: ${sharedStyles.colors.accent.danger}; } .template-section { margin-bottom: ${unsafeCSS(sharedStyles.spacing.sm)}; } .template-label { font-size: 12px; color: ${sharedStyles.colors.text.muted}; margin-bottom: 8px; } .template-buttons { display: flex; flex-wrap: wrap; gap: 8px; } .template-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; font-size: 12px; font-weight: 500; font-family: ${unsafeCSS(sharedStyles.fonts.base)}; color: ${sharedStyles.colors.text.secondary}; background: ${sharedStyles.colors.background.primary}; border: 1px solid ${sharedStyles.colors.border.default}; border-radius: ${unsafeCSS(sharedStyles.borderRadius.base)}; cursor: pointer; transition: all ${unsafeCSS(sharedStyles.durations.fast)} ${unsafeCSS(sharedStyles.easings.default)}; } .template-btn:hover { background: ${sharedStyles.colors.background.muted}; border-color: ${sharedStyles.colors.border.strong}; color: ${sharedStyles.colors.text.primary}; } .template-btn dees-icon { --icon-color: currentColor; opacity: 0.6; } .update-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}; } /* Style dees-input components */ dees-input-text { --dees-input-background: ${sharedStyles.colors.background.primary}; --dees-input-border-color: ${sharedStyles.colors.border.default}; } ` ]; async connectedCallback() { await super.connectedCallback(); if (this.incident) { this.formData = { ...this.formData, status: this.incident.status, }; } } updated(changedProperties) { if (changedProperties.has('incident') && this.incident) { this.formData = { ...this.formData, status: this.incident.status, }; } } render() { if (!this.incident) { return html `
No incident selected
`; } const statusOptions = [ { value: 'investigating', label: 'Investigating', desc: 'Looking into the issue' }, { value: 'identified', label: 'Identified', desc: 'Root cause found' }, { value: 'monitoring', label: 'Monitoring', desc: 'Fix applied, watching' }, { value: 'resolved', label: 'Resolved', desc: 'Issue is fixed' }, { value: 'postmortem', label: 'Postmortem', desc: 'Analysis complete' }, ]; const templates = [ { icon: 'lucide:Search', label: 'Started investigating', message: 'We are currently investigating this issue.' }, { icon: 'lucide:Target', label: 'Issue identified', message: 'We have identified the root cause and are working on a fix.' }, { icon: 'lucide:Rocket', label: 'Fix deployed', message: 'A fix has been deployed. We are monitoring the results.' }, { icon: 'lucide:CheckCircle', label: 'Resolved', message: 'This incident has been resolved. All systems are operating normally.' }, ]; const severityIcons = { critical: 'lucide:AlertCircle', major: 'lucide:AlertTriangle', minor: 'lucide:Info', maintenance: 'lucide:Wrench', }; return html `

Post Update

${this.incident.severity} ${this.incident.title}
${statusOptions.map(opt => html ` `)}
Quick templates:
${templates.map(tpl => html ` `)}
Cancel ${this.formData.status === 'resolved' ? html ` ${this.loading ? html `` : html ``} Resolve Incident ` : html ` ${this.loading ? html `` : html ``} Post Update `}
`; } handleMessageChange(e) { this.formData = { ...this.formData, message: e.detail }; if (this.errors.message) { this.errors = { ...this.errors, message: '' }; } } handleAuthorChange(e) { this.formData = { ...this.formData, author: e.detail }; } handleStatusChange(status) { this.formData = { ...this.formData, status }; } applyTemplate(message) { this.formData = { ...this.formData, message }; } validate() { const errors = {}; if (!this.formData.message?.trim()) { errors.message = 'Update message is required'; } this.errors = errors; return Object.keys(errors).length === 0; } handlePost() { if (!this.validate()) { return; } this.dispatchEvent(new CustomEvent('updatePost', { detail: { incidentId: this.incident?.id, update: { ...this.formData } }, bubbles: true, composed: true })); } handleCancel() { this.dispatchEvent(new CustomEvent('updateCancel', { bubbles: true, composed: true })); } reset() { this.formData = { status: this.incident?.status || 'investigating', message: '', author: '', }; this.errors = {}; } static { __runInitializers(_classThis, _classExtraInitializers); } }; return UpladminIncidentUpdate = _classThis; })(); export { UpladminIncidentUpdate }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsYWRtaW4taW5jaWRlbnQtdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3VwbGFkbWluLWluY2lkZW50LXVwZGF0ZS91cGxhZG1pbi1pbmNpZGVudC11cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsVUFBVSxFQUNWLFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssWUFBWSxNQUFNLCtCQUErQixDQUFDO0FBRTlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztJQVdqRCxzQkFBc0I7NEJBRGxDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7O3NDQUFuQixTQUFRLFdBQVc7Ozs7b0NBR3BELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzttQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO29DQUczQixLQUFLLEVBQUU7a0NBT1AsS0FBSyxFQUFFO1lBWlIsNktBQVMsUUFBUSw2QkFBUixRQUFRLDJGQUFpQztZQUdsRCwwS0FBUyxPQUFPLDZCQUFQLE9BQU8seUZBQWtCO1lBR2xDLDZLQUFTLFFBQVEsNkJBQVIsUUFBUSwyRkFJZjtZQUdGLHVLQUFTLE1BQU0sNkJBQU4sTUFBTSx1RkFBOEI7WUFqQi9DLDZLQW9jQzs7OztRQW5jUSxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUc5Qiw2RUFBNkMsSUFBSSxFQUFDO1FBQWxELElBQVMsUUFBUSw4Q0FBaUM7UUFB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