@tager/admin-banners 0.1.5 → 0.3.0

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 (80) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/constants/menu.d.ts +4 -1
  3. package/dist/constants/paths.d.ts +8 -15
  4. package/dist/constants/routes.d.ts +3 -4
  5. package/dist/hooks/index.d.ts +2 -0
  6. package/dist/hooks/useFetchBanner.d.ts +8 -0
  7. package/dist/hooks/useFetchBanners.d.ts +6 -0
  8. package/dist/hooks/useFetchZones.d.ts +6 -0
  9. package/dist/index.esm.js +3200 -875
  10. package/dist/index.umd.js +3213 -886
  11. package/dist/locales/en.d.ts +39 -0
  12. package/dist/locales/ru.d.ts +3 -0
  13. package/dist/{index.d.ts → main.d.ts} +1 -0
  14. package/dist/router/index.d.ts +4 -0
  15. package/dist/services/requests.d.ts +19 -35
  16. package/dist/typings/banners.d.ts +40 -0
  17. package/dist/typings/common.d.ts +1 -0
  18. package/dist/typings/model.d.ts +103 -15
  19. package/dist/typings/zones.d.ts +5 -0
  20. package/dist/utils/common.d.ts +2 -0
  21. package/dist/views/Banners/BannerForm/BannerForm.helpers.d.ts +5 -0
  22. package/dist/views/Banners/BannerForm/BannerForm.vue.d.ts +81 -0
  23. package/dist/views/Banners/BannerForm/index.d.ts +1 -0
  24. package/dist/views/Banners/BannerList/BannerList.helpers.d.ts +5 -0
  25. package/dist/views/Banners/BannerList/BannerList.vue.d.ts +55 -0
  26. package/dist/views/Banners/BannerList/hooks/index.d.ts +1 -0
  27. package/dist/views/Banners/BannerList/hooks/useAdvancedSearch.d.ts +21 -0
  28. package/dist/views/Banners/BannerList/index.d.ts +1 -0
  29. package/dist/views/Zones/ZoneList/ZoneList.helpers.d.ts +5 -0
  30. package/dist/views/Zones/ZoneList/ZoneList.vue.d.ts +28 -0
  31. package/dist/views/Zones/ZoneList/index.d.ts +1 -0
  32. package/package.json +76 -67
  33. package/src/config/config.json +19 -19
  34. package/src/constants/menu.ts +26 -12
  35. package/src/constants/paths.ts +19 -36
  36. package/src/constants/routes.ts +44 -66
  37. package/src/dev.ts +22 -34
  38. package/src/hooks/index.ts +2 -0
  39. package/src/hooks/useFetchBanner.ts +41 -0
  40. package/src/hooks/useFetchBanners.ts +23 -0
  41. package/src/hooks/useFetchZones.ts +23 -0
  42. package/src/locales/en.ts +43 -0
  43. package/src/locales/ru.ts +45 -0
  44. package/src/main.ts +12 -0
  45. package/src/router/index.ts +38 -0
  46. package/src/services/requests.ts +52 -107
  47. package/src/typings/banners.ts +44 -0
  48. package/src/typings/common.ts +1 -0
  49. package/src/typings/model.ts +121 -18
  50. package/src/typings/sfc.d.ts +12 -12
  51. package/src/typings/shims-tsx.d.ts +13 -13
  52. package/src/typings/shims-vue.d.ts +11 -10
  53. package/src/typings/translate.d.ts +10 -0
  54. package/src/typings/zones.ts +5 -0
  55. package/src/utils/common.ts +13 -0
  56. package/src/views/App.vue +22 -22
  57. package/src/views/Banners/BannerForm/BannerForm.helpers.ts +38 -0
  58. package/src/views/Banners/BannerForm/BannerForm.vue +236 -0
  59. package/src/views/Banners/BannerForm/index.ts +1 -0
  60. package/src/views/Banners/BannerList/BannerList.helpers.ts +93 -0
  61. package/src/views/Banners/BannerList/BannerList.vue +233 -0
  62. package/src/views/Banners/BannerList/hooks/index.ts +1 -0
  63. package/src/views/Banners/BannerList/hooks/useAdvancedSearch.ts +152 -0
  64. package/src/views/Banners/BannerList/index.ts +1 -0
  65. package/src/views/Home.vue +37 -0
  66. package/src/views/Zones/ZoneList/ZoneList.helpers.ts +34 -0
  67. package/src/views/Zones/ZoneList/ZoneList.vue +75 -0
  68. package/src/views/Zones/ZoneList/index.ts +1 -0
  69. package/dist/views/BannerAreaForm.vue.d.ts +0 -22
  70. package/dist/views/BannerAreaList.vue.d.ts +0 -17
  71. package/dist/views/BannerItemForm.vue.d.ts +0 -27
  72. package/dist/views/BannerItemList.vue.d.ts +0 -22
  73. package/src/index.ts +0 -3
  74. package/src/locales/en.js +0 -3
  75. package/src/locales/ru.js +0 -3
  76. package/src/views/BannerAreaForm.vue +0 -173
  77. package/src/views/BannerAreaList.vue +0 -176
  78. package/src/views/BannerItemForm.vue +0 -230
  79. package/src/views/BannerItemList.vue +0 -221
  80. package/typings/index.d.ts +0 -15
