diff --git a/package.json b/package.json index 414efa3a..89ab143d 100755 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "vue2-dragula": "^2.5.5", "vue3-pdf-app": "^1.0.3", "vue3-qr-reader": "^1.0.0", + "vuedraggable": "^4.1.0", "vuex": "^4.1.0", "vuex-router-sync": "^6.0.0-rc.1", "workbox-core": "^7.3.0", diff --git a/public/fonts/AGaramondPro-Regular.otf b/public/fonts/AGaramondPro-Regular.otf deleted file mode 100755 index db89cfed..00000000 Binary files a/public/fonts/AGaramondPro-Regular.otf and /dev/null differ diff --git a/public/fonts/DIN Pro.zip b/public/fonts/DIN Pro.zip deleted file mode 100644 index f5ecba05..00000000 Binary files a/public/fonts/DIN Pro.zip and /dev/null differ diff --git a/public/fonts/DIN Pro/COPYRIGHT.txt b/public/fonts/DIN Pro/COPYRIGHT.txt deleted file mode 100644 index b297d749..00000000 --- a/public/fonts/DIN Pro/COPYRIGHT.txt +++ /dev/null @@ -1 +0,0 @@ -2005 Albert-Jan Pool published by FSI FontShop International GmbH \ No newline at end of file diff --git a/public/fonts/DIN Pro/dinpro.otf b/public/fonts/DIN Pro/dinpro.otf deleted file mode 100755 index e6e44b10..00000000 Binary files a/public/fonts/DIN Pro/dinpro.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_black.otf b/public/fonts/DIN Pro/dinpro_black.otf deleted file mode 100755 index 578641da..00000000 Binary files a/public/fonts/DIN Pro/dinpro_black.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_blackitalic.otf b/public/fonts/DIN Pro/dinpro_blackitalic.otf deleted file mode 100755 index 82b5f18d..00000000 Binary files a/public/fonts/DIN Pro/dinpro_blackitalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_bold.otf b/public/fonts/DIN Pro/dinpro_bold.otf deleted file mode 100755 index b1702237..00000000 Binary files a/public/fonts/DIN Pro/dinpro_bold.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_bolditalic.otf b/public/fonts/DIN Pro/dinpro_bolditalic.otf deleted file mode 100755 index 76c99de8..00000000 Binary files a/public/fonts/DIN Pro/dinpro_bolditalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedblack.otf b/public/fonts/DIN Pro/dinpro_condensedblack.otf deleted file mode 100755 index cbcc768f..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedblack.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedblackitalic.otf b/public/fonts/DIN Pro/dinpro_condensedblackitalic.otf deleted file mode 100755 index 9da8b6b3..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedblackitalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedbold.otf b/public/fonts/DIN Pro/dinpro_condensedbold.otf deleted file mode 100755 index 81501d57..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedbold.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedbolditalic.otf b/public/fonts/DIN Pro/dinpro_condensedbolditalic.otf deleted file mode 100755 index 38d7bad9..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedbolditalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condenseditalic.otf b/public/fonts/DIN Pro/dinpro_condenseditalic.otf deleted file mode 100755 index 1e39666d..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condenseditalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedlight.otf b/public/fonts/DIN Pro/dinpro_condensedlight.otf deleted file mode 100755 index 76666951..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedlight.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedlightitalic.otf b/public/fonts/DIN Pro/dinpro_condensedlightitalic.otf deleted file mode 100755 index be30b9ba..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedlightitalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedmedium.otf b/public/fonts/DIN Pro/dinpro_condensedmedium.otf deleted file mode 100755 index 00b38f6e..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedmedium.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedmediumitalic.otf b/public/fonts/DIN Pro/dinpro_condensedmediumitalic.otf deleted file mode 100755 index 3596e2c9..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedmediumitalic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_condensedregular.otf b/public/fonts/DIN Pro/dinpro_condensedregular.otf deleted file mode 100755 index cb581b3b..00000000 Binary files a/public/fonts/DIN Pro/dinpro_condensedregular.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_italic.otf b/public/fonts/DIN Pro/dinpro_italic.otf deleted file mode 100755 index fa12564d..00000000 Binary files a/public/fonts/DIN Pro/dinpro_italic.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_light.otf b/public/fonts/DIN Pro/dinpro_light.otf deleted file mode 100755 index 1b8cfbd9..00000000 Binary files a/public/fonts/DIN Pro/dinpro_light.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_lightitalic.ttf b/public/fonts/DIN Pro/dinpro_lightitalic.ttf deleted file mode 100755 index 6d5e0e04..00000000 Binary files a/public/fonts/DIN Pro/dinpro_lightitalic.ttf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_medium.otf b/public/fonts/DIN Pro/dinpro_medium.otf deleted file mode 100755 index 6f771ab6..00000000 Binary files a/public/fonts/DIN Pro/dinpro_medium.otf and /dev/null differ diff --git a/public/fonts/DIN Pro/dinpro_mediumitalic.otf b/public/fonts/DIN Pro/dinpro_mediumitalic.otf deleted file mode 100755 index 151db450..00000000 Binary files a/public/fonts/DIN Pro/dinpro_mediumitalic.otf and /dev/null differ diff --git a/public/fonts/DINPro-Bold-Italic.otf b/public/fonts/DINPro-Bold-Italic.otf deleted file mode 100644 index 76c99de8..00000000 Binary files a/public/fonts/DINPro-Bold-Italic.otf and /dev/null differ diff --git a/public/fonts/DINPro-CondBlack.otf b/public/fonts/DINPro-CondBlack.otf deleted file mode 100755 index cbcc768f..00000000 Binary files a/public/fonts/DINPro-CondBlack.otf and /dev/null differ diff --git a/public/fonts/DINPro-Condensed-Bold-Italic.otf b/public/fonts/DINPro-Condensed-Bold-Italic.otf deleted file mode 100644 index 81447cf0..00000000 Binary files a/public/fonts/DINPro-Condensed-Bold-Italic.otf and /dev/null differ diff --git a/public/fonts/DINPro-Condensed-Bold.otf b/public/fonts/DINPro-Condensed-Bold.otf deleted file mode 100644 index 81501d57..00000000 Binary files a/public/fonts/DINPro-Condensed-Bold.otf and /dev/null differ diff --git a/public/fonts/DINPro-Condensed-Medium-Italic.otf b/public/fonts/DINPro-Condensed-Medium-Italic.otf deleted file mode 100644 index 5d50d16c..00000000 Binary files a/public/fonts/DINPro-Condensed-Medium-Italic.otf and /dev/null differ diff --git a/public/fonts/DINPro-Medium.otf b/public/fonts/DINPro-Medium.otf deleted file mode 100644 index 6f771ab6..00000000 Binary files a/public/fonts/DINPro-Medium.otf and /dev/null differ diff --git a/public/fonts/DINPro.otf b/public/fonts/DINPro.otf deleted file mode 100644 index e6e44b10..00000000 Binary files a/public/fonts/DINPro.otf and /dev/null differ diff --git a/public/fonts/dinpro_condensedbold.otf b/public/fonts/dinpro_condensedbold.otf deleted file mode 100755 index 81501d57..00000000 Binary files a/public/fonts/dinpro_condensedbold.otf and /dev/null differ diff --git a/public/fonts/font_maps.ttf b/public/fonts/font_maps.ttf deleted file mode 100644 index 5c26ed5a..00000000 Binary files a/public/fonts/font_maps.ttf and /dev/null differ diff --git a/public/fonts/font_maps.woff b/public/fonts/font_maps.woff deleted file mode 100644 index a886dcf1..00000000 Binary files a/public/fonts/font_maps.woff and /dev/null differ diff --git a/public/fonts/gogocarto.woff b/public/fonts/gogocarto.woff deleted file mode 100644 index c31a3b6e..00000000 Binary files a/public/fonts/gogocarto.woff and /dev/null differ diff --git a/public/fonts/webfontkit-20250326-143519.zip b/public/fonts/webfontkit-20250326-143519.zip deleted file mode 100644 index fdfae33c..00000000 Binary files a/public/fonts/webfontkit-20250326-143519.zip and /dev/null differ diff --git a/public/fonts/webfontkit-20250326-143519/dinpro-condensed-bold-demo.html b/public/fonts/webfontkit-20250326-143519/dinpro-condensed-bold-demo.html deleted file mode 100644 index a837b645..00000000 --- a/public/fonts/webfontkit-20250326-143519/dinpro-condensed-bold-demo.html +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - - - - - - - - DIN Pro Cond Bold Condensed Bold Specimen - - - - - - -
- - - -
- - -
- -
-
-
AaBb
-
-
- -
-
A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
11abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
12abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
13abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
14abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
16abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
18abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
20abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
24abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
30abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
36abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
48abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
60abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
72abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
90abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
- -
- -
- - -
- - -
-
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body
-
body
-
body
-
body
-
-
- bodyDIN Pro Cond Bold Condensed Bold -
-
- bodyArial -
-
- bodyVerdana -
-
- bodyGeorgia -
- - -
- - -
- -
-

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
-
-
-

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
- -
- -
- -
-
-

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
-

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
- -
- -
- -
-
-

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
- -
- - -
-
-

