From 7ae68f079ddfb74c9a1b17c4f30dfe4c258d4a9f Mon Sep 17 00:00:00 2001
From: Zero~Informatique
Date: Fri, 20 Dec 2019 17:47:04 +0100
Subject: Viewer project foundations
---
viewer/src/assets/scss/_buefy_variables.scss | 152 +++++++++++++++++++++++++++
viewer/src/assets/scss/buefy.scss | 37 +++++++
viewer/src/assets/scss/global.scss | 14 +++
viewer/src/locales/en.json | 3 +
viewer/src/main.ts | 15 +++
viewer/src/plugins/buefy.ts | 9 ++
viewer/src/plugins/fontawesome.js | 9 ++
viewer/src/plugins/i18n.ts | 23 ++++
viewer/src/router/index.ts | 18 ++++
viewer/src/shims-tsx.d.ts | 13 +++
viewer/src/shims-vue.d.ts | 4 +
viewer/src/views/LdGallery.vue | 82 +++++++++++++++
viewer/src/views/Root.vue | 18 ++++
13 files changed, 397 insertions(+)
create mode 100644 viewer/src/assets/scss/_buefy_variables.scss
create mode 100644 viewer/src/assets/scss/buefy.scss
create mode 100644 viewer/src/assets/scss/global.scss
create mode 100644 viewer/src/locales/en.json
create mode 100644 viewer/src/main.ts
create mode 100644 viewer/src/plugins/buefy.ts
create mode 100644 viewer/src/plugins/fontawesome.js
create mode 100644 viewer/src/plugins/i18n.ts
create mode 100644 viewer/src/router/index.ts
create mode 100644 viewer/src/shims-tsx.d.ts
create mode 100644 viewer/src/shims-vue.d.ts
create mode 100644 viewer/src/views/LdGallery.vue
create mode 100644 viewer/src/views/Root.vue
(limited to 'viewer/src')
diff --git a/viewer/src/assets/scss/_buefy_variables.scss b/viewer/src/assets/scss/_buefy_variables.scss
new file mode 100644
index 0000000..716a1ec
--- /dev/null
+++ b/viewer/src/assets/scss/_buefy_variables.scss
@@ -0,0 +1,152 @@
+// Included below are all the defined variables from Bulma
+// Modify as needed, removing the !default attribute.
+
+// Colors
+
+$black: hsl(0, 0%, 4%) !default;
+$black-bis: hsl(0, 0%, 7%) !default;
+$black-ter: hsl(0, 0%, 14%) !default;
+
+$grey-darker: hsl(0, 0%, 21%) !default;
+$grey-dark: hsl(0, 0%, 29%) !default;
+$grey: hsl(0, 0%, 48%) !default;
+$grey-light: hsl(0, 0%, 71%) !default;
+$grey-lighter: hsl(0, 0%, 86%) !default;
+
+$white-ter: hsl(0, 0%, 96%) !default;
+$white-bis: hsl(0, 0%, 98%) !default;
+$white: hsl(0, 0%, 100%) !default;
+
+$orange: hsl(14, 100%, 53%) !default;
+$yellow: hsl(48, 100%, 67%) !default;
+$green: hsl(141, 71%, 48%) !default;
+$turquoise: hsl(171, 100%, 41%) !default;
+$cyan: hsl(204, 86%, 53%) !default;
+$blue: hsl(217, 71%, 53%) !default;
+$purple: hsl(271, 100%, 71%) !default;
+$red: hsl(348, 100%, 61%) !default;
+
+// Typography
+
+$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default;
+$family-monospace: monospace !default;
+$render-mode: optimizeLegibility !default;
+
+$size-1: 3rem !default;
+$size-2: 2.5rem !default;
+$size-3: 2rem !default;
+$size-4: 1.5rem !default;
+$size-5: 1.25rem !default;
+$size-6: 1rem !default;
+$size-7: 0.75rem !default;
+
+$weight-light: 300 !default;
+$weight-normal: 400 !default;
+$weight-medium: 500 !default;
+$weight-semibold: 600 !default;
+$weight-bold: 700 !default;
+
+// Responsiveness
+
+// The container horizontal gap, which acts as the offset for breakpoints
+$gap: 32px !default;
+// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16
+$tablet: 769px !default;
+// 960px container + 4rem
+$desktop: 960px + (2 * $gap) !default;
+// 1152px container + 4rem
+$widescreen: 1152px + (2 * $gap) !default;
+// 1344px container + 4rem;
+$fullhd: 1344px + (2 * $gap) !default;
+
+// Miscellaneous
+
+$easing: ease-out !default;
+$radius-small: 2px !default;
+$radius: 3px !default;
+$radius-large: 5px !default;
+$radius-rounded: 290486px !default;
+$speed: 86ms !default;
+
+// Flags
+
+$variable-columns: true !default;
+
+
+// The default Bulma derived variables are declared below
+
+$primary: $turquoise !default;
+
+$info: $cyan !default;
+$success: $green !default;
+$warning: $yellow !default;
+$danger: $red !default;
+
+$light: $white-ter !default;
+$dark: $grey-darker !default;
+
+// Invert colors
+
+$orange-invert: findColorInvert($orange) !default;
+$yellow-invert: findColorInvert($yellow) !default;
+$green-invert: findColorInvert($green) !default;
+$turquoise-invert: findColorInvert($turquoise) !default;
+$cyan-invert: findColorInvert($cyan) !default;
+$blue-invert: findColorInvert($blue) !default;
+$purple-invert: findColorInvert($purple) !default;
+$red-invert: findColorInvert($red) !default;
+
+$primary-invert: $turquoise-invert !default;
+$info-invert: $cyan-invert !default;
+$success-invert: $green-invert !default;
+$warning-invert: $yellow-invert !default;
+$danger-invert: $red-invert !default;
+$light-invert: $dark !default;
+$dark-invert: $light !default;
+
+// General colors
+
+$background: $white-ter !default;
+
+$border: $grey-lighter !default;
+$border-hover: $grey-light !default;
+
+// Text colors
+
+$text: $grey-dark !default;
+$text-invert: findColorInvert($text) !default;
+$text-light: $grey !default;
+$text-strong: $grey-darker !default;
+
+// Code colors
+
+$code: $red !default;
+$code-background: $background !default;
+
+$pre: $text !default;
+$pre-background: $background !default;
+
+// Link colors
+
+$link: $blue !default;
+$link-invert: $blue-invert !default;
+$link-visited: $purple !default;
+
+$link-hover: $grey-darker !default;
+$link-hover-border: $grey-light !default;
+
+$link-focus: $grey-darker !default;
+$link-focus-border: $blue !default;
+
+$link-active: $grey-darker !default;
+$link-active-border: $grey-dark !default;
+
+// Typography
+
+$family-primary: $family-sans-serif !default;
+$family-code: $family-monospace !default;
+
+$size-small: $size-7 !default;
+$size-normal: $size-6 !default;
+$size-medium: $size-5 !default;
+$size-large: $size-4 !default;
diff --git a/viewer/src/assets/scss/buefy.scss b/viewer/src/assets/scss/buefy.scss
new file mode 100644
index 0000000..5249899
--- /dev/null
+++ b/viewer/src/assets/scss/buefy.scss
@@ -0,0 +1,37 @@
+@import "~bulma/sass/utilities/initial-variables";
+@import "~bulma/sass/utilities/functions";
+// 1. Set your own initial variables and derived
+// variables in _variables.scss
+@import "buefy_variables";
+
+// 2. Setup your Custom Colors
+$linkedin: #0077b5;
+$linkedin-invert: findColorInvert($linkedin);
+$twitter: #55acee;
+$twitter-invert: findColorInvert($twitter);
+$github: #333;
+$github-invert: findColorInvert($github);
+
+@import "~bulma/sass/utilities/derived-variables";
+
+// 3. Add new color variables to the color map.
+$addColors: (
+ "twitter": (
+ $twitter,
+ $twitter-invert
+ ),
+ "linkedin": (
+ $linkedin,
+ $linkedin-invert
+ ),
+ "github": (
+ $github,
+ $github-invert
+ )
+);
+$colors: map-merge($colors, $addColors);
+
+@import "~bulma";
+@import "~buefy/src/scss/buefy";
+
+// 4. Provide custom buefy overrides and site styles here
diff --git a/viewer/src/assets/scss/global.scss b/viewer/src/assets/scss/global.scss
new file mode 100644
index 0000000..0bfeab9
--- /dev/null
+++ b/viewer/src/assets/scss/global.scss
@@ -0,0 +1,14 @@
+// Global CSS
+
+// === Forms
+
+.required label::after {
+ content: "*";
+ color: red;
+}
+
+// === Tools
+
+.nowrap {
+ white-space: nowrap;
+}
diff --git a/viewer/src/locales/en.json b/viewer/src/locales/en.json
new file mode 100644
index 0000000..d966983
--- /dev/null
+++ b/viewer/src/locales/en.json
@@ -0,0 +1,3 @@
+{
+ "message": "hello i18n !!"
+}
\ No newline at end of file
diff --git a/viewer/src/main.ts b/viewer/src/main.ts
new file mode 100644
index 0000000..352b565
--- /dev/null
+++ b/viewer/src/main.ts
@@ -0,0 +1,15 @@
+import Vue from "vue";
+import "@/assets/scss/global.scss";
+import "@/plugins/fontawesome";
+import "@/plugins/buefy";
+import i18n from "@/plugins/i18n";
+import router from "@/router";
+import LdGallery from "@/views/LdGallery.vue";
+
+Vue.config.productionTip = false;
+
+new Vue({
+ router,
+ i18n,
+ render: h => h(LdGallery),
+}).$mount("#ldgallery");
diff --git a/viewer/src/plugins/buefy.ts b/viewer/src/plugins/buefy.ts
new file mode 100644
index 0000000..a880cee
--- /dev/null
+++ b/viewer/src/plugins/buefy.ts
@@ -0,0 +1,9 @@
+import Vue from "vue";
+
+import Buefy from "buefy";
+import "@/assets/scss/buefy.scss";
+
+Vue.use(Buefy, {
+ defaultIconComponent: 'fa-icon',
+ defaultIconPack: 'fas',
+});
diff --git a/viewer/src/plugins/fontawesome.js b/viewer/src/plugins/fontawesome.js
new file mode 100644
index 0000000..9bf4dba
--- /dev/null
+++ b/viewer/src/plugins/fontawesome.js
@@ -0,0 +1,9 @@
+import Vue from "vue";
+
+import { library } from "@fortawesome/fontawesome-svg-core";
+import { faExpandArrowsAlt } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
+
+library.add(faExpandArrowsAlt);
+
+Vue.component("fa-icon", FontAwesomeIcon);
diff --git a/viewer/src/plugins/i18n.ts b/viewer/src/plugins/i18n.ts
new file mode 100644
index 0000000..da2cd87
--- /dev/null
+++ b/viewer/src/plugins/i18n.ts
@@ -0,0 +1,23 @@
+import Vue from "vue";
+import VueI18n, { LocaleMessages } from "vue-i18n";
+
+Vue.use(VueI18n);
+
+function loadLocaleMessages(): LocaleMessages {
+ const locales = require.context("@/locales", true, /[A-Za-z0-9-_,\s]+\.json$/i);
+ const messages: LocaleMessages = {};
+ locales.keys().forEach(key => {
+ const matched = key.match(/([A-Za-z0-9-_]+)\./i);
+ if (matched && matched.length > 1) {
+ const locale = matched[1];
+ messages[locale] = locales(key);
+ }
+ });
+ return messages;
+}
+
+export default new VueI18n({
+ locale: process.env.VUE_APP_I18N_LOCALE || "en",
+ fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || "en",
+ messages: loadLocaleMessages(),
+});
diff --git a/viewer/src/router/index.ts b/viewer/src/router/index.ts
new file mode 100644
index 0000000..03ae1cd
--- /dev/null
+++ b/viewer/src/router/index.ts
@@ -0,0 +1,18 @@
+import Vue from "vue";
+import VueRouter from "vue-router";
+
+Vue.use(VueRouter);
+
+const routes = [
+ {
+ path: "/",
+ name: "root",
+ component: () => import(/* webpackChunkName: "root" */ "@/views/Root.vue"),
+ },
+];
+
+const router = new VueRouter({
+ routes,
+});
+
+export default router;
diff --git a/viewer/src/shims-tsx.d.ts b/viewer/src/shims-tsx.d.ts
new file mode 100644
index 0000000..2bcdf9f
--- /dev/null
+++ b/viewer/src/shims-tsx.d.ts
@@ -0,0 +1,13 @@
+import Vue, { VNode } from "vue";
+
+declare global {
+ namespace JSX {
+ // tslint:disable no-empty-interface
+ interface Element extends VNode {}
+ // tslint:disable no-empty-interface
+ interface ElementClass extends Vue {}
+ interface IntrinsicElements {
+ [elem: string]: any;
+ }
+ }
+}
diff --git a/viewer/src/shims-vue.d.ts b/viewer/src/shims-vue.d.ts
new file mode 100644
index 0000000..0660bd6
--- /dev/null
+++ b/viewer/src/shims-vue.d.ts
@@ -0,0 +1,4 @@
+declare module "*.vue" {
+ import Vue from "vue";
+ export default Vue;
+}
diff --git a/viewer/src/views/LdGallery.vue b/viewer/src/views/LdGallery.vue
new file mode 100644
index 0000000..a77dc24
--- /dev/null
+++ b/viewer/src/views/LdGallery.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/viewer/src/views/Root.vue b/viewer/src/views/Root.vue
new file mode 100644
index 0000000..384dcbe
--- /dev/null
+++ b/viewer/src/views/Root.vue
@@ -0,0 +1,18 @@
+
+ Hello World!
+
+
+
+
+
--
cgit v1.2.3