@designcrowd/library.brand-page 5.6.4-fluid-6 → 5.6.4-scroll-2
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/lib/src/brand-page/components/page/Page.mixin.d.ts +3 -4
- package/lib/src/brand-page/components/page/Page.mixin.js +22 -24
- package/lib/src/brand-page/components/text-wrapper/TextWrapper.mixin.d.ts +44 -0
- package/lib/src/brand-page/components/text-wrapper/TextWrapper.mixin.js +38 -0
- package/lib/src/brand-page/models/index.d.ts +0 -3
- package/lib/src/brand-page/utils/migration.util.js +0 -5
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +2 -206
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +3 -5
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +0 -11
- package/lib/src/brand-page-maker/convertors/text-size-value.convertor.js +3 -3
- package/lib/src/brand-page-maker/utils/text.util.d.ts +2 -2
- package/lib/src/brand-page-maker/utils/text.util.js +3 -3
- package/lib/src/css/library.brand-page-brandCrowd.min.css +19 -19
- package/lib/src/css/library.brand-page-brandPage.min.css +19 -19
- package/lib/src/css/library.brand-page-designCom.min.css +19 -19
- package/lib/src/css/library.brand-page-preview.min.css +19 -19
- package/lib/src/index.mjs +11361 -11414
- package/package.json +1 -1
- package/src/brand-page/components/page/Page.mixin.ts +36 -30
- package/src/brand-page/components/page/Page.vue +3 -7
- package/src/brand-page/components/text/Text.vue +6 -9
- package/src/brand-page/components/text-wrapper/TextWrapper.mixin.ts +41 -0
- package/src/brand-page/components/text-wrapper/TextWrapper.vue +12 -169
- package/src/brand-page/models/index.ts +0 -4
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +27 -27
- package/src/brand-page/utils/migration.util.ts +0 -5
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +5 -213
- package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +0 -13
- package/src/brand-page-maker/components/shop/ProductConfigModal.vue +1 -1
- package/src/brand-page-maker/convertors/text-size-value.convertor.ts +3 -3
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +3 -12
- package/src/brand-page-maker/utils/text.util.ts +3 -3
- package/lib/src/brand-page/utils/migration/migration-03.d.ts +0 -5
- package/lib/src/brand-page/utils/migration/migration-03.js +0 -35
- package/src/brand-page/utils/migration/migration-03.ts +0 -46
package/package.json
CHANGED
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
} from '../../constants';
|
|
18
18
|
import { getSlugFromContext } from '../../utils';
|
|
19
19
|
import type { ComponentPublicInstance } from '@vue/runtime-core';
|
|
20
|
-
import { BRAND_PAGE_TYPES } from '../../models';
|
|
21
20
|
|
|
22
21
|
export default defineComponent({
|
|
23
22
|
props: {
|
|
@@ -72,16 +71,6 @@ export default defineComponent({
|
|
|
72
71
|
'page-header-container-click',
|
|
73
72
|
'page-footer-container-click',
|
|
74
73
|
],
|
|
75
|
-
setup(props) {
|
|
76
|
-
return {
|
|
77
|
-
fluidText: JSON.stringify({
|
|
78
|
-
default:
|
|
79
|
-
props.context.brandPageType === BRAND_PAGE_TYPES.brandSite
|
|
80
|
-
? 1200
|
|
81
|
-
: 768,
|
|
82
|
-
}),
|
|
83
|
-
};
|
|
84
|
-
},
|
|
85
74
|
data() {
|
|
86
75
|
return {
|
|
87
76
|
isSideMenuOpen: false,
|
|
@@ -118,7 +107,28 @@ export default defineComponent({
|
|
|
118
107
|
return backgroundShapes;
|
|
119
108
|
},
|
|
120
109
|
|
|
121
|
-
|
|
110
|
+
rootElementStyles(): BrandPageCssStyle {
|
|
111
|
+
const styles: BrandPageCssStyle = {};
|
|
112
|
+
|
|
113
|
+
Object.assign(styles, this.viewModel?.styles?.textStyles?.style);
|
|
114
|
+
|
|
115
|
+
const textFontFamilyKey =
|
|
116
|
+
this.viewModel.styles?.textStyles.textFontFamily ||
|
|
117
|
+
DEFAULT_FONT_FAMILY_KEY;
|
|
118
|
+
|
|
119
|
+
const textFontFamilyConfig = FONT_FAMILY_CONFIGS[textFontFamilyKey];
|
|
120
|
+
|
|
121
|
+
if (textFontFamilyConfig) {
|
|
122
|
+
styles.fontFamily = [
|
|
123
|
+
`"${textFontFamilyConfig.name}"`,
|
|
124
|
+
...FALLBACK_FONT_FAMILIES,
|
|
125
|
+
].join(', ');
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return styles;
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
rootBackgroundStyles(): BrandPageCssStyle {
|
|
122
132
|
const styles: BrandPageCssStyle = {
|
|
123
133
|
...(this.viewModel?.styles?.backgroundStyles?.style || {}),
|
|
124
134
|
};
|
|
@@ -152,6 +162,7 @@ export default defineComponent({
|
|
|
152
162
|
if (!this.context.isTemplate) {
|
|
153
163
|
styles.position = 'fixed';
|
|
154
164
|
styles.width = '100%';
|
|
165
|
+
styles.height = '100%';
|
|
155
166
|
}
|
|
156
167
|
|
|
157
168
|
delete styles.background;
|
|
@@ -167,21 +178,6 @@ export default defineComponent({
|
|
|
167
178
|
styles.backgroundAttachment = 'fixed';
|
|
168
179
|
}
|
|
169
180
|
|
|
170
|
-
Object.assign(styles, this.viewModel?.styles?.textStyles?.style);
|
|
171
|
-
|
|
172
|
-
const textFontFamilyKey =
|
|
173
|
-
this.viewModel.styles?.textStyles.textFontFamily ||
|
|
174
|
-
DEFAULT_FONT_FAMILY_KEY;
|
|
175
|
-
|
|
176
|
-
const textFontFamilyConfig = FONT_FAMILY_CONFIGS[textFontFamilyKey];
|
|
177
|
-
|
|
178
|
-
if (textFontFamilyConfig) {
|
|
179
|
-
styles.fontFamily = [
|
|
180
|
-
`"${textFontFamilyConfig.name}"`,
|
|
181
|
-
...FALLBACK_FONT_FAMILIES,
|
|
182
|
-
].join(', ');
|
|
183
|
-
}
|
|
184
|
-
|
|
185
181
|
return styles;
|
|
186
182
|
},
|
|
187
183
|
|
|
@@ -341,7 +337,10 @@ export default defineComponent({
|
|
|
341
337
|
},
|
|
342
338
|
},
|
|
343
339
|
watch: {
|
|
344
|
-
|
|
340
|
+
rootElementStyles() {
|
|
341
|
+
this.setRootStyles();
|
|
342
|
+
},
|
|
343
|
+
rootBackgroundStyles() {
|
|
345
344
|
this.setRootStyles();
|
|
346
345
|
},
|
|
347
346
|
},
|
|
@@ -376,12 +375,19 @@ export default defineComponent({
|
|
|
376
375
|
*/
|
|
377
376
|
setRootStyles() {
|
|
378
377
|
if (this.context.isPreview) {
|
|
379
|
-
this.$emit(
|
|
378
|
+
this.$emit(
|
|
379
|
+
'on-set-preview-styles',
|
|
380
|
+
Object.assign({}, this.rootElementStyles, this.rootBackgroundStyles),
|
|
381
|
+
);
|
|
380
382
|
|
|
381
383
|
return;
|
|
382
384
|
}
|
|
383
385
|
|
|
384
|
-
this.styles = Object.assign(
|
|
386
|
+
this.styles = Object.assign(
|
|
387
|
+
this.styles,
|
|
388
|
+
this.rootElementStyles,
|
|
389
|
+
this.rootBackgroundStyles,
|
|
390
|
+
);
|
|
385
391
|
},
|
|
386
392
|
scrollToLastContent() {
|
|
387
393
|
if (!this.contents.length) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
+
<div class="brand-page-root-background" :style="rootBackgroundStyles" />
|
|
2
3
|
<div
|
|
3
4
|
class="brand-page-root"
|
|
4
|
-
:style="
|
|
5
|
+
:style="rootElementStyles"
|
|
5
6
|
:data-test-device-type="
|
|
6
7
|
typeof isMobileDevice !== 'undefined'
|
|
7
8
|
? isMobileDevice
|
|
@@ -55,12 +56,12 @@
|
|
|
55
56
|
</template>
|
|
56
57
|
</MediaQuery>
|
|
57
58
|
</div>
|
|
59
|
+
|
|
58
60
|
<div
|
|
59
61
|
:class="{
|
|
60
62
|
'brand-page__content--default': !context.isBrandSite,
|
|
61
63
|
'brand-page__content--desktop': context.isBrandSite,
|
|
62
64
|
}"
|
|
63
|
-
:data-fluid-text="fluidText"
|
|
64
65
|
>
|
|
65
66
|
<div
|
|
66
67
|
v-if="bpShowTopNavigationDesktop || bpShowTopNavigationMobile"
|
|
@@ -280,11 +281,6 @@ export default {
|
|
|
280
281
|
BrandSiteNavigationLayout,
|
|
281
282
|
},
|
|
282
283
|
mixins: [PageMixin],
|
|
283
|
-
setup(props) {
|
|
284
|
-
return {
|
|
285
|
-
...PageMixin.setup(props),
|
|
286
|
-
};
|
|
287
|
-
},
|
|
288
284
|
};
|
|
289
285
|
</script>
|
|
290
286
|
|
|
@@ -7,11 +7,10 @@
|
|
|
7
7
|
[containerClasses]: true,
|
|
8
8
|
}"
|
|
9
9
|
>
|
|
10
|
-
<
|
|
11
|
-
:key="index"
|
|
12
|
-
:text-style="viewModel.textStyle"
|
|
13
|
-
:text="renderText"
|
|
10
|
+
<p
|
|
14
11
|
data-test-tag="text-content-text"
|
|
12
|
+
:style="viewModel.textStyle"
|
|
13
|
+
v-html="renderText"
|
|
15
14
|
/>
|
|
16
15
|
</div>
|
|
17
16
|
<div v-else :style="containerStyle">
|
|
@@ -22,24 +21,22 @@
|
|
|
22
21
|
[gridClass]: context.isBrandSite,
|
|
23
22
|
}"
|
|
24
23
|
>
|
|
25
|
-
<
|
|
24
|
+
<p
|
|
26
25
|
v-for="(item, index) in viewModel.textItems"
|
|
27
26
|
:key="index"
|
|
28
|
-
:text-style="item.textStyle"
|
|
29
|
-
:text="renderTextItem(item.text)"
|
|
30
27
|
class="tw-overflow-hidden"
|
|
31
28
|
data-test-tag="text-content-text-item"
|
|
29
|
+
:style="item.textStyle"
|
|
30
|
+
v-html="renderTextItem(item.text)"
|
|
32
31
|
/>
|
|
33
32
|
</div>
|
|
34
33
|
</div>
|
|
35
34
|
</div>
|
|
36
35
|
</template>
|
|
37
36
|
<script>
|
|
38
|
-
import TextWrapper from '../text-wrapper/TextWrapper.vue';
|
|
39
37
|
import TextMixin from './Text.mixin.ts';
|
|
40
38
|
|
|
41
39
|
export default {
|
|
42
|
-
components: { TextWrapper },
|
|
43
40
|
mixins: [TextMixin],
|
|
44
41
|
};
|
|
45
42
|
</script>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { defineComponent } from 'vue';
|
|
2
|
+
import type { PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
export default defineComponent({
|
|
5
|
+
props: {
|
|
6
|
+
textStyle: {
|
|
7
|
+
type: Object as PropType<BrandPageCssStyle>,
|
|
8
|
+
required: false,
|
|
9
|
+
default: undefined,
|
|
10
|
+
},
|
|
11
|
+
text: {
|
|
12
|
+
type: String,
|
|
13
|
+
required: true,
|
|
14
|
+
},
|
|
15
|
+
element: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: false,
|
|
18
|
+
default: () => 'p',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
data: () => ({
|
|
22
|
+
isCollapsed: false as boolean,
|
|
23
|
+
}),
|
|
24
|
+
computed: {
|
|
25
|
+
textStyles() {
|
|
26
|
+
return {
|
|
27
|
+
backgroundColor: this.textStyle.backgroundColor,
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
style() {
|
|
31
|
+
const { backgroundColor, ...textStyle } = this.textStyle;
|
|
32
|
+
|
|
33
|
+
return textStyle;
|
|
34
|
+
},
|
|
35
|
+
padding() {
|
|
36
|
+
return this.textStyle.backgroundColor ? 'tw-py-2 tw-px-4' : '';
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
watch: {},
|
|
40
|
+
methods: {},
|
|
41
|
+
});
|
|
@@ -1,175 +1,18 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-if="text" class="tw-w-full" :style="
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/>
|
|
11
|
-
</div>
|
|
2
|
+
<div v-if="text" class="tw-w-full" :style="style">
|
|
3
|
+
<component
|
|
4
|
+
:is="element"
|
|
5
|
+
:class="padding"
|
|
6
|
+
class="tw-box-decoration-clone tw-inline"
|
|
7
|
+
:style="textStyles"
|
|
8
|
+
v-html="text"
|
|
9
|
+
/>
|
|
12
10
|
</div>
|
|
13
11
|
</template>
|
|
14
|
-
<script
|
|
15
|
-
import
|
|
16
|
-
import {
|
|
17
|
-
computed,
|
|
18
|
-
reactive,
|
|
19
|
-
onMounted,
|
|
20
|
-
onUnmounted,
|
|
21
|
-
getCurrentInstance,
|
|
22
|
-
} from 'vue';
|
|
12
|
+
<script>
|
|
13
|
+
import TextWrapper from './TextWrapper.mixin.ts';
|
|
23
14
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
text: string;
|
|
27
|
-
element?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
31
|
-
element: 'p',
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const data = reactive<{
|
|
35
|
-
wrapperStyle: BrandPageCssStyle;
|
|
36
|
-
targetContainer: any;
|
|
37
|
-
targetContainerData: FluidTextData;
|
|
38
|
-
}>({
|
|
39
|
-
wrapperStyle: {
|
|
40
|
-
fontSize: '100%',
|
|
41
|
-
},
|
|
42
|
-
targetContainer: null as any,
|
|
43
|
-
targetContainerData: null as any,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const textStyles = computed(() => {
|
|
47
|
-
return {
|
|
48
|
-
backgroundColor: props.textStyle.backgroundColor,
|
|
49
|
-
};
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const style = computed<any>(() => {
|
|
53
|
-
const { backgroundColor, ...textStyle } = props.textStyle;
|
|
54
|
-
|
|
55
|
-
return textStyle;
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
const currentInstance = getCurrentInstance();
|
|
59
|
-
|
|
60
|
-
const padding = computed(() =>
|
|
61
|
-
props.textStyle.backgroundColor ? 'tw-py-2 tw-px-4' : '',
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
onMounted(() => {
|
|
65
|
-
setTargetContainer();
|
|
66
|
-
|
|
67
|
-
applyScale();
|
|
68
|
-
|
|
69
|
-
window.addEventListener('resize', applyScale);
|
|
70
|
-
window.addEventListener('editor:viewport', applyScaleWithDelay);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
onUnmounted(() => {
|
|
74
|
-
window.removeEventListener('resize', applyScale);
|
|
75
|
-
window.removeEventListener('editor:viewport', applyScaleWithDelay);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
const applyScaleWithDelay = () => {
|
|
79
|
-
setTimeout(() => {
|
|
80
|
-
applyScale();
|
|
81
|
-
}, 350);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
// Traversing back up the node tree to find the correct container element
|
|
85
|
-
// There can be more than one due to template setting side bar if we use document selector
|
|
86
|
-
const setTargetContainer = () => {
|
|
87
|
-
let p = (currentInstance as any).vnode.el.parentNode;
|
|
88
|
-
while (p) {
|
|
89
|
-
const dataFluidText = p.getAttribute('data-fluid-text');
|
|
90
|
-
if (dataFluidText) {
|
|
91
|
-
data.targetContainer = p;
|
|
92
|
-
data.targetContainerData = JSON.parse(dataFluidText);
|
|
93
|
-
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
p = p.parentNode;
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
// EM PX
|
|
102
|
-
// 1 16
|
|
103
|
-
// 2 32
|
|
104
|
-
// 3 48
|
|
105
|
-
// 4 64
|
|
106
|
-
// 4.5 72
|
|
107
|
-
// 5 80
|
|
108
|
-
// 6 96
|
|
109
|
-
// 7 112
|
|
110
|
-
// 8 128
|
|
111
|
-
|
|
112
|
-
// minimum font size that will apply the scale
|
|
113
|
-
// MUST be bigger than `minFontSizeInPxForVariableRate`
|
|
114
|
-
const minFontSizeInPxToDisableScale = 23;
|
|
115
|
-
|
|
116
|
-
// bigger the number smaller font will take less scale effect
|
|
117
|
-
const minFontSizeInPxForVariableRate = 22;
|
|
118
|
-
|
|
119
|
-
const applyScale = () => {
|
|
120
|
-
if (!data.targetContainer || !data.targetContainerData) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const currentFontSize = props.textStyle.fontSize || '1em';
|
|
125
|
-
const fontSizeValue = parseFloat(currentFontSize);
|
|
126
|
-
const fontSizeValueInPx = fontSizeValue * 16;
|
|
127
|
-
if (fontSizeValueInPx < minFontSizeInPxToDisableScale) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const targetContainerWidth = data.targetContainer.clientWidth;
|
|
132
|
-
|
|
133
|
-
const targetWidth = data.targetContainerData.default;
|
|
134
|
-
console.log(
|
|
135
|
-
'Text >',
|
|
136
|
-
props.text,
|
|
137
|
-
window.innerWidth,
|
|
138
|
-
targetContainerWidth,
|
|
139
|
-
targetWidth,
|
|
140
|
-
);
|
|
141
|
-
|
|
142
|
-
if (targetContainerWidth < targetWidth) {
|
|
143
|
-
let windowSizeChangeRate = targetContainerWidth / targetWidth;
|
|
144
|
-
|
|
145
|
-
const windowSizeChangeRateWeakeningRate = 0.3;
|
|
146
|
-
|
|
147
|
-
windowSizeChangeRate =
|
|
148
|
-
windowSizeChangeRate +
|
|
149
|
-
(1 - windowSizeChangeRate) * windowSizeChangeRateWeakeningRate;
|
|
150
|
-
|
|
151
|
-
// VariableRate that determines the how much windowSizeChangeRate to actually apply
|
|
152
|
-
const variableFontRate = minFontSizeInPxForVariableRate / fontSizeValueInPx;
|
|
153
|
-
const variableRate = 1 - variableFontRate;
|
|
154
|
-
|
|
155
|
-
// using math power to give variable factor
|
|
156
|
-
const changeRate = Math.pow(windowSizeChangeRate, variableRate);
|
|
157
|
-
|
|
158
|
-
const scaledPercentage = Math.min(changeRate * 100, 100);
|
|
159
|
-
console.log(' fontSize', currentFontSize, `${fontSizeValue * 16}px`);
|
|
160
|
-
console.log(
|
|
161
|
-
' fontSizeScaled',
|
|
162
|
-
fontSizeValue * changeRate,
|
|
163
|
-
`${fontSizeValue * 16 * changeRate}px`,
|
|
164
|
-
);
|
|
165
|
-
console.log(' variableFontRate', variableFontRate);
|
|
166
|
-
console.log(' windowSizeChangeRate', windowSizeChangeRate);
|
|
167
|
-
console.log(' variableRate', variableRate);
|
|
168
|
-
console.log(' changeRate', changeRate);
|
|
169
|
-
|
|
170
|
-
data.wrapperStyle.fontSize = `${scaledPercentage}%`;
|
|
171
|
-
} else {
|
|
172
|
-
data.wrapperStyle.fontSize = '100%';
|
|
173
|
-
}
|
|
15
|
+
export default {
|
|
16
|
+
mixins: [TextWrapper],
|
|
174
17
|
};
|
|
175
18
|
</script>
|
|
@@ -147,7 +147,7 @@ BrandPageModel {
|
|
|
147
147
|
"borderTopWidth": "0px",
|
|
148
148
|
"color": undefined,
|
|
149
149
|
"fontFamily": "Lato",
|
|
150
|
-
"fontSize": "
|
|
150
|
+
"fontSize": "1rem",
|
|
151
151
|
"fontStyle": undefined,
|
|
152
152
|
"fontWeight": "normal",
|
|
153
153
|
"lineHeight": "1.1",
|
|
@@ -219,7 +219,7 @@ BrandPageModel {
|
|
|
219
219
|
"borderTopWidth": "0px",
|
|
220
220
|
"color": undefined,
|
|
221
221
|
"fontFamily": "Lato",
|
|
222
|
-
"fontSize": "
|
|
222
|
+
"fontSize": "1rem",
|
|
223
223
|
"fontStyle": undefined,
|
|
224
224
|
"fontWeight": "normal",
|
|
225
225
|
"lineHeight": "1.1",
|
|
@@ -275,7 +275,7 @@ BrandPageModel {
|
|
|
275
275
|
"buttonText": "Get Started",
|
|
276
276
|
"buttonTextStyle": {
|
|
277
277
|
"fontFamily": "Lato",
|
|
278
|
-
"fontSize": "
|
|
278
|
+
"fontSize": "1rem",
|
|
279
279
|
"lineHeight": "1.5",
|
|
280
280
|
"overflowWrap": "anywhere",
|
|
281
281
|
"textAlign": "center",
|
|
@@ -285,7 +285,7 @@ BrandPageModel {
|
|
|
285
285
|
"description": "",
|
|
286
286
|
"descriptionStyle": {
|
|
287
287
|
"fontFamily": "Lato",
|
|
288
|
-
"fontSize": "
|
|
288
|
+
"fontSize": "1rem",
|
|
289
289
|
"lineHeight": "1.5",
|
|
290
290
|
"overflowWrap": "anywhere",
|
|
291
291
|
"textAlign": "center",
|
|
@@ -300,7 +300,7 @@ BrandPageModel {
|
|
|
300
300
|
"title": "This is a banner",
|
|
301
301
|
"titleStyle": {
|
|
302
302
|
"fontFamily": "Lato",
|
|
303
|
-
"fontSize": "2.
|
|
303
|
+
"fontSize": "2.25rem",
|
|
304
304
|
"lineHeight": "1.1",
|
|
305
305
|
"overflowWrap": "anywhere",
|
|
306
306
|
"textAlign": "center",
|
|
@@ -361,7 +361,7 @@ BrandPageModel {
|
|
|
361
361
|
"style": {
|
|
362
362
|
"color": undefined,
|
|
363
363
|
"fontFamily": "Lato",
|
|
364
|
-
"fontSize": "
|
|
364
|
+
"fontSize": "1rem",
|
|
365
365
|
"fontStyle": undefined,
|
|
366
366
|
"fontWeight": undefined,
|
|
367
367
|
"letterSpacing": "0",
|
|
@@ -377,7 +377,7 @@ BrandPageModel {
|
|
|
377
377
|
"style": {
|
|
378
378
|
"color": undefined,
|
|
379
379
|
"fontFamily": "Lato",
|
|
380
|
-
"fontSize": "1.
|
|
380
|
+
"fontSize": "1.5rem",
|
|
381
381
|
"fontStyle": undefined,
|
|
382
382
|
"fontWeight": undefined,
|
|
383
383
|
"letterSpacing": "0",
|
|
@@ -393,7 +393,7 @@ BrandPageModel {
|
|
|
393
393
|
"style": {
|
|
394
394
|
"color": undefined,
|
|
395
395
|
"fontFamily": "Lato",
|
|
396
|
-
"fontSize": "
|
|
396
|
+
"fontSize": "1rem",
|
|
397
397
|
"fontStyle": undefined,
|
|
398
398
|
"fontWeight": undefined,
|
|
399
399
|
"letterSpacing": "0",
|
|
@@ -409,7 +409,7 @@ BrandPageModel {
|
|
|
409
409
|
"style": {
|
|
410
410
|
"color": undefined,
|
|
411
411
|
"fontFamily": "Lato",
|
|
412
|
-
"fontSize": "2.
|
|
412
|
+
"fontSize": "2.25rem",
|
|
413
413
|
"fontStyle": undefined,
|
|
414
414
|
"fontWeight": undefined,
|
|
415
415
|
"letterSpacing": "0",
|
|
@@ -423,7 +423,7 @@ BrandPageModel {
|
|
|
423
423
|
},
|
|
424
424
|
},
|
|
425
425
|
},
|
|
426
|
-
"v":
|
|
426
|
+
"v": 2,
|
|
427
427
|
}
|
|
428
428
|
`;
|
|
429
429
|
|
|
@@ -574,7 +574,7 @@ BrandPageModel {
|
|
|
574
574
|
"borderTopWidth": "0px",
|
|
575
575
|
"color": undefined,
|
|
576
576
|
"fontFamily": "Lato",
|
|
577
|
-
"fontSize": "
|
|
577
|
+
"fontSize": "1rem",
|
|
578
578
|
"fontStyle": undefined,
|
|
579
579
|
"fontWeight": "normal",
|
|
580
580
|
"lineHeight": "1.1",
|
|
@@ -646,7 +646,7 @@ BrandPageModel {
|
|
|
646
646
|
"borderTopWidth": "0px",
|
|
647
647
|
"color": undefined,
|
|
648
648
|
"fontFamily": "Lato",
|
|
649
|
-
"fontSize": "
|
|
649
|
+
"fontSize": "1rem",
|
|
650
650
|
"fontStyle": undefined,
|
|
651
651
|
"fontWeight": "normal",
|
|
652
652
|
"lineHeight": "1.1",
|
|
@@ -711,7 +711,7 @@ BrandPageModel {
|
|
|
711
711
|
},
|
|
712
712
|
],
|
|
713
713
|
"textSize": {
|
|
714
|
-
"fontSize": "
|
|
714
|
+
"fontSize": "1rem",
|
|
715
715
|
"lineHeight": "1.2",
|
|
716
716
|
},
|
|
717
717
|
"textStyle": {
|
|
@@ -772,7 +772,7 @@ BrandPageModel {
|
|
|
772
772
|
"style": {
|
|
773
773
|
"color": undefined,
|
|
774
774
|
"fontFamily": "Lato",
|
|
775
|
-
"fontSize": "
|
|
775
|
+
"fontSize": "1rem",
|
|
776
776
|
"fontStyle": undefined,
|
|
777
777
|
"fontWeight": undefined,
|
|
778
778
|
"letterSpacing": "0",
|
|
@@ -788,7 +788,7 @@ BrandPageModel {
|
|
|
788
788
|
"style": {
|
|
789
789
|
"color": undefined,
|
|
790
790
|
"fontFamily": "Lato",
|
|
791
|
-
"fontSize": "1.
|
|
791
|
+
"fontSize": "1.5rem",
|
|
792
792
|
"fontStyle": undefined,
|
|
793
793
|
"fontWeight": undefined,
|
|
794
794
|
"letterSpacing": "0",
|
|
@@ -804,7 +804,7 @@ BrandPageModel {
|
|
|
804
804
|
"style": {
|
|
805
805
|
"color": undefined,
|
|
806
806
|
"fontFamily": "Lato",
|
|
807
|
-
"fontSize": "
|
|
807
|
+
"fontSize": "1rem",
|
|
808
808
|
"fontStyle": undefined,
|
|
809
809
|
"fontWeight": undefined,
|
|
810
810
|
"letterSpacing": "0",
|
|
@@ -820,7 +820,7 @@ BrandPageModel {
|
|
|
820
820
|
"style": {
|
|
821
821
|
"color": undefined,
|
|
822
822
|
"fontFamily": "Lato",
|
|
823
|
-
"fontSize": "2.
|
|
823
|
+
"fontSize": "2.25rem",
|
|
824
824
|
"fontStyle": undefined,
|
|
825
825
|
"fontWeight": undefined,
|
|
826
826
|
"letterSpacing": "0",
|
|
@@ -834,7 +834,7 @@ BrandPageModel {
|
|
|
834
834
|
},
|
|
835
835
|
},
|
|
836
836
|
},
|
|
837
|
-
"v":
|
|
837
|
+
"v": 2,
|
|
838
838
|
}
|
|
839
839
|
`;
|
|
840
840
|
|
|
@@ -985,7 +985,7 @@ BrandPageModel {
|
|
|
985
985
|
"borderTopWidth": "0px",
|
|
986
986
|
"color": undefined,
|
|
987
987
|
"fontFamily": "Lato",
|
|
988
|
-
"fontSize": "
|
|
988
|
+
"fontSize": "1rem",
|
|
989
989
|
"fontStyle": undefined,
|
|
990
990
|
"fontWeight": "normal",
|
|
991
991
|
"lineHeight": "1.1",
|
|
@@ -1057,7 +1057,7 @@ BrandPageModel {
|
|
|
1057
1057
|
"borderTopWidth": "0px",
|
|
1058
1058
|
"color": undefined,
|
|
1059
1059
|
"fontFamily": "Lato",
|
|
1060
|
-
"fontSize": "
|
|
1060
|
+
"fontSize": "1rem",
|
|
1061
1061
|
"fontStyle": undefined,
|
|
1062
1062
|
"fontWeight": "normal",
|
|
1063
1063
|
"lineHeight": "1.1",
|
|
@@ -1117,7 +1117,7 @@ BrandPageModel {
|
|
|
1117
1117
|
"textStyle": {
|
|
1118
1118
|
"color": undefined,
|
|
1119
1119
|
"fontFamily": "Lato",
|
|
1120
|
-
"fontSize": "
|
|
1120
|
+
"fontSize": "1rem",
|
|
1121
1121
|
"fontStyle": undefined,
|
|
1122
1122
|
"fontWeight": undefined,
|
|
1123
1123
|
"letterSpacing": undefined,
|
|
@@ -1129,7 +1129,7 @@ BrandPageModel {
|
|
|
1129
1129
|
},
|
|
1130
1130
|
],
|
|
1131
1131
|
"textSize": {
|
|
1132
|
-
"fontSize": "
|
|
1132
|
+
"fontSize": "1rem",
|
|
1133
1133
|
"lineHeight": "1.2",
|
|
1134
1134
|
},
|
|
1135
1135
|
"textStyle": {
|
|
@@ -1190,7 +1190,7 @@ BrandPageModel {
|
|
|
1190
1190
|
"style": {
|
|
1191
1191
|
"color": undefined,
|
|
1192
1192
|
"fontFamily": "Lato",
|
|
1193
|
-
"fontSize": "
|
|
1193
|
+
"fontSize": "1rem",
|
|
1194
1194
|
"fontStyle": undefined,
|
|
1195
1195
|
"fontWeight": undefined,
|
|
1196
1196
|
"letterSpacing": "0",
|
|
@@ -1206,7 +1206,7 @@ BrandPageModel {
|
|
|
1206
1206
|
"style": {
|
|
1207
1207
|
"color": undefined,
|
|
1208
1208
|
"fontFamily": "Lato",
|
|
1209
|
-
"fontSize": "1.
|
|
1209
|
+
"fontSize": "1.5rem",
|
|
1210
1210
|
"fontStyle": undefined,
|
|
1211
1211
|
"fontWeight": undefined,
|
|
1212
1212
|
"letterSpacing": "0",
|
|
@@ -1222,7 +1222,7 @@ BrandPageModel {
|
|
|
1222
1222
|
"style": {
|
|
1223
1223
|
"color": undefined,
|
|
1224
1224
|
"fontFamily": "Lato",
|
|
1225
|
-
"fontSize": "
|
|
1225
|
+
"fontSize": "1rem",
|
|
1226
1226
|
"fontStyle": undefined,
|
|
1227
1227
|
"fontWeight": undefined,
|
|
1228
1228
|
"letterSpacing": "0",
|
|
@@ -1238,7 +1238,7 @@ BrandPageModel {
|
|
|
1238
1238
|
"style": {
|
|
1239
1239
|
"color": undefined,
|
|
1240
1240
|
"fontFamily": "Lato",
|
|
1241
|
-
"fontSize": "2.
|
|
1241
|
+
"fontSize": "2.25rem",
|
|
1242
1242
|
"fontStyle": undefined,
|
|
1243
1243
|
"fontWeight": undefined,
|
|
1244
1244
|
"letterSpacing": "0",
|
|
@@ -1252,6 +1252,6 @@ BrandPageModel {
|
|
|
1252
1252
|
},
|
|
1253
1253
|
},
|
|
1254
1254
|
},
|
|
1255
|
-
"v":
|
|
1255
|
+
"v": 2,
|
|
1256
1256
|
}
|
|
1257
1257
|
`;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type BrandPageModel, type LogoImageModel } from '../models';
|
|
2
2
|
import { migration01 } from './migration/migration-01';
|
|
3
3
|
import { migration02 } from './migration/migration-02';
|
|
4
|
-
import { migration03 } from './migration/migration-03';
|
|
5
4
|
|
|
6
5
|
interface MigrationTableItem {
|
|
7
6
|
version: number;
|
|
@@ -23,10 +22,6 @@ const MIGRATION_TABLE = [
|
|
|
23
22
|
version: 2,
|
|
24
23
|
migrateFn: migration02,
|
|
25
24
|
},
|
|
26
|
-
{
|
|
27
|
-
version: 3,
|
|
28
|
-
migrateFn: migration03,
|
|
29
|
-
},
|
|
30
25
|
] as MigrationTableItem[];
|
|
31
26
|
|
|
32
27
|
export const GetLatestModelVersion = () =>
|