@tager/admin-blog 0.3.41 → 1.0.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 (84) hide show
  1. package/dist/constants/paths.d.ts +6 -14
  2. package/dist/constants/routes.d.ts +5 -5
  3. package/dist/dev/App.vue.d.ts +5 -0
  4. package/dist/dev/config.d.ts +2 -0
  5. package/dist/dev/env.d.ts +1 -0
  6. package/dist/dev/main.d.ts +3 -0
  7. package/dist/hooks/index.d.ts +4 -4
  8. package/dist/hooks/useFetchCategories.d.ts +3 -6
  9. package/dist/hooks/useFetchCategory.d.ts +7 -8
  10. package/dist/hooks/useFetchModuleConfig.d.ts +3 -6
  11. package/dist/hooks/useFetchPosts.d.ts +3 -6
  12. package/dist/index.mjs +2363 -0
  13. package/dist/locales/apply.d.ts +1 -0
  14. package/dist/locales/en.d.ts +87 -80
  15. package/dist/locales/ru.d.ts +3 -3
  16. package/dist/main.d.ts +3 -4
  17. package/dist/services/requests.d.ts +59 -57
  18. package/dist/style.css +1 -0
  19. package/dist/typings/common.d.ts +1 -1
  20. package/dist/typings/model.d.ts +106 -104
  21. package/dist/utils/common.d.ts +2 -2
  22. package/dist/utils/paths.d.ts +8 -0
  23. package/dist/views/Categories/CategoryForm/CategoryForm.helpers.d.ts +7 -7
  24. package/dist/views/Categories/CategoryForm/CategoryForm.vue.d.ts +53 -116
  25. package/dist/views/Categories/CategoryForm/index.d.ts +1 -1
  26. package/dist/views/Categories/CategoryList/CategoryList.helpers.d.ts +7 -7
  27. package/dist/views/Categories/CategoryList/CategoryList.vue.d.ts +26 -57
  28. package/dist/views/Categories/CategoryList/hooks/index.d.ts +1 -1
  29. package/dist/views/Categories/CategoryList/hooks/useAdvancedSearch.d.ts +19 -16
  30. package/dist/views/Categories/CategoryList/index.d.ts +1 -1
  31. package/dist/views/Posts/PostForm/PostForm.helpers.d.ts +32 -30
  32. package/dist/views/Posts/PostForm/PostForm.vue.d.ts +2768 -9394
  33. package/dist/views/Posts/PostForm/components/TabList/TabList.types.d.ts +5 -5
  34. package/dist/views/Posts/PostForm/components/TabList/TabList.vue.d.ts +23 -0
  35. package/dist/views/Posts/PostForm/components/TabList/index.d.ts +2 -2
  36. package/dist/views/Posts/PostForm/index.d.ts +1 -1
  37. package/dist/views/Posts/PostList/PostList.helpers.d.ts +7 -7
  38. package/dist/views/Posts/PostList/PostList.vue.d.ts +38 -71
  39. package/dist/views/Posts/PostList/hooks/index.d.ts +1 -1
  40. package/dist/views/Posts/PostList/hooks/useAdvancedSearch.d.ts +27 -24
  41. package/dist/views/Posts/PostList/index.d.ts +1 -1
  42. package/package.json +51 -49
  43. package/src/constants/paths.ts +0 -22
  44. package/src/constants/routes.ts +9 -9
  45. package/src/dev/App.vue +56 -0
  46. package/src/dev/config.ts +23 -0
  47. package/src/dev/env.ts +17 -0
  48. package/src/dev/main.ts +49 -0
  49. package/src/hooks/useFetchCategories.ts +2 -7
  50. package/src/hooks/useFetchCategory.ts +3 -6
  51. package/src/hooks/useFetchModuleConfig.ts +2 -7
  52. package/src/hooks/useFetchPosts.ts +2 -5
  53. package/src/locales/apply.ts +9 -0
  54. package/src/locales/en.ts +10 -3
  55. package/src/locales/ru.ts +11 -2
  56. package/src/main.ts +3 -8
  57. package/src/services/requests.ts +2 -0
  58. package/src/typings/model.ts +2 -0
  59. package/src/utils/paths.ts +23 -0
  60. package/src/views/Categories/CategoryForm/CategoryForm.vue +81 -61
  61. package/src/views/Categories/CategoryList/CategoryList.helpers.ts +1 -1
  62. package/src/views/Categories/CategoryList/CategoryList.vue +86 -58
  63. package/src/views/Categories/CategoryList/hooks/useAdvancedSearch.ts +9 -12
  64. package/src/views/Posts/PostForm/PostForm.helpers.ts +15 -7
  65. package/src/views/Posts/PostForm/PostForm.vue +191 -112
  66. package/src/views/Posts/PostForm/components/TabList/TabList.vue +2 -2
  67. package/src/views/Posts/PostList/PostList.helpers.ts +9 -10
  68. package/src/views/Posts/PostList/PostList.vue +138 -105
  69. package/src/views/Posts/PostList/hooks/useAdvancedSearch.ts +22 -30
  70. package/CHANGELOG.md +0 -13
  71. package/dist/constants/menu.d.ts +0 -5
  72. package/dist/dev.d.ts +0 -1
  73. package/dist/index.esm.js +0 -5144
  74. package/dist/index.umd.js +0 -5171
  75. package/dist/router/index.d.ts +0 -4
  76. package/src/constants/menu.ts +0 -31
  77. package/src/dev.ts +0 -34
  78. package/src/router/index.ts +0 -40
  79. package/src/typings/sfc.d.ts +0 -12
  80. package/src/typings/shims-tsx.d.ts +0 -13
  81. package/src/typings/shims-vue.d.ts +0 -11
  82. package/src/typings/translate.d.ts +0 -10
  83. package/src/views/App.vue +0 -22
  84. package/src/views/Home.vue +0 -31
