@vixoniccom/news-internal 0.4.21-dev.3 → 0.4.21-dev.31
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/.github/workflows/npm-publish.yml +13 -3
- package/CHANGELOG.md +93 -0
- package/build/main.js +1 -1
- package/build/test/parameters.json +14 -25
- package/build.zip +0 -0
- package/configuration/appearanceGroup/generalInputs.ts +4 -2
- package/configuration/newsGroup/index.ts +2 -1
- package/configuration/newsGroup/newsInputs.ts +8 -8
- package/configuration.json +19 -8
- package/package.json +2 -2
- package/src/components/App.tsx +23 -2
- package/src/components/FontLoader.tsx +1 -0
- package/src/components/FormattedText/index.tsx +3 -8
- package/src/components/NewsContainer/index.tsx +49 -31
- package/src/parameters.d.ts +121 -74
- package/src/test/parameters.json +14 -25
|
@@ -37,30 +37,6 @@
|
|
|
37
37
|
"qrCodeUrl": "https://vixonic.com/",
|
|
38
38
|
"qrCodeTitle": "Entra a Vixonic",
|
|
39
39
|
"expirationDate": ""
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"$$hashKey": "object:583",
|
|
43
|
-
"description": "Miau",
|
|
44
|
-
"image": {
|
|
45
|
-
"__type": "kna-resource",
|
|
46
|
-
"filename": "cat.jpg"
|
|
47
|
-
},
|
|
48
|
-
"title": "Gato",
|
|
49
|
-
"qrCodeUrl": "https://vixonic.com/",
|
|
50
|
-
"qrCodeTitle": "Entra a Vixonic",
|
|
51
|
-
"expirationDate": ""
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"$$hashKey": "object:653",
|
|
55
|
-
"description": "Guau",
|
|
56
|
-
"image": {
|
|
57
|
-
"__type": "kna-resource",
|
|
58
|
-
"filename": "dog.jpg"
|
|
59
|
-
},
|
|
60
|
-
"title": "Perro",
|
|
61
|
-
"qrCodeUrl": "https://mandomedio.com/",
|
|
62
|
-
"qrCodeTitle": "Entra a Mandomedio",
|
|
63
|
-
"expirationDate": "2026-05-30"
|
|
64
40
|
}
|
|
65
41
|
],
|
|
66
42
|
"padding": "25px 80px 120px 20px",
|
|
@@ -91,6 +67,19 @@
|
|
|
91
67
|
},
|
|
92
68
|
"fontColor": "#336699",
|
|
93
69
|
"fontSize": "36"
|
|
94
|
-
}
|
|
70
|
+
},
|
|
71
|
+
"defaultMessageFormat": {
|
|
72
|
+
"font": {
|
|
73
|
+
"id": "7953953c-7029-4730-ae4d-cff4abd5288f",
|
|
74
|
+
"filename": "7953953c-7029-4730-ae4d-cff4abd5288f.ttf",
|
|
75
|
+
"__isAsset": true
|
|
76
|
+
},
|
|
77
|
+
"fontSize": 3.8,
|
|
78
|
+
"alignment": {
|
|
79
|
+
"horizontal": "left"
|
|
80
|
+
},
|
|
81
|
+
"fontColor": "#585858"
|
|
82
|
+
},
|
|
83
|
+
"defaultMessage": "No hay noticias disponibles en este momento."
|
|
95
84
|
}
|
|
96
85
|
}
|
package/build.zip
CHANGED
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Label, SelectInput, NumberInput } from '@vixoniccom/modules'
|
|
2
|
-
import { NumberRangeValue, Slider } from '@vixoniccom/modules/dist/lib'
|
|
2
|
+
import { NumberRangeValue, Slider, TextFormat, TextInput } from '@vixoniccom/modules/dist/lib'
|
|
3
3
|
|
|
4
4
|
export const generalInputs = [
|
|
5
5
|
new Label({ label: 'General' }),
|
|
@@ -51,5 +51,7 @@ export const generalInputs = [
|
|
|
51
51
|
{ label: 'Distribuidos', value: 'space-around' },
|
|
52
52
|
{ label: 'Separados', value: 'space-between' }
|
|
53
53
|
]
|
|
54
|
-
})
|
|
54
|
+
}),
|
|
55
|
+
new TextInput({ id: 'defaultMessage', label: 'Mensaje sin noticias', description: 'Mensaje a mostrar cuando no existen noticias o han caducado' }),
|
|
56
|
+
new TextFormat({ id: 'defaultMessageFormat', label: 'Formato del mensaje sin noticias' }),
|
|
55
57
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { List } from '@vixoniccom/modules'
|
|
1
|
+
import { List, NumberRangeValue } from '@vixoniccom/modules'
|
|
2
2
|
import { newsInputs } from './newsInputs'
|
|
3
3
|
|
|
4
4
|
export const newsGroup = new List({
|
|
@@ -7,6 +7,7 @@ export const newsGroup = new List({
|
|
|
7
7
|
description: 'Lista de noticias',
|
|
8
8
|
sortable: true,
|
|
9
9
|
itemSchema: [...newsInputs],
|
|
10
|
+
range: new NumberRangeValue(1, 200),
|
|
10
11
|
itemDisplayClass: '2-lines',
|
|
11
12
|
itemDisplayAttributes: {
|
|
12
13
|
title: 'title',
|
|
@@ -3,7 +3,7 @@ import { ShowValidations } from '../utils'
|
|
|
3
3
|
|
|
4
4
|
export const newsInputs = [
|
|
5
5
|
new TextInput({
|
|
6
|
-
id: '
|
|
6
|
+
id: 'titleShort',
|
|
7
7
|
label: 'Título corto',
|
|
8
8
|
required: true,
|
|
9
9
|
show: ShowValidations.shortTitleEnabled,
|
|
@@ -11,7 +11,7 @@ export const newsInputs = [
|
|
|
11
11
|
pattern: '^(?!\\s*$).+',
|
|
12
12
|
}),
|
|
13
13
|
new TextInput({
|
|
14
|
-
id: '
|
|
14
|
+
id: 'titleMedium',
|
|
15
15
|
label: 'Título mediano',
|
|
16
16
|
required: true,
|
|
17
17
|
show: ShowValidations.mediumTitleEnabled,
|
|
@@ -19,7 +19,7 @@ export const newsInputs = [
|
|
|
19
19
|
pattern: '^(?!\\s*$).+',
|
|
20
20
|
}),
|
|
21
21
|
new TextInput({
|
|
22
|
-
id: '
|
|
22
|
+
id: 'titleLarge',
|
|
23
23
|
label: 'Título largo',
|
|
24
24
|
required: true,
|
|
25
25
|
show: ShowValidations.largeTitleEnabled,
|
|
@@ -28,7 +28,7 @@ export const newsInputs = [
|
|
|
28
28
|
}),
|
|
29
29
|
|
|
30
30
|
new TextInput({
|
|
31
|
-
id: '
|
|
31
|
+
id: 'titleExtraLarge',
|
|
32
32
|
label: 'Título extra largo',
|
|
33
33
|
required: true,
|
|
34
34
|
show: ShowValidations.extraLargeTitleEnabled,
|
|
@@ -37,7 +37,7 @@ export const newsInputs = [
|
|
|
37
37
|
}),
|
|
38
38
|
|
|
39
39
|
new TextArea({
|
|
40
|
-
id: '
|
|
40
|
+
id: 'descriptionShort',
|
|
41
41
|
label: 'Descripción corta',
|
|
42
42
|
required: true,
|
|
43
43
|
show: ShowValidations.shortDescriptionEnabled,
|
|
@@ -47,7 +47,7 @@ export const newsInputs = [
|
|
|
47
47
|
}),
|
|
48
48
|
|
|
49
49
|
new TextArea({
|
|
50
|
-
id: '
|
|
50
|
+
id: 'descriptionMedium',
|
|
51
51
|
label: 'Descripción mediana',
|
|
52
52
|
required: true,
|
|
53
53
|
show: ShowValidations.mediumDescriptionEnabled,
|
|
@@ -57,7 +57,7 @@ export const newsInputs = [
|
|
|
57
57
|
}),
|
|
58
58
|
|
|
59
59
|
new TextArea({
|
|
60
|
-
id: '
|
|
60
|
+
id: 'descriptionLarge',
|
|
61
61
|
label: 'Descripción larga',
|
|
62
62
|
required: true,
|
|
63
63
|
show: ShowValidations.largeDescriptionEnabled,
|
|
@@ -67,7 +67,7 @@ export const newsInputs = [
|
|
|
67
67
|
}),
|
|
68
68
|
|
|
69
69
|
new TextArea({
|
|
70
|
-
id: '
|
|
70
|
+
id: 'descriptionExtraLarge',
|
|
71
71
|
label: 'Descripción extra larga',
|
|
72
72
|
required: true,
|
|
73
73
|
show: ShowValidations.extraLargeDescriptionEnabled,
|
package/configuration.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "list",
|
|
8
8
|
"itemSchema": [
|
|
9
9
|
{
|
|
10
|
-
"id": "
|
|
10
|
+
"id": "titleShort",
|
|
11
11
|
"label": "Título corto",
|
|
12
12
|
"show": "{{titleEnabled}} === true && ({{newsSizeSelect}} === 'short')",
|
|
13
13
|
"type": "text-input",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"range": "[1:25]"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"id": "
|
|
19
|
+
"id": "titleMedium",
|
|
20
20
|
"label": "Título mediano",
|
|
21
21
|
"show": "{{titleEnabled}} === true && ({{newsSizeSelect}} === 'medium')",
|
|
22
22
|
"type": "text-input",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"range": "[1:40]"
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
|
-
"id": "
|
|
28
|
+
"id": "titleLarge",
|
|
29
29
|
"label": "Título largo",
|
|
30
30
|
"show": "{{titleEnabled}} === true && ({{newsSizeSelect}} === 'large')",
|
|
31
31
|
"type": "text-input",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"range": "[1:50]"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
"id": "
|
|
37
|
+
"id": "titleExtraLarge",
|
|
38
38
|
"label": "Título extra largo",
|
|
39
39
|
"show": "{{titleEnabled}} === true && ({{newsSizeSelect}} === 'extra-large')",
|
|
40
40
|
"type": "text-input",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"range": "[1:70]"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"id": "
|
|
46
|
+
"id": "descriptionShort",
|
|
47
47
|
"label": "Descripción corta",
|
|
48
48
|
"show": "{{descriptionEnabled}} === true && ({{newsSizeSelect}} === 'short')",
|
|
49
49
|
"type": "text-area",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"html": true
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
"id": "
|
|
56
|
+
"id": "descriptionMedium",
|
|
57
57
|
"label": "Descripción mediana",
|
|
58
58
|
"show": "{{descriptionEnabled}} === true && ({{newsSizeSelect}} === 'medium')",
|
|
59
59
|
"type": "text-area",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"html": true
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
"id": "
|
|
66
|
+
"id": "descriptionLarge",
|
|
67
67
|
"label": "Descripción larga",
|
|
68
68
|
"show": "{{descriptionEnabled}} === true && ({{newsSizeSelect}} === 'large')",
|
|
69
69
|
"type": "text-area",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"html": true
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
|
-
"id": "
|
|
76
|
+
"id": "descriptionExtraLarge",
|
|
77
77
|
"label": "Descripción extra larga",
|
|
78
78
|
"show": "{{descriptionEnabled}} === true && ({{newsSizeSelect}} === 'extra-large')",
|
|
79
79
|
"type": "text-area",
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
}
|
|
120
120
|
],
|
|
121
121
|
"description": "Lista de noticias",
|
|
122
|
+
"range": "[1:200]",
|
|
122
123
|
"itemDisplayClass": "2-lines",
|
|
123
124
|
"itemDisplayAttributes": {
|
|
124
125
|
"title": "title",
|
|
@@ -250,6 +251,16 @@
|
|
|
250
251
|
"required": true,
|
|
251
252
|
"defaultValue": "center"
|
|
252
253
|
},
|
|
254
|
+
{
|
|
255
|
+
"id": "defaultMessage",
|
|
256
|
+
"label": "Sin noticias",
|
|
257
|
+
"type": "text-input"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"id": "defaultMessageFormat",
|
|
261
|
+
"label": "Formato mensaje sin noticias",
|
|
262
|
+
"type": "text-format"
|
|
263
|
+
},
|
|
253
264
|
{
|
|
254
265
|
"type": "label",
|
|
255
266
|
"label": "Elementos"
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"author": {
|
|
9
9
|
"name": ""
|
|
10
10
|
},
|
|
11
|
-
"version": "0.4.21-dev.
|
|
11
|
+
"version": "0.4.21-dev.31",
|
|
12
12
|
"scripts": {
|
|
13
13
|
"prepublish": "vixonic-module-packager --mode=build",
|
|
14
14
|
"watch": "vixonic-module-packager --mode=watch",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/react-transition-group": "^4.4.12",
|
|
37
37
|
"@types/uuid": "^9.0.1",
|
|
38
38
|
"@vixoniccom/module-packager": "^2.13.0-dev.1",
|
|
39
|
-
"@vixoniccom/modules": "^2.
|
|
39
|
+
"@vixoniccom/modules": "^2.25.0-dev.13",
|
|
40
40
|
"standard-version": "^9.5.0"
|
|
41
41
|
}
|
|
42
42
|
}
|
package/src/components/App.tsx
CHANGED
|
@@ -10,16 +10,37 @@ export type Props = {
|
|
|
10
10
|
|
|
11
11
|
export const App: React.FunctionComponent<Props> = ({ data }) => {
|
|
12
12
|
const [news, setNews] = useState<NewsItem[]>([])
|
|
13
|
+
|
|
14
|
+
const getPrefixBySize = (n: any, size: string, prefix: string): string => {
|
|
15
|
+
const prefixMap: { [key: string]: string } = {
|
|
16
|
+
'short': n[`${prefix}Short`],
|
|
17
|
+
'medium': n[`${prefix}Medium`],
|
|
18
|
+
'large': n[`${prefix}Large`],
|
|
19
|
+
'extra-large': n[`${prefix}ExtraLarge`]
|
|
20
|
+
}
|
|
21
|
+
return prefixMap[size] || n[`${prefix}Medium`] || ''
|
|
22
|
+
}
|
|
13
23
|
|
|
14
24
|
const parseNews = (data?: VixonicData): NewsItem[] => {
|
|
15
25
|
if (!data) return []
|
|
16
|
-
const { news } = data.parameters
|
|
26
|
+
const { news, newsSizeSelect } = data.parameters
|
|
17
27
|
const parsedNews = news?.map((n) => {
|
|
18
28
|
const { image, ...rest } = n
|
|
19
29
|
let parsedImage
|
|
20
30
|
const qrUrl = n.qrCodeUrl
|
|
21
31
|
if (image?.filename) parsedImage = `${data.downloadsPath}/${image.filename}`
|
|
22
|
-
|
|
32
|
+
|
|
33
|
+
let title = getPrefixBySize(n, newsSizeSelect ?? 'medium', 'title')
|
|
34
|
+
let description = getPrefixBySize(n, newsSizeSelect ?? 'medium', 'description')
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
...rest,
|
|
38
|
+
title,
|
|
39
|
+
description,
|
|
40
|
+
image: parsedImage,
|
|
41
|
+
id: uuid(),
|
|
42
|
+
qrCodeUrl: qrUrl
|
|
43
|
+
}
|
|
23
44
|
}).filter((n) => {
|
|
24
45
|
const { expirationDate } = n
|
|
25
46
|
const today = dayjs()
|
|
@@ -47,8 +47,8 @@ export const FormattedText: React.FunctionComponent<Props> = (props) => {
|
|
|
47
47
|
|
|
48
48
|
const getHorizontalAlignment = (alignment: Aligment) => {
|
|
49
49
|
if (alignment) {
|
|
50
|
-
const hA = alignment
|
|
51
|
-
return alignments.hasOwnProperty(hA) ? alignments[alignment
|
|
50
|
+
const hA = alignment?.horizontal
|
|
51
|
+
return alignments.hasOwnProperty(hA) ? alignments[alignment?.horizontal] : 'flex-start'
|
|
52
52
|
}
|
|
53
53
|
return 'flex-start'
|
|
54
54
|
}
|
|
@@ -79,9 +79,4 @@ export const FormattedText: React.FunctionComponent<Props> = (props) => {
|
|
|
79
79
|
)
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
format: {},
|
|
84
|
-
lineHeight: 1,
|
|
85
|
-
unit: 'vh',
|
|
86
|
-
maxChar: undefined,
|
|
87
|
-
}
|
|
82
|
+
|
|
@@ -4,6 +4,7 @@ import { StandardItem } from '../StandardItem'
|
|
|
4
4
|
import { GalleryItem } from '../GalleryItem'
|
|
5
5
|
import { GradientItem } from '../GradientItem'
|
|
6
6
|
import './styles.css'
|
|
7
|
+
import { FormattedText } from '../FormattedText'
|
|
7
8
|
|
|
8
9
|
type Props = {
|
|
9
10
|
data: VixonicData
|
|
@@ -12,7 +13,7 @@ type Props = {
|
|
|
12
13
|
|
|
13
14
|
export const NewsContainer: React.FunctionComponent<Props> = (props) => {
|
|
14
15
|
const { parameters, downloadsPath } = props.data
|
|
15
|
-
const { animationSpeed } = parameters
|
|
16
|
+
const { animationSpeed, defaultMessage } = parameters
|
|
16
17
|
const timerRef = useRef<number | undefined>(undefined)
|
|
17
18
|
const [currentIndex, setCurrentIndex] = useState(0)
|
|
18
19
|
const item = props.items.length > currentIndex ? props.items[currentIndex] : undefined
|
|
@@ -25,7 +26,7 @@ export const NewsContainer: React.FunctionComponent<Props> = (props) => {
|
|
|
25
26
|
}, [currentIndex, props.items])
|
|
26
27
|
|
|
27
28
|
const startTimeout = () => {
|
|
28
|
-
const showTime = props.data?.parameters?.showTime
|
|
29
|
+
const showTime = props.data?.parameters?.showTime ?? 10
|
|
29
30
|
const time = showTime * 1000
|
|
30
31
|
timerRef.current = window.setTimeout(nextItem, time)
|
|
31
32
|
}
|
|
@@ -36,36 +37,53 @@ export const NewsContainer: React.FunctionComponent<Props> = (props) => {
|
|
|
36
37
|
setCurrentIndex(newIndex)
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
backgroundColor: parameters.gradientBackgroundColor || 'red'
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
<CSSTransition key={item.id} classNames={parameters.animationType || 'fade'} timeout={(1750 / (animationSpeed || 1)) * 2}>
|
|
45
|
-
<div className={'news-item-container'}>
|
|
46
|
-
{
|
|
47
|
-
<GradientItem parameters={parameters} item={item} />
|
|
48
|
-
}
|
|
49
|
-
</div>
|
|
50
|
-
</CSSTransition>
|
|
51
|
-
}
|
|
52
|
-
</TransitionGroup>
|
|
53
|
-
|
|
54
|
-
} else {
|
|
55
|
-
return <TransitionGroup className='main-container' style={{
|
|
40
|
+
const getContainerStyles = () => {
|
|
41
|
+
if (parameters.template === 'gradient') {
|
|
42
|
+
return { backgroundColor: parameters.gradientBackgroundColor || 'red' }
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
56
45
|
padding: parameters.padding,
|
|
57
46
|
backgroundImage: parameters.background && `url("${downloadsPath}/${parameters.background.filename}")`
|
|
58
|
-
}
|
|
59
|
-
{item &&
|
|
60
|
-
<CSSTransition key={item.id} classNames={parameters.animationType || 'fade'} timeout={(1750 / (animationSpeed || 1)) * 2}>
|
|
61
|
-
<div className={'news-item-container'}>
|
|
62
|
-
{parameters.template !== 'gallery'
|
|
63
|
-
? <StandardItem parameters={parameters} item={item} />
|
|
64
|
-
: <GalleryItem parameters={parameters} item={item} />
|
|
65
|
-
}
|
|
66
|
-
</div>
|
|
67
|
-
</CSSTransition>
|
|
68
|
-
}
|
|
69
|
-
</TransitionGroup>
|
|
47
|
+
}
|
|
70
48
|
}
|
|
49
|
+
|
|
50
|
+
const renderNewsItem = (item: NewsItem) => {
|
|
51
|
+
if (parameters.template === 'gradient') {
|
|
52
|
+
return <GradientItem parameters={parameters} item={item} />
|
|
53
|
+
}
|
|
54
|
+
if (parameters.template === 'gallery') {
|
|
55
|
+
return <GalleryItem parameters={parameters} item={item} />
|
|
56
|
+
}
|
|
57
|
+
return <StandardItem parameters={parameters} item={item} />
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (props.items.length === 0 || !item) {
|
|
61
|
+
return (
|
|
62
|
+
<div className='main-container' style={getContainerStyles()}>
|
|
63
|
+
<div style={{
|
|
64
|
+
width: '100%',
|
|
65
|
+
height: '100%',
|
|
66
|
+
display: 'flex',
|
|
67
|
+
justifyContent: 'center',
|
|
68
|
+
alignItems: 'center'
|
|
69
|
+
}}>
|
|
70
|
+
<FormattedText text={defaultMessage || 'No existen noticias para mostrar'} format={parameters.defaultMessageFormat} />
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return (
|
|
77
|
+
<TransitionGroup className='main-container' style={getContainerStyles()}>
|
|
78
|
+
<CSSTransition
|
|
79
|
+
key={item.id}
|
|
80
|
+
classNames={parameters.animationType || 'fade'}
|
|
81
|
+
timeout={(1750 / (animationSpeed || 1)) * 2}
|
|
82
|
+
>
|
|
83
|
+
<div className={'news-item-container'}>
|
|
84
|
+
{renderNewsItem(item)}
|
|
85
|
+
</div>
|
|
86
|
+
</CSSTransition>
|
|
87
|
+
</TransitionGroup>
|
|
88
|
+
)
|
|
71
89
|
}
|
package/src/parameters.d.ts
CHANGED
|
@@ -1,80 +1,127 @@
|
|
|
1
1
|
declare type VixonicData = {
|
|
2
2
|
downloadsPath: string
|
|
3
|
-
services: { [key: string]: { data?: any
|
|
3
|
+
services: { [key: string]: { data?: any, updatedAt?: number } }
|
|
4
4
|
parameters: VixonicParameters
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
declare type VixonicParameters =
|
|
7
|
+
declare type VixonicParameters =
|
|
8
|
+
Partial<{
|
|
8
9
|
news: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
10
|
+
titleShort: string,
|
|
11
|
+
titleMedium: string,
|
|
12
|
+
titleLarge: string,
|
|
13
|
+
titleExtraLarge: string,
|
|
14
|
+
descriptionShort: string,
|
|
15
|
+
descriptionMedium: string,
|
|
16
|
+
descriptionLarge: string,
|
|
17
|
+
descriptionExtraLarge: string,
|
|
18
|
+
image: {
|
|
19
|
+
id?: string,
|
|
20
|
+
filename?: string,
|
|
21
|
+
extension?: string
|
|
22
|
+
},
|
|
23
|
+
qrCodeUrl: string,
|
|
24
|
+
qrCodeTitle: string,
|
|
25
|
+
expirationDate: string,
|
|
26
|
+
__id: string | undefined}[],
|
|
27
|
+
newsSizeSelect: 'short' | 'medium' | 'large' | 'extra-large',
|
|
28
|
+
template: 'standard' | 'gallery' | 'gradient',
|
|
29
|
+
showTime: number, animationSpeed: number,
|
|
30
|
+
animationType: 'fade' | 'crossFade',
|
|
31
|
+
textAlignment: 'flex-start' | 'flex-end' | 'center' | 'space-around' | 'space-between',
|
|
32
|
+
defaultMessage: string
|
|
33
|
+
defaultMessageFormat: {
|
|
34
|
+
fontSize?: number,
|
|
35
|
+
fontColor?: string,
|
|
36
|
+
alignment?: {
|
|
37
|
+
horizontal?: 'left' | 'right' | 'center'},
|
|
38
|
+
font?: {
|
|
39
|
+
filename: string;
|
|
40
|
+
id: string;
|
|
41
|
+
__isAsset: true}
|
|
42
|
+
}
|
|
43
|
+
titleEnabled: boolean,
|
|
44
|
+
titleFormat: {
|
|
45
|
+
fontSize?: number,
|
|
46
|
+
fontColor?: string,
|
|
47
|
+
alignment?: {
|
|
48
|
+
horizontal?: 'left' | 'right' | 'center'
|
|
49
|
+
},
|
|
50
|
+
font?: {
|
|
51
|
+
filename: string,
|
|
52
|
+
id: string,
|
|
53
|
+
__isAsset: true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
titleLineHeight: number,
|
|
57
|
+
descriptionEnabled: boolean,
|
|
58
|
+
descriptionFormat: {
|
|
59
|
+
fontSize?: number,
|
|
60
|
+
fontColor?: string,
|
|
61
|
+
alignment?: {
|
|
62
|
+
horizontal?: 'left' | 'right' | 'center'
|
|
63
|
+
},
|
|
64
|
+
font?: {
|
|
65
|
+
filename: string,
|
|
66
|
+
id: string,
|
|
67
|
+
__isAsset: true
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
descriptionLineHeight: number,
|
|
71
|
+
textSeparation: number,
|
|
72
|
+
imageEnabled: boolean,
|
|
73
|
+
imageSize: 'small' | 'medium' | 'large' | 'custom',
|
|
74
|
+
imageCustomSize: number,
|
|
75
|
+
imagePosition: 'top' | 'right' | 'bottom' | 'left',
|
|
76
|
+
imageMode: 'contain' | 'cover' | 'fill' | 'none',
|
|
77
|
+
imageStyle: 'normal' | 'rounded' | 'circle' | 'hex',
|
|
78
|
+
imageSeparation: number,
|
|
79
|
+
gradientBackgroundColor: string,
|
|
80
|
+
gradientRate: number,
|
|
81
|
+
gradientOrientation: 'left' | 'right',
|
|
82
|
+
gradientTitleEnabled: boolean,
|
|
83
|
+
gradientTitle: string,
|
|
84
|
+
gradientTitlePositionX: number,
|
|
85
|
+
gradientTitlePositionY: number,
|
|
86
|
+
gradientTitleFormat: {
|
|
87
|
+
fontSize?: number,
|
|
88
|
+
fontColor?: string,
|
|
89
|
+
alignment?: {
|
|
90
|
+
horizontal?: 'left' | 'right' | 'center'
|
|
91
|
+
},
|
|
92
|
+
font?: {
|
|
93
|
+
filename: string,
|
|
94
|
+
id: string,
|
|
95
|
+
__isAsset: true
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
barSize: 'small' | 'medium' | 'big',
|
|
99
|
+
barColor: string,
|
|
100
|
+
barOpacity: number,
|
|
101
|
+
iconVisible: boolean,
|
|
102
|
+
iconColor: string,
|
|
103
|
+
qrCodeEnabled: boolean,
|
|
104
|
+
qrCodeWidth: number,
|
|
105
|
+
qrCodeHeight: number,
|
|
106
|
+
qrCodePositionX: number,
|
|
107
|
+
qrCodePositionY: number,
|
|
108
|
+
qrCodeBackgroundColor: string,
|
|
109
|
+
qrCodeColor: string,
|
|
110
|
+
QrCodeTitleFormat: {
|
|
111
|
+
fontSize?: number,
|
|
112
|
+
fontColor?: string,
|
|
113
|
+
alignment?: {
|
|
114
|
+
horizontal?: 'left' | 'right' | 'center' },
|
|
115
|
+
font?: {
|
|
116
|
+
filename: string,
|
|
117
|
+
id: string,
|
|
118
|
+
__isAsset: true
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
background: {
|
|
122
|
+
id?: string,
|
|
123
|
+
filename?: string,
|
|
124
|
+
extension?: string
|
|
125
|
+
},
|
|
126
|
+
padding: string
|
|
127
|
+
}>
|