admins-components 9.0.82 → 9.0.84

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 (31) hide show
  1. package/dist/admins-components170.js.map +1 -1
  2. package/dist/admins-components173.js +108 -82
  3. package/dist/admins-components173.js.map +1 -1
  4. package/dist/admins-components38.js +27 -24
  5. package/dist/admins-components38.js.map +1 -1
  6. package/dist/admins-components40.js.map +1 -1
  7. package/dist/admins-components51.js +78 -83
  8. package/dist/admins-components51.js.map +1 -1
  9. package/dist/admins-components52.js.map +1 -1
  10. package/dist/admins-components68.js +12 -9
  11. package/dist/admins-components68.js.map +1 -1
  12. package/dist/admins-components70.js.map +1 -1
  13. package/dist/admins-components71.js +38 -53
  14. package/dist/admins-components71.js.map +1 -1
  15. package/dist/admins-components73.js.map +1 -1
  16. package/dist/src/components/Modal.vue.d.ts +2 -0
  17. package/dist/src/vueformelements/config/ArticlePickerElementConfig.d.ts +1 -0
  18. package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  19. package/dist/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  20. package/dist/test.html +163 -0
  21. package/dist/test81.html +161 -0
  22. package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_56a4bfd6_lang.css +1 -0
  23. package/dist/widget/dist/hvg-search-image-style.css +1 -0
  24. package/dist/widget/dist/hvg-search-image.es.js +204437 -0
  25. package/dist/widget/dist/hvg-search-image.umd.js +506 -0
  26. package/dist/widget/dist/search-posts-widget.css +2 -1
  27. package/dist/widget/dist/search-posts-widget.es.js +9959 -11185
  28. package/dist/widget/dist/search-posts-widget.umd.js +5 -31
  29. package/dist/widget.css +1 -1
  30. package/package.json +1 -1
  31. package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_54217a66_lang.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components170.js","names":[],"sources":["../src/vueformelements/config/ArticlePickerElementConfig.ts"],"sourcesContent":["export interface ArticlePickerElementConfig {\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n showIds?: boolean\n}\n\nexport let apeConfig: ArticlePickerElementConfig = (window as any).config?.articlePicker || {}\n\nexport function configureArticlePickerElement(apec: ArticlePickerElementConfig) {\n apeConfig = {\n ...apeConfig,\n ...apec,\n }\n return apeConfig\n}\n"],"mappings":";AAMA,IAAW,IAAyC,OAAe,QAAQ,iBAAiB,CAAC;AAE7F,SAAgB,EAA8B,GAAkC;CAK9E,OAJA,IAAY;EACV,GAAG;EACH,GAAG;CACL,GACO;AACT"}
1
+ {"version":3,"file":"admins-components170.js","names":[],"sources":["../src/vueformelements/config/ArticlePickerElementConfig.ts"],"sourcesContent":["export interface ArticlePickerElementConfig {\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n showIds?: boolean\n // Where the search-posts-widget renders its confirm/cancel buttons\n // inside its own modal. Defaults to 'footer'.\n articleModalActionsPosition?: 'header' | 'footer' | 'both'\n}\n\nexport let apeConfig: ArticlePickerElementConfig = (window as any).config?.articlePicker || {}\n\nexport function configureArticlePickerElement(apec: ArticlePickerElementConfig) {\n apeConfig = {\n ...apeConfig,\n ...apec,\n }\n return apeConfig\n}\n"],"mappings":";AASA,IAAW,IAAyC,OAAe,QAAQ,iBAAiB,CAAC;AAE7F,SAAgB,EAA8B,GAAkC;CAK9E,OAJA,IAAY;EACV,GAAG;EACH,GAAG;CACL,GACO;AACT"}
@@ -1,64 +1,74 @@
1
- import './vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_54217a66_lang.css';
1
+ import './vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_56a4bfd6_lang.css';
2
2
  import e from "./admins-components6.js";
3
- import { defineElement as t } from "./admins-components166.js";
4
- import n from "./admins-components168.js";
5
- import { apeConfig as r } from "./admins-components170.js";
6
- import { ipeConfig as i } from "./admins-components171.js";
3
+ import t from "./admins-components40.js";
4
+ import { defineElement as n } from "./admins-components166.js";
5
+ import r from "./admins-components168.js";
6
+ import { apeConfig as i } from "./admins-components170.js";
7
+ import { ipeConfig as a } from "./admins-components171.js";
7
8
  /* empty css */
8
- import { createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, createVNode as u, nextTick as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, resolveComponent as v, resolveDynamicComponent as y, withCtx as b } from "vue";
9
+ import { createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createSlots as u, createVNode as d, onMounted as f, onUnmounted as p, openBlock as m, ref as h, renderList as g, renderSlot as _, resolveComponent as v, resolveDynamicComponent as y, withCtx as b } from "vue";
9
10
  //#region src/vueformelements/ArticlePickerElement.vue
