@fullstackunicorn/create-root 1.0.23 → 1.0.24
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/assets/root.fullstackunicorn.dev/assets/index.def.js +32 -4
- package/assets/root.fullstackunicorn.dev/assets/modules/sync.js +164 -302
- package/assets/root.fullstackunicorn.dev/assets/modules/sync.tools.js +39 -6
- package/assets/root.fullstackunicorn.dev/assets/package.md +9 -2
- package/assets/root.fullstackunicorn.dev/assets/webapp.runner.js +42 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/account/AccountCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/cookies/@use.js +5 -93
- package/assets/root.fullstackunicorn.dev/frontend/base/cookies/CookiesCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/language/@use.js +4 -69
- package/assets/root.fullstackunicorn.dev/frontend/base/language/LanguageCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/layout/Layout.pod.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/legals/LegalsCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/resources/@use.js +15 -0
- package/assets/root.fullstackunicorn.dev/frontend/base/router/@use.js +2 -1
- package/assets/root.fullstackunicorn.dev/frontend/base/theme/ThemeCard.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/config.style.js +21 -9
- package/assets/root.fullstackunicorn.dev/frontend/features/legal/Legal.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/imports/animated/Root.js +4 -8
- package/assets/root.fullstackunicorn.dev/frontend/imports/core/Scrollable.js +7 -2
- package/assets/root.fullstackunicorn.dev/frontend/imports/core/Viewport.js +29 -0
- package/assets/root.fullstackunicorn.dev/frontend/imports/head/Head.js +16 -26
- package/assets/root.fullstackunicorn.dev/frontend/modals/cookies/cookies.api.js +25 -0
- package/assets/root.fullstackunicorn.dev/frontend/modals/cookies/cookies.js +88 -0
- package/assets/root.fullstackunicorn.dev/frontend/modals/countries/countries.api.js +22 -0
- package/assets/root.fullstackunicorn.dev/frontend/modals/countries/countries.js +58 -37
- package/assets/root.fullstackunicorn.dev/frontend/modals/languages/languages.api.js +23 -0
- package/assets/root.fullstackunicorn.dev/frontend/modals/languages/languages.js +81 -0
- package/assets/root.fullstackunicorn.dev/frontend/modules/base/Bottom.js +10 -0
- package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/Bottom.pod.js +1 -4
- package/assets/root.fullstackunicorn.dev/frontend/modules/base/ComingSoon.js +7 -0
- package/assets/root.fullstackunicorn.dev/frontend/modules/base/ComingSoon.pod.js +17 -0
- package/assets/root.fullstackunicorn.dev/frontend/{panels/error → modules/base}/ErrorPage.js +4 -4
- package/assets/root.fullstackunicorn.dev/frontend/{panels/error → modules/base}/ErrorPage.pod.js +7 -7
- package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/PageTitle.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/{panels/layout → modules/base}/PageTitle.pod.js +4 -6
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Account.js +9 -8
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Account.pod.js +28 -18
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Launcher.js +4 -4
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Launcher.pod.js +10 -11
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Linker.js +4 -4
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Linker.pod.js +11 -12
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Slider.js +8 -7
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/cards/Slider.pod.js +14 -14
- package/assets/root.fullstackunicorn.dev/frontend/{panels/wrapper/fixed → modules/layout}/Wrapper.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/{panels/wrapper/fixed → modules/layout}/Wrapper.pod.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/Actions.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectPage.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderPage.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/page/PageScrollable.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/modules/page/PageScrollable.pod.js +23 -0
- package/assets/root.fullstackunicorn.dev/frontend/modules/prose/@runs.js +52 -0
- package/assets/root.fullstackunicorn.dev/frontend/modules/prose/Prose.js +56 -0
- package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Prose.pod.js +2 -14
- package/assets/root.fullstackunicorn.dev/frontend/pages/@use.js +26 -11
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.api.js +9 -25
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Callout.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.api.js +16 -24
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legal.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.api.js +14 -8
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/Legals.js +5 -5
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.api.js +8 -11
- package/assets/root.fullstackunicorn.dev/frontend/pages/root/User.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/pages/{app → scope}/Checkout.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.abs.js +18 -0
- package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.api.js +15 -0
- package/assets/root.fullstackunicorn.dev/frontend/pages/scope/Home.js +24 -0
- package/assets/root.fullstackunicorn.dev/frontend/panels/{slider/Slider.js → slideshows/Slideshow.js} +34 -20
- package/assets/root.fullstackunicorn.dev/frontend/panels/slideshows/Slideshow.map.js +27 -0
- package/assets/root.fullstackunicorn.dev/frontend/panels/slideshows/Slideshow.md +90 -0
- package/assets/root.fullstackunicorn.dev/frontend/panels/{slider/Slider.pod.js → slideshows/Slideshow.pod.js} +14 -28
- package/assets/root.fullstackunicorn.dev/frontend/preloader/@use.js +4 -5
- package/assets/root.fullstackunicorn.dev/frontend/root/errors.root.js +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/root/modals.root.js +8 -8
- package/assets/root.fullstackunicorn.dev/frontend/root/pages.scope.js +2 -2
- package/assets/root.fullstackunicorn.dev/frontend/root/preload.scope.js +1 -1
- package/assets/root.fullstackunicorn.dev/package.json +1 -1
- package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/config/import.json +4 -26
- package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/objs/A01.metadata.meta.json +72 -79
- package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/objs/C01.home.data.json +25 -5
- package/assets/root.fullstackunicorn.dev/workspace/volume/data/lookups/cookies/en-US.json +3 -19
- package/assets/root.fullstackunicorn.dev/workspace/volume/data/lookups/cookies/it-IT.json +6 -22
- package/assets/root.fullstackunicorn.dev/workspace/volume/data/root/user/en-US.json +4 -6
- package/assets/root.fullstackunicorn.dev/workspace/volume/data/root/user/it-IT.json +5 -19
- package/package.json +1 -1
- package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.abs.js +0 -11
- package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.api.js +0 -18
- package/assets/root.fullstackunicorn.dev/frontend/pages/app/Home.js +0 -23
- package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.js +0 -58
- package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookCard.pod.js +0 -37
- package/assets/root.fullstackunicorn.dev/frontend/panels/card/book/BookProse.js +0 -22
- package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.js +0 -115
- package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Grid.pod.js +0 -65
- package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.js +0 -3
- package/assets/root.fullstackunicorn.dev/frontend/panels/grid/book/Item.pod.js +0 -50
- package/assets/root.fullstackunicorn.dev/frontend/panels/layout/Bottom.js +0 -12
- package/assets/root.fullstackunicorn.dev/frontend/panels/page/PageScrollable.pod.js +0 -85
- package/assets/root.fullstackunicorn.dev/frontend/panels/prose/@use.js +0 -21
- package/assets/root.fullstackunicorn.dev/frontend/panels/prose/Prose.js +0 -84
- package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/popup/PopupModal.js +0 -54
- package/assets/root.fullstackunicorn.dev/frontend/panels/selectors/select/SelectModal.js +0 -52
- package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.js +0 -19
- package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Buy.pod.js +0 -17
- package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.js +0 -39
- package/assets/root.fullstackunicorn.dev/frontend/panels/shopper/bookstore/Shopper.pod.js +0 -187
- package/assets/root.fullstackunicorn.dev/frontend/panels/sliders/slider/SliderModal.js +0 -39
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/Actions.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectItem.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectItem.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors → modules/modals}/select/SelectPage.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/SelectPicked.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/selectors/actions → modules/modals/select}/SelectPicked.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders/actions → modules/modals/slider}/Actions.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders/actions → modules/modals/slider}/Actions.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderItem.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderItem.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels/sliders → modules/modals}/slider/SliderPage.pod.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/@formatter.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Basic.js +0 -0
- /package/assets/root.fullstackunicorn.dev/frontend/{panels → modules}/prose/Basic.pod.js +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { uri } from '#@/App.uri.js'
|
|
2
|
+
import { api } from '#@/client/@api.js'
|
|
3
|
+
import { useApi } from '#@/pages/@use.js'
|
|
4
|
+
|
|
5
|
+
const fetch = async params => await api.statics.get(uri.data.content.verbal, params)
|
|
6
|
+
|
|
7
|
+
const parse = raw => {
|
|
8
|
+
if (!raw) return undefined
|
|
9
|
+
const data = raw['@data']
|
|
10
|
+
const meta = raw['@meta']
|
|
11
|
+
const heading = raw['@head'].heading
|
|
12
|
+
return { meta, data, heading }
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const useApiHome = () => useApi(fetch, parse, uri.data.content.verbal)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PageTitle } from '#@/modules/base/PageTitle'
|
|
2
|
+
import { Slideshow } from '#@/panels/slideshows/Slideshow.js'
|
|
3
|
+
import { Bottom } from '#@/modules/base/Bottom.js'
|
|
4
|
+
import { useApiHome } from '#@/pages/scope/Home.api.js'
|
|
5
|
+
import { abs } from '#@/pages/scope/Home.abs.js'
|
|
6
|
+
|
|
7
|
+
export const Home = () => {
|
|
8
|
+
|
|
9
|
+
const api = useApiHome()
|
|
10
|
+
|
|
11
|
+
if (!api) return null
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
<Slideshow
|
|
15
|
+
keys={abs.keys.slideshow}
|
|
16
|
+
list={Object.keys(api.data.slideshow)}
|
|
17
|
+
data={api.data.slideshow}
|
|
18
|
+
settings={abs.settings.slideshow}
|
|
19
|
+
/>
|
|
20
|
+
<PageTitle title={api.data.body.intro.paragraph}/>
|
|
21
|
+
<Bottom />
|
|
22
|
+
</>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
@@ -3,9 +3,10 @@ import { useWindowDimensions } from '#@/imports/use.js'
|
|
|
3
3
|
import { img } from '#@/abstracts/img.js'
|
|
4
4
|
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
5
5
|
import { useGetIsFrozen } from '#@/base/layout/menus/@use.js'
|
|
6
|
-
import {
|
|
6
|
+
import { map } from '#@/panels/slideshows/Slideshow.map.js'
|
|
7
|
+
import { SlideshowPod, SlideshowItemPod, SlideshowTextualPod } from '#@/panels/slideshows/Slideshow.pod.js'
|
|
7
8
|
|
|
8
|
-
export const
|
|
9
|
+
export const Slideshow = ({ data = {}, list = [], keys = {}, settings = {} }) => {
|
|
9
10
|
|
|
10
11
|
const statics = useGetStatics()
|
|
11
12
|
const isFrozen = useGetIsFrozen()
|
|
@@ -17,9 +18,15 @@ export const Slider = ({ list = [], keys = {}, settings = {} }) => {
|
|
|
17
18
|
|
|
18
19
|
const autoRef = useRef(null)
|
|
19
20
|
const clickLockRef = useRef(null)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
if (!F3.obj.isGood(data)) return null
|
|
23
|
+
if (!F3.arr.isGood(list)) return null
|
|
24
|
+
|
|
25
|
+
const listSignature = list.map(itemKey => {
|
|
26
|
+
const object = data?.[itemKey]
|
|
27
|
+
const currentItem = map.slideshow(keys, object)
|
|
28
|
+
if (!currentItem) return ''
|
|
29
|
+
return currentItem?.picture?.src || currentItem?.href || currentItem?.title || itemKey || ''
|
|
23
30
|
}).join('|')
|
|
24
31
|
|
|
25
32
|
const clearAuto = () => {
|
|
@@ -86,7 +93,6 @@ export const Slider = ({ list = [], keys = {}, settings = {} }) => {
|
|
|
86
93
|
}
|
|
87
94
|
}, [isFrozen])
|
|
88
95
|
|
|
89
|
-
|
|
90
96
|
const { width: mainWidth } = useWindowDimensions()
|
|
91
97
|
const size = img.getPictureSize(mainWidth)
|
|
92
98
|
|
|
@@ -102,37 +108,45 @@ export const Slider = ({ list = [], keys = {}, settings = {} }) => {
|
|
|
102
108
|
}
|
|
103
109
|
|
|
104
110
|
return (
|
|
105
|
-
<
|
|
111
|
+
<SlideshowPod
|
|
106
112
|
onNext={onNext}
|
|
107
113
|
onPrevious={onPrevious}
|
|
108
114
|
svg={svg}
|
|
109
|
-
activeIndex={current}
|
|
110
115
|
aspectRatio={settings.aspectRatio}
|
|
111
116
|
>
|
|
112
|
-
{list.map((
|
|
117
|
+
{list.map((itemKey, index) => {
|
|
118
|
+
|
|
119
|
+
const object = data?.[itemKey]
|
|
120
|
+
const currentItem = map.slideshow(keys, object)
|
|
121
|
+
if (!currentItem) return null
|
|
122
|
+
|
|
123
|
+
const picture = currentItem.picture
|
|
124
|
+
const subhead = currentItem.subhead
|
|
125
|
+
const title = currentItem.title
|
|
126
|
+
const description = currentItem.description
|
|
127
|
+
const href = currentItem.href
|
|
113
128
|
|
|
114
|
-
|
|
115
|
-
picture.size = size
|
|
129
|
+
if (picture) picture.size = size
|
|
116
130
|
|
|
117
131
|
return (
|
|
118
|
-
<
|
|
132
|
+
<SlideshowItemPod
|
|
119
133
|
isActive={index === current}
|
|
120
134
|
picture={picture}
|
|
121
|
-
key={
|
|
135
|
+
key={itemKey}
|
|
122
136
|
transitionMs={transitionDuration}
|
|
123
137
|
aspectRatio={settings.aspectRatio}
|
|
124
138
|
instantMount={isFrozen}
|
|
125
139
|
>
|
|
126
|
-
<
|
|
140
|
+
<SlideshowTextualPod
|
|
127
141
|
fontSizes={fontSizes}
|
|
128
|
-
subhead={
|
|
129
|
-
title={
|
|
130
|
-
description={
|
|
131
|
-
href={
|
|
142
|
+
subhead={subhead}
|
|
143
|
+
title={title}
|
|
144
|
+
description={description}
|
|
145
|
+
href={href}
|
|
132
146
|
/>
|
|
133
|
-
</
|
|
147
|
+
</SlideshowItemPod>
|
|
134
148
|
)
|
|
135
149
|
})}
|
|
136
|
-
</
|
|
150
|
+
</SlideshowPod>
|
|
137
151
|
)
|
|
138
152
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const data = [
|
|
2
|
+
'picture',
|
|
3
|
+
'subhead',
|
|
4
|
+
'title',
|
|
5
|
+
'description',
|
|
6
|
+
'href'
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
const get = (keys = {}, item = {}, key = '') => {
|
|
10
|
+
const mapped = F3.obj.get(keys, key)
|
|
11
|
+
const path = F3.str.isGood(mapped) && data.includes(key) ? mapped : key
|
|
12
|
+
return F3.obj.get(item, path)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const slideshow = (keys = {}, item = {}) => {
|
|
16
|
+
const result = {}
|
|
17
|
+
result.picture = get(keys, item, 'picture')
|
|
18
|
+
result.subhead = get(keys, item, 'subhead')
|
|
19
|
+
result.title = get(keys, item, 'title')
|
|
20
|
+
result.description = get(keys, item, 'description')
|
|
21
|
+
result.href = get(keys, item, 'href')
|
|
22
|
+
if (!F3.obj.isGood(result.picture)) return undefined
|
|
23
|
+
if (!F3.str.isGood(result.picture.src)) return undefined
|
|
24
|
+
return result
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const map = { data, get, slideshow }
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Slideshow.js
|
|
2
|
+
|
|
3
|
+
## list
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"list": ["S001", "S002", "S003"]
|
|
8
|
+
}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## data
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"data": {
|
|
16
|
+
"S001": {
|
|
17
|
+
"picture": {
|
|
18
|
+
"original": "background.jpg",
|
|
19
|
+
"name": "background.jpg",
|
|
20
|
+
"x": 2000,
|
|
21
|
+
"y": 1500,
|
|
22
|
+
"placeholder": "UDTI,a_3js_3~qj[ayofj@ayayfP~qoefQj[",
|
|
23
|
+
"src": "graphic/TS/background.jpg",
|
|
24
|
+
"ratio": 1.3333333333333333,
|
|
25
|
+
"max": "HD"
|
|
26
|
+
},
|
|
27
|
+
"subhead": "Featured Collection",
|
|
28
|
+
"title": "Painted Atmospheres",
|
|
29
|
+
"description": "Open the artwork selection",
|
|
30
|
+
"href": "/en-US/artworks"
|
|
31
|
+
},
|
|
32
|
+
"S002": {
|
|
33
|
+
"picture": {
|
|
34
|
+
"original": "themes-cover.jpg",
|
|
35
|
+
"name": "themes-cover.jpg",
|
|
36
|
+
"x": 2000,
|
|
37
|
+
"y": 1500,
|
|
38
|
+
"placeholder": "L7HLkY4n00t7?b%MRjofM{ofWBof",
|
|
39
|
+
"src": "graphic/TS/themes-cover.jpg",
|
|
40
|
+
"ratio": 1.3333333333333333,
|
|
41
|
+
"max": "HD"
|
|
42
|
+
},
|
|
43
|
+
"subhead": "Themes",
|
|
44
|
+
"title": "Visual Paths",
|
|
45
|
+
"description": "Open the main themes",
|
|
46
|
+
"href": "/en-US/themes"
|
|
47
|
+
},
|
|
48
|
+
"S003": {
|
|
49
|
+
"picture": {
|
|
50
|
+
"original": "activities-cover.jpg",
|
|
51
|
+
"name": "activities-cover.jpg",
|
|
52
|
+
"x": 2000,
|
|
53
|
+
"y": 1500,
|
|
54
|
+
"placeholder": "L4G8Rj?b00_3~qofRjM{t7ofWBof",
|
|
55
|
+
"src": "graphic/TS/activities-cover.jpg",
|
|
56
|
+
"ratio": 1.3333333333333333,
|
|
57
|
+
"max": "HD"
|
|
58
|
+
},
|
|
59
|
+
"subhead": "Activities",
|
|
60
|
+
"title": "Exhibitions And Publications",
|
|
61
|
+
"description": "Open activities and insights",
|
|
62
|
+
"href": "/en-US/activities"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## keys
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"keys": {
|
|
73
|
+
"picture": "picture",
|
|
74
|
+
"subhead": "subhead",
|
|
75
|
+
"title": "title",
|
|
76
|
+
"description": "description",
|
|
77
|
+
"href": "href"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## settings
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"settings": {
|
|
87
|
+
"aspectRatio": 2.3558282208588958
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
@@ -7,7 +7,7 @@ import { Icon } from '#@/modules/core/Icon.js'
|
|
|
7
7
|
import { ControlButton } from '#@/imports/animated/Button.js'
|
|
8
8
|
import { Crossfader } from '#@/imports/animated/Crossfader.js'
|
|
9
9
|
|
|
10
|
-
export const
|
|
10
|
+
export const SlideshowPod = ({ svg, onNext, onPrevious, aspectRatio, children }) => {
|
|
11
11
|
|
|
12
12
|
const { s, c, f, t, F, B, S, I, H } = useStyle()
|
|
13
13
|
|
|
@@ -27,26 +27,13 @@ export const SliderPod = ({ svg, onNext, onPrevious, aspectRatio, children }) =>
|
|
|
27
27
|
<View classes={S.slider} inline={I.slider}>
|
|
28
28
|
<View classes={S.controls}>
|
|
29
29
|
<View classes={S.one}>
|
|
30
|
-
<ControlButton
|
|
31
|
-
|
|
32
|
-
classes={S.iconOneBox}
|
|
33
|
-
>
|
|
34
|
-
<Icon
|
|
35
|
-
classes={S.iconOne}
|
|
36
|
-
svgClasses={S.svg}
|
|
37
|
-
svg={svg.previous}
|
|
38
|
-
/>
|
|
30
|
+
<ControlButton onPress={onPrevious} classes={S.iconOneBox}>
|
|
31
|
+
<Icon classes={S.iconOne} svgClasses={S.svg} svg={svg.previous} />
|
|
39
32
|
</ControlButton>
|
|
40
33
|
</View>
|
|
41
34
|
<View classes={S.two}>
|
|
42
|
-
<ControlButton
|
|
43
|
-
|
|
44
|
-
classes={S.iconTwoBox}
|
|
45
|
-
>
|
|
46
|
-
<Icon classes={S.iconTwo}
|
|
47
|
-
svgClasses={S.svg}
|
|
48
|
-
svg={svg.next}
|
|
49
|
-
/>
|
|
35
|
+
<ControlButton onPress={onNext} classes={S.iconTwoBox}>
|
|
36
|
+
<Icon classes={S.iconTwo} svgClasses={S.svg} svg={svg.next} />
|
|
50
37
|
</ControlButton>
|
|
51
38
|
</View>
|
|
52
39
|
</View>
|
|
@@ -55,11 +42,11 @@ export const SliderPod = ({ svg, onNext, onPrevious, aspectRatio, children }) =>
|
|
|
55
42
|
)
|
|
56
43
|
}
|
|
57
44
|
|
|
58
|
-
export const
|
|
45
|
+
export const SlideshowTextualPod = ({ subhead, title, description, href, fontSizes }) => {
|
|
59
46
|
|
|
60
47
|
const { s, c, f, t, F, B, S, I, H } = useStyle()
|
|
61
48
|
|
|
62
|
-
S.box = [s.row_sXcY, s.absolute, s.XY, s.top0
|
|
49
|
+
S.box = [s.row_sXcY, s.absolute, s.XY, s.top0]
|
|
63
50
|
S.textual = [s.col_sXsY]
|
|
64
51
|
S.outline = [s.paddingX4, s.paddingY2, s.margin4, c.item_WW]
|
|
65
52
|
|
|
@@ -73,20 +60,19 @@ export const TextualPod = ({ subhead, title, description, href, fontSizes }) =>
|
|
|
73
60
|
<View classes={S.textual}>
|
|
74
61
|
<TextOutline classes={S.outline} inline={I.subhead} text={subhead} outlineNr={1} />
|
|
75
62
|
<TextOutline classes={S.outline} inline={I.title} text={title} outlineNr={1} />
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
{!href
|
|
64
|
+
? <TextOutline classes={S.outline} inline={I.description} text={description} outlineNr={1} />
|
|
65
|
+
: (
|
|
66
|
+
<Href linkTo={href}>
|
|
80
67
|
<TextOutline classes={S.outline} inline={I.description} text={description} outlineNr={1} />
|
|
81
68
|
</Href>
|
|
82
|
-
|
|
69
|
+
)}
|
|
83
70
|
</View>
|
|
84
71
|
</View>
|
|
85
72
|
)
|
|
86
73
|
}
|
|
87
74
|
|
|
88
|
-
|
|
89
|
-
export const ItemPod = ({ isActive, picture, children, aspectRatio, transitionMs = 600, instantMount = false }) => {
|
|
75
|
+
export const SlideshowItemPod = ({ isActive, picture, children, aspectRatio, transitionMs = 600, instantMount = false }) => {
|
|
90
76
|
|
|
91
77
|
const { s, c, f, t, F, B, S, I, H } = useStyle()
|
|
92
78
|
|
|
@@ -99,4 +85,4 @@ export const ItemPod = ({ isActive, picture, children, aspectRatio, transitionMs
|
|
|
99
85
|
{children}
|
|
100
86
|
</Crossfader>
|
|
101
87
|
)
|
|
102
|
-
}
|
|
88
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { useLoadMainMenu } from
|
|
1
|
+
import { useLoadMainMenu } from '#@/menus/Main.use.js'
|
|
2
2
|
|
|
3
3
|
export const useLoadAtoms = (lang) => {
|
|
4
4
|
|
|
5
5
|
const loadMainMenu = useLoadMainMenu(lang)
|
|
6
6
|
|
|
7
|
-
const loadAtoms = (
|
|
8
|
-
|
|
9
|
-
loadMainMenu(data)
|
|
7
|
+
const loadAtoms = (results) => {
|
|
10
8
|
|
|
9
|
+
loadMainMenu(results)
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
return loadAtoms
|
|
14
|
-
}
|
|
13
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { languages } from '#@/modals/languages/languages.js'
|
|
2
|
+
import { cookies } from '#@/modals/cookies/cookies.js'
|
|
3
|
+
import { countries } from '#@/modals/countries/countries.js'
|
|
4
4
|
|
|
5
5
|
export const root = {
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
7
|
+
languages,
|
|
8
|
+
cookies,
|
|
9
|
+
countries,
|
|
10
|
+
|
|
11
|
+
}
|
|
@@ -4,7 +4,7 @@ class Scope {
|
|
|
4
4
|
|
|
5
5
|
items = lang => [
|
|
6
6
|
F3.fabUrl(uri.data.content.verbal, { lang, path: 'home' }),
|
|
7
|
-
F3.fabUrl(uri.data.content.
|
|
7
|
+
F3.fabUrl(uri.data.content.logic, { lang, path: 'home' }),
|
|
8
8
|
// menu.main
|
|
9
9
|
F3.fabUrl(uri.data.menus.verbal, { lang, path: 'main' }),
|
|
10
10
|
F3.fabUrl(uri.data.menus.logic, { lang, path: 'main' })
|
package/assets/root.fullstackunicorn.dev/workspace/config/tabulars_data_content/config/import.json
CHANGED
|
@@ -1,29 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@config": {},
|
|
3
3
|
"@defaults": {
|
|
4
|
-
"type": "text"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"typename": "book",
|
|
9
|
-
"node": "website",
|
|
10
|
-
"tags": "website",
|
|
11
|
-
"slug": "website",
|
|
12
|
-
"value": "website"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"typename": "book",
|
|
16
|
-
"node": "lookup",
|
|
17
|
-
"tags": "lookup",
|
|
18
|
-
"slug": "lookups",
|
|
19
|
-
"value": "lookups"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"typename": "book",
|
|
23
|
-
"node": "seed",
|
|
24
|
-
"tags": "helper",
|
|
25
|
-
"slug": "seed",
|
|
26
|
-
"value": "seed"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|
|
4
|
+
"type": "text",
|
|
5
|
+
"language": "{{lang}}"
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -2,86 +2,79 @@
|
|
|
2
2
|
"@defaults": {
|
|
3
3
|
"type": "text"
|
|
4
4
|
},
|
|
5
|
-
"@
|
|
6
|
-
"@hooks": {},
|
|
5
|
+
"@hooks": [],
|
|
7
6
|
"@generate": [
|
|
8
7
|
{
|
|
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
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
}
|
|
8
|
+
"typename": "set",
|
|
9
|
+
"node": "website",
|
|
10
|
+
"children": [
|
|
11
|
+
{
|
|
12
|
+
"typename": "book",
|
|
13
|
+
"node": "verbal",
|
|
14
|
+
"children": [
|
|
15
|
+
{
|
|
16
|
+
"typename": "section",
|
|
17
|
+
"node": "{{route}}",
|
|
18
|
+
"children": [
|
|
19
|
+
{
|
|
20
|
+
"typename": "page",
|
|
21
|
+
"node": "{{path}}",
|
|
22
|
+
"children": [
|
|
23
|
+
{
|
|
24
|
+
"typename": "block",
|
|
25
|
+
"node": "@metadata",
|
|
26
|
+
"children": [
|
|
27
|
+
{
|
|
28
|
+
"typename": "item",
|
|
29
|
+
"node": "metadata",
|
|
30
|
+
"children": [
|
|
31
|
+
{
|
|
32
|
+
"typename": "data",
|
|
33
|
+
"node": "title",
|
|
34
|
+
"tags": "title",
|
|
35
|
+
"value": "{{title}}"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"typename": "data",
|
|
39
|
+
"node": "description",
|
|
40
|
+
"tags": "description",
|
|
41
|
+
"value": "{{description}}"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"typename": "data",
|
|
45
|
+
"type": "cover",
|
|
46
|
+
"node": "cover",
|
|
47
|
+
"tags": "cover",
|
|
48
|
+
"value": "{{cover}}"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"typename": "block",
|
|
56
|
+
"node": "@heading",
|
|
57
|
+
"children": [
|
|
58
|
+
{
|
|
59
|
+
"typename": "item",
|
|
60
|
+
"node": "heading",
|
|
61
|
+
"children": [
|
|
62
|
+
{
|
|
63
|
+
"typename": "data",
|
|
64
|
+
"node": "heading",
|
|
65
|
+
"value": "{{heading}}"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
]
|
|
85
78
|
}
|
|
86
79
|
]
|
|
87
|
-
}
|
|
80
|
+
}
|
|
@@ -2,9 +2,29 @@
|
|
|
2
2
|
"@defaults": {
|
|
3
3
|
"type": "text"
|
|
4
4
|
},
|
|
5
|
-
"@
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
"@generate": [
|
|
6
|
+
{
|
|
7
|
+
"typename": "set",
|
|
8
|
+
"node": "website",
|
|
9
|
+
"children": [
|
|
10
|
+
{
|
|
11
|
+
"typename": "book",
|
|
12
|
+
"node": "verbal",
|
|
13
|
+
"children": [
|
|
14
|
+
{
|
|
15
|
+
"typename": "section",
|
|
16
|
+
"node": "home",
|
|
17
|
+
"children": [
|
|
18
|
+
{
|
|
19
|
+
"typename": "page",
|
|
20
|
+
"node": "home",
|
|
21
|
+
"children": []
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
9
29
|
]
|
|
10
|
-
}
|
|
30
|
+
}
|