@@ -471,8 +412,6 @@ const getClass = (val: boolean) => {
height: 350px; /* Adjust as needed */
background: #f6f5f5;
}
-
-.video-container,
.image-container {
position: absolute;
top: 0;
@@ -481,7 +420,6 @@ const getClass = (val: boolean) => {
height: 100%;
}
-.video-element,
.image-element {
width: 100%;
height: 100%;
@@ -489,7 +427,8 @@ const getClass = (val: boolean) => {
border-radius: 5px; /* Adjust as needed */
}
-.canvas-element {
- display: none; /* Adjust as needed */
+.preview-placeholder {
+ width: 100%;
+ height: 100%;
}
diff --git a/src/views/SampleCamera.vue b/src/views/SampleCamera.vue
new file mode 100644
index 0000000..22af5fe
--- /dev/null
+++ b/src/views/SampleCamera.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ I'm on top of the video
+ Take Picture
+
+
+
+
diff --git a/tsconfig.app.json b/tsconfig.app.json
new file mode 100644
index 0000000..bde017e
--- /dev/null
+++ b/tsconfig.app.json
@@ -0,0 +1,16 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.web.json",
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
+ "exclude": ["src/**/__tests__/*"],
+ "compilerOptions": {
+ "composite": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ },
+ "esModuleInterop": true,
+ "ignoreDeprecations": "5.0",
+ "allowSyntheticDefaultImports": true,
+ "lib": ["dom", "es2015", "es2018", "es2018.promise"]
+ }
+}
diff --git a/tsconfig.config.json b/tsconfig.config.json
new file mode 100644
index 0000000..6b5a208
--- /dev/null
+++ b/tsconfig.config.json
@@ -0,0 +1,14 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.node.json",
+ "include": [
+ "vite.config.*",
+ "vitest.config.*",
+ "cypress.config.*",
+ "playwright.config.*"
+ ],
+ "compilerOptions": {
+ "composite": true,
+ "ignoreDeprecations": "5.0",
+ "types": ["node"]
+ }
+}
diff --git a/tsconfig.json b/tsconfig.json
index afaf18a..31f9003 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,29 +1,14 @@
{
- "compilerOptions": {
- "target": "es5",
- "module": "esnext",
- "strict": true,
- "jsx": "preserve",
- "moduleResolution": "node",
- "skipLibCheck": true,
- "esModuleInterop": true,
- "allowSyntheticDefaultImports": true,
- "forceConsistentCasingInFileNames": true,
- "useDefineForClassFields": true,
- "sourceMap": true,
- "baseUrl": ".",
- "types": ["webpack-env"],
- "paths": {
- "@/*": ["src/*"]
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.config.json"
},
- "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
- },
- "include": [
- "src/**/*.ts",
- "src/**/*.tsx",
- "src/**/*.vue",
- "tests/**/*.ts",
- "tests/**/*.tsx"
- ],
- "exclude": ["node_modules"]
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.vitest.json"
+ }
+ ]
}
diff --git a/tsconfig.vitest.json b/tsconfig.vitest.json
new file mode 100644
index 0000000..d080d61
--- /dev/null
+++ b/tsconfig.vitest.json
@@ -0,0 +1,9 @@
+{
+ "extends": "./tsconfig.app.json",
+ "exclude": [],
+ "compilerOptions": {
+ "composite": true,
+ "lib": [],
+ "types": ["node", "jsdom"]
+ }
+}
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..abb88b5
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,60 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import vueJsx from '@vitejs/plugin-vue-jsx'
+import { quasar, transformAssetUrls } from '@quasar/vite-plugin'
+import { VitePWA } from 'vite-plugin-pwa'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [
+ vue({
+ template: { transformAssetUrls },
+ }),
+ quasar({
+ sassVariables: 'src/style/quasar-variables.sass',
+ }),
+ vueJsx(),
+ VitePWA({
+ registerType: 'autoUpdate',
+ injectRegister: 'auto',
+ workbox: {
+ cleanupOutdatedCaches: true,
+ globPatterns: ['**/*.*'],
+ },
+ includeAssets: ['icons/safari-pinned-tab.svg'],
+ manifest: {
+ name: 'BMA-Checkin',
+ short_name: 'EHR Checkin',
+ theme_color: '#ffffff',
+ icons: [
+ {
+ src: 'icons/android-chrome-192x192.png',
+ sizes: '192x192',
+ type: 'image/png',
+ },
+ {
+ src: 'icons/android-chrome-512x512.png',
+ sizes: '512x512',
+ type: 'image/png',
+ },
+ {
+ src: 'icons/android-chrome-512x512.png',
+ sizes: '512x512',
+ type: 'image/png',
+ purpose: ['any', 'maskable'],
+ },
+ ],
+ },
+ }),
+ ],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
+ },
+ },
+ server: {
+ port: 3008,
+ },
+})
diff --git a/vue.config.js b/vue.config.js
deleted file mode 100644
index 679b4b9..0000000
--- a/vue.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const { defineConfig } = require('@vue/cli-service')
-module.exports = defineConfig({
- transpileDependencies: [
- 'quasar'
- ],
-
- pluginOptions: {
- quasar: {
- importStrategy: 'kebab',
- rtlSupport: false
- }
- }
-})