10
- var x = t({
11
- components: { Button: e },
11
+ var x = n({
12
+ components: {
13
+ Button: e,
14
+ Modal: t
15
+ },
12
16
  name: "ArticlePickerElement",
13
17
  setup(e, t) {
14
- let n = i.environment, a = i.searchImageWidgetUrl, o = i.imageBaseUrl, s = i.imageViewId, c = r.searchArticleApiUrl, l = r.searchArticleWidgetUrl, u = r.showIds, m = h((/* @__PURE__ */ new Date()).getTime().toString() + "image"), g = h((/* @__PURE__ */ new Date()).getTime().toString() + "article"), _ = "00000000-0000-0000-0000-000000000000", { value: v } = t.element, y = (e) => {
15
- e.preventDefault(), d(() => {
16
- document.getElementById(m.value).showModal();
17
- });
18
- }, b = () => {
19
- d(() => {
20
- document.getElementById(g.value).showModal();
21
- });
22
- }, x = (e) => {
23
- e.preventDefault(), v.value.imageId = _;
24
- }, S = (e) => {
18
+ let n = a.environment, r = a.articleEditorUrl, o = a.searchImageWidgetUrl, s = a.imageBaseUrl, c = a.imageViewId, l = i.searchArticleApiUrl, u = i.searchArticleWidgetUrl, d = i.showIds, m = i.articleModalActionsPosition ?? "footer", g = h((/* @__PURE__ */ new Date()).getTime().toString() + "image"), _ = h((/* @__PURE__ */ new Date()).getTime().toString() + "article"), v = h(!1), y = h(!1), b = "00000000-0000-0000-0000-000000000000", { value: x } = t.element, S = (e) => {
19
+ e.preventDefault(), v.value = !0;
20
+ }, C = () => {
21
+ y.value = !0;
22
+ }, w = () => {
23
+ v.value = !1;
24
+ }, T = () => {
25
+ y.value = !1;
26
+ }, E = (e) => {
27
+ e.preventDefault(), x.value.imageId = b;
28
+ }, D = (e) => {
25
29
  if (!document.querySelector(`script[src="${e}"]`)) {
26
30
  let t = document.createElement("script");
27
31
  t.type = "text/javascript", t.src = e, document.head.appendChild(t);
28
32
  }
29
- }, C = () => `${o}/${s}/${v.value.imageId}.img`;
30
- S(a), S(l);
31
- let w = (e) => {
32
- e.detail.causationid == m.value && (document.getElementById(m.value).close(), v.value.imageId = e.detail.image.id);
33
+ }, O = () => `${s}/${c}/${x.value.imageId}.img`;
34
+ D(o), D(u);
35
+ let k = (e) => {
36
+ e.detail.causationid == g.value && (v.value = !1, x.value.imageId = e.detail.image.id);
37
+ }, A = (e) => {
38
+ if (e.detail.id == _.value) {
39
+ if (e.detail.result && e.detail.posts.length > 0) {
40
+ x.value.id = e.detail.posts[0].id, x.value.siteId = e.detail.posts[0].siteId, x.value.title = e.detail.posts[0].title, x.value.lead = e.detail.posts[0].lead;
41
+ let t = e.detail.posts[0].featuredImage;
42
+ x.value.imageId = t || b;
43
+ }
44
+ T();
45
+ }
33
46
  };
34
47
  return p(() => {
35
- window.removeEventListener("image-selected", w, !1);
48
+ window.removeEventListener("image-selected", k, !1), window.removeEventListener("search_posts_selected", A, !1);
36
49
  }), f(() => {
37
- window.addEventListener("image-selected", w), window.addEventListener("search_posts_selected", (e) => {
38
- if (e.detail.id == g.value) {
39
- if (e.detail.result && e.detail.posts.length > 0) {
40
- v.value.id = e.detail.posts[0].id, v.value.siteId = e.detail.posts[0].siteId, v.value.title = e.detail.posts[0].title, v.value.lead = e.detail.posts[0].lead;
41
- let t = e.detail.posts[0].featuredImage;
42
- v.value.imageId = t || _;
43
- }
44
- document.getElementById(g.value).close();
45
- }
46
- });
50
+ window.addEventListener("image-selected", k), window.addEventListener("search_posts_selected", A);
47
51
  }), {
48
- imageViewId: s,
49
- imageBaseUrl: o,
50
- imageCausationId: m,
51
- articleCausationId: g,
52
- searchImageWidgetUrl: a,
52
+ imageViewId: c,
53
+ imageBaseUrl: s,
54
+ imageCausationId: g,
55
+ articleCausationId: _,
56
+ searchImageWidgetUrl: o,
53
57
  environment: n,
54
- searchArticleApiUrl: c,
55
- selectImage: y,
56
- selectArticle: b,
57
- resetImage: x,
58
- addScript: S,
59
- value: v,
60
- getImageUrl: C,
61
- showIds: u
58
+ articleEditorUrl: r,
59
+ searchArticleApiUrl: l,
60
+ articleModalActionsPosition: m,
61
+ selectImage: S,
62
+ selectArticle: C,
63
+ closeImageModal: w,
64
+ closeArticleModal: T,
65
+ isImageModalOpen: v,
66
+ isArticleModalOpen: y,
67
+ resetImage: E,
68
+ addScript: D,
69
+ value: x,
70
+ getImageUrl: O,
71
+ showIds: d
62
72
  };
63
73
  }
64
74
  }), S = { class: "ac-component" }, C = { class: "article-picker-container" }, w = { class: "article-picker-section" }, T = {
@@ -67,103 +77,119 @@ var x = t({
67
77
  }, E = { class: "article-picker-id-field" }, D = { class: "c-input-row" }, O = ["value"], k = { class: "article-picker-id-field" }, A = { class: "c-input-row" }, j = ["value"], M = { class: "article-picker-section" }, N = { class: "c-input-row" }, P = ["value"], F = { class: "article-picker-section" }, I = { class: "c-input-row" }, L = ["value"], R = { class: "article-picker-section" }, z = ["src"], B = {
68
78
  key: 1,
69
79
  class: "article-picker-no-image"
70
- }, V = { class: "article-picker-buttons" }, H = ["id"], U = [
80
+ }, V = { class: "article-picker-buttons" }, H = [
71
81
  "causationid",
72
82
  "viewid",
73
83
  "aeurl",
74
84
  "environment"
75
- ], W = ["id"], G = ["id", "apiurl"];
76
- function K(e, t, n, r, i, d) {
77
- let f = v("Button"), p = v("ElementLayout");
78
- return m(), a(p, null, l({ _: 2 }, [e.value ? {
85
+ ], U = [
86
+ "id",
87
+ "actions-position",
88
+ "apiurl"
89
+ ];
90
+ function W(e, t, n, r, i, a) {
91
+ let f = v("Button"), p = v("Modal"), h = v("ElementLayout");
92
+ return m(), o(h, null, u({ _: 2 }, [e.value ? {
79
93
  name: "element",
80
- fn: b(() => [c("div", S, [
81
- c("div", C, [
82
- c("div", w, [u(f, {
94
+ fn: b(() => [l("div", S, [
95
+ l("div", C, [
96
+ l("div", w, [d(f, {
83
97
  type: "normal",
84
98
  label: "Cikk Választás",
85
99
  onClick: e.selectArticle
86
100
  }, null, 8, ["onClick"])]),
87
- e.showIds ? (m(), s("div", T, [c("div", E, [t[3] ||= c("label", {
101
+ e.showIds ? (m(), c("div", T, [l("div", E, [t[4] ||= l("label", {
88
102
  for: "articleId",
89
103
  class: "c-label"
90
- }, "Cikk azonosító", -1), c("div", D, [c("input", {
104
+ }, "Cikk azonosító", -1), l("div", D, [l("input", {
91
105
  type: "text",
92
106
  id: "articleId",
93
107
  class: "c-input",
94
108
  placeholder: "Cikk azonosító",
95
109
  disabled: "",
96
110
  value: e.value.id
97
- }, null, 8, O)])]), c("div", k, [t[4] ||= c("label", {
111
+ }, null, 8, O)])]), l("div", k, [t[5] ||= l("label", {
98
112
  for: "articleSiteId",
99
113
  class: "c-label"
100
- }, "Site azonosító", -1), c("div", A, [c("input", {
114
+ }, "Site azonosító", -1), l("div", A, [l("input", {
101
115
  type: "text",
102
116
  id: "articleSiteId",
103
117
  class: "c-input",
104
118
  placeholder: "Site azonosító",
105
119
  disabled: "",
106
120
  value: e.value.siteId
107
- }, null, 8, j)])])])) : o("", !0),
108
- c("div", M, [t[5] ||= c("label", {
121
+ }, null, 8, j)])])])) : s("", !0),
122
+ l("div", M, [t[6] ||= l("label", {
109
123
  for: "articleTitle",
110
124
  class: "c-label"
111
- }, "Címe", -1), c("div", N, [c("textarea", {
125
+ }, "Címe", -1), l("div", N, [l("textarea", {
112
126
  id: "articleTitle",
113
127
  class: "c-input",
114
128
  placeholder: "Címe",
115
129
  value: e.value.title,
116
130
  onInput: t[0] ||= (t) => e.value.title = t.target.value
117
131
  }, null, 40, P)])]),
118
- c("div", F, [t[6] ||= c("label", {
132
+ l("div", F, [t[7] ||= l("label", {
119
133
  for: "articleLead",
120
134
  class: "c-label"
121
- }, "Lead", -1), c("div", I, [c("textarea", {
135
+ }, "Lead", -1), l("div", I, [l("textarea", {
122
136
  id: "articleLead",
123
137
  class: "c-input",
124
138
  placeholder: "Lead",
125
139
  value: e.value.lead,
126
140
  onInput: t[1] ||= (t) => e.value.lead = t.target.value
127
141
  }, null, 40, L)])]),
128
- c("div", R, [t[7] ||= c("label", { class: "c-label" }, "Kép", -1), c("img", {
142
+ l("div", R, [t[8] ||= l("label", { class: "c-label" }, "Kép", -1), l("img", {
129
143
  alt: "",
130
144
  src: e.getImageUrl(),
131
145
  onInput: t[2] ||= (t) => e.value.image = t.target.value,
132
146
  class: "article-picker-image"
133
147
  }, null, 40, z)]),
134
- e.value.imageId === "00000000-0000-0000-0000-000000000000" ? (m(), s("div", B, " Nincs kép kiválasztva! ")) : o("", !0),
135
- c("div", V, [u(f, {
148
+ e.value.imageId === "00000000-0000-0000-0000-000000000000" ? (m(), c("div", B, " Nincs kép kiválasztva! ")) : s("", !0),
149
+ l("div", V, [d(f, {
136
150
  type: "normal",
137
151
  label: "Kép Választás",
138
152
  onClick: e.selectImage
139
- }, null, 8, ["onClick"]), u(f, {
153
+ }, null, 8, ["onClick"]), d(f, {
140
154
  type: "error",
141
155
  label: "Eltávolítás",
142
156
  onClick: e.resetImage
143
157
  }, null, 8, ["onClick"])])
144
158
  ]),
145
- c("dialog", { id: e.imageCausationId }, [c("hvg-search-image", {
146
- causationid: e.imageCausationId,
147
- viewid: e.imageViewId,
148
- aeurl: e.searchArticleApiUrl,
149
- environment: e.environment,
150
- selectonly: "true"
151
- }, null, 8, U)], 8, H),
152
- c("dialog", { id: e.articleCausationId }, [c("search-posts-widget", {
159
+ e.isImageModalOpen ? (m(), o(p, {
160
+ key: 0,
161
+ title: "Kép választás",
162
+ "modal-class": "article-picker-image-modal",
163
+ onClose: e.closeImageModal
164
+ }, {
165
+ default: b(() => [l("hvg-search-image", {
166
+ causationid: e.imageCausationId,
167
+ viewid: e.imageViewId,
168
+ aeurl: e.articleEditorUrl,
169
+ environment: e.environment,
170
+ selectonly: "true"
171
+ }, null, 8, H)]),
172
+ _: 1
173
+ }, 8, ["onClose"])) : s("", !0),
174
+ e.isArticleModalOpen ? (m(), c("search-posts-widget", {
175
+ key: 1,
153
176
  id: e.articleCausationId,
154
- selector: "true",
177
+ selector: "",
178
+ modal: "",
179
+ "modal-title": "Cikk választása",
180
+ "actions-position": e.articleModalActionsPosition,
155
181
  apiurl: e.searchArticleApiUrl,
156
182
  wpurl: "",
157
183
  searchurl: "",
158
- style: { height: "100%" }
159
- }, null, 8, G)], 8, W)
184
+ onClose: t[3] ||= (...t) => e.closeArticleModal && e.closeArticleModal(...t)
185
+ }, null, 40, U)) : s("", !0)
160
186
  ])]),
161
187
  key: "0"
162
188
  } : void 0, g(e.elementSlots, (t, n) => ({
163
189
  name: n,
164
- fn: b(() => [_(e.$slots, n, { el$: e.el$ }, () => [(m(), a(y(t), { el$: e.el$ }, null, 8, ["el$"]))], !0)])
190
+ fn: b(() => [_(e.$slots, n, { el$: e.el$ }, () => [(m(), o(y(t), { el$: e.el$ }, null, 8, ["el$"]))], !0)])
165
191
  }))]), 1024);
166
192
  }
167
- var q = /*#__PURE__*/ n(x, [["render", K], ["__scopeId", "data-v-54217a66"]]);
193
+ var G = /*#__PURE__*/ r(x, [["render", W], ["__scopeId", "data-v-56a4bfd6"]]);
168
194
  //#endregion
169
- export { q as default };
195
+ export { G as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components173.js","names":[],"sources":["../src/vueformelements/ArticlePickerElement.vue"],"sourcesContent":["<!-- eslint-disable-next-line vue/block-lang -->\n<script>\nimport { defineElement } from '@vueform/vueform'\nimport { ref, onUnmounted, onMounted, nextTick } from 'vue'\nimport { apeConfig } from '@/vueformelements/config/ArticlePickerElementConfig'\nimport { ipeConfig } from '@/vueformelements/config/ImagePickerElementConfig'\nimport Button from '@/components/Button.vue'\n\nexport default defineElement({\n components: { Button },\n name: 'ArticlePickerElement',\n\n setup(props, context) {\n const environment = ipeConfig.environment\n const searchImageWidgetUrl = ipeConfig.searchImageWidgetUrl\n const imageBaseUrl = ipeConfig.imageBaseUrl\n const imageViewId = ipeConfig.imageViewId\n\n const searchArticleApiUrl = apeConfig.searchArticleApiUrl\n const searchArticleWidgetUrl = apeConfig.searchArticleWidgetUrl\n const showIds = apeConfig.showIds\n\n const imageCausationId = ref(new Date().getTime().toString() + 'image')\n const articleCausationId = ref(new Date().getTime().toString() + 'article')\n\n const EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\n const { value } = context.element\n\n const selectImage = (event) => {\n event.preventDefault()\n\n nextTick(() => {\n document.getElementById(imageCausationId.value).showModal()\n })\n }\n\n const selectArticle = () => {\n nextTick(() => {\n document.getElementById(articleCausationId.value).showModal()\n })\n }\n\n const resetImage = (event) => {\n event.preventDefault()\n value.value.imageId = EMPTYGUID\n }\n\n const addScript = (url) => {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n\n const getImageUrl = () => {\n return `${imageBaseUrl}/${imageViewId}/${value.value.imageId}.img`\n }\n\n addScript(searchImageWidgetUrl)\n addScript(searchArticleWidgetUrl)\n\n const ImageSelectedHandler = (e) => {\n if (e.detail.causationid == imageCausationId.value) {\n document.getElementById(imageCausationId.value).close()\n value.value.imageId = e.detail.image.id\n }\n }\n\n onUnmounted(() => {\n window.removeEventListener('image-selected', ImageSelectedHandler, false)\n })\n\n onMounted(() => {\n window.addEventListener('image-selected', ImageSelectedHandler)\n\n window.addEventListener('search_posts_selected', (e) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n value.value.id = e.detail.posts[0].id\n value.value.siteId = e.detail.posts[0].siteId\n value.value.title = e.detail.posts[0].title\n value.value.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n value.value.imageId = imageId || EMPTYGUID\n }\n\n document.getElementById(articleCausationId.value).close()\n }\n })\n })\n\n return {\n imageViewId,\n imageBaseUrl,\n imageCausationId: imageCausationId,\n articleCausationId: articleCausationId,\n searchImageWidgetUrl,\n environment,\n searchArticleApiUrl,\n selectImage,\n selectArticle,\n resetImage,\n addScript,\n value,\n getImageUrl,\n showIds,\n }\n },\n})\n</script>\n\n<template>\n <ElementLayout>\n <template v-if=\"value\" #element>\n <div class=\"ac-component\">\n <div class=\"article-picker-container\">\n <div class=\"article-picker-section\">\n <Button type=\"normal\" label=\"Cikk Választás\" @click=\"selectArticle\" />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"article-picker-ids\">\n <div class=\"article-picker-id-field\">\n <label for=\"articleId\" class=\"c-label\">Cikk azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleId\"\n class=\"c-input\"\n placeholder=\"Cikk azonosító\"\n disabled\n :value=\"value.id\"\n />\n </div>\n </div>\n <div class=\"article-picker-id-field\">\n <label for=\"articleSiteId\" class=\"c-label\">Site azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleSiteId\"\n class=\"c-input\"\n placeholder=\"Site azonosító\"\n disabled\n :value=\"value.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div class=\"article-picker-section\">\n <label for=\"articleTitle\" class=\"c-label\">Címe</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Címe\"\n :value=\"value.title\"\n @input=\"value.title = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Lead\"\n :value=\"value.lead\"\n @input=\"value.lead = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label class=\"c-label\">Kép</label>\n <img\n alt=\"\"\n :src=\"getImageUrl()\"\n @input=\"value.image = $event.target.value\"\n class=\"article-picker-image\"\n />\n </div>\n\n <div\n v-if=\"value.imageId === '00000000-0000-0000-0000-000000000000'\"\n class=\"article-picker-no-image\"\n >\n Nincs kép kiválasztva!\n </div>\n\n <div class=\"article-picker-buttons\">\n <Button type=\"normal\" label=\"Kép Választás\" @click=\"selectImage\" />\n <Button type=\"error\" label=\"Eltávolítás\" @click=\"resetImage\" />\n </div>\n </div>\n\n <dialog :id=\"imageCausationId\">\n <hvg-search-image\n :causationid=\"imageCausationId\"\n :viewid=\"imageViewId\"\n :aeurl=\"searchArticleApiUrl\"\n :environment=\"environment\"\n selectonly=\"true\"\n ></hvg-search-image>\n </dialog>\n <dialog :id=\"articleCausationId\">\n <search-posts-widget\n :id=\"articleCausationId\"\n selector=\"true\"\n :apiurl=\"searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n style=\"height: 100%\"\n ></search-posts-widget>\n </dialog>\n </div>\n </template>\n\n <template v-for=\"(component, slot) in elementSlots\" #[slot]>\n <!-- eslint-disable-next-line vue/valid-attribute-name -->\n <slot :name=\"slot\" :el$=\"el$\">\n <component :is=\"component\" :el$=\"el$\" />\n </slot>\n </template>\n </ElementLayout>\n</template>\n\n<style scoped>\n.article-picker-container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.article-picker-section {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-ids {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-id-field {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-image {\n height: 200px;\n max-width: 100%;\n border-radius: var(--ac-field-border-radius);\n object-fit: cover;\n}\n\n.article-picker-no-image {\n padding: var(--ac-input-padding);\n color: var(--neutral-500);\n font-size: var(--ac-field-font-size);\n}\n\n.article-picker-buttons {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n</style>\n"],"mappings":";;;;;;;;AAQA,IAAK,IAAa,EAAW;CAC3B,YAAY,EAAE,QAAA,EAAO;CACrB,MAAM;CAEN,MAAM,GAAO,GAAS;EACpB,IAAM,IAAc,EAAU,aACxB,IAAuB,EAAU,sBACjC,IAAe,EAAU,cACzB,IAAc,EAAU,aAExB,IAAsB,EAAU,qBAChC,IAAyB,EAAU,wBACnC,IAAU,EAAU,SAEpB,IAAmB,mBAAI,IAAI,KAAK,EAAA,CAAE,QAAQ,CAAC,CAAC,SAAS,IAAI,OAAO,GAChE,IAAqB,mBAAI,IAAI,KAAK,EAAA,CAAE,QAAQ,CAAC,CAAC,SAAS,IAAI,SAAS,GAEpE,IAAY,wCAEZ,EAAE,aAAU,EAAQ,SAEpB,KAAe,MAAU;GAG7B,AAFA,EAAM,eAAe,GAErB,QAAe;IACb,SAAS,eAAe,EAAiB,KAAK,CAAC,CAAC,UAAU;GAC5D,CAAC;EACH,GAEM,UAAsB;GAC1B,QAAe;IACb,SAAS,eAAe,EAAmB,KAAK,CAAC,CAAC,UAAU;GAC9D,CAAC;EACH,GAEM,KAAc,MAAU;GAE5B,AADA,EAAM,eAAe,GACrB,EAAM,MAAM,UAAU;EACxB,GAEM,KAAa,MAAQ;GACzB,IAAI,CAAC,SAAS,cAAc,eAAe,EAAI,GAAG,GAAG;IACnD,IAAM,IAAS,SAAS,cAAc,QAAQ;IAG9C,AAFA,EAAO,OAAO,mBACd,EAAO,MAAM,GACb,SAAS,KAAK,YAAY,CAAM;GAClC;EACF,GAEM,UACG,GAAG,EAAa,GAAG,EAAY,GAAG,EAAM,MAAM,QAAQ;EAI/D,AADA,EAAU,CAAoB,GAC9B,EAAU,CAAsB;EAEhC,IAAM,KAAwB,MAAM;GAClC,AAAI,EAAE,OAAO,eAAe,EAAiB,UAC3C,SAAS,eAAe,EAAiB,KAAK,CAAC,CAAC,MAAM,GACtD,EAAM,MAAM,UAAU,EAAE,OAAO,MAAM;EAEzC;EAyBA,OAvBA,QAAkB;GAChB,OAAO,oBAAoB,kBAAkB,GAAsB,EAAK;EAC1E,CAAC,GAED,QAAgB;GAGd,AAFA,OAAO,iBAAiB,kBAAkB,CAAoB,GAE9D,OAAO,iBAAiB,0BAA0B,MAAM;IACtD,IAAI,EAAE,OAAO,MAAM,EAAmB,OAAO;KAC3C,IAAI,EAAE,OAAO,UAAU,EAAE,OAAO,MAAM,SAAS,GAAG;MAIhD,AAHA,EAAM,MAAM,KAAK,EAAE,OAAO,MAAM,EAAE,CAAC,IACnC,EAAM,MAAM,SAAS,EAAE,OAAO,MAAM,EAAE,CAAC,QACvC,EAAM,MAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,CAAC,OACtC,EAAM,MAAM,OAAO,EAAE,OAAO,MAAM,EAAE,CAAC;MACrC,IAAM,IAAU,EAAE,OAAO,MAAM,EAAE,CAAC;MAClC,EAAM,MAAM,UAAU,KAAW;KACnC;KAEA,SAAS,eAAe,EAAmB,KAAK,CAAC,CAAC,MAAM;IAC1D;GACF,CAAC;EACH,CAAC,GAEM;GACL;GACA;GACkB;GACE;GACpB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;AACF,CAAC,GAMU,IAAA,EAAA,OAAM,eAAc,GAClB,IAAA,EAAA,OAAM,2BAA0B,GAC9B,IAAA,EAAA,OAAM,yBAAwB;;CAK5B,OAAM;GACJ,IAAA,EAAA,OAAM,0BAAyB,GAE7B,IAAA,EAAA,OAAM,cAAa,kBAWrB,IAAA,EAAA,OAAM,0BAAyB,GAE7B,IAAA,EAAA,OAAM,cAAa,kBAczB,IAAA,EAAA,OAAM,yBAAwB,GAE5B,IAAA,EAAA,OAAM,cAAa,kBAWrB,IAAA,EAAA,OAAM,yBAAwB,GAE5B,IAAA,EAAA,OAAM,cAAa,kBAWrB,IAAA,EAAA,OAAM,yBAAwB;;CAYjC,OAAM;GAKH,IAAA,EAAA,OAAM,yBAAwB;;;;;;;;CAlF3C,OAAA,EAAA,GAAA,EAoHgB,GAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAnHE,EAAA,QAAA;EAAQ,MAAA;EACtB,IAAA,QAyGM,CAzGN,EAyGM,OAzGN,GAyGM;GAxGJ,EAmFM,OAnFN,GAmFM;IAlFJ,EAEM,OAFN,GAEM,CADJ,EAAsE,GAAA;KAA9D,MAAK;KAAS,OAAM;KAAkB,SAAO,EAAA;;IAGvC,EAAA,WACd,EAAA,GAAA,EA2BM,OA3BN,GA2BM,CA1BJ,EAYM,OAZN,GAYM,CAXJ,AAAA,EAAA,OAAA,EAA6D,SAAA;KAAtD,KAAI;KAAY,OAAM;IAAU,GAAA,kBAAc,EAAA,GACrD,EASM,OATN,GASM,CARJ,EAOE,SAAA;KANA,MAAK;KACL,IAAG;KACH,OAAM;KACN,aAAY;KACZ,UAAA;KACC,OAAO,EAAA,MAAM;IAIpB,GAAA,MAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAYM,OAZN,GAYM,CAXJ,AAAA,EAAA,OAAA,EAAiE,SAAA;KAA1D,KAAI;KAAgB,OAAM;IAAU,GAAA,kBAAc,EAAA,GACzD,EASM,OATN,GASM,CARJ,EAOE,SAAA;KANA,MAAK;KACL,IAAG;KACH,OAAM;KACN,aAAY;KACZ,UAAA;KACC,OAAO,EAAA,MAAM;;IAOxB,EAWM,OAXN,GAWM,CAVJ,AAAA,EAAA,OAAA,EAAsD,SAAA;KAA/C,KAAI;KAAe,OAAM;IAAU,GAAA,QAAI,EAAA,GAC9C,EAQM,OARN,GAQM,CAPJ,EAMY,YAAA;KALV,IAAG;KACH,OAAM;KACN,aAAY;KACX,OAAO,EAAA,MAAM;KACb,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,MAAM,QAAQ,EAAO,OAAO;;IAK1C,EAWM,OAXN,GAWM,CAVJ,AAAA,EAAA,OAAA,EAAqD,SAAA;KAA9C,KAAI;KAAc,OAAM;IAAU,GAAA,QAAI,EAAA,GAC7C,EAQM,OARN,GAQM,CAPJ,EAMY,YAAA;KALV,IAAG;KACH,OAAM;KACN,aAAY;KACX,OAAO,EAAA,MAAM;KACb,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,MAAM,OAAO,EAAO,OAAO;;IAKzC,EAQM,OARN,GAQM,CAPJ,AAAA,EAAA,OAAA,EAAkC,SAAA,EAA3B,OAAM,UAAS,GAAC,OAAG,EAAA,GAC1B,EAKE,OAAA;KAJA,KAAI;KACH,KAAK,EAAA,YAAW;KAChB,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,MAAM,QAAQ,EAAO,OAAO;KACpC,OAAM;;IAKF,EAAA,MAAM,YAAO,0CADrB,EAAA,GAAA,EAKM,OALN,GAGC,0BAED,KAAA,EAAA,IAAA,EAAA;IAEA,EAGM,OAHN,GAGM,CAFJ,EAAmE,GAAA;KAA3D,MAAK;KAAS,OAAM;KAAiB,SAAO,EAAA;IACpD,GAAA,MAAA,GAAA,CAAA,SAAA,CAAA,GAAA,EAA+D,GAAA;KAAvD,MAAK;KAAQ,OAAM;KAAe,SAAO,EAAA;;;GAIrD,EAQS,UAAA,EARA,IAAI,EAAA,iBAAgB,GAAA,CAC3B,EAMoB,oBAAA;IALjB,aAAa,EAAA;IACb,QAAQ,EAAA;IACR,OAAO,EAAA;IACP,aAAa,EAAA;IACd,YAAW;;GAGf,EASS,UAAA,EATA,IAAI,EAAA,mBAAkB,GAAA,CAC7B,EAOuB,uBAAA;IANpB,IAAI,EAAA;IACL,UAAS;IACR,QAAQ,EAAA;IACT,OAAM;IACN,WAAU;IACV,OAAA,EAAA,QAAA,OAAA;;;;CAM8B,IAAA,KAAA,GAAA,EAAA,EAAA,eAApB,GAAW;EAAwB,MAAA;EAEnD,IAAA,QAEO,CAFP,EAEO,EAAA,QAFM,GAAI,EAAG,KAAK,EAAA,IAAG,SAErB,EADL,EAAA,GAAA,EAAwC,EAAxB,CAAS,GAAA,EAAG,KAAK,EAAA,IAAG,GAAA,MAAA,GAAA,CAAA,KAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"admins-components173.js","names":[],"sources":["../src/vueformelements/ArticlePickerElement.vue"],"sourcesContent":["<!-- eslint-disable-next-line vue/block-lang -->\n<script>\nimport { defineElement } from '@vueform/vueform'\nimport { ref, onUnmounted, onMounted } from 'vue'\nimport { apeConfig } from '@/vueformelements/config/ArticlePickerElementConfig'\nimport { ipeConfig } from '@/vueformelements/config/ImagePickerElementConfig'\nimport Button from '@/components/Button.vue'\nimport Modal from '@/components/Modal.vue'\n\nexport default defineElement({\n components: { Button, Modal },\n name: 'ArticlePickerElement',\n\n setup(props, context) {\n const environment = ipeConfig.environment\n const articleEditorUrl = ipeConfig.articleEditorUrl\n const searchImageWidgetUrl = ipeConfig.searchImageWidgetUrl\n const imageBaseUrl = ipeConfig.imageBaseUrl\n const imageViewId = ipeConfig.imageViewId\n\n const searchArticleApiUrl = apeConfig.searchArticleApiUrl\n const searchArticleWidgetUrl = apeConfig.searchArticleWidgetUrl\n const showIds = apeConfig.showIds\n const articleModalActionsPosition = apeConfig.articleModalActionsPosition ?? 'footer'\n\n const imageCausationId = ref(new Date().getTime().toString() + 'image')\n const articleCausationId = ref(new Date().getTime().toString() + 'article')\n\n const isImageModalOpen = ref(false)\n const isArticleModalOpen = ref(false)\n\n const EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\n const { value } = context.element\n\n const selectImage = (event) => {\n event.preventDefault()\n isImageModalOpen.value = true\n }\n\n const selectArticle = () => {\n isArticleModalOpen.value = true\n }\n\n const closeImageModal = () => {\n isImageModalOpen.value = false\n }\n\n const closeArticleModal = () => {\n isArticleModalOpen.value = false\n }\n\n const resetImage = (event) => {\n event.preventDefault()\n value.value.imageId = EMPTYGUID\n }\n\n const addScript = (url) => {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n\n const getImageUrl = () => {\n return `${imageBaseUrl}/${imageViewId}/${value.value.imageId}.img`\n }\n\n addScript(searchImageWidgetUrl)\n addScript(searchArticleWidgetUrl)\n\n // Image picker posts `image-selected` (custom event from the\n // hvg-search-image widget). Article picker posts\n // `search_posts_selected` from its own `fireSelections`.\n const imageSelectedHandler = (e) => {\n if (e.detail.causationid == imageCausationId.value) {\n isImageModalOpen.value = false\n value.value.imageId = e.detail.image.id\n }\n }\n\n const postSelectedHandler = (e) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n value.value.id = e.detail.posts[0].id\n value.value.siteId = e.detail.posts[0].siteId\n value.value.title = e.detail.posts[0].title\n value.value.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n value.value.imageId = imageId || EMPTYGUID\n }\n closeArticleModal()\n }\n }\n\n onUnmounted(() => {\n window.removeEventListener('image-selected', imageSelectedHandler, false)\n window.removeEventListener('search_posts_selected', postSelectedHandler, false)\n })\n\n onMounted(() => {\n window.addEventListener('image-selected', imageSelectedHandler)\n window.addEventListener('search_posts_selected', postSelectedHandler)\n })\n\n return {\n imageViewId,\n imageBaseUrl,\n imageCausationId,\n articleCausationId,\n searchImageWidgetUrl,\n environment,\n articleEditorUrl,\n searchArticleApiUrl,\n articleModalActionsPosition,\n selectImage,\n selectArticle,\n closeImageModal,\n closeArticleModal,\n isImageModalOpen,\n isArticleModalOpen,\n resetImage,\n addScript,\n value,\n getImageUrl,\n showIds,\n }\n },\n})\n</script>\n\n<template>\n <ElementLayout>\n <template v-if=\"value\" #element>\n <div class=\"ac-component\">\n <div class=\"article-picker-container\">\n <div class=\"article-picker-section\">\n <Button type=\"normal\" label=\"Cikk Választás\" @click=\"selectArticle\" />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"article-picker-ids\">\n <div class=\"article-picker-id-field\">\n <label for=\"articleId\" class=\"c-label\">Cikk azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleId\"\n class=\"c-input\"\n placeholder=\"Cikk azonosító\"\n disabled\n :value=\"value.id\"\n />\n </div>\n </div>\n <div class=\"article-picker-id-field\">\n <label for=\"articleSiteId\" class=\"c-label\">Site azonosító</label>\n <div class=\"c-input-row\">\n <input\n type=\"text\"\n id=\"articleSiteId\"\n class=\"c-input\"\n placeholder=\"Site azonosító\"\n disabled\n :value=\"value.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div class=\"article-picker-section\">\n <label for=\"articleTitle\" class=\"c-label\">Címe</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Címe\"\n :value=\"value.title\"\n @input=\"value.title = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Lead\"\n :value=\"value.lead\"\n @input=\"value.lead = $event.target.value\"\n ></textarea>\n </div>\n </div>\n\n <div class=\"article-picker-section\">\n <label class=\"c-label\">Kép</label>\n <img\n alt=\"\"\n :src=\"getImageUrl()\"\n @input=\"value.image = $event.target.value\"\n class=\"article-picker-image\"\n />\n </div>\n\n <div\n v-if=\"value.imageId === '00000000-0000-0000-0000-000000000000'\"\n class=\"article-picker-no-image\"\n >\n Nincs kép kiválasztva!\n </div>\n\n <div class=\"article-picker-buttons\">\n <Button type=\"normal\" label=\"Kép Választás\" @click=\"selectImage\" />\n <Button type=\"error\" label=\"Eltávolítás\" @click=\"resetImage\" />\n </div>\n </div>\n\n <Modal\n v-if=\"isImageModalOpen\"\n title=\"Kép választás\"\n modal-class=\"article-picker-image-modal\"\n @close=\"closeImageModal\"\n >\n <hvg-search-image\n :causationid=\"imageCausationId\"\n :viewid=\"imageViewId\"\n :aeurl=\"articleEditorUrl\"\n :environment=\"environment\"\n selectonly=\"true\"\n ></hvg-search-image>\n </Modal>\n\n <!--\n The widget owns its own modal (dialog + header/footer actions)\n when `modal` is set, so no outer Modal wrapper is needed here -\n the widget renders as an opaque custom element and can't expose\n internal refs/slots to an outer Modal component. Selecting \"Kész\"\n fires the `search_posts_selected` window event consumed by\n `postSelectedHandler` above; `close` is emitted for both confirm\n and cancel/backdrop-dismiss.\n -->\n <search-posts-widget\n v-if=\"isArticleModalOpen\"\n :id=\"articleCausationId\"\n selector\n modal\n modal-title=\"Cikk választása\"\n :actions-position=\"articleModalActionsPosition\"\n :apiurl=\"searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n @close=\"closeArticleModal\"\n ></search-posts-widget>\n </div>\n </template>\n\n <template v-for=\"(component, slot) in elementSlots\" #[slot]>\n <!-- eslint-disable-next-line vue/valid-attribute-name -->\n <slot :name=\"slot\" :el$=\"el$\">\n <component :is=\"component\" :el$=\"el$\" />\n </slot>\n </template>\n </ElementLayout>\n</template>\n\n<style scoped>\n.article-picker-container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.article-picker-section {\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-ids {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-id-field {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0.375rem;\n}\n\n.article-picker-image {\n height: 200px;\n max-width: 100%;\n border-radius: var(--ac-field-border-radius);\n object-fit: cover;\n}\n\n.article-picker-no-image {\n padding: var(--ac-input-padding);\n color: var(--neutral-500);\n font-size: var(--ac-field-font-size);\n}\n\n.article-picker-buttons {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.article-picker-image-modal {\n width: 90vw;\n max-width: 1200px;\n height: 80vh;\n}\n\n.article-picker-image-modal :deep(.c-modal-body) {\n padding: 0;\n}\n</style>\n"],"mappings":"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"}
@@ -1,49 +1,52 @@
1
- import { Teleport as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, onMounted as s, onUnmounted as c, openBlock as l, renderSlot as u, toDisplayString as d } from "vue";
1
+ import { Teleport as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, onMounted as s, onUnmounted as c, openBlock as l, ref as u, renderSlot as d, toDisplayString as f } from "vue";
2
2
  //#region src/components/Modal.vue?vue&type=script&setup=true&lang.ts
3
- var f = { class: "ac-component" }, p = ["aria-label"], m = {
3
+ var p = { class: "ac-component" }, m = ["aria-label"], h = {
4
4
  key: 0,
5
5
  class: "c-modal-header"
6
- }, h = { class: "c-modal-title" }, g = { class: "c-modal-body c-scroll" }, _ = {
6
+ }, g = { class: "c-modal-header__content" }, _ = { class: "c-modal-title" }, v = { class: "c-modal-body c-scroll" }, y = {
7
7
  key: 1,
8
8
  class: "c-modal-footer"
9
- }, v = /*@__PURE__*/ a({
9
+ }, b = /*@__PURE__*/ a({
10
10
  __name: "Modal",
11
11
  props: {
12
12
  title: {},
13
13
  modalClass: {}
14
14
  },
15
15
  emits: ["close"],
16
- setup(a, { emit: v }) {
17
- let y = v;
18
- function b(e) {
19
- e.target === e.currentTarget && y("close");
16
+ setup(a, { emit: b }) {
17
+ let x = b, S = u(null);
18
+ function C(e) {
19
+ e.target === S.value && x("close");
20
20
  }
21
- function x(e) {
22
- e.key === "Escape" && y("close");
21
+ function w(e) {
22
+ e.target instanceof Node && !S.value?.contains(e.target) && x("close");
23
+ }
24
+ function T(e) {
25
+ e.preventDefault(), x("close");
23
26
  }
24
27
  return s(() => {
25
- document.addEventListener("keydown", x);
28
+ S.value?.showModal(), document.addEventListener("mousedown", w);
26
29
  }), c(() => {
27
- document.removeEventListener("keydown", x);
28
- }), (s, c) => (l(), t(e, { to: "body" }, [i("div", f, [i("div", {
29
- class: "c-modal-backdrop",
30
- onMousedown: b
31
- }, [i("div", {
30
+ document.removeEventListener("mousedown", w);
31
+ }), (s, c) => (l(), t(e, { to: "body" }, [i("div", p, [i("dialog", {
32
+ ref_key: "dialogElement",
33
+ ref: S,
32
34
  class: o(["c-modal", a.modalClass]),
33
- role: "dialog",
34
35
  "aria-modal": "true",
35
- "aria-label": a.title
36
+ "aria-label": a.title,
37
+ onMousedown: C,
38
+ onCancel: T
36
39
  }, [
37
- a.title ? (l(), r("div", m, [i("h3", h, d(a.title), 1), i("button", {
40
+ s.$slots.header || a.title ? (l(), r("header", h, [i("div", g, [d(s.$slots, "header", {}, () => [i("h3", _, f(a.title), 1)])]), i("button", {
38
41
  type: "button",
39
42
  class: "c-modal-close",
40
43
  "aria-label": "Bezárás",
41
- onClick: c[0] ||= (e) => y("close")
44
+ onClick: c[0] ||= (e) => x("close")
42
45
  }, [...c[1] ||= [i("i", { class: "fa-solid fa-xmark" }, null, -1)]])])) : n("", !0),
43
- i("div", g, [u(s.$slots, "default")]),
44
- s.$slots.footer ? (l(), r("div", _, [u(s.$slots, "footer")])) : n("", !0)
45
- ], 10, p)], 32)])]));
46
+ i("div", v, [d(s.$slots, "default")]),
47
+ s.$slots.footer ? (l(), r("footer", y, [d(s.$slots, "footer")])) : n("", !0)
48
+ ], 42, m)])]));
46
49
  }
47
50
  });
48
51
  //#endregion
49
- export { v as default };
52
+ export { b as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components38.js","names":["$slots"],"sources":["../src/components/Modal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ModalProps {\n title?: string\n modalClass?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from 'vue'\n\ndefineProps<ModalProps>()\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nfunction onBackdropClick(e: MouseEvent) {\n if (e.target === e.currentTarget) {\n emit('close')\n }\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n emit('close')\n }\n}\n\nonMounted(() => {\n document.addEventListener('keydown', onKeydown)\n})\n\nonUnmounted(() => {\n document.removeEventListener('keydown', onKeydown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div class=\"c-modal-backdrop\" @mousedown=\"onBackdropClick\">\n <div\n class=\"c-modal\"\n :class=\"modalClass\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-label=\"title\"\n >\n <div class=\"c-modal-header\" v-if=\"title\">\n <h3 class=\"c-modal-title\">{{ title }}</h3>\n <button type=\"button\" class=\"c-modal-close\" aria-label=\"Bezárás\" @click=\"emit('close')\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"c-modal-body c-scroll\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"c-modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/modal.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;;;;EAYA,IAAM,IAAO;EAIb,SAAS,EAAgB,GAAe;GACtC,AAAI,EAAE,WAAW,EAAE,iBACjB,EAAK,OAAO;EAEhB;EAEA,SAAS,EAAU,GAAkB;GACnC,AAAI,EAAE,QAAQ,YACZ,EAAK,OAAO;EAEhB;SAEA,QAAgB;GACd,SAAS,iBAAiB,WAAW,CAAS;EAChD,CAAC,GAED,QAAkB;GAChB,SAAS,oBAAoB,WAAW,CAAS;EACnD,CAAC,cAIC,EAAA,GAAA,EAyBW,GAAA,EAzBD,IAAG,OAAM,GAAA,CACjB,EAuBM,OAvBN,GAuBM,CAtBJ,EAqBM,OAAA;GArBD,OAAM;GAAoB,aAAW;EACxC,GAAA,CAAA,EAmBM,OAAA;GAlBJ,OAAK,EAAA,CAAC,WACE,EAAA,UAAU,CAAA;GAClB,MAAK;GACL,cAAW;GACV,cAAY,EAAA;;GAEqB,EAAA,SAAlC,EAAA,GAAA,EAKM,OALN,GAKM,CAJJ,EAA0C,MAA1C,GAA0C,EAAb,EAAA,KAAK,GAAA,CAAA,GAClC,EAES,UAAA;IAFD,MAAK;IAAS,OAAM;IAAgB,cAAW;IAAW,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,OAAA;GAC3E,GAAA,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAiC,KAAA,EAA9B,OAAM,oBAAmB,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAGhC,EAEM,OAFN,GAEM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;GAECA,EAAAA,OAAO,UAAlB,EAAA,GAAA,EAEM,OAFN,GAEM,CADJ,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
1
+ {"version":3,"file":"admins-components38.js","names":["$slots"],"sources":["../src/components/Modal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ModalProps {\n title?: string\n modalClass?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\ndefineProps<ModalProps>()\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst dialogElement = ref<HTMLDialogElement | null>(null)\n\nfunction onBackdropClick(e: MouseEvent) {\n if (e.target === dialogElement.value) {\n emit('close')\n }\n}\n\nfunction onDocumentMousedown(e: MouseEvent) {\n if (e.target instanceof Node && !dialogElement.value?.contains(e.target)) {\n emit('close')\n }\n}\n\nfunction onCancel(e: Event) {\n e.preventDefault()\n emit('close')\n}\n\nonMounted(() => {\n dialogElement.value?.showModal()\n document.addEventListener('mousedown', onDocumentMousedown)\n})\n\nonUnmounted(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <dialog\n ref=\"dialogElement\"\n class=\"c-modal\"\n :class=\"modalClass\"\n aria-modal=\"true\"\n :aria-label=\"title\"\n @mousedown=\"onBackdropClick\"\n @cancel=\"onCancel\"\n >\n <header v-if=\"$slots.header || title\" class=\"c-modal-header\">\n <div class=\"c-modal-header__content\">\n <slot name=\"header\">\n <h3 class=\"c-modal-title\">{{ title }}</h3>\n </slot>\n </div>\n <button type=\"button\" class=\"c-modal-close\" aria-label=\"Bezárás\" @click=\"emit('close')\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </header>\n <div class=\"c-modal-body c-scroll\">\n <slot />\n </div>\n <footer v-if=\"$slots.footer\" class=\"c-modal-footer\">\n <slot name=\"footer\" />\n </footer>\n </dialog>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/modal.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;;;;EAYA,IAAM,IAAO,GAIP,IAAgB,EAA8B,IAAI;EAExD,SAAS,EAAgB,GAAe;GACtC,AAAI,EAAE,WAAW,EAAc,SAC7B,EAAK,OAAO;EAEhB;EAEA,SAAS,EAAoB,GAAe;GAC1C,AAAI,EAAE,kBAAkB,QAAQ,CAAC,EAAc,OAAO,SAAS,EAAE,MAAM,KACrE,EAAK,OAAO;EAEhB;EAEA,SAAS,EAAS,GAAU;GAE1B,AADA,EAAE,eAAe,GACjB,EAAK,OAAO;EACd;SAEA,QAAgB;GAEd,AADA,EAAc,OAAO,UAAU,GAC/B,SAAS,iBAAiB,aAAa,CAAmB;EAC5D,CAAC,GAED,QAAkB;GAChB,SAAS,oBAAoB,aAAa,CAAmB;EAC/D,CAAC,cAIC,EAAA,GAAA,EA6BW,GAAA,EA7BD,IAAG,OAAM,GAAA,CACjB,EA2BM,OA3BN,GA2BM,CA1BJ,EAyBS,UAAA;GAxBH,SAAA;GAAJ,KAAI;GACJ,OAAK,EAAA,CAAC,WACE,EAAA,UAAU,CAAA;GAClB,cAAW;GACV,cAAY,EAAA;GACZ,aAAW;GACH;;GAEKA,EAAAA,OAAO,UAAU,EAAA,SAA/B,EAAA,GAAA,EASS,UATT,GASS,CARP,EAIM,OAJN,GAIM,CAHJ,EAEO,EAAA,QAAA,UAAA,CAAA,SAAA,CADL,EAA0C,MAA1C,GAA0C,EAAb,EAAA,KAAK,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAGtC,EAES,UAAA;IAFD,MAAK;IAAS,OAAM;IAAgB,cAAW;IAAW,SAAK,AAAA,EAAA,QAAA,MAAE,EAAI,OAAA;GAC3E,GAAA,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAiC,KAAA,EAA9B,OAAM,oBAAmB,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAGhC,EAEM,OAFN,GAEM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;GAEIA,EAAAA,OAAO,UAArB,EAAA,GAAA,EAES,UAFT,GAES,CADP,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components40.js","names":[],"sources":["../src/components/Modal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ModalProps {\n title?: string\n modalClass?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted } from 'vue'\n\ndefineProps<ModalProps>()\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nfunction onBackdropClick(e: MouseEvent) {\n if (e.target === e.currentTarget) {\n emit('close')\n }\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n emit('close')\n }\n}\n\nonMounted(() => {\n document.addEventListener('keydown', onKeydown)\n})\n\nonUnmounted(() => {\n document.removeEventListener('keydown', onKeydown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <div class=\"c-modal-backdrop\" @mousedown=\"onBackdropClick\">\n <div\n class=\"c-modal\"\n :class=\"modalClass\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-label=\"title\"\n >\n <div class=\"c-modal-header\" v-if=\"title\">\n <h3 class=\"c-modal-title\">{{ title }}</h3>\n <button type=\"button\" class=\"c-modal-close\" aria-label=\"Bezárás\" @click=\"emit('close')\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n <div class=\"c-modal-body c-scroll\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"c-modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/modal.scss\"></style>\n"],"mappings":""}
1
+ {"version":3,"file":"admins-components40.js","names":[],"sources":["../src/components/Modal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ModalProps {\n title?: string\n modalClass?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\ndefineProps<ModalProps>()\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst dialogElement = ref<HTMLDialogElement | null>(null)\n\nfunction onBackdropClick(e: MouseEvent) {\n if (e.target === dialogElement.value) {\n emit('close')\n }\n}\n\nfunction onDocumentMousedown(e: MouseEvent) {\n if (e.target instanceof Node && !dialogElement.value?.contains(e.target)) {\n emit('close')\n }\n}\n\nfunction onCancel(e: Event) {\n e.preventDefault()\n emit('close')\n}\n\nonMounted(() => {\n dialogElement.value?.showModal()\n document.addEventListener('mousedown', onDocumentMousedown)\n})\n\nonUnmounted(() => {\n document.removeEventListener('mousedown', onDocumentMousedown)\n})\n</script>\n\n<template>\n <Teleport to=\"body\">\n <div class=\"ac-component\">\n <dialog\n ref=\"dialogElement\"\n class=\"c-modal\"\n :class=\"modalClass\"\n aria-modal=\"true\"\n :aria-label=\"title\"\n @mousedown=\"onBackdropClick\"\n @cancel=\"onCancel\"\n >\n <header v-if=\"$slots.header || title\" class=\"c-modal-header\">\n <div class=\"c-modal-header__content\">\n <slot name=\"header\">\n <h3 class=\"c-modal-title\">{{ title }}</h3>\n </slot>\n </div>\n <button type=\"button\" class=\"c-modal-close\" aria-label=\"Bezárás\" @click=\"emit('close')\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </header>\n <div class=\"c-modal-body c-scroll\">\n <slot />\n </div>\n <footer v-if=\"$slots.footer\" class=\"c-modal-footer\">\n <slot name=\"footer\" />\n </footer>\n </dialog>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/modal.scss\"></style>\n"],"mappings":""}