Merge remote-tracking branch 'ietf-tools/main' into feat/postgres
This commit is contained in:
commit
01b4a91bfe
115
.github/workflows/dev-db-migrations-test.yml
vendored
Normal file
115
.github/workflows/dev-db-migrations-test.yml
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
# GITHUB ACTIONS - WORKFLOW
|
||||
|
||||
name: Test DB Migration Build
|
||||
|
||||
on:
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
exportDumpAsSQL:
|
||||
description: 'Save PostgreSQL Debug Dump'
|
||||
default: false
|
||||
required: true
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
migrate:
|
||||
name: Migrate MySQL to PostgreSQL DB
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/ietf-tools/datatracker-app-base:latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
services:
|
||||
db:
|
||||
image: ghcr.io/ietf-tools/datatracker-db:latest
|
||||
volumes:
|
||||
- mariadb-data:/var/lib/mysql
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: ietf
|
||||
MYSQL_DATABASE: ietf_utf8
|
||||
MYSQL_USER: django
|
||||
MYSQL_PASSWORD: RkTkDPFnKpko
|
||||
pgdb:
|
||||
image: postgres:14.5
|
||||
volumes:
|
||||
- /pgdata:/var/lib/postgresql/data
|
||||
env:
|
||||
POSTGRES_PASSWORD: RkTkDPFnKpko
|
||||
POSTGRES_USER: django
|
||||
POSTGRES_DB: ietf
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: 'feat/pg-migrations'
|
||||
|
||||
- name: Migrate
|
||||
uses: nick-fields/retry@v2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
command: |
|
||||
chmod +x ./docker/scripts/db-pg-migrate.sh
|
||||
sh ./docker/scripts/db-pg-migrate.sh
|
||||
on_retry_command: |
|
||||
psql -U django -h pgdb -d ietf -v ON_ERROR_STOP=1 -c '\x' -c 'DROP SCHEMA ietf_utf8 CASCADE;'
|
||||
rm -f cast.load
|
||||
|
||||
- name: Upload DB Dump
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dump
|
||||
path: ietf.dump
|
||||
|
||||
- name: Export as SQL (Debug)
|
||||
if: ${{ github.event.inputs.exportDumpAsSQL == 'true' }}
|
||||
run: pg_dump -h pgdb -U django ietf > ietf.sql
|
||||
|
||||
- name: Upload SQL DB Dump (Debug)
|
||||
if: ${{ github.event.inputs.exportDumpAsSQL == 'true' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dumpsql
|
||||
path: ietf.sql
|
||||
|
||||
build:
|
||||
name: Build PostgreSQL Docker Images
|
||||
runs-on: ubuntu-latest
|
||||
needs: [migrate]
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
ref: 'feat/pg-migrations'
|
||||
|
||||
- name: Download DB Dump
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: dump
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Docker Build & Push
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
context: .
|
||||
file: docker/db-pg.Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ghcr.io/ietf-tools/datatracker-db-pg:migrate-test
|
||||
provenance: false
|
Binary file not shown.
BIN
.yarn/cache/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-darwin-arm64-npm-0.17.13-3c31ee9bef-8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-darwin-x64-npm-0.17.13-2af4bfbe4a-8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-linux-arm64-npm-0.17.13-533eb0e4eb-8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@esbuild-linux-x64-npm-0.17.13-01575597b4-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-linux-x64-npm-0.17.13-01575597b4-8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-win32-arm64-npm-0.17.13-cd496c2d1d-8.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@esbuild-win32-x64-npm-0.17.13-29882f65f7-8.zip
vendored
Normal file
BIN
.yarn/cache/@esbuild-win32-x64-npm-0.17.13-29882f65f7-8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip
vendored
Normal file
BIN
.yarn/cache/@eslint-community-eslint-utils-npm-4.4.0-d1791bd5a3-cdfe3ae42b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip
vendored
Normal file
BIN
.yarn/cache/@eslint-community-regexpp-npm-4.4.1-44c7391499-db97d8d08e.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-bootstrap5-npm-6.1.5-d08c2db486-c2f8865823.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-bootstrap5-npm-6.1.5-d08c2db486-c2f8865823.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-core-npm-6.1.5-2464e961fe-6892c11c40.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-core-npm-6.1.5-2464e961fe-6892c11c40.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-daygrid-npm-6.1.5-3a84c9028f-f62aa7364d.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-daygrid-npm-6.1.5-3a84c9028f-f62aa7364d.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-interaction-npm-6.1.5-785fbf6e56-dd3d7fb8ba.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-interaction-npm-6.1.5-785fbf6e56-dd3d7fb8ba.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-list-npm-6.1.5-fb1bce0bb6-4879294b57.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-list-npm-6.1.5-fb1bce0bb6-4879294b57.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-timegrid-npm-6.1.5-0011ead6b7-236aabb57a.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-timegrid-npm-6.1.5-0011ead6b7-236aabb57a.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@fullcalendar-vue3-npm-6.1.5-fb96111297-bf426f3668.zip
vendored
Normal file
BIN
.yarn/cache/@fullcalendar-vue3-npm-6.1.5-fb96111297-bf426f3668.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@popperjs-core-npm-2.11.7-c1bac58243-5b65537478.zip
vendored
Normal file
BIN
.yarn/cache/@popperjs-core-npm-2.11.7-c1bac58243-5b65537478.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/@vitejs-plugin-vue-npm-4.1.0-7f9225ba6f-532192a3da.zip
vendored
Normal file
BIN
.yarn/cache/@vitejs-plugin-vue-npm-4.1.0-7f9225ba6f-532192a3da.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001469-14058b3844-8e496509d7.zip
vendored
Normal file
BIN
.yarn/cache/caniuse-lite-npm-1.0.30001469-14058b3844-8e496509d7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/d3-npm-7.8.2-7d3206dc99-e7bf5918f2.zip
vendored
BIN
.yarn/cache/d3-npm-7.8.2-7d3206dc99-e7bf5918f2.zip
vendored
Binary file not shown.
BIN
.yarn/cache/d3-npm-7.8.3-880a46e51a-d3291a8f48.zip
vendored
Normal file
BIN
.yarn/cache/d3-npm-7.8.3-880a46e51a-d3291a8f48.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/esbuild-npm-0.17.13-538abc913d-c3be8d41a3.zip
vendored
Normal file
BIN
.yarn/cache/esbuild-npm-0.17.13-538abc913d-c3be8d41a3.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/jquery-npm-3.6.4-c665e9b5ea-8354f7bd0a.zip
vendored
Normal file
BIN
.yarn/cache/jquery-npm-3.6.4-c665e9b5ea-8354f7bd0a.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/moment-timezone-npm-0.5.42-4159a531ad-d4d5d68d4b.zip
vendored
Normal file
BIN
.yarn/cache/moment-timezone-npm-0.5.42-4159a531ad-d4d5d68d4b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/preact-npm-10.12.1-fdb903e9a5-0de99f4775.zip
vendored
Normal file
BIN
.yarn/cache/preact-npm-10.12.1-fdb903e9a5-0de99f4775.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/rollup-npm-3.20.2-f1b9d0e0bb-34b0932839.zip
vendored
Normal file
BIN
.yarn/cache/rollup-npm-3.20.2-f1b9d0e0bb-34b0932839.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/sass-npm-1.60.0-fe0c721ae0-06e163c37a.zip
vendored
Normal file
BIN
.yarn/cache/sass-npm-1.60.0-fe0c721ae0-06e163c37a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/vite-npm-4.1.4-224b9db54d-50a9a1f2e2.zip
vendored
BIN
.yarn/cache/vite-npm-4.1.4-224b9db54d-50a9a1f2e2.zip
vendored
Binary file not shown.
BIN
.yarn/cache/vite-npm-4.2.1-a0fa6996de-70eb162ffc.zip
vendored
Normal file
BIN
.yarn/cache/vite-npm-4.2.1-a0fa6996de-70eb162ffc.zip
vendored
Normal file
Binary file not shown.
BIN
bin/vnu.jar
BIN
bin/vnu.jar
Binary file not shown.
14
dev/del-old-packages/package-lock.json
generated
14
dev/del-old-packages/package-lock.json
generated
|
@ -10,7 +10,7 @@
|
|||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@octokit/core": "^4.2.0",
|
||||
"luxon": "^3.2.1"
|
||||
"luxon": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@octokit/auth-token": {
|
||||
|
@ -141,9 +141,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/luxon": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
|
||||
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
|
||||
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
|
@ -315,9 +315,9 @@
|
|||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
|
||||
},
|
||||
"luxon": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
|
||||
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg=="
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
|
||||
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg=="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.7",
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@octokit/core": "^4.2.0",
|
||||
"luxon": "^3.2.1"
|
||||
"luxon": "^3.3.0"
|
||||
}
|
||||
}
|
||||
|
|
89
dev/deploy-to-container/package-lock.json
generated
89
dev/deploy-to-container/package-lock.json
generated
|
@ -6,18 +6,23 @@
|
|||
"": {
|
||||
"name": "deploy-to-container",
|
||||
"dependencies": {
|
||||
"dockerode": "^3.3.3",
|
||||
"fs-extra": "^10.1.0",
|
||||
"nanoid": "4.0.0",
|
||||
"dockerode": "^3.3.5",
|
||||
"fs-extra": "^11.1.0",
|
||||
"nanoid": "4.0.1",
|
||||
"nanoid-dictionary": "5.0.0-beta.1",
|
||||
"slugify": "1.6.5",
|
||||
"tar": "^6.1.11",
|
||||
"tar": "^6.1.13",
|
||||
"yargs": "^17.7.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@balena/dockerignore": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
|
||||
"integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="
|
||||
},
|
||||
"node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
|
@ -163,10 +168,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/dockerode": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz",
|
||||
"integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==",
|
||||
"version": "3.3.5",
|
||||
"resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz",
|
||||
"integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==",
|
||||
"dependencies": {
|
||||
"@balena/dockerignore": "^1.0.2",
|
||||
"docker-modem": "^3.0.0",
|
||||
"tar-fs": "~2.0.1"
|
||||
},
|
||||
|
@ -201,16 +207,16 @@
|
|||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"node_modules/fs-extra": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
||||
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz",
|
||||
"integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==",
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.2.0",
|
||||
"jsonfile": "^6.0.1",
|
||||
"universalify": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
"node": ">=14.14"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-minipass": {
|
||||
|
@ -331,9 +337,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
|
||||
"integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.1.tgz",
|
||||
"integrity": "sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==",
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.js"
|
||||
},
|
||||
|
@ -471,19 +477,19 @@
|
|||
}
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "6.1.11",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
|
||||
"integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
|
||||
"version": "6.1.13",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz",
|
||||
"integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==",
|
||||
"dependencies": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
"minipass": "^3.0.0",
|
||||
"minipass": "^4.0.0",
|
||||
"minizlib": "^2.1.1",
|
||||
"mkdirp": "^1.0.3",
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10"
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-fs": {
|
||||
|
@ -553,6 +559,14 @@
|
|||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/tar/node_modules/minipass": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
|
||||
"integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
|
@ -632,6 +646,11 @@
|
|||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@balena/dockerignore": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
|
||||
"integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
|
@ -730,10 +749,11 @@
|
|||
}
|
||||
},
|
||||
"dockerode": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz",
|
||||
"integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==",
|
||||
"version": "3.3.5",
|
||||
"resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz",
|
||||
"integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==",
|
||||
"requires": {
|
||||
"@balena/dockerignore": "^1.0.2",
|
||||
"docker-modem": "^3.0.0",
|
||||
"tar-fs": "~2.0.1"
|
||||
}
|
||||
|
@ -762,9 +782,9 @@
|
|||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
|
||||
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz",
|
||||
"integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.2.0",
|
||||
"jsonfile": "^6.0.1",
|
||||
|
@ -852,9 +872,9 @@
|
|||
"optional": true
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
|
||||
"integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg=="
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.1.tgz",
|
||||
"integrity": "sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww=="
|
||||
},
|
||||
"nanoid-dictionary": {
|
||||
"version": "5.0.0-beta.1",
|
||||
|
@ -951,13 +971,13 @@
|
|||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "6.1.11",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
|
||||
"integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
|
||||
"version": "6.1.13",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz",
|
||||
"integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==",
|
||||
"requires": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
"minipass": "^3.0.0",
|
||||
"minipass": "^4.0.0",
|
||||
"minizlib": "^2.1.1",
|
||||
"mkdirp": "^1.0.3",
|
||||
"yallist": "^4.0.0"
|
||||
|
@ -967,6 +987,11 @@
|
|||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
|
||||
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.5.tgz",
|
||||
"integrity": "sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
"name": "deploy-to-container",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"dockerode": "^3.3.3",
|
||||
"fs-extra": "^10.1.0",
|
||||
"nanoid": "4.0.0",
|
||||
"dockerode": "^3.3.5",
|
||||
"fs-extra": "^11.1.0",
|
||||
"nanoid": "4.0.1",
|
||||
"nanoid-dictionary": "5.0.0-beta.1",
|
||||
"slugify": "1.6.5",
|
||||
"tar": "^6.1.11",
|
||||
"tar": "^6.1.13",
|
||||
"yargs": "^17.7.1"
|
||||
},
|
||||
"engines": {
|
||||
|
|
1098
dev/diff/package-lock.json
generated
1098
dev/diff/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -2,19 +2,19 @@
|
|||
"name": "diff",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"chalk": "^5.0.1",
|
||||
"dockerode": "^3.3.3",
|
||||
"chalk": "^5.2.0",
|
||||
"dockerode": "^3.3.5",
|
||||
"enquirer": "^2.3.6",
|
||||
"extract-zip": "^2.0.1",
|
||||
"fs-extra": "^10.1.0",
|
||||
"got": "^12.3.1",
|
||||
"fs-extra": "^11.1.0",
|
||||
"got": "^12.6.0",
|
||||
"keypress": "^0.2.1",
|
||||
"listr2": "^5.0.2",
|
||||
"listr2": "^5.0.8",
|
||||
"lodash-es": "^4.17.21",
|
||||
"luxon": "^3.2.1",
|
||||
"luxon": "^3.3.0",
|
||||
"pretty-bytes": "^6.1.0",
|
||||
"tar": "^6.1.11",
|
||||
"yargs": "^17.5.1"
|
||||
"tar": "^6.1.13",
|
||||
"yargs": "^17.7.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
|
|
|
@ -461,7 +461,7 @@ def ad_dashboard_sort_key(doc):
|
|||
|
||||
|
||||
def ad_workload(request):
|
||||
delta = datetime.timedelta(days=30)
|
||||
delta = datetime.timedelta(days=120)
|
||||
right_now = timezone.now()
|
||||
|
||||
ads = []
|
||||
|
|
|
@ -219,6 +219,7 @@ class MeetingTests(BaseMeetingTestCase):
|
|||
slot = TimeSlot.objects.get(sessionassignments__session=session,sessionassignments__schedule=meeting.schedule)
|
||||
slot.location.urlresource_set.create(name_id='meetecho_onsite', url='https://onsite.example.com')
|
||||
slot.location.urlresource_set.create(name_id='meetecho', url='https://meetecho.example.com')
|
||||
meeting.timeslot_set.filter(type_id="break").update(show_location=False)
|
||||
#
|
||||
self.write_materials_files(meeting, session)
|
||||
#
|
||||
|
@ -348,9 +349,17 @@ class MeetingTests(BaseMeetingTestCase):
|
|||
self.assertContains(r, session.materials.filter(type='slides').exclude(states__type__slug='slides',states__slug='deleted').first().uploaded_filename)
|
||||
self.assertNotContains(r, session.materials.filter(type='slides',states__type__slug='slides',states__slug='deleted').first().uploaded_filename)
|
||||
|
||||
# iCal
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.agenda_ical", kwargs=dict(num=meeting.number))
|
||||
+ "?show=" + session.group.parent.acronym.upper())
|
||||
# iCal, no session filtering
|
||||
ical_url = urlreverse("ietf.meeting.views.agenda_ical", kwargs=dict(num=meeting.number))
|
||||
r = self.client.get(ical_url)
|
||||
with open('./ical-output.ics', 'w') as f:
|
||||
f.write(r.content.decode())
|
||||
assert_ical_response_is_valid(self, r)
|
||||
self.assertContains(r, "BEGIN:VTIMEZONE")
|
||||
self.assertContains(r, "END:VTIMEZONE")
|
||||
|
||||
# iCal, single group
|
||||
r = self.client.get(ical_url + "?show=" + session.group.parent.acronym.upper())
|
||||
assert_ical_response_is_valid(self, r)
|
||||
self.assertContains(r, session.group.acronym)
|
||||
self.assertContains(r, session.group.name)
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
{% block title %}Areas - People{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
{% block title %}Meetings{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}">
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
<script src="{% static 'secr/js/dynamic_inlines.js' %}"></script>
|
||||
{% endblock %}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.8 KiB |
|
@ -1,41 +0,0 @@
|
|||
// Copyright The IETF Trust 2021, All Rights Reserved
|
||||
|
||||
/**
|
||||
* Agenda personalization JS methods
|
||||
*
|
||||
* Requires agenda_timezone.js and timezone.js be included.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Update the checkbox state to match the filter parameters
|
||||
*/
|
||||
function updateAgendaCheckboxes(filter_params) {
|
||||
var selection_inputs = document.getElementsByName('selected-sessions');
|
||||
selection_inputs.forEach((inp) => {
|
||||
const item_keywords = inp.dataset.filterKeywords.toLowerCase()
|
||||
.split(',');
|
||||
if (
|
||||
agenda_filter.keyword_match(item_keywords, filter_params.show) &&
|
||||
!agenda_filter.keyword_match(item_keywords, filter_params.hide)
|
||||
) {
|
||||
inp.checked = true;
|
||||
} else {
|
||||
inp.checked = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
window.handleFilterParamUpdate = function (filter_params) {
|
||||
updateAgendaCheckboxes(filter_params);
|
||||
};
|
||||
|
||||
window.handleTableClick = function (event) {
|
||||
if (event.target.name === 'selected-sessions') {
|
||||
// hide the tooltip after clicking on a checkbox
|
||||
const jqElt = jQuery(event.target);
|
||||
if (jqElt.tooltip) {
|
||||
jqElt.tooltip('hide');
|
||||
}
|
||||
}
|
||||
};
|
|
@ -1,306 +0,0 @@
|
|||
// Copyright The IETF Trust 2021, All Rights Reserved
|
||||
/*
|
||||
Timezone support specific to the agenda page
|
||||
|
||||
To properly handle timezones other than local, needs a method to retrieve
|
||||
the current timezone. Set this by passing a method taking no parameters and
|
||||
returning the current timezone to the set_current_tz_cb() method.
|
||||
This should be done before calling anything else in the file.
|
||||
*/
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
const local_timezone = moment.tz.guess();
|
||||
|
||||
// get_current_tz_cb must be overwritten using set_current_tz_cb
|
||||
let get_current_tz_cb = function() {
|
||||
throw new Error('Tried to get current timezone before callback registered. Use set_current_tz_cb().');
|
||||
};
|
||||
|
||||
// Initialize moments
|
||||
function initialize_moments() {
|
||||
const times = $('.time');
|
||||
$.each(times, function (i, item) {
|
||||
item.start_ts = moment.unix(this.getAttribute("data-start-time"))
|
||||
.utc();
|
||||
item.end_ts = moment.unix(this.getAttribute("data-end-time"))
|
||||
.utc();
|
||||
if (this.hasAttribute("data-weekday")) {
|
||||
item.format = 2;
|
||||
} else {
|
||||
item.format = 1;
|
||||
}
|
||||
if (this.hasAttribute("format")) {
|
||||
item.format = +this.getAttribute("format");
|
||||
}
|
||||
});
|
||||
const things_with_slots = $('[data-slot-start-ts]');
|
||||
$.each(things_with_slots, function (i, item) {
|
||||
item.slot_start_ts = moment.unix(this.getAttribute("data-slot-start-ts"))
|
||||
.utc();
|
||||
item.slot_end_ts = moment.unix(this.getAttribute("data-slot-end-ts"))
|
||||
.utc();
|
||||
});
|
||||
}
|
||||
|
||||
function format_time(t, tz, fmt) {
|
||||
let out;
|
||||
const mtz = window.meeting_timezone || "UTC";
|
||||
switch (fmt) {
|
||||
case 0:
|
||||
out = t.tz(tz)
|
||||
.format('dddd, ') + '<span>' +
|
||||
t.tz(tz)
|
||||
.format('MMMM Do YYYY, ') + '</span>' +
|
||||
t.tz(tz)
|
||||
.format('HH:mm') + '<span>' +
|
||||
t.tz(tz)
|
||||
.format(' Z z') + '</span>';
|
||||
break;
|
||||
case 1:
|
||||
// Note, this code does not work if the meeting crosses the
|
||||
// year boundary.
|
||||
out = t.tz(tz)
|
||||
.format("HH:mm");
|
||||
if (+t.tz(tz)
|
||||
.dayOfYear() < +t.tz(mtz)
|
||||
.dayOfYear()) {
|
||||
out = out + " (-1)";
|
||||
} else if (+t.tz(tz)
|
||||
.dayOfYear() > +t.tz(mtz)
|
||||
.dayOfYear()) {
|
||||
out = out + " (+1)";
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
out = t.tz(mtz)
|
||||
.format("dddd, ")
|
||||
.toUpperCase() +
|
||||
t.tz(tz)
|
||||
.format("HH:mm");
|
||||
if (+t.tz(tz)
|
||||
.dayOfYear() < +t.tz(mtz)
|
||||
.dayOfYear()) {
|
||||
out = out + " (-1)";
|
||||
} else if (+t.tz(tz)
|
||||
.dayOfYear() > +t.tz(mtz)
|
||||
.dayOfYear()) {
|
||||
out = out + " (+1)";
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
out = t.utc()
|
||||
.format("YYYY-MM-DD");
|
||||
break;
|
||||
case 4:
|
||||
out = t.tz(tz)
|
||||
.format("YYYY-MM-DD HH:mm");
|
||||
break;
|
||||
case 5:
|
||||
out = t.tz(tz)
|
||||
.format("HH:mm");
|
||||
break;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
// Format tooltip notice
|
||||
function format_tooltip_notice(start, end) {
|
||||
let notice = "";
|
||||
|
||||
if (end.isBefore()) {
|
||||
notice = "Event ended " + end.fromNow();
|
||||
} else if (start.isAfter()) {
|
||||
notice = "Event will start " + start.fromNow();
|
||||
} else {
|
||||
notice = "Event started " + start.fromNow() + " and will end " +
|
||||
end.fromNow();
|
||||
}
|
||||
return '<span class="tooltipnotice">' + notice + '</span>';
|
||||
}
|
||||
|
||||
// Format tooltip table
|
||||
function format_tooltip_table(start, end) {
|
||||
const current_timezone = get_current_tz_cb();
|
||||
let out = '<div class="text-start"><table class="table table-sm"><thead><tr><th scope="col"></th><th scope="col">Session start</th><th scope="col">Session end</th></tr></thead>';
|
||||
if (window.meeting_timezone !== "") {
|
||||
out += '<tr><th class="timehead">Meeting timezone</th><td>' +
|
||||
format_time(start, window.meeting_timezone, 0) + '</td><td>' +
|
||||
format_time(end, window.meeting_timezone, 0) + '</td></tr>';
|
||||
}
|
||||
out += '<tr><th class="timehead">Local timezone</th><td>' +
|
||||
format_time(start, local_timezone, 0) + '</td><td>' +
|
||||
format_time(end, local_timezone, 0) + '</td></tr>';
|
||||
if (current_timezone !== 'UTC') {
|
||||
out += '<tr><th class="timehead">Selected Timezone</th><td>' +
|
||||
format_time(start, current_timezone, 0) + '</td><td>' +
|
||||
format_time(end, current_timezone, 0) + '</td></tr>';
|
||||
}
|
||||
out += '<tr><th class="timehead">UTC</th><td>' +
|
||||
format_time(start, 'UTC', 0) + '</td><td>' +
|
||||
format_time(end, 'UTC', 0) + '</td></tr>';
|
||||
out += '</table>' + format_tooltip_notice(start, end) + '</div>';
|
||||
return out;
|
||||
}
|
||||
|
||||
// Format tooltip for item
|
||||
function format_tooltip(start, end) {
|
||||
return '<div class="timetooltiptext">' +
|
||||
format_tooltip_table(start, end) +
|
||||
'</div>';
|
||||
}
|
||||
|
||||
// Add tooltips
|
||||
function add_tooltips() {
|
||||
$('.time')
|
||||
.each(function () {
|
||||
const tooltip = $(format_tooltip(this.start_ts, this.end_ts));
|
||||
tooltip[0].start_ts = this.start_ts;
|
||||
tooltip[0].end_ts = this.end_ts;
|
||||
tooltip[0].ustart_ts = moment(this.start_ts)
|
||||
.add(-2, 'hours');
|
||||
tooltip[0].uend_ts = moment(this.end_ts)
|
||||
.add(2, 'hours');
|
||||
$(this)
|
||||
.closest("th, td")
|
||||
.attr("data-bs-toggle", "popover")
|
||||
.attr("data-bs-content", $(tooltip)
|
||||
.html())
|
||||
.popover({
|
||||
html: true,
|
||||
sanitize: false,
|
||||
trigger: "hover"
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Update times on the agenda based on the selected timezone
|
||||
function update_times(newtz) {
|
||||
$('.current-tz')
|
||||
.html(newtz.replaceAll("_", " ").replaceAll("/", " / "));
|
||||
$('.time')
|
||||
.each(function () {
|
||||
if (this.format === 4) {
|
||||
const tz = this.start_ts.tz(newtz).format(" z");
|
||||
const start_doy = this.start_ts.tz(newtz).dayOfYear();
|
||||
const end_doy = this.end_ts.tz(newtz).dayOfYear();
|
||||
if (start_doy === end_doy) {
|
||||
$(this)
|
||||
.html(format_time(this.start_ts, newtz, this.format) +
|
||||
'<span class="d-lg-none"><br></span>-' + format_time(this.end_ts, newtz, 5) + tz);
|
||||
} else {
|
||||
$(this)
|
||||
.html(format_time(this.start_ts, newtz, this.format) +
|
||||
'<span class="d-lg-none"><br></span>-' +
|
||||
format_time(this.end_ts, newtz, this.format) + tz);
|
||||
}
|
||||
} else {
|
||||
$(this)
|
||||
.html(format_time(this.start_ts, newtz, this.format) + '<span class="d-lg-none"><br></span>-' +
|
||||
format_time(this.end_ts, newtz, this.format));
|
||||
}
|
||||
});
|
||||
update_tooltips_all();
|
||||
update_clock();
|
||||
}
|
||||
|
||||
// Update hrefs in anchor tags with the "now-link" class. Mark the target with the "current-session" class.
|
||||
function update_now_link(agenda_rows, ongoing_rows, later_rows) {
|
||||
agenda_rows.removeClass('current-session');
|
||||
const links_to_update = $('a.now-link');
|
||||
if (ongoing_rows.length > 0) {
|
||||
// sessions are ongoing - find those with the latest start time and mark the first of them as "now"
|
||||
const last_start_time = ongoing_rows[ongoing_rows.length - 1].slot_start_ts;
|
||||
for (let ii=0; ii < ongoing_rows.length; ii++) {
|
||||
const dt = ongoing_rows[ii].slot_start_ts.diff(last_start_time, 'seconds');
|
||||
if (Math.abs(dt) < 1) {
|
||||
$(ongoing_rows[ii]).addClass('current-session');
|
||||
links_to_update.attr('href', '#' + ongoing_rows[ii].id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (later_rows.length > 0) {
|
||||
// There were no ongoing sessions, look for the next one to start and mark as current
|
||||
$(later_rows[0]).addClass('current-session');
|
||||
links_to_update.attr('href', '#' + later_rows[0].id);
|
||||
} else {
|
||||
// No sessions in the future - meeting has apparently ended
|
||||
links_to_update.attr('href', '#');
|
||||
links_to_update.addClass('disabled'); // mark link
|
||||
}
|
||||
}
|
||||
|
||||
function update_ongoing_sessions() {
|
||||
const agenda_rows = $('[data-slot-start-ts]');
|
||||
const now_moment = moment();
|
||||
const ongoing_rows = agenda_rows.filter(function () {
|
||||
return now_moment.isBetween(this.slot_start_ts, this.slot_end_ts);
|
||||
});
|
||||
const later_rows = agenda_rows.filter(function() { return now_moment.isBefore(this.slot_start_ts); });
|
||||
// Highlight ongoing based on the current time
|
||||
agenda_rows.removeClass("table-warning");
|
||||
ongoing_rows.addClass("table-warning");
|
||||
update_now_link(agenda_rows, ongoing_rows, later_rows); // update any "now-link" anchors
|
||||
}
|
||||
|
||||
// Update tooltips
|
||||
function update_tooltips() {
|
||||
const tooltips = $('.timetooltiptext');
|
||||
tooltips.filter(function () {
|
||||
return moment()
|
||||
.isBetween(this.ustart_ts, this.uend_ts);
|
||||
})
|
||||
.each(function () {
|
||||
$(this)
|
||||
.html(format_tooltip_table(this.start_ts, this.end_ts));
|
||||
});
|
||||
}
|
||||
|
||||
// Update all tooltips
|
||||
function update_tooltips_all() {
|
||||
const tooltips = $('.timetooltiptext');
|
||||
tooltips.each(function () {
|
||||
$(this)
|
||||
.html(format_tooltip_table(this.start_ts, this.end_ts));
|
||||
});
|
||||
}
|
||||
|
||||
// Update clock
|
||||
function update_clock() {
|
||||
$('span.current-time')
|
||||
.html(format_time(moment(), get_current_tz_cb(), 0));
|
||||
}
|
||||
|
||||
function urlParam(name) {
|
||||
const results = new RegExp('[\?&]' + name + '=([^&#]*)')
|
||||
.exec(window.location.href);
|
||||
if (results === null) {
|
||||
return null;
|
||||
} else {
|
||||
return results[1] || 0;
|
||||
}
|
||||
}
|
||||
|
||||
function init_timers(speedup) {
|
||||
speedup = speedup || 1;
|
||||
const fast_timer = 60000 / (speedup > 600 ? 600 : speedup);
|
||||
update_clock();
|
||||
update_ongoing_sessions();
|
||||
setInterval(function () { update_clock(); }, fast_timer);
|
||||
setInterval(function () { update_ongoing_sessions(); }, fast_timer);
|
||||
setInterval(function () { update_tooltips(); }, fast_timer);
|
||||
setInterval(function () { update_tooltips_all(); }, 3600000 / speedup);
|
||||
}
|
||||
|
||||
/***** make public interface available on window *****/
|
||||
window.initialize_moments = initialize_moments;
|
||||
window.add_tooltips = add_tooltips;
|
||||
window.update_times = update_times;
|
||||
window.urlParam = urlParam;
|
||||
window.init_timers = init_timers;
|
||||
|
||||
// set method used to find current time zone
|
||||
window.set_current_tz_cb = function (fn) {
|
||||
get_current_tz_cb = fn;
|
||||
};
|
||||
})();
|
|
@ -141,10 +141,8 @@ $(document)
|
|||
attachTo.append(menu.join(""));
|
||||
}
|
||||
|
||||
if (!("ontouchstart" in document.documentElement)) {
|
||||
$("ul.nav li.dropdown, ul.nav li.dropend")
|
||||
.on("mouseenter mouseleave", dropdown_hover);
|
||||
}
|
||||
$("ul.nav li.dropdown, ul.nav li.dropend")
|
||||
.on("mouseenter mouseleave", dropdown_hover);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
1
ietf/static/js/jquery-ui.js
vendored
1
ietf/static/js/jquery-ui.js
vendored
|
@ -1 +0,0 @@
|
|||
import "jquery-ui-dist/jquery-ui.js";
|
|
@ -1,188 +0,0 @@
|
|||
var verbose = 0;
|
||||
|
||||
// Given a name like "foo-ab" or "foo-X-and-Y", change it to the "list-of-room-names" format, "foo-a/foo-b".
|
||||
window.suffixmap = function (nm) {
|
||||
var andsuffix = /^(.*-)([^-]+)-and-(.*)$/;
|
||||
var andMatch = andsuffix.exec(nm);
|
||||
if (andMatch && andMatch[0] != '') {
|
||||
nm = andMatch[1] + andMatch[2] + "-" + andMatch[3];
|
||||
}
|
||||
// xyz-a/b/c => xyz-a/xyz-b/xyz-c
|
||||
var abcsuffix = /^(.*)-([a-h0-9]+)[-/]([a-h0-9]+)([-/][a-h0-9]+)?$/;
|
||||
var suffixMatch = abcsuffix.exec(nm);
|
||||
// if (verbose) console.log("nm=" + nm);
|
||||
if (suffixMatch && suffixMatch[0] != '') {
|
||||
// if (verbose) console.log("matched");
|
||||
nm = suffixMatch[1] + "-" + suffixMatch[2] + "/" +
|
||||
suffixMatch[1] + "-" + suffixMatch[3];
|
||||
// if (verbose) console.log("nm=>" + nm);
|
||||
if (suffixMatch[4] && suffixMatch[4] != '')
|
||||
nm += "/" + suffixMatch[1] + "-" + suffixMatch[4];
|
||||
// if (verbose) console.log("nm=>" + nm);
|
||||
}
|
||||
// xyz-abc => xyz-a/xyz-b/xyz-c
|
||||
abcsuffix = /^(.*)-([a-h])([a-h]+)([a-h])?$/;
|
||||
var suffixMatch = abcsuffix.exec(nm);
|
||||
if (suffixMatch && suffixMatch[0] != '') {
|
||||
nm = suffixMatch[1] + "-" + suffixMatch[2] + "/" +
|
||||
suffixMatch[1] + "-" + suffixMatch[3];
|
||||
if (suffixMatch[4] && suffixMatch[4] != '')
|
||||
nm += "/" + suffixMatch[1] + "-" + suffixMatch[4];
|
||||
}
|
||||
// if (verbose) console.log("suffixmap returning: " + nm);
|
||||
return nm;
|
||||
};
|
||||
|
||||
// Find the coordinates of a room or list of room names separated by "/".
|
||||
// Calls the function findroom() to get the coordinates for a specific room.
|
||||
window.roomcoords = function (nm) {
|
||||
if (!nm) return null;
|
||||
|
||||
if (nm.match("/")) {
|
||||
var nms = nm.split("/");
|
||||
var nm0 = findroom(nms[0]);
|
||||
if (!nm0) return null;
|
||||
for (var i = 1; i < nms.length; i++) {
|
||||
var nmi = roomcoords(nms[i]);
|
||||
if (!nmi) return null;
|
||||
if (nmi[0] < nm0[0]) nm0[0] = nmi[0];
|
||||
if (nmi[1] < nm0[1]) nm0[1] = nmi[1];
|
||||
if (nmi[2] > nm0[2]) nm0[2] = nmi[2];
|
||||
if (nmi[3] > nm0[3]) nm0[3] = nmi[3];
|
||||
}
|
||||
return [nm0[0], nm0[1], nm0[2], nm0[3], nm0[4], nm0[5]];
|
||||
} else {
|
||||
return findroom(nm);
|
||||
}
|
||||
};
|
||||
|
||||
// Place an arrow at the center of a given room name (or list of room names separated by "/").
|
||||
window.setarrow = function (nm) {
|
||||
for (var f = 0; f < floorlist.length; f++) {
|
||||
floor = floorlist[f];
|
||||
for (var i = 0; i < arrowsuffixlist.length; i++) {
|
||||
removearrow(arrowsuffixlist[i], floor);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < arguments.length; i += 2) {
|
||||
nm = roommap(arguments[i]);
|
||||
// if (verbose) console.log("nm=" + nm);
|
||||
var rooms = nm.split(/[|]/);
|
||||
for (var j = 0; j < rooms.length; j++) {
|
||||
var room = rooms[j];
|
||||
var ret = roomcoords(room);
|
||||
// if (verbose) console.log("roomcoords returned: " + ret);
|
||||
if (!ret) continue;
|
||||
|
||||
var left = ret[0],
|
||||
top = ret[1],
|
||||
right = ret[2],
|
||||
bottom = ret[3],
|
||||
floor = ret[4],
|
||||
width = ret[5],
|
||||
offsetleft = -25,
|
||||
offsettop = -25;
|
||||
// if (verbose) console.log("left=" + left + ", top=" + top + ", right=" + right + ", bottom=" + bottom + ", floor=" + floor + ", width=" + width);
|
||||
// calculate arrow position
|
||||
var arrow_left = (left + (right - left) / 2);
|
||||
var arrow_top = (top + (bottom - top) / 2);
|
||||
// scale the coordinates to match image scaling
|
||||
// if (verbose) console.log(floor + "-image");
|
||||
var img = document.getElementById(floor + "-image");
|
||||
var scale = img.width / width;
|
||||
arrow_left = arrow_left * scale;
|
||||
arrow_top = arrow_top * scale;
|
||||
var arrowdiv = floor + '-arrowdiv' + j;
|
||||
// if (verbose) console.log("arrowdiv: " + arrowdiv);
|
||||
var adiv = document.getElementById(arrowdiv);
|
||||
if (adiv) {
|
||||
adiv.style.left = arrow_left + offsetleft + "px";
|
||||
adiv.style.top = arrow_top + offsettop + "px";
|
||||
adiv.hidden = false;
|
||||
window.location.hash = floor;
|
||||
const url = new URL(location.href);
|
||||
url.searchParams.set('room', nm);
|
||||
history.pushState(null, '', url);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.removearrow = function (which, fl) {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
which = arguments[i];
|
||||
var arrowdiv = fl + '-arrowdiv' + (which ? which : "");
|
||||
var adiv = document.getElementById(arrowdiv);
|
||||
// if (verbose) console.log("looking for '" + arrowdiv + "'");
|
||||
if (adiv) {
|
||||
// if (verbose) console.log("adiv found");
|
||||
adiv.style.left = -500;
|
||||
adiv.style.top = -500;
|
||||
adiv.hidden = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.setarrowlist = function (which, names) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
setarrow(arguments[i], which);
|
||||
}
|
||||
};
|
||||
|
||||
// Create a QueryString object
|
||||
window.QueryString = function () {
|
||||
// get the query string, ignore the ? at the front.
|
||||
var querystring = location.search.substring(1);
|
||||
|
||||
// parse out name/value pairs separated via &
|
||||
var args = querystring.split('&');
|
||||
|
||||
// split out each name = value pair
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
var pair = args[i].split('=');
|
||||
|
||||
// Fix broken unescaping
|
||||
var temp = unescape(pair[0])
|
||||
.split('+');
|
||||
var name_ = temp.join(' ');
|
||||
|
||||
var value_ = '';
|
||||
if (typeof pair[1] == 'string') {
|
||||
temp = unescape(pair[1])
|
||||
.split('+');
|
||||
value_ = temp.join(' ');
|
||||
}
|
||||
|
||||
this[name_] = value_;
|
||||
}
|
||||
|
||||
this.get = function (nm, def) {
|
||||
var value_ = this[nm];
|
||||
if (value_ == null) return def;
|
||||
else return value_;
|
||||
};
|
||||
};
|
||||
|
||||
// Check the parameters for one named "room". If found, call setarrow(room).
|
||||
window.checkParams = function () {
|
||||
var querystring = new QueryString();
|
||||
var room = querystring.get("room");
|
||||
if (room && room != "") setarrow(room);
|
||||
};
|
||||
|
||||
// new functions
|
||||
window.located = function (loc) {
|
||||
if (loc.civic && loc.civic.ROOM) {
|
||||
// map from "TerminalRoom" to "terminal-room" as necessary.
|
||||
setarrow(loc.civic.ROOM.replace(/([a-z])([A-Z])/g, '$1-$2')
|
||||
.toLowerCase(), "-green");
|
||||
}
|
||||
};
|
||||
|
||||
// this needs to be called onload
|
||||
window.automaticarrow = function () {
|
||||
// if (navigator.geolocation) {
|
||||
// navigator.geolocation.getCurrentPosition(located);
|
||||
// }
|
||||
};
|
|
@ -1,637 +0,0 @@
|
|||
var color = {
|
||||
'app': { fg: "#008", bg: "#eef" },
|
||||
'art': { fg: "#808", bg: "#fef" },
|
||||
'gen': { fg: "#080", bg: "#efe" },
|
||||
'int': { fg: "#088", bg: "#eff" },
|
||||
'ops': { fg: "#800", bg: "#fee" },
|
||||
'rai': { fg: "#808", bg: "#fef" },
|
||||
'rtg': { fg: "#880", bg: "#ffe" },
|
||||
'sec': { fg: "#488", bg: "#dff" },
|
||||
'tsv': { fg: "#484", bg: "#dfd" },
|
||||
'irtf': { fg: "#448", bg: "#ddf" },
|
||||
'break': { fg: "#000", bg: "#fff" },
|
||||
}
|
||||
|
||||
var day = [
|
||||
'Saturday',
|
||||
'Sunday',
|
||||
'Monday',
|
||||
'Tuesday',
|
||||
'Wednesday',
|
||||
'Thursday',
|
||||
'Friday'
|
||||
];
|
||||
|
||||
var padding = 2;
|
||||
var border = 1;
|
||||
|
||||
//===========================================================================
|
||||
function compute_swimlanes(items) {
|
||||
var start_map = items.map(function (el, i) {
|
||||
return { day: parseInt(el.day, 10), start_time: el.start_time, index: i };
|
||||
});
|
||||
|
||||
start_map.sort(function (a, b) {
|
||||
if (a.day != b.day) { return (a.day - b.day); }
|
||||
return (a.start_time - b.start_time);
|
||||
});
|
||||
|
||||
var end_map = items.map(function (el, i) {
|
||||
return { day: parseInt(el.day, 10), end_time: el.end_time, index: i };
|
||||
});
|
||||
|
||||
end_map.sort(function (a, b) {
|
||||
if (a.day != b.day) { return (a.day - b.day); }
|
||||
return (a.end_time - b.end_time);
|
||||
});
|
||||
|
||||
var si = 0; // start index
|
||||
var ei = 0; // end index
|
||||
var overlap = 0;
|
||||
var max_lanes = 0;
|
||||
var next_lane = [];
|
||||
|
||||
var start_overlap = si;
|
||||
while (si < items.length) {
|
||||
var start_day_change = false;
|
||||
while (!start_day_change &&
|
||||
si < items.length &&
|
||||
start_map[si].start_time < end_map[ei].end_time) {
|
||||
overlap++;
|
||||
// Set item.lane - the lane in which it is located (cf. item.lanes)
|
||||
if (next_lane.length > 0) {
|
||||
items[start_map[si].index].lane = next_lane.shift();
|
||||
} else {
|
||||
items[start_map[si].index].lane = max_lanes;
|
||||
max_lanes++;
|
||||
}
|
||||
start_day_change = (si + 1 == items.length ||
|
||||
start_map[si].day != start_map[si + 1].day);
|
||||
si++;
|
||||
}
|
||||
var end_day_change = false;
|
||||
while (ei < items.length &&
|
||||
!end_day_change &&
|
||||
(start_day_change ||
|
||||
si == items.length ||
|
||||
start_map[si].start_time >= end_map[ei].end_time)) {
|
||||
next_lane.push(items[end_map[ei].index].lane);
|
||||
overlap--;
|
||||
end_day_change = (ei + 1 == items.length ||
|
||||
end_map[ei].day != end_map[ei + 1].day);
|
||||
ei++;
|
||||
}
|
||||
if (overlap == 0) {
|
||||
// set item.lanes - the number of lanes it covers when expanded (cf. item.lane)
|
||||
for (var i = start_overlap; i < si; i++) {
|
||||
items[start_map[i].index].lanes = max_lanes;
|
||||
}
|
||||
max_lanes = 0;
|
||||
next_lane = [];
|
||||
start_overlap = si;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
function is_visible(filter_params) {
|
||||
// Returns a method to filter objects for visibility
|
||||
// Accepts show and hide filters. No longer accepts
|
||||
// '@<state>' to show sessions in a particular state (e.g., @bof).
|
||||
return function (item) {
|
||||
var filter_keywords = item.filter_keywords.split(',');
|
||||
return (!agenda_filter.keyword_match(filter_keywords, filter_params.hide) &&
|
||||
agenda_filter.keyword_match(filter_keywords, filter_params.show));
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
window.draw_calendar = function (items, filter_params) {
|
||||
var width = document.body.clientWidth;
|
||||
var height = document.body.clientHeight;
|
||||
|
||||
var visible_items = items;
|
||||
if (agenda_filter.filtering_is_enabled(filter_params)) {
|
||||
visible_items = visible_items.filter(is_visible(filter_params));
|
||||
}
|
||||
|
||||
var start_day;
|
||||
var day_start;
|
||||
if (visible_items.length > 0) {
|
||||
start_day = visible_items[0].day;
|
||||
day_start = visible_items[0].start_time;
|
||||
} else {
|
||||
// fallback in case all items were filtered
|
||||
start_day = items[0].day;
|
||||
day_start = items[0].start_time;
|
||||
}
|
||||
var end_day = start_day;
|
||||
var day_end = 0;
|
||||
|
||||
compute_swimlanes(visible_items);
|
||||
|
||||
/* Find our boundaries */
|
||||
visible_items.forEach(function (item) {
|
||||
day_start = Math.min(day_start, item.start_time);
|
||||
day_end = Math.max(day_end, item.end_time);
|
||||
start_day = Math.min(start_day, item.day)
|
||||
end_day = Math.max(start_day, item.day)
|
||||
});
|
||||
|
||||
var header_height = height * 0.05;
|
||||
|
||||
var num_days = end_day - start_day + 1;
|
||||
var num_minutes = day_end - day_start;
|
||||
var day_width = width / num_days;
|
||||
var minute_height = (height - header_height) / num_minutes;
|
||||
|
||||
while (document.body.firstChild) {
|
||||
document.body.removeChild(document.body.firstChild);
|
||||
}
|
||||
|
||||
var j = start_day;
|
||||
for (var i = 0; i < num_days; i++) {
|
||||
//-----------------------------------------------------------------
|
||||
// Draw weekday name
|
||||
//-----------------------------------------------------------------
|
||||
var e = document.createElement("div");
|
||||
|
||||
e.style.border = "solid";
|
||||
e.style.borderWidth = border;
|
||||
|
||||
e.style.background = "#2647a0";
|
||||
e.style.color = "#fff";
|
||||
e.style.borderColor = "#000 #fff";
|
||||
e.style.borderColor = "#2647a0 #2647a0 #000 #2647a0";
|
||||
|
||||
e.style.display = "block";
|
||||
e.style.overflow = "hidden";
|
||||
e.style.position = "absolute";
|
||||
|
||||
e.style.top = 0;
|
||||
e.style.left = i * day_width;
|
||||
e.style.width = day_width - 2 * (padding + border);
|
||||
e.style.height = header_height;
|
||||
|
||||
e.style.margin = 0;
|
||||
e.style.padding = padding;
|
||||
e.style.fontFamily = "sans-serif";
|
||||
e.style.fontSize = header_height * 0.6;
|
||||
|
||||
e.style.textAlign = "center";
|
||||
|
||||
e.classList.add('agenda-weekview-day'); // for cypress tests
|
||||
|
||||
var div = document.createElement("div");
|
||||
div.appendChild(document.createTextNode(day[((j + 1) % 7 + 7) % 7])); // js % is remainder, not modulus
|
||||
j++;
|
||||
e.appendChild(div);
|
||||
document.body.appendChild(e);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// Draw weekday column border
|
||||
//-----------------------------------------------------------------
|
||||
e = document.createElement("div");
|
||||
|
||||
e.style.border = "solid";
|
||||
e.style.borderWidth = border;
|
||||
|
||||
e.style.background = "#fff";
|
||||
e.style.color = "#000";
|
||||
e.style.borderColor = "#fff #000";
|
||||
|
||||
e.style.display = "block";
|
||||
e.style.overflow = "hidden";
|
||||
e.style.position = "absolute";
|
||||
|
||||
e.style.top = header_height;
|
||||
e.style.left = i * day_width;
|
||||
e.style.width = day_width - 2 * (padding + border);
|
||||
e.style.height = height -
|
||||
2 * (padding + border) - header_height;
|
||||
|
||||
e.style.margin = 0;
|
||||
e.style.padding = padding;
|
||||
|
||||
e.classList.add('agenda-weekview-column'); // for cypress tests
|
||||
|
||||
document.body.appendChild(e);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
// Draw a block for each meeting
|
||||
//-----------------------------------------------------------------
|
||||
visible_items.forEach(function (item) {
|
||||
var sess_width = day_width / item.lanes;
|
||||
var sess_height = ((item.end_time - item.start_time) * minute_height) -
|
||||
2 * (padding + border);
|
||||
var day_left = ((item.day - start_day) * day_width);
|
||||
var sess_left = day_left + sess_width * item.lane;
|
||||
var sess_top = ((item.start_time - day_start) * minute_height) + header_height;
|
||||
|
||||
sess_width = sess_width - 2 * (padding + border);
|
||||
|
||||
var e = document.createElement("div");
|
||||
e.style.border = "solid";
|
||||
e.style.borderWidth = border;
|
||||
|
||||
if (item.area && color[item.area]) {
|
||||
e.style.background = color[item.area].bg;
|
||||
e.style.color = color[item.area].fg;
|
||||
e.style.borderColor = color[item.area].fg;
|
||||
} else {
|
||||
if (item.area) {
|
||||
console.log("No color for " + item.area + ": using default");
|
||||
}
|
||||
e.style.background = "#e0e0e0";
|
||||
e.style.color = "#000000";
|
||||
e.style.borderColor = "#000000";
|
||||
}
|
||||
|
||||
e.style.display = "block";
|
||||
e.style.overflow = "hidden";
|
||||
e.style.position = "absolute";
|
||||
e.style.top = sess_top;
|
||||
e.style.left = sess_left;
|
||||
e.style.width = sess_width;
|
||||
e.style.height = sess_height;
|
||||
e.style.margin = 0;
|
||||
e.style.padding = padding;
|
||||
e.style.fontFamily = "sans-serif";
|
||||
e.style.fontSize = "8pt";
|
||||
e.item = item;
|
||||
|
||||
// for cypress tests
|
||||
e.classList.add('agenda-weekview-meeting');
|
||||
if (day_width !== sess_width) {
|
||||
e.classList.add('agenda-weekview-meeting-mini');
|
||||
}
|
||||
|
||||
e.onmouseenter = function () {
|
||||
resize(e, sess_top, day_left,
|
||||
day_width - 2 * (padding + border),
|
||||
sess_height, true)
|
||||
};
|
||||
|
||||
e.onmouseleave = function () { resize(e, sess_top, sess_left, sess_width, sess_height, false) };
|
||||
|
||||
if (item.agenda) {
|
||||
e.onclick = function () { maximize(e) };
|
||||
e.style.cursor = "pointer";
|
||||
}
|
||||
|
||||
var div = document.createElement("div");
|
||||
div.appendChild(document.createTextNode(item.time));
|
||||
div.appendChild(document.createElement("br"));
|
||||
|
||||
var label = item.name;
|
||||
if (label.length === 0) {
|
||||
label = "Free Slot";
|
||||
}
|
||||
if (item.group && color[item.area]) {
|
||||
label = label + " (" + item.group + ")";
|
||||
}
|
||||
|
||||
var bold = document.createElement("span");
|
||||
bold.appendChild(document.createTextNode(label));
|
||||
bold.style.fontWeight = "bold";
|
||||
div.appendChild(bold);
|
||||
|
||||
if (item.room) {
|
||||
div.appendChild(document.createElement("br"));
|
||||
var italics = document.createElement("span");
|
||||
italics.appendChild(document.createTextNode(item.room));
|
||||
italics.style.fontStyle = "oblique";
|
||||
div.appendChild(italics);
|
||||
}
|
||||
|
||||
e.appendChild(div);
|
||||
|
||||
document.body.appendChild(e);
|
||||
});
|
||||
|
||||
// Div to indicate rendering has occurred, for testing purposes.
|
||||
var elt = document.createElement('div');
|
||||
elt.id = 'wv-end';
|
||||
document.body.appendChild(elt);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Note: if "to_fit" is true and the text won't fit in the dimensions
|
||||
// provided, then the height parameter is ignored, and the item is resized to
|
||||
// be tall enough to contain the entire contents
|
||||
|
||||
var animation_counter = 0;
|
||||
|
||||
function resize(div, top, left, width, height, to_fit) {
|
||||
var from_top = (div.style.top.replace("px", ""));
|
||||
var from_left = (div.style.left.replace("px", ""));
|
||||
var from_width = (div.style.width.replace("px", ""));
|
||||
var from_height = (div.style.height.replace("px", ""));
|
||||
|
||||
// If we're fitting the height to the content, and there is overflow,
|
||||
// calculate the new (larger) height
|
||||
if (to_fit) {
|
||||
div.style.removeProperty("height");
|
||||
div.style.width = width;
|
||||
var clientHeight = div.clientHeight;
|
||||
div.style.height = from_height;
|
||||
div.style.width = from_width;
|
||||
if (clientHeight > height) {
|
||||
height = clientHeight;
|
||||
}
|
||||
}
|
||||
|
||||
var animationId = "animation-" + (animation_counter++);
|
||||
|
||||
// Move the element to the front
|
||||
div.style.zIndex = animation_counter;
|
||||
|
||||
var style = document.createElement('style');
|
||||
style.textContent = "@keyframes " + animationId + " {" +
|
||||
" from {" +
|
||||
" top: " + from_top + ";" +
|
||||
" left: " + from_left + ";" +
|
||||
" width: " + from_width + ";" +
|
||||
" height: " + from_height + ";" +
|
||||
" }" +
|
||||
" to {" +
|
||||
" top: " + top + ";" +
|
||||
" left: " + left + ";" +
|
||||
" width: " + width + ";" +
|
||||
" height: " + height + ";" +
|
||||
" }" +
|
||||
"}";
|
||||
document.head.appendChild(style);
|
||||
|
||||
var callback = function () {
|
||||
div.removeEventListener('animationend', callback);
|
||||
document.head.removeChild(style);
|
||||
|
||||
div.style.top = top;
|
||||
div.style.left = left;
|
||||
div.style.width = width;
|
||||
div.style.height = height;
|
||||
|
||||
if (div.callback) {
|
||||
div.callback();
|
||||
div.callback = undefined;
|
||||
}
|
||||
};
|
||||
|
||||
div.addEventListener('animationend', callback, false);
|
||||
|
||||
div.style.animationName = animationId;
|
||||
div.style.animationDuration = "0.25s";
|
||||
div.style.animationIterationCount = "1";
|
||||
div.style.animationFillMode = "forwards";
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
function finish_maximize(e) {
|
||||
if (!e.item.agenda) {
|
||||
console.log("Element has no agenda: " + JSON.stringify(e.item));
|
||||
return;
|
||||
}
|
||||
|
||||
e.insertBefore(document.createElement("br"), e.firstChild);
|
||||
|
||||
var i = document.createElement("i");
|
||||
i.classList.add('bi', 'bi-x-lg');
|
||||
i.style.cssFloat = "right";
|
||||
i.onclick = function () { minimize(e); };
|
||||
i.style.cursor = "pointer";
|
||||
e.insertBefore(i, e.firstChild);
|
||||
|
||||
var h = document.createElement("span");
|
||||
h.appendChild(document.createTextNode(e.item.dayname));
|
||||
h.style.fontWeight = "bold";
|
||||
e.insertBefore(h, e.firstChild);
|
||||
e.style.fontSize = "10pt";
|
||||
|
||||
var tmp = e.style.height;
|
||||
e.style.removeProperty("height");
|
||||
var used_height = e.clientHeight;
|
||||
e.style.height = tmp;
|
||||
|
||||
var frame = document.createElement("iframe");
|
||||
frame.setAttribute("src", e.item.agenda);
|
||||
|
||||
frame.style.position = "absolute";
|
||||
frame.style.left = 8;
|
||||
frame.style.width = e.clientWidth - 16 - 2 * (padding + border);
|
||||
frame.style.top = used_height + 8;
|
||||
frame.style.height = e.clientHeight - used_height - 16 - 2 * (padding + border);
|
||||
|
||||
frame.style.background = "#fff";
|
||||
frame.style.overflow = "auto";
|
||||
frame.id = "agenda";
|
||||
|
||||
frame.style.border = e.style.border;
|
||||
frame.style.borderWidth = border;
|
||||
frame.style.padding = padding;
|
||||
frame.style.borderColor = e.style.borderColor;
|
||||
|
||||
e.appendChild(frame);
|
||||
|
||||
e.keyHandler = function (event) {
|
||||
console.log(event.code);
|
||||
if (event.code === "Escape") {
|
||||
minimize(e);
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('keydown', e.keyHandler, false);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
function finish_minimize(e) {
|
||||
e.onmouseenter = e.oldmouseenter;
|
||||
e.onmouseleave = e.oldmouseleave;
|
||||
e.oldmouseenter = undefined;
|
||||
e.oldmouseleave = undefined;
|
||||
e.style.cursor = "pointer";
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
function maximize(e) {
|
||||
if (e.onmouseenter) {
|
||||
e.oldmouseenter = e.onmouseenter;
|
||||
e.oldmouseleave = e.onmouseleave;
|
||||
e.onmouseenter = undefined;
|
||||
e.onmouseleave = undefined;
|
||||
e.style.cursor = "auto";
|
||||
e.callback = function () { finish_maximize(e); }
|
||||
resize(e, 0, 0,
|
||||
document.body.clientWidth - 2 * (padding + border),
|
||||
document.body.clientHeight - 2 * (padding + border), false);
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
||||
function minimize(e) {
|
||||
var agenda = document.getElementById("agenda");
|
||||
if (agenda) {
|
||||
e.removeChild(agenda);
|
||||
}
|
||||
document.removeEventListener('keydown', e.keyHandler, false);
|
||||
e.callback = function () { finish_minimize(e); };
|
||||
e.oldmouseleave();
|
||||
e.removeChild(e.firstChild);
|
||||
e.removeChild(e.firstChild);
|
||||
e.removeChild(e.firstChild);
|
||||
e.style.fontSize = "8pt";
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
function get_first_item(items, type) {
|
||||
var earliest;
|
||||
for (var ii = 0; ii < items.length; ii++) {
|
||||
var this_item = items[ii];
|
||||
if (type && (this_item.type !== type)) {
|
||||
continue;
|
||||
}
|
||||
// Update earliest if we don't have an earliest item yet or this_item is earlier
|
||||
if (!earliest || (items[ii].utc_time < earliest.utc_time)) {
|
||||
earliest = items[ii];
|
||||
}
|
||||
}
|
||||
return earliest;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
window.prepare_items = function (items, timezone_name) {
|
||||
/**
|
||||
* @param item item to render
|
||||
* @param day day of meeting
|
||||
* @param start_time starting time in minutes since start-of-day
|
||||
* @param duration duration in minutes
|
||||
* @param formatted_time time label for rendered event
|
||||
* @param dayname day name label for rendered event
|
||||
* @returns {{area, end_time: *, type, agenda, room, start_time, dayname, name, time, filter_keywords: ([string]|*), day, key, group}}
|
||||
*/
|
||||
function make_display_item(item, day, start_time, duration, formatted_time, dayname) {
|
||||
return {
|
||||
name: item.name,
|
||||
group: item.group,
|
||||
area: item.area,
|
||||
room: item.room,
|
||||
agenda: item.agenda,
|
||||
key: item.key,
|
||||
type: item.type,
|
||||
filter_keywords: item.filter_keywords,
|
||||
day: day,
|
||||
start_time: start_time,
|
||||
end_time: start_time + duration,
|
||||
time: formatted_time,
|
||||
dayname: dayname
|
||||
}
|
||||
}
|
||||
|
||||
/* Ported from Django view, which had the following comment:
|
||||
* Only show assignments from the traditional meeting "week" (Sat-Fri).
|
||||
* We'll determine this using the saturday before the first scheduled regular session. */
|
||||
var first_session = get_first_item(items, 'Regular');
|
||||
if (!first_session) {
|
||||
first_session = get_first_item(items); // any type
|
||||
}
|
||||
var first_session_time = moment(first_session.utc_time)
|
||||
.utc();
|
||||
if (timezone_name) {
|
||||
first_session_time.tz(timezone_name); // mutates the moment
|
||||
}
|
||||
|
||||
// Moment.js day() uses 0 == Sunday, 6 == Saturday
|
||||
days_since_saturday = first_session_time.day() - 6;
|
||||
if (days_since_saturday < 0) {
|
||||
days_since_saturday += 7;
|
||||
}
|
||||
saturday_before = first_session_time.clone()
|
||||
.startOf('day')
|
||||
.subtract(days_since_saturday, 'days');
|
||||
|
||||
var display_items = [];
|
||||
for (var ii = 0; ii < items.length; ii++) {
|
||||
var this_item = items[ii];
|
||||
|
||||
/* It's possible an event overlaps the moment of a daylight savings shift.
|
||||
* Calculate the end_moment in utc() time, which has no DST. Once we switch
|
||||
* to a time zone, end time minus start time may not equal duration. */
|
||||
var start_moment = moment(this_item.utc_time)
|
||||
.utc();
|
||||
var end_moment = start_moment.clone()
|
||||
.add(this_item.duration, 'seconds');
|
||||
if (timezone_name) {
|
||||
start_moment.tz(timezone_name);
|
||||
end_moment.tz(timezone_name);
|
||||
}
|
||||
// Avoid off-by-one day number calculations if a session ends at midnight
|
||||
var just_before_end_moment = end_moment.clone()
|
||||
.subtract(1, 'millisecond');
|
||||
|
||||
var start_day = start_moment.diff(saturday_before, 'days') - 1; // shift so sunday = 0
|
||||
var end_day = just_before_end_moment.diff(saturday_before, 'days') - 1; // shift so sunday = 0
|
||||
|
||||
/* Generate display item or items
|
||||
*
|
||||
* Around DST switchover, days may be 23 or 25 hours long instead of 24 hours, and events
|
||||
* may end at a clock time that is before they started. To prevent problems, do not do
|
||||
* direct math between start_moment and end_moment.
|
||||
*/
|
||||
const formatted_time = start_moment.format('HHmm') + '-' + end_moment.format('HHmm');
|
||||
const dayname = start_moment.format('dddd, ')
|
||||
.toUpperCase() +
|
||||
start_moment.format('MMMM D, Y');
|
||||
if (start_day === end_day) {
|
||||
// one day - add a single display item
|
||||
const start_of_day = start_moment.clone().startOf('day');
|
||||
display_items.push(make_display_item(
|
||||
this_item,
|
||||
start_day,
|
||||
start_moment.diff(start_of_day, 'minutes'),
|
||||
this_item.duration / 60,
|
||||
formatted_time,
|
||||
dayname
|
||||
));
|
||||
} else {
|
||||
// split across days - add multiple items
|
||||
for (var day = start_day; day <= end_day; day++) {
|
||||
let start_time;
|
||||
let duration;
|
||||
if (day === start_day) {
|
||||
// First day of session - start at correct start time position
|
||||
const start_of_day = start_moment.clone().startOf('day');
|
||||
const end_of_day = start_moment.clone().endOf('day');
|
||||
start_time = start_moment.diff(start_of_day, 'minutes');
|
||||
duration = end_of_day.diff(start_moment, 'minutes');
|
||||
} else {
|
||||
// Not the first day of session
|
||||
const start_of_day = just_before_end_moment.clone().startOf('day');
|
||||
start_time = 0;
|
||||
if (day === end_day) {
|
||||
// Last day of session - end at correct end time position
|
||||
duration = just_before_end_moment.diff(start_of_day, 'minutes');
|
||||
} else {
|
||||
// Not the last day of the session - end at the end of the day
|
||||
const end_of_day = just_before_end_moment.clone().endOf('day');
|
||||
duration = end_of_day.clone().diff(start_of_day, 'minutes');
|
||||
}
|
||||
}
|
||||
const display_item = make_display_item(this_item, day, start_time, duration, formatted_time, dayname);
|
||||
if (day !== start_day) {
|
||||
display_item.name += " - continued";
|
||||
}
|
||||
display_items.push(display_item);
|
||||
}
|
||||
}
|
||||
}
|
||||
return display_items;
|
||||
}
|
|
@ -6,7 +6,7 @@ PRODID:-//IETF//datatracker.ietf.org ical agenda//EN
|
|||
UID:ietf-{{schedule.meeting.number}}-{{item.timeslot.pk}}-{{item.session.group.acronym}}
|
||||
SUMMARY:{% if item.session.name %}{{item.session.name|ics_esc}}{% else %}{{item.session.group_at_the_time.acronym|lower}} - {{item.session.group_at_the_time.name}}{%endif%}{% if item.session.agenda_note %} ({{item.session.agenda_note}}){% endif %}
|
||||
{% if item.timeslot.show_location %}LOCATION:{{item.timeslot.get_location}}
|
||||
STATUS:{{item.session.ical_status}}
|
||||
{% endif %}STATUS:{{item.session.ical_status}}
|
||||
CLASS:PUBLIC
|
||||
DTSTART{% ics_date_time item.timeslot.local_start_time schedule.meeting.time_zone %}
|
||||
DTEND{% ics_date_time item.timeslot.local_end_time schedule.meeting.time_zone %}
|
||||
|
@ -29,4 +29,4 @@ DESCRIPTION:{{item.timeslot.name|ics_esc}}\n{% if item.session.agenda_note %}
|
|||
\n{# link agenda for ietf meetings #}
|
||||
See in schedule: {% absurl 'agenda' num=schedule.meeting.number %}#row-{{ item.slug }}\n{% endif %}
|
||||
END:VEVENT
|
||||
{% endif %}{% endfor %}END:VCALENDAR{% endcache %}{% endtimezone %}{% endautoescape %}
|
||||
{% endfor %}END:VCALENDAR{% endcache %}{% endtimezone %}{% endautoescape %}
|
||||
|
|
|
@ -516,7 +516,7 @@
|
|||
</a>
|
||||
{% endif %}
|
||||
{% if show_send_full_url %}
|
||||
<div class="alert alert-danger my-3">
|
||||
<div class="alert alert-info my-3">
|
||||
<p>
|
||||
You are not allowed to modify or cancel this submission. You can
|
||||
only modify or cancel this submission from the same URL you were
|
||||
|
@ -535,7 +535,7 @@
|
|||
<form class="mt-3" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="action" value="sendfullurl">
|
||||
<button class="btn btn-danger" type="submit">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
Request full access URL
|
||||
</button>
|
||||
</form>
|
||||
|
|
|
@ -176,6 +176,7 @@ def vnu_filter_message(msg, filter_db_issues, filter_test_issues):
|
|||
"True if the vnu message is a known false positive"
|
||||
if re.search(
|
||||
r"""^Document\ uses\ the\ Unicode\ Private\ Use\ Area|
|
||||
^Trailing\ slash\ on\ void\ elements\ has\ no\ effect|
|
||||
^Element\ 'h.'\ not\ allowed\ as\ child\ of\ element\ 'pre'""",
|
||||
msg["message"],
|
||||
flags=re.VERBOSE,
|
||||
|
|
|
@ -118,7 +118,7 @@ def assert_ical_response_is_valid(test_inst, response, expected_event_summaries=
|
|||
expected_event_uids=None, expected_event_count=None):
|
||||
"""Validate an HTTP response containing iCal data
|
||||
|
||||
Based on RFC2445, but not exhaustive by any means. Assumes a single iCalendar object. Checks that
|
||||
Based on RFC5545, but not exhaustive by any means. Assumes a single iCalendar object. Checks that
|
||||
expected_event_summaries/_uids are found, but other events are allowed to be present. Specify the
|
||||
expected_event_count if you want to reject additional events. If any of these are None,
|
||||
the check for that property is skipped.
|
||||
|
@ -132,18 +132,43 @@ def assert_ical_response_is_valid(test_inst, response, expected_event_summaries=
|
|||
test_inst.assertContains(response, 'VERSION', count=1)
|
||||
|
||||
# Validate event objects
|
||||
event_count = 0
|
||||
uids_found = set()
|
||||
summaries_found = set()
|
||||
got_begin = False
|
||||
cur_event_props = set()
|
||||
for line_num, line in enumerate(response.content.decode().split("\n")):
|
||||
line = line.rstrip()
|
||||
if line == 'BEGIN:VEVENT':
|
||||
test_inst.assertFalse(got_begin, f"Nested BEGIN:VEVENT found on line {line_num + 1}")
|
||||
got_begin = True
|
||||
elif line == 'END:VEVENT':
|
||||
test_inst.assertTrue(got_begin, f"Unexpected END:VEVENT on line {line_num + 1}")
|
||||
test_inst.assertIn("uid", cur_event_props, f"Found END:VEVENT without UID on line {line_num + 1}")
|
||||
got_begin = False
|
||||
cur_event_props.clear()
|
||||
event_count += 1
|
||||
elif got_begin:
|
||||
# properties in an event
|
||||
if line.startswith("UID:"):
|
||||
# mandatory, not more than once
|
||||
test_inst.assertNotIn("uid", cur_event_props, f"Two UID properties in single event on line {line_num + 1}")
|
||||
cur_event_props.add("uid")
|
||||
uids_found.add(line.split(":", 1)[1])
|
||||
elif line.startswith("SUMMARY:"):
|
||||
# optional, not more than once
|
||||
test_inst.assertNotIn("summary", cur_event_props, f"Two SUMMARY properties in single event on line {line_num + 1}")
|
||||
cur_event_props.add("summary")
|
||||
summaries_found.add(line.split(":", 1)[1])
|
||||
|
||||
if expected_event_summaries is not None:
|
||||
for summary in expected_event_summaries:
|
||||
test_inst.assertContains(response, 'SUMMARY:' + summary)
|
||||
test_inst.assertCountEqual(summaries_found, set(expected_event_summaries))
|
||||
|
||||
if expected_event_uids is not None:
|
||||
for uid in expected_event_uids:
|
||||
test_inst.assertContains(response, 'UID:' + uid)
|
||||
test_inst.assertCountEqual(uids_found, set(expected_event_uids))
|
||||
|
||||
if expected_event_count is not None:
|
||||
test_inst.assertContains(response, 'BEGIN:VEVENT', count=expected_event_count)
|
||||
test_inst.assertContains(response, 'END:VEVENT', count=expected_event_count)
|
||||
test_inst.assertContains(response, 'UID', count=expected_event_count)
|
||||
test_inst.assertEqual(event_count, expected_event_count)
|
||||
|
||||
# make sure no doubled colons after timestamp properties
|
||||
test_inst.assertNotContains(response, 'DTSTART::')
|
||||
|
|
48
package.json
48
package.json
|
@ -7,34 +7,33 @@
|
|||
"legacy:build": "parcel build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fullcalendar/bootstrap5": "6.1.4",
|
||||
"@fullcalendar/core": "6.1.4",
|
||||
"@fullcalendar/daygrid": "6.1.4",
|
||||
"@fullcalendar/icalendar": "6.1.4",
|
||||
"@fullcalendar/interaction": "6.1.4",
|
||||
"@fullcalendar/list": "6.1.4",
|
||||
"@fullcalendar/luxon2": "6.1.4",
|
||||
"@fullcalendar/timegrid": "6.1.4",
|
||||
"@fullcalendar/vue3": "6.1.4",
|
||||
"@popperjs/core": "2.11.6",
|
||||
"@fullcalendar/bootstrap5": "6.1.5",
|
||||
"@fullcalendar/core": "6.1.5",
|
||||
"@fullcalendar/daygrid": "6.1.5",
|
||||
"@fullcalendar/icalendar": "6.1.5",
|
||||
"@fullcalendar/interaction": "6.1.5",
|
||||
"@fullcalendar/list": "6.1.5",
|
||||
"@fullcalendar/luxon2": "6.1.5",
|
||||
"@fullcalendar/timegrid": "6.1.5",
|
||||
"@fullcalendar/vue3": "6.1.5",
|
||||
"@popperjs/core": "2.11.7",
|
||||
"@twuni/emojify": "1.0.2",
|
||||
"bootstrap": "5.2.3",
|
||||
"bootstrap-icons": "1.10.3",
|
||||
"browser-fs-access": "0.33.0",
|
||||
"caniuse-lite": "1.0.30001451",
|
||||
"d3": "7.8.2",
|
||||
"caniuse-lite": "1.0.30001469",
|
||||
"d3": "7.8.3",
|
||||
"file-saver": "2.0.5",
|
||||
"highcharts": "10.3.3",
|
||||
"ical.js": "1.5.0",
|
||||
"jquery": "3.6.3",
|
||||
"jquery-ui-dist": "1.13.2",
|
||||
"jquery": "3.6.4",
|
||||
"js-cookie": "3.0.1",
|
||||
"list.js": "2.3.1",
|
||||
"lodash": "4.17.21",
|
||||
"lodash-es": "4.17.21",
|
||||
"luxon": "3.3.0",
|
||||
"moment": "2.29.4",
|
||||
"moment-timezone": "0.5.41",
|
||||
"moment-timezone": "0.5.42",
|
||||
"ms": "2.1.3",
|
||||
"murmurhash-js": "1.0.0",
|
||||
"naive-ui": "2.34.3",
|
||||
|
@ -57,24 +56,24 @@
|
|||
"@parcel/transformer-inline-string": "2.8.3",
|
||||
"@parcel/transformer-sass": "2.8.3",
|
||||
"@rollup/pluginutils": "5.0.2",
|
||||
"@vitejs/plugin-vue": "4.0.0",
|
||||
"@vitejs/plugin-vue": "4.1.0",
|
||||
"browserlist": "latest",
|
||||
"c8": "7.13.0",
|
||||
"eslint": "8.35.0",
|
||||
"eslint": "8.36.0",
|
||||
"eslint-config-standard": "17.0.0",
|
||||
"eslint-plugin-cypress": "2.12.1",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
"eslint-plugin-n": "15.6.1",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"eslint-plugin-vue": "9.9.0",
|
||||
"html-validate": "7.13.2",
|
||||
"eslint-plugin-vue": "9.10.0",
|
||||
"html-validate": "7.13.3",
|
||||
"jquery-migrate": "3.4.1",
|
||||
"parcel": "2.8.3",
|
||||
"pug": "3.0.2",
|
||||
"sass": "1.58.3",
|
||||
"sass": "1.60.0",
|
||||
"seedrandom": "3.0.5",
|
||||
"vite": "4.1.4"
|
||||
"vite": "4.2.1"
|
||||
},
|
||||
"targets": {
|
||||
"ietf": {
|
||||
|
@ -85,11 +84,9 @@
|
|||
"ietf/static/css/document_html_referenced.scss",
|
||||
"ietf/static/css/document_html_txt.scss",
|
||||
"ietf/static/css/ietf.scss",
|
||||
"ietf/static/css/jquery-ui.scss",
|
||||
"ietf/static/css/liaisons.css",
|
||||
"ietf/static/css/list.scss",
|
||||
"ietf/static/css/select2.scss",
|
||||
"ietf/static/images/arrow-ani.webp",
|
||||
"ietf/static/images/iab-logo-card.png",
|
||||
"ietf/static/images/iab-logo.svg",
|
||||
"ietf/static/images/iesg-draft-state-diagram.png",
|
||||
|
@ -112,8 +109,6 @@
|
|||
"ietf/static/images/irtf-logo.svg",
|
||||
"ietf/static/js/agenda_filter.js",
|
||||
"ietf/static/js/agenda_materials.js",
|
||||
"ietf/static/js/agenda_personalize.js",
|
||||
"ietf/static/js/agenda_timezone.js",
|
||||
"ietf/static/js/complete-review.js",
|
||||
"ietf/static/js/create_timeslot.js",
|
||||
"ietf/static/js/create_timeslot.js",
|
||||
|
@ -135,7 +130,6 @@
|
|||
"ietf/static/js/ietf.js",
|
||||
"ietf/static/js/ipr-edit.js",
|
||||
"ietf/static/js/ipr-search.js",
|
||||
"ietf/static/js/jquery-ui.js",
|
||||
"ietf/static/js/js-cookie.js",
|
||||
"ietf/static/js/liaisons.js",
|
||||
"ietf/static/js/list.js",
|
||||
|
@ -144,7 +138,6 @@
|
|||
"ietf/static/js/meeting-interim-request.js",
|
||||
"ietf/static/js/moment.js",
|
||||
"ietf/static/js/password_strength.js",
|
||||
"ietf/static/js/room_params.js",
|
||||
"ietf/static/js/select2.js",
|
||||
"ietf/static/js/session_details_form.js",
|
||||
"ietf/static/js/sortable.js",
|
||||
|
@ -155,7 +148,6 @@
|
|||
"ietf/static/js/upcoming.js",
|
||||
"ietf/static/js/upload-material.js",
|
||||
"ietf/static/js/upload_bofreq.js",
|
||||
"ietf/static/js/week-view.js",
|
||||
"ietf/static/js/zxcvbn.js"
|
||||
]
|
||||
},
|
||||
|
|
2112
playwright/package-lock.json
generated
2112
playwright/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -8,19 +8,19 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "1.31.2",
|
||||
"eslint": "8.28.0",
|
||||
"eslint": "8.35.0",
|
||||
"eslint-config-standard": "17.0.0",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
"eslint-plugin-n": "15.6.1",
|
||||
"eslint-plugin-node": "11.1.0",
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"npm-check-updates": "16.4.1"
|
||||
"npm-check-updates": "16.7.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"@faker-js/faker": "7.6.0",
|
||||
"lodash": "4.17.21",
|
||||
"lodash-es": "4.17.21",
|
||||
"luxon": "3.2.1",
|
||||
"luxon": "3.3.0",
|
||||
"ms": "2.1.3",
|
||||
"seedrandom": "3.0.5",
|
||||
"slugify": "1.6.5"
|
||||
|
|
494
yarn.lock
494
yarn.lock
|
@ -83,161 +83,179 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-arm64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/android-arm64@npm:0.16.17"
|
||||
"@esbuild/android-arm64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/android-arm64@npm:0.17.13"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-arm@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/android-arm@npm:0.16.17"
|
||||
"@esbuild/android-arm@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/android-arm@npm:0.17.13"
|
||||
conditions: os=android & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/android-x64@npm:0.16.17"
|
||||
"@esbuild/android-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/android-x64@npm:0.17.13"
|
||||
conditions: os=android & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/darwin-arm64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/darwin-arm64@npm:0.16.17"
|
||||
"@esbuild/darwin-arm64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/darwin-arm64@npm:0.17.13"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/darwin-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/darwin-x64@npm:0.16.17"
|
||||
"@esbuild/darwin-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/darwin-x64@npm:0.17.13"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/freebsd-arm64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/freebsd-arm64@npm:0.16.17"
|
||||
"@esbuild/freebsd-arm64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/freebsd-arm64@npm:0.17.13"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/freebsd-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/freebsd-x64@npm:0.16.17"
|
||||
"@esbuild/freebsd-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/freebsd-x64@npm:0.17.13"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-arm64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-arm64@npm:0.16.17"
|
||||
"@esbuild/linux-arm64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-arm64@npm:0.17.13"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-arm@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-arm@npm:0.16.17"
|
||||
"@esbuild/linux-arm@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-arm@npm:0.17.13"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-ia32@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-ia32@npm:0.16.17"
|
||||
"@esbuild/linux-ia32@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-ia32@npm:0.17.13"
|
||||
conditions: os=linux & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-loong64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-loong64@npm:0.16.17"
|
||||
"@esbuild/linux-loong64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-loong64@npm:0.17.13"
|
||||
conditions: os=linux & cpu=loong64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-mips64el@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-mips64el@npm:0.16.17"
|
||||
"@esbuild/linux-mips64el@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-mips64el@npm:0.17.13"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-ppc64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-ppc64@npm:0.16.17"
|
||||
"@esbuild/linux-ppc64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-ppc64@npm:0.17.13"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-riscv64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-riscv64@npm:0.16.17"
|
||||
"@esbuild/linux-riscv64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-riscv64@npm:0.17.13"
|
||||
conditions: os=linux & cpu=riscv64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-s390x@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-s390x@npm:0.16.17"
|
||||
"@esbuild/linux-s390x@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-s390x@npm:0.17.13"
|
||||
conditions: os=linux & cpu=s390x
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/linux-x64@npm:0.16.17"
|
||||
"@esbuild/linux-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/linux-x64@npm:0.17.13"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/netbsd-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/netbsd-x64@npm:0.16.17"
|
||||
"@esbuild/netbsd-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/netbsd-x64@npm:0.17.13"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/openbsd-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/openbsd-x64@npm:0.16.17"
|
||||
"@esbuild/openbsd-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/openbsd-x64@npm:0.17.13"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/sunos-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/sunos-x64@npm:0.16.17"
|
||||
"@esbuild/sunos-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/sunos-x64@npm:0.17.13"
|
||||
conditions: os=sunos & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-arm64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/win32-arm64@npm:0.16.17"
|
||||
"@esbuild/win32-arm64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/win32-arm64@npm:0.17.13"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-ia32@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/win32-ia32@npm:0.16.17"
|
||||
"@esbuild/win32-ia32@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/win32-ia32@npm:0.17.13"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/win32-x64@npm:0.16.17":
|
||||
version: 0.16.17
|
||||
resolution: "@esbuild/win32-x64@npm:0.16.17"
|
||||
"@esbuild/win32-x64@npm:0.17.13":
|
||||
version: 0.17.13
|
||||
resolution: "@esbuild/win32-x64@npm:0.17.13"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^2.0.0":
|
||||
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0":
|
||||
version: 4.4.0
|
||||
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
|
||||
dependencies:
|
||||
eslint-visitor-keys: ^3.3.0
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint-community/regexpp@npm:^4.4.0":
|
||||
version: 4.4.1
|
||||
resolution: "@eslint-community/regexpp@npm:4.4.1"
|
||||
checksum: db97d8d08e784147b55ab0dda5892503c1a0eebad94d1c4646d89a94f02ca70b25f05d8e021fc05a075e7eb312e03e21f63d84f0b327719f8cf3bb64e66917cb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/eslintrc@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@eslint/eslintrc@npm:2.0.1"
|
||||
dependencies:
|
||||
|
@ -254,10 +272,10 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@eslint/js@npm:8.35.0":
|
||||
version: 8.35.0
|
||||
resolution: "@eslint/js@npm:8.35.0"
|
||||
checksum: 6687ceff659a6d617e37823f809dc9c4b096535961a81acead27d26b1a51a4cf608a5e59d831ddd57f24f6f8bb99340a4a0e19f9c99b390fbb4b275f51ed5f5e
|
||||
"@eslint/js@npm:8.36.0":
|
||||
version: 8.36.0
|
||||
resolution: "@eslint/js@npm:8.36.0"
|
||||
checksum: b7d6b84b823c8c7784be390741196617565527b1f7c0977fde9455bfb57fd88f81c074a03dd878757d2c33fa29f24291e9ecbc1425710f067917324b55e1bf3a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -284,89 +302,89 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/bootstrap5@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/bootstrap5@npm:6.1.4"
|
||||
"@fullcalendar/bootstrap5@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/bootstrap5@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
checksum: e4a5dd281d95d0cd24ee8ecb6b0454b1a081c5236cb9ac8d2b0ddac777160d0bd31a7f489368c7d0c33a1ac026cec9e8d62cc4e7f1980a11d84165a271860371
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
checksum: c2f886582344e268bdb342ef6ae2152a9ffe42f4ba48ab1eaa54414413cf52dbe3fb2c423efb44ca491318a53bb17bc476602b9a21672b07dd3bec48eec9345d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/core@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/core@npm:6.1.4"
|
||||
"@fullcalendar/core@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/core@npm:6.1.5"
|
||||
dependencies:
|
||||
preact: ^10.0.5
|
||||
checksum: 3c659bbaf814a1f084ddd3e2eeaf68bb48f268a36560abb399c4aa29a40d6017c5bb1cd87c43664f333a1f6682c32b6a85ffb661538ea0faa78a1c119760a381
|
||||
preact: ~10.12.1
|
||||
checksum: 6892c11c40899fc986edc3d36b8e764c8e78f1c53df2c6e23d418d0191fc0bd1562bd0d9cfc74fd986d02ac1e18c8a4a9d34a40b8329964cc9fb9f8ab8367635
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/daygrid@npm:6.1.4, @fullcalendar/daygrid@npm:~6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/daygrid@npm:6.1.4"
|
||||
"@fullcalendar/daygrid@npm:6.1.5, @fullcalendar/daygrid@npm:~6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/daygrid@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
checksum: 24b3c6e521c5e5288cb05d34e080daace1138b4b421a5dd059938a8c9b7730374b7f07908984b124d48e810276a3c24f1e1c7b6080d375ca80e4d7ef387d7774
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
checksum: f62aa7364d0c51bb8121da988ba5784dc0ce775e15d87bfa7b4f52f0f0d12fd338aa634de93b43332167c105b6848dba47d184f23d12572235ebd16101f2b109
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/icalendar@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/icalendar@npm:6.1.4"
|
||||
"@fullcalendar/icalendar@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/icalendar@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
ical.js: ^1.4.0
|
||||
checksum: 4ec2ed9092bf963dd889ffb01dd5ec6c956810e3b791a16a3d5c4bd0b303850757ad03b000c79d026ed8f7a9dbc53b673743c4eec0b8901bc4030a56d718f94c
|
||||
checksum: c7d53f932860dceac8d69ef9280c2f9990de976ff060871f13b40c3ff69b951104dfa283cecb233bb03bffd71766c4b31687f76904e9d18ff5fa28b36d04ae3b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/interaction@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/interaction@npm:6.1.4"
|
||||
"@fullcalendar/interaction@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/interaction@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
checksum: 5e282ba36bfbc306e8e36ea88b9df0c5a11b7bcdf4c8952377396da24a3ca058b436a39e9002eba9fc1ca8ce70ca23ef2fd74ef08f48d4b8b45576f7e30a6bea
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
checksum: dd3d7fb8ba33b13b79ee0788f81fd6831f90d3663e04467fd4b72f1c82af6d6e7d1a91ea8ea8c2c203c39d7f6a388d1bbfd501f79f7198629da03c9c9385588d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/list@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/list@npm:6.1.4"
|
||||
"@fullcalendar/list@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/list@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
checksum: 0338a8bb1546e103921d1d6a5baf54b9d43759d9aaf905357c2272e01cbd42e120812128b2f2661d0ef82abc0b8447b16e6f1618968487ffa4c6f0a570f907d5
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
checksum: 4879294b57445a47a15c0316b3fa79265afaf02155b4fd250429a9af9fcb90eadf0842b105fa2a984efe2f044b205dbd48dffe7237d5ec9341c549fea251ad08
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/luxon2@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/luxon2@npm:6.1.4"
|
||||
"@fullcalendar/luxon2@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/luxon2@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
luxon: ^2.0.0
|
||||
checksum: 577283ad7cd555c25143f64c865554aebaa957b0bc51bcece7114bb7282abb448a8450b23863fb6287c6e91f7f89cc261beb51c8e0542c5b0df6c853fe3bd9c3
|
||||
checksum: 6253f7d06695a73745c719b44d4048ec2aca1dc0dbf24c57ad7721cf540cff1672e9ccc9e595bb2ec822c5f54b066a259fb5280feb778dce779288417c668085
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/timegrid@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/timegrid@npm:6.1.4"
|
||||
"@fullcalendar/timegrid@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/timegrid@npm:6.1.5"
|
||||
dependencies:
|
||||
"@fullcalendar/daygrid": ~6.1.4
|
||||
"@fullcalendar/daygrid": ~6.1.5
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
checksum: 1329b941f94e2c17a866e612e7d92adacbca0364ba7e76908caa2a936f526c0cde43fa050f571634dd2db2e779f1cbd3115b64cbc0b524d34f0c4d61243659b8
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
checksum: 236aabb57a3a8e8f41c43bf3a76b074731fee8a4e815b3c32a3532a7503678d488bbc1b2c74c270580ef37fb2d9ed9edf0b4646943812a5c238cd1cd7104e5f8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@fullcalendar/vue3@npm:6.1.4":
|
||||
version: 6.1.4
|
||||
resolution: "@fullcalendar/vue3@npm:6.1.4"
|
||||
"@fullcalendar/vue3@npm:6.1.5":
|
||||
version: 6.1.5
|
||||
resolution: "@fullcalendar/vue3@npm:6.1.5"
|
||||
peerDependencies:
|
||||
"@fullcalendar/core": ~6.1.4
|
||||
"@fullcalendar/core": ~6.1.5
|
||||
vue: ^3.0.11
|
||||
checksum: 3e11102fbf09e2e62d52c03f7fc42435c816faeefd57c1e551271af6bfdeb52be7380b6d9b199e652a742626c17a21227092b83039f30a48f76d9d26ffae9beb
|
||||
checksum: bf426f3668ec813174b33c7151555299ee40176f53a481e72f5352002da257a9182c6b1c6cc0083f5e10f76601ccbe25af814fe0ae741516149e078dccc7efd1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1588,10 +1606,10 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@popperjs/core@npm:2.11.6":
|
||||
version: 2.11.6
|
||||
resolution: "@popperjs/core@npm:2.11.6"
|
||||
checksum: 47fb328cec1924559d759b48235c78574f2d71a8a6c4c03edb6de5d7074078371633b91e39bbf3f901b32aa8af9b9d8f82834856d2f5737a23475036b16817f0
|
||||
"@popperjs/core@npm:2.11.7":
|
||||
version: 2.11.7
|
||||
resolution: "@popperjs/core@npm:2.11.7"
|
||||
checksum: 5b6553747899683452a1d28898c1b39173a4efd780e74360bfcda8eb42f1c5e819602769c81a10920fc68c881d07fb40429604517d499567eac079cfa6470f19
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -1721,13 +1739,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@vitejs/plugin-vue@npm:4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@vitejs/plugin-vue@npm:4.0.0"
|
||||
"@vitejs/plugin-vue@npm:4.1.0":
|
||||
version: 4.1.0
|
||||
resolution: "@vitejs/plugin-vue@npm:4.1.0"
|
||||
peerDependencies:
|
||||
vite: ^4.0.0
|
||||
vue: ^3.2.25
|
||||
checksum: 5a53414912db644ca7a663d87c8d4838841dbf794772105c9b3bc3fb10214fc86c2f1f1a47350f264370e9a5fd2475f3b6882778b2440b5085d3fe7550ced542
|
||||
checksum: 532192a3da39f3fd6ba9d4fa9de74533cf6e222785c26bcb75bde9f826c5c4a22ad6f0bb09fae83e3393f9d8d24b6982d547683b1967972a4350e8e76aecf3cb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -2314,10 +2332,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:1.0.30001451":
|
||||
version: 1.0.30001451
|
||||
resolution: "caniuse-lite@npm:1.0.30001451"
|
||||
checksum: 48a06a7881093bb4d8a08ed5428f24a1cbdaa544b0a6f0c3614287d4f34b6c853e79a0f608a5bd901c27995f5e951825606fba11e7930251cc422bd61de9d849
|
||||
"caniuse-lite@npm:1.0.30001469":
|
||||
version: 1.0.30001469
|
||||
resolution: "caniuse-lite@npm:1.0.30001469"
|
||||
checksum: 8e496509d7e9ff189c72205675b5db0c5f1b6a09917027441e835efae0848a468a8c4e7d2b409ffc202438fcd23ae53e017f976a03c22c04d12d3c0e1e33e5de
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -2890,9 +2908,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"d3@npm:7.8.2":
|
||||
version: 7.8.2
|
||||
resolution: "d3@npm:7.8.2"
|
||||
"d3@npm:7.8.3":
|
||||
version: 7.8.3
|
||||
resolution: "d3@npm:7.8.3"
|
||||
dependencies:
|
||||
d3-array: 3
|
||||
d3-axis: 3
|
||||
|
@ -2924,7 +2942,7 @@ browserlist@latest:
|
|||
d3-timer: 3
|
||||
d3-transition: 3
|
||||
d3-zoom: 3
|
||||
checksum: e7bf5918f2a97d0c0cc489d64348b323446aa824c32b65f0888846c26f80ed05dbee18a4b7c9a487b3e60d9d404e4672d169573fe63439e3e53abd5812bcd766
|
||||
checksum: d3291a8f487a96a57bef54af40728da82dedd52e6abd033f93835f1ca5fdc8daad8c6e9e10b324d8e67680205da9ae32ee5bb679cc97ef79527c57dea3b78dd8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3274,32 +3292,32 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild@npm:^0.16.14":
|
||||
version: 0.16.17
|
||||
resolution: "esbuild@npm:0.16.17"
|
||||
"esbuild@npm:^0.17.5":
|
||||
version: 0.17.13
|
||||
resolution: "esbuild@npm:0.17.13"
|
||||
dependencies:
|
||||
"@esbuild/android-arm": 0.16.17
|
||||
"@esbuild/android-arm64": 0.16.17
|
||||
"@esbuild/android-x64": 0.16.17
|
||||
"@esbuild/darwin-arm64": 0.16.17
|
||||
"@esbuild/darwin-x64": 0.16.17
|
||||
"@esbuild/freebsd-arm64": 0.16.17
|
||||
"@esbuild/freebsd-x64": 0.16.17
|
||||
"@esbuild/linux-arm": 0.16.17
|
||||
"@esbuild/linux-arm64": 0.16.17
|
||||
"@esbuild/linux-ia32": 0.16.17
|
||||
"@esbuild/linux-loong64": 0.16.17
|
||||
"@esbuild/linux-mips64el": 0.16.17
|
||||
"@esbuild/linux-ppc64": 0.16.17
|
||||
"@esbuild/linux-riscv64": 0.16.17
|
||||
"@esbuild/linux-s390x": 0.16.17
|
||||
"@esbuild/linux-x64": 0.16.17
|
||||
"@esbuild/netbsd-x64": 0.16.17
|
||||
"@esbuild/openbsd-x64": 0.16.17
|
||||
"@esbuild/sunos-x64": 0.16.17
|
||||
"@esbuild/win32-arm64": 0.16.17
|
||||
"@esbuild/win32-ia32": 0.16.17
|
||||
"@esbuild/win32-x64": 0.16.17
|
||||
"@esbuild/android-arm": 0.17.13
|
||||
"@esbuild/android-arm64": 0.17.13
|
||||
"@esbuild/android-x64": 0.17.13
|
||||
"@esbuild/darwin-arm64": 0.17.13
|
||||
"@esbuild/darwin-x64": 0.17.13
|
||||
"@esbuild/freebsd-arm64": 0.17.13
|
||||
"@esbuild/freebsd-x64": 0.17.13
|
||||
"@esbuild/linux-arm": 0.17.13
|
||||
"@esbuild/linux-arm64": 0.17.13
|
||||
"@esbuild/linux-ia32": 0.17.13
|
||||
"@esbuild/linux-loong64": 0.17.13
|
||||
"@esbuild/linux-mips64el": 0.17.13
|
||||
"@esbuild/linux-ppc64": 0.17.13
|
||||
"@esbuild/linux-riscv64": 0.17.13
|
||||
"@esbuild/linux-s390x": 0.17.13
|
||||
"@esbuild/linux-x64": 0.17.13
|
||||
"@esbuild/netbsd-x64": 0.17.13
|
||||
"@esbuild/openbsd-x64": 0.17.13
|
||||
"@esbuild/sunos-x64": 0.17.13
|
||||
"@esbuild/win32-arm64": 0.17.13
|
||||
"@esbuild/win32-ia32": 0.17.13
|
||||
"@esbuild/win32-x64": 0.17.13
|
||||
dependenciesMeta:
|
||||
"@esbuild/android-arm":
|
||||
optional: true
|
||||
|
@ -3347,7 +3365,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
esbuild: bin/esbuild
|
||||
checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c
|
||||
checksum: c3be8d41a36504fbfee7ad1206df5cf3464dc9a057a417b66dbf1cdf9a180d299df8eee5d2ffa428ad0303f5f4e3ea238bd50087876daa28f709722035165c8c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3535,11 +3553,11 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-vue@npm:9.9.0":
|
||||
version: 9.9.0
|
||||
resolution: "eslint-plugin-vue@npm:9.9.0"
|
||||
"eslint-plugin-vue@npm:9.10.0":
|
||||
version: 9.10.0
|
||||
resolution: "eslint-plugin-vue@npm:9.10.0"
|
||||
dependencies:
|
||||
eslint-utils: ^3.0.0
|
||||
"@eslint-community/eslint-utils": ^4.3.0
|
||||
natural-compare: ^1.4.0
|
||||
nth-check: ^2.0.1
|
||||
postcss-selector-parser: ^6.0.9
|
||||
|
@ -3548,7 +3566,7 @@ browserlist@latest:
|
|||
xml-name-validator: ^4.0.0
|
||||
peerDependencies:
|
||||
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||
checksum: 059f9c1915504d074adf64bc3371d1e174f8844088d0e08800c958cbef09d7fdf2a0a949634187231645435a1ef31595c8c81f441000ec43589bb58a1282fe3c
|
||||
checksum: 91c6f1ab59433cfa3ade0e6003ca4a9f3ee50e1fd6b49ad9487805dc582f1865ef27796ff18b89e92f37f9ed39d7bfb8c8ccd029c2b77bb3e26ce9b705713070
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3603,12 +3621,14 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:8.35.0":
|
||||
version: 8.35.0
|
||||
resolution: "eslint@npm:8.35.0"
|
||||
"eslint@npm:8.36.0":
|
||||
version: 8.36.0
|
||||
resolution: "eslint@npm:8.36.0"
|
||||
dependencies:
|
||||
"@eslint/eslintrc": ^2.0.0
|
||||
"@eslint/js": 8.35.0
|
||||
"@eslint-community/eslint-utils": ^4.2.0
|
||||
"@eslint-community/regexpp": ^4.4.0
|
||||
"@eslint/eslintrc": ^2.0.1
|
||||
"@eslint/js": 8.36.0
|
||||
"@humanwhocodes/config-array": ^0.11.8
|
||||
"@humanwhocodes/module-importer": ^1.0.1
|
||||
"@nodelib/fs.walk": ^1.2.8
|
||||
|
@ -3619,9 +3639,8 @@ browserlist@latest:
|
|||
doctrine: ^3.0.0
|
||||
escape-string-regexp: ^4.0.0
|
||||
eslint-scope: ^7.1.1
|
||||
eslint-utils: ^3.0.0
|
||||
eslint-visitor-keys: ^3.3.0
|
||||
espree: ^9.4.0
|
||||
espree: ^9.5.0
|
||||
esquery: ^1.4.2
|
||||
esutils: ^2.0.2
|
||||
fast-deep-equal: ^3.1.3
|
||||
|
@ -3643,13 +3662,12 @@ browserlist@latest:
|
|||
minimatch: ^3.1.2
|
||||
natural-compare: ^1.4.0
|
||||
optionator: ^0.9.1
|
||||
regexpp: ^3.2.0
|
||||
strip-ansi: ^6.0.1
|
||||
strip-json-comments: ^3.1.0
|
||||
text-table: ^0.2.0
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: 6212173691d90b1bc94dd3d640e1f210374b30c3905fc0a15e501cf71c6ca52aa3d80ea7a9a245adaaed26d6019169e01fb6881b3f2885b188d37069c749308c
|
||||
checksum: e9a961fc3b3de5cff5a1cb2c92eeffaa7e155a715489e30b3e1e76f186bd1255e0481e09564f2094733c0b1dbd3453499fb72ae7c043c83156e11e6d965b2304
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -3664,17 +3682,6 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"espree@npm:^9.4.0":
|
||||
version: 9.4.0
|
||||
resolution: "espree@npm:9.4.0"
|
||||
dependencies:
|
||||
acorn: ^8.8.0
|
||||
acorn-jsx: ^5.3.2
|
||||
eslint-visitor-keys: ^3.3.0
|
||||
checksum: 2e3020dde67892d2ba3632413b44d0dc31d92c29ce72267d7ec24216a562f0a6494d3696e2fa39a3ec8c0e0088d773947ab2925fbb716801a11eb8dd313ac89c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"espree@npm:^9.5.0":
|
||||
version: 9.5.0
|
||||
resolution: "espree@npm:9.5.0"
|
||||
|
@ -4178,9 +4185,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"html-validate@npm:7.13.2":
|
||||
version: 7.13.2
|
||||
resolution: "html-validate@npm:7.13.2"
|
||||
"html-validate@npm:7.13.3":
|
||||
version: 7.13.3
|
||||
resolution: "html-validate@npm:7.13.3"
|
||||
dependencies:
|
||||
"@babel/code-frame": ^7.10.0
|
||||
"@html-validate/stylish": ^3.0.0
|
||||
|
@ -4208,7 +4215,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
html-validate: bin/html-validate.js
|
||||
checksum: 891e03479e8c66b45734d49b9bd2a60a5b9c774a35972b545a3996df264f47b15f112b17a02e3660ecddb21f2161963fcf1000d149dcd9c97c30c15ff58d5e53
|
||||
checksum: d58b7eff726e5351b5f9ed54674b741f94f29b210e8f854e299eab8f2cd6a25d008c19aa57838403beb19e64ca771747ad8e53d4e460bb9d72c6265db26c1fa1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -4735,26 +4742,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jquery-ui-dist@npm:1.13.2":
|
||||
version: 1.13.2
|
||||
resolution: "jquery-ui-dist@npm:1.13.2"
|
||||
dependencies:
|
||||
jquery: ">=1.8.0 <4.0.0"
|
||||
checksum: 4f3a3a2ff8ff659aaa48cfce11dc06bbd396676c175dd8429a0aaa327fc055855ab2159624d9493cb236b28a9c669b26d1de8215415ddcf068191add4740729d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jquery@npm:3.6.3":
|
||||
version: 3.6.3
|
||||
resolution: "jquery@npm:3.6.3"
|
||||
checksum: 0fd366bdcaa0c84a7a8751ce20f8192290141913978b5059574426d9b01f4365daa675f95aab3eec94fd794d27b08d32078a2236bef404b8ba78073009988ce6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"jquery@npm:>=1.8.0 <4.0.0":
|
||||
version: 3.6.0
|
||||
resolution: "jquery@npm:3.6.0"
|
||||
checksum: 8fd5fef4aa48fd374ec716dd1c1df1af407814a228e15c1260ca140de3a697c2a77c30c54ff1d238b6a3ab4ddc445ddeef9adce6c6d28e4869d85eb9d3951c0e
|
||||
"jquery@npm:3.6.4":
|
||||
version: 3.6.4
|
||||
resolution: "jquery@npm:3.6.4"
|
||||
checksum: 8354f7bd0a0424aa714ee1b6b1ef74b410f834eb5c8501682289b358bc151f11677f11188b544f3bb49309d6ec4d15d1a5de175661250c206b06185a252f706f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -5242,12 +5233,12 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"moment-timezone@npm:0.5.41":
|
||||
version: 0.5.41
|
||||
resolution: "moment-timezone@npm:0.5.41"
|
||||
"moment-timezone@npm:0.5.42":
|
||||
version: 0.5.42
|
||||
resolution: "moment-timezone@npm:0.5.42"
|
||||
dependencies:
|
||||
moment: ^2.29.4
|
||||
checksum: 30bf42265f749d4d17e78cf94f49d8354d9fbf2dea060a5b89895979642035734512a23cb7a90c0e93593bc11eb698b78b601b7dd5d9a708eb7c4f733a927a71
|
||||
checksum: d4d5d68d4b98e4309e8692ddb6b790ab6b375414ea4e45ef3144bfbc689ab14e3089c4561aea43471fd58595328f43fc554231c9d8fc753b460ca0a29a105693
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -5833,10 +5824,10 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"preact@npm:^10.0.5":
|
||||
version: 10.7.2
|
||||
resolution: "preact@npm:10.7.2"
|
||||
checksum: 2f0655e0430f1c6927b40cb4abffb2c0ee4fe63e3201d44e37d0992c0ab534346f206cf23c0405572b70908e3eba2f7f60ab8e4531f409ebcbc35af06920cd60
|
||||
"preact@npm:~10.12.1":
|
||||
version: 10.12.1
|
||||
resolution: "preact@npm:10.12.1"
|
||||
checksum: 0de99f477563ab7f94a0f964952ad216375973c0dcd9eb49881f8eb5effc5ed6948da062548c87d5bb0d82f1a1e516b649020e760eab3a0503dfdd8e64d34a26
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -6101,7 +6092,7 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"regexpp@npm:^3.0.0, regexpp@npm:^3.2.0":
|
||||
"regexpp@npm:^3.0.0":
|
||||
version: 3.2.0
|
||||
resolution: "regexpp@npm:3.2.0"
|
||||
checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8
|
||||
|
@ -6213,9 +6204,9 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"rollup@npm:^3.10.0":
|
||||
version: 3.19.1
|
||||
resolution: "rollup@npm:3.19.1"
|
||||
"rollup@npm:^3.18.0":
|
||||
version: 3.20.2
|
||||
resolution: "rollup@npm:3.20.2"
|
||||
dependencies:
|
||||
fsevents: ~2.3.2
|
||||
dependenciesMeta:
|
||||
|
@ -6223,7 +6214,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
rollup: dist/bin/rollup
|
||||
checksum: f78198c6de224b26650c70b16db156762d1fcceeb375d34fb2c76fc5b23a78f712c3c881d3248e6f277a511589e20d50c247bcf5c7920f1ddc0a43cadf9f0140
|
||||
checksum: 34b0932839b7c2a5d1742fb21ce95a47e0b49a0849f4abee2dccf25833187aa7babb898ca90d4fc761cffa4102b9ed0ac6ad7f6f6b96c8b8e2d67305abc5da65
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -6232,51 +6223,50 @@ browserlist@latest:
|
|||
resolution: "root-workspace-0b6124@workspace:."
|
||||
dependencies:
|
||||
"@faker-js/faker": 7.6.0
|
||||
"@fullcalendar/bootstrap5": 6.1.4
|
||||
"@fullcalendar/core": 6.1.4
|
||||
"@fullcalendar/daygrid": 6.1.4
|
||||
"@fullcalendar/icalendar": 6.1.4
|
||||
"@fullcalendar/interaction": 6.1.4
|
||||
"@fullcalendar/list": 6.1.4
|
||||
"@fullcalendar/luxon2": 6.1.4
|
||||
"@fullcalendar/timegrid": 6.1.4
|
||||
"@fullcalendar/vue3": 6.1.4
|
||||
"@fullcalendar/bootstrap5": 6.1.5
|
||||
"@fullcalendar/core": 6.1.5
|
||||
"@fullcalendar/daygrid": 6.1.5
|
||||
"@fullcalendar/icalendar": 6.1.5
|
||||
"@fullcalendar/interaction": 6.1.5
|
||||
"@fullcalendar/list": 6.1.5
|
||||
"@fullcalendar/luxon2": 6.1.5
|
||||
"@fullcalendar/timegrid": 6.1.5
|
||||
"@fullcalendar/vue3": 6.1.5
|
||||
"@parcel/optimizer-data-url": 2.8.3
|
||||
"@parcel/transformer-inline-string": 2.8.3
|
||||
"@parcel/transformer-sass": 2.8.3
|
||||
"@popperjs/core": 2.11.6
|
||||
"@popperjs/core": 2.11.7
|
||||
"@rollup/pluginutils": 5.0.2
|
||||
"@twuni/emojify": 1.0.2
|
||||
"@vitejs/plugin-vue": 4.0.0
|
||||
"@vitejs/plugin-vue": 4.1.0
|
||||
bootstrap: 5.2.3
|
||||
bootstrap-icons: 1.10.3
|
||||
browser-fs-access: 0.33.0
|
||||
browserlist: latest
|
||||
c8: 7.13.0
|
||||
caniuse-lite: 1.0.30001451
|
||||
d3: 7.8.2
|
||||
eslint: 8.35.0
|
||||
caniuse-lite: 1.0.30001469
|
||||
d3: 7.8.3
|
||||
eslint: 8.36.0
|
||||
eslint-config-standard: 17.0.0
|
||||
eslint-plugin-cypress: 2.12.1
|
||||
eslint-plugin-import: 2.27.5
|
||||
eslint-plugin-n: 15.6.1
|
||||
eslint-plugin-node: 11.1.0
|
||||
eslint-plugin-promise: 6.1.1
|
||||
eslint-plugin-vue: 9.9.0
|
||||
eslint-plugin-vue: 9.10.0
|
||||
file-saver: 2.0.5
|
||||
highcharts: 10.3.3
|
||||
html-validate: 7.13.2
|
||||
html-validate: 7.13.3
|
||||
ical.js: 1.5.0
|
||||
jquery: 3.6.3
|
||||
jquery: 3.6.4
|
||||
jquery-migrate: 3.4.1
|
||||
jquery-ui-dist: 1.13.2
|
||||
js-cookie: 3.0.1
|
||||
list.js: 2.3.1
|
||||
lodash: 4.17.21
|
||||
lodash-es: 4.17.21
|
||||
luxon: 3.3.0
|
||||
moment: 2.29.4
|
||||
moment-timezone: 0.5.41
|
||||
moment-timezone: 0.5.42
|
||||
ms: 2.1.3
|
||||
murmurhash-js: 1.0.0
|
||||
naive-ui: 2.34.3
|
||||
|
@ -6284,7 +6274,7 @@ browserlist@latest:
|
|||
pinia: 2.0.33
|
||||
pinia-plugin-persist: 1.0.0
|
||||
pug: 3.0.2
|
||||
sass: 1.58.3
|
||||
sass: 1.60.0
|
||||
seedrandom: 3.0.5
|
||||
select2: 4.1.0-rc.0
|
||||
select2-bootstrap-5-theme: 1.3.0
|
||||
|
@ -6293,7 +6283,7 @@ browserlist@latest:
|
|||
slugify: 1.6.5
|
||||
sortablejs: 1.15.0
|
||||
vanillajs-datepicker: 1.3.1
|
||||
vite: 4.1.4
|
||||
vite: 4.2.1
|
||||
vue: 3.2.47
|
||||
vue-router: 4.1.6
|
||||
zxcvbn: 4.4.2
|
||||
|
@ -6348,16 +6338,16 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"sass@npm:1.58.3":
|
||||
version: 1.58.3
|
||||
resolution: "sass@npm:1.58.3"
|
||||
"sass@npm:1.60.0":
|
||||
version: 1.60.0
|
||||
resolution: "sass@npm:1.60.0"
|
||||
dependencies:
|
||||
chokidar: ">=3.0.0 <4.0.0"
|
||||
immutable: ^4.0.0
|
||||
source-map-js: ">=0.6.2 <2.0.0"
|
||||
bin:
|
||||
sass: sass.js
|
||||
checksum: 35a2b98c037ef80fdc93c9b0be846e6ccc7d75596351a37ee79c397e66666d0a754c52c4696e746c0aff32327471e185343ca349e998a58340411adc9d0489a5
|
||||
checksum: 06e163c37af466ec194cf2ed8dab616372afeb19322d356947d48ea664fc38398ae77c4d91bea9cb0ace954ce289d5518d0f8555ecc49f6bf2539a8ef52fc580
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -6988,15 +6978,15 @@ browserlist@latest:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:4.1.4":
|
||||
version: 4.1.4
|
||||
resolution: "vite@npm:4.1.4"
|
||||
"vite@npm:4.2.1":
|
||||
version: 4.2.1
|
||||
resolution: "vite@npm:4.2.1"
|
||||
dependencies:
|
||||
esbuild: ^0.16.14
|
||||
esbuild: ^0.17.5
|
||||
fsevents: ~2.3.2
|
||||
postcss: ^8.4.21
|
||||
resolve: ^1.22.1
|
||||
rollup: ^3.10.0
|
||||
rollup: ^3.18.0
|
||||
peerDependencies:
|
||||
"@types/node": ">= 14"
|
||||
less: "*"
|
||||
|
@ -7022,7 +7012,7 @@ browserlist@latest:
|
|||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 50a9a1f2e29e0ee8fefdec60314d38fb9b746df0bb6ae5a8114014b5bfd95e0fc9b29c0d5e73939361ba53af7eb66c7d20c5656bbe53a783e96540bd3b907c47
|
||||
checksum: 70eb162ffc299017a3c310e3adc95e9661def6b17aafd1f8e5e02e516766060435590dbe3df1e4e95acc3583c728a76e91f07c546221d1e701f1b2b021293f45
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
|
Loading…
Reference in a new issue