@aiconomy/aico-components 0.0.124 → 0.0.128
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/dist/aico-components/aico-components.esm.js +1 -1
- package/dist/aico-components/aico-components.esm.js.map +1 -1
- package/dist/aico-components/p-64d6361b.entry.js +18 -0
- package/dist/aico-components/p-64d6361b.entry.js.map +1 -0
- package/dist/cjs/{slick-d0dfbd94.js → aico-album-content_26.cjs.entry.js} +7395 -2
- package/dist/cjs/aico-album-content_26.cjs.entry.js.map +1 -0
- package/dist/cjs/aico-components.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/aico-article-detail/aico-article-detail.js +1 -1
- package/dist/collection/components/aico-article-detail/aico-article-detail.js.map +1 -1
- package/dist/collection/components/aico-fetch-article-detail/aico-fetch-article-detail.js +12 -6
- package/dist/collection/components/aico-fetch-article-detail/aico-fetch-article-detail.js.map +1 -1
- package/dist/components/aico-article-detail2.js +1 -1
- package/dist/components/aico-article-detail2.js.map +1 -1
- package/dist/components/aico-fetch-article-detail.js +12 -6
- package/dist/components/aico-fetch-article-detail.js.map +1 -1
- package/dist/esm/{slick-d11cf173.js → aico-album-content_26.entry.js} +7368 -2
- package/dist/esm/aico-album-content_26.entry.js.map +1 -0
- package/dist/esm/aico-components.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/aico-fetch-article-detail/aico-fetch-article-detail.d.ts +1 -1
- package/package.json +1 -1
- package/dist/aico-components/p-0b6e7469.entry.js +0 -2
- package/dist/aico-components/p-0b6e7469.entry.js.map +0 -1
- package/dist/aico-components/p-34bd96ca.js +0 -2
- package/dist/aico-components/p-34bd96ca.js.map +0 -1
- package/dist/aico-components/p-7f6fcb2e.entry.js +0 -2
- package/dist/aico-components/p-7f6fcb2e.entry.js.map +0 -1
- package/dist/aico-components/p-86c7fdc7.js +0 -13
- package/dist/aico-components/p-86c7fdc7.js.map +0 -1
- package/dist/aico-components/p-9ea26390.entry.js +0 -2
- package/dist/aico-components/p-9ea26390.entry.js.map +0 -1
- package/dist/aico-components/p-a4f7ae53.entry.js +0 -2
- package/dist/aico-components/p-a4f7ae53.entry.js.map +0 -1
- package/dist/aico-components/p-b9bc0400.entry.js +0 -7
- package/dist/aico-components/p-b9bc0400.entry.js.map +0 -1
- package/dist/aico-components/p-bf3db54a.entry.js +0 -2
- package/dist/aico-components/p-bf3db54a.entry.js.map +0 -1
- package/dist/aico-components/p-e187bbea.js +0 -2
- package/dist/aico-components/p-e187bbea.js.map +0 -1
- package/dist/aico-components/p-eedb0ba1.entry.js +0 -2
- package/dist/aico-components/p-eedb0ba1.entry.js.map +0 -1
- package/dist/cjs/ConditionalRender-52579540.js +0 -9
- package/dist/cjs/ConditionalRender-52579540.js.map +0 -1
- package/dist/cjs/aico-album-content_19.cjs.entry.js +0 -6924
- package/dist/cjs/aico-album-content_19.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-article-detail.cjs.entry.js +0 -135
- package/dist/cjs/aico-article-detail.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-fetch-article-detail.cjs.entry.js +0 -47
- package/dist/cjs/aico-fetch-article-detail.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-news-list-item.cjs.entry.js +0 -27
- package/dist/cjs/aico-news-list-item.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-news-list.cjs.entry.js +0 -96
- package/dist/cjs/aico-news-list.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-no-content_2.cjs.entry.js +0 -51
- package/dist/cjs/aico-no-content_2.cjs.entry.js.map +0 -1
- package/dist/cjs/aico-special-news-carousel.cjs.entry.js +0 -64
- package/dist/cjs/aico-special-news-carousel.cjs.entry.js.map +0 -1
- package/dist/cjs/slick-d0dfbd94.js.map +0 -1
- package/dist/cjs/utils-3d8a97f6.js +0 -114
- package/dist/cjs/utils-3d8a97f6.js.map +0 -1
- package/dist/esm/ConditionalRender-7460c386.js +0 -7
- package/dist/esm/ConditionalRender-7460c386.js.map +0 -1
- package/dist/esm/aico-album-content_19.entry.js +0 -6902
- package/dist/esm/aico-album-content_19.entry.js.map +0 -1
- package/dist/esm/aico-article-detail.entry.js +0 -131
- package/dist/esm/aico-article-detail.entry.js.map +0 -1
- package/dist/esm/aico-fetch-article-detail.entry.js +0 -43
- package/dist/esm/aico-fetch-article-detail.entry.js.map +0 -1
- package/dist/esm/aico-news-list-item.entry.js +0 -23
- package/dist/esm/aico-news-list-item.entry.js.map +0 -1
- package/dist/esm/aico-news-list.entry.js +0 -92
- package/dist/esm/aico-news-list.entry.js.map +0 -1
- package/dist/esm/aico-no-content_2.entry.js +0 -46
- package/dist/esm/aico-no-content_2.entry.js.map +0 -1
- package/dist/esm/aico-special-news-carousel.entry.js +0 -60
- package/dist/esm/aico-special-news-carousel.entry.js.map +0 -1
- package/dist/esm/slick-d11cf173.js.map +0 -1
- package/dist/esm/utils-f81eb958.js +0 -105
- package/dist/esm/utils-f81eb958.js.map +0 -1
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
const getAuthenticatedHeaders = (bearerToken) => {
|
|
2
|
-
const headers = new Headers();
|
|
3
|
-
headers.append('Accept', 'application/vnd.api+json');
|
|
4
|
-
headers.append('Authorization', `Bearer ${bearerToken}`);
|
|
5
|
-
return headers;
|
|
6
|
-
};
|
|
7
|
-
const getAuthenticatedRequest = (api, route, query, signal) => {
|
|
8
|
-
return new Request(new URL(`${route}?${query.toString()}`, api.baseApi), {
|
|
9
|
-
headers: getAuthenticatedHeaders(api.bearerToken),
|
|
10
|
-
signal,
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
function setArrayFilter(queryParams, key, values) {
|
|
15
|
-
for (const value of values) {
|
|
16
|
-
queryParams.append(key, value);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
async function fetchNewsArticles(api, page, size, signal, newsChannels = [], newsSellerIds = [], newsBrandIds = [], newsLanguageLocales = []) {
|
|
20
|
-
const queryParams = new URLSearchParams();
|
|
21
|
-
queryParams.set('page[number]', String(page));
|
|
22
|
-
queryParams.set('page[size]', String(size));
|
|
23
|
-
queryParams.set('sort', '-publishDate');
|
|
24
|
-
queryParams.set('filter[isActive]', '1');
|
|
25
|
-
queryParams.set('filter[excludeTag][]', 'Eisnull');
|
|
26
|
-
setArrayFilter(queryParams, 'filter[channel][]', newsChannels);
|
|
27
|
-
setArrayFilter(queryParams, 'filter[sellerIds][]', newsSellerIds);
|
|
28
|
-
setArrayFilter(queryParams, 'filter[brandId][]', newsBrandIds);
|
|
29
|
-
setArrayFilter(queryParams, 'filter[newsLanguage][]', newsLanguageLocales);
|
|
30
|
-
const request = getAuthenticatedRequest(api, 'news', queryParams, signal);
|
|
31
|
-
const response = await fetch(request);
|
|
32
|
-
return await response.json();
|
|
33
|
-
}
|
|
34
|
-
async function fetchSpecialNewsArticles(api, page, size, signal, newsChannels = [], newsSellerIds = [], newsBrandIds = [], newsLanguageLocales = []) {
|
|
35
|
-
const queryParams = new URLSearchParams();
|
|
36
|
-
queryParams.set('page[number]', String(page));
|
|
37
|
-
queryParams.set('page[size]', String(size));
|
|
38
|
-
queryParams.set('sort', '-publishDate');
|
|
39
|
-
queryParams.set('filter[isActive]', '1');
|
|
40
|
-
queryParams.set('filter[isSpecialArticle]', '1');
|
|
41
|
-
queryParams.set('filter[isLightVersion]', 'true');
|
|
42
|
-
queryParams.set('filter[excludeTag][]', 'Eisnull');
|
|
43
|
-
setArrayFilter(queryParams, 'filter[channel][]', newsChannels);
|
|
44
|
-
setArrayFilter(queryParams, 'filter[sellerIds][]', newsSellerIds);
|
|
45
|
-
setArrayFilter(queryParams, 'filter[brandId][]', newsBrandIds);
|
|
46
|
-
setArrayFilter(queryParams, 'filter[newsLanguage][]', newsLanguageLocales);
|
|
47
|
-
const request = getAuthenticatedRequest(api, 'news', queryParams, signal);
|
|
48
|
-
const response = await fetch(request);
|
|
49
|
-
return await response.json();
|
|
50
|
-
}
|
|
51
|
-
async function fetchNewsArticle(api, articleId, signal) {
|
|
52
|
-
const request = getAuthenticatedRequest(api, `news/${articleId}`, new URLSearchParams(), signal);
|
|
53
|
-
const response = await fetch(request);
|
|
54
|
-
const article = await response.json();
|
|
55
|
-
return article.data;
|
|
56
|
-
}
|
|
57
|
-
async function fetchNewsArticleByHandle(api, urlHandle, signal) {
|
|
58
|
-
const queryParams = new URLSearchParams();
|
|
59
|
-
queryParams.set('filter[urlHandle]', urlHandle);
|
|
60
|
-
const request = getAuthenticatedRequest(api, 'news', queryParams, signal);
|
|
61
|
-
const response = await fetch(request);
|
|
62
|
-
const articles = await response.json();
|
|
63
|
-
return articles.data[0];
|
|
64
|
-
}
|
|
65
|
-
function getImageWidthPrc(pictureSize) {
|
|
66
|
-
switch (pictureSize) {
|
|
67
|
-
case 'extra-small':
|
|
68
|
-
return '28%';
|
|
69
|
-
case 'small':
|
|
70
|
-
return '40%';
|
|
71
|
-
case 'large':
|
|
72
|
-
return '80%';
|
|
73
|
-
case 'extra large': // TODO: has - or not?
|
|
74
|
-
return '100%';
|
|
75
|
-
default:
|
|
76
|
-
return '60%';
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function getYoutubeURL(url) {
|
|
80
|
-
const regExp = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#&?]*).*/;
|
|
81
|
-
const match = url.match(regExp);
|
|
82
|
-
if (match && match[1].length == 11) {
|
|
83
|
-
return `https://www.youtube.com/embed/${match[1]}`;
|
|
84
|
-
}
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
function strIsNullOrEmptyOrWhitespace(str) {
|
|
88
|
-
if (!str || str === ' ') {
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
function getClass(conditions) {
|
|
94
|
-
const classes = [];
|
|
95
|
-
for (const kvp of Object.entries(conditions)) {
|
|
96
|
-
if (kvp[1]) {
|
|
97
|
-
classes.push(kvp[0]);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return classes.join(' ');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export { fetchNewsArticle as a, fetchNewsArticles as b, fetchSpecialNewsArticles as c, getClass as d, getYoutubeURL as e, fetchNewsArticleByHandle as f, getImageWidthPrc as g, strIsNullOrEmptyOrWhitespace as s };
|
|
104
|
-
|
|
105
|
-
//# sourceMappingURL=utils-f81eb958.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"utils-f81eb958.js","mappings":"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","names":[],"sources":["src/model/AicoApiRequestInfo.ts","src/utils/utils.ts"],"sourcesContent":["export type AicoApiRequestInfo = {\n baseApi: string;\n bearerToken: string;\n};\n\nexport const getAuthenticatedHeaders = (bearerToken: string): Headers => {\n const headers = new Headers();\n headers.append('Accept', 'application/vnd.api+json');\n headers.append('Authorization', `Bearer ${bearerToken}`);\n return headers;\n};\n\nexport const getAuthenticatedRequest = (api: AicoApiRequestInfo, route: string, query: URLSearchParams, signal?: AbortSignal): Request => {\n return new Request(new URL(`${route}?${query.toString()}`, api.baseApi), {\n headers: getAuthenticatedHeaders(api.bearerToken),\n signal,\n });\n};\n","import { Article } from '../components';\nimport { AicoApiRequestInfo, getAuthenticatedHeaders, getAuthenticatedRequest } from '../model/AicoApiRequestInfo';\nimport { NewsResponse } from '../model/NewsResponse';\n\nfunction setArrayFilter(queryParams: URLSearchParams, key: string, values: string[]) {\n for (const value of values) {\n queryParams.append(key, value);\n }\n}\n\nexport async function fetchNewsArticles(\n api: AicoApiRequestInfo,\n page: number,\n size: number,\n signal: AbortSignal,\n newsChannels: string[] = [],\n newsSellerIds: string[] = [],\n newsBrandIds: string[] = [],\n newsLanguageLocales: string[] = [],\n): Promise<NewsResponse> {\n const queryParams = new URLSearchParams();\n queryParams.set('page[number]', String(page));\n queryParams.set('page[size]', String(size));\n queryParams.set('sort', '-publishDate');\n queryParams.set('filter[isActive]', '1');\n queryParams.set('filter[excludeTag][]', 'Eisnull');\n setArrayFilter(queryParams, 'filter[channel][]', newsChannels);\n setArrayFilter(queryParams, 'filter[sellerIds][]', newsSellerIds);\n setArrayFilter(queryParams, 'filter[brandId][]', newsBrandIds);\n setArrayFilter(queryParams, 'filter[newsLanguage][]', newsLanguageLocales);\n\n const request = getAuthenticatedRequest(api, 'news', queryParams, signal);\n const response = await fetch(request);\n return await response.json();\n}\n\nexport async function fetchSpecialNewsArticles(\n api: AicoApiRequestInfo,\n page: number,\n size: number,\n signal: AbortSignal,\n newsChannels: string[] = [],\n newsSellerIds: string[] = [],\n newsBrandIds: string[] = [],\n newsLanguageLocales: string[] = [],\n): Promise<NewsResponse> {\n const queryParams = new URLSearchParams();\n queryParams.set('page[number]', String(page));\n queryParams.set('page[size]', String(size));\n queryParams.set('sort', '-publishDate');\n queryParams.set('filter[isActive]', '1');\n queryParams.set('filter[isSpecialArticle]', '1');\n queryParams.set('filter[isLightVersion]', 'true');\n queryParams.set('filter[excludeTag][]', 'Eisnull');\n setArrayFilter(queryParams, 'filter[channel][]', newsChannels);\n setArrayFilter(queryParams, 'filter[sellerIds][]', newsSellerIds);\n setArrayFilter(queryParams, 'filter[brandId][]', newsBrandIds);\n setArrayFilter(queryParams, 'filter[newsLanguage][]', newsLanguageLocales);\n\n const request = getAuthenticatedRequest(api, 'news', queryParams, signal);\n const response = await fetch(request);\n return await response.json();\n}\n\nexport async function fetchNewsArticle(api: AicoApiRequestInfo, articleId: string, signal: AbortSignal): Promise<Article> {\n const request = getAuthenticatedRequest(api, `news/${articleId}`, new URLSearchParams(), signal);\n const response = await fetch(request);\n const article = await response.json();\n return article.data;\n}\n\nexport async function fetchNewsArticleByHandle(api: AicoApiRequestInfo, urlHandle: string, signal: AbortSignal): Promise<Article> {\n const queryParams = new URLSearchParams();\n queryParams.set('filter[urlHandle]', urlHandle);\n\n const request = getAuthenticatedRequest(api, 'news', queryParams, signal);\n const response = await fetch(request);\n const articles = await response.json();\n return articles.data[0];\n}\n\nexport async function fetchArticle(url: string, bearerToken: string, signal: AbortSignal): Promise<Article> {\n const request = new Request(new URL(url), {\n headers: getAuthenticatedHeaders(bearerToken),\n signal,\n });\n const response = await fetch(request);\n return await response.json();\n}\n\nexport function getImageWidthPrc(pictureSize?: string): string {\n switch (pictureSize) {\n case 'extra-small':\n return '28%';\n case 'small':\n return '40%';\n case 'large':\n return '80%';\n case 'extra large': // TODO: has - or not?\n return '100%';\n default:\n return '60%';\n }\n}\n\nexport function getYoutubeURL(url: string): string | null {\n const regExp = /.*(?:youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=)([^#&?]*).*/;\n const match = url.match(regExp);\n if (match && match[1].length == 11) {\n return `https://www.youtube.com/embed/${match[1]}`;\n }\n\n return null;\n}\n\nexport function strIsNullOrEmptyOrWhitespace(str?: string | null): boolean {\n if (!str || str === ' ') {\n return true;\n }\n\n return false;\n}\n\nexport function getClass(conditions: { [key: string]: boolean }): string {\n const classes: string[] = [];\n for (const kvp of Object.entries(conditions)) {\n if (kvp[1]) {\n classes.push(kvp[0]);\n }\n }\n\n return classes.join(' ');\n}\n"],"version":3}
|