@@ -1,15 +1,15 @@
1
1
  <template>
2
- <page
2
+ <Page
3
3
  :title="pageTitle"
4
4
  :header-buttons="[
5
5
  {
6
- text: $t('blog:newPost'),
6
+ text: $i18n.t('blog:newPost'),
7
7
  href: getBlogPostFormUrl({ postId: 'create' }),
8
8
  },
9
9
  ]"
10
10
  >
11
- <template v-slot:content>
12
- <data-table
11
+ <template #content>
12
+ <DataTable
13
13
  :column-defs="columnDefs"
14
14
  :row-data="rowData"
15
15
  :loading="isRowDataLoading"
@@ -24,113 +24,131 @@
24
24
  data-table="blog-post"
25
25
  @change="handleChange"
26
26
  >
27
- <template v-slot:filters>
28
- <advanced-search :tags="tags" @click:tag="tagRemovalHandler">
27
+ <template #filters>
28
+ <AdvancedSearch :tags="tags" @click:tag="tagRemovalHandler">
29
29
  <div class="filters">
30
- <form-field-multi-select
31
- v-model="categoryFilter"
30
+ <FormFieldMultiSelect
31
+ v-model:selected-options="categoryFilter"
32
32
  :options="categoryOptionList"
33
33
  name="categoryFilter"
34
34
  :searchable="true"
35
- :label="$t('blog:category')"
35
+ :label="$i18n.t('blog:category')"
36
36
  class="filter"
37
37
  />
38
38
 
39
- <form-field-multi-select
39
+ <FormFieldMultiSelect
40
40
  v-if="isLangSpecific"
41
- v-model="languageFilter"
41
+ v-model:selected-options="languageFilter"
42
42
  :options="languageOptionList"
43
43
  name="languageFilter"
44
44
  :searchable="true"
45
- :label="$t('blog:language')"
45
+ :label="$i18n.t('blog:language')"
46
46
  class="filter"
47
47
  />
