@opengis/cms 0.0.57 → 0.0.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +1 -1
  2. package/dist/AddNewItemInTree-05PSSEFi.js +76 -0
  3. package/dist/ArticlesPage-BjYzvTWM.js +298 -0
  4. package/dist/CollectionsBreadcrumb-HePNJb-d.js +4 -0
  5. package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-BJh-tjam.js +53 -0
  6. package/dist/CollectionsPage-DHfPNql6.js +124 -0
  7. package/dist/{CreateForm-BMOBeP4G.js → CreateForm-5FvT45vH.js} +1 -1
  8. package/dist/Dashboard-CXkg_pk8.js +358 -0
  9. package/dist/EditCollectionPage-CqYHpEON.js +187 -0
  10. package/dist/{EmptyData-DaZt_nAm.js → EmptyData-DxPrSXhV.js} +1 -1
  11. package/dist/{MenuAddPage-Bf48Z-ah.js → MenuAddPage-QTnwCoGh.js} +40 -35
  12. package/dist/MenuBody-Bi0ONVZf.js +125 -0
  13. package/dist/MenuItemPage-B7Y9KFyb.js +1027 -0
  14. package/dist/MenuList-BLIpeqSd.js +172 -0
  15. package/dist/MenuPage-3W6jZ15H.js +107 -0
  16. package/dist/MenuWrapper-OrOv6sOb.js +12 -0
  17. package/dist/MonacoEditor-ByPT8pnv.js +4 -0
  18. package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-C8cip9Ci.js +84 -0
  19. package/dist/{UniversalTable.vue_vue_type_script_setup_true_lang-CJGTsd1V.js → UniversalTable-GBd_pStq.js} +81 -81
  20. package/dist/{UniversalTablePagination.vue_vue_type_script_setup_true_lang-GYZd_gkA.js → UniversalTablePagination-Dw2hc0nc.js} +47 -47
  21. package/dist/VsFormTags-CMjiu9sY.js +114 -0
  22. package/dist/VsPreview-DwETkOpb.js +63 -0
  23. package/dist/contentForm-Buku-lel.js +489 -0
  24. package/dist/getField-CpwVE28P.js +179 -0
  25. package/dist/index.d.ts +8 -0
  26. package/dist/index.js +72 -71
  27. package/dist/style.css +1 -1
  28. package/dist/vs-builder-edit-D-q1o8tF.js +604 -0
  29. package/dist/vs-builder-monaco-Cw-f19gc.js +33 -0
  30. package/dist/vs-builder-preview-BH4VAM3a.js +44 -0
  31. package/dist/vs-form-custom-datatable-BDZo48w3.js +317 -0
  32. package/dist/vs-form-integer-BZ855R3g.js +61 -0
  33. package/dist/vs-form-media-select-NY27EaG1.js +837 -0
  34. package/dist/vs-form-reference-list-Dtv8fJJU.js +1536 -0
  35. package/dist/vs-form-reletion-link-BhzNQszm.js +34 -0
  36. package/dist/vs-form-tiptap-DDFQjRjY.js +4 -0
  37. package/dist/vs-form-tiptap.vue_vue_type_script_setup_true_lang-DGgsqXwg.js +11 -0
  38. package/dist/vs-richtext-md-C098v_6Q.js +4 -0
  39. package/dist/vs-richtext-md.vue_vue_type_script_setup_true_lang-Ct8uTV-J.js +14 -0
  40. package/locales/en.json +1 -0
  41. package/locales/uk.json +1 -0
  42. package/package.json +69 -68
  43. package/server/functions/utils/mock.reply.js +7 -7
  44. package/server/routes/cms/controllers/getPermissions.js +15 -15
  45. package/server/routes/cms/controllers/setPermissions.js +49 -49
  46. package/server/templates/select/core.user_mentioned.sql +1 -1
  47. package/dist/ArticlesPage-BcR1hbds.js +0 -286
  48. package/dist/BuilderPage-CK_osM89.js +0 -386
  49. package/dist/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-CnOe9ORD.js +0 -45
  50. package/dist/CollectionsPage-JfmrHNR_.js +0 -110
  51. package/dist/EditCollectionPage-Cw3GQYRe.js +0 -809
  52. package/dist/MenuItemPage-CXn5HC8j.js +0 -1366
  53. package/dist/MenuPage-tJZtK46W.js +0 -106
  54. package/dist/MonacoEditor.vue_vue_type_script_setup_true_lang-B1DrxmQX.js +0 -84
  55. package/dist/contentForm-B6gHgGkz.js +0 -586
  56. package/dist/getField-Y5WXnRR0.js +0 -2948
