import { defineComponent as L, createBlock as d, openBlock as i, unref as a, computed as g, createElementBlock as G, createCommentVNode as N, Fragment as se, renderList as ne, toDisplayString as S, watch as oe, createSlots as $, withCtx as s, createVNode as M, createTextVNode as w, mergeModels as ie, useModel as re, ref as C, mergeProps as W } from "vue";
import { useI18n as z } from "vue-i18n";
import { o as O, am as ge, aE as ue, aF as c, a7 as f, V as Q, W as j, s as B, a as U, b as de, ac as q, I as me, aa as J, a3 as X, al as Z, a9 as x } from "./start-BYfL32Oe.mjs";
import { storeToRefs as pe } from "pinia";
import { useRoute as be, useRouter as ce } from "vue-router";
import "./header-Droxy2Kd.mjs";
import "./moment-h96o7c8I.mjs";
import { B as ee } from "./base-CvcJbdVx.mjs";
import { G as E } from "./common-CPZ4z2za.mjs";
import "./IsActiveStatusCell-DlvB6_E-.mjs";
import "@vuelidate/validators";
import "./MultiLangScopeEditorsList.vue_vue_type_script_setup_true_lang-CWQeDnSm.mjs";
import "./DatahubDataTypeCompletenessRenderer.vue_vue_type_script_setup_true_lang-Btvu_WeF.mjs";
import { u as fe, _ as Me, D as F } from "./topBarRoutes-0VuQ_i6D.mjs";
import "./VariantToVariantExtension-WcLvPNqG.mjs";
import "./DatahubDataTypeVariantValueEditor-f1gR3QCx.mjs";
import { B as Ie } from "./base-CZBAM3Up.mjs";
const De = `${Ie}DynamicColumnDefinitions.`, Ee = {
  /** Get column definitions of Entity by entity type class name */
  async getColumnDefinitions(t) {
    return O.post(`${De}getColumnDefinitions`, t);
  }
}, Le = `${ee}LogIntents.`, ve = {
  /** updateLogIntentsMessagesDeletableFlag */
  async updateLogIntentsMessagesDeletableFlag(t, e) {
    return O.post(
      `${Le}updateLogIntentsMessagesDeletableFlag`,
      {
        logIntentsIds: t,
        deletable: e
      }
    );
  }
}, he = {
  [E.EMERGENCY]: {
    icon: "error",
    label: "datahub-ui.dh-statuses.logLevel.emergency",
    color: "alert"
  },
  [E.ALERT]: {
    icon: "error",
    label: "datahub-ui.dh-statuses.logLevel.alert",
    color: "alert"
  },
  [E.CRITICAL]: {
    icon: "error",
    label: "datahub-ui.dh-statuses.logLevel.critical",
    color: "alert"
  },
  [E.ERROR]: {
    icon: "error",
    label: "datahub-ui.dh-statuses.logLevel.error",
    color: "alert"
  },
  [E.WARNING]: {
    icon: "warning",
    label: "datahub-ui.dh-statuses.logLevel.warning",
    color: "alert"
  },
  [E.NOTICE]: {
    icon: "info",
    label: "datahub-ui.dh-statuses.logLevel.notice",
    color: "positive_gradient_1"
  },
  [E.DEBUG]: {
    icon: "info",
    label: "datahub-ui.dh-statuses.logLevel.debug",
    color: "positive_gradient_1"
  },
  [E.INFO]: {
    icon: "info",
    label: "datahub-ui.dh-statuses.logLevel.info",
    color: "positive_gradient_1"
  }
}, V = /* @__PURE__ */ L({
  __name: "GDMLogLevelStatus",
  props: {
    row: {},
    rowIndex: {},
    cell: {},
    cellValue: {}
  },
  setup(t) {
    return (e, l) => (i(), d(a(ge), {
      options: a(he)[e.cellValue],
      style: { width: "fit-content" }
    }, null, 8, ["options"]));
  }
});
var R = /* @__PURE__ */ ((t) => (t.MARK_DELETABLE = "MARK_DELETABLE", t.MARK_NOT_DELETABLE = "MARK_NOT_DELETABLE", t))(R || {});
const _e = {
  gridId: "gdm-log-intents-list2-grid",
  rowSelection: j.MULTI,
  hideGlobalSearch: !1,
  hideFilters: !1,
  hideColumnCustomization: !1,
  hidePagination: !1,
  hideNoDataDescription: !0,
  hideNoDataComment: !0,
  sortType: Q.SINGLE,
  routableId: "intentId",
  tableActions: [
    {
      title: "gdm-plugin.logger-intents.markDeletable",
      event: "MARK_DELETABLE",
      variant: "outlined",
      icon: "check_circle",
      prepareIsDisabled: ({ selectedRows: t }) => g(
        () => !t.value.length || t.value.some(({ deletable: e }) => e)
      ),
      prepareIsHidden: () => g(
        () => !B().hasPrivilege(
          "Actindo.Modules.Actindo.GlobalDriverManagement.LogIntents.updateLogIntentsMessagesDeletableFlag"
        )
      )
    },
    {
      title: "gdm-plugin.logger-intents.markNotDeletable",
      event: "MARK_NOT_DELETABLE",
      variant: "outlined",
      icon: "cancel",
      prepareIsDisabled: ({ selectedRows: t }) => g(
        () => !t.value.length || t.value.some(({ deletable: e }) => !e)
      ),
      prepareIsHidden: () => g(
        () => !B().hasPrivilege(
          "Actindo.Modules.Actindo.GlobalDriverManagement.LogIntents.updateLogIntentsMessagesDeletableFlag"
        )
      )
    }
  ],
  columns: [
    {
      id: "id",
      header: "common.id",
      filterable: f.NUMERIC,
      sortable: c.NUMERIC,
      sortedBy: ue.DESC
    },
    {
      id: "name",
      header: "common.name",
      filterable: f.STRING,
      sortable: c.STRING
    },
    {
      id: "numberOfMessages",
      header: "gdm-plugin.logger-intents.numberOfMessages",
      filterable: !1,
      sortable: !1
    },
    {
      id: "created",
      header: "common.created",
      isVisible: !1,
      filterable: f.DATE,
      sortable: c.STRING
    },
    {
      id: "createdByUsername",
      header: "channels-ui.channels-table.createdBy",
      isVisible: !1,
      filterable: f.STRING,
      sortable: c.STRING
    },
    {
      id: "maxLogLevelOfMessages",
      header: "gdm-plugin.logger-intents.maxLogLevel",
      filterable: !1,
      sortable: !1
    },
    {
      id: "messages",
      header: "gdm-plugin.logger-intents.shortPreview",
      filterable: !1,
      sortable: !1
    },
    {
      id: "messages1",
      header: "gdm-plugin.logger-intents.preview",
      isVisible: !1,
      filterable: !1,
      sortable: !1
    }
  ]
}, Ae = { key: 0 }, K = /* @__PURE__ */ L({
  __name: "PreviewMessages",
  props: {
    messages: {},
    lines: { default: 3 },
    maxLength: { default: 30 },
    shorten: { type: Boolean }
  },
  setup(t) {
    const e = t, l = g(() => {
      var n;
      return (n = e.messages) != null && n.length ? e.messages.slice(0, e.lines).map(
        ({ message: r }) => e.shorten && r.length > e.maxLength ? `${r.slice(0, e.maxLength)}...` : r
      ) : [];
    });
    return (n, r) => {
      var b;
      return (b = l.value) != null && b.length ? (i(), G("div", Ae, [
        (i(!0), G(se, null, ne(l.value, (o, m) => (i(), G("div", { key: m }, S(o), 1))), 128))
      ])) : N("", !0);
    };
  }
}), Ne = /* @__PURE__ */ L({
  __name: "GDMLogMessagesDetail",
  props: {
    baseApi: {},
    entityId: {},
    titleField: { default: "title" },
    languagesScopesController: { default: "loggerMessageDetail" },
    pluginName: {}
  },
  emits: ["close"],
  setup(t, { emit: e }) {
    const l = t, n = e, r = fe(), { entity: b } = pe(r);
    return oe(
      () => l.entityId,
      (o) => {
        o || n("close");
      },
      { immediate: !0 }
    ), (o, m) => (i(), d(a(Me), {
      "base-api": o.baseApi,
      "entity-id": o.entityId,
      "languages-scopes-controller": o.languagesScopesController,
      "title-field": o.titleField,
      "hidden-tabs": [
        a(F).DEPENDENCIES,
        a(F).ETL_PROCESSES
      ],
      "plugin-name": o.pluginName,
      readonly: "",
      onClose: m[0] || (m[0] = (v) => o.$emit("close"))
    }, $({ _: 2 }, [
      a(b) ? {
        name: "content",
        fn: s(() => [
          M(a(U), null, {
            default: s(() => [
              M(V, {
                "cell-value": a(b).logLevel
              }, null, 8, ["cell-value"])
            ]),
            _: 1
          }),
          M(a(U), null, {
            default: s(() => [
              M(a(de), {
                "model-value": a(b).message,
                label: o.$t("dh-shared.message"),
                readonly: "",
                class: "mb-4"
              }, null, 8, ["model-value", "label"])
            ]),
            _: 1
          })
        ]),
        key: "0"
      } : void 0
    ]), 1032, ["base-api", "entity-id", "languages-scopes-controller", "title-field", "hidden-tabs", "plugin-name"]));
  }
}), Te = `${ee}LogMessages.`, ke = {
  /** updateLogMessagesDeletableFlag */
  async updateLogMessagesDeletableFlag(t, e) {
    return O.post(`${Te}updateLogMessagesDeletableFlag`, {
      logMessagesIds: t,
      deletable: e
    });
  }
};
var y = /* @__PURE__ */ ((t) => (t.MARK_DELETABLE = "MARK_DELETABLE", t.MARK_NOT_DELETABLE = "MARK_NOT_DELETABLE", t))(y || {});
const Se = {
  rowSelection: j.MULTI,
  hideGlobalSearch: !1,
  hideFilters: !1,
  hideColumnCustomization: !1,
  hidePagination: !1,
  hideNoDataDescription: !0,
  hideNoDataComment: !0,
  sortType: Q.SINGLE,
  routableId: "messageId",
  dynamicColumnsEndpoint: Ee.getColumnDefinitions,
  entityTypeClassName: "Actindo\\Modules\\Actindo\\GlobalDriverManagement\\Models\\LogMessage",
  tableActions: [
    {
      title: "gdm-plugin.messages-list.markDeletable",
      event: "MARK_DELETABLE",
      variant: "outlined",
      icon: "check_circle",
      prepareIsDisabled: ({ selectedRows: t }) => g(
        () => !t.value.length || t.value.some(({ deletable: e }) => e)
      ),
      prepareIsHidden: () => g(
        () => !B().hasPrivilege(
          "Actindo.Modules.Actindo.GlobalDriverManagement.LogMessages.updateLogMessagesDeletableFlag"
        )
      )
    },
    {
      title: "gdm-plugin.messages-list.markNotDeletable",
      event: "MARK_NOT_DELETABLE",
      variant: "outlined",
      icon: "cancel",
      prepareIsDisabled: ({ selectedRows: t }) => g(
        () => !t.value.length || t.value.some(({ deletable: e }) => !e)
      ),
      prepareIsHidden: () => g(
        () => !B().hasPrivilege(
          "Actindo.Modules.Actindo.GlobalDriverManagement.LogMessages.updateLogMessagesDeletableFlag"
        )
      )
    }
  ],
  columns: [
    {
      id: "id",
      header: "common.id",
      isVisible: !1,
      filterable: f.NUMERIC,
      sortable: c.NUMERIC
    },
    {
      id: "title",
      header: "common.title",
      filterable: f.NUMERIC,
      sortable: c.NUMERIC
    },
    {
      id: "logLevel",
      header: "gdm-plugin.messages-list.logLevel",
      filterable: f.STRING,
      sortable: c.STRING
    },
    {
      id: "created",
      header: "common.created",
      isVisible: !1,
      filterable: f.DATE,
      sortable: c.STRING
    },
    {
      id: "createdByUsername",
      header: "channels-ui.channels-table.createdBy",
      isVisible: !1,
      filterable: f.STRING,
      sortable: c.STRING
    },
    {
      id: "message",
      header: "common.message",
      filterable: f.STRING,
      sortable: c.STRING
    }
  ]
}, Re = /* @__PURE__ */ L({
  __name: "MessageDetails",
  props: {
    baseApi: {},
    messageId: {},
    title: {},
    languagesScopesController: {},
    pluginName: {}
  },
  emits: ["close"],
  setup(t) {
    return (e, l) => (i(), d(a(q), null, $({
      default: s(() => [
        M(a(Ne), {
          "base-api": e.baseApi,
          "entity-id": e.messageId,
          "languages-scopes-controller": e.languagesScopesController,
          "plugin-name": e.pluginName,
          "hide-sidebar": "",
          onClose: l[0] || (l[0] = (n) => e.$emit("close"))
        }, null, 8, ["base-api", "entity-id", "languages-scopes-controller", "plugin-name"])
      ]),
      _: 2
    }, [
      e.title ? {
        name: "toolbar-title",
        fn: s(() => [
          w(S(e.title), 1)
        ]),
        key: "0"
      } : void 0
    ]), 1024));
  }
}), ye = /* @__PURE__ */ L({
  __name: "MessageDetailsModal",
  props: /* @__PURE__ */ ie({
    baseApi: {},
    messageId: {},
    languagesScopesController: {},
    pluginName: {}
  }, {
    modelValue: { type: Boolean },
    modelModifiers: {}
  }),
  emits: ["update:modelValue"],
  setup(t) {
    const e = re(t, "modelValue");
    return (l, n) => (i(), d(a(me), {
      modelValue: e.value,
      "onUpdate:modelValue": n[1] || (n[1] = (r) => e.value = r),
      width: "98%",
      height: "98%"
    }, {
      default: s(() => [
        M(Re, {
          "base-api": l.baseApi,
          "entity-id": l.messageId,
          "languages-scopes-controller": l.languagesScopesController,
          "plugin-name": l.pluginName,
          "hide-sidebar": "",
          onClose: n[0] || (n[0] = (r) => e.value = !1)
        }, null, 8, ["base-api", "entity-id", "languages-scopes-controller", "plugin-name"])
      ]),
      _: 1
    }, 8, ["modelValue"]));
  }
}), te = /* @__PURE__ */ L({
  __name: "GDMMessagesList",
  props: {
    baseApi: {},
    logIntentId: {},
    routable: {},
    routableIntentId: {},
    routableMessageId: {},
    languagesScopesController: {},
    pluginName: {}
  },
  setup(t) {
    const e = t, { t: l } = z(), n = be(), r = ce(), { table: b, isLoading: o, apiCall: m } = J({}), v = g(() => ({
      ...Se,
      data: `${e.baseApi}listLogMessages`,
      customQuery: { logIntentId: e.logIntentId },
      routable: !1,
      routableId: e.routableMessageId
    }));
    let T = [];
    const h = C(!1), _ = C(!1), p = g(
      () => Number(n.params[e.routableMessageId])
    ), I = g({
      get: () => !!p.value,
      set: P
    });
    async function u(D, A) {
      switch (T = A, D) {
        case y.MARK_DELETABLE:
        case y.MARK_NOT_DELETABLE:
          _.value = D === y.MARK_DELETABLE, h.value = !0;
          return;
      }
    }
    function ae() {
      m(
        ke.updateLogMessagesDeletableFlag,
        x(T),
        _.value
      );
    }
    function le({ id: D }) {
      r.push({
        name: e.routable,
        params: {
          [e.routableIntentId]: e.logIntentId,
          [e.routableMessageId]: D
        }
      });
    }
    function P() {
      r.push({
        name: e.routable,
        params: {
          [e.routableIntentId]: e.logIntentId
        }
      });
    }
    return (D, A) => (i(), d(a(X), W({
      ref_key: "table",
      ref: b,
      "disable-actions": a(o)
    }, v.value, {
      onAction: u,
      onClickedRow: le,
      onDetail: P
    }), {
      "cell-logLevel": s(({ cellValue: k }) => [
        M(V, { "cell-value": k }, null, 8, ["cell-value"])
      ]),
      "no-data-title": s(() => [
        w(S(a(l)("gdm-plugin.messages-list.noMessagesExist")), 1)
      ]),
      modals: s(() => [
        h.value ? (i(), d(a(Z), {
          key: 0,
          modelValue: h.value,
          "onUpdate:modelValue": A[0] || (A[0] = (k) => h.value = k),
          title: a(l)(
            _.value ? "gdm-plugin.messages-list.confirmMarkDelete" : "gdm-plugin.messages-list.confirmMarkNotDelete"
          ),
          message: a(l)(
            _.value ? "gdm-plugin.messages-list.warningMarkDelete" : "gdm-plugin.messages-list.warningMarkNotDelete"
          ),
          confirm: a(l)("common.yes"),
          "max-width": "600px",
          onConfirm: ae
        }, null, 8, ["modelValue", "title", "message", "confirm"])) : N("", !0),
        I.value ? (i(), d(ye, {
          key: 1,
          modelValue: I.value,
          "onUpdate:modelValue": A[1] || (A[1] = (k) => I.value = k),
          "message-id": p.value,
          "base-api": D.baseApi,
          "languages-scopes-controller": D.languagesScopesController,
          "plugin-name": D.pluginName
        }, null, 8, ["modelValue", "message-id", "base-api", "languages-scopes-controller", "plugin-name"])) : N("", !0)
      ]),
      _: 1
    }, 16, ["disable-actions"]));
  }
});
function H(t) {
  const e = t;
  e.__i18n = e.__i18n || [], e.__i18n.push({
    locale: "",
    resource: {
      "en-US": {
        "gdm-plugin": {
          "messages-list": {
            logLevel: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Log Level" } },
            markDeletable: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark Deletable" } },
            markNotDeletable: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark Not Deletable" } },
            noMessagesExist: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "No messages exist" } },
            confirmMarkDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark messages as deletable" } },
            confirmMarkNotDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark messages as not deletable" } },
            warningMarkDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Selected messages will be marked as deletable." } },
            warningMarkNotDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Selected messages will be marked as not deletable." } }
          }
        }
      },
      "de-DE": {
        "gdm-plugin": {
          "messages-list": {}
        }
      }
    }
  });
}
typeof H == "function" && H(te);
const Ce = /* @__PURE__ */ L({
  __name: "LoggerIntentDetails",
  props: {
    baseApi: {},
    logIntentId: {},
    routable: {},
    routableIntentId: {},
    routableMessageId: {},
    title: {},
    languagesScopesController: {},
    pluginName: {}
  },
  setup(t) {
    return (e, l) => (i(), d(a(q), null, $({
      default: s(() => [
        e.logIntentId ? (i(), d(a(te), {
          key: 0,
          "base-api": e.baseApi,
          "log-intent-id": e.logIntentId,
          routable: e.routable,
          "routable-intent-id": e.routableIntentId,
          "routable-message-id": e.routableMessageId,
          "languages-scopes-controller": e.languagesScopesController,
          "plugin-name": e.pluginName
        }, null, 8, ["base-api", "log-intent-id", "routable", "routable-intent-id", "routable-message-id", "languages-scopes-controller", "plugin-name"])) : N("", !0)
      ]),
      _: 2
    }, [
      e.title ? {
        name: "toolbar-title",
        fn: s(() => [
          w(S(e.title), 1)
        ]),
        key: "0"
      } : void 0
    ]), 1024));
  }
}), Be = /* @__PURE__ */ L({
  __name: "GDMLoggerIntentsList2",
  props: {
    baseApi: {},
    getList: { default: "listLogIntents" },
    routable: {},
    routableIntentId: { default: "intentId" },
    routableMessageId: { default: "messageId" },
    pluginName: {}
  },
  setup(t) {
    const e = t, { t: l } = z(), { table: n, isLoading: r, apiCall: b } = J({}), o = g(() => ({
      ..._e,
      data: `${e.baseApi}${e.getList}`,
      routable: e.routable,
      routableId: e.routableIntentId
    })), m = C(!1), v = C(!1);
    let T = [];
    async function h(p, I) {
      switch (T = I, p) {
        case R.MARK_DELETABLE:
        case R.MARK_NOT_DELETABLE:
          v.value = p === R.MARK_DELETABLE, m.value = !0;
          return;
      }
    }
    function _() {
      b(
        ve.updateLogIntentsMessagesDeletableFlag,
        x(T),
        v.value
      );
    }
    return (p, I) => (i(), d(a(X), W({
      ref_key: "table",
      ref: n,
      "disable-actions": a(r)
    }, o.value, { onAction: h }), {
      "cell-maxLogLevelOfMessages": s(({ cellValue: u }) => [
        M(V, { "cell-value": u }, null, 8, ["cell-value"])
      ]),
      "cell-messages": s(({ cellValue: u }) => [
        M(K, {
          messages: u,
          shorten: ""
        }, null, 8, ["messages"])
      ]),
      "cell-messages1": s(({ row: u }) => [
        M(K, {
          messages: u.messages
        }, null, 8, ["messages"])
      ]),
      "no-data-title": s(() => [
        w(S(a(l)("gdm-plugin.logger-intents.noIntentsExist")), 1)
      ]),
      modals: s(() => [
        m.value ? (i(), d(a(Z), {
          key: 0,
          modelValue: m.value,
          "onUpdate:modelValue": I[0] || (I[0] = (u) => m.value = u),
          title: a(l)(
            v.value ? "gdm-plugin.logger-intents.confirmMarkDelete" : "gdm-plugin.logger-intents.confirmMarkNotDelete"
          ),
          message: a(l)(
            v.value ? "gdm-plugin.logger-intents.warningMarkDelete" : "gdm-plugin.logger-intents.warningMarkNotDelete"
          ),
          confirm: a(l)("common.yes"),
          "max-width": "600px",
          onConfirm: _
        }, null, 8, ["modelValue", "title", "message", "confirm"])) : N("", !0)
      ]),
      details: s(({ rowId: u }) => [
        u ? (i(), d(Ce, {
          key: 0,
          "base-api": p.baseApi,
          "log-intent-id": u,
          routable: p.routable,
          "routable-intent-id": p.routableIntentId,
          "routable-message-id": p.routableMessageId,
          title: a(l)("gdm-plugin.logger-intents.listOfMessages"),
          "plugin-name": p.pluginName
        }, null, 8, ["base-api", "log-intent-id", "routable", "routable-intent-id", "routable-message-id", "title", "plugin-name"])) : N("", !0)
      ]),
      _: 1
    }, 16, ["disable-actions"]));
  }
});
function Y(t) {
  const e = t;
  e.__i18n = e.__i18n || [], e.__i18n.push({
    locale: "",
    resource: {
      "en-US": {
        "gdm-plugin": {
          "logger-intents": {
            maxLogLevel: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Max Log Level Of Message" } },
            shortPreview: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Short Preview" } },
            preview: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Preview" } },
            numberOfMessages: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Number of Messages" } },
            noIntentsExist: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "No intents exist" } },
            markDeletable: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark Deletable" } },
            markNotDeletable: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark Not Deletable" } },
            confirmMarkDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark messages as deletable" } },
            confirmMarkNotDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "Mark messages as not deletable" } },
            warningMarkDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "One or more messages for the selected intents will be marked as deletable." } },
            warningMarkNotDelete: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "One or more messages for the selected intents will be marked as not deletable." } },
            listOfMessages: { t: 0, b: { t: 2, i: [{ t: 3 }], s: "List of Messages" } }
          }
        }
      },
      "de-DE": {
        "gdm-plugin": {}
      }
    }
  });
}
typeof Y == "function" && Y(Be);
export {
  Be as default
};