@@ -0,0 +1,39 @@
1
+ declare const EN: {
2
+ home: string;
3
+ zone: string;
4
+ zones: string;
5
+ banners: string;
6
+ bannerForm: string;
7
+ createBanner: string;
8
+ updateBanner: string;
9
+ link: string;
10
+ image: string;
11
+ openNewTab: string;
12
+ period: string;
13
+ from: string;
14
+ to: string;
15
+ disabled: string;
16
+ comment: string;
17
+ status: string;
18
+ bannerZoneIsDeleted: string;
19
+ newTab: string;
20
+ yes: string;
21
+ no: string;
22
+ edit: string;
23
+ remove: string;
24
+ actions: string;
25
+ date: string;
26
+ success: string;
27
+ error: string;
28
+ statuses: {
29
+ waiting: string;
30
+ archived: string;
31
+ active: string;
32
+ disabled: string;
33
+ };
34
+ bannerWasSuccessfullyCreated: string;
35
+ bannerWasSuccessfullyUpdated: string;
36
+ bannerCreationWasFailed: string;
37
+ bannerUpdateWasFailed: string;
38
+ };
39
+ export default EN;
@@ -0,0 +1,3 @@
1
+ import EN from './en';
2
+ declare const RU: typeof EN;
3
+ export default RU;
@@ -1,3 +1,4 @@
1
1
  export * from './constants/routes';
2
2
  export * from './constants/menu';
3
3
  export * from './constants/paths';
