cloudcommerce 0.0.108 → 0.0.110
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/CHANGELOG.md +33 -0
- package/package.json +8 -8
- package/packages/api/lib/api.d.ts +4 -4940
- package/packages/api/lib/types.d.ts +17 -3
- package/packages/api/package.json +1 -1
- package/packages/api/src/types.ts +45 -23
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/frenet/lib-mjs/calculate-frenet.mjs +26 -23
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/events/package.json +2 -2
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/lib/en_us.d.ts +1 -0
- package/packages/i18n/lib/en_us.js +1 -0
- package/packages/i18n/lib/en_us.js.map +1 -1
- package/packages/i18n/lib/pt_br.d.ts +1 -0
- package/packages/i18n/lib/pt_br.js +1 -0
- package/packages/i18n/lib/pt_br.js.map +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/i18n/src/en_us.ts +1 -0
- package/packages/i18n/src/pt_br.ts +1 -0
- package/packages/modules/lib/firebase/checkout.js +20 -26
- package/packages/modules/lib/firebase/checkout.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js +23 -18
- package/packages/modules/lib/firebase/functions-checkout/get-custumerId.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js +12 -24
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/new-order.js +8 -8
- package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +2 -9
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
- package/packages/modules/lib/firebase/handle-module.js.map +1 -1
- package/packages/modules/lib/firebase/serve-modules-api.js +1 -1
- package/packages/modules/lib/firebase/serve-modules-api.js.map +1 -1
- package/packages/modules/lib/index.js +2 -0
- package/packages/modules/lib/index.js.map +1 -1
- package/packages/modules/package.json +3 -2
- package/packages/modules/schemas/@checkout.cjs +13 -1
- package/packages/modules/schemas/list_payments.cjs +6 -0
- package/packages/modules/src/firebase/checkout.ts +22 -49
- package/packages/modules/src/firebase/functions-checkout/get-custumerId.ts +23 -17
- package/packages/modules/src/firebase/functions-checkout/handle-order-transaction.ts +8 -45
- package/packages/modules/src/firebase/functions-checkout/new-order.ts +4 -9
- package/packages/modules/src/firebase/functions-checkout/request-to-module.ts +2 -11
- package/packages/modules/src/firebase/handle-module.ts +1 -1
- package/packages/modules/src/firebase/serve-modules-api.ts +1 -1
- package/packages/modules/src/index.ts +2 -0
- package/packages/passport/lib/firebase/authenticate-customer.js +81 -0
- package/packages/passport/lib/firebase/authenticate-customer.js.map +1 -0
- package/packages/passport/lib/firebase/serve-passport-api.js +20 -30
- package/packages/passport/lib/firebase/serve-passport-api.js.map +1 -1
- package/packages/passport/lib/firebase.js +1 -13
- package/packages/passport/lib/firebase.js.map +1 -1
- package/packages/passport/lib/index.js +1 -1
- package/packages/passport/lib/index.js.map +1 -1
- package/packages/passport/package.json +2 -2
- package/packages/passport/src/firebase/authenticate-customer.ts +94 -0
- package/packages/passport/src/firebase/serve-passport-api.ts +21 -49
- package/packages/passport/src/firebase.ts +1 -21
- package/packages/passport/src/index.ts +4 -1
- package/packages/ssr/package.json +5 -6
- package/packages/storefront/content/header.json +6 -0
- package/packages/storefront/dist/client/LoginDrawer.e69d1c74.js +1 -0
- package/packages/storefront/dist/client/assets/_...d5980663.css +4 -0
- package/packages/storefront/dist/client/chunks/LoginDrawer.0c26574f.js +1 -0
- package/packages/storefront/dist/client/chunks/{LoginForm.c86d05cc.js → LoginForm.892d64a5.js} +132 -102
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.7f8f570f.js +1 -0
- package/packages/storefront/dist/client/{client.6db2fd63.js → client.246ab4a4.js} +1 -1
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/entry.mjs +2214 -32
- package/packages/storefront/package.json +12 -9
- package/packages/storefront/src/assets/pico.css +3 -400
- package/packages/storefront/src/lib/components/{AOffcanvas.vue → ADrawer.vue} +3 -3
- package/packages/storefront/src/lib/components/LoginDrawer.vue +80 -0
- package/packages/storefront/src/lib/components/LoginForm.vue +66 -29
- package/packages/storefront/src/lib/components/TheHeader.vue +1 -1
- package/packages/storefront/src/lib/layouts/PagesHeader.astro +18 -7
- package/packages/storefront/src/lib/state/customer-session.ts +137 -0
- package/packages/types/index.ts +22 -0
- package/packages/types/modules/@checkout:params.d.ts +9 -1
- package/packages/types/modules/list_payments:params.d.ts +4 -0
- package/packages/types/package.json +1 -1
- package/packages/passport/lib/firebase/handle-passport.js +0 -112
- package/packages/passport/lib/firebase/handle-passport.js.map +0 -1
- package/packages/passport/src/firebase/handle-passport.ts +0 -142
- package/packages/storefront/dist/client/LoginOffcanvas.c2a47936.js +0 -1
- package/packages/storefront/dist/client/assets/_...4826ec44.css +0 -4
- package/packages/storefront/dist/client/chunks/LoginOffcanvas.794b9840.js +0 -1
- package/packages/storefront/dist/client/chunks/runtime-dom.esm-bundler.4b976197.js +0 -1
- package/packages/storefront/src/lib/components/LoginOffcanvas.vue +0 -41
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/storefront",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.110",
|
|
5
5
|
"description": "E-Com Plus Cloud Commerce storefront with Astro",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"repository": {
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@astrojs/image": "^0.8.1",
|
|
30
|
-
"@astrojs/node": "^1.0
|
|
30
|
+
"@astrojs/node": "^1.1.0",
|
|
31
31
|
"@astrojs/partytown": "^1.0.0",
|
|
32
32
|
"@astrojs/prefetch": "^0.0.7",
|
|
33
|
-
"@astrojs/vue": "^1.0
|
|
33
|
+
"@astrojs/vue": "^1.1.0",
|
|
34
34
|
"@cloudcommerce/api": "workspace:*",
|
|
35
35
|
"@cloudcommerce/config": "workspace:*",
|
|
36
36
|
"@cloudcommerce/i18n": "workspace:*",
|
|
@@ -39,17 +39,20 @@
|
|
|
39
39
|
"@iconify-json/heroicons": "^1.1.4",
|
|
40
40
|
"@iconify-json/logos": "^1.1.16",
|
|
41
41
|
"@nanostores/vue": "^0.6.0",
|
|
42
|
-
"@unocss/preset-icons": "^0.45.
|
|
43
|
-
"astro": "
|
|
42
|
+
"@unocss/preset-icons": "^0.45.26",
|
|
43
|
+
"astro": "1.3.x",
|
|
44
44
|
"color": "^4.2.3",
|
|
45
|
-
"dotenv": "^16.0.
|
|
45
|
+
"dotenv": "^16.0.3",
|
|
46
46
|
"firebase": "^9.10.0",
|
|
47
47
|
"image-size": "^1.0.2",
|
|
48
48
|
"nanostores": "^0.7.0",
|
|
49
49
|
"rollup": "^2.79.1",
|
|
50
|
-
"unocss": "^0.45.
|
|
51
|
-
"vite": "^3.1.
|
|
50
|
+
"unocss": "^0.45.26",
|
|
51
|
+
"vite": "^3.1.4",
|
|
52
52
|
"vite-plugin-pwa": "^0.13.1",
|
|
53
|
-
"vue": "^3.2.
|
|
53
|
+
"vue": "^3.2.40"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@babel/core": "^7.19.3"
|
|
54
57
|
}
|
|
55
58
|
}
|
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
--nav-link-spacing-vertical: 0.5rem;
|
|
30
30
|
--nav-link-spacing-horizontal: 0.5rem;
|
|
31
31
|
--form-label-font-weight: var(--font-weight);
|
|
32
|
-
--transition: 0.
|
|
33
|
-
--modal-overlay-backdrop-filter: blur(0.25rem);
|
|
32
|
+
--transition: 0.15s ease-in-out;
|
|
34
33
|
--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
|
35
34
|
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(65, 84, 98)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
|
36
35
|
--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
|
@@ -533,8 +532,6 @@ a,
|
|
|
533
532
|
color: var(--color);
|
|
534
533
|
-webkit-text-decoration: var(--text-decoration);
|
|
535
534
|
text-decoration: var(--text-decoration);
|
|
536
|
-
transition: background-color var(--transition), color var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
|
|
537
|
-
transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition);
|
|
538
535
|
transition: background-color var(--transition), color var(--transition), text-decoration var(--transition), box-shadow var(--transition), -webkit-text-decoration var(--transition);
|
|
539
536
|
}
|
|
540
537
|
a:is([aria-current], :hover, :active, :focus),
|
|
@@ -653,10 +650,6 @@ small {
|
|
|
653
650
|
margin-top: calc(var(--typography-spacing-vertical) * 0.25);
|
|
654
651
|
}
|
|
655
652
|
|
|
656
|
-
ul li {
|
|
657
|
-
list-style: square;
|
|
658
|
-
}
|
|
659
|
-
|
|
660
653
|
mark {
|
|
661
654
|
padding: 0.125rem 0.25rem;
|
|
662
655
|
background-color: var(--mark-background-color);
|
|
@@ -695,14 +688,6 @@ del {
|
|
|
695
688
|
color: var(--del-color);
|
|
696
689
|
}
|
|
697
690
|
|
|
698
|
-
::-moz-selection {
|
|
699
|
-
background-color: var(--primary-focus);
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
::selection {
|
|
703
|
-
background-color: var(--primary-focus);
|
|
704
|
-
}
|
|
705
|
-
|
|
706
691
|
/**
|
|
707
692
|
* Embedded content
|
|
708
693
|
*/
|
|
@@ -1261,8 +1246,6 @@ label > :where(input, select, textarea) {
|
|
|
1261
1246
|
line-height: var(--line-height);
|
|
1262
1247
|
text-align: center;
|
|
1263
1248
|
cursor: pointer;
|
|
1264
|
-
-webkit-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1265
|
-
transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1266
1249
|
}
|
|
1267
1250
|
[type=file]::file-selector-button {
|
|
1268
1251
|
--background-color: var(--secondary);
|
|
@@ -1286,7 +1269,6 @@ label > :where(input, select, textarea) {
|
|
|
1286
1269
|
line-height: var(--line-height);
|
|
1287
1270
|
text-align: center;
|
|
1288
1271
|
cursor: pointer;
|
|
1289
|
-
transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1290
1272
|
}
|
|
1291
1273
|
[type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {
|
|
1292
1274
|
--background-color: var(--secondary-hover);
|
|
@@ -1318,8 +1300,6 @@ label > :where(input, select, textarea) {
|
|
|
1318
1300
|
line-height: var(--line-height);
|
|
1319
1301
|
text-align: center;
|
|
1320
1302
|
cursor: pointer;
|
|
1321
|
-
-webkit-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1322
|
-
transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1323
1303
|
}
|
|
1324
1304
|
[type=file]::-webkit-file-upload-button:is(:hover, :active, :focus) {
|
|
1325
1305
|
--background-color: var(--secondary-hover);
|
|
@@ -1345,8 +1325,6 @@ label > :where(input, select, textarea) {
|
|
|
1345
1325
|
line-height: var(--line-height);
|
|
1346
1326
|
text-align: center;
|
|
1347
1327
|
cursor: pointer;
|
|
1348
|
-
-ms-transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1349
|
-
transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
|
|
1350
1328
|
}
|
|
1351
1329
|
[type=file]::-ms-browse:is(:hover, :active, :focus) {
|
|
1352
1330
|
--background-color: var(--secondary-hover);
|
|
@@ -1712,8 +1690,6 @@ dialog {
|
|
|
1712
1690
|
min-height: 100%;
|
|
1713
1691
|
padding: var(--spacing);
|
|
1714
1692
|
border: 0;
|
|
1715
|
-
-webkit-backdrop-filter: var(--modal-overlay-backdrop-filter);
|
|
1716
|
-
backdrop-filter: var(--modal-overlay-backdrop-filter);
|
|
1717
1693
|
background-color: var(--modal-overlay-background-color);
|
|
1718
1694
|
color: var(--color);
|
|
1719
1695
|
}
|
|
@@ -1773,71 +1749,6 @@ dialog:not([open]), dialog[open=false] {
|
|
|
1773
1749
|
display: none;
|
|
1774
1750
|
}
|
|
1775
1751
|
|
|
1776
|
-
.modal-is-open {
|
|
1777
|
-
padding-right: var(--scrollbar-width, 0px);
|
|
1778
|
-
overflow: hidden;
|
|
1779
|
-
pointer-events: none;
|
|
1780
|
-
}
|
|
1781
|
-
.modal-is-open dialog {
|
|
1782
|
-
pointer-events: auto;
|
|
1783
|
-
}
|
|
1784
|
-
|
|
1785
|
-
:where(.modal-is-opening, .modal-is-closing) dialog,
|
|
1786
|
-
:where(.modal-is-opening, .modal-is-closing) dialog > article {
|
|
1787
|
-
-webkit-animation-duration: 0.2s;
|
|
1788
|
-
animation-duration: 0.2s;
|
|
1789
|
-
-webkit-animation-timing-function: ease-in-out;
|
|
1790
|
-
animation-timing-function: ease-in-out;
|
|
1791
|
-
-webkit-animation-fill-mode: both;
|
|
1792
|
-
animation-fill-mode: both;
|
|
1793
|
-
}
|
|
1794
|
-
:where(.modal-is-opening, .modal-is-closing) dialog {
|
|
1795
|
-
-webkit-animation-duration: 0.8s;
|
|
1796
|
-
animation-duration: 0.8s;
|
|
1797
|
-
-webkit-animation-name: modal-overlay;
|
|
1798
|
-
animation-name: modal-overlay;
|
|
1799
|
-
}
|
|
1800
|
-
:where(.modal-is-opening, .modal-is-closing) dialog > article {
|
|
1801
|
-
-webkit-animation-delay: 0.2s;
|
|
1802
|
-
animation-delay: 0.2s;
|
|
1803
|
-
-webkit-animation-name: modal;
|
|
1804
|
-
animation-name: modal;
|
|
1805
|
-
}
|
|
1806
|
-
|
|
1807
|
-
.modal-is-closing dialog,
|
|
1808
|
-
.modal-is-closing dialog > article {
|
|
1809
|
-
-webkit-animation-delay: 0s;
|
|
1810
|
-
animation-delay: 0s;
|
|
1811
|
-
animation-direction: reverse;
|
|
1812
|
-
}
|
|
1813
|
-
|
|
1814
|
-
@-webkit-keyframes modal-overlay {
|
|
1815
|
-
from {
|
|
1816
|
-
-webkit-backdrop-filter: none;
|
|
1817
|
-
backdrop-filter: none;
|
|
1818
|
-
background-color: transparent;
|
|
1819
|
-
}
|
|
1820
|
-
}
|
|
1821
|
-
|
|
1822
|
-
@keyframes modal-overlay {
|
|
1823
|
-
from {
|
|
1824
|
-
-webkit-backdrop-filter: none;
|
|
1825
|
-
backdrop-filter: none;
|
|
1826
|
-
background-color: transparent;
|
|
1827
|
-
}
|
|
1828
|
-
}
|
|
1829
|
-
@-webkit-keyframes modal {
|
|
1830
|
-
from {
|
|
1831
|
-
transform: translateY(-100%);
|
|
1832
|
-
opacity: 0;
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
@keyframes modal {
|
|
1836
|
-
from {
|
|
1837
|
-
transform: translateY(-100%);
|
|
1838
|
-
opacity: 0;
|
|
1839
|
-
}
|
|
1840
|
-
}
|
|
1841
1752
|
/**
|
|
1842
1753
|
* Nav
|
|
1843
1754
|
*/
|
|
@@ -1968,6 +1879,7 @@ progress[value]::-webkit-progress-value {
|
|
|
1968
1879
|
progress::-moz-progress-bar {
|
|
1969
1880
|
background-color: var(--progress-color);
|
|
1970
1881
|
}
|
|
1882
|
+
|
|
1971
1883
|
@media (prefers-reduced-motion: no-preference) {
|
|
1972
1884
|
progress:indeterminate {
|
|
1973
1885
|
background: var(--progress-background-color) linear-gradient(to right, var(--progress-color) 30%, var(--progress-background-color) 30%) top left/150% 150% no-repeat;
|
|
@@ -1980,9 +1892,6 @@ progress::-moz-progress-bar {
|
|
|
1980
1892
|
progress:indeterminate::-moz-progress-bar {
|
|
1981
1893
|
background-color: transparent;
|
|
1982
1894
|
}
|
|
1983
|
-
}
|
|
1984
|
-
|
|
1985
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
1986
1895
|
[dir=rtl] progress:indeterminate {
|
|
1987
1896
|
animation-direction: reverse;
|
|
1988
1897
|
}
|
|
@@ -2005,6 +1914,7 @@ progress::-moz-progress-bar {
|
|
|
2005
1914
|
background-position: -200% 0;
|
|
2006
1915
|
}
|
|
2007
1916
|
}
|
|
1917
|
+
|
|
2008
1918
|
/**
|
|
2009
1919
|
* Dropdown ([role="list"])
|
|
2010
1920
|
*/
|
|
@@ -2228,313 +2138,6 @@ a[aria-busy=true] {
|
|
|
2228
2138
|
transform: rotate(360deg);
|
|
2229
2139
|
}
|
|
2230
2140
|
}
|
|
2231
|
-
/**
|
|
2232
|
-
* Tooltip ([data-tooltip])
|
|
2233
|
-
*/
|
|
2234
|
-
[data-tooltip] {
|
|
2235
|
-
position: relative;
|
|
2236
|
-
}
|
|
2237
|
-
[data-tooltip]:not(a, button, input) {
|
|
2238
|
-
border-bottom: 1px dotted;
|
|
2239
|
-
text-decoration: none;
|
|
2240
|
-
cursor: help;
|
|
2241
|
-
}
|
|
2242
|
-
[data-tooltip][data-placement=top]::before, [data-tooltip][data-placement=top]::after, [data-tooltip]::before, [data-tooltip]::after {
|
|
2243
|
-
display: block;
|
|
2244
|
-
z-index: 99;
|
|
2245
|
-
position: absolute;
|
|
2246
|
-
bottom: 100%;
|
|
2247
|
-
left: 50%;
|
|
2248
|
-
padding: 0.25rem 0.5rem;
|
|
2249
|
-
overflow: hidden;
|
|
2250
|
-
transform: translate(-50%, -0.25rem);
|
|
2251
|
-
border-radius: var(--border-radius);
|
|
2252
|
-
background: var(--tooltip-background-color);
|
|
2253
|
-
content: attr(data-tooltip);
|
|
2254
|
-
color: var(--tooltip-color);
|
|
2255
|
-
font-style: normal;
|
|
2256
|
-
font-weight: var(--font-weight);
|
|
2257
|
-
font-size: 0.875rem;
|
|
2258
|
-
text-decoration: none;
|
|
2259
|
-
text-overflow: ellipsis;
|
|
2260
|
-
white-space: nowrap;
|
|
2261
|
-
opacity: 0;
|
|
2262
|
-
pointer-events: none;
|
|
2263
|
-
}
|
|
2264
|
-
[data-tooltip][data-placement=top]::after, [data-tooltip]::after {
|
|
2265
|
-
padding: 0;
|
|
2266
|
-
transform: translate(-50%, 0rem);
|
|
2267
|
-
border-top: 0.3rem solid;
|
|
2268
|
-
border-right: 0.3rem solid transparent;
|
|
2269
|
-
border-left: 0.3rem solid transparent;
|
|
2270
|
-
border-radius: 0;
|
|
2271
|
-
background-color: transparent;
|
|
2272
|
-
content: "";
|
|
2273
|
-
color: var(--tooltip-background-color);
|
|
2274
|
-
}
|
|
2275
|
-
[data-tooltip][data-placement=bottom]::before, [data-tooltip][data-placement=bottom]::after {
|
|
2276
|
-
top: 100%;
|
|
2277
|
-
bottom: auto;
|
|
2278
|
-
transform: translate(-50%, 0.25rem);
|
|
2279
|
-
}
|
|
2280
|
-
[data-tooltip][data-placement=bottom]:after {
|
|
2281
|
-
transform: translate(-50%, -0.3rem);
|
|
2282
|
-
border: 0.3rem solid transparent;
|
|
2283
|
-
border-bottom: 0.3rem solid;
|
|
2284
|
-
}
|
|
2285
|
-
[data-tooltip][data-placement=left]::before, [data-tooltip][data-placement=left]::after {
|
|
2286
|
-
top: 50%;
|
|
2287
|
-
right: 100%;
|
|
2288
|
-
bottom: auto;
|
|
2289
|
-
left: auto;
|
|
2290
|
-
transform: translate(-0.25rem, -50%);
|
|
2291
|
-
}
|
|
2292
|
-
[data-tooltip][data-placement=left]:after {
|
|
2293
|
-
transform: translate(0.3rem, -50%);
|
|
2294
|
-
border: 0.3rem solid transparent;
|
|
2295
|
-
border-left: 0.3rem solid;
|
|
2296
|
-
}
|
|
2297
|
-
[data-tooltip][data-placement=right]::before, [data-tooltip][data-placement=right]::after {
|
|
2298
|
-
top: 50%;
|
|
2299
|
-
right: auto;
|
|
2300
|
-
bottom: auto;
|
|
2301
|
-
left: 100%;
|
|
2302
|
-
transform: translate(0.25rem, -50%);
|
|
2303
|
-
}
|
|
2304
|
-
[data-tooltip][data-placement=right]:after {
|
|
2305
|
-
transform: translate(-0.3rem, -50%);
|
|
2306
|
-
border: 0.3rem solid transparent;
|
|
2307
|
-
border-right: 0.3rem solid;
|
|
2308
|
-
}
|
|
2309
|
-
[data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
|
|
2310
|
-
opacity: 1;
|
|
2311
|
-
}
|
|
2312
|
-
@media (hover: hover) and (pointer: fine) {
|
|
2313
|
-
[data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::before, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
|
|
2314
|
-
-webkit-animation-duration: 0.2s;
|
|
2315
|
-
animation-duration: 0.2s;
|
|
2316
|
-
-webkit-animation-name: tooltip-slide-top;
|
|
2317
|
-
animation-name: tooltip-slide-top;
|
|
2318
|
-
}
|
|
2319
|
-
[data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover [data-tooltip]:focus::after, [data-tooltip]:hover::after {
|
|
2320
|
-
-webkit-animation-name: tooltip-caret-slide-top;
|
|
2321
|
-
animation-name: tooltip-caret-slide-top;
|
|
2322
|
-
}
|
|
2323
|
-
[data-tooltip][data-placement=bottom]:focus::before, [data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::before, [data-tooltip][data-placement=bottom]:hover::after {
|
|
2324
|
-
-webkit-animation-duration: 0.2s;
|
|
2325
|
-
animation-duration: 0.2s;
|
|
2326
|
-
-webkit-animation-name: tooltip-slide-bottom;
|
|
2327
|
-
animation-name: tooltip-slide-bottom;
|
|
2328
|
-
}
|
|
2329
|
-
[data-tooltip][data-placement=bottom]:focus::after, [data-tooltip][data-placement=bottom]:hover::after {
|
|
2330
|
-
-webkit-animation-name: tooltip-caret-slide-bottom;
|
|
2331
|
-
animation-name: tooltip-caret-slide-bottom;
|
|
2332
|
-
}
|
|
2333
|
-
[data-tooltip][data-placement=left]:focus::before, [data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::before, [data-tooltip][data-placement=left]:hover::after {
|
|
2334
|
-
-webkit-animation-duration: 0.2s;
|
|
2335
|
-
animation-duration: 0.2s;
|
|
2336
|
-
-webkit-animation-name: tooltip-slide-left;
|
|
2337
|
-
animation-name: tooltip-slide-left;
|
|
2338
|
-
}
|
|
2339
|
-
[data-tooltip][data-placement=left]:focus::after, [data-tooltip][data-placement=left]:hover::after {
|
|
2340
|
-
-webkit-animation-name: tooltip-caret-slide-left;
|
|
2341
|
-
animation-name: tooltip-caret-slide-left;
|
|
2342
|
-
}
|
|
2343
|
-
[data-tooltip][data-placement=right]:focus::before, [data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::before, [data-tooltip][data-placement=right]:hover::after {
|
|
2344
|
-
-webkit-animation-duration: 0.2s;
|
|
2345
|
-
animation-duration: 0.2s;
|
|
2346
|
-
-webkit-animation-name: tooltip-slide-right;
|
|
2347
|
-
animation-name: tooltip-slide-right;
|
|
2348
|
-
}
|
|
2349
|
-
[data-tooltip][data-placement=right]:focus::after, [data-tooltip][data-placement=right]:hover::after {
|
|
2350
|
-
-webkit-animation-name: tooltip-caret-slide-right;
|
|
2351
|
-
animation-name: tooltip-caret-slide-right;
|
|
2352
|
-
}
|
|
2353
|
-
}
|
|
2354
|
-
@-webkit-keyframes tooltip-slide-top {
|
|
2355
|
-
from {
|
|
2356
|
-
transform: translate(-50%, 0.75rem);
|
|
2357
|
-
opacity: 0;
|
|
2358
|
-
}
|
|
2359
|
-
to {
|
|
2360
|
-
transform: translate(-50%, -0.25rem);
|
|
2361
|
-
opacity: 1;
|
|
2362
|
-
}
|
|
2363
|
-
}
|
|
2364
|
-
@keyframes tooltip-slide-top {
|
|
2365
|
-
from {
|
|
2366
|
-
transform: translate(-50%, 0.75rem);
|
|
2367
|
-
opacity: 0;
|
|
2368
|
-
}
|
|
2369
|
-
to {
|
|
2370
|
-
transform: translate(-50%, -0.25rem);
|
|
2371
|
-
opacity: 1;
|
|
2372
|
-
}
|
|
2373
|
-
}
|
|
2374
|
-
@-webkit-keyframes tooltip-caret-slide-top {
|
|
2375
|
-
from {
|
|
2376
|
-
opacity: 0;
|
|
2377
|
-
}
|
|
2378
|
-
50% {
|
|
2379
|
-
transform: translate(-50%, -0.25rem);
|
|
2380
|
-
opacity: 0;
|
|
2381
|
-
}
|
|
2382
|
-
to {
|
|
2383
|
-
transform: translate(-50%, 0rem);
|
|
2384
|
-
opacity: 1;
|
|
2385
|
-
}
|
|
2386
|
-
}
|
|
2387
|
-
@keyframes tooltip-caret-slide-top {
|
|
2388
|
-
from {
|
|
2389
|
-
opacity: 0;
|
|
2390
|
-
}
|
|
2391
|
-
50% {
|
|
2392
|
-
transform: translate(-50%, -0.25rem);
|
|
2393
|
-
opacity: 0;
|
|
2394
|
-
}
|
|
2395
|
-
to {
|
|
2396
|
-
transform: translate(-50%, 0rem);
|
|
2397
|
-
opacity: 1;
|
|
2398
|
-
}
|
|
2399
|
-
}
|
|
2400
|
-
@-webkit-keyframes tooltip-slide-bottom {
|
|
2401
|
-
from {
|
|
2402
|
-
transform: translate(-50%, -0.75rem);
|
|
2403
|
-
opacity: 0;
|
|
2404
|
-
}
|
|
2405
|
-
to {
|
|
2406
|
-
transform: translate(-50%, 0.25rem);
|
|
2407
|
-
opacity: 1;
|
|
2408
|
-
}
|
|
2409
|
-
}
|
|
2410
|
-
@keyframes tooltip-slide-bottom {
|
|
2411
|
-
from {
|
|
2412
|
-
transform: translate(-50%, -0.75rem);
|
|
2413
|
-
opacity: 0;
|
|
2414
|
-
}
|
|
2415
|
-
to {
|
|
2416
|
-
transform: translate(-50%, 0.25rem);
|
|
2417
|
-
opacity: 1;
|
|
2418
|
-
}
|
|
2419
|
-
}
|
|
2420
|
-
@-webkit-keyframes tooltip-caret-slide-bottom {
|
|
2421
|
-
from {
|
|
2422
|
-
opacity: 0;
|
|
2423
|
-
}
|
|
2424
|
-
50% {
|
|
2425
|
-
transform: translate(-50%, -0.5rem);
|
|
2426
|
-
opacity: 0;
|
|
2427
|
-
}
|
|
2428
|
-
to {
|
|
2429
|
-
transform: translate(-50%, -0.3rem);
|
|
2430
|
-
opacity: 1;
|
|
2431
|
-
}
|
|
2432
|
-
}
|
|
2433
|
-
@keyframes tooltip-caret-slide-bottom {
|
|
2434
|
-
from {
|
|
2435
|
-
opacity: 0;
|
|
2436
|
-
}
|
|
2437
|
-
50% {
|
|
2438
|
-
transform: translate(-50%, -0.5rem);
|
|
2439
|
-
opacity: 0;
|
|
2440
|
-
}
|
|
2441
|
-
to {
|
|
2442
|
-
transform: translate(-50%, -0.3rem);
|
|
2443
|
-
opacity: 1;
|
|
2444
|
-
}
|
|
2445
|
-
}
|
|
2446
|
-
@-webkit-keyframes tooltip-slide-left {
|
|
2447
|
-
from {
|
|
2448
|
-
transform: translate(0.75rem, -50%);
|
|
2449
|
-
opacity: 0;
|
|
2450
|
-
}
|
|
2451
|
-
to {
|
|
2452
|
-
transform: translate(-0.25rem, -50%);
|
|
2453
|
-
opacity: 1;
|
|
2454
|
-
}
|
|
2455
|
-
}
|
|
2456
|
-
@keyframes tooltip-slide-left {
|
|
2457
|
-
from {
|
|
2458
|
-
transform: translate(0.75rem, -50%);
|
|
2459
|
-
opacity: 0;
|
|
2460
|
-
}
|
|
2461
|
-
to {
|
|
2462
|
-
transform: translate(-0.25rem, -50%);
|
|
2463
|
-
opacity: 1;
|
|
2464
|
-
}
|
|
2465
|
-
}
|
|
2466
|
-
@-webkit-keyframes tooltip-caret-slide-left {
|
|
2467
|
-
from {
|
|
2468
|
-
opacity: 0;
|
|
2469
|
-
}
|
|
2470
|
-
50% {
|
|
2471
|
-
transform: translate(0.05rem, -50%);
|
|
2472
|
-
opacity: 0;
|
|
2473
|
-
}
|
|
2474
|
-
to {
|
|
2475
|
-
transform: translate(0.3rem, -50%);
|
|
2476
|
-
opacity: 1;
|
|
2477
|
-
}
|
|
2478
|
-
}
|
|
2479
|
-
@keyframes tooltip-caret-slide-left {
|
|
2480
|
-
from {
|
|
2481
|
-
opacity: 0;
|
|
2482
|
-
}
|
|
2483
|
-
50% {
|
|
2484
|
-
transform: translate(0.05rem, -50%);
|
|
2485
|
-
opacity: 0;
|
|
2486
|
-
}
|
|
2487
|
-
to {
|
|
2488
|
-
transform: translate(0.3rem, -50%);
|
|
2489
|
-
opacity: 1;
|
|
2490
|
-
}
|
|
2491
|
-
}
|
|
2492
|
-
@-webkit-keyframes tooltip-slide-right {
|
|
2493
|
-
from {
|
|
2494
|
-
transform: translate(-0.75rem, -50%);
|
|
2495
|
-
opacity: 0;
|
|
2496
|
-
}
|
|
2497
|
-
to {
|
|
2498
|
-
transform: translate(0.25rem, -50%);
|
|
2499
|
-
opacity: 1;
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
@keyframes tooltip-slide-right {
|
|
2503
|
-
from {
|
|
2504
|
-
transform: translate(-0.75rem, -50%);
|
|
2505
|
-
opacity: 0;
|
|
2506
|
-
}
|
|
2507
|
-
to {
|
|
2508
|
-
transform: translate(0.25rem, -50%);
|
|
2509
|
-
opacity: 1;
|
|
2510
|
-
}
|
|
2511
|
-
}
|
|
2512
|
-
@-webkit-keyframes tooltip-caret-slide-right {
|
|
2513
|
-
from {
|
|
2514
|
-
opacity: 0;
|
|
2515
|
-
}
|
|
2516
|
-
50% {
|
|
2517
|
-
transform: translate(-0.05rem, -50%);
|
|
2518
|
-
opacity: 0;
|
|
2519
|
-
}
|
|
2520
|
-
to {
|
|
2521
|
-
transform: translate(-0.3rem, -50%);
|
|
2522
|
-
opacity: 1;
|
|
2523
|
-
}
|
|
2524
|
-
}
|
|
2525
|
-
@keyframes tooltip-caret-slide-right {
|
|
2526
|
-
from {
|
|
2527
|
-
opacity: 0;
|
|
2528
|
-
}
|
|
2529
|
-
50% {
|
|
2530
|
-
transform: translate(-0.05rem, -50%);
|
|
2531
|
-
opacity: 0;
|
|
2532
|
-
}
|
|
2533
|
-
to {
|
|
2534
|
-
transform: translate(-0.3rem, -50%);
|
|
2535
|
-
opacity: 1;
|
|
2536
|
-
}
|
|
2537
|
-
}
|
|
2538
2141
|
|
|
2539
2142
|
/**
|
|
2540
2143
|
* Accessibility & User interaction
|
|
@@ -31,13 +31,13 @@ const escClickListener = (ev: KeyboardEvent) => {
|
|
|
31
31
|
};
|
|
32
32
|
watch(toRef(props, 'modelValue'), async (isOpen) => {
|
|
33
33
|
if (isOpen) {
|
|
34
|
-
document.body.style.maxWidth = `${document.body.offsetWidth}px`;
|
|
35
34
|
document.body.style.overflow = 'hidden';
|
|
36
35
|
setTimeout(() => {
|
|
37
36
|
document.addEventListener('click', outsideClickListener, { passive: true });
|
|
38
37
|
document.addEventListener('keydown', escClickListener, { passive: true });
|
|
39
38
|
}, 500);
|
|
40
39
|
} else {
|
|
40
|
+
document.body.style.overflow = null;
|
|
41
41
|
document.removeEventListener('click', outsideClickListener);
|
|
42
42
|
document.removeEventListener('keydown', escClickListener);
|
|
43
43
|
}
|
|
@@ -75,7 +75,7 @@ const transition3dTx = computed(() => {
|
|
|
75
75
|
<style>
|
|
76
76
|
.offcanvas.v-enter-active,
|
|
77
77
|
.offcanvas.v-leave-active {
|
|
78
|
-
transition: opacity 0.
|
|
78
|
+
transition: opacity 0.15s linear;
|
|
79
79
|
}
|
|
80
80
|
.offcanvas.v-enter-from,
|
|
81
81
|
.offcanvas.v-leave-to {
|
|
@@ -83,7 +83,7 @@ const transition3dTx = computed(() => {
|
|
|
83
83
|
}
|
|
84
84
|
.offcanvas.v-enter-active article,
|
|
85
85
|
.offcanvas.v-leave-active article {
|
|
86
|
-
transition: transform 0.
|
|
86
|
+
transition: transform 0.25s ease-in-out;
|
|
87
87
|
}
|
|
88
88
|
.offcanvas.v-enter-from article,
|
|
89
89
|
.offcanvas.v-leave-to article {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, defineAsyncComponent } from 'vue';
|
|
3
|
+
import {
|
|
4
|
+
i19myAccountAndOrders,
|
|
5
|
+
i19myAccount,
|
|
6
|
+
i19myOrders,
|
|
7
|
+
} from '@i18n';
|
|
8
|
+
import ADrawer from './ADrawer.vue';
|
|
9
|
+
|
|
10
|
+
export interface Props {
|
|
11
|
+
accountUrl?: string;
|
|
12
|
+
accountIconClass?: string;
|
|
13
|
+
additionalLinks?: Array<{
|
|
14
|
+
href: string;
|
|
15
|
+
isBlank?: boolean;
|
|
16
|
+
innerHTML: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
withDefaults(defineProps<Props>(), {
|
|
21
|
+
accountUrl: '/app/account',
|
|
22
|
+
accountIconClass: 'i-user-circle',
|
|
23
|
+
additionalLinks: () => [],
|
|
24
|
+
});
|
|
25
|
+
const isVisible = ref(false);
|
|
26
|
+
const loadingLoginForm = !import.meta.env.SSR
|
|
27
|
+
? import('./LoginForm.vue')
|
|
28
|
+
: Promise.resolve() as Promise<any>;
|
|
29
|
+
const LoginForm = defineAsyncComponent(() => loadingLoginForm);
|
|
30
|
+
const toggle = (ev: MouseEvent) => {
|
|
31
|
+
loadingLoginForm.then(() => {
|
|
32
|
+
isVisible.value = !isVisible.value;
|
|
33
|
+
ev.preventDefault();
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
const isLogged = ref(false);
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<template>
|
|
40
|
+
<div @click="toggle">
|
|
41
|
+
<slot name="toggle" v-bind="{ isVisible }">
|
|
42
|
+
<a :href="accountUrl" :title="i19myAccountAndOrders">
|
|
43
|
+
<div :class="accountIconClass"></div>
|
|
44
|
+
</a>
|
|
45
|
+
</slot>
|
|
46
|
+
</div>
|
|
47
|
+
<ADrawer v-model="isVisible" class="login-offcanvas">
|
|
48
|
+
<slot name="form">
|
|
49
|
+
<LoginForm
|
|
50
|
+
class="w-80"
|
|
51
|
+
@login="isLogged = true"
|
|
52
|
+
@logout="isLogged = false"
|
|
53
|
+
/>
|
|
54
|
+
</slot>
|
|
55
|
+
<slot name="nav" v-bind="{ isLogged }">
|
|
56
|
+
<hr>
|
|
57
|
+
<aside>
|
|
58
|
+
<nav>
|
|
59
|
+
<ul>
|
|
60
|
+
<template v-if="isLogged">
|
|
61
|
+
<li><a :href="`${accountUrl}/#/orders`">{{ i19myOrders }}</a></li>
|
|
62
|
+
<li><a :href="accountUrl">{{ i19myAccount }}</a></li>
|
|
63
|
+
</template>
|
|
64
|
+
<li
|
|
65
|
+
v-for="({ href, isBlank, innerHTML }, i) in additionalLinks"
|
|
66
|
+
:key="i"
|
|
67
|
+
>
|
|
68
|
+
<a
|
|
69
|
+
:href="href"
|
|
70
|
+
:target="isBlank ? '_blank' : null"
|
|
71
|
+
:rel="isBlank ? 'noopener' : null"
|
|
72
|
+
v-html="innerHTML"
|
|
73
|
+
></a>
|
|
74
|
+
</li>
|
|
75
|
+
</ul>
|
|
76
|
+
</nav>
|
|
77
|
+
</aside>
|
|
78
|
+
</slot>
|
|
79
|
+
</ADrawer>
|
|
80
|
+
</template>
|