@webitel/ui-sdk 26.8.81 → 26.8.82

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "26.8.81",
3
+ "version": "26.8.82",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "dev": "npm run docs:dev",
@@ -369,6 +369,10 @@
369
369
  "types": "./types/modules/UploadCsvPopup/index.d.ts",
370
370
  "import": "./src/modules/UploadCsvPopup/index.ts"
371
371
  },
372
+ "./modules/SaveCopyPopup": {
373
+ "types": "./types/modules/SaveCopyPopup/index.d.ts",
374
+ "import": "./src/modules/SaveCopyPopup/index.ts"
375
+ },
372
376
  "./plugins*": {
373
377
  "types": "./types/plugins*",
374
378
  "import": "./src/plugins*"
@@ -662,6 +662,10 @@ export default deepmerge(
662
662
  'Are you sure you want\n to delete {count} record? | Are you sure you want\n to delete {count} records?',
663
663
  deleteAll: 'ALL',
664
664
  },
665
+ saveCopyPopup: {
666
+ title: 'Save a copy',
667
+ name: 'Copy name',
668
+ },
665
669
  dummy: {
666
670
  text: 'There are no records yet',
667
671
  },
@@ -651,6 +651,10 @@ export default {
651
651
  '¿Estás seguro de que quieres\n eliminar {count} registro? | ¿Estás seguro de que quieres\n eliminar {count} registros?',
652
652
  deleteAll: 'TODO',
653
653
  },
654
+ saveCopyPopup: {
655
+ title: 'Guardar una copia',
656
+ name: 'Nombre de la copia',
657
+ },
654
658
  dummy: {
655
659
  text: 'Aún no hay registros',
656
660
  },
@@ -652,6 +652,10 @@ export default {
652
652
  'Сіз шынымен {count} жазбаны жойғыңыз келетініне сенімдісіз бе? | Сіз шынымен {count} жазбаны жойғыңыз келетініне сенімдісіз бе?',
653
653
  deleteAll: 'БАРЛЫҒЫ',
654
654
  },
655
+ saveCopyPopup: {
656
+ title: 'Көшірмені сақтау',
657
+ name: 'Көшірме атауы',
658
+ },
655
659
  dummy: {
656
660
  text: 'Әзірге жазбалар жоқ',
657
661
  },
@@ -652,6 +652,10 @@ export default {
652
652
  'Czy na pewno chcesz\n usunąć {count} rekord? | Czy na pewno chcesz\n usunąć {count} rekordy?',
653
653
  deleteAll: 'WSZYSTKO',
654
654
  },
655
+ saveCopyPopup: {
656
+ title: 'Zapisz kopię',
657
+ name: 'Nazwa kopii',
658
+ },
655
659
  dummy: {
656
660
  text: 'Nie ma jeszcze żadnych rekordów',
657
661
  },
@@ -657,6 +657,10 @@ export default {
657
657
  'Sigur doriți să ștergeți {count} înregistrare? | Sigur doriți să ștergeți {count} înregistrări?',
658
658
  deleteAll: 'TOATE',
659
659
  },
660
+ saveCopyPopup: {
661
+ title: 'Salvează o copie',
662
+ name: 'Numele copiei',
663
+ },
660
664
  dummy: {
661
665
  text: 'Nu există încă înregistrări',
662
666
  },
@@ -647,6 +647,10 @@ export default {
647
647
  'Вы уверенны, что хотите\n удалить {count} запись? | Вы уверенны, что хотите\n удалить {count} записей?',
648
648
  deleteAll: 'ВСЕ',
649
649
  },
650
+ saveCopyPopup: {
651
+ title: 'Сохранить копию',
652
+ name: 'Имя копии',
653
+ },
650
654
  dummy: {
651
655
  text: 'Записи в разделе еще не созданы',
652
656
  },
@@ -645,6 +645,10 @@ export default {
645
645
  'Ви впевнені, що хочете\n видалити {count} запис? | Ви впевнені, що хочете\n видалити {count} записів?',
646
646
  deleteAll: 'ВСІ',
647
647
  },
648
+ saveCopyPopup: {
649
+ title: 'Зберегти копію',
650
+ name: "Ім'я копії",
651
+ },
648
652
  dummy: {
649
653
  text: 'Записи у розділі ще не створені',
650
654
  },
@@ -657,6 +657,10 @@ export default {
657
657
  "{count} ta yozuvni o'chirishni xohlaysizmi? | {count} ta yozuvni o'chirishni xohlaysizmi?",
658
658
  deleteAll: 'HAMMASI',
659
659
  },
660
+ saveCopyPopup: {
661
+ title: 'Nusxasini saqlash',
662
+ name: 'Nusxa nomi',
663
+ },
660
664
  dummy: {
661
665
  text: "Hali yozuvlar yo'q",
662
666
  },
@@ -655,6 +655,10 @@ export default {
655
655
  'Bạn có chắc chắn muốn\n xóa {count} bản ghi? | Bạn có chắc chắn muốn\n xóa {count} bản ghi?',
656
656
  deleteAll: 'TẤT CẢ',
657
657
  },
658
+ saveCopyPopup: {
659
+ title: 'Lưu bản sao',
660
+ name: 'Tên bản sao',
661
+ },
658
662
  dummy: {
659
663
  text: 'Chưa có bản ghi nào',
660
664
  },
@@ -0,0 +1,73 @@
1
+ <template>
2
+ <wt-popup
3
+ v-bind="attrs"
4
+ :shown="shown"
5
+ size="sm"
6
+ class="save-copy-popup"
7
+ @close="emit('close')"
8
+ >
9
+ <template #title>
10
+ {{ t('webitelUI.saveCopyPopup.title') }}
11
+ </template>
12
+ <template #main>
13
+ <wt-input-text
14
+ v-model:model-value="name"
15
+ required
16
+ :label="t('webitelUI.saveCopyPopup.name')"
17
+ @keyup.enter="save"
18
+ />
19
+ </template>
20
+ <template #actions>
21
+ <wt-button
22
+ :disabled="!name"
23
+ @click="save"
24
+ >
25
+ {{ t('reusable.save') }}
26
+ </wt-button>
27
+ <wt-button
28
+ color="secondary"
29
+ @click="emit('close')"
30
+ >
31
+ {{ t('reusable.close') }}
32
+ </wt-button>
33
+ </template>
34
+ </wt-popup>
35
+ </template>
36
+
37
+ <script setup lang="ts">
38
+ import { ref, useAttrs, watch } from 'vue';
39
+ import { useI18n } from 'vue-i18n';
40
+
41
+ const { t } = useI18n();
42
+
43
+ interface Props {
44
+ shown?: boolean;
45
+ }
46
+
47
+ const props = withDefaults(defineProps<Props>(), {
48
+ shown: false,
49
+ });
50
+
51
+ const emit = defineEmits<{
52
+ save: [
53
+ name: string,
54
+ ];
55
+ close: [];
56
+ }>();
57
+
58
+ const attrs = useAttrs();
59
+
60
+ const name = ref('');
61
+
62
+ watch(
63
+ () => props.shown,
64
+ (isShown) => {
65
+ if (isShown) name.value = '';
66
+ },
67
+ );
68
+
69
+ function save() {
70
+ if (!name.value) return;
71
+ emit('save', name.value);
72
+ }
73
+ </script>
@@ -0,0 +1,37 @@
1
+ import { ref } from 'vue';
2
+ import { useI18n } from 'vue-i18n';
3
+
4
+ export const useSaveCopyPopup = (onSave: (name: string) => unknown) => {
5
+ const { t } = useI18n();
6
+
7
+ const isSaveCopyPopupShown = ref(false);
8
+
9
+ function openSaveCopyPopup() {
10
+ isSaveCopyPopupShown.value = true;
11
+ }
12
+
13
+ function closeSaveCopyPopup() {
14
+ isSaveCopyPopupShown.value = false;
15
+ }
16
+
17
+ async function saveCopy(name: string) {
18
+ await onSave(name);
19
+ closeSaveCopyPopup();
20
+ }
21
+
22
+ const saveOptions = [
23
+ {
24
+ text: t('webitelUI.saveCopyPopup.title'),
25
+ callback: openSaveCopyPopup,
26
+ },
27
+ ];
28
+
29
+ return {
30
+ isSaveCopyPopupShown,
31
+ saveOptions,
32
+
33
+ openSaveCopyPopup,
34
+ closeSaveCopyPopup,
35
+ saveCopy,
36
+ };
37
+ };
@@ -0,0 +1,2 @@
1
+ export { default as SaveCopyPopup } from './components/save-copy-popup.vue';
2
+ export { useSaveCopyPopup } from './composables/useSaveCopyPopup';