10.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

11.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

12.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

13.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
- -
-
-

14.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

16.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
-

18.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

- -
-
- -
- -
-
-

20.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
-

24.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
- -
- -
- -
-
-

30.Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.

-
-
- -
- - -
- -
- -
- -
-

Lorem Ipsum Dolor

-

Etiam porta sem malesuada magna mollis euismod

- - -
-
-
-
-

Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

- - -

Pellentesque ornare sem

- -

Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.

- -

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- -

Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur.

- -

Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla.

- -

Cras mattis consectetur

- -

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum.

- -

Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.

-
- - -
- -
- - - - -
-
-
- -

Language Support

-

The subset of DIN Pro Cond Bold Condensed Bold in this kit supports the following languages:
- - This font does not fully support any language.

-

Glyph Chart

-

The subset of DIN Pro Cond Bold Condensed Bold in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.

-
- -
-
- - -
-
- - -
- -
- -
-
-
-

Installing Webfonts

- -

Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.

- -

1. Upload your webfonts

-

You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.

- -

2. Include the webfont stylesheet

-

A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the Fontspring blog post about it. The code for it is as follows:

- - - - @font-face{ - font-family: 'MyWebFont'; - src: url('WebFont.eot'); - src: url('WebFont.eot?#iefix') format('embedded-opentype'), - url('WebFont.woff') format('woff'), - url('WebFont.ttf') format('truetype'), - url('WebFont.svg#webfont') format('svg'); - } - - -

We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:

- <link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> - -

3. Modify your own stylesheet

-

To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:

- p { font-family: 'WebFont', Arial, sans-serif; } - -

4. Test

-

Getting webfonts to work cross-browser can be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.

