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.
- package/README.md +4 -22
- package/dist/admins-components.js +53 -52
- package/dist/admins-components100.js +79 -249
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components101.js +112 -26
- package/dist/admins-components101.js.map +1 -1
- package/dist/admins-components102.js +45 -26
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +102 -168
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components104.js +17 -65
- package/dist/admins-components104.js.map +1 -1
- package/dist/admins-components105.js +6 -66
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +247 -25
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +27 -16
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +26 -25
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +171 -8
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +67 -3
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +67 -3
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +30 -3
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +15 -20
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +27 -14
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +8 -7
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +4 -13
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +3 -26
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +3 -83
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +19 -9
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +14 -5
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +7 -7
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +12 -6
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +25 -5
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +82 -14
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +10 -12
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +5 -30
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +7 -3
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +7 -29
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +3 -2
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +12 -2
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +12 -7
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +30 -74
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +4 -29
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +27 -57
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +5 -24
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +5 -50
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +7 -30
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +74 -3
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +27 -177
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +58 -45
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +23 -36
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +46 -42
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +28 -138
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +3 -58
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +178 -6
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +45 -5
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +37 -76
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +45 -28
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +129 -1919
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components15.js +8 -42
- package/dist/admins-components15.js.map +1 -1
- package/dist/admins-components150.js +54 -24807
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +6 -8
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +6 -7
- package/dist/admins-components152.js.map +1 -0
- package/dist/admins-components153.js +76 -142
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +28 -8
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +1930 -8
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +24812 -0
- package/dist/admins-components156.js.map +1 -0
- package/dist/admins-components157.js +8 -167
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +7 -51
- package/dist/admins-components159.js +141 -8
- package/dist/admins-components159.js.map +1 -1
- package/dist/admins-components16.js +89 -4
- package/dist/admins-components16.js.map +1 -1
- package/dist/admins-components160.js +8 -49
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +9 -6
- package/dist/admins-components161.js.map +1 -1
- package/dist/admins-components163.js +160 -50
- package/dist/admins-components163.js.map +1 -1
- package/dist/admins-components164.js +34 -42
- package/dist/admins-components164.js.map +1 -1
- package/dist/admins-components165.js +3 -3
- package/dist/admins-components165.js.map +1 -1
- package/dist/admins-components166.js +18 -20
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +6 -9
- package/dist/admins-components167.js.map +1 -1
- package/dist/{admins-components162.js → admins-components168.js} +3 -3
- package/dist/{admins-components162.js.map → admins-components168.js.map} +1 -1
- package/dist/admins-components169.js +51 -51
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components17.js +4 -94
- package/dist/admins-components17.js.map +1 -1
- package/dist/admins-components170.js +60 -0
- package/dist/admins-components170.js.map +1 -0
- package/dist/admins-components171.js +10 -0
- package/dist/admins-components171.js.map +1 -0
- package/dist/admins-components172.js +53 -0
- package/dist/admins-components172.js.map +1 -0
- package/dist/admins-components173.js +10 -0
- package/dist/admins-components173.js.map +1 -0
- package/dist/admins-components175.js +59 -0
- package/dist/admins-components175.js.map +1 -0
- package/dist/admins-components18.js +37 -239
- package/dist/admins-components18.js.map +1 -1
- package/dist/admins-components19.js +1 -2
- package/dist/admins-components19.js.map +1 -1
- package/dist/admins-components20.js +91 -179
- package/dist/admins-components20.js.map +1 -1
- package/dist/admins-components21.js +245 -0
- package/dist/admins-components21.js.map +1 -0
- package/dist/admins-components22.js +3 -4
- package/dist/admins-components22.js.map +1 -1
- package/dist/admins-components23.js +172 -68
- package/dist/admins-components23.js.map +1 -1
- package/dist/admins-components25.js +6 -58
- package/dist/admins-components25.js.map +1 -1
- package/dist/admins-components26.js +79 -0
- package/dist/{admins-components24.js.map → admins-components26.js.map} +1 -1
- package/dist/admins-components27.js +3 -3
- package/dist/admins-components27.js.map +1 -1
- package/dist/admins-components28.js +50 -64
- package/dist/admins-components28.js.map +1 -1
- package/dist/admins-components29.js +75 -0
- package/dist/admins-components29.js.map +1 -0
- package/dist/admins-components31.js +6 -39
- package/dist/admins-components31.js.map +1 -1
- package/dist/admins-components32.js +66 -0
- package/dist/admins-components32.js.map +1 -0
- package/dist/admins-components34.js +6 -36
- package/dist/admins-components34.js.map +1 -1
- package/dist/admins-components35.js +39 -4
- package/dist/admins-components35.js.map +1 -1
- package/dist/{admins-components33.js → admins-components37.js} +1 -1
- package/dist/{admins-components33.js.map → admins-components37.js.map} +1 -1
- package/dist/admins-components38.js +36 -6
- package/dist/admins-components38.js.map +1 -1
- package/dist/admins-components39.js +4 -146
- package/dist/admins-components39.js.map +1 -1
- package/dist/{admins-components36.js.map → admins-components40.js.map} +1 -1
- package/dist/admins-components42.js +6 -124
- package/dist/admins-components42.js.map +1 -1
- package/dist/admins-components43.js +146 -4
- package/dist/admins-components43.js.map +1 -1
- package/dist/admins-components45.js +4 -2
- package/dist/admins-components45.js.map +1 -1
- package/dist/admins-components46.js +120 -15
- package/dist/admins-components46.js.map +1 -1
- package/dist/admins-components47.js +5 -0
- package/dist/admins-components47.js.map +1 -0
- package/dist/admins-components48.js +179 -6
- package/dist/admins-components48.js.map +1 -1
- package/dist/admins-components49.js +4 -54
- package/dist/admins-components49.js.map +1 -1
- package/dist/admins-components50.js +15 -89
- package/dist/admins-components50.js.map +1 -1
- package/dist/admins-components52.js +2 -2
- package/dist/admins-components52.js.map +1 -1
- package/dist/admins-components53.js +52 -23
- package/dist/admins-components53.js.map +1 -1
- package/dist/admins-components54.js +93 -9
- package/dist/admins-components54.js.map +1 -1
- package/dist/admins-components56.js +6 -73
- package/dist/admins-components56.js.map +1 -1
- package/dist/admins-components57.js +24 -65
- package/dist/admins-components57.js.map +1 -1
- package/dist/admins-components58.js +9 -4
- package/dist/admins-components58.js.map +1 -1
- package/dist/admins-components59.js +19 -138
- package/dist/admins-components59.js.map +1 -1
- package/dist/admins-components60.js +74 -0
- package/dist/admins-components60.js.map +1 -0
- package/dist/admins-components61.js +66 -7
- package/dist/admins-components61.js.map +1 -1
- package/dist/admins-components62.js +4 -170
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components63.js +140 -0
- package/dist/admins-components63.js.map +1 -0
- package/dist/admins-components65.js +7 -7
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components66.js +155 -259
- package/dist/admins-components66.js.map +1 -1
- package/dist/admins-components68.js +3 -2
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components69.js +6 -119
- package/dist/admins-components69.js.map +1 -1
- package/dist/admins-components70.js +280 -0
- package/dist/admins-components70.js.map +1 -0
- package/dist/admins-components72.js +6 -59
- package/dist/admins-components72.js.map +1 -1
- package/dist/admins-components73.js +110 -207
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components75.js +2 -2
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components76.js +58 -7
- package/dist/admins-components76.js.map +1 -1
- package/dist/admins-components77.js +220 -51
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components79.js +7 -0
- package/dist/admins-components79.js.map +1 -0
- package/dist/admins-components80.js +52 -6
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components81.js +246 -32
- package/dist/admins-components81.js.map +1 -1
- package/dist/admins-components83.js +2 -2
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components84.js +31 -192
- package/dist/admins-components84.js.map +1 -1
- package/dist/admins-components86.js +2 -2
- package/dist/admins-components86.js.map +1 -1
- package/dist/admins-components87.js +195 -184
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components89.js +2 -2
- package/dist/admins-components89.js.map +1 -1
- package/dist/admins-components90.js +16 -3
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +77 -16
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components93.js +6 -52
- package/dist/admins-components93.js.map +1 -1
- package/dist/admins-components94.js +195 -81
- package/dist/admins-components94.js.map +1 -1
- package/dist/admins-components96.js +6 -47
- package/dist/admins-components96.js.map +1 -1
- package/dist/admins-components97.js +3 -106
- package/dist/admins-components97.js.map +1 -1
- package/dist/admins-components98.js +3 -20
- package/dist/admins-components98.js.map +1 -1
- package/dist/admins-components99.js +51 -6
- package/dist/admins-components99.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/main.css.map +1 -1
- package/dist/src/components/Checkbox.vue.d.ts +11 -1
- package/dist/src/components/TextInput.vue.d.ts +33 -0
- package/dist/src/components/data-table/DataFilters.vue.d.ts +7 -14
- package/dist/src/components/data-table/DataList.vue.d.ts +10 -7
- package/dist/src/components/data-table/DataSearch.vue.d.ts +26 -0
- package/dist/src/composables/useSwipeToClose.d.ts +50 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -0
- package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/types/data-list.d.ts +0 -1
- package/package.json +1 -1
- package/dist/admins-components158.js.map +0 -1
- package/dist/admins-components24.js +0 -7
- package/dist/admins-components30.js +0 -7
- package/dist/admins-components30.js.map +0 -1
- package/dist/admins-components41.js +0 -7
- package/dist/admins-components41.js.map +0 -1
- package/dist/admins-components44.js +0 -180
- package/dist/admins-components44.js.map +0 -1
- package/dist/admins-components55.js +0 -20
- package/dist/admins-components55.js.map +0 -1
- package/dist/admins-components64.js +0 -8
- package/dist/admins-components64.js.map +0 -1
- package/dist/admins-components71.js +0 -7
- package/dist/admins-components71.js.map +0 -1
- package/dist/admins-components78.js +0 -276
- package/dist/admins-components78.js.map +0 -1
- package/dist/admins-components92.js +0 -4
- package/dist/admins-components92.js.map +0 -1
- package/dist/admins-components95.js +0 -114
- package/dist/admins-components95.js.map +0 -1
- /package/dist/{admins-components36.js → admins-components40.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components44.js","names":[],"sources":["../src/components/custom/InternalArticleOffer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport ImagePicker from '@/components/custom/ImagePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Modal from '@/components/Modal.vue'\nimport Button from '@/components/Button.vue'\n\nexport interface Article {\n siteId: string\n id: string\n imageId: string\n title: string\n lead: string\n}\n\nexport interface InternalArticleOfferModel {\n article: Article\n format: string\n}\n\nconst defaultValue: InternalArticleOfferModel = {\n article: {\n siteId: '',\n id: '',\n imageId: '',\n title: '',\n lead: '',\n },\n format: '',\n}\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: InternalArticleOfferModel): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: InternalArticleOfferModel\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n environment: string\n searchImageWidgetUrl: string\n imageBaseUrl: string\n imageViewId: string\n showIds?: boolean\n formats: { label: string; value: string }[]\n }>(),\n {\n showIds: true,\n },\n)\n\nconst localModel = ref<InternalArticleOfferModel>(defaultValue)\nconst imageModel = ref({\n id: localModel.value.article.imageId || '',\n url: '',\n source: '',\n title: '',\n isAdult: false,\n})\nconst showArticleModal = ref(false)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n localModel.value = defaultValue\n } else {\n localModel.value = newVal\n }\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => localModel,\n (newVal) => {\n emit('update:modelValue', localModel.value)\n imageModel.value.id = newVal.value.article.imageId\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => imageModel.value.id,\n (id) => {\n localModel.value.article.imageId = id\n },\n { deep: true, immediate: true },\n)\n\nconst articleCausationId = ref(new Date().getTime().toString() + 'article')\nconst EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\nonUnmounted(() => {\n window.removeEventListener('search_posts_selected', onPostSelected)\n})\n\nonMounted(() => {\n window.addEventListener('search_posts_selected', onPostSelected)\n})\n\nconst onPostSelected = (e: any) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n localModel.value.article.id = e.detail.posts[0].id\n localModel.value.article.siteId = e.detail.posts[0].siteId\n localModel.value.article.title = e.detail.posts[0].title\n localModel.value.article.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n localModel.value.article.imageId = imageId || EMPTYGUID\n }\n\n showArticleModal.value = false\n }\n}\n\nconst selectArticle = () => {\n showArticleModal.value = true\n}\n\nconst addScript = (url: string) => {\n if (!customElements.get('search-posts-widget')) {\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\nif (!customElements.get('hvg-search-image')) {\n if (!document.querySelector(`script[src=\"${props.searchImageWidgetUrl}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = props.searchImageWidgetUrl\n script.async = true\n document.head.appendChild(script)\n }\n}\n\naddScript(props.searchArticleWidgetUrl)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"d-flex flex-column gap-2\">\n <div>\n <Button\n type=\"success\"\n label=\"Cikk kiválasztása\"\n class=\"nowrap\"\n @click=\"selectArticle\"\n icon=\"fa-solid fa-newspaper\"\n />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"flex gap-2\">\n <div>\n <label for=\"articleId\" class=\"c-label\">Article ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Article ID\"\n disabled\n :value=\"localModel.article.id\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleSiteId\" class=\"c-label\">Site ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleSiteId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Site ID\"\n disabled\n :value=\"localModel.article.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div>\n <label for=\"articleTitle\" class=\"c-label\">Title</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Article title\"\n :value=\"localModel.article.title\"\n @input=\"localModel.article.title = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <div>\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=\"Article lead / description\"\n :value=\"localModel.article.lead\"\n @input=\"localModel.article.lead = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <hr class=\"separator\" />\n\n <div>\n <ImagePicker\n v-model=\"imageModel\"\n :details=\"false\"\n :editable=\"false\"\n :environment=\"props.environment\"\n :article-editor-url=\"props.searchArticleApiUrl\"\n :search-image-widget-url=\"props.searchImageWidgetUrl\"\n :image-base-url=\"props.imageBaseUrl\"\n :image-view-id=\"props.imageViewId\"\n />\n </div>\n\n <div>\n <label class=\"c-label\">Format</label>\n <DropdownSelect\n v-model=\"localModel.format\"\n :options=\"props.formats\"\n :config=\"{ placeholder: 'Select format...' }\"\n />\n </div>\n\n <Modal v-if=\"showArticleModal\" title=\"Search Article\" @close=\"showArticleModal = false\">\n <search-posts-widget\n :id=\"articleCausationId\"\n selector=\"true\"\n :apiurl=\"props.searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n style=\"height: 500px\"\n />\n </Modal>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
//#region src/utils/dataList.ts
|
|
2
|
-
function e(e, t) {
|
|
3
|
-
if (!t) return "";
|
|
4
|
-
let n = e[t.property];
|
|
5
|
-
return t.converter ? t.converter(n, e) : n;
|
|
6
|
-
}
|
|
7
|
-
function t(e) {
|
|
8
|
-
return e.isGroup === !0 && Array.isArray(e.items);
|
|
9
|
-
}
|
|
10
|
-
function n(e, t) {
|
|
11
|
-
return e.items.map((e) => ({
|
|
12
|
-
icon: e.icon,
|
|
13
|
-
label: e.label ?? "",
|
|
14
|
-
type: e.type,
|
|
15
|
-
size: e.label ? "small" : "normal",
|
|
16
|
-
callback: () => e.callback(t)
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { n as buildActionGroupMenuItems, e as getColumnValue, t as isActionGroup };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components55.js","names":[],"sources":["../src/utils/dataList.ts"],"sourcesContent":["import type { Column } from '@/types/data-list'\nimport type { Action, ActionGroup } from '@/types/data-list'\nimport type { DropdownMenuItem } from '@/components/DropdownMenu.vue'\n\nexport function getColumnValue(item: Record<string, unknown>, col: Column | undefined) {\n if (!col) return ''\n const value = (item as any)[col.property]\n return col.converter ? col.converter(value, item) : value\n}\n\nexport function isUuid(str: string): boolean {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str)\n}\n\nexport function isActionGroup(entry: Action | ActionGroup): entry is ActionGroup {\n return (entry as ActionGroup).isGroup === true && Array.isArray((entry as ActionGroup).items)\n}\n\nexport function buildActionGroupMenuItems(\n group: ActionGroup,\n item: Record<string, unknown>,\n): DropdownMenuItem[] {\n return group.items.map((action: Action) => ({\n icon: action.icon,\n label: action.label ?? '',\n type: action.type,\n size: action.label ? 'small' : 'normal',\n callback: () => action.callback(item),\n }))\n}\n"],"mappings":";AAIA,SAAgB,EAAe,GAA+B,GAAyB;CACrF,IAAI,CAAC,GAAK,OAAO;CACjB,IAAM,IAAS,EAAa,EAAI;CAChC,OAAO,EAAI,YAAY,EAAI,UAAU,GAAO,CAAI,IAAI;AACtD;AAMA,SAAgB,EAAc,GAAmD;CAC/E,OAAQ,EAAsB,YAAY,MAAQ,MAAM,QAAS,EAAsB,KAAK;AAC9F;AAEA,SAAgB,EACd,GACA,GACoB;CACpB,OAAO,EAAM,MAAM,KAAK,OAAoB;EAC1C,MAAM,EAAO;EACb,OAAO,EAAO,SAAS;EACvB,MAAM,EAAO;EACb,MAAM,EAAO,QAAQ,UAAU;EAC/B,gBAAgB,EAAO,SAAS,CAAI;CACtC,EAAE;AACJ"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import './src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
-
import "./admins-components54.js";
|
|
3
|
-
import e from "./admins-components62.js";
|
|
4
|
-
/* empty css */
|
|
5
|
-
//#region src/components/data-table/DataCards.vue
|
|
6
|
-
var t = e;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { t as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components64.js","names":[],"sources":["../src/components/data-table/DataCards.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DataListConfig, DataCardsSettings, DataListSettings } from '@/types/data-list'\nimport DataCell from './DataCell.vue'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataCardsSettingsDefaults } from '@/types/data-list'\nimport DropdownMenu from '@/components/DropdownMenu.vue'\nimport { getColumnValue } from '@/utils/dataList'\nimport { buildActionGroupMenuItems, isActionGroup } from '@/utils/dataList'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataCardsSettings | DataListSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataCardsSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n}>()\n\nconst { selectedKeys, toggle: toggleRow } = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst openRowIndexes = ref<Set<number>>(new Set())\n\nwatch(\n () => props.items,\n () => {\n openRowIndexes.value = new Set()\n },\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nconst cardHeaderColumns = computed(() => {\n const s = props.settings as any\n if (s?.cardHeaderColumns) {\n const cols = visibleColumns.value.filter((c) => s.cardHeaderColumns[c.property])\n if (cols.length > 0) {\n if (s.cardHeaderOrder) {\n const order = s.cardHeaderOrder as string[]\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return cols\n }\n }\n const primary = visibleColumns.value.filter((c) => c.primary)\n if (primary.length > 0) return primary\n\n return visibleColumns.value.slice(0, 1)\n})\n\nlet longPressTimer: ReturnType<typeof setTimeout> | null = null\nlet longPressTriggered = false\n\nfunction onPointerDown(e: PointerEvent, item: Record<string, unknown>) {\n if (!props.config.selectableAttr) return\n if (e.button !== 0) return\n longPressTriggered = false\n longPressTimer = setTimeout(() => {\n longPressTriggered = true\n toggleRow(item)\n }, 500)\n}\n\nfunction onPointerUp() {\n if (longPressTimer) {\n clearTimeout(longPressTimer)\n longPressTimer = null\n }\n}\n\nfunction onContextMenu(e: MouseEvent) {\n if (longPressTriggered) {\n e.preventDefault()\n }\n}\n\nfunction onHeaderClick(index: number) {\n if (longPressTriggered) {\n longPressTriggered = false\n return\n }\n toggleAccordion(index)\n}\n\nfunction toggleAccordion(index: number) {\n if (openRowIndexes.value.has(index)) {\n openRowIndexes.value.delete(index)\n } else {\n openRowIndexes.value.add(index)\n }\n openRowIndexes.value = new Set(openRowIndexes.value)\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-cards-wrapper\" :class=\"{ 'is-loading': loading }\">\n <div\n v-if=\"!loading || items.length > 0\"\n class=\"c-cards\"\n :class=\"{ 'is-compact': settings.compact }\"\n >\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n class=\"c-card\"\n :class=\"{\n 'is-open': openRowIndexes.has(index),\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n }\"\n >\n <button\n type=\"button\"\n class=\"c-card__header\"\n @click=\"onHeaderClick(index)\"\n @pointerdown=\"onPointerDown($event, item)\"\n @pointerup=\"onPointerUp()\"\n @pointerleave=\"onPointerUp()\"\n @contextmenu=\"onContextMenu\"\n >\n <span\n v-if=\"config.selectableAttr\"\n class=\"c-card__check-zone\"\n @click.stop=\"toggleRow(item)\"\n >\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </span>\n <span class=\"c-card__heading\">\n <span\n v-for=\"(col, i) in cardHeaderColumns\"\n :key=\"col.property\"\n class=\"c-card__heading-item\"\n >\n <span class=\"c-card__label\">{{ col.label }}</span>\n <span\n class=\"c-card__title\"\n :class=\"{ 'c-truncate': settings.compact && i === 0 }\"\n v-html=\"getColumnValue(item, col)\"\n ></span>\n </span>\n </span>\n <span class=\"c-card__icon\" aria-hidden=\"true\"\n ><i class=\"fa-solid fa-chevron-down\"></i\n ></span>\n </button>\n\n <div v-show=\"openRowIndexes.has(index)\" class=\"c-card__body\">\n <div\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-card__field\"\n tabindex=\"0\"\n >\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col)\"\n class=\"c-card__field-copy click-expand\"\n :value=\"getColumnValue(item, col)\"\n />\n </div>\n\n <div v-if=\"config.actions\" class=\"c-card__actions\" @click.stop>\n <template v-for=\"(action, ai) in config.actions\" :key=\"ai\">\n <DropdownMenu\n v-if=\"isActionGroup(action)\"\n :icon=\"action.icon\"\n :label=\"action.label\"\n :ariaLabel=\"action.ariaLabel\"\n :items=\"buildActionGroupMenuItems(action, item)\"\n v-bind=\"action.config\"\n />\n\n <Button\n v-else\n :type=\"action.type\"\n :icon=\"action.icon\"\n :label=\"action.cardLabel ?? action.label\"\n :ariaLabel=\"action.ariaLabel\"\n outline\n :disabled=\"action.disabled ? action.disabled(item) : false\"\n :callback=\"() => action.callback(item)\"\n v-bind=\"action.config\"\n />\n </template>\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"c-cards__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n <div v-if=\"loading && items.length > 0\" class=\"c-cards__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import './src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
-
import e from "./admins-components69.js";
|
|
3
|
-
/* empty css */
|
|
4
|
-
//#region src/components/data-table/DataPaginator.vue
|
|
5
|
-
var t = e;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { t as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components71.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst STORAGE_KEY_PREFIX = 'pagesize-'\n\nexport function getPageSize(storageKey: string): number {\n try {\n const raw = localStorage.getItem(STORAGE_KEY_PREFIX + storageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n /* ignore */\n }\n return 25\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\n\nconst props = defineProps<{ settings: PaginatorSettings; storageKey: string }>()\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n localStorage.setItem(STORAGE_KEY_PREFIX + props.storageKey, String(size))\n } catch {\n /* ignore */\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n emit('update:pagination', { page: 1, pageSize: size })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}–{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">…</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select class=\"c-paginator__select\" id=\"page-size-select\" :value=\"settings.pageSize\" @change=\"changePageSize\">\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
import e from "./admins-components6.js";
|
|
2
|
-
import t from "./admins-components14.js";
|
|
3
|
-
import n from "./admins-components16.js";
|
|
4
|
-
import r from "./admins-components19.js";
|
|
5
|
-
import i from "./admins-components22.js";
|
|
6
|
-
import a from "./admins-components27.js";
|
|
7
|
-
import o from "./admins-components75.js";
|
|
8
|
-
import { debounce as s } from "./admins-components76.js";
|
|
9
|
-
import { filterEmptyValues as c, getFilterParams as l, writeFilterParams as u } from "./admins-components77.js";
|
|
10
|
-
import { Fragment as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createVNode as g, defineComponent as _, mergeProps as v, normalizeClass as y, onMounted as b, openBlock as x, ref as S, renderList as C, toDisplayString as w, unref as T, watch as E, withCtx as D } from "vue";
|
|
11
|
-
//#region src/components/data-table/DataFilters.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
-
var ee = { class: "data-filters" }, te = {
|
|
13
|
-
key: 0,
|
|
14
|
-
class: "data-filters__separator"
|
|
15
|
-
}, O = ["for"], k = [
|
|
16
|
-
"placeholder",
|
|
17
|
-
"value",
|
|
18
|
-
"id",
|
|
19
|
-
"onInput"
|
|
20
|
-
], A = ["for"], j = [
|
|
21
|
-
"placeholder",
|
|
22
|
-
"value",
|
|
23
|
-
"id",
|
|
24
|
-
"onInput"
|
|
25
|
-
], M = ["for"], N = [
|
|
26
|
-
"placeholder",
|
|
27
|
-
"value",
|
|
28
|
-
"id",
|
|
29
|
-
"onInput"
|
|
30
|
-
], P = ["for"], F = { class: "c-label" }, I = { class: "c-label" }, L = { class: "data-filters__footer" }, R = {
|
|
31
|
-
key: 0,
|
|
32
|
-
class: "separator my-3"
|
|
33
|
-
}, z = /* @__PURE__ */ _({
|
|
34
|
-
__name: "DataFilters",
|
|
35
|
-
props: {
|
|
36
|
-
open: {
|
|
37
|
-
type: Boolean,
|
|
38
|
-
default: !1
|
|
39
|
-
},
|
|
40
|
-
items: {},
|
|
41
|
-
position: { default: "left" },
|
|
42
|
-
lazy: {
|
|
43
|
-
type: Boolean,
|
|
44
|
-
default: !0
|
|
45
|
-
},
|
|
46
|
-
handleUrl: {
|
|
47
|
-
type: Boolean,
|
|
48
|
-
default: !1
|
|
49
|
-
},
|
|
50
|
-
historyEnabled: {
|
|
51
|
-
type: Boolean,
|
|
52
|
-
default: !0
|
|
53
|
-
},
|
|
54
|
-
storageKey: {}
|
|
55
|
-
},
|
|
56
|
-
emits: ["close", "change"],
|
|
57
|
-
setup(_, { expose: z, emit: B }) {
|
|
58
|
-
let V = _, H = B, U = S(l(V.items) ?? {}), W = S({});
|
|
59
|
-
function G(e, t) {
|
|
60
|
-
t ? W.value[e] = t : delete W.value[e];
|
|
61
|
-
}
|
|
62
|
-
function K(e) {
|
|
63
|
-
return {
|
|
64
|
-
...e.config ?? {},
|
|
65
|
-
showTime: e.type === "datetime",
|
|
66
|
-
placeholder: e.placeholder ?? (e.type === "datetime" ? "Időpont" : "Dátum")
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
function q(e) {
|
|
70
|
-
return {
|
|
71
|
-
...e.config ?? {},
|
|
72
|
-
...e.fullWidth ? {} : { compact: !0 },
|
|
73
|
-
showTime: e.type === "datetimerange"
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
b(() => {
|
|
77
|
-
if (!V.handleUrl) return;
|
|
78
|
-
let e = l(V.items);
|
|
79
|
-
e && Object.keys(e).length > 0 && (U.value = {
|
|
80
|
-
...U.value,
|
|
81
|
-
...e
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
function J(e, t) {
|
|
85
|
-
U.value = {
|
|
86
|
-
...U.value,
|
|
87
|
-
[e]: t
|
|
88
|
-
}, V.lazy || (V.handleUrl && u(V.items, U.value), H("change", Y()));
|
|
89
|
-
}
|
|
90
|
-
function Y() {
|
|
91
|
-
let e = V.items.reduce((e, t) => {
|
|
92
|
-
let n = U.value[t.key];
|
|
93
|
-
return t.transformer ? {
|
|
94
|
-
...e,
|
|
95
|
-
...t.transformer(n) ?? {}
|
|
96
|
-
} : {
|
|
97
|
-
...e,
|
|
98
|
-
[t.key]: n
|
|
99
|
-
};
|
|
100
|
-
}, {});
|
|
101
|
-
return {
|
|
102
|
-
values: c(U.value),
|
|
103
|
-
transformed: c(e)
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
let X = s((e, t) => {
|
|
107
|
-
J(e, t);
|
|
108
|
-
});
|
|
109
|
-
function Z() {
|
|
110
|
-
V.handleUrl && u(V.items, U.value), H("change", Y()), H("close");
|
|
111
|
-
}
|
|
112
|
-
function ne() {
|
|
113
|
-
U.value = {}, V.handleUrl && u(V.items, U.value), H("change", Y());
|
|
114
|
-
}
|
|
115
|
-
let Q = S(!1);
|
|
116
|
-
E(U, (e) => {
|
|
117
|
-
Q.value = Object.values(e).some((e) => e !== null && e !== "" && e !== void 0);
|
|
118
|
-
}, {
|
|
119
|
-
deep: !0,
|
|
120
|
-
immediate: !0
|
|
121
|
-
});
|
|
122
|
-
function re(e) {
|
|
123
|
-
U.value = {
|
|
124
|
-
...U.value,
|
|
125
|
-
[e]: null
|
|
126
|
-
}, V.handleUrl && u(V.items, U.value), H("change", Y());
|
|
127
|
-
}
|
|
128
|
-
function ie(e) {
|
|
129
|
-
let t = W.value[e];
|
|
130
|
-
if (t) {
|
|
131
|
-
if (typeof t.focusAndOpen == "function") {
|
|
132
|
-
t.focusAndOpen();
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
typeof t.focus == "function" && t.focus();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function $(e) {
|
|
139
|
-
let t = { ...U.value };
|
|
140
|
-
for (let n of V.items) n.type !== "separator" && n.key in e && (t[n.key] = e[n.key] ?? null);
|
|
141
|
-
U.value = t, V.handleUrl && u(V.items, U.value), H("change", Y());
|
|
142
|
-
}
|
|
143
|
-
return z({
|
|
144
|
-
clearFilter: re,
|
|
145
|
-
focusFilter: ie
|
|
146
|
-
}), (s, c) => (x(), f(a, {
|
|
147
|
-
open: _.open,
|
|
148
|
-
title: "Szűrők",
|
|
149
|
-
position: _.position,
|
|
150
|
-
onClose: c[0] ||= (e) => H("close")
|
|
151
|
-
}, {
|
|
152
|
-
default: D(() => [
|
|
153
|
-
h("div", ee, [(x(!0), m(d, null, C(_.items, (e) => (x(), m("div", {
|
|
154
|
-
key: e.key,
|
|
155
|
-
class: y(["data-filters__field", { "data-filters__field--full": e.fullWidth || e.type === "separator" }])
|
|
156
|
-
}, [e.type === "separator" ? (x(), m("hr", te)) : e.type === "checkbox" ? (x(), f(n, v({
|
|
157
|
-
key: 1,
|
|
158
|
-
ref_for: !0,
|
|
159
|
-
ref: (t) => G(e.key, t),
|
|
160
|
-
"model-value": U.value[e.key] ?? !1,
|
|
161
|
-
label: e.label ?? e.key,
|
|
162
|
-
"onUpdate:modelValue": (t) => J(e.key, t)
|
|
163
|
-
}, { ref_for: !0 }, e.config), null, 16, [
|
|
164
|
-
"model-value",
|
|
165
|
-
"label",
|
|
166
|
-
"onUpdate:modelValue"
|
|
167
|
-
])) : (x(), m(d, { key: 2 }, [e.type === "text" ? (x(), m(d, { key: 0 }, [h("label", {
|
|
168
|
-
class: "c-label",
|
|
169
|
-
for: `df-${e.key}`
|
|
170
|
-
}, w(e.label ?? e.key), 9, O), e.type === "text" ? (x(), m("input", v({
|
|
171
|
-
key: 0,
|
|
172
|
-
type: "text",
|
|
173
|
-
class: "c-input-row",
|
|
174
|
-
placeholder: e.placeholder,
|
|
175
|
-
value: U.value[e.key] ?? "",
|
|
176
|
-
ref_for: !0,
|
|
177
|
-
ref: (t) => G(e.key, t),
|
|
178
|
-
id: `df-${e.key}`,
|
|
179
|
-
onInput: (t) => T(X)(e.key, t.target.value || null)
|
|
180
|
-
}, { ref_for: !0 }, e.config), null, 16, k)) : p("", !0)], 64)) : e.type === "textarea" ? (x(), m(d, { key: 1 }, [h("label", {
|
|
181
|
-
class: "c-label",
|
|
182
|
-
for: `df-${e.key}`
|
|
183
|
-
}, w(e.label ?? e.key), 9, A), h("textarea", v({
|
|
184
|
-
class: "c-input-row data-filters__textarea",
|
|
185
|
-
placeholder: e.placeholder,
|
|
186
|
-
value: U.value[e.key] ?? "",
|
|
187
|
-
ref_for: !0,
|
|
188
|
-
ref: (t) => G(e.key, t),
|
|
189
|
-
id: `df-${e.key}`
|
|
190
|
-
}, { ref_for: !0 }, e.config, { onInput: (t) => T(X)(e.key, t.target.value || null) }), null, 16, j)], 64)) : e.type === "number" ? (x(), m(d, { key: 2 }, [h("label", {
|
|
191
|
-
class: "c-label",
|
|
192
|
-
for: `df-${e.key}`
|
|
193
|
-
}, w(e.label ?? e.key), 9, M), h("input", v({
|
|
194
|
-
type: "number",
|
|
195
|
-
class: "c-input-row",
|
|
196
|
-
placeholder: e.placeholder,
|
|
197
|
-
value: U.value[e.key] ?? "",
|
|
198
|
-
ref_for: !0,
|
|
199
|
-
ref: (t) => G(e.key, t),
|
|
200
|
-
id: `df-${e.key}`
|
|
201
|
-
}, { ref_for: !0 }, e.config, { onInput: (t) => T(X)(e.key, t.target.value ? Number(t.target.value) : null) }), null, 16, N)], 64)) : e.type === "date" || e.type === "datetime" ? (x(), m(d, { key: 3 }, [h("label", {
|
|
202
|
-
class: "c-label",
|
|
203
|
-
for: `df-${e.key}`
|
|
204
|
-
}, w(e.label ?? e.key), 9, P), g(t, {
|
|
205
|
-
ref_for: !0,
|
|
206
|
-
ref: (t) => G(e.key, t),
|
|
207
|
-
id: `df-${e.key}`,
|
|
208
|
-
"model-value": U.value[e.key] ?? null,
|
|
209
|
-
config: K(e),
|
|
210
|
-
"onUpdate:modelValue": (t) => J(e.key, t)
|
|
211
|
-
}, null, 8, [
|
|
212
|
-
"id",
|
|
213
|
-
"model-value",
|
|
214
|
-
"config",
|
|
215
|
-
"onUpdate:modelValue"
|
|
216
|
-
])], 64)) : e.type === "daterange" || e.type === "datetimerange" ? (x(), m(d, { key: 4 }, [h("span", F, w(e.label ?? e.key), 1), g(r, {
|
|
217
|
-
ref_for: !0,
|
|
218
|
-
ref: (t) => G(e.key, t),
|
|
219
|
-
"model-value": U.value[e.key] ?? null,
|
|
220
|
-
config: q(e),
|
|
221
|
-
"onUpdate:modelValue": (t) => J(e.key, t)
|
|
222
|
-
}, null, 8, [
|
|
223
|
-
"model-value",
|
|
224
|
-
"config",
|
|
225
|
-
"onUpdate:modelValue"
|
|
226
|
-
])], 64)) : e.type === "dropdown" ? (x(), m(d, { key: 5 }, [h("span", I, w(e.label ?? e.key), 1), g(i, {
|
|
227
|
-
ref_for: !0,
|
|
228
|
-
ref: (t) => G(e.key, t),
|
|
229
|
-
"model-value": U.value[e.key] ?? null,
|
|
230
|
-
options: e.options ?? [],
|
|
231
|
-
config: {
|
|
232
|
-
...e.config ?? {},
|
|
233
|
-
placeholder: e.placeholder ?? "Válassz...",
|
|
234
|
-
clearable: !0,
|
|
235
|
-
filterable: !0
|
|
236
|
-
},
|
|
237
|
-
"onUpdate:modelValue": (t) => J(e.key, t)
|
|
238
|
-
}, null, 8, [
|
|
239
|
-
"model-value",
|
|
240
|
-
"options",
|
|
241
|
-
"config",
|
|
242
|
-
"onUpdate:modelValue"
|
|
243
|
-
])], 64)) : p("", !0)], 64))], 2))), 128))]),
|
|
244
|
-
h("div", L, [g(e, {
|
|
245
|
-
icon: "fa-solid fa-trash-can",
|
|
246
|
-
disabled: !Q.value,
|
|
247
|
-
label: "Szűrők törlése",
|
|
248
|
-
"aria-label": "Szűrők törlése",
|
|
249
|
-
size: "small",
|
|
250
|
-
onClick: ne
|
|
251
|
-
}, null, 8, ["disabled"]), g(e, {
|
|
252
|
-
label: "Szűrés",
|
|
253
|
-
"aria-label": "Szűrés",
|
|
254
|
-
type: "success",
|
|
255
|
-
onClick: Z
|
|
256
|
-
})]),
|
|
257
|
-
_.historyEnabled ? (x(), m("hr", R)) : p("", !0),
|
|
258
|
-
_.historyEnabled ? (x(), f(o, {
|
|
259
|
-
key: 1,
|
|
260
|
-
items: _.items,
|
|
261
|
-
values: U.value,
|
|
262
|
-
"storage-key": _.storageKey,
|
|
263
|
-
onLoad: $,
|
|
264
|
-
onChange: $
|
|
265
|
-
}, null, 8, [
|
|
266
|
-
"items",
|
|
267
|
-
"values",
|
|
268
|
-
"storage-key"
|
|
269
|
-
])) : p("", !0)
|
|
270
|
-
]),
|
|
271
|
-
_: 1
|
|
272
|
-
}, 8, ["open", "position"]));
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
//#endregion
|
|
276
|
-
export { z as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components78.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onMounted } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport { debounce } from '@/utils/debounce'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport { filterEmptyValues, getFilterParams, writeFilterParams } from '@/utils/dataFilters'\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean\n items: FilterItem[]\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n }>(),\n {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n },\n)\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(getFilterParams(props.items) ?? {})\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) {\n filterRefs.value[key] = el\n } else {\n delete filterRefs.value[key]\n }\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n const fromUrl = getFilterParams(props.items)\n if (fromUrl && Object.keys(fromUrl).length > 0) {\n values.value = { ...values.value, ...fromUrl }\n }\n})\n\nfunction update(key: string, value: any) {\n values.value = { ...values.value, [key]: value }\n\n if (!props.lazy) {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponseEmit())\n }\n}\n\nfunction buildResponseEmit() {\n const transformedValues = props.items.reduce((acc, item) => {\n const val = values.value[item.key]\n if (item.transformer) {\n return { ...acc, ...(item.transformer(val) ?? {}) }\n }\n return { ...acc, [item.key]: val }\n }, {})\n return {\n values: filterEmptyValues(values.value),\n transformed: filterEmptyValues(transformedValues),\n }\n}\n\nconst debouncedUpdate = debounce((key: string, value: any) => {\n update(key, value)\n})\n\nfunction confirm() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n\n emit('change', buildResponseEmit())\n emit('close')\n}\n\n/* function reset() {\n values.value = getDefaults()\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n} */\n\nfunction clearAll() {\n values.value = {}\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n\n emit('change', buildResponseEmit())\n}\n\nconst hasActiveFilters = ref(false)\nwatch(\n values,\n (v) => {\n hasActiveFilters.value = Object.values(v).some(\n (val) => val !== null && val !== '' && val !== undefined,\n )\n },\n { deep: true, immediate: true },\n)\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponseEmit())\n}\n\nfunction focusFilter(key: string) {\n const ref = (filterRefs.value as Record<string, any>)[key]\n if (!ref) return\n\n if (typeof ref.focusAndOpen === 'function') {\n ref.focusAndOpen()\n return\n }\n if (typeof ref.focus === 'function') {\n ref.focus()\n }\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) {\n next[item.key] = loaded[item.key] ?? null\n }\n }\n values.value = next\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponseEmit())\n}\n\ndefineExpose({ clearFilter, focusFilter })\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\">\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item.key, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else>\n <template v-if=\"item.type === 'text'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <input\n v-if=\"item.type === 'text'\"\n type=\"text\"\n class=\"c-input-row\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n @input=\"debouncedUpdate(item.key, ($event.target as HTMLInputElement).value || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'textarea'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <textarea\n class=\"c-input-row data-filters__textarea\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n v-bind=\"item.config\"\n @input=\"\n debouncedUpdate(item.key, ($event.target as HTMLTextAreaElement).value || null)\n \"\n />\n </template>\n <template v-else-if=\"item.type === 'number'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <input\n type=\"number\"\n class=\"c-input-row\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n v-bind=\"item.config\"\n @input=\"\n debouncedUpdate(\n item.key,\n ($event.target as HTMLInputElement).value\n ? Number(($event.target as HTMLInputElement).value)\n : null,\n )\n \"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"update(item.key, $event)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"update(item.key, $event)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as string) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @update:model-value=\"update(item.key, $event)\"\n />\n </template>\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <!-- <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Alaphelyzet visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n /> -->\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <hr v-if=\"historyEnabled\" class=\"separator my-3\" />\n <FiltersHistory\n v-if=\"historyEnabled\"\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n @change=\"onHistoryLoad\"\n />\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components92.js","names":[],"sources":["../src/utils/cmsContext.ts"],"sourcesContent":["export const getCurrentSite = (): string | undefined => {\n return (window as any).cmsContext?.currentSite\n}\n"],"mappings":";AAAA,IAAa,UACD,OAAe,YAAY"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { toast as e } from "./admins-components49.js";
|
|
2
|
-
import { isIpInUrl as t } from "./admins-components90.js";
|
|
3
|
-
import { createNativeFetch as n } from "./admins-components94.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
|
-
}
|
|
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
|
-
}
|
|
113
|
-
//#endregion
|
|
114
|
-
export { s as FetchDetails, a as FetchError, o as Methods, c as initRequest };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components95.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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"}
|
|
File without changes
|