4
+ export * from './services/requests';
@@ -0,0 +1,4 @@
1
+ import { CustomRouteConfig } from '@tager/admin-layout';
2
+ export declare const HOME_ROUTE: CustomRouteConfig;
3
+ declare const router: import("vue-router").default;
4
+ export default router;
@@ -1,37 +1,21 @@
1
- import { Nullable, ResponseBody } from '@tager/admin-services';
2
- import { BannerArea, BannerItem } from '../typings/model';
3
- /** Banner area */
4
- export declare function getBannerAreaList(): Promise<ResponseBody<Array<BannerArea>>>;
5
- export declare function getBannerAreaById(areaId: number | string): Promise<ResponseBody<BannerArea>>;
6
- export declare function getBannerAreaByAlias(areaAlias: number | string): Promise<ResponseBody<BannerArea>>;
7
- export declare type BannerAreaCreatePayload = {
8
- alias: string;
9
- label: string;
10
- scenario: string;
11
- };
12
- export declare function createBannerArea(payload: BannerAreaCreatePayload): Promise<ResponseBody<BannerArea>>;
13
- export declare type BannerAreaUpdatePayload = BannerAreaCreatePayload;
14
- export declare function updateBannerArea(areaId: number | string, payload: BannerAreaUpdatePayload): Promise<ResponseBody<BannerArea>>;
15
- export declare function deleteBannerArea(areaId: number | string): Promise<{
16
- success: boolean;
17
- }>;
18
- /** Banners */
19
- export declare function getBannerItemList(areaId: number | string): Promise<ResponseBody<Array<BannerItem>>>;
20
- export declare function getBannerItemById(bannerItemId: number | string): Promise<ResponseBody<BannerItem>>;
21
- export declare type BannerItemCreatePayload = {
22
- title: string;
23
- text: string;
24
- buttonLink: Nullable<string>;
25
- buttonLabel: string;
26
- buttonIsNewTab: boolean;
27
- image: Nullable<number>;
28
- };
29
- export declare function createBannerItem(areaId: number | string, payload: BannerItemCreatePayload): Promise<ResponseBody<BannerItem>>;
30
- export declare type BannerItemUpdatePayload = BannerItemCreatePayload;
31
- export declare function updateBannerItem(bannerItemId: number | string, payload: BannerItemUpdatePayload): Promise<ResponseBody<BannerItem>>;
32
- export declare function deleteBannerItem(bannerItemId: number | string): Promise<{
33
- success: boolean;
34
- }>;
35
- export declare function moveBannerItem(bannerItemId: number | string, direction: 'up' | 'down'): Promise<{
1
+ import { ResponseBody } from '@tager/admin-services';
2
+ import { Zone } from '../typings/zones';
3
+ import { Banner, BannerPayload } from '../typings/banners';
4
+ /** Zones **/
5
+ export declare function getZones(params?: {
6
+ query?: string;
7
+ pageNumber?: number;
8
+ pageSize?: number;
9
+ }): Promise<ResponseBody<Zone[]>>;
10
+ /** Banners **/
11
+ export declare function getBanners(params?: {
12
+ query?: string;
13
+ pageNumber?: number;
14
+ pageSize?: number;
15
+ }): Promise<ResponseBody<Banner[]>>;
16
+ export declare function getBanner(bannerId: number | string): Promise<ResponseBody<Banner>>;
17
+ export declare function createBanner(payload: BannerPayload): Promise<ResponseBody<Banner>>;
18
+ export declare function updateBanner(bannerId: number | string, payload: BannerPayload): Promise<ResponseBody<Banner>>;
19
+ export declare function deleteBanner(bannerId: number | string): Promise<{
36
20
  success: boolean;
37
21
  }>;
@@ -0,0 +1,40 @@
1
+ import { FileType, Nullable } from '@tager/admin-services';
2
+ import { OptionType, SingleFileInputValueType } from '@tager/admin-ui';
3
+ export declare enum Status {
4
+ Waiting = "WAITING",
5
+ Archived = "ARCHIVED",
6
+ Active = "ACTIVE",
7
+ Disabled = "DISABLED"
8
+ }
9
+ export interface Banner {
10
+ id: number;
11
+ status: Status;
12
+ link: Nullable<string>;
13
+ image: Nullable<FileType>;
14
+ bannerZone: Nullable<string>;
15
+ openNewTab: boolean;
16
+ dateStart: Nullable<string>;
17
+ dateEnd: Nullable<string>;
18
+ disabled: boolean;
19
+ comment: Nullable<string>;
20
+ }
21
+ export interface BannerFormValues {
22
+ link: Nullable<string>;
23
+ image: Nullable<SingleFileInputValueType>;
24
+ bannerZone: Nullable<OptionType>;
25
+ openNewTab: boolean;
26
+ dateStart: string;
27
+ dateEnd: string;
28
+ disabled: boolean;
29
+ comment: string;
30
+ }
31
+ export interface BannerPayload {
32
+ link: Nullable<string>;
33
+ image: Nullable<string>;
34
+ bannerZone: string;
35
+ openNewTab: boolean;
36
+ dateStart: string;
37
+ dateEnd: string;
38
+ disabled: boolean;
39
+ comment: string;
40
+ }
@@ -0,0 +1 @@
1
+ export declare type Values<T> = T[keyof T];
@@ -1,16 +1,104 @@
1
1
  import { Nullable, FileType } from '@tager/admin-services';
2
- export declare type BannerArea = {
3
- id: number;
4
- alias: string;
5
- label: string;
6
- scenario: string;
7
- };
8
- export declare type BannerItem = {
9
- id: number;
10
- title: string;
11
- text: string;
12
- image: Nullable<FileType>;
13
- buttonLabel: string;
14
- buttonLink: Nullable<string>;
15
- buttonIsNewTab: boolean;
16
- };
2
+ import { FieldConfigUnion, FieldShortType, IncomingValueUnion } from '@tager/admin-dynamic-field';
3
+ import { OptionType, ShortCodeItemType, SingleFileInputValueType } from '@tager/admin-ui';
4
+ export interface SeoInfo {
5
+ readonly pageTitle: Nullable<string>;
6
+ readonly pageDescription: Nullable<string>;
7
+ readonly pageKeywords: Nullable<string>;
8
+ readonly openGraphTitle: Nullable<string>;
9
+ readonly openGraphDescription: Nullable<string>;
10
+ readonly openGraphImage: Nullable<FileType>;
11
+ }
12
+ export interface Category extends SeoInfo {
13
+ readonly id: number;
14
+ readonly name: string;
15
+ readonly isDefault: boolean;
16
+ readonly language: string;
17
+ readonly url: string;
18
+ readonly urlTemplate: string;
19
+ readonly urlAlias: string;
20
+ readonly postsCount: string;
21
+ readonly parent: Nullable<{
22
+ id: Nullable<number>;
23
+ name: string;
24
+ }>;
25
+ readonly depth: number;
26
+ }
27
+ export interface PostShort {
28
+ readonly id: number;
29
+ readonly title: string;
30
+ readonly url: string;
31
+ readonly excerpt: string;
32
+ readonly status: string;
33
+ readonly language: string;
34
+ readonly categories: Category[];
35
+ readonly datetime: string;
36
+ readonly image: Nullable<FileType>;
37
+ }
38
+ export interface PostFull extends SeoInfo {
39
+ readonly id: number;
40
+ readonly language: string;
41
+ readonly title: string;
42
+ readonly url: string;
43
+ readonly urlTemplate: string;
44
+ readonly urlAlias: string;
45
+ readonly datetime: string | null;
46
+ readonly status: string;
47
+ readonly excerpt: string;
48
+ readonly image: Nullable<FileType>;
49
+ readonly imageMobile: Nullable<FileType>;
50
+ readonly categories: Category[];
51
+ readonly body: string;
52
+ readonly coverImage: Nullable<FileType>;
53
+ readonly relatedPosts: Pick<PostShort, 'id' | 'title'>[];
54
+ readonly tags: string[];
55
+ readonly additionalFields: FieldShortType<IncomingValueUnion>[];
56
+ }
57
+ export interface Language {
58
+ readonly id: string;
59
+ readonly name: string;
60
+ }
61
+ export interface DefaultCategory {
62
+ readonly id: number;
63
+ readonly name: string;
64
+ readonly language: string;
65
+ }
66
+ export interface FileScenarios {
67
+ readonly cover: Nullable<string>;
68
+ readonly image: Nullable<string>;
69
+ readonly imageMobile: Nullable<string>;
70
+ readonly content: Nullable<string>;
71
+ readonly openGraph: Nullable<string>;
72
+ }
73
+ export interface ModuleConfig {
74
+ readonly urlPostTemplate: Nullable<string>;
75
+ readonly urlCategoryTemplate: Nullable<string>;
76
+ readonly languages: Language[];
77
+ readonly defaultCategories: DefaultCategory[];
78
+ readonly fields: FieldConfigUnion[];
79
+ readonly shortcodes: ShortCodeItemType[];
80
+ readonly fileScenarios: FileScenarios;
81
+ }
82
+ export interface CategoryFormValues {
83
+ language: Nullable<OptionType>;
84
+ name: string;
85
+ parent: OptionType<Nullable<number>>;
86
+ urlAlias: string;
87
+ isDefault: boolean;
88
+ pageTitle: Nullable<string>;
89
+ pageDescription: Nullable<string>;
90
+ pageKeywords: Nullable<string>;
91
+ openGraphTitle: Nullable<string>;
92
+ openGraphDescription: Nullable<string>;
93
+ openGraphImage: Nullable<SingleFileInputValueType>;
94
+ }
95
+ export interface CategoryPayload {
96
+ language: Nullable<string>;
97
+ name: string;
98
+ parent: Nullable<number>;
99
+ urlAlias: Nullable<string>;
100
+ isDefault: boolean;
101
+ pageTitle: Nullable<string>;
102
+ pageDescription: Nullable<string>;
103
+ openGraphImage: Nullable<string>;
104
+ }
@@ -0,0 +1,5 @@
1
+ export interface Zone {
2
+ id: string;
3
+ name: string;
4
+ bannersCount: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ export declare function generateNumberArray(length: number): Array<number>;
2
+ export declare function getNameWithDepth(name: string, depth: number): string;
@@ -0,0 +1,5 @@
1
+ import { OptionType } from '@tager/admin-ui';
2
+ import { Nullable } from '@tager/admin-services';
3
+ import { Banner, BannerFormValues, BannerPayload } from '../../../typings/banners';
4
+ export declare function convertBannerToFormValues(banner: Nullable<Banner>, zonesOptionList: OptionType[]): BannerFormValues;
5
+ export declare function convertBannerFormValuesToPayload(values: BannerFormValues): BannerPayload;
@@ -0,0 +1,81 @@
1
+ import { OptionType, TagerFormSubmitEvent } from '@tager/admin-ui';
2
+ declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
3
+ isCreation: import("@vue/composition-api").ComputedRef<boolean>;
4
+ isContentLoading: import("@vue/composition-api").ComputedRef<boolean>;
5
+ isSubmitting: import("@vue/composition-api").Ref<boolean>;
6
+ values: import("@vue/composition-api").Ref<{
7
+ link: import("@tager/admin-services").Nullable<string>;
8
+ image: {
9
+ id: string;
10
+ file: {
11
+ id: string;
12
+ mime: string;
13
+ name: string;
14
+ size: number;
15
+ url: string;
16
+ };
17
+ caption?: string | null | undefined;
18
+ } | null;
19
+ bannerZone: {
20
+ value: string;
21
+ label: string;
22
+ disabled?: boolean | undefined;
23
+ } | null;
24
+ openNewTab: boolean;
25
+ dateStart: string;
26
+ dateEnd: string;
27
+ disabled: boolean;
28
+ comment: string;
29
+ }>;
30
+ errors: import("@vue/composition-api").Ref<{
31
+ [x: string]: string;
32
+ }>;
33
+ submitForm: (event: TagerFormSubmitEvent) => void;
34
+ bannerListUrl: "/banners";
35
+ zonesOptionList: import("@vue/composition-api").ComputedRef<OptionType<string>[]>;
36
+ }> & {
37
+ [key: string]: unknown;
38
+ }, {}, {}, unknown, {
39
+ [x: string]: any;
40
+ }> & import("vue").VueConstructor<import("vue").default> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
41
+ [x: string]: any;
42
+ }, import("@vue/composition-api").ShallowUnwrapRef<{
43
+ isCreation: import("@vue/composition-api").ComputedRef<boolean>;
44
+ isContentLoading: import("@vue/composition-api").ComputedRef<boolean>;
45
+ isSubmitting: import("@vue/composition-api").Ref<boolean>;
46
+ values: import("@vue/composition-api").Ref<{
47
+ link: import("@tager/admin-services").Nullable<string>;
48
+ image: {
49
+ id: string;
50
+ file: {
51
+ id: string;
52
+ mime: string;
53
+ name: string;
54
+ size: number;
55
+ url: string;
56
+ };
57
+ caption?: string | null | undefined;
58
+ } | null;
59
+ bannerZone: {
60
+ value: string;
61
+ label: string;
62
+ disabled?: boolean | undefined;
63
+ } | null;
64
+ openNewTab: boolean;
65
+ dateStart: string;
66
+ dateEnd: string;
67
+ disabled: boolean;
68
+ comment: string;
69
+ }>;
70
+ errors: import("@vue/composition-api").Ref<{
71
+ [x: string]: string;
72
+ }>;
73
+ submitForm: (event: TagerFormSubmitEvent) => void;
74
+ bannerListUrl: "/banners";
75
+ zonesOptionList: import("@vue/composition-api").ComputedRef<OptionType<string>[]>;
76
+ }>, {
77
+ [x: string]: any;
78
+ }, {}, {}, {
79
+ [x: string]: any;
80
+ }>);
81
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default } from './BannerForm.vue';
@@ -0,0 +1,5 @@
1
+ import { TFunction } from 'i18next';
2
+ import { ColumnDefinition } from '@tager/admin-ui';
3
+ import { Banner, Status } from '../../../typings/banners';
4
+ export declare function getStatus(type: Status, t: TFunction): string;
5
+ export declare function getColumnDefs(t: TFunction): ColumnDefinition<Banner>[];
@@ -0,0 +1,55 @@
1
+ import { ColumnDefinition } from '@tager/admin-ui';
2
+ import { Banner } from '../../../typings/banners';
3
+ import { getBannersBannerFormUrl } from '../../../constants/paths';
4
+ declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
5
+ columnDefs: import("@vue/composition-api").ComputedRef<ColumnDefinition<Banner>[]>;
6
+ isRowDataLoading: import("@vue/composition-api").ComputedRef<boolean>;
7
+ rowData: import("@vue/composition-api").Ref<Banner[]>;
8
+ errorMessage: import("@vue/composition-api").Ref<import("@tager/admin-services").Nullable<string>>;
9
+ handleChange: (event: import("@tager/admin-ui").TableChangeEvent) => void;
10
+ getBannersBannerFormUrl: typeof getBannersBannerFormUrl;
11
+ searchQuery: import("@vue/composition-api").Ref<string>;
12
+ pageNumber: import("@vue/composition-api").Ref<number>;
13
+ pageCount: import("@vue/composition-api").ComputedRef<number>;
14
+ pageSize: import("@vue/composition-api").Ref<number>;
15
+ isBusy: (bannerId: number) => boolean;
16
+ handleResourceDelete: (entityId: string | number) => void;
17
+ zoneFilter: import("@vue/composition-api").Ref<import("@tager/admin-ui").OptionType<string>[]>;
18
+ zonesOptionList: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").OptionType<string>[]>;
19
+ dateFilter: import("@vue/composition-api").Ref<string>;
20
+ statusFilter: import("@vue/composition-api").Ref<import("@tager/admin-ui").OptionType<string>[]>;
21
+ statusesOptionList: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").OptionType<string>[]>;
22
+ tags: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").FilterTagType[]>;
23
+ tagRemovalHandler: (event: import("@tager/admin-ui").FilterTagType) => void;
24
+ }> & {
25
+ [key: string]: unknown;
26
+ }, {}, {}, unknown, {
27
+ [x: string]: any;
28
+ }> & import("vue").VueConstructor<import("vue").default> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
29
+ [x: string]: any;
30
+ }, import("@vue/composition-api").ShallowUnwrapRef<{
31
+ columnDefs: import("@vue/composition-api").ComputedRef<ColumnDefinition<Banner>[]>;
32
+ isRowDataLoading: import("@vue/composition-api").ComputedRef<boolean>;
33
+ rowData: import("@vue/composition-api").Ref<Banner[]>;
34
+ errorMessage: import("@vue/composition-api").Ref<import("@tager/admin-services").Nullable<string>>;
35
+ handleChange: (event: import("@tager/admin-ui").TableChangeEvent) => void;
36
+ getBannersBannerFormUrl: typeof getBannersBannerFormUrl;
37
+ searchQuery: import("@vue/composition-api").Ref<string>;
38
+ pageNumber: import("@vue/composition-api").Ref<number>;
39
+ pageCount: import("@vue/composition-api").ComputedRef<number>;
40
+ pageSize: import("@vue/composition-api").Ref<number>;
41
+ isBusy: (bannerId: number) => boolean;
42
+ handleResourceDelete: (entityId: string | number) => void;
43
+ zoneFilter: import("@vue/composition-api").Ref<import("@tager/admin-ui").OptionType<string>[]>;
44
+ zonesOptionList: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").OptionType<string>[]>;
45
+ dateFilter: import("@vue/composition-api").Ref<string>;
46
+ statusFilter: import("@vue/composition-api").Ref<import("@tager/admin-ui").OptionType<string>[]>;
47
+ statusesOptionList: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").OptionType<string>[]>;
48
+ tags: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").FilterTagType[]>;
49
+ tagRemovalHandler: (event: import("@tager/admin-ui").FilterTagType) => void;
50
+ }>, {
51
+ [x: string]: any;
52
+ }, {}, {}, {
53
+ [x: string]: any;
54
+ }>);
55
+ export default _default;
@@ -0,0 +1 @@
1
+ export { useAdvancedSearch } from './useAdvancedSearch';
@@ -0,0 +1,21 @@
1
+ import { ComputedRef, Ref, SetupContext } from '@vue/composition-api';
2
+ import { TFunction } from 'i18next';
3
+ import { FilterTagType, OptionType } from '@tager/admin-ui';
4
+ import { Zone } from '../../../../typings/zones';
5
+ interface Params {
6
+ context: SetupContext;
7
+ t: TFunction;
8
+ zoneList: ComputedRef<Zone[]>;
9
+ }
10
+ interface State {
11
+ zoneFilter: Ref<OptionType[]>;
12
+ zonesOptionList: ComputedRef<OptionType[]>;
13
+ dateFilter: Ref<string>;
14
+ statusFilter: Ref<OptionType[]>;
15
+ statusesOptionList: ComputedRef<OptionType[]>;
16
+ filterParams: ComputedRef<Record<string, string | string[]>>;
17
+ tags: ComputedRef<FilterTagType[]>;
18
+ tagRemovalHandler(event: FilterTagType): void;
19
+ }
20
+ export declare function useAdvancedSearch({ context, t, zoneList }: Params): State;
21
+ export {};
@@ -0,0 +1 @@
1
+ export { default } from './BannerList.vue';
@@ -0,0 +1,5 @@
1
+ import { TFunction } from 'i18next';
2
+ import { ColumnDefinition } from '@tager/admin-ui';
3
+ import { Zone } from '../../../typings/zones';
4
+ export declare function getColumnDefs(t: TFunction): ColumnDefinition<Zone>[];
5
+ export declare function getLinkToBannersByZone(zoneId: number): string;
@@ -0,0 +1,28 @@
1
+ import { Zone } from '../../../typings/zones';
2
+ import { getLinkToBannersByZone } from './ZoneList.helpers';
3
+ declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
4
+ columnDefs: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").ColumnDefinition<Zone>[]>;
5
+ isRowDataLoading: import("@vue/composition-api").ComputedRef<boolean>;
6
+ rowData: import("@vue/composition-api").Ref<Zone[]>;
7
+ errorMessage: import("@vue/composition-api").Ref<import("@tager/admin-services").Nullable<string>>;
8
+ handleChange: (event: import("@tager/admin-ui").TableChangeEvent) => void;
9
+ getLinkToBannersByZone: typeof getLinkToBannersByZone;
10
+ }> & {
11
+ [key: string]: unknown;
12
+ }, {}, {}, unknown, {
13
+ [x: string]: any;
14
+ }> & import("vue").VueConstructor<import("vue").default> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
15
+ [x: string]: any;
16
+ }, import("@vue/composition-api").ShallowUnwrapRef<{
17
+ columnDefs: import("@vue/composition-api").ComputedRef<import("@tager/admin-ui").ColumnDefinition<Zone>[]>;
18
+ isRowDataLoading: import("@vue/composition-api").ComputedRef<boolean>;
19
+ rowData: import("@vue/composition-api").Ref<Zone[]>;
20
+ errorMessage: import("@vue/composition-api").Ref<import("@tager/admin-services").Nullable<string>>;
21
+ handleChange: (event: import("@tager/admin-ui").TableChangeEvent) => void;
22
+ getLinkToBannersByZone: typeof getLinkToBannersByZone;
23
+ }>, {
24
+ [x: string]: any;
25
+ }, {}, {}, {
26
+ [x: string]: any;
27
+ }>);
28
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default } from './ZoneList.vue';