diff --git a/bidv.html b/bidv.html
deleted file mode 100644
index 134926c..0000000
--- a/bidv.html
+++ /dev/null
@@ -1,266 +0,0 @@
-
-
-
-
-
- Exchange Rate Export
-
-
-
-
-
Exchange Rate Export (USD)
-
-
-
-
-
-
-
-
-
-
-
-
- | Date |
- nameVI |
- muaTm |
- muaCk |
- currency |
- nameEN |
- ban |
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/index.html b/index.html
deleted file mode 100644
index bc6502b..0000000
--- a/index.html
+++ /dev/null
@@ -1,279 +0,0 @@
-
-
-
-
-
- Exchange Rate Export
-
-
-
-
-
Exchange Rate Export (USD)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- | Date |
- nameVI |
- muaTm |
- muaCk |
- currency |
- nameEN |
- ban |
-
-
-
-
-
-
-
-
diff --git a/package-lock.json b/package-lock.json
index f637c41..c06bf01 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,9 @@
"": {
"name": "exchange-rate-export",
"version": "0.0.1",
+ "dependencies": {
+ "date-fns": "^4.1.0"
+ },
"devDependencies": {
"@sveltejs/adapter-auto": "^6.0.0",
"@sveltejs/adapter-cloudflare": "^7.0.4",
@@ -14,6 +17,7 @@
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"svelte": "^5.0.0",
"vite": "^6.2.6",
+ "vite-plugin-devtools-json": "^0.2.0",
"wrangler": "^4.22.0"
}
},
@@ -1596,6 +1600,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/date-fns": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/debug": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
@@ -2289,6 +2303,20 @@
"ufo": "^1.6.1"
}
},
+ "node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
"node_modules/vite": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
@@ -2364,6 +2392,19 @@
}
}
},
+ "node_modules/vite-plugin-devtools-json": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-devtools-json/-/vite-plugin-devtools-json-0.2.0.tgz",
+ "integrity": "sha512-K7PoaWOEJECZ1n3VbhJXsUAX2PsO0xY7KFMM/Leh7tUev0M5zi+lz+vnVVdCK17IOK9Jp9rdzHXc08cnQirGbg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uuid": "^11.1.0"
+ },
+ "peerDependencies": {
+ "vite": "^2.7.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
+ }
+ },
"node_modules/vitefu": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.7.tgz",
diff --git a/package.json b/package.json
index c36e989..3b9b57a 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,10 @@
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"svelte": "^5.0.0",
"vite": "^6.2.6",
+ "vite-plugin-devtools-json": "^0.2.0",
"wrangler": "^4.22.0"
+ },
+ "dependencies": {
+ "date-fns": "^4.1.0"
}
-}
\ No newline at end of file
+}
diff --git a/src/lib/ExchangeRateViewer.svelte b/src/lib/ExchangeRateViewer.svelte
new file mode 100644
index 0000000..ba5d995
--- /dev/null
+++ b/src/lib/ExchangeRateViewer.svelte
@@ -0,0 +1,470 @@
+
+
+
+
Exchange Rate Export
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {#if error}
+
{error}
+ {/if}
+
+ {#if isLoading}
+
Loading data, please wait...
+ {/if}
+
+ {#if showTable}
+
+ {#if selectedBank === 'bidv'}
+
+
+
+ | Date |
+ Currency |
+ Buy Cash |
+ Buy Transfer |
+ Sell |
+ Name (VI) |
+ Name (EN) |
+
+
+
+ {#each results as result}
+
+ | {result.date} |
+ {result.currency} |
+ {result.muaTm} |
+ {result.muaCk} |
+ {result.ban} |
+ {result.nameVI} |
+ {result.nameEN} |
+
+ {/each}
+
+
+ {:else}
+
+
+
+ | Date |
+ Label |
+ Ask Rate |
+ Bid Rate CK |
+ Bid Rate TM |
+ Ask Rate TM |
+ From |
+ To |
+
+
+
+ {#each results as result}
+
+ | {result.date} |
+ {result.label} |
+ {result.askRate} |
+ {result.bidRateCK} |
+ {result.bidRateTM} |
+ {result.askRateTM} |
+ {result.sourceCurrency} |
+ {result.targetCurrency} |
+
+ {/each}
+
+
+ {/if}
+
+ {/if}
+
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index cc88df0..3bd55e0 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,2 +1,25 @@
-Welcome to SvelteKit
-Visit svelte.dev/docs/kit to read the documentation
+
+
+
+ {#if defaultStartDate && defaultEndDate}
+
+ {/if}
+
diff --git a/tcb.html b/tcb.html
deleted file mode 100644
index fdbe1e4..0000000
--- a/tcb.html
+++ /dev/null
@@ -1,242 +0,0 @@
-
-
-
-
-
- Exchange Rate Export - Techcombank
-
-
-
-
-
Exchange Rate Export (USD, Techcombank)
-
-
-
-
-
-
-
-
-
-
-
-
- | Date |
- label |
- askRate |
- bidRateCK |
- bidRateTM |
- askRateTM |
- sourceCurrency |
- targetCurrency |
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
index bbf8c7d..38b5d1f 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,6 +1,10 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
+import devtoolsJson from 'vite-plugin-devtools-json';
export default defineConfig({
- plugins: [sveltekit()]
+ plugins: [
+ devtoolsJson(),
+ sveltekit()
+ ]
});