48
-
49
- <div class="filter">
50
- <div class="date-label">
51
- {{ $t('blog:dateOfPublication') }}
52
- </div>
53
-
54
- <div class="date-content">
55
- <form-field
56
- v-model="fromDateFilter"
57
- :label="$t('blog:From')"
58
- name="fromDateFilter"
59
- type="date"
60
- :max="toDateFilter"
61
- />
62
-
63
- <form-field
64
- v-model="toDateFilter"
65
- :label="$t('blog:To')"
66
- name="toDateFilter"
67
- type="date"
68
- :min="fromDateFilter"
69
- />
70
- </div>
71
- </div>
72
-
73
- <form-field-multi-select
74
- v-model="statusFilter"
48
+ <FormFieldMultiSelect
49
+ v-model:selected-options="statusFilter"
75
50
  :options="statusOptionList"
76
51
  name="statusFilter"
77
52
  :searchable="true"
78
- :label="$t('blog:status')"
53
+ :label="$i18n.t('blog:status')"
79
54
  class="filter"
80
55
  />
81
56
  </div>
82
- </advanced-search>
57
+
58
+ <div class="filters">
59
+ <FormField
60
+ v-model:value="fromDateFilter"
61
+ :label="$i18n.t('blog:dateOfPublicationFrom')"
62
+ name="fromDateFilter"
63
+ type="date"
64
+ :max="toDateFilter"
65
+ />
66
+
67
+ <FormField
68
+ v-model:value="toDateFilter"
69
+ :label="$i18n.t('blog:dateOfPublicationTo')"
70
+ name="toDateFilter"
71
+ type="date"
72
+ :min="fromDateFilter"
73
+ />
74
+ </div>
75
+ </AdvancedSearch>
83
76
  </template>
84
77
 
85
- <template v-slot:cell(actions)="{ row }">
86
- <base-button
78
+ <template #cell(status)="{ row }">
79
+ <div class="status">
80
+ <span>{{ getStatuses($i18n.t)[row.status] }}</span>
81
+ <span v-if="row.status === 'PUBLISHED' && row.archiveAt">
82
+ {{ $i18n.t('blog:archiveAtLabel') }}:
83
+ <i>{{ formatDateTime(new Date(row.archiveAt), true) }}</i>
84
+ </span>
85
+ <span v-if="row.status === 'DRAFT' && row.publishAt">
86
+ {{ $i18n.t('blog:publishAtLabel') }}:
87
+ <i>{{ formatDateTime(new Date(row.publishAt), true) }}</i>
88
+ </span>
89
+ </div>
90
+ </template>
91
+
92
+ <template #cell(actions)="{ row }">
93
+ <BaseButton
87
94
  variant="icon"
88
- :title="$t('blog:edit')"
95
+ :title="$i18n.t('blog:edit')"
89
96
  :disabled="isBusy(row.id)"
90
97
  :href="getBlogPostFormUrl({ postId: row.id })"
91
98
  >
92
- <svg-icon name="edit" />
93
- </base-button>
99
+ <EditIcon />
100
+ </BaseButton>
94
101
 
95
- <base-button
102
+ <BaseButton
96
103
  variant="icon"
97
- :title="$t('blog:clone')"
104
+ :title="$i18n.t('blog:clone')"
98
105
  :disabled="isBusy(row.id)"
99
106
  @click="handleResourceClone(row.id)"
100
107
  >
101
- <svg-icon name="contentCopy" />
102
- </base-button>
108
+ <ContentCopyIcon />
109
+ </BaseButton>
103
110
 
104
- <base-button
111
+ <BaseButton
105
112
  variant="icon"
106
- :title="$t('blog:remove')"
113
+ :title="$i18n.t('blog:remove')"
107
114
  :disabled="isBusy(row.id)"
108
115
  @click="handleResourceDelete(row.id)"
109
116
  >
110
- <svg-icon name="delete" />
111
- </base-button>
117
+ <DeleteIcon />
118
+ </BaseButton>
112
119
  </template>
113
- </data-table>
120
+ </DataTable>
114
121
  </template>
115
- </page>
122
+ </Page>
116
123
  </template>
117
124
 
118
125
  <script lang="ts">
