9996eafe75
**This commit** This commit provides the following new features for dual list multiselect: - The "available" pane, which has all of the entries that are available to be selected. Items that are already selected will remain, but they're marked with a checkmark and can neither be selected or moved. - The "selected" pane, which has *all* of the entries that have been selected. - The Pagination control, which in this case only sends an event upstream. **Plan**: The plan is to have a master control that marries the available-pane, selected-pane, select-controls, and pagination-controls into a single component that receives the list of "currently visible" available entries and keeps the list of "currently selected" entries, as well as a pass-through for the pagination value that allows it to hide the pagination control if there is only one page. A master component *above that* will provide the list of currently visible entries and, at need, read the value of the master control object for the "selected" list. That component will mostly be data-only; it's render will probably just be `<slot></slot>`; its duty will be only to map entries to string keys Lit can use, and to provide the lists we want to provide and the pagination ranges we want to show. Some judicious use of grid will allow me size the controls properly with/without the pagination control. Status and Title are going to be in the master control. A <slot> will be provided for Search, but I have no plans to integrate that into this control as of yet. There is already a planned fallback control; the multi-select experience on mobile is actually excellent, and we should exploit that appropriately.
141 lines
6.5 KiB
JSON
141 lines
6.5 KiB
JSON
{
|
|
"name": "@goauthentik/web",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"extract-locales": "lit-localize extract",
|
|
"build-locales": "run-s build-locales:build",
|
|
"build-locales:build": "lit-localize build",
|
|
"build-locales:repair": "prettier --write ./src/locale-codes.ts",
|
|
"rollup:build": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c ./rollup.config.mjs",
|
|
"rollup:build-proxy": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c ./rollup.proxy.mjs",
|
|
"rollup:watch": "cross-env NODE_OPTIONS='--max_old_space_size=4096' rollup -c -w",
|
|
"build": "run-s build-locales rollup:build",
|
|
"build-proxy": "run-s build-locales rollup:build-proxy",
|
|
"watch": "run-s build-locales rollup:watch",
|
|
"lint": "eslint . --max-warnings 0 --fix",
|
|
"lint:precommit": "eslint --max-warnings 0 --config ./.eslintrc.precommit.json $(git status --porcelain . | grep '^[M?][M?]' | cut -c8- | grep -E '\\.(ts|js|tsx|jsx)$') ",
|
|
"lint:spelling": "codespell -D - -D ../.github/codespell-dictionary.txt -I ../.github/codespell-words.txt -S './src/locales/**' ./src -s",
|
|
"lit-analyse": "lit-analyzer src",
|
|
"precommit": "run-s tsc lit-analyse lint:precommit lint:spelling prettier",
|
|
"prequick": "run-s tsc:execute lit-analyse lint:precommit lint:spelling",
|
|
"prettier-check": "prettier --check .",
|
|
"prettier": "prettier --write .",
|
|
"pseudolocalize:build-extract-script": "cd scripts && tsc --esModuleInterop --module es2020 --moduleResolution 'node' pseudolocalize.ts && mv pseudolocalize.js pseudolocalize.mjs",
|
|
"pseudolocalize:extract": "node scripts/pseudolocalize.mjs",
|
|
"pseudolocalize": "run-s pseudolocalize:build-extract-script pseudolocalize:extract",
|
|
"tsc:execute": "tsc --noEmit -p .",
|
|
"tsc": "run-s build-locales tsc:execute",
|
|
"storybook": "storybook dev -p 6006",
|
|
"storybook:build": "cross-env NODE_OPTIONS='--max_old_space_size=4096' storybook build",
|
|
"storybook:build-import-map": "run-s storybook:build-import-map-script storybook:run-import-map-script",
|
|
"storybook:build-import-map-script": "cd scripts && tsc --esModuleInterop --module es2020 --target es2020 --moduleResolution 'node' build-storybook-import-maps.ts && mv build-storybook-import-maps.js build-storybook-import-maps.mjs",
|
|
"storybook:run-import-map-script": "node scripts/build-storybook-import-maps.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/lang-html": "^6.4.7",
|
|
"@codemirror/lang-javascript": "^6.2.1",
|
|
"@codemirror/lang-python": "^6.1.3",
|
|
"@codemirror/lang-xml": "^6.0.2",
|
|
"@codemirror/legacy-modes": "^6.3.3",
|
|
"@codemirror/theme-one-dark": "^6.1.2",
|
|
"@formatjs/intl-listformat": "^7.5.3",
|
|
"@fortawesome/fontawesome-free": "^6.5.1",
|
|
"@goauthentik/api": "^2023.10.5-1703290840",
|
|
"@lit-labs/context": "^0.4.0",
|
|
"@lit-labs/task": "^3.1.0",
|
|
"@lit/localize": "^0.11.4",
|
|
"@open-wc/lit-helpers": "^0.6.0",
|
|
"@patternfly/elements": "^2.4.0",
|
|
"@patternfly/patternfly": "^4.224.2",
|
|
"@sentry/browser": "^7.91.0",
|
|
"@sentry/tracing": "^7.91.0",
|
|
"@webcomponents/webcomponentsjs": "^2.8.0",
|
|
"base64-js": "^1.5.1",
|
|
"chart.js": "^4.4.1",
|
|
"chartjs-adapter-moment": "^1.0.1",
|
|
"codemirror": "^6.0.1",
|
|
"construct-style-sheets-polyfill": "^3.1.0",
|
|
"core-js": "^3.34.0",
|
|
"country-flag-icons": "^1.5.9",
|
|
"fuse.js": "^7.0.0",
|
|
"lit": "^2.8.0",
|
|
"mermaid": "^10.6.1",
|
|
"rapidoc": "^9.3.4",
|
|
"style-mod": "^4.1.0",
|
|
"webcomponent-qr-code": "^1.2.0",
|
|
"yaml": "^2.3.4"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.23.6",
|
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
"@babel/plugin-proposal-decorators": "^7.23.6",
|
|
"@babel/plugin-transform-private-methods": "^7.23.3",
|
|
"@babel/plugin-transform-private-property-in-object": "^7.23.4",
|
|
"@babel/plugin-transform-runtime": "^7.23.6",
|
|
"@babel/preset-env": "^7.23.6",
|
|
"@babel/preset-typescript": "^7.23.3",
|
|
"@hcaptcha/types": "^1.0.3",
|
|
"@jackfranklin/rollup-plugin-markdown": "^0.4.0",
|
|
"@jeysal/storybook-addon-css-user-preferences": "^0.2.0",
|
|
"@lit/localize-tools": "^0.7.1",
|
|
"@rollup/plugin-babel": "^6.0.4",
|
|
"@rollup/plugin-commonjs": "^25.0.7",
|
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
"@rollup/plugin-replace": "^5.0.5",
|
|
"@rollup/plugin-terser": "^0.4.4",
|
|
"@rollup/plugin-typescript": "^11.1.5",
|
|
"@storybook/addon-essentials": "^7.6.6",
|
|
"@storybook/addon-links": "^7.6.6",
|
|
"@storybook/api": "^7.6.6",
|
|
"@storybook/blocks": "^7.6.4",
|
|
"@storybook/manager-api": "^7.6.6",
|
|
"@storybook/web-components": "^7.6.6",
|
|
"@storybook/web-components-vite": "^7.6.6",
|
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
"@types/chart.js": "^2.9.41",
|
|
"@types/codemirror": "5.60.15",
|
|
"@types/grecaptcha": "^3.0.7",
|
|
"@typescript-eslint/eslint-plugin": "^6.16.0",
|
|
"@typescript-eslint/parser": "^6.16.0",
|
|
"babel-plugin-macros": "^3.1.0",
|
|
"babel-plugin-tsconfig-paths": "^1.0.3",
|
|
"cross-env": "^7.0.3",
|
|
"eslint": "^8.56.0",
|
|
"eslint-config-google": "^0.14.0",
|
|
"eslint-plugin-custom-elements": "0.0.8",
|
|
"eslint-plugin-lit": "^1.11.0",
|
|
"eslint-plugin-sonarjs": "^0.23.0",
|
|
"eslint-plugin-storybook": "^0.6.15",
|
|
"github-slugger": "^2.0.0",
|
|
"lit-analyzer": "^2.0.2",
|
|
"npm-run-all": "^4.1.5",
|
|
"prettier": "^3.1.1",
|
|
"pseudolocale": "^2.0.0",
|
|
"pyright": "=1.1.338",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"rollup": "^4.9.1",
|
|
"rollup-plugin-copy": "^3.5.0",
|
|
"rollup-plugin-cssimport": "^1.0.3",
|
|
"rollup-plugin-modify": "^3.0.0",
|
|
"rollup-plugin-postcss-lit": "^2.1.0",
|
|
"storybook": "^7.6.6",
|
|
"storybook-addon-mock": "^4.3.0",
|
|
"ts-lit-plugin": "^2.0.1",
|
|
"tslib": "^2.6.2",
|
|
"turnstile-types": "^1.2.0",
|
|
"typescript": "^5.3.3",
|
|
"vite-tsconfig-paths": "^4.2.2"
|
|
},
|
|
"optionalDependencies": {
|
|
"@esbuild/darwin-arm64": "^0.19.10",
|
|
"@esbuild/linux-amd64": "^0.18.11",
|
|
"@esbuild/linux-arm64": "^0.19.10"
|
|
},
|
|
"engines": {
|
|
"node": ">=20"
|
|
}
|
|
}
|