admins-components 9.0.27 → 9.0.29

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 (322) hide show
  1. package/README.md +4 -22
  2. package/dist/admins-components.js +53 -52
  3. package/dist/admins-components100.js +79 -249
  4. package/dist/admins-components100.js.map +1 -1
  5. package/dist/admins-components101.js +112 -26
  6. package/dist/admins-components101.js.map +1 -1
  7. package/dist/admins-components102.js +45 -26
  8. package/dist/admins-components102.js.map +1 -1
  9. package/dist/admins-components103.js +102 -168
  10. package/dist/admins-components103.js.map +1 -1
  11. package/dist/admins-components104.js +17 -65
  12. package/dist/admins-components104.js.map +1 -1
  13. package/dist/admins-components105.js +6 -66
  14. package/dist/admins-components105.js.map +1 -1
  15. package/dist/admins-components106.js +247 -25
  16. package/dist/admins-components106.js.map +1 -1
  17. package/dist/admins-components107.js +27 -16
  18. package/dist/admins-components107.js.map +1 -1
  19. package/dist/admins-components108.js +26 -25
  20. package/dist/admins-components108.js.map +1 -1
  21. package/dist/admins-components109.js +171 -8
  22. package/dist/admins-components109.js.map +1 -1
  23. package/dist/admins-components110.js +67 -3
  24. package/dist/admins-components110.js.map +1 -1
  25. package/dist/admins-components111.js +67 -3
  26. package/dist/admins-components111.js.map +1 -1
  27. package/dist/admins-components112.js +30 -3
  28. package/dist/admins-components112.js.map +1 -1
  29. package/dist/admins-components113.js +15 -20
  30. package/dist/admins-components113.js.map +1 -1
  31. package/dist/admins-components114.js +27 -14
  32. package/dist/admins-components114.js.map +1 -1
  33. package/dist/admins-components115.js +8 -7
  34. package/dist/admins-components115.js.map +1 -1
  35. package/dist/admins-components116.js +4 -13
  36. package/dist/admins-components116.js.map +1 -1
  37. package/dist/admins-components117.js +3 -26
  38. package/dist/admins-components117.js.map +1 -1
  39. package/dist/admins-components118.js +3 -83
  40. package/dist/admins-components118.js.map +1 -1
  41. package/dist/admins-components119.js +19 -9
  42. package/dist/admins-components119.js.map +1 -1
  43. package/dist/admins-components120.js +14 -5
  44. package/dist/admins-components120.js.map +1 -1
  45. package/dist/admins-components121.js +7 -7
  46. package/dist/admins-components121.js.map +1 -1
  47. package/dist/admins-components122.js +12 -6
  48. package/dist/admins-components122.js.map +1 -1
  49. package/dist/admins-components123.js +25 -5
  50. package/dist/admins-components123.js.map +1 -1
  51. package/dist/admins-components124.js +82 -14
  52. package/dist/admins-components124.js.map +1 -1
  53. package/dist/admins-components125.js +10 -12
  54. package/dist/admins-components125.js.map +1 -1
  55. package/dist/admins-components126.js +5 -30
  56. package/dist/admins-components126.js.map +1 -1
  57. package/dist/admins-components127.js +7 -3
  58. package/dist/admins-components127.js.map +1 -1
  59. package/dist/admins-components128.js +7 -29
  60. package/dist/admins-components128.js.map +1 -1
  61. package/dist/admins-components129.js +3 -2
  62. package/dist/admins-components129.js.map +1 -1
  63. package/dist/admins-components130.js +12 -2
  64. package/dist/admins-components130.js.map +1 -1
  65. package/dist/admins-components131.js +12 -7
  66. package/dist/admins-components131.js.map +1 -1
  67. package/dist/admins-components132.js +30 -74
  68. package/dist/admins-components132.js.map +1 -1
  69. package/dist/admins-components133.js +4 -29
  70. package/dist/admins-components133.js.map +1 -1
  71. package/dist/admins-components134.js +27 -57
  72. package/dist/admins-components134.js.map +1 -1
  73. package/dist/admins-components135.js +5 -24
  74. package/dist/admins-components135.js.map +1 -1
  75. package/dist/admins-components136.js +5 -50
  76. package/dist/admins-components136.js.map +1 -1
  77. package/dist/admins-components137.js +7 -30
  78. package/dist/admins-components137.js.map +1 -1
  79. package/dist/admins-components138.js +74 -3
  80. package/dist/admins-components138.js.map +1 -1
  81. package/dist/admins-components139.js +27 -177
  82. package/dist/admins-components139.js.map +1 -1
  83. package/dist/admins-components140.js +58 -45
  84. package/dist/admins-components140.js.map +1 -1
  85. package/dist/admins-components141.js +23 -36
  86. package/dist/admins-components141.js.map +1 -1
  87. package/dist/admins-components142.js +46 -42
  88. package/dist/admins-components142.js.map +1 -1
  89. package/dist/admins-components143.js +28 -138
  90. package/dist/admins-components143.js.map +1 -1
  91. package/dist/admins-components144.js +3 -58
  92. package/dist/admins-components144.js.map +1 -1
  93. package/dist/admins-components145.js +178 -6
  94. package/dist/admins-components145.js.map +1 -1
  95. package/dist/admins-components146.js +45 -5
  96. package/dist/admins-components146.js.map +1 -1
  97. package/dist/admins-components147.js +37 -76
  98. package/dist/admins-components147.js.map +1 -1
  99. package/dist/admins-components148.js +45 -28
  100. package/dist/admins-components148.js.map +1 -1
  101. package/dist/admins-components149.js +129 -1919
  102. package/dist/admins-components149.js.map +1 -1
  103. package/dist/admins-components15.js +8 -42
  104. package/dist/admins-components15.js.map +1 -1
  105. package/dist/admins-components150.js +54 -24807
  106. package/dist/admins-components150.js.map +1 -1
  107. package/dist/admins-components151.js +6 -8
  108. package/dist/admins-components151.js.map +1 -1
  109. package/dist/admins-components152.js +6 -7
  110. package/dist/admins-components152.js.map +1 -0
  111. package/dist/admins-components153.js +76 -142
  112. package/dist/admins-components153.js.map +1 -1
  113. package/dist/admins-components154.js +28 -8
  114. package/dist/admins-components154.js.map +1 -1
  115. package/dist/admins-components155.js +1930 -8
  116. package/dist/admins-components155.js.map +1 -1
  117. package/dist/admins-components156.js +24812 -0
  118. package/dist/admins-components156.js.map +1 -0
  119. package/dist/admins-components157.js +8 -167
  120. package/dist/admins-components157.js.map +1 -1
  121. package/dist/admins-components158.js +7 -51
  122. package/dist/admins-components159.js +141 -8
  123. package/dist/admins-components159.js.map +1 -1
  124. package/dist/admins-components16.js +89 -4
  125. package/dist/admins-components16.js.map +1 -1
  126. package/dist/admins-components160.js +8 -49
  127. package/dist/admins-components160.js.map +1 -1
  128. package/dist/admins-components161.js +9 -6
  129. package/dist/admins-components161.js.map +1 -1
  130. package/dist/admins-components163.js +160 -50
  131. package/dist/admins-components163.js.map +1 -1
  132. package/dist/admins-components164.js +34 -42
  133. package/dist/admins-components164.js.map +1 -1
  134. package/dist/admins-components165.js +3 -3
  135. package/dist/admins-components165.js.map +1 -1
  136. package/dist/admins-components166.js +18 -20
  137. package/dist/admins-components166.js.map +1 -1
  138. package/dist/admins-components167.js +6 -9
  139. package/dist/admins-components167.js.map +1 -1
  140. package/dist/{admins-components162.js → admins-components168.js} +3 -3
  141. package/dist/{admins-components162.js.map → admins-components168.js.map} +1 -1
  142. package/dist/admins-components169.js +51 -51
  143. package/dist/admins-components169.js.map +1 -1
  144. package/dist/admins-components17.js +4 -94
  145. package/dist/admins-components17.js.map +1 -1
  146. package/dist/admins-components170.js +60 -0
  147. package/dist/admins-components170.js.map +1 -0
  148. package/dist/admins-components171.js +10 -0
  149. package/dist/admins-components171.js.map +1 -0
  150. package/dist/admins-components172.js +53 -0
  151. package/dist/admins-components172.js.map +1 -0
  152. package/dist/admins-components173.js +10 -0
  153. package/dist/admins-components173.js.map +1 -0
  154. package/dist/admins-components175.js +59 -0
  155. package/dist/admins-components175.js.map +1 -0
  156. package/dist/admins-components18.js +37 -239
  157. package/dist/admins-components18.js.map +1 -1
  158. package/dist/admins-components19.js +1 -2
  159. package/dist/admins-components19.js.map +1 -1
  160. package/dist/admins-components20.js +91 -179
  161. package/dist/admins-components20.js.map +1 -1
  162. package/dist/admins-components21.js +245 -0
  163. package/dist/admins-components21.js.map +1 -0
  164. package/dist/admins-components22.js +3 -4
  165. package/dist/admins-components22.js.map +1 -1
  166. package/dist/admins-components23.js +172 -68
  167. package/dist/admins-components23.js.map +1 -1
  168. package/dist/admins-components25.js +6 -58
  169. package/dist/admins-components25.js.map +1 -1
  170. package/dist/admins-components26.js +79 -0
  171. package/dist/{admins-components24.js.map → admins-components26.js.map} +1 -1
  172. package/dist/admins-components27.js +3 -3
  173. package/dist/admins-components27.js.map +1 -1
  174. package/dist/admins-components28.js +50 -64
  175. package/dist/admins-components28.js.map +1 -1
  176. package/dist/admins-components29.js +75 -0
  177. package/dist/admins-components29.js.map +1 -0
  178. package/dist/admins-components31.js +6 -39
  179. package/dist/admins-components31.js.map +1 -1
  180. package/dist/admins-components32.js +66 -0
  181. package/dist/admins-components32.js.map +1 -0
  182. package/dist/admins-components34.js +6 -36
  183. package/dist/admins-components34.js.map +1 -1
  184. package/dist/admins-components35.js +39 -4
  185. package/dist/admins-components35.js.map +1 -1
  186. package/dist/{admins-components33.js → admins-components37.js} +1 -1
  187. package/dist/{admins-components33.js.map → admins-components37.js.map} +1 -1
  188. package/dist/admins-components38.js +36 -6
  189. package/dist/admins-components38.js.map +1 -1
  190. package/dist/admins-components39.js +4 -146
  191. package/dist/admins-components39.js.map +1 -1
  192. package/dist/{admins-components36.js.map → admins-components40.js.map} +1 -1
  193. package/dist/admins-components42.js +6 -124
  194. package/dist/admins-components42.js.map +1 -1
  195. package/dist/admins-components43.js +146 -4
  196. package/dist/admins-components43.js.map +1 -1
  197. package/dist/admins-components45.js +4 -2
  198. package/dist/admins-components45.js.map +1 -1
  199. package/dist/admins-components46.js +120 -15
  200. package/dist/admins-components46.js.map +1 -1
  201. package/dist/admins-components47.js +5 -0
  202. package/dist/admins-components47.js.map +1 -0
  203. package/dist/admins-components48.js +179 -6
  204. package/dist/admins-components48.js.map +1 -1
  205. package/dist/admins-components49.js +4 -54
  206. package/dist/admins-components49.js.map +1 -1
  207. package/dist/admins-components50.js +15 -89
  208. package/dist/admins-components50.js.map +1 -1
  209. package/dist/admins-components52.js +2 -2
  210. package/dist/admins-components52.js.map +1 -1
  211. package/dist/admins-components53.js +52 -23
  212. package/dist/admins-components53.js.map +1 -1
  213. package/dist/admins-components54.js +93 -9
  214. package/dist/admins-components54.js.map +1 -1
  215. package/dist/admins-components56.js +6 -73
  216. package/dist/admins-components56.js.map +1 -1
  217. package/dist/admins-components57.js +24 -65
  218. package/dist/admins-components57.js.map +1 -1
  219. package/dist/admins-components58.js +9 -4
  220. package/dist/admins-components58.js.map +1 -1
  221. package/dist/admins-components59.js +19 -138
  222. package/dist/admins-components59.js.map +1 -1
  223. package/dist/admins-components60.js +74 -0
  224. package/dist/admins-components60.js.map +1 -0
  225. package/dist/admins-components61.js +66 -7
  226. package/dist/admins-components61.js.map +1 -1
  227. package/dist/admins-components62.js +4 -170
  228. package/dist/admins-components62.js.map +1 -1
  229. package/dist/admins-components63.js +140 -0
  230. package/dist/admins-components63.js.map +1 -0
  231. package/dist/admins-components65.js +7 -7
  232. package/dist/admins-components65.js.map +1 -1
  233. package/dist/admins-components66.js +155 -259
  234. package/dist/admins-components66.js.map +1 -1
  235. package/dist/admins-components68.js +3 -2
  236. package/dist/admins-components68.js.map +1 -1
  237. package/dist/admins-components69.js +6 -119
  238. package/dist/admins-components69.js.map +1 -1
  239. package/dist/admins-components70.js +280 -0
  240. package/dist/admins-components70.js.map +1 -0
  241. package/dist/admins-components72.js +6 -59
  242. package/dist/admins-components72.js.map +1 -1
  243. package/dist/admins-components73.js +110 -207
  244. package/dist/admins-components73.js.map +1 -1
  245. package/dist/admins-components75.js +2 -2
  246. package/dist/admins-components75.js.map +1 -1
  247. package/dist/admins-components76.js +58 -7
  248. package/dist/admins-components76.js.map +1 -1
  249. package/dist/admins-components77.js +220 -51
  250. package/dist/admins-components77.js.map +1 -1
  251. package/dist/admins-components79.js +7 -0
  252. package/dist/admins-components79.js.map +1 -0
  253. package/dist/admins-components80.js +52 -6
  254. package/dist/admins-components80.js.map +1 -1
  255. package/dist/admins-components81.js +246 -32
  256. package/dist/admins-components81.js.map +1 -1
  257. package/dist/admins-components83.js +2 -2
  258. package/dist/admins-components83.js.map +1 -1
  259. package/dist/admins-components84.js +31 -192
  260. package/dist/admins-components84.js.map +1 -1
  261. package/dist/admins-components86.js +2 -2
  262. package/dist/admins-components86.js.map +1 -1
  263. package/dist/admins-components87.js +195 -184
  264. package/dist/admins-components87.js.map +1 -1
  265. package/dist/admins-components89.js +2 -2
  266. package/dist/admins-components89.js.map +1 -1
  267. package/dist/admins-components90.js +16 -3
  268. package/dist/admins-components90.js.map +1 -1
  269. package/dist/admins-components91.js +77 -16
  270. package/dist/admins-components91.js.map +1 -1
  271. package/dist/admins-components93.js +6 -52
  272. package/dist/admins-components93.js.map +1 -1
  273. package/dist/admins-components94.js +195 -81
  274. package/dist/admins-components94.js.map +1 -1
  275. package/dist/admins-components96.js +6 -47
  276. package/dist/admins-components96.js.map +1 -1
  277. package/dist/admins-components97.js +3 -106
  278. package/dist/admins-components97.js.map +1 -1
  279. package/dist/admins-components98.js +3 -20
  280. package/dist/admins-components98.js.map +1 -1
  281. package/dist/admins-components99.js +51 -6
  282. package/dist/admins-components99.js.map +1 -1
  283. package/dist/main.css +1 -1
  284. package/dist/main.css.map +1 -1
  285. package/dist/src/components/Checkbox.vue.d.ts +11 -1
  286. package/dist/src/components/TextInput.vue.d.ts +33 -0
  287. package/dist/src/components/data-table/DataFilters.vue.d.ts +7 -14
  288. package/dist/src/components/data-table/DataList.vue.d.ts +10 -7
  289. package/dist/src/components/data-table/DataSearch.vue.d.ts +26 -0
  290. package/dist/src/composables/useSwipeToClose.d.ts +50 -0
  291. package/dist/src/index.d.ts +5 -1
  292. package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  293. package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  294. package/dist/src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  295. package/dist/src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  296. package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  297. package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  298. package/dist/src/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  299. package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  300. package/dist/src/types/data-list.d.ts +0 -1
  301. package/package.json +1 -1
  302. package/dist/admins-components158.js.map +0 -1
  303. package/dist/admins-components24.js +0 -7
  304. package/dist/admins-components30.js +0 -7
  305. package/dist/admins-components30.js.map +0 -1
  306. package/dist/admins-components41.js +0 -7
  307. package/dist/admins-components41.js.map +0 -1
  308. package/dist/admins-components44.js +0 -180
  309. package/dist/admins-components44.js.map +0 -1
  310. package/dist/admins-components55.js +0 -20
  311. package/dist/admins-components55.js.map +0 -1
  312. package/dist/admins-components64.js +0 -8
  313. package/dist/admins-components64.js.map +0 -1
  314. package/dist/admins-components71.js +0 -7
  315. package/dist/admins-components71.js.map +0 -1
  316. package/dist/admins-components78.js +0 -276
  317. package/dist/admins-components78.js.map +0 -1
  318. package/dist/admins-components92.js +0 -4
  319. package/dist/admins-components92.js.map +0 -1
  320. package/dist/admins-components95.js +0 -114
  321. package/dist/admins-components95.js.map +0 -1
  322. /package/dist/{admins-components36.js → admins-components40.js} +0 -0