119
- import { computed, defineComponent, watch } from '@vue/composition-api';
126
+ import { computed, defineComponent, watch } from 'vue';
120
127
  import isEqual from 'lodash.isequal';
121
128
  import pick from 'lodash.pick';
129
+ import { useRoute, useRouter } from 'vue-router';
122
130
 
123
131
  import {
124
132
  ColumnDefinition,
125
133
  OptionType,
126
134
  useDataTable,
127
- useTranslation,
135
+ formatDateTime,
136
+ AdvancedSearch,
137
+ FormFieldMultiSelect,
138
+ FormField,
139
+ BaseButton,
140
+ EditIcon,
141
+ ContentCopyIcon,
142
+ DeleteIcon,
143
+ DataTable,
128
144
  } from '@tager/admin-ui';
129
145
  import {
130
146
  Nullable,
147
+ useI18n,
131
148
  useResourceClone,
132
149
  useResourceDelete,
133
150
  } from '@tager/admin-services';
151
+ import { Page } from '@tager/admin-layout';
134
152
 
135
153
  import { useFetchModuleConfig, useFetchCategories } from '../../../hooks';
136
154
  import {
@@ -138,7 +156,7 @@ import {
138
156
  deleteBlogPost,
139
157
  getPosts,
140
158
  } from '../../../services/requests';
141
- import { getBlogPostFormUrl } from '../../../constants/paths';
159
+ import { getBlogPostFormUrl } from '../../../utils/paths';
142
160
  import {
143
161
  Category,
144
162
  Language,
@@ -147,28 +165,43 @@ import {
147
165
  } from '../../../typings/model';
148
166
  import { getStatusOptions } from '../PostForm/PostForm.helpers';
149
167
 
150
- import { convertPostList, getPostTableColumnDefs } from './PostList.helpers';
168
+ import {
169
+ convertPostList,
170
+ getPostTableColumnDefs,
171
+ getStatuses,
172
+ } from './PostList.helpers';
151
173
  import { useAdvancedSearch } from './hooks';
152
174
 
153
175
  export default defineComponent({
154
- name: 'Posts',
155
- setup(props, context) {
156
- const { t } = useTranslation(context);
176
+ name: 'PostList',
177
+ components: {
178
+ DeleteIcon,
179
+ ContentCopyIcon,
180
+ EditIcon,
181
+ BaseButton,
182
+ FormField,
183
+ FormFieldMultiSelect,
184
+ AdvancedSearch,
185
+ Page,
186
+ DataTable,
187
+ },
188
+ setup() {
189
+ const { t } = useI18n();
190
+ const route = useRoute();
191
+ const router = useRouter();
157
192
 
158
193
  const categoryId = computed<string>(() => {
159
- return Array.isArray(context.root.$route.query.category)
160
- ? context.root.$route.query.category[0] ?? ''
161
- : context.root.$route.query.category;
194
+ return Array.isArray(route.query.category)
195
+ ? (route.query.category[0] as string) ?? ''
196
+ : (route.query.category as string);
162
197
  });
163
198
 
164
199
  const statusOptionList = computed<OptionType[]>(() => getStatusOptions(t));
165
200
 
166
201
  /** Fetch module config **/
167
202
 
168
- const {
169
- data: moduleConfig,
170
- loading: isModuleConfigLoading,
171
- } = useFetchModuleConfig({ context });
203
+ const { data: moduleConfig, loading: isModuleConfigLoading } =
204
+ useFetchModuleConfig();
172
205
 
173
206
  const languageList = computed<Language[]>(
174
207
  () => moduleConfig.value?.languages ?? []
@@ -176,10 +209,8 @@ export default defineComponent({
176
209
 
177
210
  /** Fetch category list **/
178
211
 
179
- const {
180
- data: categoryList,
181
- loading: isCategoryListLoading,
182
- } = useFetchCategories({ context });
212
+ const { data: categoryList, loading: isCategoryListLoading } =
213
+ useFetchCategories();
183
214
 
184
215
  const selectedCategory = computed<Nullable<Category>>(() =>
185
216
  categoryId.value
@@ -191,12 +222,14 @@ export default defineComponent({
191
222
 
192
223
  const pageTitle = computed<string>(() => {
193
224
  return selectedCategory.value
194
- ? `${context.root.$t('blog:postsByCategory')} "${
195
- selectedCategory.value.name
196
- }"`
197
- : context.root.$t('blog:posts');
225
+ ? `${t('blog:postsByCategory')} "${selectedCategory.value.name}"`
226
+ : t('blog:posts');
198
227
  });
199
228
 
229
+ const isLangSpecific = computed<boolean>(
230
+ () => languageOptionList.value.length > 1
231
+ );
232
+
200
233
  /** Advanced search **/
201
234
 
202
235
  const {
@@ -211,16 +244,13 @@ export default defineComponent({
211
244
  tagRemovalHandler,
212
245
  statusFilter,
213
246
  } = useAdvancedSearch({
214
- context,
247
+ t,
248
+ route,
215
249
  categoryList,
216
250
  languageList,
217
251
  statusOptionList,
218
252
  });
219
253
 
220
- const isLangSpecific = computed<boolean>(
221
- () => languageOptionList.value.length > 1
222
- );
223
-
224
254
  /** Fetch Post list **/
225
255
 
226
256
  const {
@@ -242,7 +272,6 @@ export default defineComponent({
242
272
  ...filterParams.value,
243
273
  }),
244
274
  initialValue: [],
245
- context,
246
275
  resourceName: 'Blog post list',
247
276
  pageSize: 100,
248
277
  });
@@ -253,12 +282,12 @@ export default defineComponent({
253
282
  }
254
283
 
255
284
  const newQuery = {
256
- ...pick(context.root.$route.query, ['query', 'pageNumber']),
285
+ ...pick(route.query, ['query', 'pageNumber']),
257
286
  ...filterParams.value,
258
287
  };
259
288
 
260
- if (!isEqual(context.root.$route.query, newQuery)) {
261
- context.root.$router.replace({ query: newQuery });
289
+ if (!isEqual(route.query, newQuery)) {
290
+ router.replace({ query: newQuery });
262
291
  fetchPostList();
263
292
  }
264
293
  });
@@ -282,7 +311,6 @@ export default defineComponent({
282
311
  deleteResource: deleteBlogPost,
283
312
  resourceName: 'Post',
284
313
  onSuccess: fetchPostList,
285
- context,
286
314
  });
287
315
 
288
316
  const { isCloning, handleResourceClone } = useResourceClone({
@@ -291,7 +319,6 @@ export default defineComponent({
291
319
  successMessage: t('blog:cloneSuccess'),
292
320
  failureMessage: t('blog:cloneFailure'),
293
321
  onSuccessRedirectTo: (data: PostFull) => `/blog/posts/${data.id}`,
294
- context,
295
322
  });
296
323
 
297
324
  function isBusy(postId: number): boolean {
@@ -299,10 +326,12 @@ export default defineComponent({
299
326
  }
300
327
 
301
328
  const columnDefs = computed<ColumnDefinition<PostShort>[]>(() =>
302
- getPostTableColumnDefs(moduleConfig.value, context.root.$t)
329
+ getPostTableColumnDefs(moduleConfig.value, t)
303
330
  );
304
331
 
305
332
  return {
333
+ t,
334
+ formatDateTime,
306
335
  columnDefs,
307
336
  rowData: displayedPostList,
308
337
  handleResourceDelete,
@@ -330,6 +359,7 @@ export default defineComponent({
330
359
  statusOptionList,
331
360
  tags,
332
361
  tagRemovalHandler,
362
+ getStatuses,
333
363
 
334
364
  // Clone
335
365
  handleResourceClone,
@@ -341,27 +371,30 @@ export default defineComponent({
341
371
 
342
372
  <style scoped lang="scss">
343
373
  .filters {
344
- display: flex;
345
- margin: 0 -10px;
374
+ margin-bottom: 1rem;
375
+ width: 100%;
376
+ display: grid;
377
+ gap: 1rem;
378
+ grid-template-columns: 1fr 1fr;
346
379
 
347
380
  &:not(:first-child) {
348
- margin-top: 10px;
381
+ margin-top: 1rem;
349
382
  }
383
+ }
350
384
 
351
- .filter {
352
- padding: 10px 10px 0;
353
- width: 50%;
354
- margin: 0;
385
+ .status {
386
+ span:first-child {
387
+ display: block;
355
388
  }
356
- }
357
389
 
358
- .date-label {
359
- margin-bottom: 0.5rem;
360
- }
390
+ span:nth-child(2) {
391
+ display: block;
392
+ margin-top: 5px;
393
+ font-size: 0.8rem;
361
394
 
362
- .date-content {
363
- display: grid;
364
- grid-template-columns: repeat(2, 1fr);
365
- column-gap: 10px;
395
+ i {
396
+ display: block;
397
+ }
398
+ }
366
399
  }
367
400
  </style>
@@ -1,11 +1,6 @@
1
- import {
2
- computed,
3
- ComputedRef,
4
- Ref,
5
- ref,
6
- SetupContext,
7
- watch,
8
- } from '@vue/composition-api';
1
+ import { computed, ComputedRef, Ref, ref, watch } from 'vue';
2
+ import { TFunction } from 'i18next';
3
+ import { RouteLocationNormalizedLoaded } from 'vue-router';
9
4
 
10
5
  import {
11
6
  FilterTagType,
@@ -20,10 +15,12 @@ import { Category, Language } from '../../../../typings/model';
20
15
  import { getNameWithDepth } from '../../../../utils/common';
21
16
 
22
17
  interface Params {
23
- context: SetupContext;
24
- categoryList: ComputedRef<Category[]>;
18
+ categoryList: Ref<Category[]>;
25
19
  languageList: ComputedRef<Language[]>;
26
20
  statusOptionList: ComputedRef<OptionType[]>;
21
+
22
+ t: TFunction;
23
+ route: RouteLocationNormalizedLoaded;
27
24
  }
28
25
 
29
26
  interface State {
@@ -36,6 +33,7 @@ interface State {
36
33
  statusFilter: Ref<OptionType[]>;
37
34
  filterParams: ComputedRef<Record<string, string | string[]>>;
38
35
  tags: ComputedRef<FilterTagType[]>;
36
+
39
37
  tagRemovalHandler(event: FilterTagType): void;
40
38
  }
41
39
 
@@ -50,7 +48,8 @@ enum FilterTypes {
50
48
  export const dateFormat = (date: string) => date.split('-').reverse().join('.');
51
49
 
52
50
  export function useAdvancedSearch({
53
- context,
51
+ t,
52
+ route,
54
53
  categoryList,
55
54
  languageList,
56
55
  statusOptionList,
@@ -66,9 +65,10 @@ export function useAdvancedSearch({
66
65
 
67
66
  const initialCategoryFilter = computed<OptionType[]>(() => {
68
67
  const queryValue = getFilterParamAsStringArray(
69
- context.root.$route.query,
68
+ route.query,
70
69
  FilterTypes.CATEGORY
71
70
  );
71
+
72
72
  return categoryOptionList.value.filter(({ value }) =>
73
73
  queryValue.some((selected) => selected === value)
74
74
  );
@@ -88,7 +88,7 @@ export function useAdvancedSearch({
88
88
 
89
89
  const initialLanguageFilter = computed<OptionType[]>(() => {
90
90
  const queryValue = getFilterParamAsStringArray(
91
- context.root.$route.query,
91
+ route.query,
92
92
  FilterTypes.LANGUAGE
93
93
  );
94
94
  return languageOptionList.value.filter(({ value }) =>
@@ -105,11 +105,7 @@ export function useAdvancedSearch({
105
105
  /** From date **/
106
106
 
107
107
  const initialFromDateFilter = computed<string>(
108
- () =>
109
- getFilterParamAsString(
110
- context.root.$route.query,
111
- FilterTypes.FROM_DATE
112
- ) ?? ''
108
+ () => getFilterParamAsString(route.query, FilterTypes.FROM_DATE) ?? ''
113
109
  );
114
110
 
115
111
  const fromDateFilter = ref<string>(initialFromDateFilter.value);
@@ -121,9 +117,7 @@ export function useAdvancedSearch({
121
117
  /** To date **/
122
118
 
123
119
  const initialToDateFilter = computed<string>(
124
- () =>
125
- getFilterParamAsString(context.root.$route.query, FilterTypes.TO_DATE) ??
126
- ''
120
+ () => getFilterParamAsString(route.query, FilterTypes.TO_DATE) ?? ''
127
121
  );
128
122
 
129
123
  const toDateFilter = ref<string>(initialToDateFilter.value);
@@ -148,20 +142,18 @@ export function useAdvancedSearch({
148
142
  }
149
143
 
150
144
  if (fromDateFilter.value && !toDateFilter.value) {
151
- label = `${context.root.$t('blog:from')} ${dateFormat(
152
- fromDateFilter.value
153
- )}`;
145
+ label = `${t('blog:from')} ${dateFormat(fromDateFilter.value)}`;
154
146
  }
155
147
 
156
148
  if (!fromDateFilter.value && toDateFilter.value) {
157
- label = `${context.root.$t('blog:to')} ${dateFormat(toDateFilter.value)}`;
149
+ label = `${t('blog:to')} ${dateFormat(toDateFilter.value)}`;
158
150
  }
159
151
 
160
152
  return {
161
153
  value: '',
162
154
  label,
163
155
  name: FilterTypes.FROM_DATE,
164
- title: context.root.$t('blog:dateOfPublication'),
156
+ title: t('blog:dateOfPublication'),
165
157
  };
166
158
  });
167
159
 
@@ -169,7 +161,7 @@ export function useAdvancedSearch({
169
161
 
170
162
  const initialStatusFilter = computed<OptionType[]>(() => {
171
163
  const queryValue = getFilterParamAsStringArray(
172
- context.root.$route.query,
164
+ route.query,
173
165
  FilterTypes.STATUS
174
166
  );
175
167
  return statusOptionList.value.filter(({ value }) =>
@@ -235,20 +227,20 @@ export function useAdvancedSearch({
235
227
  value,
236
228
  label,
237
229
  name: FilterTypes.CATEGORY,
238
- title: context.root.$t('blog:category'),
230
+ title: t('blog:category'),
239
231
  })),
240
232
  ...languageFilter.value.map(({ value, label }) => ({
241
233
  value,
242
234
  label,
243
235
  name: FilterTypes.LANGUAGE,
244
- title: context.root.$t('blog:language'),
236
+ title: t('blog:language'),
245
237
  })),
246
238
  date.value,
247
239
  ...statusFilter.value.map(({ value, label }) => ({
248
240
  value,
249
241
  label,
250
242
  name: FilterTypes.STATUS,
251
- title: context.root.$t('blog:status'),
243
+ title: t('blog:status'),
252
244
  })),
253
245
  ].filter(isNotNullish)
254
246
  );
package/CHANGELOG.md DELETED
@@ -1,13 +0,0 @@
1
- # [0.0.2] (2020-06-06)
2
-
3
- ### Features
4
-
5
- * **services:** Use VUE_APP_API_ORIGIN env variable as initial api origin value in ApiService
6
-
7
- # [0.0.3] (2020-06-06)
8
-
9
- ### Bug Fixes
10
-
11
- * **services:** Use api origin from ApiService to configure url for file upload
12
-
13
-
@@ -1,5 +0,0 @@
1
- import { MenuItemType } from '@tager/admin-layout';
2
- import { TranslateFunction } from '@tager/admin-services';
3
- export declare function getBlogMenuItem(params: {
4
- t: TranslateFunction;
5
- }): MenuItemType;
package/dist/dev.d.ts DELETED
@@ -1 +0,0 @@
1
- import '@tager/admin-ui/dist/admin-ui.css';