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 `
Update Message
Quick templates:
${templates.map(tpl => html `
this.applyTemplate(tpl.message)}">
${tpl.label}
`)}
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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