diff --git a/package-lock.json b/package-lock.json index c891db4a..332cd8a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "ae-app-svelte-tailwind-skeleton", - "version": "0.0.1", + "version": "0.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ae-app-svelte-tailwind-skeleton", - "version": "0.0.1", + "version": "0.0.2", "dependencies": { "@floating-ui/dom": "1.6.3", "axios": "^1.6.7", + "dayjs": "^1.11.10", "highlight.js": "11.9.0" }, "devDependencies": { @@ -17,6 +18,8 @@ "@skeletonlabs/skeleton": "2.8.0", "@skeletonlabs/tw-plugin": "0.3.1", "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-node": "^4.0.1", + "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "@tailwindcss/forms": "0.5.7", @@ -34,6 +37,7 @@ "prettier-plugin-svelte": "^3.1.2", "svelte": "^4.2.7", "svelte-check": "^3.6.0", + "svelte-highlight": "^7.6.0", "tailwindcss": "3.4.1", "tslib": "^2.4.1", "typescript": "^5.0.0", @@ -769,6 +773,98 @@ "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", "dev": true }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.11.0.tgz", @@ -977,6 +1073,30 @@ "@sveltejs/kit": "^2.0.0" } }, + "node_modules/@sveltejs/adapter-node": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-4.0.1.tgz", + "integrity": "sha512-IviiTtKCDp+0QoTmmMlGGZBA1EoUNsjecU6XGV9k62S3f01SNsVhpqi2e4nbI62BLGKh/YKKfFii+Vz/b9XIxg==", + "dev": true, + "dependencies": { + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "rollup": "^4.9.5" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.4.0" + } + }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.1.tgz", + "integrity": "sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, "node_modules/@sveltejs/kit": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.0.tgz", @@ -1118,6 +1238,12 @@ "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", "dev": true }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.5.7", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", @@ -1416,6 +1542,15 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -1682,6 +1817,18 @@ "node": "*" } }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -1824,6 +1971,15 @@ "periscopic": "^3.1.0" } }, + "node_modules/code-red/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1862,6 +2018,12 @@ "node": ">= 6" } }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1916,6 +2078,11 @@ "node": ">=4" } }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2044,9 +2211,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.670", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz", - "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==", + "version": "1.4.671", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.671.tgz", + "integrity": "sha512-UUlE+/rWbydmp+FW8xlnnTA5WNA0ZZd2XL8CuMS72rh+k4y1f8+z6yk3UQhEwqHQWj6IBdL78DwWOdGMvYfQyA==", "dev": true }, "node_modules/emoji-regex": { @@ -2354,13 +2521,10 @@ } }, "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0" - } + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "node_modules/esutils": { "version": "2.0.3", @@ -2621,20 +2785,19 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2652,26 +2815,16 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/globals": { @@ -2843,6 +2996,21 @@ "node": ">=8" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -2885,6 +3053,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2904,9 +3078,9 @@ } }, "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, "dependencies": { "@types/estree": "*" @@ -3577,6 +3751,24 @@ "is-reference": "^3.0.0" } }, + "node_modules/periscopic/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/periscopic/node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -3938,37 +4130,6 @@ "node": ">=14" } }, - "node_modules/purgecss/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/purgecss/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4067,6 +4228,48 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.11.0.tgz", @@ -4146,6 +4349,48 @@ "rimraf": "^2.5.2" } }, + "node_modules/sander/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/sander/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sander/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/sander/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4484,9 +4729,9 @@ } }, "node_modules/svelte": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.10.tgz", - "integrity": "sha512-Ep06yCaCdgG1Mafb/Rx8sJ1QS3RW2I2BxGp2Ui9LBHSZ2/tO/aGLc5WqPjgiAP6KAnLJGaIr/zzwQlOo1b8MxA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.11.tgz", + "integrity": "sha512-YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", @@ -4557,6 +4802,15 @@ } } }, + "node_modules/svelte-highlight": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/svelte-highlight/-/svelte-highlight-7.6.0.tgz", + "integrity": "sha512-J9X1d07iMIKZMAqNAhlkjLX/FS+7R2lPrqVul7i+EleVZIOYvBhtx7ES62bc661a70nKNOS05yr9JAvyQPPOIA==", + "dev": true, + "dependencies": { + "highlight.js": "11.9.0" + } + }, "node_modules/svelte-hmr": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", @@ -4632,6 +4886,24 @@ } } }, + "node_modules/svelte/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/svelte/node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/tailwindcss": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", @@ -5037,6 +5309,15 @@ "vite": "^4.1.1 || ^5.0.0" } }, + "node_modules/vite-plugin-tailwind-purgecss/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", diff --git a/package.json b/package.json index 5c7b93be..ade9c17d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ae-app-svelte-tailwind-skeleton", - "version": "0.0.1", + "version": "0.0.2", "private": true, "scripts": { "dev": "vite dev", @@ -19,6 +19,8 @@ "@skeletonlabs/skeleton": "2.8.0", "@skeletonlabs/tw-plugin": "0.3.1", "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-node": "^4.0.1", + "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "@tailwindcss/forms": "0.5.7", @@ -36,6 +38,7 @@ "prettier-plugin-svelte": "^3.1.2", "svelte": "^4.2.7", "svelte-check": "^3.6.0", + "svelte-highlight": "^7.6.0", "tailwindcss": "3.4.1", "tslib": "^2.4.1", "typescript": "^5.0.0", @@ -47,6 +50,7 @@ "dependencies": { "@floating-ui/dom": "1.6.3", "axios": "^1.6.7", + "dayjs": "^1.11.10", "highlight.js": "11.9.0" } } diff --git a/src/lib/ae_stores.ts b/src/lib/ae_stores.ts index ae57e3db..17a384a4 100644 --- a/src/lib/ae_stores.ts +++ b/src/lib/ae_stores.ts @@ -1,5 +1,27 @@ import { readable, writable } from 'svelte/store'; +import { PUBLIC_TESTING, PUBLIC_AE_API_PROTOCOL, PUBLIC_AE_API_SERVER, PUBLIC_AE_API_BAK_SERVER, PUBLIC_AE_API_PORT, PUBLIC_AE_API_PATH, PUBLIC_AE_API_SECRET_KEY, PUBLIC_AE_API_CRUD_SUPER_KEY, PUBLIC_AE_ACCOUNT_ID } from '$env/static/public'; +console.log(`Aether Config - TESTING:`, PUBLIC_TESTING); + +const api_base_url = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`; +const api_base_url_bak = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_BAK_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`; + +const api_secret_key = PUBLIC_AE_API_SECRET_KEY; +const api_crud_super_key = PUBLIC_AE_API_CRUD_SUPER_KEY; + +const ae_account_id = PUBLIC_AE_ACCOUNT_ID; + + +// import { getStores, navigating, page, updated } from '$app/stores'; +// import { assets, base, resolveRoute } from '$app/paths'; +// console.log(page.path); // Everything after the domian name + + +// const hostname = base; + +// console.log(import.meta.env.MODE); +// console.log(import.meta.env.BASE_URL); + type key_val = { [key: string]: any; // variable key // name: string; @@ -10,12 +32,20 @@ export let ae_app_local_data_struct: key_val = { 'ver': '0.0.1', 'name': 'Aether App Template', 'theme': 'light', - 'account_id': '_XY7DXtc9MY', // OSIT Demo _XY7DXtc9MY - 'site_domain': 'https://dev-demo.oneskyit.com', + 'account_id': ae_account_id, // OSIT Demo _XY7DXtc9MY + 'site_domain': null, // https://example.com, https://dev.example.com, etc. 'ds': {}, 'hub': { 'ds': {}, }, + 'mod': { // module + 'events': {}, + 'sponsorships': { + show_list__sponsorship_obj_li: true, + show_view__sponsorship_obj: false, + }, + 'testing': {}, + }, } console.log(`Aether Config - App Local Storage Data:`, ae_app_local_data_struct); export let ae_loc = writable(ae_app_local_data_struct); @@ -36,11 +66,11 @@ export let ae_sess = writable(ae_app_session_data_struct); // *** BEGIN *** Temporary API data. This should be stored to session storage. export let ae_api_data_struct: key_val = { 'ver': '0.0.2', - 'base_url': 'https://dev-api.oneskyit.com', - 'base_url_bak': 'https://dev-api.oneskyit.com', - 'api_secret_key': 'dFP6J9DVj9hUgIMn-fNIqg', // 'YOUR_API_SECRET_KEY', - 'api_secret_key_bak': 'dFP6J9DVj9hUgIMn-fNIqg', // 'YOUR_API_SECRET_KEY', - 'api_crud_super_key': 'zp5PtX4zUsI', // 'YOUR_SUPER_KEY' 'zp5PtX4zUsI' + 'base_url': api_base_url, + 'base_url_bak': api_base_url_bak, + 'api_secret_key': api_secret_key, // 'YOUR_API_SECRET_KEY', + 'api_secret_key_bak': api_secret_key, // 'YOUR_API_SECRET_KEY', + 'api_crud_super_key': api_crud_super_key, // 'YOUR_SUPER_KEY' 'zp5PtX4zUsI' 'headers': {}, 'account_id': ae_app_local_data_struct.account_id, } diff --git a/src/lib/ae_utils.ts b/src/lib/ae_utils.ts new file mode 100644 index 00000000..8ab9c29e --- /dev/null +++ b/src/lib/ae_utils.ts @@ -0,0 +1,132 @@ +import dayjs from 'dayjs'; + +export let iso_datetime_formatter = function iso_datetime_formatter(raw_datetime: string|Date, named_format: string) { + // console.log('*** iso_datetime_formatter() ***'); + + // https://en.wikipedia.org/wiki/ISO_8601 + // https://day.js.org/docs/en/display/format + // ISO 8601-1:2019 includes the T before the time portion + // ISO 8601-1:2019 midnight may only be referred to as "00:00", corresponding to the beginning of a calendar day + // and "24:00" is no longer allowed corresponding to the end of a day + // 60 is only used to denote an added leap second + + // ISO 8601 UTC: 2021-03-04T19:04:44+00:00 + // ISO 8601 UTC: 2021-03-04T19:04:44Z + // ISO 8601 UTC: 20210304T190444Z + + //datetime_iso 'YYYY-MM-DD HH:mm:ss' + //datetime_iso_12 'YYYY-MM-DD hh:mm:ss A' + //datetime_iso_12_short 'YY-MM-DD hh:mm A' + //datetime_iso_tz 'YYYY-MM-DD HH:mm:ss' + + //datetime_long 'dddd, MMMM D, YYYY hh:mm:ss A' + //datetime_medium 'ddd, MMM D, YYYY hh:mm:ss A' + //datetime_short 'MMM D, YY hh:mm A' + + //date_iso 'YYYY-MM-DD' + + //date_long 'dddd, MMMM D, YYYY' + //date_medium 'ddd, MMM D, YYYY' + //date_short 'MMM D, YY' + + //time_iso 'HH:mm:ss' + //time_iso_12 'hh:mm:ss A' + + //time_long 'hh:mm:ss A' + //time_medium 'h:m:s A' + //time_short 'hh:mm A' + + //dayjs(raw_datetime).format('dddd, MMMM D, YYYY hh:mm:ss A'); + + if (!raw_datetime) { + raw_datetime = new Date(); // Get the current datetime if one was not passed. + } + + let datetime_string = null; + + switch (named_format) { + case 'datetime_iso': + datetime_string = dayjs(raw_datetime).format('YYYY-MM-DD HH:mm:ss'); + break; + case 'datetime_iso_no_seconds': + datetime_string = dayjs(raw_datetime).format('YYYY-MM-DD HH:mm'); + break; + case 'datetime_iso_12_short': + datetime_string = dayjs(raw_datetime).format('YY-MM-DD hh:mm A'); + break; + case 'datetime_iso_12_short_month': + datetime_string = dayjs(raw_datetime).format('MM-DD hh:mm A'); + break; + case 'datetime_short': + datetime_string = dayjs(raw_datetime).format('MMM D, YY hh:mm A'); + break; + case 'datetime_medium': + datetime_string = dayjs(raw_datetime).format('MMM D, YYYY h:mm A'); + break; + case 'datetime_long': + datetime_string = dayjs(raw_datetime).format('MMMM D, YYYY hh:mm A'); + break; + case 'datetime_short_month': + datetime_string = dayjs(raw_datetime).format('MMM D hh:mm A'); + break; + case 'datetime_long_month': + datetime_string = dayjs(raw_datetime).format('MMMM D hh:mm A'); + break; + case 'datetime_short_day': + datetime_string = dayjs(raw_datetime).format('D hh:mm A'); + break; + case 'date_iso': + datetime_string = dayjs(raw_datetime).format('YYYY-MM-DD'); + break; + case 'date_long_month_day': + datetime_string = dayjs(raw_datetime).format('MMMM D'); + break; + case 'date_short': + datetime_string = dayjs(raw_datetime).format('MMM D, YY'); + break; + case 'date_short_no_year': + datetime_string = dayjs(raw_datetime).format('MMM D'); + break; + case 'date_long': + datetime_string = dayjs(raw_datetime).format('MMMM D, YYYY'); + break; + case 'date_full': + datetime_string = dayjs(raw_datetime).format('dddd, MMMM D, YYYY'); + break; + case 'date_full_no_year': + datetime_string = dayjs(raw_datetime).format('dddd, MMMM D'); + break; + case 'time_iso': + datetime_string = dayjs(raw_datetime).format('HH:mm:ss'); + break; + case 'time_long': + datetime_string = dayjs(raw_datetime).format('hh:mm:ss A'); + break; + case 'time_short': + datetime_string = dayjs(raw_datetime).format('hh:mm A'); + break; + case 'time_short_no_leading': + datetime_string = dayjs(raw_datetime).format('h:mm A'); + break; + case 'week_long': + datetime_string = dayjs(raw_datetime).format('dddd'); + break; + case 'week_medium': + datetime_string = dayjs(raw_datetime).format('ddd'); + break; + case 'week_short': + datetime_string = dayjs(raw_datetime).format('dd'); + break; + default: + console.log(`The named format passed (${named_format}) did not match a common name. Trying to format with the named format value.`); + datetime_string = dayjs(raw_datetime).format(named_format); + // datetime_string = dayjs(raw_datetime).format('YYYY-MM-DD HH:mm:ss'); + } + return datetime_string; +} + + +export let ae_util = { + iso_datetime_formatter: iso_datetime_formatter, +}; +// export default ae_util; \ No newline at end of file diff --git a/src/lib/api.js b/src/lib/api.js index 515f1a0d..b1be8d25 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -1,5 +1,5 @@ import axios from 'axios'; -// import { readable, writable } from 'svelte/store'; +import { readable, writable } from 'svelte/store'; // console.log('*** Using api.js ***'); @@ -504,7 +504,7 @@ export let get_ae_obj_id_crud = async function get_ae_obj_id_crud({ limit=999999, offset=0, data={}, - key, + // key, jwt=null, headers={}, params={}, @@ -1246,25 +1246,27 @@ export let get_data_store_obj_w_code = async function get_data_store_obj_w_code( const endpoint = `/data_store/code/${data_store_code}`; let data_store_obj_get_promise = await api.get_object({api_cfg: api_cfg, endpoint: endpoint, headers: headers, params: params, log_lvl: log_lvl}); - // if (data_store_obj_get_promise === false) { - // console.log('Data Store - RUN AGAIN WITH BACKUP'); - // let original_api_base_url = api_cfg['base_url']; + if (data_store_obj_get_promise === false) { + console.log('Data Store - RUN AGAIN WITH BACKUP'); + let original_api_base_url = api_cfg['base_url']; - // let temp_api = api_cfg; - // temp_api['base_url'] = temp_api['base_url_backup'] + let temp_api = api_cfg; + temp_api['base_url'] = temp_api['base_url_backup'] - // data_store_obj_get_promise = await api.get_object({api_cfg: temp_api, endpoint: endpoint, headers: headers, params: params, log_lvl: log_lvl}); - // temp_api['base_url'] = original_api_base_url; - // } + data_store_obj_get_promise = await api.get_object({api_cfg: temp_api, endpoint: endpoint, headers: headers, params: params, log_lvl: log_lvl}); + temp_api['base_url'] = original_api_base_url; + } let data_store_obj = data_store_obj_get_promise; if (data_type == 'text') { // console.log(data_store_obj.text); - window.localStorage.setItem(data_store_code, data_store_obj.text); + // window.localStorage.setItem(data_store_code, data_store_obj.text); + // localStorage.setItem(data_store_code, data_store_obj.text); } else if (data_type == 'json') { // console.log(data_store_obj.json); - window.localStorage.setItem(data_store_code, JSON.stringify(data_store_obj.json)); + // window.localStorage.setItem(data_store_code, JSON.stringify(data_store_obj.json)); + // localStorage.setItem(data_store_code, JSON.stringify(data_store_obj.json)); } if (log_lvl > 1) { diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js new file mode 100644 index 00000000..bb26165b --- /dev/null +++ b/src/routes/+layout.server.js @@ -0,0 +1,11 @@ +// export const ssr = false; +// export const prerender = true +// export const prerender = false; +// export const trailingSlash = 'always'; // 'never' | 'always' | 'ignore' + + +// import { TESTING } from '$env/static/private'; +// console.log(`Aether Config - TESTING:`, TESTING); + +// import { PRIVATE_TESTING } from '$env/static/private'; +// console.log(`Aether Config - TESTING:`, PRIVATE_TESTING); \ No newline at end of file diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 814ee8f7..b47c7ab3 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,6 +1,11 @@ + + + + @@ -108,13 +120,17 @@ async function handle_get_data_store_obj_w_code({code, data_type='text'}) { OSIT's Aether App - Example Page + href="/testing">Testing Page --> Example Page + href="/sponsorships">Sponsorships + + Speakers diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 00000000..eca82a1f --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1,4 @@ +// export const ssr = false; +// export const prerender = true; +// export const prerender = true +// export const trailingSlash = 'always'; // 'never' | 'always' | 'ignore' \ No newline at end of file diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts new file mode 100644 index 00000000..bb26165b --- /dev/null +++ b/src/routes/+page.server.ts @@ -0,0 +1,11 @@ +// export const ssr = false; +// export const prerender = true +// export const prerender = false; +// export const trailingSlash = 'always'; // 'never' | 'always' | 'ignore' + + +// import { TESTING } from '$env/static/private'; +// console.log(`Aether Config - TESTING:`, TESTING); + +// import { PRIVATE_TESTING } from '$env/static/private'; +// console.log(`Aether Config - TESTING:`, PRIVATE_TESTING); \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 189004ba..7a3f016d 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,8 +1,68 @@ -
diff --git a/src/routes/+page.ts b/src/routes/+page.ts new file mode 100644 index 00000000..9a79b6e4 --- /dev/null +++ b/src/routes/+page.ts @@ -0,0 +1,3 @@ +// export const prerender = true +// export const prerender = false; +// export const trailingSlash = 'always'; // 'never' | 'always' | 'ignore' \ No newline at end of file diff --git a/src/routes/sponsorships/+layout.ts b/src/routes/sponsorships/+layout.ts new file mode 100644 index 00000000..8c04173b --- /dev/null +++ b/src/routes/sponsorships/+layout.ts @@ -0,0 +1 @@ +// export const prerender = true \ No newline at end of file diff --git a/src/routes/sponsorships/+page.svelte b/src/routes/sponsorships/+page.svelte new file mode 100644 index 00000000..784334bf --- /dev/null +++ b/src/routes/sponsorships/+page.svelte @@ -0,0 +1,269 @@ + + + +
+
+ +

Aether - Sponsorships (dev)

+
+ + + +
+ +
+ {#if $slct.sponsorship_obj_li && $ae_loc.mod.sponsorships.show_list__sponsorship_obj_li} +

Got a list!

+ + {/if} +
+ +
+ {#if $slct.sponsorship_obj && $ae_loc.mod.sponsorships.show_edit__sponsorship_obj} +

Edit!

+ + {/if} +
+ +
+ {#if $slct.sponsorship_obj && $ae_loc.mod.sponsorships.show_view__sponsorship_obj} +

Viewing!

+ + {/if} +
+ +
+
+ + + + + diff --git a/src/routes/sponsorships/0_sponsorships__main.svelte b/src/routes/sponsorships/0_sponsorships__main.svelte new file mode 100644 index 00000000..250482cc --- /dev/null +++ b/src/routes/sponsorships/0_sponsorships__main.svelte @@ -0,0 +1,847 @@ + + + + + +
+
+

Sponsorships for One Sky IT Demo

+
+ +
+

+ ae: {($ae_app.ae_full_name ? $ae_app.ae_full_name : 'Name not set')} + + ( + {($ae_app.ae_email ? $ae_app.ae_email : 'Email not set')} + {#if $ae_app.administrator_access} + Administrator + {:else if $ae_app.trusted_access} + Trusted + {/if} + {$ae_app.ae_user ? $ae_app.ae_user : 'User not set'} + ) + +

+
+ +
+
+ {@html $ae_app.sponsorships.ds.sponsorships_info} +
+
+ +{#if $ae_app.sponsorships.show_main__options} +
+
+ {@html $ae_app.sponsorships.ds.sponsorships_options} +
+ + + +
+{/if} + + +{#if $slct.sponsorship_obj_li && $ae_app.sponsorships.show_list__sponsorship_obj_li} + +{/if} + + +{#if $ae_app.sponsorships.show_edit__sponsorship_obj} + + { + $ae_app.sponsorships.show_main__options = true; + $ae_app.sponsorships.show_list__sponsorship_obj_li = true; + $ae_app.sponsorships.show_edit__sponsorship_obj = false; + $ae_app.sponsorships.show_view__sponsorship_obj = false; + + const url = new URL(location); + url.searchParams.delete('sponsorship_id'); + history.pushState({}, '', url); + + let message = {'sponsorship_id': null}; + window.parent.postMessage(message, "*"); + }} + on:report__modal_dimensions={ (event) => { + console.log('*** on:report__modal_dimensions ***'); + console.log(event.detail); + + $ae_app.modal_dimensions = event.detail.modal_dimensions; + }} + > + {@html ($slct.sponsorship_obj.name ? $slct.sponsorship_obj.name : 'New Sponsorship')} + + + + + + + + +{/if} + + +{#if $ae_app.sponsorships.show_view__sponsorship_obj && $slct.sponsorship_obj} + + { + $slct.sponsorship_id = null; + $slct.sponsorship_obj = {}; + + $ae_app.sponsorships.show_main__options = true; + $ae_app.sponsorships.show_list__sponsorship_obj_li = true; + $ae_app.sponsorships.show_view__sponsorship_obj = false; + $ae_app.sponsorships.show_edit__sponsorship_obj = false; + + const url = new URL(location); + url.searchParams.delete('sponsorship_id'); + history.pushState({}, '', url); + + let message = {'sponsorship_id': null}; + window.parent.postMessage(message, "*"); + }} + on:report__modal_dimensions={ (event) => { + console.log('*** on:report__modal_dimensions ***'); + console.log(event.detail); + + $ae_app.modal_dimensions = event.detail.modal_dimensions; + }} + > + {@html $slct.sponsorship_obj.name} + + + + + + + + +{/if} + +
+ + + diff --git a/src/routes/sponsorships/10_edit__sponsorship_obj.svelte b/src/routes/sponsorships/10_edit__sponsorship_obj.svelte new file mode 100644 index 00000000..ecf4748e --- /dev/null +++ b/src/routes/sponsorships/10_edit__sponsorship_obj.svelte @@ -0,0 +1,1162 @@ + + + +
+ +
+ + {#await update_sponsorship_obj_promise} +
Saving...
+ {:then} + {#if update_sponsorship_obj_promise} +
Finished saving
+ {:else} + + {/if} + {/await} + + + + + +
+ + + + + + + +
+ +
+ +
+

How to Attended

+ +
+ Face-to-Face or Virtual +

Is this a face-to-face/in person sponsorship, a virtual/online sponsorship, or both?

+
+ + +
+
+ +
+ + Address + + + + + + + + + + + +
+ +
+ + + + {#if $ae_loc.lu_country_subdivision_list} + + {:else} + + {/if} + + + + {#if $ae_loc.lu_country_list} + + {:else} + + {/if} + +
+ + + +
+ Virtual/Online + + + + + + + +
+ + + +
+ +
+ +
+

Recurring and When

+ +
+ Recurring +
+ + +
+
+ +
+ + Recurring + +
+ +
+ + + + + + + +
+ +
+ + + +
+ + {#if ( $ae_loc.administrator_access || $slct.sponsorship_obj && ($slct.sponsorship_obj.show_recurring_text || ($slct.sponsorship_obj.recurring_text && !$slct.sponsorship_obj.recurring_text.includes('*gen*'))) )} +

Please only use the text box for additional information if the options above do not cover your needs. This may affect how this sponsorship shows up in search results.

+ + {/if} + {#if ( $ae_loc.administrator_access || $slct.sponsorship_obj && ($slct.sponsorship_obj.show_recurring_text || ($slct.sponsorship_obj.recurring_text && !$slct.sponsorship_obj.recurring_text.includes('*gen*'))) )} + + {:else} + + {/if} + + +
+ +
+ +
+

Contacts

+ +
+ Contact 1 + + + + + + + + + + + + + +
+ +
+ Contact 2 + + + + + + + + + +
+
+ +
+ +
+ +

+ Admin Options + +

+ + + + + + + + + + + {#if $ae_loc.administrator_access} + + {/if} + + {#if $ae_loc.trusted_access} + + {/if} + + + +
+ + +
+ {#if $slct.sponsorship_id} + + {:else} + + {/if} + + {#if $slct.sponsorship_id} + {#if $ae_loc.administrator_access} + + {:else if $ae_loc.trusted_access} + + {:else} + + {/if} + {/if} +
+ +
+ +
+ + + diff --git a/src/routes/sponsorships/10_list__sponsorship_obj.svelte b/src/routes/sponsorships/10_list__sponsorship_obj.svelte new file mode 100644 index 00000000..067d9d73 --- /dev/null +++ b/src/routes/sponsorships/10_list__sponsorship_obj.svelte @@ -0,0 +1,166 @@ + + + +
+{#if $slct.sponsorship_obj_li} + + + + + + + + + + + + + + +{#each $slct.sponsorship_obj_li as ae_sponsorship_obj, index} + + + + + + + + + + + + + + + + + + +{/each} + +
OptionsName LevelPaidGuests + + POC + CreatedUpdated
+ + + {#if $ae_loc.administrator_access} + + {/if} + {ae_sponsorship_obj.name} + + {#if ae_sponsorship_obj.level_num}{ae_sponsorship_obj.level_num}{/if} + {#if ae_sponsorship_obj.level_str}{ae_sponsorship_obj.level_str}{/if} + + {#if ae_sponsorship_obj.paid} + + + {:else} + + + {/if} + {#if ae_sponsorship_obj.amount} + ${ae_sponsorship_obj.amount} + {/if} + + {#if ae_sponsorship_obj.guest_li_json} + {ae_sponsorship_obj.guest_li_json.length} + {:else} + + -- None -- + {/if} + + {#if ae_sponsorship_obj.poc_json} + + {ae_sponsorship_obj.poc_json.given_name} {ae_sponsorship_obj.poc_json.family_name} + + {ae_sponsorship_obj.poc_json.email} + {/if} + {ae_util.iso_datetime_formatter(ae_sponsorship_obj.created_on, 'datetime_short')}{ae_util.iso_datetime_formatter(ae_sponsorship_obj.updated_on, 'datetime_short')}
+{:else} +
No sponsorships avalible to show at this time
+{/if} +
+ + + diff --git a/src/routes/sponsorships/10_view__sponsorship_obj.svelte b/src/routes/sponsorships/10_view__sponsorship_obj.svelte new file mode 100644 index 00000000..f38ff24a --- /dev/null +++ b/src/routes/sponsorships/10_view__sponsorship_obj.svelte @@ -0,0 +1,193 @@ + + + +
+ +
+

{@html $slct.sponsorship_obj.name}

+
+ +
+
+
Description:
+
{@html $slct.sponsorship_obj.description ? $slct.sponsorship_obj.description : '-- No Description Given --'}
+
+ +
+ Level of Sponsorship: + {$slct.sponsorship_obj.level_num} — {$slct.sponsorship_obj.level_str} +
+ +
+ Paid: + $ + + {$slct.sponsorship_obj.paid ? 'Yes, marked as paid' : 'Not yet marked as paid'} + +
+ + + +
+

Guest List

+ + {#if $slct.sponsorship_obj.guest_li_json && $slct.sponsorship_obj.guest_li_json.length && $slct.sponsorship_obj.guest_li_json[0].full_name} + + {:else} +
No guest list found!
+ {/if} + +
+ +
+
+ + ID: + {$slct.sponsorship_obj.sponsorship_id_random} + + + Created on: {ae_util.iso_datetime_formatter($slct.sponsorship_obj.created_on, 'datetime_short')} + + + Updated on: {ae_util.iso_datetime_formatter($slct.sponsorship_obj.updated_on, 'datetime_short')} + +
+ + {#if $ae_loc.trusted_access || $slct.sponsorship_obj.external_person_id === $ae_loc.novi_uuid || $slct.sponsorship_obj.contact_1_email === $ae_loc.novi_email} +
+ +
+ {/if} +
+ +
+ +
+ + + diff --git a/src/routes/testing/+layout.ts b/src/routes/testing/+layout.ts new file mode 100644 index 00000000..8c04173b --- /dev/null +++ b/src/routes/testing/+layout.ts @@ -0,0 +1 @@ +// export const prerender = true \ No newline at end of file diff --git a/src/routes/testing/+page.svelte b/src/routes/testing/+page.svelte new file mode 100644 index 00000000..922b16cc --- /dev/null +++ b/src/routes/testing/+page.svelte @@ -0,0 +1,198 @@ + + + +
+
+

Aether - Sponsorships (testing)

+ +
+ +
+ +
+
+ + + diff --git a/svelte.config.js b/svelte.config.js index f81a659e..4b3907dd 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,4 +1,6 @@ -import adapter from '@sveltejs/adapter-auto'; +// import adapter from '@sveltejs/adapter-auto'; +import adapter_node from '@sveltejs/adapter-node'; +import adapter_static from '@sveltejs/adapter-static'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; /** @type {import('@sveltejs/kit').Config} */ @@ -7,15 +9,34 @@ const config = { // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors preprocess: [vitePreprocess()], - + vitePlugin: { inspector: true, }, kit: { + adapter: adapter_node(), + + // adapter: adapter_static({ + // // default options are shown. On some platforms + // // these options are set automatically — see below + // pages: 'build', + // assets: 'build', + // fallback: '200.html', // undefined, + // precompress: false, + // strict: true + // }) + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. // If your environment is not supported or you settled on a specific environment, switch out the adapter. // See https://kit.svelte.dev/docs/adapters for more information about adapters. - adapter: adapter() + // adapter: adapter() + + // target: "#svelte", + // vite: { + // optimizeDeps: { + // include: ["highlight.js/lib/core"], + // }, + // }, } }; export default config; \ No newline at end of file