@fullstackunicorn/create-root 1.0.22 → 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/modules/init.js +9 -5
- 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
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
yarn cmd website workspace-cleanup
|
|
2
|
+
yarn cmd website develop-cleanup
|
|
2
3
|
|
|
3
4
|
yarn cmd website local-config
|
|
5
|
+
yarn cmd website local-push
|
|
6
|
+
yarn cmd website local-pull
|
|
4
7
|
yarn cmd website local-assets
|
|
5
8
|
yarn cmd website local-workers
|
|
6
9
|
|
|
7
10
|
yarn cmd website sv1-config
|
|
11
|
+
yarn cmd website sv1-push
|
|
12
|
+
yarn cmd website sv1-pull
|
|
8
13
|
yarn cmd website sv1-assets
|
|
9
14
|
yarn cmd website sv1-workers
|
|
10
15
|
|
|
11
16
|
yarn cmd website stage-config
|
|
17
|
+
yarn cmd website stage-push
|
|
18
|
+
yarn cmd website stage-pull
|
|
12
19
|
yarn cmd website stage-assets
|
|
13
|
-
yarn cmd website stage-workers
|
|
20
|
+
yarn cmd website stage-workers
|
|
@@ -8,12 +8,33 @@ class Runner {
|
|
|
8
8
|
this.sync = new Sync({ def })
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
// yarn cmd website workspace-cleanup
|
|
12
|
+
['workspace-cleanup'] = async () => {
|
|
13
|
+
try { return await this.sync.runCleanup('workspace') }
|
|
14
|
+
catch (e) { F3.logs(e) }
|
|
15
|
+
}
|
|
16
|
+
// yarn cmd website develop-cleanup
|
|
17
|
+
['develop-cleanup'] = async () => {
|
|
18
|
+
try { return await this.sync.runCleanup('develop') }
|
|
19
|
+
catch (e) { F3.logs(e) }
|
|
20
|
+
}
|
|
21
|
+
|
|
11
22
|
|
|
12
23
|
// yarn cmd website local-config
|
|
13
24
|
['local-config'] = async () => {
|
|
14
25
|
try { return await this.sync.runConfig('local') }
|
|
15
26
|
catch (e) { F3.logs(e) }
|
|
16
27
|
}
|
|
28
|
+
// yarn cmd website local-push
|
|
29
|
+
['local-push'] = async () => {
|
|
30
|
+
try { return await this.sync.runWorkspacePush('local') }
|
|
31
|
+
catch (e) { F3.logs(e) }
|
|
32
|
+
}
|
|
33
|
+
// yarn cmd website local-pull
|
|
34
|
+
['local-pull'] = async () => {
|
|
35
|
+
try { return await this.sync.runWorkspacePull('local') }
|
|
36
|
+
catch (e) { F3.logs(e) }
|
|
37
|
+
}
|
|
17
38
|
// yarn cmd website local-assets
|
|
18
39
|
['local-assets'] = async () => {
|
|
19
40
|
try { return await this.sync.runAssets('local') }
|
|
@@ -31,6 +52,16 @@ class Runner {
|
|
|
31
52
|
try { return await this.sync.runConfig('sv1') }
|
|
32
53
|
catch (e) { F3.logs(e) }
|
|
33
54
|
}
|
|
55
|
+
// yarn cmd website sv1-push
|
|
56
|
+
['sv1-push'] = async () => {
|
|
57
|
+
try { return await this.sync.runWorkspacePush('sv1') }
|
|
58
|
+
catch (e) { F3.logs(e) }
|
|
59
|
+
}
|
|
60
|
+
// yarn cmd website sv1-pull
|
|
61
|
+
['sv1-pull'] = async () => {
|
|
62
|
+
try { return await this.sync.runWorkspacePull('sv1') }
|
|
63
|
+
catch (e) { F3.logs(e) }
|
|
64
|
+
}
|
|
34
65
|
// yarn cmd website sv1-assets
|
|
35
66
|
['sv1-assets'] = async () => {
|
|
36
67
|
try { return await this.sync.runAssets('sv1') }
|
|
@@ -48,6 +79,16 @@ class Runner {
|
|
|
48
79
|
try { return await this.sync.runConfig('stage') }
|
|
49
80
|
catch (e) { F3.logs(e) }
|
|
50
81
|
}
|
|
82
|
+
// yarn cmd website stage-push
|
|
83
|
+
['stage-push'] = async () => {
|
|
84
|
+
try { return await this.sync.runWorkspacePush('stage') }
|
|
85
|
+
catch (e) { F3.logs(e) }
|
|
86
|
+
}
|
|
87
|
+
// yarn cmd website stage-pull
|
|
88
|
+
['stage-pull'] = async () => {
|
|
89
|
+
try { return await this.sync.runWorkspacePull('stage') }
|
|
90
|
+
catch (e) { F3.logs(e) }
|
|
91
|
+
}
|
|
51
92
|
// yarn cmd website stage-assets
|
|
52
93
|
['stage-assets'] = async () => {
|
|
53
94
|
try { return await this.sync.runAssets('stage') }
|
|
@@ -60,4 +101,4 @@ class Runner {
|
|
|
60
101
|
}
|
|
61
102
|
}
|
|
62
103
|
|
|
63
|
-
export const runner = new Runner()
|
|
104
|
+
export const runner = new Runner()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useGetUser, useAuthLogin, useAuthLogout, useAuthAccount } from '#@/base/account/@use.js'
|
|
2
2
|
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
3
|
-
import { Account } from '#@/
|
|
3
|
+
import { Account } from '#@/modules/cards/Account.js'
|
|
4
4
|
|
|
5
5
|
export const AccountCard = ({ api }) => {
|
|
6
6
|
|
|
@@ -4,11 +4,9 @@ import { storage } from '#@/imports/storage.js'
|
|
|
4
4
|
import { api } from '#@/client/@api.js'
|
|
5
5
|
import { constants } from '#@/root/constants.js'
|
|
6
6
|
import { useUrl } from '#@/base/router/@use.js'
|
|
7
|
-
import { alerts
|
|
8
|
-
import {
|
|
9
|
-
import { useModals, useSetModals, useModalClose } from '#@/base/modals/@use.js'
|
|
7
|
+
import { alerts } from '#@/base/alerts/@use.js'
|
|
8
|
+
import { useModals, useSetModals } from '#@/base/modals/@use.js'
|
|
10
9
|
import { useGetLanguage } from '#@/base/language/@use.js'
|
|
11
|
-
import { useGetLookups } from '#@/base/lookups/@use.js'
|
|
12
10
|
import { tools } from '#@/base/cookies/@tools.js'
|
|
13
11
|
|
|
14
12
|
export const device = atom()
|
|
@@ -102,99 +100,20 @@ export const useGetAgreement = () => {
|
|
|
102
100
|
return getAgreement
|
|
103
101
|
}
|
|
104
102
|
|
|
105
|
-
export const useGetCookiesData = () => {
|
|
106
|
-
|
|
107
|
-
const statics = useGetStatics()
|
|
108
|
-
const lookups = useGetLookups()
|
|
109
|
-
|
|
110
|
-
const setAlerts = useSetAlerts()
|
|
111
|
-
const setCookies = useSetCookies()
|
|
112
|
-
const setConsent = useSetConsent()
|
|
113
|
-
|
|
114
|
-
const modalClose = useModalClose()
|
|
115
|
-
|
|
116
|
-
const getAgreement = useGetAgreement()
|
|
117
|
-
|
|
118
|
-
const getCookiesData = ({ formResult, id, isCloseDisabled, isLanguageButton }) => {
|
|
119
|
-
|
|
120
|
-
const onSetValue = async () => {
|
|
121
|
-
|
|
122
|
-
const device = storage.get('device')
|
|
123
|
-
const agreement = getAgreement({
|
|
124
|
-
agreement_type: statics.logic.cookies.type,
|
|
125
|
-
agreement_version: statics.logic.cookies.version,
|
|
126
|
-
agreement_subject_id: device,
|
|
127
|
-
agreement_subject_type: 'device_id',
|
|
128
|
-
agreement_agreed: formResult.current,
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
const agreements = { [statics.logic.cookies.type]: agreement }
|
|
132
|
-
const submit = await tools.getSubmit(device)
|
|
133
|
-
|
|
134
|
-
const consent = [{ agreements, submit }]
|
|
135
|
-
const response = await api.cookies.set(consent)
|
|
136
|
-
|
|
137
|
-
if (response.isOffline) setAlerts({ id: 'offline' })
|
|
138
|
-
else if (response.isError) setAlerts({ id: 'error-cookies-set' })
|
|
139
|
-
else if (response.isValid) {
|
|
140
|
-
setCookies(response.data)
|
|
141
|
-
setConsent(response.consent_id)
|
|
142
|
-
void api.cookies.get() //@NOTE no await is for caching
|
|
143
|
-
}
|
|
144
|
-
modalClose(id)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const itemVisual = {}
|
|
148
|
-
for (const key of Object.keys(statics.logic.cookies.data)) {
|
|
149
|
-
itemVisual[key] = { svg: statics.visual.svg.cookies }
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const data = {}
|
|
153
|
-
data.isCloseDisabled = isCloseDisabled
|
|
154
|
-
data.isLanguageButton = isLanguageButton
|
|
155
|
-
data.onSetValue = onSetValue
|
|
156
|
-
data.formResult = formResult
|
|
157
|
-
data.itemLogic = statics.logic.cookies
|
|
158
|
-
data.itemVisual = itemVisual
|
|
159
|
-
data.svg = statics.visual.svg.cookies
|
|
160
|
-
data.itemVerbal = {
|
|
161
|
-
title: lookups.cookies.verbal.modal.title,
|
|
162
|
-
description: lookups.cookies.verbal.modal.description,
|
|
163
|
-
action: lookups.cookies.verbal.modal.action,
|
|
164
|
-
data: lookups.cookies.verbal.data
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return data
|
|
168
|
-
}
|
|
169
|
-
return getCookiesData
|
|
170
|
-
}
|
|
171
|
-
|
|
172
103
|
export const useWelcome = () => {
|
|
173
104
|
|
|
174
105
|
const { lang } = useUrl()
|
|
175
|
-
|
|
176
106
|
const setModals = useSetModals()
|
|
177
107
|
const modalRef = useRef('')
|
|
178
|
-
|
|
179
108
|
const consent = useGetConsent()
|
|
180
109
|
|
|
181
|
-
const cookies = useGetCookies()
|
|
182
|
-
const formResult = useRef({})
|
|
183
|
-
formResult.current = cookies
|
|
184
|
-
|
|
185
|
-
const getCookiesData = useGetCookiesData()
|
|
186
|
-
|
|
187
|
-
const isCloseDisabled = true
|
|
188
|
-
const isLanguageButton = constants.services.IS_CARD_LANGUAGE_OFF ? false : true
|
|
189
|
-
|
|
190
110
|
useEffect(() => {
|
|
191
111
|
|
|
192
112
|
if (constants.services.IS_CARD_COOKIES_OFF) return
|
|
193
113
|
if (consent) return
|
|
194
114
|
|
|
195
115
|
if (!modalRef.current) modalRef.current = makeId()
|
|
196
|
-
|
|
197
|
-
setModals([{ id: modalRef.current, name: 'sliders', data }])
|
|
116
|
+
setModals([{ id: modalRef.current, name: 'cookies' }])
|
|
198
117
|
|
|
199
118
|
}, [consent, lang])
|
|
200
119
|
}
|
|
@@ -202,17 +121,10 @@ export const useWelcome = () => {
|
|
|
202
121
|
export const useCookiesEdit = () => {
|
|
203
122
|
|
|
204
123
|
const [modals, setModals] = useModals()
|
|
205
|
-
const cookies = useGetCookies()
|
|
206
|
-
|
|
207
|
-
const formResult = useRef({})
|
|
208
|
-
formResult.current = cookies
|
|
209
|
-
|
|
210
|
-
const getCookiesData = useGetCookiesData()
|
|
211
124
|
|
|
212
|
-
const onPress =
|
|
125
|
+
const onPress = () => {
|
|
213
126
|
const id = makeId()
|
|
214
|
-
|
|
215
|
-
setModals([...modals, { id, name: 'sliders', data }])
|
|
127
|
+
setModals([...modals, { id, name: 'cookies' }])
|
|
216
128
|
}
|
|
217
129
|
return onPress
|
|
218
130
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
2
2
|
import { useCookiesEdit } from '#@/base/cookies/@use.js'
|
|
3
|
-
import { Launcher } from '#@/
|
|
3
|
+
import { Launcher } from '#@/modules/cards/Launcher.js'
|
|
4
4
|
|
|
5
5
|
export const CookiesCard = ({ api }) => {
|
|
6
6
|
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react'
|
|
2
|
-
import { atom, useAtom, useSetAtom, useGetAtom } from '#@/imports/npm.js'
|
|
3
|
-
import { useNavigate } from '#@/imports/router.js'
|
|
4
|
-
import { makeId } from '#@/imports/npm.js'
|
|
5
|
-
import { api } from '#@/client/@api.js'
|
|
6
|
-
import { uri } from '#@/App.uri.js'
|
|
2
|
+
import { atom, useAtom, useSetAtom, useGetAtom, makeId } from '#@/imports/npm.js'
|
|
7
3
|
import { storage } from '#@/imports/storage.js'
|
|
8
|
-
import {
|
|
9
|
-
import { useGetStatics, useSetVerbal } from '#@/base/statics/@use.js'
|
|
10
|
-
import { useHistory } from '#@/base/router/@use.js'
|
|
4
|
+
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
11
5
|
import { useModals } from '#@/base/modals/@use.js'
|
|
12
6
|
import { useGetLookups } from '#@/base/lookups/@use.js'
|
|
13
|
-
import { useSetAlerts } from '#@/base/alerts/@use.js'
|
|
14
7
|
import { tools } from '#@/base/language/@tools.js'
|
|
15
8
|
|
|
16
9
|
export const language = atom({})
|
|
@@ -75,69 +68,11 @@ export const useLanguageLabel = () => {
|
|
|
75
68
|
|
|
76
69
|
export const useLanguageEdit = () => {
|
|
77
70
|
|
|
78
|
-
const { path } = useUrl()
|
|
79
|
-
const navigate = useNavigate()
|
|
80
|
-
|
|
81
|
-
const label = useLanguageLabel()
|
|
82
|
-
const lookups = useGetLookups()
|
|
83
|
-
|
|
84
|
-
const statics = useGetStatics()
|
|
85
|
-
const setVerbal = useSetVerbal()
|
|
86
|
-
|
|
87
|
-
const [history, setHistory] = useHistory()
|
|
88
|
-
|
|
89
|
-
const languages = [statics.logic['@lang'], ...F3.arr.safe(statics.logic['@langs'])]
|
|
90
|
-
|
|
91
|
-
const [language, setLanguage] = useLanguage()
|
|
92
71
|
const [modals, setModals] = useModals()
|
|
93
|
-
const setAlerts = useSetAlerts({})
|
|
94
|
-
|
|
95
|
-
const onPress = async () => {
|
|
96
|
-
|
|
97
|
-
const languagesVerbal = lookups.languages.verbal.data.items
|
|
98
|
-
const languagesDefault = lookups.languages.logic
|
|
99
|
-
|
|
100
|
-
const data = {}
|
|
101
|
-
|
|
102
|
-
data.onSetValue = async newValue => {
|
|
103
|
-
|
|
104
|
-
if (newValue.slug === language.slug) return
|
|
105
|
-
if (!languages.includes(newValue.slug)) return
|
|
106
|
-
|
|
107
|
-
const localVerbal = await api.statics.get(uri.data.root.verbal, { lang: newValue.slug })
|
|
108
|
-
|
|
109
|
-
const result = {}
|
|
110
|
-
result.verbal = localVerbal['@data']
|
|
111
|
-
result.language = tools.getLanguage(newValue.slug, statics.logic)
|
|
112
|
-
|
|
113
|
-
if (!result.language || !result.verbal) {
|
|
114
|
-
const alert = {}
|
|
115
|
-
alert.id = 'no-language'
|
|
116
|
-
alert.params = { language: tools.getLanguageLabel(lookups, newValue.slug) }
|
|
117
|
-
return setAlerts(alert)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const newHistory = tools.getNewHistory(history, newValue.slug)
|
|
121
|
-
|
|
122
|
-
setHistory(newHistory)
|
|
123
|
-
setVerbal(result.verbal)
|
|
124
|
-
setLanguage(result.language)
|
|
125
|
-
navigate(`/${newValue.slug}/${path}`)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
data.value = {}
|
|
129
|
-
data.value.slug = language.slug
|
|
130
|
-
data.value.value = label
|
|
131
|
-
|
|
132
|
-
data.itemLogic = {}
|
|
133
|
-
data.itemLogic.options = languages
|
|
134
|
-
|
|
135
|
-
data.itemVerbal = {}
|
|
136
|
-
data.itemVerbal.options = tools.getLanguages(lookups, languages)
|
|
137
|
-
data.itemVerbal.title = lookups.languages.verbal.views.modal.title
|
|
138
72
|
|
|
73
|
+
const onPress = () => {
|
|
139
74
|
const id = makeId()
|
|
140
|
-
setModals([...modals, { id, name: '
|
|
75
|
+
setModals([...modals, { id, name: 'languages' }])
|
|
141
76
|
}
|
|
142
77
|
|
|
143
78
|
return onPress
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useLanguageLabel, useLanguageEdit } from '#@/base/language/@use.js'
|
|
2
2
|
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
3
|
-
import { Launcher } from '#@/
|
|
3
|
+
import { Launcher } from '#@/modules/cards/Launcher.js'
|
|
4
4
|
|
|
5
5
|
export const LanguageCard = ({ api={} }) => {
|
|
6
6
|
|
|
@@ -7,8 +7,8 @@ export const LayoutPod = ({ sidebarTwo, iconTwo,
|
|
|
7
7
|
|
|
8
8
|
const { s, c, f, t, F, B, S, I, H } = useStyle()
|
|
9
9
|
|
|
10
|
-
S.root = [s.col, s.
|
|
11
|
-
S.layout = [s.col, s.
|
|
10
|
+
S.root = [s.col, s.X, s.Yc, s.Ymin0]
|
|
11
|
+
S.layout = [s.col, s.X, s.Yc, s.Ymin0]
|
|
12
12
|
S.body = [s.col_cX, s.X, s.Yc, s.Ymin0, s.overflowXh, c.base_NN_W750]
|
|
13
13
|
|
|
14
14
|
return (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { routes } from '#@/root/routes.js'
|
|
2
2
|
import { useUrl } from '#@/base/router/@use.js'
|
|
3
3
|
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
4
|
-
import { Linker } from '#@/
|
|
4
|
+
import { Linker } from '#@/modules/cards/Linker.js'
|
|
5
5
|
|
|
6
6
|
export const LegalsCard = ({ api={} }) => {
|
|
7
7
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { atom, useGetAtom, useSetAtom } from '#@/imports/npm.js'
|
|
2
|
+
|
|
3
|
+
const store = new Map()
|
|
4
|
+
const resourceAtom = key => {
|
|
5
|
+
if (!store.has(key)) store.set(key, atom({ data: undefined, meta: undefined }))
|
|
6
|
+
return store.get(key)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const writeAtom = atom(null, (get, set, { key, ...rest }) => {
|
|
10
|
+
if (!key) return
|
|
11
|
+
set(resourceAtom(key), { ...get(resourceAtom(key)), ...rest })
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export const useGetResource = key => useGetAtom(resourceAtom(key))
|
|
15
|
+
export const useSetResource = () => useSetAtom(writeAtom)
|
|
@@ -45,6 +45,7 @@ export const useUrl = () => {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
const replaceParents = (match) => {
|
|
48
|
+
if (!match?.route || !F3.arr.isGood(match.route.parent)) return []
|
|
48
49
|
const { route, params } = match;
|
|
49
50
|
return route.parent.map(parentPath => {
|
|
50
51
|
let result = parentPath;
|
|
@@ -209,4 +210,4 @@ export const useChronology = () => {
|
|
|
209
210
|
// useEffect(() => {
|
|
210
211
|
// if (!api?.group) return
|
|
211
212
|
// setDynamic({ group: api.group })
|
|
212
|
-
// }, [api])
|
|
213
|
+
// }, [api])
|
|
@@ -55,14 +55,26 @@ setup.defaultSass = `* {
|
|
|
55
55
|
// user-select: none;
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
:root {
|
|
59
|
+
--app-viewport-height: 100vh;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@supports (height: 100dvh) {
|
|
63
|
+
:root {
|
|
64
|
+
--app-viewport-height: 100dvh;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
html {
|
|
69
|
+
height: 100%;
|
|
70
|
+
width: 100%;
|
|
71
|
+
overscroll-behavior: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
body, #root {
|
|
75
|
+
min-height: 100%;
|
|
76
|
+
width: 100%;
|
|
77
|
+
overscroll-behavior: none;
|
|
66
78
|
}
|
|
67
79
|
|
|
68
80
|
body { margin:0; padding:0 }
|
|
@@ -83,4 +95,4 @@ h1, h2, h3, h4, h5, h6, p, a, span, input, textarea, option, button {
|
|
|
83
95
|
margin-inline-end: 0;
|
|
84
96
|
};`
|
|
85
97
|
|
|
86
|
-
export default setup
|
|
98
|
+
export default setup
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react'
|
|
2
|
-
import {
|
|
2
|
+
import { Viewport } from '#@/imports/core/Viewport.js'
|
|
3
3
|
|
|
4
4
|
export const Root = ({ children, isLoaded }) => {
|
|
5
5
|
|
|
6
|
-
const { s, c, f, t, F, B, S, I, H } = useStyle()
|
|
7
|
-
|
|
8
6
|
const [isOff, setIsOff] = useState(true)
|
|
9
7
|
|
|
10
8
|
useEffect(() => {
|
|
@@ -16,11 +14,9 @@ export const Root = ({ children, isLoaded }) => {
|
|
|
16
14
|
opacity: isOff ? 0 : 1,
|
|
17
15
|
}
|
|
18
16
|
|
|
19
|
-
const className = [s.XY]
|
|
20
|
-
|
|
21
17
|
return (
|
|
22
|
-
<
|
|
18
|
+
<Viewport inline={style}>
|
|
23
19
|
{children}
|
|
24
|
-
</
|
|
20
|
+
</Viewport>
|
|
25
21
|
)
|
|
26
|
-
}
|
|
22
|
+
}
|
|
@@ -14,14 +14,19 @@ export const Scrollable = ({
|
|
|
14
14
|
? { paddingBottom: 'env(safe-area-inset-bottom, 0px)' }
|
|
15
15
|
: {}
|
|
16
16
|
|
|
17
|
+
const scrollInline = {
|
|
18
|
+
overscrollBehavior: 'none',
|
|
19
|
+
overscrollBehaviorY: 'none',
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
return (
|
|
18
23
|
<div
|
|
19
24
|
ref={scrollRef}
|
|
20
25
|
className={[...classes, s.overflowYs].join(' ')}
|
|
21
|
-
style={{ ...inline, ...pageInline }}
|
|
26
|
+
style={{ ...scrollInline, ...inline, ...pageInline }}
|
|
22
27
|
onScroll={onScroll}
|
|
23
28
|
>
|
|
24
29
|
{children}
|
|
25
30
|
</div>
|
|
26
31
|
)
|
|
27
|
-
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const Viewport = ({
|
|
2
|
+
classes = [],
|
|
3
|
+
inline = {},
|
|
4
|
+
children,
|
|
5
|
+
}) => {
|
|
6
|
+
const style = {
|
|
7
|
+
position: 'fixed',
|
|
8
|
+
top: 0,
|
|
9
|
+
right: 0,
|
|
10
|
+
bottom: 0,
|
|
11
|
+
left: 0,
|
|
12
|
+
width: '100%',
|
|
13
|
+
height: 'var(--app-viewport-height, 100vh)',
|
|
14
|
+
overflow: 'hidden',
|
|
15
|
+
overscrollBehavior: 'none',
|
|
16
|
+
overscrollBehaviorY: 'none',
|
|
17
|
+
display: 'flex',
|
|
18
|
+
flexDirection: 'column',
|
|
19
|
+
paddingTop: 'env(safe-area-inset-top, 0px)',
|
|
20
|
+
paddingBottom: 'env(safe-area-inset-bottom, 0px)',
|
|
21
|
+
...inline,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<div className={classes.join(' ')} style={style}>
|
|
26
|
+
{children}
|
|
27
|
+
</div>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -5,35 +5,25 @@ export const Head = () => {
|
|
|
5
5
|
|
|
6
6
|
const meta = useGetMeta()
|
|
7
7
|
|
|
8
|
-
if (!F3.obj.isGood(meta)) return null
|
|
8
|
+
if (!F3.obj.isGood(meta)) return null
|
|
9
9
|
|
|
10
|
-
const {
|
|
10
|
+
const { title, description, cover } = meta
|
|
11
|
+
const image = cover ? `${window.location.origin}/${cover}` : undefined
|
|
11
12
|
|
|
12
13
|
return (
|
|
13
14
|
<Helmet>
|
|
14
15
|
|
|
15
|
-
{
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
{
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
{twitter?.card && <meta name="twitter:card" content={twitter.card} />}
|
|
27
|
-
{twitter?.title && <meta name="twitter:title" content={twitter.title} />}
|
|
28
|
-
{twitter?.description && <meta name="twitter:description" content={twitter.description} />}
|
|
29
|
-
{twitter?.image && <meta name="twitter:image" content={twitter.image} />}
|
|
30
|
-
{twitter?.site && <meta name="twitter:site" content={twitter.site} />}
|
|
31
|
-
|
|
32
|
-
{schema?.schema && (
|
|
33
|
-
<script type="application/ld+json">
|
|
34
|
-
{JSON.stringify(schema.schema)}
|
|
35
|
-
</script>
|
|
36
|
-
)}
|
|
16
|
+
{title && <title>{title}</title>}
|
|
17
|
+
{description && <meta name="description" content={description} />}
|
|
18
|
+
|
|
19
|
+
{title && <meta property="og:title" content={title} />}
|
|
20
|
+
{description && <meta property="og:description" content={description} />}
|
|
21
|
+
{image && <meta property="og:image" content={image} />}
|
|
22
|
+
|
|
23
|
+
{title && <meta name="twitter:title" content={title} />}
|
|
24
|
+
{description && <meta name="twitter:description" content={description} />}
|
|
25
|
+
{image && <meta name="twitter:image" content={image} />}
|
|
26
|
+
|
|
37
27
|
</Helmet>
|
|
38
|
-
)
|
|
39
|
-
}
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useGetStatics } from '#@/base/statics/@use.js'
|
|
2
|
+
import { useGetLookups } from '#@/base/lookups/@use.js'
|
|
3
|
+
|
|
4
|
+
export const useCookiesData = () => {
|
|
5
|
+
|
|
6
|
+
const statics = useGetStatics()
|
|
7
|
+
const lookups = useGetLookups()
|
|
8
|
+
|
|
9
|
+
const itemVisual = {}
|
|
10
|
+
for (const key of Object.keys(statics.logic.cookies.data)) {
|
|
11
|
+
itemVisual[key] = { svg: statics.visual.svg.cookies }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
svg: statics.visual.svg.cookies,
|
|
16
|
+
itemLogic: statics.logic.cookies,
|
|
17
|
+
itemVisual,
|
|
18
|
+
itemVerbal: {
|
|
19
|
+
title: lookups.cookies.verbal.modal.title,
|
|
20
|
+
description: lookups.cookies.verbal.modal.description,
|
|
21
|
+
action: lookups.cookies.verbal.modal.action,
|
|
22
|
+
data: lookups.cookies.verbal.data
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|