@@ -1,28 +1,114 @@
1
- import e from "./admins-components100.js";
2
- //#region node_modules/axios/lib/helpers/parseHeaders.js
3
- var t = e.toObjectSet([
4
- "age",
5
- "authorization",
6
- "content-length",
7
- "content-type",
8
- "etag",
9
- "expires",
10
- "from",
11
- "host",
12
- "if-modified-since",
13
- "if-unmodified-since",
14
- "last-modified",
15
- "location",
16
- "max-forwards",
17
- "proxy-authorization",
18
- "referer",
19
- "retry-after",
20
- "user-agent"
21
- ]), n = (e) => {
22
- let n = {}, r, i, a;
23
- return e && e.split("\n").forEach(function(e) {
24
- a = e.indexOf(":"), r = e.substring(0, a).trim().toLowerCase(), i = e.substring(a + 1).trim(), !(!r || n[r] && t[r]) && (r === "set-cookie" ? n[r] ? n[r].push(i) : n[r] = [i] : n[r] = n[r] ? n[r] + ", " + i : i);
25
- }), n;
1
+ import { toast as e } from "./admins-components53.js";
2
+ import { isIpInUrl as t } from "./admins-components97.js";
3
+ import { createNativeFetch as n } from "./admins-components100.js";
4
+ import { ref as r, watch as i } from "vue";
5
+ //#region src/services/services.ts
6
+ var a = class {
7
+ title;
8
+ message;
9
+ errorCode;
10
+ constructor(e, t, n) {
11
+ this.title = e, this.message = t, this.errorCode = n;
12
+ }
13
+ }, o = /* @__PURE__ */ function(e) {
14
+ return e[e.GET = 0] = "GET", e[e.GET_TEXT = 1] = "GET_TEXT", e[e.POST = 2] = "POST", e[e.POST_TEXT = 3] = "POST_TEXT", e[e.PUT = 4] = "PUT", e[e.PUT_TEXT = 5] = "PUT_TEXT", e[e.PATCH = 6] = "PATCH", e[e.DELETE = 7] = "DELETE", e;
15
+ }({}), s = class {
16
+ relativeUrl;
17
+ method;
18
+ fetchMethod;
19
+ constructor(r, i, a, s, c = "application/json", l) {
20
+ this.relativeUrl = i, this.method = a, this.fetchMethod = n({
21
+ baseUrl: r,
22
+ fetchOptions: { credentials: r.indexOf("localhost") != -1 || t(r) ? "omit" : "include" },
23
+ options: {
24
+ immediate: !1,
25
+ beforeFetch: (e) => {
26
+ e.options.headers = {
27
+ ...c ? { "Content-Type": c } : {},
28
+ ...l ?? {}
29
+ };
30
+ },
31
+ onFetchError: (t) => {
32
+ if (t.error?.name === "AbortError") return t;
33
+ let n = "Ismeretlen eredetű hiba!", r = !t.response;
34
+ return t.response && !t.response.ok && (r = !0, n = s.get(t.response.status), n || (n = `${o[a]} for Call: ${i} with Status: ${t.response.status} has no registered errorMessages!`, console.error(n))), r && e.error("Hiba a szerver elérése közben...", n), t;
35
+ },
36
+ afterFetch: (e) => e
37
+ }
38
+ });
39
+ }
26
40
  };
41
+ function c(e, t, n, o) {
42
+ let s = {};
43
+ s.payload = r(t), s.routeParams = r(n), s.queryParams = r(o), s.isFetching = r(!1), s.data = r();
44
+ let c = null, l = null;
45
+ return s.execute = () => {
46
+ c &&= (c(), null), l &&= (l(), null), s.fetch && s.fetch.canAbort.value && s.fetch.abort();
47
+ let t = `${u(e.relativeUrl, s.routeParams.value, s.queryParams.value)}`, n = e.fetchMethod(t), r, o = n.isFetching;
48
+ async function d() {
49
+ if (f() && s.successCallback) s.successCallback(s.data.value);
50
+ else if (!f() && s.errorCallback) {
51
+ console.log(s.fetch.error.value);
52
+ let e;
53
+ if (s.fetch.response.value && s.fetch.response.value.body) {
54
+ let { value: t, done: n } = await s.fetch.response.value.body.getReader().read();
55
+ !n && t && (e = new TextDecoder().decode(t), console.log("Response Body:", e));
56
+ }
57
+ s.errorCallback(new a(s.fetch.error.value, e, s.fetch.statusCode.value ? s.fetch.statusCode.value : void 0));
58
+ }
59
+ s.finallyCallback && s.finallyCallback();
60
+ }
61
+ function f() {
62
+ return s.fetch.statusCode && s.fetch.statusCode.value >= 200 && s.fetch.statusCode.value <= 299;
63
+ }
64
+ switch (e.method) {
65
+ case 0:
66
+ r = n.get().json().data;
67
+ break;
68
+ case 1:
69
+ r = n.get().text().data;
70
+ break;
71
+ case 4:
72
+ r = n.put(s.payload).json().data;
73
+ break;
74
+ case 5:
75
+ r = n.put(s.payload).text().data;
76
+ break;
77
+ case 3:
78
+ r = n.post(s.payload).text().data;
79
+ break;
80
+ case 2:
81
+ r = n.post(s.payload).json().data;
82
+ break;
83
+ case 6:
84
+ r = n.patch(s.payload).json().data;
85
+ break;
86
+ case 7:
87
+ r = n.delete(s.payload).json().data;
88
+ break;
89
+ default: throw Error(`Method: ${e.method} is not implemented!`);
90
+ }
91
+ c = i(r, (e) => {
92
+ s.data.value = e;
93
+ }), l = i(o, (e) => {
94
+ s.isFetching.value = e, e || d();
95
+ }), s.fetch = n, n.execute();
96
+ }, s;
97
+ }
98
+ function l(e) {
99
+ return e ? Object.keys(e).filter((t) => e[t] !== void 0 && e[t] !== null).map((t) => `${encodeURIComponent(t)}=${encodeURIComponent(String(e[t]))}`).join("&") : "";
100
+ }
101
+ function u(e, t, n) {
102
+ let r = e;
103
+ if (r ||= "", r.slice(-1) === "/" && (r = r.substring(0, r.length - 1)), t && Object.keys(t).forEach((e) => {
104
+ if (r.indexOf(`{${e}}`) === -1) throw window.dispatchEvent(new CustomEvent("fetch-error", { detail: new a("Hiba!", `RouteParams: ${e} not found in url: ${r}! Contact the developers!`) })), Error(`RouteParams: ${e} not found in url: ${r}! Contact the developers!`);
105
+ let n = t[e];
106
+ r = r.replace(`{${e}}`, n);
107
+ }), n) {
108
+ let e = l(n);
109
+ e.length > 0 && (r.indexOf("?") === -1 ? r += "?" : !r.endsWith("?") && !r.endsWith("&") && (r += "&"), r += e);
110
+ }
111
+ return r;
112
+ }
27
113
  //#endregion
28
- export { n as default };
114
+ export { s as FetchDetails, a as FetchError, o as Methods, c as initRequest };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components101.js","names":["utils"],"sources":["../node_modules/axios/lib/helpers/parseHeaders.js"],"sourcesContent":["'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n"],"x_google_ignoreList":[0],"mappings":";;AAMA,IAAM,IAAoBA,EAAM,YAAY;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC,GAgBD,KAAgB,MAAe;CAC7B,IAAM,IAAS,CAAC,GACZ,GACA,GACA;CAuBJ,OArBA,KACE,EAAW,MAAM,IAAI,EAAE,QAAQ,SAAgB,GAAM;EACnD,IAAI,EAAK,QAAQ,GAAG,GACpB,IAAM,EAAK,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAC9C,IAAM,EAAK,UAAU,IAAI,CAAC,EAAE,KAAK,GAE7B,GAAC,KAAQ,EAAO,MAAQ,EAAkB,QAI1C,MAAQ,eACN,EAAO,KACT,EAAO,GAAK,KAAK,CAAG,IAEpB,EAAO,KAAO,CAAC,CAAG,IAGpB,EAAO,KAAO,EAAO,KAAO,EAAO,KAAO,OAAO,IAAM;CAE3D,CAAC,GAEI;AACT"}
1
+ {"version":3,"file":"admins-components101.js","names":[],"sources":["../src/services/services.ts"],"sourcesContent":["import { createNativeFetch, type NativeUseFetchReturn } from '@/services/createNativeFetch'\nimport { ref, watch, type Ref } from 'vue'\nimport { isIpInUrl } from '@/utils/ipUtils'\nimport { toast } from '@/services/toast'\n\nexport class FetchError {\n title?: string\n message?: string\n errorCode?: number\n constructor(title?: string, message?: string, errorCode?: number) {\n this.title = title\n this.message = message\n this.errorCode = errorCode\n }\n}\n\nexport interface HttpRequest<TPayload, TRouteParams, TQueryParams, TResponse> {\n data: Ref<TResponse>\n execute: () => any\n isFetching: Ref<boolean>\n fetch: NativeUseFetchReturn\n successCallback?: (response: TResponse) => void\n errorCallback?: (error: FetchError) => void\n finallyCallback?: () => void\n queryParams: Ref<TQueryParams>\n routeParams: Ref<TRouteParams>\n payload: Ref<TPayload>\n}\n\nexport enum Methods {\n GET,\n GET_TEXT,\n POST,\n POST_TEXT,\n PUT,\n PUT_TEXT,\n PATCH,\n DELETE,\n}\n\nexport class FetchDetails {\n public fetchMethod: ReturnType<typeof createNativeFetch>\n\n constructor(\n baseUrl: string,\n public relativeUrl: string,\n public method: Methods,\n errorMessages: Map<number, string>,\n contentType: string | null = 'application/json',\n defaultRequestHeaders?: Record<string, string>,\n ) {\n this.fetchMethod = createNativeFetch({\n baseUrl,\n fetchOptions: {\n credentials: baseUrl.indexOf('localhost') != -1 || isIpInUrl(baseUrl) ? 'omit' : 'include',\n },\n options: {\n immediate: false,\n\n beforeFetch: (ctx) => {\n ctx.options.headers = {\n ...(contentType ? { 'Content-Type': contentType } : {}),\n ...(defaultRequestHeaders ?? {}),\n }\n },\n\n onFetchError: (ctx) => {\n if (ctx.error?.name === 'AbortError') {\n return ctx\n }\n\n let errorMsg: string | undefined = 'Ismeretlen eredetű hiba!'\n let showError = !ctx.response\n\n if (ctx.response && !ctx.response.ok) {\n showError = true\n errorMsg = errorMessages.get(ctx.response.status)\n\n if (!errorMsg) {\n errorMsg = `${Methods[method]} for Call: ${relativeUrl} with Status: ${ctx.response.status} has no registered errorMessages!`\n console.error(errorMsg)\n }\n }\n\n if (showError) {\n toast.error('Hiba a szerver elérése közben...', errorMsg)\n }\n\n return ctx\n },\n\n afterFetch: (ctx) => ctx,\n },\n })\n }\n}\n\nexport function initRequest<TPayload, TRouteParams, TQueryParams, TResponse>(\n fetchDetails: FetchDetails,\n payload: TPayload,\n routeParams: TRouteParams,\n queryParams: TQueryParams,\n) {\n const detail = {} as HttpRequest<TPayload, TRouteParams, TQueryParams, TResponse>\n\n detail.payload = ref(payload) as Ref<TPayload>\n detail.routeParams = ref(routeParams) as Ref<TRouteParams>\n detail.queryParams = ref(queryParams) as Ref<TQueryParams>\n detail.isFetching = ref(false)\n detail.data = ref<TResponse>() as Ref<TResponse>\n\n let stopDataWatch: (() => void) | null = null\n let stopFetchingWatch: (() => void) | null = null\n\n detail.execute = () => {\n if (stopDataWatch) {\n stopDataWatch()\n stopDataWatch = null\n }\n if (stopFetchingWatch) {\n stopFetchingWatch()\n stopFetchingWatch = null\n }\n\n if (detail.fetch && detail.fetch.canAbort.value) {\n detail.fetch.abort()\n }\n\n const fullurl = `${generateUrl(fetchDetails.relativeUrl, detail.routeParams.value, detail.queryParams.value)}`\n\n const fetch = fetchDetails.fetchMethod(fullurl)\n\n let data: Ref<TResponse>\n const isFetching = fetch.isFetching\n\n async function onFetchFinished() {\n if (isSuccessStatusCode() && detail.successCallback) {\n detail.successCallback(detail.data.value)\n } else if (!isSuccessStatusCode() && detail.errorCallback) {\n console.log(detail.fetch.error.value)\n let responseBody: string | undefined = undefined\n if (detail.fetch.response.value && detail.fetch.response.value.body) {\n const reader = detail.fetch.response.value.body.getReader()\n const { value, done } = await reader.read()\n if (!done && value) {\n responseBody = new TextDecoder().decode(value)\n console.log('Response Body:', responseBody)\n }\n }\n detail.errorCallback(\n new FetchError(\n detail.fetch.error.value,\n responseBody,\n detail.fetch.statusCode.value ? detail.fetch.statusCode.value : undefined,\n ),\n )\n }\n\n if (detail.finallyCallback) {\n detail.finallyCallback()\n }\n }\n\n function isSuccessStatusCode() {\n return (\n detail.fetch.statusCode &&\n detail.fetch.statusCode.value! >= 200 &&\n detail.fetch.statusCode.value! <= 299\n )\n }\n\n switch (fetchDetails.method) {\n case Methods.GET:\n data = fetch.get().json().data as Ref<TResponse>\n break\n case Methods.GET_TEXT:\n data = fetch.get().text().data as Ref<TResponse>\n break\n case Methods.PUT:\n data = fetch.put(detail.payload).json().data as Ref<TResponse>\n break\n case Methods.PUT_TEXT:\n data = fetch.put(detail.payload).text().data as Ref<TResponse>\n break\n case Methods.POST_TEXT:\n data = fetch.post(detail.payload).text().data as Ref<TResponse>\n break\n case Methods.POST:\n data = fetch.post(detail.payload).json().data as Ref<TResponse>\n break\n case Methods.PATCH:\n data = fetch.patch(detail.payload).json().data as Ref<TResponse>\n break\n case Methods.DELETE:\n data = fetch.delete(detail.payload).json().data as Ref<TResponse>\n break\n\n default:\n throw new Error(`Method: ${fetchDetails.method} is not implemented!`)\n }\n\n stopDataWatch = watch(data, (v) => {\n detail.data.value = v\n })\n\n stopFetchingWatch = watch(isFetching, (i) => {\n detail.isFetching.value = i\n if (!i) {\n onFetchFinished()\n }\n })\n\n detail.fetch = fetch\n fetch.execute()\n }\n\n return detail\n}\n\nexport function serializeQueryParams(\n queryParams: Record<string, unknown> | null | undefined,\n): string {\n if (!queryParams) {\n return ''\n }\n\n return Object.keys(queryParams)\n .filter((k) => queryParams[k] !== undefined && queryParams[k] !== null)\n .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(String(queryParams[k]))}`)\n .join('&')\n}\n\nfunction generateUrl(relativeUrl: string, routeParams: any, queryParams: any) {\n let res = relativeUrl\n\n if (!res) res = ''\n\n if (res.slice(-1) === '/') {\n res = res.substring(0, res.length - 1)\n }\n\n if (routeParams) {\n Object.keys(routeParams).forEach((k) => {\n if (res.indexOf(`{${k}}`) === -1) {\n window.dispatchEvent(\n new CustomEvent('fetch-error', {\n detail: new FetchError(\n 'Hiba!',\n `RouteParams: ${k} not found in url: ${res}! Contact the developers!`,\n ),\n }),\n )\n\n throw new Error(`RouteParams: ${k} not found in url: ${res}! Contact the developers!`)\n }\n\n const val = routeParams[k]\n\n res = res.replace(`{${k}}`, val)\n })\n }\n\n if (queryParams) {\n const parts = serializeQueryParams(queryParams)\n\n if (parts.length > 0) {\n if (res.indexOf('?') === -1) {\n res += '?'\n } else if (!res.endsWith('?') && !res.endsWith('&')) {\n res += '&'\n }\n\n res += parts\n }\n }\n\n return res\n}\n"],"mappings":"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"}
@@ -1,29 +1,48 @@
1
- import e from "./admins-components100.js";
2
- //#region node_modules/axios/lib/helpers/sanitizeHeaderValue.js
3
- function t(e) {
4
- let t = 0, n = e.length;
5
- for (; t < n;) {
6
- let n = e.charCodeAt(t);
7
- if (n !== 9 && n !== 32) break;
8
- t += 1;
1
+ import { FetchDetails as e, Methods as t, initRequest as n } from "./admins-components101.js";
2
+ //#region src/services/articleEditorService.ts
3
+ function r(e) {
4
+ return new i(e);
5
+ }
6
+ var i = class {
7
+ articleEditorBackendUrl;
8
+ baseUrl;
9
+ searchPosts;
10
+ whoAmI;
11
+ getPostsConfig;
12
+ getImagesConfig;
13
+ getPresenceConfig;
14
+ sites;
15
+ authorsSearch;
16
+ authorsDetailsByIds;
17
+ articleSeriesSearch;
18
+ articleSeriesDetailsByIds;
19
+ columnsSearch;
20
+ columnsDetailsByIds;
21
+ digitalSupplementsSearch;
22
+ digitalSupplementsDetailsByIds;
23
+ partnersSearch;
24
+ partnersDetailsByIds;
25
+ tagsSearch;
26
+ tagsDetailsByIds;
27
+ getRelationsCount;
28
+ errorMap(e) {
29
+ return new Map([[400, `${e} lekérdezése ismeretlen 400 hiba!`], [500, `${e} lekérdezése ismeretlen 500 hiba!`]]);
9
30
  }
10
- for (; n > t;) {
11
- let t = e.charCodeAt(n - 1);
12
- if (t !== 9 && t !== 32) break;
13
- --n;
31
+ postRequest(r, i, a) {
32
+ return n(new e(this.baseUrl, r, t.POST, this.errorMap(a)), i, void 0, void 0);
14
33
  }
15
- return t === 0 && n === e.length ? e : e.slice(t, n);
16
- }
17
- var n = /* @__PURE__ */ RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+", "g"), r = /* @__PURE__ */ RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+", "g");
18
- function i(n, r) {
19
- return e.isArray(n) ? n.map((e) => i(e, r)) : t(String(n).replace(r, ""));
20
- }
21
- var a = (e) => i(e, n), o = (e) => i(e, r);
22
- function s(t) {
23
- let n = Object.create(null);
24
- return e.forEach(t.toJSON(), (e, t) => {
25
- n[t] = o(e);
26
- }), n;
27
- }
34
+ searchRequest(e, t) {
35
+ return this.postRequest(`admin/${e}/search`, {}, t);
36
+ }
37
+ detailsByIdsRequest(e, t) {
38
+ return this.postRequest(`admin/${e}/detailsByIds`, { ids: [] }, t);
39
+ }
40
+ constructor(r) {
41
+ this.articleEditorBackendUrl = r, this.baseUrl = this.articleEditorBackendUrl, this.searchPosts = n(new e(this.baseUrl, "admin/Posts/searchPosts", t.POST, this.errorMap("Cikk lekérdezés")), {}, void 0, void 0), this.whoAmI = n(new e(this.baseUrl, "whoami", t.GET, this.errorMap("Felhasználói adatok lekérdezése")), void 0, void 0, void 0), this.getPostsConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Search Posts Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getImagesConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.getPresenceConfig = n(new e(this.baseUrl, "/admin/Widgets/{name}", t.GET, this.errorMap("Widget konfiguráció lekérése")), void 0, { name: "" }, void 0), this.sites = n(new e(this.baseUrl, "/admin/sites", t.GET, this.errorMap("Site lekérése")), void 0, void 0, void 0), this.authorsSearch = this.searchRequest("Authors", "Szerzők"), this.authorsDetailsByIds = this.detailsByIdsRequest("Authors", "Szerzők"), this.articleSeriesSearch = this.searchRequest("ArticleSeries", "Cikk sorozatok"), this.articleSeriesDetailsByIds = this.detailsByIdsRequest("ArticleSeries", "Cikk sorozatok"), this.partnersSearch = this.searchRequest("Partners", "Partnerek"), this.partnersDetailsByIds = this.detailsByIdsRequest("Partners", "Partnerek"), this.columnsSearch = this.searchRequest("Columns", "Rovatok"), this.columnsDetailsByIds = this.detailsByIdsRequest("Columns", "Rovatok"), this.digitalSupplementsSearch = this.searchRequest("DigitalSupplements", "Digitális kiegészítők"), this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest("DigitalSupplements", "Digitális kiegészítők"), this.tagsSearch = this.searchRequest("Tags", "Címkék"), this.tagsDetailsByIds = this.detailsByIdsRequest("Tags", "Címkék"), this.getRelationsCount = this.postRequest("admin/Relations/byIds", {
42
+ ids: [],
43
+ outputEntityType: ""
44
+ }, "Kapcsolatok számlálása");
45
+ }
46
+ };
28
47
  //#endregion
29
- export { a as sanitizeHeaderValue, s as toByteStringHeaderObject };
48
+ export { r as useArticleEditorService };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components102.js","names":["utils"],"sources":["../node_modules/axios/lib/helpers/sanitizeHeaderValue.js"],"sourcesContent":["'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n"],"x_google_ignoreList":[0],"mappings":";;AAIA,SAAS,EAAa,GAAK;CACzB,IAAI,IAAQ,GACR,IAAM,EAAI;CAEd,OAAO,IAAQ,IAAK;EAClB,IAAM,IAAO,EAAI,WAAW,CAAK;EAEjC,IAAI,MAAS,KAAQ,MAAS,IAC5B;EAGF,KAAS;CACX;CAEA,OAAO,IAAM,IAAO;EAClB,IAAM,IAAO,EAAI,WAAW,IAAM,CAAC;EAEnC,IAAI,MAAS,KAAQ,MAAS,IAC5B;EAGF;CACF;CAEA,OAAO,MAAU,KAAK,MAAQ,EAAI,SAAS,IAAM,EAAI,MAAM,GAAO,CAAG;AACvE;AAIA,IAAM,IAAqC,gBAAI,OAAO,4CAA4C,GAAG,GAE/F,IAAyC,gBAAI,OAAO,6CAA6C,GAAG;AAE1G,SAAS,EAAc,GAAO,GAAc;CAK1C,OAJIA,EAAM,QAAQ,CAAK,IACd,EAAM,KAAK,MAAS,EAAc,GAAM,CAAY,CAAC,IAGvD,EAAa,OAAO,CAAK,EAAE,QAAQ,GAAc,EAAE,CAAC;AAC7D;AAEA,IAAa,KAAuB,MAClC,EAAc,GAAO,CAAkC,GAE5C,KAAiC,MAC5C,EAAc,GAAO,CAAsC;AAE7D,SAAgB,EAAyB,GAAS;CAChD,IAAM,IAAoB,OAAO,OAAO,IAAI;CAM5C,OAJA,EAAM,QAAQ,EAAQ,OAAO,IAAI,GAAO,MAAW;EACjD,EAAkB,KAAU,EAA8B,CAAK;CACjE,CAAC,GAEM;AACT"}
1
+ {"version":3,"file":"admins-components102.js","names":[],"sources":["../src/services/articleEditorService.ts"],"sourcesContent":["import type { SearchPostsPayload, SearchPostsResponse } from '@/models/SearchPosts'\nimport { FetchDetails, type HttpRequest, initRequest, Methods } from '@/services/services'\n\nimport type {\n ArticleSeriesDetails,\n AuthorDetails,\n ColumnDetails,\n DigitalSupplementDetails,\n GetRelationsCountPayload,\n IdsPayload,\n PartnerDetails,\n PresenceWidgetConfig,\n RelationCount,\n SearchArticleSeriesResult,\n SearchAuthorsPayload,\n SearchAuthorsResult,\n SearchColumnsPayload,\n SearchColumnsResult,\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult,\n SearchEntityPayload,\n SearchImagesWidgetConfig,\n SearchPartnersResult,\n SearchPostWidgetConfig,\n SearchTagsPayload,\n SearchTagsResult,\n Site,\n TagDetails,\n UserInfoModel,\n WidgetDetailsResponse,\n} from '@/services/models'\n\nexport function useArticleEditorService(url: string): ArticleEditorService {\n return new ArticleEditorService(url)\n}\n\nexport class ArticleEditorService {\n baseUrl: string\n searchPosts: HttpRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>\n whoAmI: HttpRequest<void, undefined, undefined, UserInfoModel>\n getPostsConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >\n getImagesConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >\n getPresenceConfig: HttpRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >\n sites: HttpRequest<undefined, undefined, undefined, Site[]>\n\n /* getMeta: HttpRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n > */\n\n authorsSearch: HttpRequest<SearchAuthorsPayload, undefined, undefined, SearchAuthorsResult>\n\n authorsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, AuthorDetails[]>\n\n articleSeriesSearch: HttpRequest<\n SearchEntityPayload,\n undefined,\n undefined,\n SearchArticleSeriesResult\n >\n\n articleSeriesDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ArticleSeriesDetails[]>\n\n columnsSearch: HttpRequest<SearchColumnsPayload, undefined, undefined, SearchColumnsResult>\n\n columnsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, ColumnDetails[]>\n\n digitalSupplementsSearch: HttpRequest<\n SearchDigitalSupplementsPayload,\n undefined,\n undefined,\n SearchDigitalSupplementsResult\n >\n\n digitalSupplementsDetailsByIds: HttpRequest<\n IdsPayload,\n undefined,\n undefined,\n DigitalSupplementDetails[]\n >\n\n partnersSearch: HttpRequest<SearchEntityPayload, undefined, undefined, SearchPartnersResult>\n\n partnersDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, PartnerDetails[]>\n\n tagsSearch: HttpRequest<SearchTagsPayload, undefined, undefined, SearchTagsResult>\n\n tagsDetailsByIds: HttpRequest<IdsPayload, undefined, undefined, TagDetails[]>\n\n getRelationsCount: HttpRequest<GetRelationsCountPayload, undefined, undefined, RelationCount[]>\n\n private errorMap(entityName: string) {\n return new Map<number, string>([\n [400, `${entityName} lekérdezése ismeretlen 400 hiba!`],\n [500, `${entityName} lekérdezése ismeretlen 500 hiba!`],\n ])\n }\n\n private postRequest<Payload, Result>(path: string, defaultPayload: Payload, entityName: string) {\n return initRequest<Payload, undefined, undefined, Result>(\n new FetchDetails(this.baseUrl, path, Methods.POST, this.errorMap(entityName)),\n defaultPayload,\n undefined,\n undefined,\n )\n }\n\n private searchRequest<Payload, Result>(resource: string, entityName: string) {\n return this.postRequest<Payload, Result>(`admin/${resource}/search`, {} as Payload, entityName)\n }\n\n private detailsByIdsRequest<Result>(resource: string, entityName: string) {\n return this.postRequest<IdsPayload, Result>(\n `admin/${resource}/detailsByIds`,\n { ids: [] },\n entityName,\n )\n }\n\n constructor(public articleEditorBackendUrl: string) {\n this.baseUrl = this.articleEditorBackendUrl\n\n /* this.getMeta = initRequest<\n { url: string },\n undefined,\n undefined,\n { url: string; title: string; lead: string; imageUrl: string }\n >(\n new FetchDetails(\n this.baseUrl,\n 'admin/Embeds/meta',\n Methods.POST,\n this.errorMap('Meta adatok'),\n ),\n { url: '' },\n undefined,\n undefined,\n ) */\n\n this.searchPosts = initRequest<SearchPostsPayload, undefined, undefined, SearchPostsResponse>(\n new FetchDetails(\n this.baseUrl,\n 'admin/Posts/searchPosts',\n Methods.POST,\n this.errorMap('Cikk lekérdezés'),\n ),\n {} as SearchPostsPayload,\n undefined,\n undefined,\n )\n\n this.whoAmI = initRequest<void, undefined, undefined, UserInfoModel>(\n new FetchDetails(\n this.baseUrl,\n 'whoami',\n Methods.GET,\n this.errorMap('Felhasználói adatok lekérdezése'),\n ),\n undefined,\n undefined,\n undefined,\n )\n\n this.getPostsConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchPostWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Search Posts Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getImagesConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<SearchImagesWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.getPresenceConfig = initRequest<\n undefined,\n { name: string },\n undefined,\n WidgetDetailsResponse<PresenceWidgetConfig>\n >(\n new FetchDetails(\n this.baseUrl,\n '/admin/Widgets/{name}',\n Methods.GET,\n this.errorMap('Widget konfiguráció lekérése'),\n ),\n undefined,\n { name: '' } as { name: string },\n undefined,\n )\n\n this.sites = initRequest<undefined, undefined, undefined, Site[]>(\n new FetchDetails(this.baseUrl, '/admin/sites', Methods.GET, this.errorMap('Site lekérése')),\n undefined,\n undefined,\n undefined,\n )\n\n this.authorsSearch = this.searchRequest<SearchAuthorsPayload, SearchAuthorsResult>(\n 'Authors',\n 'Szerzők',\n )\n this.authorsDetailsByIds = this.detailsByIdsRequest<AuthorDetails[]>('Authors', 'Szerzők')\n\n this.articleSeriesSearch = this.searchRequest<SearchEntityPayload, SearchArticleSeriesResult>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n this.articleSeriesDetailsByIds = this.detailsByIdsRequest<ArticleSeriesDetails[]>(\n 'ArticleSeries',\n 'Cikk sorozatok',\n )\n\n this.partnersSearch = this.searchRequest<SearchEntityPayload, SearchPartnersResult>(\n 'Partners',\n 'Partnerek',\n )\n this.partnersDetailsByIds = this.detailsByIdsRequest<PartnerDetails[]>('Partners', 'Partnerek')\n\n this.columnsSearch = this.searchRequest<SearchColumnsPayload, SearchColumnsResult>(\n 'Columns',\n 'Rovatok',\n )\n this.columnsDetailsByIds = this.detailsByIdsRequest<ColumnDetails[]>('Columns', 'Rovatok')\n\n this.digitalSupplementsSearch = this.searchRequest<\n SearchDigitalSupplementsPayload,\n SearchDigitalSupplementsResult\n >('DigitalSupplements', 'Digitális kiegészítők')\n this.digitalSupplementsDetailsByIds = this.detailsByIdsRequest<DigitalSupplementDetails[]>(\n 'DigitalSupplements',\n 'Digitális kiegészítők',\n )\n\n this.tagsSearch = this.searchRequest<SearchTagsPayload, SearchTagsResult>('Tags', 'Címkék')\n this.tagsDetailsByIds = this.detailsByIdsRequest<TagDetails[]>('Tags', 'Címkék')\n\n this.getRelationsCount = this.postRequest<GetRelationsCountPayload, RelationCount[]>(\n 'admin/Relations/byIds',\n { ids: [], outputEntityType: '' },\n 'Kapcsolatok számlálása',\n )\n }\n}\n"],"mappings":";;AAgCA,SAAgB,EAAwB,GAAmC;CACzE,OAAO,IAAI,EAAqB,CAAG;AACrC;AAEA,IAAa,IAAb,MAAkC;CAoGb;CAnGnB;CACA;CACA;CACA;CAMA;CAMA;CAMA;CASA;CAEA;CAEA;CAOA;CAEA;CAEA;CAEA;CAOA;CAOA;CAEA;CAEA;CAEA;CAEA;CAEA,SAAiB,GAAoB;EACnC,OAAO,IAAI,IAAoB,CAC7B,CAAC,KAAK,GAAG,EAAW,kCAAkC,GACtD,CAAC,KAAK,GAAG,EAAW,kCAAkC,CACxD,CAAC;CACH;CAEA,YAAqC,GAAc,GAAyB,GAAoB;EAC9F,OAAO,EACL,IAAI,EAAa,KAAK,SAAS,GAAM,EAAQ,MAAM,KAAK,SAAS,CAAU,CAAC,GAC5E,GACA,KAAA,GACA,KAAA,CACF;CACF;CAEA,cAAuC,GAAkB,GAAoB;EAC3E,OAAO,KAAK,YAA6B,SAAS,EAAS,UAAU,CAAC,GAAc,CAAU;CAChG;CAEA,oBAAoC,GAAkB,GAAoB;EACxE,OAAO,KAAK,YACV,SAAS,EAAS,gBAClB,EAAE,KAAK,CAAC,EAAE,GACV,CACF;CACF;CAEA,YAAY,GAAwC;EA6IlD,AA7IiB,KAAA,0BAAA,GACjB,KAAK,UAAU,KAAK,yBAmBpB,KAAK,cAAc,EACjB,IAAI,EACF,KAAK,SACL,2BACA,EAAQ,MACR,KAAK,SAAS,iBAAiB,CACjC,GACA,CAAC,GACD,KAAA,GACA,KAAA,CACF,GAEA,KAAK,SAAS,EACZ,IAAI,EACF,KAAK,SACL,UACA,EAAQ,KACR,KAAK,SAAS,iCAAiC,CACjD,GACA,KAAA,GACA,KAAA,GACA,KAAA,CACF,GAEA,KAAK,iBAAiB,EAMpB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,2CAA2C,CAC3D,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,kBAAkB,EAMrB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,8BAA8B,CAC9C,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,oBAAoB,EAMvB,IAAI,EACF,KAAK,SACL,yBACA,EAAQ,KACR,KAAK,SAAS,8BAA8B,CAC9C,GACA,KAAA,GACA,EAAE,MAAM,GAAG,GACX,KAAA,CACF,GAEA,KAAK,QAAQ,EACX,IAAI,EAAa,KAAK,SAAS,gBAAgB,EAAQ,KAAK,KAAK,SAAS,eAAe,CAAC,GAC1F,KAAA,GACA,KAAA,GACA,KAAA,CACF,GAEA,KAAK,gBAAgB,KAAK,cACxB,WACA,SACF,GACA,KAAK,sBAAsB,KAAK,oBAAqC,WAAW,SAAS,GAEzF,KAAK,sBAAsB,KAAK,cAC9B,iBACA,gBACF,GACA,KAAK,4BAA4B,KAAK,oBACpC,iBACA,gBACF,GAEA,KAAK,iBAAiB,KAAK,cACzB,YACA,WACF,GACA,KAAK,uBAAuB,KAAK,oBAAsC,YAAY,WAAW,GAE9F,KAAK,gBAAgB,KAAK,cACxB,WACA,SACF,GACA,KAAK,sBAAsB,KAAK,oBAAqC,WAAW,SAAS,GAEzF,KAAK,2BAA2B,KAAK,cAGnC,sBAAsB,uBAAuB,GAC/C,KAAK,iCAAiC,KAAK,oBACzC,sBACA,uBACF,GAEA,KAAK,aAAa,KAAK,cAAmD,QAAQ,QAAQ,GAC1F,KAAK,mBAAmB,KAAK,oBAAkC,QAAQ,QAAQ,GAE/E,KAAK,oBAAoB,KAAK,YAC5B,yBACA;GAAE,KAAK,CAAC;GAAG,kBAAkB;EAAG,GAChC,wBACF;CACF;AACF"}
@@ -1,173 +1,107 @@
1
- import e from "./admins-components100.js";
2
- import t from "./admins-components101.js";
3
- import { sanitizeHeaderValue as n } from "./admins-components102.js";
4
- //#region node_modules/axios/lib/core/AxiosHeaders.js
5
- var r = Symbol("internals");
6
- function i(e) {
7
- return e && String(e).trim().toLowerCase();
8
- }
9
- function a(t) {
10
- return t === !1 || t == null ? t : e.isArray(t) ? t.map(a) : n(String(t));
11
- }
12
- function o(e) {
13
- let t = Object.create(null), n = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g, r;
14
- for (; r = n.exec(e);) t[r[1]] = r[2];
15
- return t;
16
- }
17
- var s = (e) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());
18
- function c(t, n, r, i, a) {
19
- if (e.isFunction(i)) return i.call(this, n, r);
20
- if (a && (n = r), e.isString(n)) {
21
- if (e.isString(i)) return n.indexOf(i) !== -1;
22
- if (e.isRegExp(i)) return i.test(n);
23
- }
24
- }
25
- function l(e) {
26
- return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (e, t, n) => t.toUpperCase() + n);
27
- }
28
- function u(t, n) {
29
- let r = e.toCamelCase(" " + n);
30
- [
31
- "get",
32
- "set",
33
- "has"
34
- ].forEach((e) => {
35
- Object.defineProperty(t, e + r, {
36
- __proto__: null,
37
- value: function(t, r, i) {
38
- return this[e].call(this, n, t, r, i);
39
- },
40
- configurable: !0
41
- });
42
- });
43
- }
44
- var d = class {
45
- constructor(e) {
46
- e && this.set(e);
47
- }
48
- set(n, r, o) {
49
- let c = this;
50
- function l(t, n, r) {
51
- let o = i(n);
52
- if (!o) return;
53
- let s = e.findKey(c, o);
54
- (!s || c[s] === void 0 || r === !0 || r === void 0 && c[s] !== !1) && (c[s || n] = a(t));
55
- }
56
- let u = (t, n) => e.forEach(t, (e, t) => l(e, t, n));
57
- if (e.isPlainObject(n) || n instanceof this.constructor) u(n, r);
58
- else if (e.isString(n) && (n = n.trim()) && !s(n)) u(t(n), r);
59
- else if (e.isObject(n) && e.isIterable(n)) {
60
- let t = {}, i, a;
61
- for (let r of n) {
62
- if (!e.isArray(r)) throw TypeError("Object iterator must return a key-value pair");
63
- t[a = r[0]] = (i = t[a]) ? e.isArray(i) ? [...i, r[1]] : [i, r[1]] : r[1];
64
- }
65
- u(t, r);
66
- } else n != null && l(r, n, o);
67
- return this;
68
- }
69
- get(t, n) {
70
- if (t = i(t), t) {
71
- let r = e.findKey(this, t);
72
- if (r) {
73
- let t = this[r];
74
- if (!n) return t;
75
- if (n === !0) return o(t);
76
- if (e.isFunction(n)) return n.call(this, t, r);
77
- if (e.isRegExp(n)) return n.exec(t);
78
- throw TypeError("parser must be boolean|regexp|function");
79
- }
1
+ import { isIpInUrl as e } from "./admins-components97.js";
2
+ import { useArticleEditorService as t } from "./admins-components102.js";
3
+ import { computed as n, ref as r } from "vue";
4
+ //#region src/services/currentUserInfo.ts
5
+ var i = null, a = [], o = !1;
6
+ function s() {
7
+ if (i) return o && console.debug("[currentUserInfo] Returning existing store instance"), i;
8
+ o && console.debug("[currentUserInfo] Creating new store instance");
9
+ let s = r(null), c = r("loading"), l = r(null), u = r(null), d = n(() => c.value === "loading"), f = n(() => c.value === "authenticated" && s.value !== null), p = n(() => s.value?.displayName ?? ""), m = n(() => s.value?.email ?? ""), h = n(() => s.value?.roles ?? []);
10
+ async function g(n, r) {
11
+ o = r ?? !1, o && console.debug("[currentUserInfo] initialize() called", { backendUrl: n }), o && console.debug("[currentUserInfo] Starting initialization"), u.value = n, c.value = "loading", l.value = null;
12
+ try {
13
+ let r = t(n);
14
+ await new Promise((t, n) => {
15
+ if (r.baseUrl.indexOf("localhost") != -1 || e(r.baseUrl)) return o && console.debug("[currentUserInfo] Localhost/IP detected, using dev credentials"), s.value = {
16
+ displayName: "developer",
17
+ email: "developer@hvg.hu",
18
+ roles: ["devadmin"],
19
+ id: "00000000-0000-0000-0000-000000000000"
20
+ }, c.value = "authenticated", t();
21
+ r.whoAmI.successCallback = (e) => {
22
+ o && console.debug("[currentUserInfo] whoAmI success", {
23
+ displayName: e.displayName,
24
+ email: e.email,
25
+ rolesCount: e.roles?.length ?? 0
26
+ }), s.value = e, c.value = "authenticated", t();
27
+ }, r.whoAmI.errorCallback = (e) => {
28
+ o && console.error("[currentUserInfo] whoAmI failed:", e), l.value = e.message ?? "Ismeretlen hiba történt", c.value = "error", n(Error(l.value));
29
+ }, o && console.debug("[currentUserInfo] Executing whoAmI request"), r.whoAmI.execute();
30
+ }), await new Promise((e, t) => {
31
+ r.sites.successCallback = (t) => {
32
+ o && console.debug("[currentUserInfo] sites fetch success", { sitesCount: t.length }), a = t, e();
33
+ }, r.sites.errorCallback = (e) => {
34
+ o && console.error("[currentUserInfo] sites fetch failed:", e), t(Error(e.message ?? "Ismeretlen hiba történt"));
35
+ }, o && console.debug("[currentUserInfo] Executing sites request"), r.sites.execute();
36
+ }), o && console.debug("[currentUserInfo] Initialization completed successfully");
37
+ } catch (e) {
38
+ throw o && console.error("[currentUserInfo] initialize failed:", e), c.value = "error", l.value ||= "Felhasználói adatok vagy site-ok lekérése sikertelen", e;
80
39
  }
81
40
  }
82
- has(t, n) {
83
- if (t = i(t), t) {
84
- let r = e.findKey(this, t);
85
- return !!(r && this[r] !== void 0 && (!n || c(this, this[r], r, n)));
41
+ function _() {
42
+ o && console.debug("[currentUserInfo] clear() called, resetting all state"), s.value = null, c.value = "loading", l.value = null, u.value = null, a = [];
43
+ }
44
+ function v(e, t, n) {
45
+ if (o && console.debug("[currentUserInfo] hasPermission() check", {
46
+ siteId: e,
47
+ entityName: t,
48
+ accessLevel: n
49
+ }), !s.value?.roles || s.value.roles.length === 0) return o && console.debug("[currentUserInfo] hasPermission() denied: no roles"), !1;
50
+ if (s.value.roles.includes("devadmin")) return o && console.debug("[currentUserInfo] hasPermission() granted: devadmin role"), !0;
51
+ let r = n === "admin" ? ["admin"] : ["reader", "admin"];
52
+ for (let n of r) {
53
+ let r = `cms-${e}-${t}-${n}`;
54
+ if (s.value.roles.includes(r)) return o && console.debug("[currentUserInfo] hasPermission() granted: specific role", r), !0;
55
+ let i = `cms-${e}-all-${n}`;
56
+ if (s.value.roles.includes(i)) return o && console.debug("[currentUserInfo] hasPermission() granted: all-entity role", i), !0;
86
57
  }
87
- return !1;
88
- }
89
- delete(t, n) {
90
- let r = this, a = !1;
91
- function o(t) {
92
- if (t = i(t), t) {
93
- let i = e.findKey(r, t);
94
- i && (!n || c(r, r[i], i, n)) && (delete r[i], a = !0);
95
- }
96
- }
97
- return e.isArray(t) ? t.forEach(o) : o(t), a;
98
- }
99
- clear(e) {
100
- let t = Object.keys(this), n = t.length, r = !1;
101
- for (; n--;) {
102
- let i = t[n];
103
- (!e || c(this, this[i], i, e, !0)) && (delete this[i], r = !0);
104
- }
105
- return r;
106
- }
107
- normalize(t) {
108
- let n = this, r = {};
109
- return e.forEach(this, (i, o) => {
110
- let s = e.findKey(r, o);
111
- if (s) {
112
- n[s] = a(i), delete n[o];
113
- return;
58
+ return o && console.debug("[currentUserInfo] hasPermission() denied: no matching roles"), !1;
59
+ }
60
+ function y(e, t) {
61
+ if (o && console.debug("[currentUserInfo] getMixableSitesForResource() called", {
62
+ entityName: e,
63
+ currentSiteId: t
64
+ }), !u.value) throw o && console.error("[currentUserInfo] getMixableSitesForResource called before initialize"), Error("Store nincs inicializálva. Hívd meg előbb az initialize() metódust!");
65
+ let n = a.find((e) => e.id === t);
66
+ o && console.debug("[currentUserInfo] Current site lookup", {
67
+ found: !!n,
68
+ totalSites: a.length
69
+ });
70
+ let r = [];
71
+ return a.forEach((t) => {
72
+ if (n === void 0) {
73
+ if (!v(t.id, e, "reader")) return;
74
+ r.push(t);
75
+ } else {
76
+ if (n.entities.find((n) => n.type === e && n.allowedSiteIds.includes(t.id)) === void 0 || !v(t.id, e, "reader")) return;
77
+ r.push(t);
114
78
  }
115
- let c = t ? l(o) : String(o).trim();
116
- c !== o && delete n[o], n[c] = a(i), r[c] = !0;
117
- }), this;
118
- }
119
- concat(...e) {
120
- return this.constructor.concat(this, ...e);
121
- }
122
- toJSON(t) {
123
- let n = Object.create(null);
124
- return e.forEach(this, (r, i) => {
125
- r != null && r !== !1 && (n[i] = t && e.isArray(r) ? r.join(", ") : r);
126
- }), n;
127
- }
128
- [Symbol.iterator]() {
129
- return Object.entries(this.toJSON())[Symbol.iterator]();
130
- }
131
- toString() {
132
- return Object.entries(this.toJSON()).map(([e, t]) => e + ": " + t).join("\n");
133
- }
134
- getSetCookie() {
135
- return this.get("set-cookie") || [];
136
- }
137
- get [Symbol.toStringTag]() {
138
- return "AxiosHeaders";
139
- }
140
- static from(e) {
141
- return e instanceof this ? e : new this(e);
142
- }
143
- static concat(e, ...t) {
144
- let n = new this(e);
145
- return t.forEach((e) => n.set(e)), n;
146
- }
147
- static accessor(t) {
148
- let n = (this[r] = this[r] = { accessors: {} }).accessors, a = this.prototype;
149
- function o(e) {
150
- let t = i(e);
151
- n[t] || (u(a, e), n[t] = !0);
152
- }
153
- return e.isArray(t) ? t.forEach(o) : o(t), this;
154
- }
155
- };
156
- d.accessor([
157
- "Content-Type",
158
- "Content-Length",
159
- "Accept",
160
- "Accept-Encoding",
161
- "User-Agent",
162
- "Authorization"
163
- ]), e.reduceDescriptors(d.prototype, ({ value: e }, t) => {
164
- let n = t[0].toUpperCase() + t.slice(1);
165
- return {
166
- get: () => e,
167
- set(e) {
168
- this[n] = e;
169
- }
170
- };
171
- }), e.freezeMethods(d);
79
+ }), o && console.debug("[currentUserInfo] getMixableSitesForResource() result", {
80
+ mixableCount: r.length,
81
+ mixableSiteIds: r.map((e) => e.id)
82
+ }), r;
83
+ }
84
+ function b(e, t) {
85
+ return o && console.debug("[currentUserInfo] getMixableSiteIdsForResource() called", {
86
+ entityName: e,
87
+ currentSiteId: t
88
+ }), y(e, t).map((e) => e.id);
89
+ }
90
+ return i = {
91
+ user: s,
92
+ state: c,
93
+ error: l,
94
+ isLoading: d,
95
+ isAuthenticated: f,
96
+ displayName: p,
97
+ email: m,
98
+ roles: h,
99
+ initialize: g,
100
+ clear: _,
101
+ hasPermission: v,
102
+ getMixableSitesForResource: y,
103
+ getMixableSiteIdsForResource: b
104
+ }, i;
105
+ }
172
106
  //#endregion
173
- export { d as default };
107
+ export { s as useCurrentUser };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components103.js","names":["utils","parseHeaders"],"sources":["../node_modules/axios/lib/core/AxiosHeaders.js"],"sourcesContent":["'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"admins-components103.js","names":[],"sources":["../src/services/currentUserInfo.ts"],"sourcesContent":["import { ref, computed, type Ref, type ComputedRef } from 'vue'\nimport { useArticleEditorService } from '@/services/articleEditorService'\nimport type { UserInfoModel, Site } from '@/services/models'\nimport { isIpInUrl } from '@/utils/ipUtils'\n\nexport type UserState = 'loading' | 'authenticated' | 'error'\n\nexport interface CurrentUserStore {\n user: Ref<UserInfoModel | null>\n state: Ref<UserState>\n error: Ref<string | null>\n isLoading: ComputedRef<boolean>\n isAuthenticated: ComputedRef<boolean>\n displayName: ComputedRef<string>\n email: ComputedRef<string>\n roles: ComputedRef<readonly string[]>\n initialize(backendUrl: string, enableLogging?: boolean): Promise<void>\n clear(): void\n hasPermission(\n siteId: string,\n entityName: string | 'all',\n accessLevel: 'reader' | 'admin',\n ): boolean\n getMixableSitesForResource(entityName: string | 'all', currentSiteId: string | undefined): Site[]\n getMixableSiteIdsForResource(\n entityName: string | 'all',\n currentSiteId: string | undefined,\n ): string[]\n}\n\nlet storeInstance: CurrentUserStore | null = null\nlet sites = [] as Site[]\nlet loggingEnabled = false\n\nexport function useCurrentUser(): CurrentUserStore {\n if (storeInstance) {\n if (loggingEnabled) console.debug('[currentUserInfo] Returning existing store instance')\n return storeInstance\n }\n\n if (loggingEnabled) console.debug('[currentUserInfo] Creating new store instance')\n const user = ref<UserInfoModel | null>(null)\n const state = ref<UserState>('loading')\n const error = ref<string | null>(null)\n const _backendUrl = ref<string | null>(null)\n const isLoading = computed(() => state.value === 'loading')\n const isAuthenticated = computed(() => state.value === 'authenticated' && user.value !== null)\n const displayName = computed(() => user.value?.displayName ?? '')\n const email = computed(() => user.value?.email ?? '')\n const roles = computed(() => user.value?.roles ?? [])\n\n async function initialize(backendUrl: string, enableLogging?: boolean): Promise<void> {\n loggingEnabled = enableLogging ?? false\n\n if (loggingEnabled) console.debug('[currentUserInfo] initialize() called', { backendUrl })\n\n if (loggingEnabled) console.debug('[currentUserInfo] Starting initialization')\n _backendUrl.value = backendUrl\n state.value = 'loading'\n error.value = null\n\n try {\n const service = useArticleEditorService(backendUrl)\n\n await new Promise<void>((resolve, reject) => {\n if (service.baseUrl.indexOf('localhost') != -1 || isIpInUrl(service.baseUrl)) {\n if (loggingEnabled)\n console.debug('[currentUserInfo] Localhost/IP detected, using dev credentials')\n user.value = {\n displayName: 'developer',\n email: 'developer@hvg.hu',\n roles: ['devadmin'],\n id: '00000000-0000-0000-0000-000000000000',\n }\n state.value = 'authenticated'\n return resolve()\n }\n\n service.whoAmI.successCallback = (userInfo: UserInfoModel) => {\n if (loggingEnabled) {\n console.debug('[currentUserInfo] whoAmI success', {\n displayName: userInfo.displayName,\n email: userInfo.email,\n rolesCount: userInfo.roles?.length ?? 0,\n })\n }\n user.value = userInfo\n state.value = 'authenticated'\n resolve()\n }\n\n service.whoAmI.errorCallback = (err) => {\n if (loggingEnabled) console.error('[currentUserInfo] whoAmI failed:', err)\n error.value = err.message ?? 'Ismeretlen hiba történt'\n state.value = 'error'\n reject(new Error(error.value))\n }\n\n if (loggingEnabled) console.debug('[currentUserInfo] Executing whoAmI request')\n service.whoAmI.execute()\n })\n\n await new Promise<void>((resolve, reject) => {\n service.sites.successCallback = (fetchedSites) => {\n if (loggingEnabled)\n console.debug('[currentUserInfo] sites fetch success', {\n sitesCount: fetchedSites.length,\n })\n sites = fetchedSites\n resolve()\n }\n\n service.sites.errorCallback = (err) => {\n if (loggingEnabled) console.error('[currentUserInfo] sites fetch failed:', err)\n reject(new Error(err.message ?? 'Ismeretlen hiba történt'))\n }\n\n if (loggingEnabled) console.debug('[currentUserInfo] Executing sites request')\n service.sites.execute()\n })\n\n if (loggingEnabled) console.debug('[currentUserInfo] Initialization completed successfully')\n } catch (err) {\n if (loggingEnabled) console.error('[currentUserInfo] initialize failed:', err)\n state.value = 'error'\n if (!error.value) {\n error.value = 'Felhasználói adatok vagy site-ok lekérése sikertelen'\n }\n throw err\n }\n }\n\n function clear(): void {\n if (loggingEnabled) console.debug('[currentUserInfo] clear() called, resetting all state')\n user.value = null\n state.value = 'loading'\n error.value = null\n _backendUrl.value = null\n sites = []\n }\n\n function hasPermission(\n siteId: string,\n entityName: string | 'all',\n accessLevel: 'reader' | 'admin',\n ): boolean {\n if (loggingEnabled)\n console.debug('[currentUserInfo] hasPermission() check', { siteId, entityName, accessLevel })\n\n if (!user.value?.roles || user.value.roles.length === 0) {\n if (loggingEnabled) console.debug('[currentUserInfo] hasPermission() denied: no roles')\n return false\n }\n\n if (user.value.roles.includes('devadmin')) {\n if (loggingEnabled) console.debug('[currentUserInfo] hasPermission() granted: devadmin role')\n return true\n }\n\n const requiredLevels = accessLevel === 'admin' ? ['admin'] : ['reader', 'admin']\n\n for (const level of requiredLevels) {\n const specificRole = `cms-${siteId}-${entityName}-${level}`\n if (user.value.roles.includes(specificRole)) {\n if (loggingEnabled)\n console.debug('[currentUserInfo] hasPermission() granted: specific role', specificRole)\n return true\n }\n\n const allentityRole = `cms-${siteId}-all-${level}`\n if (user.value.roles.includes(allentityRole)) {\n if (loggingEnabled)\n console.debug('[currentUserInfo] hasPermission() granted: all-entity role', allentityRole)\n return true\n }\n }\n\n if (loggingEnabled) console.debug('[currentUserInfo] hasPermission() denied: no matching roles')\n return false\n }\n\n function getMixableSitesForResource(\n entityName: string | 'all',\n currentSiteId: string | undefined,\n ): Site[] {\n if (loggingEnabled)\n console.debug('[currentUserInfo] getMixableSitesForResource() called', {\n entityName,\n currentSiteId,\n })\n\n if (!_backendUrl.value) {\n if (loggingEnabled)\n console.error('[currentUserInfo] getMixableSitesForResource called before initialize')\n throw new Error('Store nincs inicializálva. Hívd meg előbb az initialize() metódust!')\n }\n\n const currentSite = sites.find((site) => site.id === currentSiteId)\n if (loggingEnabled)\n console.debug('[currentUserInfo] Current site lookup', {\n found: !!currentSite,\n totalSites: sites.length,\n })\n\n const mixableSites = [] as Site[]\n sites.forEach((site) => {\n if (currentSite === undefined) {\n // Case 1: No current site specified - only check permissions\n if (!hasPermission(site.id, entityName, 'reader')) {\n return\n }\n mixableSites.push(site)\n } else {\n // Case 2: Current site specified - check entity allowance AND permissions\n if (\n currentSite.entities.find(\n (e) => e.type === entityName && e.allowedSiteIds.includes(site.id),\n ) === undefined\n ) {\n return\n }\n\n if (!hasPermission(site.id, entityName, 'reader')) {\n return\n }\n\n mixableSites.push(site)\n }\n })\n\n if (loggingEnabled) {\n console.debug('[currentUserInfo] getMixableSitesForResource() result', {\n mixableCount: mixableSites.length,\n mixableSiteIds: mixableSites.map((s) => s.id),\n })\n }\n return mixableSites\n }\n\n function getMixableSiteIdsForResource(\n entityName: string | 'all',\n currentSiteId: string | undefined,\n ): string[] {\n if (loggingEnabled)\n console.debug('[currentUserInfo] getMixableSiteIdsForResource() called', {\n entityName,\n currentSiteId,\n })\n const mixableSites = getMixableSitesForResource(entityName, currentSiteId)\n return mixableSites.map((site) => site.id)\n }\n\n storeInstance = {\n user,\n state,\n error,\n isLoading,\n isAuthenticated,\n displayName,\n email,\n roles,\n initialize,\n clear,\n hasPermission,\n getMixableSitesForResource,\n getMixableSiteIdsForResource,\n }\n\n return storeInstance\n}\n"],"mappings":"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"}