package/dist/index.js CHANGED
@@ -1,103 +1,104 @@
1
- import { defineAsyncComponent as o, defineComponent as P, getCurrentInstance as $, computed as s, provide as w, openBlock as v, createBlock as b, resolveDynamicComponent as h, createElementBlock as k, toDisplayString as x } from "vue";
2
- import { useRoute as E, routeLocationKey as I } from "vue-router";
3
- const B = "menu", D = (u, i) => {
4
- const r = u == null ? void 0 : u.trim();
5
- return r ? r === B ? i ? i === "create" ? { type: "createMenu", collection: r } : { type: "editMenu", collection: r, id: i } : { type: "menu", collection: r } : i === "edit" ? { type: "editCollection", collection: r } : i ? i === "create" ? { type: "createArticle", collection: r } : { type: "editArticle", collection: r, id: i } : { type: "articles", collection: r } : { type: "collections" };
6
- }, C = o(() => import("./CollectionsPage-JfmrHNR_.js")), K = o(() => import("./ArticlesPage-BcR1hbds.js")), y = o(() => import("./contentForm-B6gHgGkz.js")), O = o(() => import("./EditCollectionPage-Cw3GQYRe.js")), L = o(
7
- () => import("./MenuPage-tJZtK46W.js")
8
- ), W = o(
9
- () => import("./MenuItemPage-CXn5HC8j.js")
10
- ), N = o(
11
- () => import("./MenuAddPage-Bf48Z-ah.js")
12
- ), j = {
13
- collections: C,
14
- articles: K,
15
- createArticle: y,
16
- editArticle: y,
17
- editCollection: O,
18
- menu: L,
19
- editMenu: W,
20
- createMenu: N
21
- }, F = C, S = (u) => j[u] ?? F, T = {
1
+ import { defineAsyncComponent as u, defineComponent as h, getCurrentInstance as A, computed as i, provide as M, openBlock as g, createBlock as k, resolveDynamicComponent as x, createElementBlock as E, toDisplayString as D } from "vue";
2
+ import { useRoute as $, routeLocationKey as K } from "vue-router";
3
+ const O = "menu", B = (s, c, a) => {
4
+ const o = s == null ? void 0 : s.trim(), l = a == null ? void 0 : a.trim();
5
+ return o ? o === O ? c ? c === "create" ? { type: "createMenu", collection: o } : { type: "editMenu", collection: o, id: c } : { type: "menu", collection: o } : l === "edit" && c ? { type: "editCollection", collection: o, id: c } : c === "edit" ? { type: "editCollection", collection: o } : c ? c === "create" ? { type: "createArticle", collection: o } : { type: "editArticle", collection: o, id: c } : { type: "articles", collection: o } : { type: "collections" };
6
+ }, R = u(() => import("./CollectionsPage-DHfPNql6.js")), L = u(() => import("./ArticlesPage-BjYzvTWM.js")), C = u(() => import("./contentForm-Buku-lel.js")), N = u(() => import("./EditCollectionPage-CqYHpEON.js")), W = u(
7
+ () => import("./MenuPage-3W6jZ15H.js")
8
+ ), j = u(
9
+ () => import("./MenuItemPage-B7Y9KFyb.js")
10
+ ), F = u(
11
+ () => import("./MenuAddPage-QTnwCoGh.js")
12
+ ), S = {
13
+ collections: R,
14
+ articles: L,
15
+ createArticle: C,
16
+ editArticle: C,
17
+ editCollection: N,
18
+ menu: W,
19
+ editMenu: j,
20
+ createMenu: F
21
+ }, T = R, U = (s) => S[s] ?? T, V = {
22
22
  key: 1,
23
23
  class: "p-4 text-sm text-slate-600 dark:text-slate-300"
24
- }, q = /* @__PURE__ */ P({
24
+ }, q = /* @__PURE__ */ h({
25
25
  __name: "CmsContentWrapper",
26
- setup(u) {
27
- const i = E(), r = $();
28
- if (!r)
26
+ setup(s) {
27
+ const c = $(), a = A();
28
+ if (!a)
29
29
  throw new Error("CmsContentWrapper must be used within a component instance");
30
- const R = s(() => {
31
- const e = r.appContext.config.globalProperties.$route;
30
+ const o = i(() => {
31
+ const e = a.appContext.config.globalProperties.$route;
32
32
  if (!e)
33
33
  throw new Error("Vue Router is not registered on the app instance");
34
34
  return e;
35
- }), l = s(() => i ?? R.value), p = s(() => {
35
+ }), l = i(() => c ?? o.value), p = i(() => {
36
36
  var e;
37
37
  return ((e = l.value) == null ? void 0 : e.params) ?? {};
38
- }), m = s(
38
+ }), f = i(
39
39
  () => {
40
- var e, t;
41
- return ((e = p.value) == null ? void 0 : e.collection) ?? ((t = p.value) == null ? void 0 : t.type);
40
+ var e, n;
41
+ return ((e = p.value) == null ? void 0 : e.collection) ?? ((n = p.value) == null ? void 0 : n.type);
42
42
  }
43
- ), _ = s(
43
+ ), _ = i(
44
+ () => {
45
+ var e, n;
46
+ return ((e = p.value) == null ? void 0 : e.id) ?? ((n = p.value) == null ? void 0 : n.contentId);
47
+ }
48
+ ), I = i(
44
49
  () => {
45
50
  var e;
46
- return (e = p.value) == null ? void 0 : e.id;
51
+ return (e = p.value) == null ? void 0 : e.action;
47
52
  }
48
- ), a = s(() => D(
49
- m.value,
50
- _.value
51
- )), f = s(() => S(a.value.type)), A = s(
52
- () => `${a.value.type}-${a.value.collection ?? ""}-${a.value.id ?? ""}`
53
- ), g = s(() => {
54
- const { type: e, collection: t, id: c } = a.value, n = { ...p.value };
55
- return m.value ? n.collection = m.value : delete n.collection, e === "articles" ? n.id = t : e === "createArticle" ? delete n.id : e === "editCollection" ? n.id = t : e === "editArticle" && c ? n.id = c : delete n.id, n;
56
- }), M = new Proxy({}, {
57
- get(e, t, c) {
58
- const n = l.value;
59
- if (!n)
53
+ ), d = i(() => B(
54
+ f.value,
55
+ _.value,
56
+ I.value
57
+ )), v = i(() => U(d.value.type)), w = i(
58
+ () => `${d.value.type}-${d.value.collection ?? ""}-${d.value.id ?? ""}`
59
+ ), y = i(() => {
60
+ const { type: e, collection: n, id: r } = d.value, t = { ...p.value };
61
+ return f.value ? t.collection = f.value : delete t.collection, e === "articles" ? (t.id = n, delete t.contentId) : e === "createArticle" ? (delete t.id, delete t.contentId) : e === "editCollection" ? (t.id = n, r ? t.contentId = r : delete t.contentId) : e === "editArticle" && r ? (t.id = r, delete t.contentId) : (delete t.id, delete t.contentId), t;
62
+ }), b = new Proxy({}, {
63
+ get(e, n, r) {
64
+ const t = l.value;
65
+ if (!t)
60
66
  return;
61
- if (t === "params")
62
- return g.value;
63
- const d = Reflect.get(n, t, c);
64
- return typeof d == "function" ? d.bind(n) : d;
67
+ if (n === "params")
68
+ return y.value;
69
+ const m = Reflect.get(t, n, r);
70
+ return typeof m == "function" ? m.bind(t) : m;
65
71
  },
66
- has(e, t) {
67
- if (t === "params")
72
+ has(e, n) {
73
+ if (n === "params")
68
74
  return !0;
69
- const c = l.value;
70
- return c ? Reflect.has(c, t) : !1;
75
+ const r = l.value;
76
+ return r ? Reflect.has(r, n) : !1;
71
77
  },
72
78
  ownKeys() {
73
79
  const e = l.value;
74
80
  return e ? Reflect.ownKeys(e) : ["params"];
75
81
  },
76
- getOwnPropertyDescriptor(e, t) {
77
- if (t === "params")
82
+ getOwnPropertyDescriptor(e, n) {
83
+ if (n === "params")
78
84
  return {
79
85
  configurable: !0,
80
86
  enumerable: !0,
81
- value: g.value
87
+ value: y.value
82
88
  };
83
- const c = l.value;
84
- if (!c)
89
+ const r = l.value;
90
+ if (!r)
85
91
  return;
86
- const n = Reflect.getOwnPropertyDescriptor(c, t);
87
- if (n)
88
- return { ...n, configurable: !0 };
92
+ const t = Reflect.getOwnPropertyDescriptor(r, n);
93
+ if (t)
94
+ return { ...t, configurable: !0 };
89
95
  }
90
96
  });
91
- return w(I, M), (e, t) => f.value ? (v(), b(h(f.value), { key: A.value })) : (v(), k("div", T, x(e.$t("cms.navigation.collections")), 1));
97
+ return M(K, b), (e, n) => v.value ? (g(), k(x(v.value), { key: w.value })) : (g(), E("div", V, D(e.$t("cms.navigation.collections")), 1));
92
98
  }
93
- }), z = o(() => import("./CollectionsPage-JfmrHNR_.js")), G = o(() => import("./ArticlesPage-BcR1hbds.js")), H = o(() => import("./BuilderPage-CK_osM89.js")), J = o(() => import("./EditCollectionPage-Cw3GQYRe.js")), Q = o(() => import("./MenuPage-tJZtK46W.js")), X = o(() => import("./MenuAddPage-Bf48Z-ah.js")), Y = o(() => import("./MenuItemPage-CXn5HC8j.js"));
99
+ }), H = u(() => import("./Dashboard-CXkg_pk8.js")), J = u(() => import("./MenuWrapper-OrOv6sOb.js")), Q = q;
94
100
  export {
95
- G as ArticlesPage,
96
- H as BuilderPage,
97
- q as CmsContentWrapper,
98
- z as CollectionsPage,
99
- J as EditCollectionPage,
100
- X as MenuAddPage,
101
- Y as MenuItemPage,
102
- Q as MenuPage
101
+ Q as Content,
102
+ H as Dashboard,
103
+ J as Menu
103
104
  };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .ui-dialog__wrapper[data-v-6d0970a6]{position:relative}.ui-dialog__modal[data-v-6d0970a6]{margin:10px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-height:0;height:-moz-fit-content;height:fit-content;max-height:80vh;overflow:hidden}.ui-dialog__content[data-v-6d0970a6]{min-height:0;height:100%;overflow:auto}.ui-dialog__content[data-v-6d0970a6]::-webkit-scrollbar{width:6px;height:6px;background-color:#f5f5f5}.ui-dialog__content[data-v-6d0970a6]::-webkit-scrollbar-thumb{border-radius:10px;background-color:#d9d9d9bf}.ui-dialog__content[data-v-6d0970a6]::-webkit-scrollbar-track{background-color:#f5f5f5}@media (max-width: 650px){.ui-dialog__modal[data-v-6d0970a6]{top:50%}}.fade-enter-active[data-v-6d0970a6],.fade-leave-active[data-v-6d0970a6]{transition:opacity .2s}.fade-enter-from[data-v-6d0970a6],.fade-leave-to[data-v-6d0970a6]{opacity:0}.content-enter-active[data-v-6d0970a6],.content-leave-active[data-v-6d0970a6]{transition:transform .4s}.content-enter-from[data-v-6d0970a6],.content-leave-to[data-v-6d0970a6]{transform:translate(-50%,-50%) scale(.95)}.col-error .vs-form-text input[data-v-749b581f]{border:1px solid red}.vs-form-text[data-v-749b581f]{position:relative}.vs-form-text__input[data-v-749b581f]::-moz-placeholder{opacity:.5}.vs-form-text__input[data-v-749b581f]::placeholder{opacity:.5}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-to{opacity:0}.heading-level-1[data-v-ef7c378e]{font-weight:700;font-size:30px}.heading-level-2[data-v-ef7c378e]{font-weight:700;font-size:26px}.heading-level-3[data-v-ef7c378e]{font-weight:700;font-size:22px}.heading-level-4[data-v-ef7c378e]{font-weight:700;font-size:18px}.heading-level-5[data-v-ef7c378e]{font-weight:500;font-size:16px}.heading-level-6[data-v-ef7c378e]{font-weight:400;font-size:14px}.flex>button[data-v-b5a7cc5a]:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.flex>button[data-v-b5a7cc5a]:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.flex:hover button[data-v-b5a7cc5a]:first-child{border-right-color:transparent}code[data-v-72ce3024]{font-family:Courier New,monospace;font-size:11px}.vs-editor-html-mode[data-v-99a48167]{display:flex;align-items:center;gap:4px;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;color:#374151;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:60px;justify-content:center}.vs-editor-html-mode[data-v-99a48167]:hover{background-color:#f3f4f6;border-color:#9ca3af}.vs-editor-html-mode.is-active[data-v-99a48167]{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.vs-editor-html-mode.is-active[data-v-99a48167]:hover{background-color:#2563eb;border-color:#2563eb}.vs-editor-html-mode__text[data-v-99a48167]{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.vs-editor-html-mode svg[data-v-99a48167]{flex-shrink:0}.monaco-editor-container[data-v-f93e0c9a]{position:relative;width:100%;height:100%;border-radius:4px;border:1px solid #e5e7eb;overflow:visible}.monaco-editor-container[data-v-f93e0c9a]:focus-within{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.dark .monaco-editor-container[data-v-f93e0c9a]{border-color:#374151}.dark .monaco-editor-container[data-v-f93e0c9a]:focus-within{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.monaco-editor-container .monaco-editor[data-v-f93e0c9a]{position:relative!important;width:100%!important;height:100%!important}.monaco-editor-container .monaco-editor .view-lines[data-v-f93e0c9a],.monaco-editor-container .monaco-editor .view-overlays[data-v-f93e0c9a],.monaco-editor-container .monaco-editor .margin[data-v-f93e0c9a]{position:relative}.monaco-editor .html-tag[data-v-f93e0c9a]{color:#4fc1ff!important;font-weight:700}.monaco-editor .html-attribute[data-v-f93e0c9a]{color:#9cdcfe!important}.monaco-editor .html-attribute-value[data-v-f93e0c9a]{color:#ff6b6b!important}.monaco-editor .html-comment[data-v-f93e0c9a]{color:#6a9955!important;font-style:italic}.monaco-editor .html-string[data-v-f93e0c9a]{color:#ff6b6b!important}.monaco-editor .html-keyword[data-v-f93e0c9a]{color:#4fc1ff!important;font-weight:700}.monaco-editor.vs .html-tag[data-v-f93e0c9a]{color:#06c!important;font-weight:700}.monaco-editor.vs .html-attribute[data-v-f93e0c9a]{color:#00f!important}.monaco-editor.vs .html-attribute-value[data-v-f93e0c9a]{color:#c00!important}.monaco-editor.vs .html-comment[data-v-f93e0c9a]{color:green!important;font-style:italic}.monaco-editor.vs .html-string[data-v-f93e0c9a]{color:#c00!important}.monaco-editor.vs .html-keyword[data-v-f93e0c9a]{color:#06c!important;font-weight:700}.monaco-editor .token.tag[data-v-f93e0c9a]{color:#4fc1ff!important;font-weight:700}.monaco-editor .token.attribute.name[data-v-f93e0c9a]{color:#9cdcfe!important}.monaco-editor .token.attribute.value[data-v-f93e0c9a],.monaco-editor .token.string[data-v-f93e0c9a]{color:#ff6b6b!important}.monaco-editor .token.comment[data-v-f93e0c9a]{color:#6a9955!important;font-style:italic}.monaco-editor.vs .token.tag[data-v-f93e0c9a]{color:#06c!important;font-weight:700}.monaco-editor.vs .token.attribute.name[data-v-f93e0c9a]{color:#00f!important}.monaco-editor.vs .token.attribute.value[data-v-f93e0c9a],.monaco-editor.vs .token.string[data-v-f93e0c9a]{color:#c00!important}.monaco-editor.vs .token.comment[data-v-f93e0c9a]{color:green!important;font-style:italic}.editor-content{min-height:160px;width:100%;overflow:hidden;max-height:500px;position:relative;display:flex;flex-direction:column}.rich-text-scroll-wrapper{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.fixed .editor-content{max-height:none;height:calc(100vh - 60px)}.html-source-editor{flex:1;min-height:0;width:100%;overflow:auto;max-height:500px}.fixed .html-source-editor{flex:1;min-height:0;max-height:none;overflow:hidden}.editor-content ul{margin-left:20px}.editor-content ul>li{list-style:disc}.editor-content ol{list-style-type:decimal;margin-left:20px}.editor-content pre{background-color:#e7e7e7;border-radius:4px;padding:0 4px}.editor-content a{color:#00f;text-decoration:underline}.editor-content table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left;margin:20px 0;font-family:Arial,sans-serif;font-size:14px;position:relative}.editor-content thead{position:sticky;top:0;z-index:10}.editor-content th,.editor-content td{border:1px solid #ccc;padding:10px;position:relative}.editor-content th{background-color:#f4f4f4;font-weight:700;position:sticky;top:0;z-index:10}.editor-content tr:nth-child(2n){background-color:#f9f9f9}.editor-content tr:nth-child(odd){background-color:#fff}.editor-content .editor-image{display:inline-block;vertical-align:middle;margin:0;border:2px solid transparent;border-radius:4px;transition:border-color .2s ease}.editor-content .editor-image[width][height]{max-width:none!important;max-height:none!important;min-width:auto!important;min-height:auto!important;-o-object-fit:fill!important;object-fit:fill!important}.editor-content .editor-image[style*=width]{max-width:none!important}.editor-content .editor-image[style*=height]{max-height:none!important}.editor-content .editor-image[style*=width][style*=height]{max-width:none!important;max-height:none!important}.editor-content .editor-image[width]:not([height]){height:auto}.editor-content .editor-image[height]:not([width]){width:auto}.editor-content .editor-image:not([width]):not([height]):not([style*=width]):not([style*=height]){height:auto;width:auto;max-width:100%}.editor-content .editor-image.ProseMirror-selectednode,.editor-content .ProseMirror-selectednode.editor-image{border:2px solid #3b82f6;box-shadow:0 0 0 2px #3b82f633}.editor-content p:has(.editor-image){display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;line-height:1.5}.editor-content p:has(.editor-image)[style*="text-align: center"],.editor-content p:has(.editor-image)[style*="text-align:center"]{justify-content:center}.editor-content p:has(.editor-image)[style*="text-align: right"],.editor-content p:has(.editor-image)[style*="text-align:right"]{justify-content:flex-end}.editor-content p:has(.editor-image)[style*="text-align: left"],.editor-content p:has(.editor-image)[style*="text-align:left"]{justify-content:flex-start}.editor-content p:has(.editor-image)[style*="text-align: justify"],.editor-content p:has(.editor-image)[style*="text-align:justify"]{justify-content:space-between}.editor-content p:has(.editor-image):not(:has(text)){margin:8px 0}.editor-content p .editor-image{flex-shrink:0;max-width:calc(50% - 4px);-o-object-fit:contain;object-fit:contain}.editor-content p .editor-image:only-child{max-width:100%}.editor-content p .editor-image:nth-child(1):nth-last-child(2),.editor-content p .editor-image:nth-child(2):nth-last-child(1){max-width:calc(50% - 4px)}.editor-content p .editor-image:nth-child(1):nth-last-child(3),.editor-content p .editor-image:nth-child(2):nth-last-child(2),.editor-content p .editor-image:nth-child(3):nth-last-child(1){max-width:calc(33.333% - 6px)}.editor-content p .editor-image:nth-child(n+4){max-width:calc(33.333% - 6px)}.ProseMirror-focused{outline:none}.editor-toolbar{background-color:#f9fafb}.editor-page-content{min-height:160px;width:100%;overflow:auto;position:relative}.fixed .editor-page-content{max-height:none;height:calc(100vh - 117px)}.html-source-editor{width:100%;height:100%;overflow:auto}.fixed .html-source-editor{height:calc(100vh - 60px);max-height:none}button{transition:background-color .2s ease;outline:none}button:focus{outline:none}.editor-page-content ul{margin-left:20px}.editor-page-content ul>li{list-style:disc}.editor-page-content ol{list-style-type:decimal;margin-left:20px}.editor-page-content pre{background-color:#e7e7e7;border-radius:4px;padding:0 4px}.editor-code{background-color:#f1f1f1;border-radius:3px;padding:2px 4px;font-family:Courier New,monospace;font-size:.9em}.editor-codeblock{background-color:#f8f8f8;border:1px solid #e1e1e1;border-radius:4px;padding:12px;margin:8px 0;font-family:Courier New,monospace;overflow-x:auto}.editor-page-content a{color:#00f;text-decoration:underline}.editor-page-content table{width:100%;table-layout:fixed;border-collapse:collapse;text-align:left;margin:20px 0;font-family:Arial,sans-serif;font-size:14px;position:relative}.editor-page-content thead{position:sticky;top:0;z-index:10}.editor-page-content th,.editor-page-content td{border:1px solid #ccc;padding:10px;position:relative}.editor-page-content th{background-color:#f4f4f4;font-weight:700;position:sticky;top:0;z-index:10}.editor-page-content tr:nth-child(2n){background-color:#f9f9f9}.editor-page-content tr:nth-child(odd){background-color:#fff}.selectedCell{background:#f0eeed}.column-resize-handle{background-color:#1d4ed8;bottom:-2px;pointer-events:none;position:absolute;right:-2px;top:0;width:4px}.resize-cursor{cursor:ew-resize;cursor:col-resize}.editor-link{color:#00f}.editor-link:hover{text-decoration:underline}blockquote{font-style:italic;quotes:"«" "»";text-indent:16px}blockquote>p{display:inline}blockquote:before{content:open-quote;display:inline;font-size:18px;margin-right:2px}blockquote:after{content:close-quote;font-size:18px;display:inline;margin-left:2px}.html-source-editor{width:100%;height:100%}.col-error .vs-number__input{border:1px solid red}.vs-number__input::-moz-placeholder{opacity:.5}.vs-number__input::placeholder{opacity:.5}
1
+ .col-error .vs-number__input{border:1px solid red}.vs-number__input::-moz-placeholder{opacity:.5}.vs-number__input::placeholder{opacity:.5}