-
- - -
- -
- -
- -
- - \ No newline at end of file diff --git a/public/fonts/webfontkit-20250326-143519/generator_config.txt b/public/fonts/webfontkit-20250326-143519/generator_config.txt deleted file mode 100644 index 81e64f6b..00000000 --- a/public/fonts/webfontkit-20250326-143519/generator_config.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Font Squirrel Font-face Generator Configuration File -# Upload this file to the generator to recreate the settings -# you used to create these fonts. - -{"mode":"optimal","formats":["woff","woff2"],"tt_instructor":"default","fix_gasp":"xy","fix_vertical_metrics":"Y","metrics_ascent":"","metrics_descent":"","metrics_linegap":"","add_spaces":"Y","add_hyphens":"Y","fallback":"none","fallback_custom":"100","options_subset":"basic","subset_custom":"","subset_custom_range":"","subset_ot_features_list":"","css_stylesheet":"stylesheet.css","filename_suffix":"-webfont","emsquare":"2048","spacing_adjustment":"0"} \ No newline at end of file diff --git a/public/fonts/webfontkit-20250326-143519/specimen_files/grid_12-825-55-15.css b/public/fonts/webfontkit-20250326-143519/specimen_files/grid_12-825-55-15.css deleted file mode 100644 index fb66068a..00000000 --- a/public/fonts/webfontkit-20250326-143519/specimen_files/grid_12-825-55-15.css +++ /dev/null @@ -1,370 +0,0 @@ -/*Notes about grid: -Columns: 12 -Grid Width: 825px -Column Width: 55px -Gutter Width: 15px --------------------------------*/ - - -.section { - margin-bottom: 18px; -} - -.section:after { - content: '.'; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -.section { - *zoom: 1; -} - -.section .firstcolumn, -.section .firstcol { - margin-left: 0; -} - - -/* Border on left hand side of a column. */ -.border { - padding-left: 7px; - margin-left: 7px; - border-left: 1px solid #eee; -} - -/* Border with more whitespace, spans one column. */ -.colborder { - padding-left: 42px; - margin-left: 42px; - border-left: 1px solid #eee; -} - - -/* The Grid Classes */ -.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12 { - margin-left: 15px; - float: left; - display: inline; - overflow: hidden; -} - - -.width1, .grid1, .span-1 { - width: 55px; -} - -.width1_2cols, .grid1_2cols { - width: 20px; -} - -.width1_3cols, .grid1_3cols { - width: 8px; -} - -.width1_4cols, .grid1_4cols { - width: 2px; -} - -.input_width1 { - width: 49px; -} - -.width2, .grid2, .span-2 { - width: 125px; -} - -.width2_3cols, .grid2_3cols { - width: 31px; -} - -.width2_4cols, .grid2_4cols { - width: 20px; -} - -.input_width2 { - width: 119px; -} - -.width3, .grid3, .span-3 { - width: 195px; -} - -.width3_2cols, .grid3_2cols { - width: 90px; -} - -.width3_4cols, .grid3_4cols { - width: 37px; -} - -.input_width3 { - width: 189px; -} - -.width4, .grid4, .span-4 { - width: 265px; -} - -.width4_3cols, .grid4_3cols { - width: 78px; -} - -.input_width4 { - width: 259px; -} - -.width5, .grid5, .span-5 { - width: 335px; -} - -.width5_2cols, .grid5_2cols { - width: 160px; -} - -.width5_3cols, .grid5_3cols { - width: 101px; -} - -.width5_4cols, .grid5_4cols { - width: 72px; -} - -.input_width5 { - width: 329px; -} - -.width6, .grid6, .span-6 { - width: 405px; -} - -.width6_4cols, .grid6_4cols { - width: 90px; -} - -.input_width6 { - width: 399px; -} - -.width7, .grid7, .span-7 { - width: 475px; -} - -.width7_2cols, .grid7_2cols { - width: 230px; -} - -.width7_3cols, .grid7_3cols { - width: 148px; -} - -.width7_4cols, .grid7_4cols { - width: 107px; -} - -.input_width7 { - width: 469px; -} - -.width8, .grid8, .span-8 { - width: 545px; -} - -.width8_3cols, .grid8_3cols { - width: 171px; -} - -.input_width8 { - width: 539px; -} - -.width9, .grid9, .span-9 { - width: 615px; -} - -.width9_2cols, .grid9_2cols { - width: 300px; -} - -.width9_4cols, .grid9_4cols { - width: 142px; -} - -.input_width9 { - width: 609px; -} - -.width10, .grid10, .span-10 { - width: 685px; -} - -.width10_3cols, .grid10_3cols { - width: 218px; -} - -.width10_4cols, .grid10_4cols { - width: 160px; -} - -.input_width10 { - width: 679px; -} - -.width11, .grid11, .span-11 { - width: 755px; -} - -.width11_2cols, .grid11_2cols { - width: 370px; -} - -.width11_3cols, .grid11_3cols { - width: 241px; -} - -.width11_4cols, .grid11_4cols { - width: 177px; -} - -.input_width11 { - width: 749px; -} - -.width12, .grid12, .span-12 { - width: 825px; -} - -.input_width12 { - width: 819px; -} - -/* Subdivided grid spaces */ -.emptycols_left1, .prepend-1 { - padding-left: 70px; -} - -.emptycols_right1, .append-1 { - padding-right: 70px; -} - -.emptycols_left2, .prepend-2 { - padding-left: 140px; -} - -.emptycols_right2, .append-2 { - padding-right: 140px; -} - -.emptycols_left3, .prepend-3 { - padding-left: 210px; -} - -.emptycols_right3, .append-3 { - padding-right: 210px; -} - -.emptycols_left4, .prepend-4 { - padding-left: 280px; -} - -.emptycols_right4, .append-4 { - padding-right: 280px; -} - -.emptycols_left5, .prepend-5 { - padding-left: 350px; -} - -.emptycols_right5, .append-5 { - padding-right: 350px; -} - -.emptycols_left6, .prepend-6 { - padding-left: 420px; -} - -.emptycols_right6, .append-6 { - padding-right: 420px; -} - -.emptycols_left7, .prepend-7 { - padding-left: 490px; -} - -.emptycols_right7, .append-7 { - padding-right: 490px; -} - -.emptycols_left8, .prepend-8 { - padding-left: 560px; -} - -.emptycols_right8, .append-8 { - padding-right: 560px; -} - -.emptycols_left9, .prepend-9 { - padding-left: 630px; -} - -.emptycols_right9, .append-9 { - padding-right: 630px; -} - -.emptycols_left10, .prepend-10 { - padding-left: 700px; -} - -.emptycols_right10, .append-10 { - padding-right: 700px; -} - -.emptycols_left11, .prepend-11 { - padding-left: 770px; -} - -.emptycols_right11, .append-11 { - padding-right: 770px; -} - -.pull-1 { - margin-left: -70px; -} - -.push-1 { - margin-right: -70px; - margin-left: 18px; - float: right; -} - -.pull-2 { - margin-left: -140px; -} - -.push-2 { - margin-right: -140px; - margin-left: 18px; - float: right; -} - -.pull-3 { - margin-left: -210px; -} - -.push-3 { - margin-right: -210px; - margin-left: 18px; - float: right; -} - -.pull-4 { - margin-left: -280px; -} - -.push-4 { - margin-right: -280px; - margin-left: 18px; - float: right; -} \ No newline at end of file diff --git a/public/fonts/webfontkit-20250326-143519/specimen_files/specimen_stylesheet.css b/public/fonts/webfontkit-20250326-143519/specimen_files/specimen_stylesheet.css deleted file mode 100644 index cd884622..00000000 --- a/public/fonts/webfontkit-20250326-143519/specimen_files/specimen_stylesheet.css +++ /dev/null @@ -1,502 +0,0 @@ -@import url('grid_12-825-55-15.css'); - -/* - CSS Reset by Eric Meyer - Released under Public Domain - http://meyerweb.com/eric/tools/css/reset/ -*/ -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, font, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, table, -caption, tbody, tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - border: 0; - outline: 0; - font-size: 100%; - vertical-align: baseline; - background: transparent; -} - -body { - line-height: 1; -} - -ol, ul { - list-style: none; -} - -blockquote, q { - quotes: none; -} - -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} - -:focus { - outline: 0; -} - -ins { - text-decoration: none; -} - -del { - text-decoration: line-through; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - - -body { - color: #000; - background-color: #dcdcdc; -} - -a { - text-decoration: none; - color: #1883ba; -} - -h1 { - font-size: 32px; - font-weight: normal; - font-style: normal; - margin-bottom: 18px; -} - -h2 { - font-size: 18px; -} - -#container { - width: 865px; - margin: 0px auto; -} - - -#header { - padding: 20px; - font-size: 36px; - background-color: #000; - color: #fff; -} - -#header span { - color: #666; -} - -#main_content { - background-color: #fff; - padding: 60px 20px 20px; -} - - -#footer p { - margin: 0; - padding-top: 10px; - padding-bottom: 50px; - color: #333; - font: 10px Arial, sans-serif; -} - -.tabs { - width: 100%; - height: 31px; - background-color: #444; -} - -.tabs li { - float: left; - margin: 0; - overflow: hidden; - background-color: #444; -} - -.tabs li a { - display: block; - color: #fff; - text-decoration: none; - font: bold 11px/11px 'Arial'; - text-transform: uppercase; - padding: 10px 15px; - border-right: 1px solid #fff; -} - -.tabs li a:hover { - background-color: #00b3ff; - -} - -.tabs li.active a { - color: #000; - background-color: #fff; -} - - -div.huge { - - font-size: 300px; - line-height: 1em; - padding: 0; - letter-spacing: -.02em; - overflow: hidden; -} - -div.glyph_range { - font-size: 72px; - line-height: 1.1em; -} - -.size10 { - font-size: 10px; -} - -.size11 { - font-size: 11px; -} - -.size12 { - font-size: 12px; -} - -.size13 { - font-size: 13px; -} - -.size14 { - font-size: 14px; -} - -.size16 { - font-size: 16px; -} - -.size18 { - font-size: 18px; -} - -.size20 { - font-size: 20px; -} - -.size24 { - font-size: 24px; -} - -.size30 { - font-size: 30px; -} - -.size36 { - font-size: 36px; -} - -.size48 { - font-size: 48px; -} - -.size60 { - font-size: 60px; -} - -.size72 { - font-size: 72px; -} - -.size90 { - font-size: 90px; -} - - -.psample_row1 { - height: 120px; -} - -.psample_row1 { - height: 120px; -} - -.psample_row2 { - height: 160px; -} - -.psample_row3 { - height: 160px; -} - -.psample_row4 { - height: 160px; -} - -.psample { - overflow: hidden; - position: relative; -} - -.psample p { - line-height: 1.3em; - display: block; - overflow: hidden; - margin: 0; -} - -.psample span { - margin-right: .5em; -} - -.white_blend { - width: 100%; - height: 61px; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==); - position: absolute; - bottom: 0; -} - -.black_blend { - width: 100%; - height: 61px; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC); - position: absolute; - bottom: 0; -} - -.fullreverse { - background: #000 !important; - color: #fff !important; - margin-left: -20px; - padding-left: 20px; - margin-right: -20px; - padding-right: 20px; - padding: 20px; - margin-bottom: 0; -} - - -.sample_table td { - padding-top: 3px; - padding-bottom: 5px; - padding-left: 5px; - vertical-align: middle; - line-height: 1.2em; -} - -.sample_table td:first-child { - background-color: #eee; - text-align: right; - padding-right: 5px; - padding-left: 0; - padding: 5px; - font: 11px/12px 'Courier New', Courier, mono; -} - -code { - white-space: pre; - background-color: #eee; - display: block; - padding: 10px; - margin-bottom: 18px; - overflow: auto; -} - - -.bottom, .last { - margin-bottom: 0 !important; - padding-bottom: 0 !important; -} - -.box { - padding: 18px; - margin-bottom: 18px; - background: #eee; -} - -.reverse, .reversed { - background: #000 !important; - color: #fff !important; - border: none !important; -} - -#bodycomparison { - position: relative; - overflow: hidden; - font-size: 72px; - height: 90px; - white-space: nowrap; -} - -#bodycomparison div { - font-size: 72px; - line-height: 90px; - display: inline; - margin: 0 15px 0 0; - padding: 0; -} - -#bodycomparison div span { - font: 10px Arial; - position: absolute; - left: 0; -} - -#xheight { - float: none; - position: absolute; - color: #d9f3ff; - font-size: 72px; - line-height: 90px; -} - -.fontbody { - position: relative; -} - -.arialbody { - font-family: Arial; - position: relative; -} - -.verdanabody { - font-family: Verdana; - position: relative; -} - -.georgiabody { - font-family: Georgia; - position: relative; -} - -/* @group Layout page - */ - -#layout h1 { - font-size: 36px; - line-height: 42px; - font-weight: normal; - font-style: normal; -} - -#layout h2 { - font-size: 24px; - line-height: 23px; - font-weight: normal; - font-style: normal; -} - -#layout h3 { - font-size: 22px; - line-height: 1.4em; - margin-top: 1em; - font-weight: normal; - font-style: normal; -} - - -#layout p.byline { - font-size: 12px; - margin-top: 18px; - line-height: 12px; - margin-bottom: 0; -} - -#layout p { - font-size: 14px; - line-height: 21px; - margin-bottom: .5em; -} - -#layout p.large { - font-size: 18px; - line-height: 26px; -} - -#layout .sidebar p { - font-size: 12px; - line-height: 1.4em; -} - -#layout p.caption { - font-size: 10px; - margin-top: -16px; - margin-bottom: 18px; -} - -/* @end */ - -/* @group Glyphs */ - -#glyph_chart div { - background-color: #d9f3ff; - color: black; - float: left; - font-size: 36px; - height: 1.2em; - line-height: 1.2em; - margin-bottom: 1px; - margin-right: 1px; - text-align: center; - width: 1.2em; - position: relative; - padding: .6em .2em .2em; -} - -#glyph_chart div p { - position: absolute; - left: 0; - top: 0; - display: block; - text-align: center; - font: bold 9px Arial, sans-serif; - background-color: #3a768f; - width: 100%; - color: #fff; - padding: 2px 0; -} - - -#glyphs h1 { - font-family: Arial, sans-serif; -} - -/* @end */ - -/* @group Installing */ - -#installing { - font: 13px Arial, sans-serif; -} - -#installing p, -#glyphs p { - line-height: 1.2em; - margin-bottom: 18px; - font: 13px Arial, sans-serif; -} - - -#installing h3 { - font-size: 15px; - margin-top: 18px; -} - -/* @end */ - -#rendering h1 { - font-family: Arial, sans-serif; -} - -.render_table td { - font: 11px 'Courier New', Courier, mono; - vertical-align: middle; -} - - diff --git a/public/fonts/webfontkit-20250326-143519/stylesheet.css b/public/fonts/webfontkit-20250326-143519/stylesheet.css deleted file mode 100644 index c1b68fd8..00000000 --- a/public/fonts/webfontkit-20250326-143519/stylesheet.css +++ /dev/null @@ -1 +0,0 @@ -/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on March 26, 2025 */ \ No newline at end of file diff --git a/src/components/CCatalogoCard/CCatalogoCard.vue b/src/components/CCatalogoCard/CCatalogoCard.vue index 55d7faa0..00817b97 100755 --- a/src/components/CCatalogoCard/CCatalogoCard.vue +++ b/src/components/CCatalogoCard/CCatalogoCard.vue @@ -103,7 +103,7 @@ @click="click_opendetail()" /> -
+
+ + - {{ tools.getValueByFunzOrVal(scope.opt, optlab) }} diff --git a/src/components/CMySlider/CMySlider.ts b/src/components/CMySlider/CMySlider.ts index 6e06d369..c5525497 100755 --- a/src/components/CMySlider/CMySlider.ts +++ b/src/components/CMySlider/CMySlider.ts @@ -13,6 +13,9 @@ export default defineComponent({ type: [String, Number], required: false, default: '0', + validator: (value) => { + return true; + }, }, label: { type: String, diff --git a/src/components/CMyText/CMyText.ts b/src/components/CMyText/CMyText.ts index 1fdec84e..13cf42b8 100755 --- a/src/components/CMyText/CMyText.ts +++ b/src/components/CMyText/CMyText.ts @@ -74,6 +74,15 @@ export default defineComponent({ }, { immediate: true }); function mounted() { + if (!internalModel.font) { + internalModel.font = { + line_height: 1, + posiz_text: 0, + perc_text: '', + name: '', + size: '14px', + } + } if (!internalModel.font?.perc_text) { internalModel.font!.perc_text = '' } diff --git a/src/components/CMyText/CMyText.vue b/src/components/CMyText/CMyText.vue index 4715c31e..02161ea9 100755 --- a/src/components/CMyText/CMyText.vue +++ b/src/components/CMyText/CMyText.vue @@ -12,77 +12,82 @@ @update_col="update_col" > - - - - - - +
+ + + + + + -
- Parole Chiave: {autore} {titolo} {descrizione} {date_pub} {ranking} - {sottotitolo} {prezzo} {prezzo_scontato} {descrizione_estesa} +
+ Parole Chiave: {autore} {titolo} {descrizione} {date_pub} {ranking} {sottotitolo} {prezzo} {prezzo_scontato} + {descrizione_estesa} +
+ + +
- - - - + diff --git a/src/components/CProductTable/index.ts b/src/components/CProductTable/index.ts new file mode 100755 index 00000000..f59d03aa --- /dev/null +++ b/src/components/CProductTable/index.ts @@ -0,0 +1 @@ +export { default as CProductTable } from './CProductTable.vue' diff --git a/src/components/CSearchProduct/CSearchProduct.ts b/src/components/CSearchProduct/CSearchProduct.ts index 1445adf7..c5ad9d1b 100755 --- a/src/components/CSearchProduct/CSearchProduct.ts +++ b/src/components/CSearchProduct/CSearchProduct.ts @@ -54,7 +54,7 @@ export default defineComponent({ const idPage = ref('') const selauthor = ref('') - const searchList = ref([]) + const searchList = ref([]) const optcatalogo = ref(null); @@ -99,6 +99,8 @@ export default defineComponent({ myproduct.value = null } + console.log('myproduct.value', myproduct.value) + if (myproduct.value) { tools.setCookie(tools.COOK_LAST_PROD_SEARCH, myproduct.value._id.toString()) } else { @@ -142,8 +144,8 @@ export default defineComponent({ table: 'products', key: 'titolo', type: costanti.FieldType.select_by_server, - value: myproduct.value?.productInfo?.name, - // addall: true, + value: myproduct.value, + collabel: collabel, arrvalue: [], useinput: true, filter: null, @@ -161,6 +163,16 @@ export default defineComponent({ router.push(path) } + function collabel (rec: any) { + console.log('Record:', rec) + let label = '' + if (rec && rec.productInfo) { + label = `${rec.productInfo.name} - ${rec.productInfo.authors.map((a: any) => a.name + ' ' + a.surname).join(', ')}` + console.log('Computed label:', label) + } + return label + } + onMounted(mounted) return { diff --git a/src/components/CSearchProduct/CSearchProduct.vue b/src/components/CSearchProduct/CSearchProduct.vue index 90ac73db..96c8d0e1 100755 --- a/src/components/CSearchProduct/CSearchProduct.vue +++ b/src/components/CSearchProduct/CSearchProduct.vue @@ -32,7 +32,7 @@ myclass="" :icon_alternative="item.icon" :optval="fieldsTable.getKeyByTable(item.table)" - :optlab="fieldsTable.getLabelByTable(item.table)" + :optlab="item.collabel" :options="valoriopt(item, false)" :filter="item.filter" :filter_extra="item.filter_extra" diff --git a/src/css/fonts/DINPro-Condensed Regular.otf b/src/css/fonts/DINPro-Condensed Regular.otf deleted file mode 100644 index 8bcf37af..00000000 Binary files a/src/css/fonts/DINPro-Condensed Regular.otf and /dev/null differ diff --git a/public/fonts/DINPro-Condensed Regular.otf b/src/css/fonts/DINPro-Condensed-Regular.otf similarity index 100% rename from public/fonts/DINPro-Condensed Regular.otf rename to src/css/fonts/DINPro-Condensed-Regular.otf diff --git a/src/model/CatalogStore.ts b/src/model/CatalogStore.ts index d1b91c19..57ae9888 100755 --- a/src/model/CatalogStore.ts +++ b/src/model/CatalogStore.ts @@ -1,5 +1,5 @@ import type { IImg } from "./GlobalStore" -import type { ICollana } from "./Products" +import type { ICollana, IProduct } from "./Products" export interface ICatalog { @@ -26,7 +26,7 @@ export interface ICatalog { data_generato?: Date pdf_online?: string data_online?: Date - + pdf_generato_stampa?: string data_generato_stampa?: Date pdf_online_stampa?: string @@ -34,8 +34,10 @@ export interface ICatalog { date_created?: Date, date_updated?: Date, + + lista_prodotti?: IProduct[] } export interface ICatalogState { catalogs?: ICatalog[] -} \ No newline at end of file +} diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 2dea3795..96e5097f 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -747,6 +747,7 @@ export interface IBarCode { export interface IPagina { dimensioni?: IDimensioni + testo_title?: IText testo_up?: IText testo_down?: IText } @@ -1034,6 +1035,7 @@ export interface ISearchList { keycookie?: string showcount?: boolean tablesel?: string + collabel?: string | object icon?: string filteradv?: boolean filter_extra?: object @@ -1098,6 +1100,7 @@ export interface IDataToSet { data?: any myfunc?: any inviaemail?: any + aggiornainmem?: boolean } export interface INewsState { diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index 530123b8..7edf81f8 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -4168,12 +4168,16 @@ export const fieldsTable = { if (myrec) return ((myrec.colkey) ? myrec.colkey : '_id') return '_id' }, - getLabelByTable(mytable: string): string { - const myrec = this.getrecTableList(mytable) - if (myrec) { // @ts-ignore - return ((myrec.collabel) ? myrec.collabel : 'label') + getLabelByTable(mytable: string, collabel?: any): string { + if (collabel) { + return collabel + } else { + const myrec = this.getrecTableList(mytable) + if (myrec) { // @ts-ignore + return ((myrec.collabel) ? myrec.collabel : 'label') + } + return 'label' } - return 'label' }, getValByTabAndId(table: string, field: string, idvalue: any) { const globalStore = useGlobalStore() diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 16651d6d..484e1b71 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -2835,13 +2835,14 @@ export const tools = { } }, - async saveFieldToServer(mythisq: any, table: string, id: any, mydata: any, notif = true) { + async saveFieldToServer(mythisq: any, table: string, id: any, mydata: any, notif = true, aggiornainmem = true) { const mydatatosave = { id, table, fieldsvalue: mydata, notifBot: null, + aggiornainmem, } const globalStore = useGlobalStore() @@ -9637,6 +9638,9 @@ export const tools = { if (!myrec.dimensioni) { myrec.dimensioni = this.resetRecIDimensioni(null) } + if (!myrec.testo_title) { + myrec.testo_title = this.resetIText(null) + } if (!myrec.testo_up) { myrec.testo_up = this.resetIText(null) } diff --git a/src/store/Products.ts b/src/store/Products.ts index 507d9272..8b1c7c97 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -1434,6 +1434,8 @@ export const useProducts = defineStore('Products', { const pagine = myproduct.arrvariazioni![0].pagine || '' const qta = myproduct.arrvariazioni![0].quantita || '' const isbn = myproduct.productInfo.code || '' + const image_link = myproduct.productInfo.image_link || '' + const imagefile = myproduct.productInfo.imagefile || '' const scale = optcatalogo.printable ? optcatalogo.areadistampa?.scale : 1 // Crea una mappa di sostituzioni @@ -1465,6 +1467,8 @@ export const useProducts = defineStore('Products', { '{descrizione_breve_macro}': descrizione_breve_macro || '', '{link_macro}': link_macro || '', '{qta}': qta || '', + '{image_link}': image_link || '', + '{imagefile}': imagefile || '', }; // Esegue le sostituzioni diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts index 584b6974..b71242d8 100644 --- a/src/store/globalStore.ts +++ b/src/store/globalStore.ts @@ -1419,7 +1419,8 @@ export const useGlobalStore = defineStore('GlobalStore', { return Api.SendReq('/chval', 'PATCH', { data: mydata }) .then((res) => { if (res) { - this.UpdateValuesInMemory(mydata) + if (mydata.aggiornainmem) + this.UpdateValuesInMemory(mydata) return (res.data.code === serv_constants.RIS_CODE_OK) } return false diff --git a/src/views/ecommerce/catalogo/catalogo.scss b/src/views/ecommerce/catalogo/catalogo.scss index 09f3a43b..bda5dc19 100755 --- a/src/views/ecommerce/catalogo/catalogo.scss +++ b/src/views/ecommerce/catalogo/catalogo.scss @@ -84,7 +84,6 @@ body { .book-author { font-family: 'DINPro-Condensed-Regular', sans-serif; font-size: calc(16 * var(--scalecatalog) * 1px); - font-style: italic; } .book-descr { @@ -95,7 +94,7 @@ body { .book-details { font-family: 'DINPro-Condensed-Regular', sans-serif; margin-bottom: calc(5 * var(--scalecatalog) * 1px); - font-size: calc(13 * var(--scalecatalog) * 1px); + font-size: calc(14 * var(--scalecatalog) * 1px); text-align: left !important; } @@ -121,8 +120,18 @@ body { font-family: 'DINPro', sans-serif; margin-bottom: calc(5 * var(--scalecatalog) * 1px); font-size: calc(20 * var(--scalecatalog) * 1px); + height: calc(380 * var(--scalecatalog) * 1px); } .book-text-down { font-family: 'DINPro', sans-serif; margin-bottom: calc(5 * var(--scalecatalog) * 1px); } + +.book-pagina-title { + font-family: 'DINPro', sans-serif; + color: white; + margin-top: calc(20 * var(--scalecatalog) * 1px); + margin-bottom: calc(5 * var(--scalecatalog) * 1px); + font-size: calc(35 * var(--scalecatalog) * 1px); + height: calc(100 * var(--scalecatalog) * 1px); +} \ No newline at end of file diff --git a/src/views/ecommerce/catalogo/catalogo.ts b/src/views/ecommerce/catalogo/catalogo.ts index a13f9958..6c84108f 100755 --- a/src/views/ecommerce/catalogo/catalogo.ts +++ b/src/views/ecommerce/catalogo/catalogo.ts @@ -14,11 +14,13 @@ import { shared_consts } from '@src/common/shared_vuejs' import { CProductCard } from '@src/components/CProductCard' import { CMySelect } from '@src/components/CMySelect' +import { CProductTable } from '@src/components/CProductTable' import { CContainerCatalogoCard } from '@src/components/CContainerCatalogoCard' import { CSelectUserActive } from '@src/components/CSelectUserActive' import type { IOptCatalogo, IDimensioni, IFilterCatalogo, - IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg + IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg, + IText } from 'model'; import { IMyPage, @@ -28,10 +30,11 @@ import { import { fieldsTable } from '@store/Modules/fieldsTable' import { useCatalogStore } from '@src/store/CatalogStore' +import { Catalogo } from '.'; export default defineComponent({ name: 'Catalogo', - components: { CContainerCatalogoCard, CProductCard, CSelectUserActive, CMySelect }, + components: { CContainerCatalogoCard, CProductCard, CSelectUserActive, CMySelect, CProductTable }, emits: ['update:modelValue', 'updateCatalogo'], props: { modelValue: { @@ -98,7 +101,7 @@ export default defineComponent({ const catalogStore = useCatalogStore() const tabvisu = ref('categorie') - const tabcatalogo = ref('visu') + const tabcatalogo = ref() const searchList = ref([] as ISearchList[]) @@ -112,6 +115,10 @@ export default defineComponent({ const isFixed = ref(false); + watch(() => tabcatalogo.value, () => { + tools.setCookie('TAB_CAT', tabcatalogo.value) + }) + const labelcombo = computed(() => (item: any) => { let lab = item.label if (item.showcount) @@ -150,10 +157,37 @@ export default defineComponent({ }) + function getTextSostituito(testo: IText) { + const replacements = { + '{titolo_catalogo}': getTitoloCatalogo() || '', + }; + + // Esegue le sostituzioni + let result = testo.contenuto; + for (const [key, value] of Object.entries(replacements)) { + result = result.replace(new RegExp(key, 'g'), value); + } + + return result + } + + const getTitoloPagina = computed(() => (product: IProduct, recscheda: ISchedaSingola) => { + + let testo = getTextSostituito(recscheda.scheda!.dimensioni.pagina?.testo_title) + + return testo + + }) + const getCatalogoByMyPage = computed(() => { return catalogStore.catalogs?.find((catalog: ICatalog) => catalog.idPageAssigned === props.idPage) }) + const lista_prodotti = computed(() => { + const arr = catalogStore.catalogs?.find((catalog: ICatalog) => catalog.idPageAssigned === props.idPage) + return arr?.lista_prodotti + }) + const ispageCatalogata = computed(() => { return !!getCatalogoByMyPage.value }) @@ -432,13 +466,13 @@ export default defineComponent({ filtroProductTypes: number[], filtroExcludeProductTypes: number[], editore: string[], - idCollane: string[], + idCollane: number[], arrargomstr: any[], catstr: string, gasselstr: string, cosaValue: any, sortField?: string, - sortDir?: string + sortDir?: number ): IProduct[] { const lowerSearchTexts = Array.isArray(searchtext) ? searchtext.map((text: string) => text.toLowerCase().trim().replace(/[-@:=]/g, '')) @@ -449,9 +483,9 @@ export default defineComponent({ const boolfiltroVuotoExcludeProductTypes = filtroExcludeProductTypes.length === 0; const boolfiltroVuotoEditore = editore.length === 0; const boolfiltroVuotoCollane = idCollane.length === 0; - const boolfiltroVuotoArgomenti = arrargomstr.length === 0; + // const boolfiltroVuotoArgomenti = arrargomstr.length === 0; - return products + const arrris = products .filter((product: IProduct) => { if (!product || !product.productInfo) { console.error('product or product.productInfo is null'); @@ -512,9 +546,9 @@ export default defineComponent({ productgassel && hasProductTypes && ( - hasPublished || - hasCollana || - hasCategoria || + hasPublished && + hasCollana && + hasCategoria && hasArgomentiCat ) && @@ -522,11 +556,19 @@ export default defineComponent({ ); }) .sort((a, b) => getProductsSorted([a, b], sortField, sortDir)[0] === a ? -1 : 1); + + console.log(' Filtro=' + arrargomstr) + console.log(' idCollane=' + idCollane) + console.log('PRODOTTI FILTRATI:', arrris.length) + + return arrris } - function calcArrProducts() { + function calcArrProducts(generalista?: boolean) { + console.log('calcArrProducts (generalista=' + generalista + ')') + const searchtext = getSearchText(); - let arrprod = productStore.getProducts(cosa.value) || []; + let arrprod = []; const filtroAuthor = filter.value.author || ''; const filtroProductTypes = optcatalogo.value.productTypes || [0]; const filtroExcludeProductTypes = optcatalogo.value.excludeproductTypes || [0]; @@ -540,29 +582,52 @@ export default defineComponent({ const catstr = cat.value || ''; const gasselstr = cosa.value === shared_consts.PROD.GAS ? idGasSel.value || '' : ''; - arrprod = filterProducts( - arrprod, - searchtext, - filtroAuthor, - filtroProductTypes, - filtroExcludeProductTypes, - filtroPublishers, - filtroCollane, - arrargomstr, - catstr, - gasselstr, - cosa.value, - filter.value.sort_field, - filter.value.sort_dir - ); + let salva = false + // Se nel catalogo è stato già generato, allora gli passo quello. + const trovatocatalogo = getCatalogoByMyPage.value + + if (trovatocatalogo.lista_prodotti.length === 0) { + generalista = true + } + + if (!generalista && (trovatocatalogo.lista_prodotti.length > 0)) { + arrprod = trovatocatalogo.lista_prodotti + } else { + arrprod = productStore.getProducts(cosa.value) + arrprod = filterProducts( + arrprod, + searchtext, + filtroAuthor, + filtroProductTypes, + filtroExcludeProductTypes, + filtroPublishers, + filtroCollane, + arrargomstr, + catstr, + gasselstr, + cosa.value, + filter.value.sort_field, + filter.value.sort_dir + ); + + salva = true + } arrProducts.value = arrprod; + + console.log('arrprod', arrprod) + populateDataWithlinkIdTemplate(); - generatearrProdToViewSorted(); + generatearrProdToViewSorted(!generalista, salva); loaddata(); + refreshpage.value = false; } + function generaListaLibri() { + calcArrProducts(true) + } + function getProductsFilteredByScheda(scheda: IMyScheda): IProduct[] { let arrprod = productStore.getProducts(cosa.value) || []; const filtroAuthor = filter.value.author || ''; @@ -578,21 +643,27 @@ export default defineComponent({ const catstr = cat.value || ''; const gasselstr = cosa.value === shared_consts.PROD.GAS ? idGasSel.value || '' : ''; - arrprod = filterProducts( - arrprod, - scheda.arrProdottiSpeciali || [], - filtroAuthor, - filtroProductTypes, - filtroExcludeProductTypes, - filtroPublishers, - filtroCollane, - arrargomstr, - catstr, - gasselstr, - cosa.value, - scheda?.sort_field, - scheda?.sort_dir - ); + const trovatocatalogo = getCatalogoByMyPage.value + if (trovatocatalogo.lista_prodotti.length > 0) { + arrprod = trovatocatalogo.lista_prodotti + } else { + + arrprod = filterProducts( + arrprod, + scheda.arrProdottiSpeciali || [], + filtroAuthor, + filtroProductTypes, + filtroExcludeProductTypes, + filtroPublishers, + filtroCollane, + arrargomstr, + catstr, + gasselstr, + cosa.value, + scheda?.sort_field, + scheda?.sort_dir + ); + } return arrprod; } @@ -671,22 +742,31 @@ export default defineComponent({ } } - function generatearrProdToViewSorted() { - // console.log('generatearrProdToViewSorted...') + function generatearrProdToViewSorted(usaprodottiSalvati?: boolean, salva?: boolean) { + console.log('generatearrProdToViewSorted... usaprodottiSalvati=', usaprodottiSalvati, ' salva=', salva) try { // Svuota arrProdToView.value = [] - // gia filtrati - const arrGeneraleProdotti = arrProducts.value; + const trovatocatalogo = getCatalogoByMyPage.value + + let arrGeneraleProdotti = [] + + if (usaprodottiSalvati) { + + } else { + arrGeneraleProdotti = arrProducts.value; + } let indprod = 0 const indprodGenerale = 0 let indtotale = 0 + let arrprod = [] + for (const recscheda of optcatalogo.value.arrSchede!) { if (recscheda && recscheda.scheda) { const schedePerRiga = recscheda.scheda.numschede_perRiga || 1 @@ -695,17 +775,21 @@ export default defineComponent({ let arrProdFiltrati: IProduct[] = [] - if (recscheda.scheda.productTypes!.length > 0) { - // Filtra i prodotti in base ai filtri impostati ! - arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda) - indprod = 0 + if (usaprodottiSalvati && trovatocatalogo.lista_prodotti.length > 0) { + arrProdFiltrati = trovatocatalogo.lista_prodotti } else { - if (recscheda.scheda.sort_field!) { - arrProdFiltrati = getProductsSorted(arrGeneraleProdotti, recscheda.scheda.sort_field, recscheda.scheda.sort_dir); + if (recscheda.scheda.productTypes!.length > 0) { + // Filtra i prodotti in base ai filtri impostati ! + arrProdFiltrati = getProductsFilteredByScheda(recscheda.scheda) indprod = 0 } else { - indprod = indprodGenerale - arrProdFiltrati = arrGeneraleProdotti + if (recscheda.scheda.sort_field!) { + arrProdFiltrati = getProductsSorted(arrGeneraleProdotti, recscheda.scheda.sort_field, recscheda.scheda.sort_dir); + indprod = 0 + } else { + indprod = indprodGenerale + arrProdFiltrati = arrGeneraleProdotti + } } } @@ -737,6 +821,8 @@ export default defineComponent({ // console.log('RANKING: ', result.myrec.indiceRanking!) + arrprod.push(result.myrec) + recscheda.arrProdToShow[pagina][riga][col] = result.myrec indadded++ @@ -772,6 +858,13 @@ export default defineComponent({ // console.log(' FINE - generatearrProdToViewSorted !') + + if (!usaprodottiSalvati && salva) { + trovatocatalogo.lista_prodotti = arrprod + + salvaListaProdotti(false) + } + } catch (e) { console.error('Err', e) } @@ -779,6 +872,24 @@ export default defineComponent({ // console.log('Fine...') } + function salvaListaProdotti(ricarica: boolean) { + // Estrai solo gli ID dei prodotti filtrati + const myarr = [...getCatalogoByMyPage.value.lista_prodotti] + const productIds = myarr.map(product => product._id); + + let mydata = { + lista_prodotti: productIds + } + + // Salva gli ID dei prodotti nel catalogo + tools.saveFieldToServer($q, 'catalogs', getCatalogoByMyPage.value._id, mydata, true, false) + + + if (ricarica) { + generatearrProdToViewSorted(true, false); + } + } + function getNextProd() { const nextRecord = arrProdToView.value.find((rec: any) => !rec.showed) @@ -810,6 +921,9 @@ export default defineComponent({ async function mounted() { // console.log('mounted Catalogo') + + tabcatalogo.value = tools.getCookie('TAB_CAT', 'visu') + loadpage.value = false await productStore.loadProducts() @@ -1119,6 +1233,12 @@ export default defineComponent({ router.push(path) } + function updateProducts(arr: any) { + getCatalogoByMyPage.value.lista_prodotti = [...arr] + + salvaListaProdotti(true) + } + onMounted(mounted) return { @@ -1174,6 +1294,10 @@ export default defineComponent({ ispageCatalogata, naviga, getTitoloCatalogo, + getTitoloPagina, + generaListaLibri, + lista_prodotti, + updateProducts, } } }) diff --git a/src/views/ecommerce/catalogo/catalogo.vue b/src/views/ecommerce/catalogo/catalogo.vue index ad4b14d7..9ca90877 100755 --- a/src/views/ecommerce/catalogo/catalogo.vue +++ b/src/views/ecommerce/catalogo/catalogo.vue @@ -12,7 +12,18 @@ dense class="bg-green text-white" > - + + + + - - + + + + - - + + + + + +
-
+
- 1 + 1 - 1 + 1 - 1 - - + +
-
+
@@ -220,17 +272,17 @@
- {{ - t("ecomm.prodotti_trovati", { - qta: arrProducts.length, - qtatot: productStore.getNumProdTot(), - }) - }} + {{ + t('ecomm.prodotti_trovati', { + qta: arrProducts.length, + qtatot: productStore.getNumProdTot(), + }) + }}
-
+
-
+
-
+
-
+
@@ -335,23 +385,34 @@ 'fixed-height': true, 'card-page': false, }" - :style=" - generateStylePageScheda( - optcatalogo, - recscheda.scheda - ) - " + :style="generateStylePageScheda(optcatalogo, recscheda.scheda)" >
+
+
+
@@ -446,9 +500,7 @@ optcatalogo.last_page.text_html && optcatalogo.last_page.text_html.contenuto " - :style=" - generateStyleByPageDim(optcatalogo, optcatalogo.last_page) - " + :style="generateStyleByPageDim(optcatalogo, optcatalogo.last_page)" >
@@ -461,19 +513,13 @@
Sfondo: - {{ - tools.getDirUpload() + - costanti.DIR_CATALOGO + - optcatalogo.dimensioni_def?.pagina.imgsfondo?.imagefile - }} + {{ tools.getDirUpload() + costanti.DIR_CATALOGO + optcatalogo.dimensioni_def?.pagina.imgsfondo?.imagefile }}
@@ -483,37 +529,17 @@
Prima Pagina: - {{ - tools.getDirUpload() + - costanti.DIR_CATALOGO + - optcatalogo.first_page.imgsfondo.imagefile - }} + {{ tools.getDirUpload() + costanti.DIR_CATALOGO + optcatalogo.first_page.imgsfondo.imagefile }}
- +
Ultima Pagina: - {{ - tools.getDirUpload() + - costanti.DIR_CATALOGO + - optcatalogo.last_page.imgsfondo.imagefile - }} + {{ tools.getDirUpload() + costanti.DIR_CATALOGO + optcatalogo.last_page.imgsfondo.imagefile }}
- +
@@ -528,6 +554,12 @@
+
           PASSI DA COMPIERE PER FARE AGGIORNAMENTI :
 
@@ -606,9 +638,8 @@
   
 
 
-
+
 
 
diff --git a/yarn.lock b/yarn.lock
index a8ce729b..9f60defc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10143,6 +10143,11 @@ sort-keys@^1.0.0:
   dependencies:
     is-plain-obj "^1.0.0"
 
+sortablejs@1.14.0:
+  version "1.14.0"
+  resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8"
+  integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==
+
 source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0, source-map-js@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
@@ -11218,6 +11223,13 @@ vue@^3.2.25, vue@^3.4, vue@^3.5.13:
     "@vue/server-renderer" "3.5.13"
     "@vue/shared" "3.5.13"
 
+vuedraggable@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-4.1.0.tgz#edece68adb8a4d9e06accff9dfc9040e66852270"
+  integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==
+  dependencies:
+    sortablejs "1.14.0"
+
 vueify@^9.4.1:
   version "9.4.1"
   resolved "https://registry.yarnpkg.com/vueify/-/vueify-9.4.1.tgz#d29a9775a33c4b8a8601e186a85da2ab800ca0d6"