girder 5.0.19.dev14__tar.gz → 5.0.19.dev18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {girder-5.0.19.dev14/girder.egg-info → girder-5.0.19.dev18}/PKG-INFO +1 -1
- girder-5.0.19.dev14/girder/web/dist/assets/index-CFDh2lJD.js → girder-5.0.19.dev18/girder/web/dist/assets/index-DH5Or_NP.js +3 -3
- girder-5.0.19.dev14/girder/web/dist/assets/index-CFDh2lJD.js.map → girder-5.0.19.dev18/girder/web/dist/assets/index-DH5Or_NP.js.map +1 -1
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/index.html +1 -1
- girder-5.0.19.dev18/girder/web/tests/spec/data/slicer_cli_web_multiple_test.xml +27 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_slicer_cli_web.spec.ts +35 -3
- {girder-5.0.19.dev14 → girder-5.0.19.dev18/girder.egg-info}/PKG-INFO +1 -1
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/SOURCES.txt +3 -2
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/scm_file_list.json +3 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/scm_version.json +2 -2
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/publicNames.txt +3 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/Dockerfile +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/build_plugins.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/config.yml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/generatePyEnvChecksum.sh +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/publish_npm.sh +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/publish_pypi.sh +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.circleci/rabbitmq.conf +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.codecov.yml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.dockerignore +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.editorconfig +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.git-blame-ignore-revs +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.github/workflows/codespell.yml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.gitignore +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.pre-commit-config.yaml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/.readthedocs.yml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/CHANGELOG.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/CMakeLists.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/CONTRIBUTING.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/Dockerfile +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/LICENSE +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/MANIFEST.in +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/README.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/README.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/girder_client/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/girder_client/_jsonemitter.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/girder_client/cli.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/pyproject.toml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/clients/python/setup.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docker-compose.yml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/admin-docs.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/api-docs.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/build-docs.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/conf.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/configuration.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/dependencies.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/deployment.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/dev-installation.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/developer-cookbook.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/developer-docs.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/development.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/favicon.ico +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/images/dicom-viewer.png +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/index.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/license.png +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/list_env_settings.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/list_env_settings.yaml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/migration-guide.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/mount.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/plugin-development.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/plugins.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/python-client.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/requirements-docs.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/security.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/sftp.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/static/custom.css +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/user-docs.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/docs/user-guide.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/access.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/api_docs.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/api_main.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/describe.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/docs.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/filter_logging.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/rest.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/sftp.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/api_key.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/assetstore.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/collection.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/file.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/folder.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/group.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/item.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/resource.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/system.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/token.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/api/v1/user.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/asgi.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/cli/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/cli/mount.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/cli/serve.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/cli/sftpd.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/cli/shell.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/constants.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/events.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/exceptions.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/_footer.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/_header.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/accountApproval.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/accountApproved.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/emailVerification.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/groupInvite.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/mail_templates/temporaryAccess.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/api_key.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/assetstore.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/collection.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/file.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/folder.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/group.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/item.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/model_base.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/setting.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/token.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/upload.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/models/user.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/notification.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/plugin.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/settings.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/tasks.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/_cache.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/_hash_state.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/abstract_assetstore_adapter.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/acl_mixin.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/assetstore_utilities.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/config.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/error.mako +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/filesystem_assetstore_adapter.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/mail_utils.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/model_importer.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/path.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/progress.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/s3_assetstore_adapter.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/search.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/server.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/setting_utilities.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/system.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/webroot.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/utility/ziputil.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/.env.development +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/.gitignore +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/.prettierrc.json +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/README.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/Girder_Favicon.png +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/Girder_Mark.png +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/fontello-BGLM866c.svg +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/fontello-CMxI46LA.eot +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/fontello-Ddaw8Z2O.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/fontello-KuItqCW9.ttf +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/fontello-_lT35XxX.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/glyphicons-halflings-regular-BKjkU69z.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/glyphicons-halflings-regular-BUJKDMgK.eot +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/glyphicons-halflings-regular-CSehLiBc.svg +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/glyphicons-halflings-regular-DrwTMapi.ttf +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/glyphicons-halflings-regular-DzqM6ju8.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/index-1kh0UpCT.css +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/jsoneditor-icons-CIlYC0TY.svg +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-300-B6tDWRxp.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-300-DZbNTRe6.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-300italic-DLsXqxhU.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-300italic-Dfz31Up5.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-400-D5zbb_EN.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-400-DLgeRt71.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-400italic-DpGQ6Ktj.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-400italic-UJbezL8h.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-600-CCvT4JHQ.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-600-DHWfDY-G.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-600italic-X8kCjSq_.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-600italic-slqXzGub.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-700-CsbQbrjx.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-700-DNl7WOH5.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-700italic-BtE7VvhE.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-700italic-hc2P_kZo.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-800-CbJOM4_m.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-800-XaYTAPrv.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-800italic-DqvYew-K.woff +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/assets/open-sans-latin-800italic-JIGkTxpX.woff2 +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/auth.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/constants.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/dialog.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/events.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/index.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/main.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/misc.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/pluginUtils.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/rest.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/router.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/routes.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/version.js +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/dist/src/src/vite-env.d.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/env.d.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/playwright.config.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/coverage.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/playwright-setup.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/playwright-teardown.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/server.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/admin.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/browser.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/collection.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/collectionBaseClass.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/customWidgets.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/data/README.md +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/data/nomime.dat +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/data/slicer_cli_web_test.xml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/data/ten_byte_file.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/file_upload.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_authorized_upload.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_hashsum_download.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_homepage.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_item_licenses.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_readme.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_terms.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_thumbnails.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/plugin_user_quota.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/spec/setting_show_download.spec.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/web/tests/util.ts +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/worker_plugin.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder/wsgi.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/dependency_links.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/entry_points.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/not-zip-safe +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/requires.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/girder.egg-info/top_level.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/jsdoc.json +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/package-lock.json +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/package.json +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pyproject.toml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/LICENSE +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/MANIFEST.in +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pyproject.toml +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/__init__.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/assertions.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/fixtures.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/plugin.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/utils.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/pytest_girder/web_client.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/pytest_girder/setup.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/requirements-dev.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/midas/README.rst +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/midas/migrate.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/midas/requirements.txt +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/midas/walk_girder.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/midas/walk_midas.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/publicNames.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/scripts/test_names.sh +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/setup.cfg +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/setup.py +0 -0
- {girder-5.0.19.dev14 → girder-5.0.19.dev18}/tox.ini +0 -0
|
@@ -2633,9 +2633,9 @@ granted the power to add and remove users from the group.</p><div class="g-invit
|
|
|
2633
2633
|
and additionally can promote group members to moderators
|
|
2634
2634
|
or administrators. They also have the power to delete the
|
|
2635
2635
|
group entirely.</p><div class="g-invite-as-admin btn btn-primary"><i class="icon-mail"></i><span>Invite as administrator</span></div>`,r&&(t+=`<div class="g-add-as-admin btn btn-warning g-add-user-button"><i class="icon-plus"></i><span>Add as administrator</span></div>`),t+=`</div></div></div>`),t+=`</div><div class="g-validation-failed-message"></div></div><div class="modal-footer"><a class="btn btn-small btn-default" data-dismiss="modal">Cancel</a></div></div></div>`}).call(this,`accessType`in n?n.accessType:typeof accessType<`u`?accessType:void 0,`level`in n?n.level:typeof level<`u`?level:void 0,`mayAdd`in n?n.mayAdd:typeof mayAdd<`u`?mayAdd:void 0,`user`in n?n.user:typeof user<`u`?user:void 0),t}function ZD(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=QD(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function QD(e){var t=``+e,n=$D.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var $D=/["&<>]/;function eO(e){var t=``,n=e||{};return(function(e,n,r){t+=`<div class="g-group-members-header g-group-list-header"><i class="icon-users"></i><span>Members</span>`,n>=e.WRITE&&(t+=`<form class="g-group-invite-form form-inline" role="form"><span><i class="icon-mail-alt"></i></span><div class="form-group g-group-invite-container"></div></form>`),t+=`<div class="g-member-pagination"></div></div><div class="g-group-members-body"><ul class="g-group-members">`,(function(){var i=r;if(typeof i.length==`number`)for(var a=0,o=i.length;a<o;a++){var s=i[a];t=t+`<li`+ZD(`cid`,s.cid,!0,!1)+`><a class="g-member-name"><i class="icon-user"></i><span>`+QD(s.name()??``)+` (`+QD(s.get(`login`)??``)+`)</span></a><div class="g-group-member-controls pull-right">`,n>=e.ADMIN&&(t+=`<span class="dropdown"><a class="g-group-member-promote dropdown-toggle" title="Promote user" data-toggle="dropdown"><i class="icon-up-big"></i><i class="icon-down-dir"></i></a><ul class="dropdown-menu pull-right" role="menu"><li role="presentation"><a class="g-promote-moderator" role="menuitem"><i class="icon-plus"></i><span>Promote to moderator</span></a></li><li role="presentation"><a class="g-promote-admin" role="menuitem"><i class="icon-plus"></i><span>Promote to administrator</span></a></li></ul></span>`),n>=e.WRITE&&(t+=`<a class="g-group-member-remove" title="Remove user from the group"><i class="icon-block"></i></a>`),t+=`</div></li>`}else{var o=0;for(var a in i){o++;var s=i[a];t=t+`<li`+ZD(`cid`,s.cid,!0,!1)+`><a class="g-member-name"><i class="icon-user"></i><span>`+QD(s.name()??``)+` (`+QD(s.get(`login`)??``)+`)</span></a><div class="g-group-member-controls pull-right">`,n>=e.ADMIN&&(t+=`<span class="dropdown"><a class="g-group-member-promote dropdown-toggle" title="Promote user" data-toggle="dropdown"><i class="icon-up-big"></i><i class="icon-down-dir"></i></a><ul class="dropdown-menu pull-right" role="menu"><li role="presentation"><a class="g-promote-moderator" role="menuitem"><i class="icon-plus"></i><span>Promote to moderator</span></a></li><li role="presentation"><a class="g-promote-admin" role="menuitem"><i class="icon-plus"></i><span>Promote to administrator</span></a></li></ul></span>`),n>=e.WRITE&&(t+=`<a class="g-group-member-remove" title="Remove user from the group"><i class="icon-block"></i></a>`),t+=`</div></li>`}}}).call(this),r.length||(t+=`<div class="g-member-list-empty"><i class="icon-info-circled"></i><span>There are no members in this group.</span></div>`),t+=`</ul></div>`}).call(this,`accessType`in n?n.accessType:typeof accessType<`u`?accessType:void 0,`level`in n?n.level:typeof level<`u`?level:void 0,`members`in n?n.members:typeof members<`u`?members:void 0),t}mo();var tO=Y.extend({events:{"click .g-invite-as-member":function(){this._sendInvitation(vm.READ)},"click .g-invite-as-moderator":function(){this._sendInvitation(vm.WRITE)},"click .g-invite-as-admin":function(){this._sendInvitation(vm.ADMIN)},"click .g-add-as-member":function(){this._sendInvitation(vm.READ,!0)},"click .g-add-as-moderator":function(){this._sendInvitation(vm.WRITE,!0)},"click .g-add-as-admin":function(){this._sendInvitation(vm.ADMIN,!0)}},initialize:function(e){this.group=e.group,this.user=e.user},render:function(){return this.$el.html(XD({group:this.group,user:this.user,level:this.group.get(`_accessLevel`),accessType:vm,mayAdd:this.group.mayAddMembers()})).girderModal(this),this},_sendInvitation:function(e,t){this.$el.modal(`hide`),this.trigger(`g:sendInvite`,{user:this.user,group:this.group,level:e,force:t})}}),nO=Y.extend({events:{"click a.g-member-name":function(e){var t=this.membersColl.get((0,W.default)(e.currentTarget).parents(`li`).attr(`cid`));J.navigate(`user/`+t.get(`_id`),{trigger:!0})},"click a.g-group-member-remove":function(e){var t=this.membersColl.get((0,W.default)(e.currentTarget).parents(`li`).attr(`cid`));Rv({text:`Are you sure you want to remove <b> `+U.escape(t.name())+`</b> from this group?`,escapedHtml:!0,confirmCallback:()=>{this.trigger(`g:removeMember`,t)}})},"click .g-promote-moderator":function(e){var t=(0,W.default)(e.currentTarget).parents(`.g-group-members>li`).attr(`cid`),n=this.membersColl.get(t);this.model.off(`g:promoted`).on(`g:promoted`,function(){this.trigger(`g:moderatorAdded`)},this).promoteUser(n,vm.WRITE)},"click .g-promote-admin":function(e){var t=(0,W.default)(e.currentTarget).parents(`.g-group-members>li`).attr(`cid`),n=this.membersColl.get(t);this.model.off(`g:promoted`).on(`g:promoted`,function(){this.trigger(`g:adminAdded`)},this).promoteUser(n,vm.ADMIN)}},initialize:function(e){this.model=e.group,this.modsAndAdmins=U.union(U.pluck(e.admins,`id`),U.pluck(e.moderators,`id`)),this.membersColl=new Tv,this.membersColl.altUrl=`group/`+this.model.get(`_id`)+`/member`,this.membersColl.on(`g:changed`,function(){this.render()},this).fetch()},render:function(){for(var e=[],t=0;t<this.membersColl.models.length;t+=1){var n=this.membersColl.models[t];W.default.inArray(n.id,this.modsAndAdmins)<0&&e.push(n)}return this.$el.html(eO({group:this.model,members:e,level:this.model.get(`_accessLevel`),accessType:vm})),new ZE({el:this.$(`.g-member-pagination`),collection:this.membersColl,parentView:this}).render(),this.userSearch=new Ny({el:this.$(`.g-group-invite-container`),placeholder:`Invite a user to join...`,types:[`user`],parentView:this}).off().on(`g:resultClicked`,this._inviteUser,this).render(),this},_inviteUser:function(e){this.userSearch.resetState(),new tO({el:(0,W.default)(`#g-dialog-container`),group:this.model,user:e,parentView:this}).on(`g:sendInvite`,function(e){this.trigger(`g:sendInvite`,e)},this).render()}});function rO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=iO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function iO(e){var t=``+e,n=aO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var aO=/["&<>]/;function oO(e){var t=``,n=e||{};return(function(e,n,r){t+=`<div class="g-group-mods-header g-group-list-header" title="Group moderators can invite and approve group members."><i class="icon-shield"></i><span>Moderators</span></div><div class="g-group-mods-body"><ul class="g-group-mods">`,(function(){var i=r;if(typeof i.length==`number`)for(var a=0,o=i.length;a<o;a++){var s=i[a];t=t+`<li`+(rO(`userid`,s.id,!0,!1)+rO(`username`,s.name,!0,!1))+`><a class="g-member-name"><i class="icon-user"></i><span>`+iO(s.name??``)+` (`+iO(s.login??``)+`)</span></a><div class="g-group-member-controls pull-right">`,n>=e.ADMIN&&(t+=`<a class="g-group-mod-promote" title="Promote to administrator"><i class="icon-up-big"></i></a><a class="g-group-mod-demote" title="Demote to member"><i class="icon-down-big"></i></a><a class="g-group-mod-remove" title="Remove user from the group"><i class="icon-block"></i></a>`),t+=`</div></li>`}else{var o=0;for(var a in i){o++;var s=i[a];t=t+`<li`+(rO(`userid`,s.id,!0,!1)+rO(`username`,s.name,!0,!1))+`><a class="g-member-name"><i class="icon-user"></i><span>`+iO(s.name??``)+` (`+iO(s.login??``)+`)</span></a><div class="g-group-member-controls pull-right">`,n>=e.ADMIN&&(t+=`<a class="g-group-mod-promote" title="Promote to administrator"><i class="icon-up-big"></i></a><a class="g-group-mod-demote" title="Demote to member"><i class="icon-down-big"></i></a><a class="g-group-mod-remove" title="Remove user from the group"><i class="icon-block"></i></a>`),t+=`</div></li>`}}}).call(this),r.length||(t+=`<div class="g-member-list-empty"><i class="icon-info-circled"></i><span>There are no moderators in this group.</span></div>`),t+=`</ul></div>`}).call(this,`accessType`in n?n.accessType:typeof accessType<`u`?accessType:void 0,`level`in n?n.level:typeof level<`u`?level:void 0,`moderators`in n?n.moderators:typeof moderators<`u`?moderators:void 0),t}mo();var sO=Y.extend({events:{"click .g-group-mod-promote":function(e){var t=new nm({_id:(0,W.default)(e.currentTarget).parents(`li`).attr(`userid`)});this.model.off(`g:promoted`).on(`g:promoted`,function(){this.trigger(`g:adminAdded`)},this).promoteUser(t,vm.ADMIN)},"click .g-group-mod-demote":function(e){var t=(0,W.default)(e.currentTarget).parents(`li`);Rv({text:`Are you sure you want to remove moderator privileges from <b>`+U.escape(t.attr(`username`))+`</b>?`,escapedHtml:!0,confirmCallback:()=>{this.trigger(`g:demoteUser`,t.attr(`userid`))}})},"click a.g-group-mod-remove":function(e){var t=(0,W.default)(e.currentTarget).parents(`li`);Rv({text:`Are you sure you want to remove <b> `+U.escape(t.attr(`username`))+`</b> from this group?`,escapedHtml:!0,confirmCallback:()=>{this.trigger(`g:removeMember`,t.attr(`userid`))}})},"click a.g-member-name":function(e){q.trigger(`g:navigateTo`,LD,{id:(0,W.default)(e.currentTarget).parents(`li`).attr(`userid`)})}},initialize:function(e){this.model=e.group,this.moderators=e.moderators},render:function(){return this.$el.html(oO({group:this.model,level:this.model.get(`_accessLevel`),moderators:this.moderators,accessType:vm})),this}});function cO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=lO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function lO(e){var t=``+e,n=uO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var uO=/["&<>]/;function dO(e){var t=``,n=e||{};return(function(e,n,r,i,a,o,s,c){t+=`<div class="g-group-header"><div class="btn-group pull-right">`,(o||a||n()||r.get(`_accessLevel`)>=e.ADMIN)&&(t+=`<button class="g-group-actions-button btn btn-default dropdown-toggle" data-toggle="dropdown" title="Group actions"><i class="icon-users"></i> Actions<i class="icon-down-dir"></i></button><ul class="g-group-actions-menu dropdown-menu pull-right" role="menu">`,o?t+=`<li role="presentation"><a class="g-group-leave" role="menuitem"><i class="icon-block"></i>Leave group</a></li>`:a?t+=`<li role="presentation"><a class="g-group-join" role="menuitem"><i class="icon-login"></i>Join group</a></li>`:n()&&(t+=`<li role="presentation"><a class="g-group-request-invite" role="menuitem"><i class="icon-export"></i>Request membership</a></li>`),r.get(`_accessLevel`)>=e.ADMIN&&(t+=`<li class="divider" role="presentation"></li><li role="presentation"><a class="g-edit-group" role="menuitem"><i class="icon-edit"></i>Edit group</a></li>`),r.get(`_accessLevel`)>=e.ADMIN&&(t+=`<li class="divider" role="presentation"></li><li role="presentation"><a class="g-group-delete" role="menuitem"><i class="icon-trash"></i>Delete group</a></li>`),t+=`</ul>`),t=t+`</div><div class="g-group-name g-body-title">`+lO(r.name()??``)+`</div><div class="g-group-description g-body-subtitle">`+lO(r.get(`description`)??``)+`</div><div class="g-clear-right"></div></div>`,n()&&(o?(t+=`<div class="g-group-status-container g-member"><i class="icon-ok"></i>`,t+=i?` You are an <b>administrator</b> of this group.`:s?` You are a <b>moderator</b> of this group.`:` You are a <b>member</b> of this group.`,t+=`</div>`):t+=a?`<div class="g-group-status-container g-invited"><i class="icon-mail-alt"></i> You have been invited to this group.<a class="g-group-join"> Join group</a></div>`:c?`<div class="g-group-status-container g-requested-invite"><i class="icon-comment"></i> You have requested to join this group.</div>`:`<div class="g-group-status-container g-nonmember"><i class="icon-minus-circled"></i> You are not a member of this group.<a class="g-group-request-invite"> Request membership</a></div>`,r.get(`_accessLevel`)>=e.ADMIN&&!i&&(t+=`<div class="g-group-status-container g-admin"><i class="icon-star"></i> You have <b>administrator</b> privileges.</div>`)),t+=`<ul class="g-group-tabs nav nav-tabs"><li class="active"><a href="#g-group-tab-roles" data-toggle="tab" name="roles"><i class="icon-th-list"></i> Roles</a></li><li><a href="#g-group-tab-pending" data-toggle="tab" name="pending"><i class="icon-inbox"></i>Pending<div id="g-group-tab-pending-status"></div></a></li></ul><div class="tab-content"><div class="tab-pane active" id="g-group-tab-roles"><div class="g-group-admins-container"></div><div class="g-group-mods-container"></div><div class="g-group-members-container"></div></div><div class="tab-pane" id="g-group-tab-pending"><div class="g-group-requests-container"><div class="g-group-requests-header g-group-list-header"><i class="icon-comment"></i> Requests for membership</div><div class="g-group-requests-body"><ul class="g-group-requests">`,(function(){var n=r.get(`requests`);if(typeof n.length==`number`)for(var i=0,a=n.length;i<a;i++){var o=n[i];t=t+`<li`+cO(`userid`,o.id,!0,!1)+`><a class="g-member-name"><i class="icon-user"></i> `+lO(o.name??``)+` (`+lO(o.login??``)+`)</a><div class="g-group-member-controls pull-right">`,r.get(`_accessLevel`)>=e.WRITE&&(t+=`<a class="g-group-request-accept" title="Add to group"><i class="icon-thumbs-up"></i></a><a class="g-group-request-deny" title="Deny request"><i class="icon-thumbs-down"></i></a>`),t+=`</div></li>`}else{var a=0;for(var i in n){a++;var o=n[i];t=t+`<li`+cO(`userid`,o.id,!0,!1)+`><a class="g-member-name"><i class="icon-user"></i> `+lO(o.name??``)+` (`+lO(o.login??``)+`)</a><div class="g-group-member-controls pull-right">`,r.get(`_accessLevel`)>=e.WRITE&&(t+=`<a class="g-group-request-accept" title="Add to group"><i class="icon-thumbs-up"></i></a><a class="g-group-request-deny" title="Deny request"><i class="icon-thumbs-down"></i></a>`),t+=`</div></li>`}}}).call(this),r.get(`requests`).length||(t+=`<div class="g-member-list-empty"><i class="icon-info-circled"></i> There are no outstanding invitation requests for this group.</div>`),t+=`</ul></div></div><div class="g-group-invites-container"><div class="g-group-invites-header g-group-list-header"><i class="icon-mail-alt"></i> Sent invitations</div><div class="g-group-invites-body"></div></div></div></div>`}).call(this,`AccessType`in n?n.AccessType:typeof AccessType<`u`?AccessType:void 0,`getCurrentUser`in n?n.getCurrentUser:typeof getCurrentUser<`u`?getCurrentUser:void 0,`group`in n?n.group:typeof group<`u`?group:void 0,`isAdmin`in n?n.isAdmin:typeof isAdmin<`u`?isAdmin:void 0,`isInvited`in n?n.isInvited:typeof isInvited<`u`?isInvited:void 0,`isMember`in n?n.isMember:typeof isMember<`u`?isMember:void 0,`isModerator`in n?n.isModerator:typeof isModerator<`u`?isModerator:void 0,`isRequested`in n?n.isRequested:typeof isRequested<`u`?isRequested:void 0),t}mo();var fO=Y.extend({events:{"click .g-edit-group":`editGroup`,"click .g-group-join":`joinGroup`,"click .g-group-leave":`leaveGroup`,"click .g-group-delete":`deleteGroup`,"click .g-group-request-invite":`requestInvitation`,"click .g-group-request-accept":`acceptMembershipRequest`,"click .g-group-request-deny":`denyMembershipRequest`,"click #g-group-tab-pending a.g-member-name":function(e){var t=(0,W.default)(e.currentTarget).parents(`li`).attr(`userid`);J.navigate(`user/`+t,{trigger:!0})}},initialize:function(e){qp(`fetch`),this.tab=e.tab||`roles`,this.edit=e.edit||!1,e.group?(this.model=e.group,this.model.on(`g:accessFetched`,function(){this.render()},this).fetchAccess()):e.id&&(this.model=new Sv,this.model.set(`_id`,e.id),this.model.on(`g:fetched`,function(){this.model.on(`g:accessFetched`,function(){this.render()},this).fetchAccess()},this).fetch())},editGroup:function(){var e=(0,W.default)(`#g-dialog-container`);this.editGroupWidget||=new vD({el:e,model:this.model,parentView:this}).off(`g:saved`).on(`g:saved`,function(){this.render()},this),this.editGroupWidget.render()},deleteGroup:function(){Rv({text:`Are you sure you want to delete the group <b>`+this.model.escape(`name`)+`</b>?`,escapedHtml:!0,confirmCallback:()=>{this.model.on(`g:deleted`,function(){J.navigate(`groups`,{trigger:!0})}).destroy()}})},render:function(){return this.isMember=!1,this.isInvited=!1,this.isRequested=!1,this.isModerator=!1,this.isAdmin=!1,om()&&(U.every(om().get(`groups`),function(e){return e!==this.model.get(`_id`)||(this.isMember=!0,!1)},this),U.every(om().get(`groupInvites`),function(e){return e.groupId!==this.model.get(`_id`)||(this.isInvited=!0,!1)},this),U.every(this.model.get(`requests`)||[],function(e){return e.id!==om().get(`_id`)||(this.isRequested=!0,!1)},this)),this.isMember&&U.every(this.model.get(`access`).users||[],function(e){return e.id!==om().get(`_id`)||(e.level===vm.WRITE?this.isModerator=!0:e.level===vm.ADMIN&&(this.isAdmin=!0),!1)},this),this.$el.html(dO({group:this.model,getCurrentUser:om,AccessType:vm,isInvited:this.isInvited,isRequested:this.isRequested,isMember:this.isMember,isModerator:this.isModerator,isAdmin:this.isAdmin})),this.invitees?this._renderInvitesWidget():(new Jw({el:this.$(`.g-group-invites-body`),parentView:this}).render(),this.invitees=new Tv,this.invitees.altUrl=`group/`+this.model.get(`_id`)+`/invitation`,this.invitees.on(`g:changed`,()=>{this._renderInvitesWidget(),this.updatePendingStatus()},this).fetch()),this._updateRolesLists(),J.navigate(`group/`+this.model.get(`_id`)+`/`+this.tab,{replace:!0}),this.edit&&=(this.model.get(`_accessLevel`)>=vm.ADMIN&&this.editGroup(),!1),U.each((0,W.default)(`.g-group-tabs>li>a`),e=>{var t=(0,W.default)(e);t.tab().on(`shown.bs.tab`,e=>{this.tab=(0,W.default)(e.currentTarget).attr(`name`),J.navigate(`group/`+this.model.get(`_id`)+`/`+this.tab)}),t.attr(`name`)===this.tab&&t.tab(`show`)}),this},_renderInvitesWidget:function(){new qD({el:this.$(`.g-group-invites-body`),invitees:this.invitees,group:this.model,parentView:this}).render(),this.updatePendingStatus()},updatePendingStatus:function(){var e=this.invitees.length+this.model.get(`requests`).length;(0,W.default)(`#g-group-tab-pending-status`).text(` (`+e+`)`)},joinGroup:function(){this.model.off(`g:joined`).on(`g:joined`,function(){this.invitees.fetch(null,!0)},this).joinGroup()},leaveGroup:function(){Rv({text:`Are you sure you want to leave this group?`,confirmCallback:()=>{this.model.off(`g:removed`).on(`g:removed`,()=>{this.render()}).removeMember(om().get(`_id`))}})},removeMember:function(e){var t=e;W.default.type(e)!==`string`&&(t=e.get(`_id`)),this.model.off(`g:removed`).on(`g:removed`,function(){this.render()},this).removeMember(t)},requestInvitation:function(){this.model.off(`g:inviteRequested`).on(`g:inviteRequested`,function(){this.render()},this).requestInvitation()},acceptMembershipRequest:function(e){var t=(0,W.default)(e.currentTarget).parents(`li`).attr(`userid`);this.model.off(`g:invited`).on(`g:invited`,this.render,this).sendInvitation(t,vm.READ,!0)},denyMembershipRequest:function(e){var t=(0,W.default)(e.currentTarget).parents(`li`).attr(`userid`);this.model.off(`g:removed`).on(`g:removed`,this.render,this).removeMember(t)},_updateRolesLists:function(){var e=[],t=[];U.each(this.model.get(`access`).users,function(n){n.level===vm.WRITE?e.push(n):n.level===vm.ADMIN&&t.push(n)},this),this.adminsWidget=new HD({el:this.$(`.g-group-admins-container`),group:this.model,admins:t,parentView:this}).off().on(`g:demoteUser`,function(e){this.model.off(`g:demoted`).on(`g:demoted`,this.render,this).demoteUser(e,vm.ADMIN)},this).on(`g:removeMember`,this.removeMember,this).on(`g:moderatorAdded`,this.render,this).render(),this.modsWidget=new sO({el:this.$(`.g-group-mods-container`),group:this.model,moderators:e,parentView:this}).on(`g:demoteUser`,function(e){this.model.off(`g:demoted`).on(`g:demoted`,this.render,this).demoteUser(e,vm.WRITE)},this).on(`g:removeMember`,this.removeMember,this).on(`g:adminAdded`,this.render,this).render(),this.membersWidget=new nO({el:this.$(`.g-group-members-container`),group:this.model,admins:t,moderators:e,parentView:this}).on(`g:sendInvite`,function(e){var t={force:e.force||!1};this.model.off(`g:invited`).on(`g:invited`,function(){this.invitees.fetch(null,!0),e.force&&this.model.fetchAccess()},this).off(`g:error`).on(`g:error`,function(e){q.trigger(`g:alert`,{text:e.responseJSON.message,type:`warning`})},this).sendInvitation(e.user.id,e.level,!1,t)},this).on(`g:removeMember`,this.removeMember,this).on(`g:moderatorAdded`,this.render,this).on(`g:adminAdded`,this.render,this)}},{fetchAndInit:function(e,t){var n=new Sv;n.set({_id:e}).once(`g:fetched`,function(){q.trigger(`g:navigateTo`,fO,U.extend({group:n},t||{}))},this).fetch()}});function pO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=mO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function mO(e){var t=``+e,n=hO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var hO=/["&<>]/;function gO(e){var t=``,n=e||{};return(function(e){t=t+`<div class="modal-dialog"><div class="modal-content"><form class="modal-form" id="g-file-edit-form" role="form"><div class="modal-header"><button class="close" data-dismiss="modal" aria-hidden="true" type="button">×</button><h4 class="modal-title">Edit file</h4></div><div class="modal-body"><div class="form-group"><label class="control-label" for="g-name">Name</label><input`+(` class="input-sm form-control" id="g-name" type="text" placeholder="Enter file name"`+pO(`value`,e.name(),!0,!1))+`/></div><div class="form-group"><label class="control-label" for="g-mimetype">MIME type</label><input`+(` class="input-sm form-control" id="g-mimetype" type="text" placeholder="Enter MIME type"`+pO(`value`,e.get(`mimeType`),!0,!1))+`/></div><div class="g-validation-failed-message"></div></div><div class="modal-footer"><a class="btn btn-small btn-default" data-dismiss="modal">Cancel</a><button class="g-save-file btn btn-small btn-primary" type="submit"><i class="icon-edit"></i>Save</button></div></form></div></div>`}).call(this,`file`in n?n.file:typeof file<`u`?file:void 0),t}var _O=Y.extend({events:{"submit #g-file-edit-form":function(){var e={name:this.$(`#g-name`).val(),mimeType:this.$(`#g-mimetype`).val()};return this.file.set(e),this.file.off(null,null,this).on(`g:saved`,function(){this.$el.modal(`hide`),this.trigger(`g:saved`,this.file)},this).on(`g:error`,function(e){this.$(`.g-validation-failed-message`).text(e.responseJSON.message),this.$(`button.g-save-file`).girderEnable(!0),this.$(`#g-`+e.responseJSON.field).trigger(`focus`)},this).save(),this.$(`button.g-save-file`).girderEnable(!1),this.$(`.g-validation-failed-message`).empty(),!1}},initialize:function(e){this.file=e.file||null},render:function(){return this.file.get(`mimeType`)===void 0&&this.file.set(`mimeType`,``),this.$el.html(gO({file:this.file})).girderModal(this).on(`shown.bs.modal`,()=>{this.$(`#g-name`).trigger(`select`).trigger(`focus`)}).on(`hidden.bs.modal`,()=>{Iv(`fileedit`,void 0,this.file.get(`_id`))}),Lv(`fileedit`,void 0,this.file.get(`_id`)),this}});function vO(e){var t=``+e,n=yO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var yO=/["&<>]/;function bO(e){var t=``,n=e||{};return(function(e,n,r){t=t+`<div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title">File information</h4><div class="g-dialog-subtitle"><i class="icon-doc-inv"></i><span>`+vO(n.name()??``)+`</span></div></div><div class="modal-body"><div class="g-file-info-lines"><div class="g-file-info-line" property="created"><i class="icon-clock"></i><span>`+vO(`Created `)+`</span><span class="g-bold-part">`+vO(r(n.get(`created`),e)??``)+`</span></div><div class="g-file-info-line" property="mimeType"><i class="icon-info"></i><span>MIME type:</span><span class="g-bold-part"> `+vO((n.get(`mimeType`)||`unknown`)??``)+`</span></div>`,n.has(`size`)&&(t=t+`<div class="g-file-info-line" property="size"><i class="icon-hdd"></i><span>Size:</span><span class="g-bold-part"> `+vO(n.get(`size`)??``)+` bytes</span></div>`),t=t+`<div class="g-file-info-line" property="id"><i class="icon-share"></i><span>Unique ID:</span><span class="g-bold-part"> `+vO(n.id??``)+`</span></div></div></div><div class="modal-footer"><a class="btn btn-small btn-default" data-dismiss="modal">Close</a></div></div></div>`}).call(this,`DATE_SECOND`in n?n.DATE_SECOND:typeof DATE_SECOND<`u`?DATE_SECOND:void 0,`file`in n?n.file:typeof file<`u`?file:void 0,`formatDate`in n?n.formatDate:typeof formatDate<`u`?formatDate:void 0),t}var xO=Y.extend({initialize:function(e){this.parentItem=e.parentItem},render:function(){return this.$el.html(bO({file:this.model,formatDate:X_,DATE_SECOND:3})).girderModal(this),this}});function SO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=CO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function CO(e){var t=``+e,n=wO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var wO=/["&<>]/;function TO(e){var t=``,n=e||{};return(function(e,n,r,i,a,o){t+=`<ul class="g-file-list">`,(function(){var i=n;if(typeof i.length==`number`)for(var s=0,c=i.length;s<c;s++){var l=i[s];t+=`<li class="g-file-list-entry">`,o?(t=t+`<a`+(` class="g-file-list-link"`+SO(`cid`,l.cid,!0,!1)+` title="Download file"`+SO(`target`,l.get(`linkUrl`)?`_blank`:`_self`,!0,!1)+SO(`href`,l.downloadUrl(),!0,!1)+` rel="noopener noreferrer"`)+`>`,l.get(`linkUrl`)?t=t+`<i class="icon-link"></i><span class="g-file-name">`+CO(l.name()??``)+`</span><i class="icon-link-ext"></i>`:t+=`<i class="icon-doc-inv"></i>`+CO(l.name()??``),t+=`</a>`):(t=t+`<span`+(` class="g-file-list-link"`+SO(`cid`,l.cid,!0,!1))+`>`,l.get(`linkUrl`)?t=t+`<i class="icon-link"></i><span class="g-file-name">`+CO(l.name()??``)+`</span><i class="icon-link-ext"></i>`:t+=`<i class="icon-doc-inv"></i>`+CO(l.name()??``),t+=`</span>`),(o||!l.has(`size`)||l.get(`size`)<1e5)&&(t=t+`<a`+(` class="g-view-inline" title="View in browser" target="_blank" rel="noopener noreferrer"`+SO(`href`,l.downloadUrl({contentDisposition:`inline`}),!0,!1))+`><i class="icon-eye"></i></a>`),t=t+`<a`+(` class="g-show-info"`+SO(`file-cid`,l.cid,!0,!1)+` title="Show info"`)+`><i class="icon-info"></i></a>`,l.has(`size`)&&(t=t+`<div class="g-file-size">`+CO(r(l.get(`size`))??``)+`</div>`),t=t+`<div`+(` class="g-file-actions-container"`+SO(`file-cid`,l.cid,!0,!1))+`>`,a&&a.get(`_accessLevel`)>=e.WRITE&&(t+=`<a class="g-update-info" title="Edit file info"><i class="icon-edit"></i></a><a class="g-update-contents" title="Replace file contents"><i class="icon-upload"></i></a><a class="g-delete-file" title="Delete file"><i class="icon-cancel"></i></a>`),t+=`</div></li>`}else{var c=0;for(var s in i){c++;var l=i[s];t+=`<li class="g-file-list-entry">`,o?(t=t+`<a`+(` class="g-file-list-link"`+SO(`cid`,l.cid,!0,!1)+` title="Download file"`+SO(`target`,l.get(`linkUrl`)?`_blank`:`_self`,!0,!1)+SO(`href`,l.downloadUrl(),!0,!1)+` rel="noopener noreferrer"`)+`>`,l.get(`linkUrl`)?t=t+`<i class="icon-link"></i><span class="g-file-name">`+CO(l.name()??``)+`</span><i class="icon-link-ext"></i>`:t+=`<i class="icon-doc-inv"></i>`+CO(l.name()??``),t+=`</a>`):(t=t+`<span`+(` class="g-file-list-link"`+SO(`cid`,l.cid,!0,!1))+`>`,l.get(`linkUrl`)?t=t+`<i class="icon-link"></i><span class="g-file-name">`+CO(l.name()??``)+`</span><i class="icon-link-ext"></i>`:t+=`<i class="icon-doc-inv"></i>`+CO(l.name()??``),t+=`</span>`),(o||!l.has(`size`)||l.get(`size`)<1e5)&&(t=t+`<a`+(` class="g-view-inline" title="View in browser" target="_blank" rel="noopener noreferrer"`+SO(`href`,l.downloadUrl({contentDisposition:`inline`}),!0,!1))+`><i class="icon-eye"></i></a>`),t=t+`<a`+(` class="g-show-info"`+SO(`file-cid`,l.cid,!0,!1)+` title="Show info"`)+`><i class="icon-info"></i></a>`,l.has(`size`)&&(t=t+`<div class="g-file-size">`+CO(r(l.get(`size`))??``)+`</div>`),t=t+`<div`+(` class="g-file-actions-container"`+SO(`file-cid`,l.cid,!0,!1))+`>`,a&&a.get(`_accessLevel`)>=e.WRITE&&(t+=`<a class="g-update-info" title="Edit file info"><i class="icon-edit"></i></a><a class="g-update-contents" title="Replace file contents"><i class="icon-upload"></i></a><a class="g-delete-file" title="Delete file"><i class="icon-cancel"></i></a>`),t+=`</div></li>`}}}).call(this),i&&(t+=`<li class="g-show-more"><a class="g-show-more-files"><i class="icon-level-down"></i>Show more files...</a></li>`),t+=`</ul>`}).call(this,`AccessType`in n?n.AccessType:typeof AccessType<`u`?AccessType:void 0,`files`in n?n.files:typeof files<`u`?files:void 0,`formatSize`in n?n.formatSize:typeof formatSize<`u`?formatSize:void 0,`hasMore`in n?n.hasMore:typeof hasMore<`u`?hasMore:void 0,`parentItem`in n?n.parentItem:typeof parentItem<`u`?parentItem:void 0,`showDownload`in n?n.showDownload:typeof showDownload<`u`?showDownload:void 0),t}var EO=Y.extend({events:{"click a.g-show-more-files":function(){this.collection.fetchNextPage()},"click a.g-show-info":function(e){var t=(0,W.default)(e.currentTarget).attr(`file-cid`);new xO({el:(0,W.default)(`#g-dialog-container`),model:this.collection.get(t),parentItem:this.parentItem,parentView:this}).render()},"click a.g-update-contents":function(e){var t=(0,W.default)(e.currentTarget).parent().attr(`file-cid`);this.uploadDialog(t)},"click a.g-update-info":function(e){var t=(0,W.default)(e.currentTarget).parent().attr(`file-cid`);this.editFileDialog(t)},"click a.g-delete-file":function(e){var t=(0,W.default)(e.currentTarget).parent().attr(`file-cid`),n=this.collection.get(t);Rv({text:`Are you sure you want to delete the file <b>`+n.escape(`name`)+`</b>?`,yesText:`Delete`,escapedHtml:!0,confirmCallback:()=>{n.once(`g:deleted`,function(){q.trigger(`g:alert`,{icon:`ok`,type:`success`,text:`File deleted.`,timeout:4e3}),this.render()},this).once(`g:error`,function(){q.trigger(`g:alert`,{icon:`cancel`,text:`Failed to delete file.`,type:`danger`,timeout:4e3})}).destroy()}})}},initialize:function(e){this.upload=e.upload,this.fileEdit=e.fileEdit,this.checked=[],this.collection=new bv,this.collection.altUrl=`item/`+(e.itemId||e.item.get(`_id`))+`/files`,this.collection.append=!0,this.collection.on(`g:changed`,function(){this.render(),this.trigger(`g:changed`)},this).fetch(),this.parentItem=e.item},editFileDialog:function(e){this.editFileWidget=new _O({el:(0,W.default)(`#g-dialog-container`),file:this.collection.get(e),parentView:this}).off(`g:saved`,null,this).on(`g:saved`,function(){this.render()},this),this.editFileWidget.render()},uploadDialog:function(e){new dE({el:(0,W.default)(`#g-dialog-container`),title:`Replace file contents`,parent:this.collection.get(e),parentType:`file`,parentView:this}).on(`g:uploadFinished`,function(){q.trigger(`g:alert`,{icon:`ok`,text:`File contents updated.`,type:`success`,timeout:4e3})},this).render()},render:function(){return this.checked=[],this.$el.html(TO({files:this.collection.toArray(),hasMore:this.collection.hasNextPage(),AccessType:vm,formatSize:Z_,showDownload:qv(this),parentItem:this.parentItem})),this.fileEdit?(this.editFileDialog(this.fileEdit),this.fileEdit=!1):this.upload&&=(this.uploadDialog(this.upload),!1),this},insertFile:function(e){this.collection.add(e),this.render(),this.trigger(`g:changed`)}});function DO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=OO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function OO(e){var t=``+e,n=kO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var kO=/["&<>]/;function AO(e){var t=``,n=e||{};return(function(e){t+=`<ol class="breadcrumb">`,(function(){var n=e;if(typeof n.length==`number`)for(var r=0,i=n.length;r<i;r++){var a=n[r];t=t+`<li><a`+(` class="g-item-breadcrumb-link"`+DO(`data-id`,a.object._id,!0,!1)+DO(`data-type`,a.type,!0,!1))+`>`,a.type===`user`?t+=`<i class="icon-user"></i>`+OO(a.object.login??``):a.type===`collection`?t+=`<i class="icon-sitemap"></i>`+OO(a.object.name??``):t+=OO(a.object.name??``),t+=`</a></li>`}else{var i=0;for(var r in n){i++;var a=n[r];t=t+`<li><a`+(` class="g-item-breadcrumb-link"`+DO(`data-id`,a.object._id,!0,!1)+DO(`data-type`,a.type,!0,!1))+`>`,a.type===`user`?t+=`<i class="icon-user"></i>`+OO(a.object.login??``):a.type===`collection`?t+=`<i class="icon-sitemap"></i>`+OO(a.object.name??``):t+=OO(a.object.name??``),t+=`</a></li>`}}}).call(this),t+=`<div class="pull-right"><a class="g-hierarchy-level-up" title="Go to parent folder"><i class="icon-level-up"></i></a></div></ol>`}).call(this,`parentChain`in n?n.parentChain:typeof parentChain<`u`?parentChain:void 0),t}var jO=Y.extend({events:{"click a.g-item-breadcrumb-link":function(e){var t=(0,W.default)(e.currentTarget);J.navigate(t.data(`type`)+`/`+t.data(`id`),{trigger:!0})},"click a.g-hierarchy-level-up":function(){var e=this.parentChain.pop().object;J.navigate(`folder/`+e._id,{trigger:!0})}},initialize:function(e){this.parentChain=e.parentChain,this.render()},render:function(){return this.$el.html(AO({parentChain:this.parentChain})),this}});function MO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=NO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function NO(e){var t=``+e,n=PO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var PO=/["&<>]/;function FO(e){var t=``,n=e||{};return(function(e,n,r,i,a,o,s,c){t+=`<div class="g-item-breadcrumb-container"></div><div class="g-item-header"><div class="pull-right">`,r>=e.WRITE&&(t+=`<button class="g-upload-into-item btn btn-sm btn-success" title="Upload files into item"><i class="icon-upload"></i></button>`),(c||r>=e.WRITE)&&(t+=`<div class="btn-group"><button class="g-item-actions-button btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" title="Item actions"><i class="icon-doc-text-inv"></i> Actions<i class="icon-down-dir"></i></button><ul class="g-item-actions-menu dropdown-menu pull-right" role="menu">`,c&&(t=t+`<li role="presentation"><a`+(` class="g-download-item" role="menuitem"`+MO(`href`,o.downloadUrl(),!0,!1))+`><i class="icon-download"></i>Download item</a></li>`),c&&r>=e.WRITE&&(t+=`<li class="divider" role="presentation"></li>`),r>=e.WRITE&&(t+=`<li role="presentation"><a class="g-edit-item" role="menuitem"><i class="icon-edit"></i>Edit item</a></li><li class="divider" role="presentation"></li><li role="presentation"><a class="g-delete-item" role="menuitem"><i class="icon-trash"></i>Delete item</a></li>`),t+=`</ul></div>`),t=t+`</div><div class="g-item-name g-body-title">`+NO(o.name()??``)+`</div></div><div class="g-item-description">`+(s(o.get(`description`))??``)+`</div><div class="g-item-info"><div class="g-item-info-header"><i class="icon-info"></i>Info</div><div class="g-item-size g-info-list-entry"><i class="icon-hdd"></i>`,t=o.get(`size`)<1024?t+NO(o.get(`size`)??``)+` bytes`:t+NO(a(o.get(`size`))??``)+` (`+NO(o.get(`size`)??``)+` bytes)`,t=t+`</div><div class="g-item-created g-info-list-entry"><i class="icon-clock"></i>Created on `+NO(i(o.get(`created`),n)??``)+`</div><div class="g-item-updated g-info-list-entry"><i class="icon-clock"></i>Updated on `+NO(i(o.get(`updated`),n)??``)+`</div><div class="g-item-id g-info-list-entry"><i class="icon-share"></i>Unique ID: `+NO(o.id??``)+`</div></div><div class="g-item-metadata"></div><div class="g-item-files"><div class="g-item-files-header"><i class="icon-docs"></i> Files & links</div><div class="g-item-files-container"></div></div>`}).call(this,`AccessType`in n?n.AccessType:typeof AccessType<`u`?AccessType:void 0,`DATE_SECOND`in n?n.DATE_SECOND:typeof DATE_SECOND<`u`?DATE_SECOND:void 0,`accessLevel`in n?n.accessLevel:typeof accessLevel<`u`?accessLevel:void 0,`formatDate`in n?n.formatDate:typeof formatDate<`u`?formatDate:void 0,`formatSize`in n?n.formatSize:typeof formatSize<`u`?formatSize:void 0,`item`in n?n.item:typeof item<`u`?item:void 0,`renderMarkdown`in n?n.renderMarkdown:typeof renderMarkdown<`u`?renderMarkdown:void 0,`showDownload`in n?n.showDownload:typeof showDownload<`u`?showDownload:void 0),t}mo();var IO=Y.extend({events:{"click .g-edit-item":`editItem`,"click .g-delete-item":`deleteItem`,"click .g-upload-into-item":`uploadIntoItem`},initialize:function(e){qp(`fetch`),this.edit=e.edit||!1,this.fileEdit=e.fileEdit||!1,this.upload=e.upload||!1,e.item?(this.model=e.item,this.render()):console.error(`Implement fetch then render item`)},uploadIntoItem:function(){new dE({el:(0,W.default)(`#g-dialog-container`),parent:this.model,parentType:`item`,parentView:this}).on(`g:uploadFinished`,function(){Iv(`upload`),this.upload=!1,q.trigger(`g:alert`,{icon:`ok`,text:`Files added.`,type:`success`,timeout:4e3}),this.fileListWidget.collection.fetch(null,!0)},this).render()},editItem:function(){var e=(0,W.default)(`#g-dialog-container`);this.editItemWidget||=new hT({el:e,item:this.model,parentView:this}).off(`g:saved`).on(`g:saved`,function(){this.render()},this),this.editItemWidget.render()},deleteItem:function(){var e=this.model.get(`folderId`),t=this.model.get(`baseParentType`)+`/`+this.model.get(`baseParentId`)+`/folder/`+e;Rv({text:`Are you sure you want to delete <b>`+this.model.escape(`name`)+`</b>?`,yesText:`Delete`,escapedHtml:!0,confirmCallback:()=>{this.model.on(`g:deleted`,()=>{J.navigate(t,{trigger:!0})}).off(`g:error`).on(`g:error`,()=>{this.render(),q.trigger(`g:alert`,{icon:`cancel`,text:`Failed to delete item.`,type:`danger`,timeout:4e3})},this).destroy()}})},render:function(){return this.model.getAccessLevel(e=>{this.accessLevel=e,this.$el.html(FO({item:this.model,accessLevel:e,AccessType:vm,formatSize:Z_,formatDate:X_,renderMarkdown:iv,showDownload:qv(this),DATE_SECOND:3})),this.fileListWidget=new EO({el:this.$(`.g-item-files-container`),item:this.model,fileEdit:this.fileEdit,upload:this.upload,parentView:this}),this.fileListWidget.once(`g:changed`,function(){this.trigger(`g:rendered`)},this),this.fileEdit=!1,this.upload=!1,this.metadataWidget=new nE({el:this.$(`.g-item-metadata`),item:this.model,accessLevel:e,parentView:this}),this.model.getRootPath(e=>{this.breadcrumbWidget=new jO({el:this.$(`.g-item-breadcrumb-container`),parentChain:e,parentView:this})}),this.edit&&=(this.editItem(),!1)}),this}},{fetchAndInit:function(e,t){var n=new gv;n.set({_id:e}).on(`g:fetched`,function(){q.trigger(`g:navigateTo`,IO,U.extend({item:n},t||{}))},this).fetch()}});function LO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=RO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function RO(e){var t=``+e,n=zO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var zO=/["&<>]/;function BO(e){var t=``,n=e||{};return(function(e){t+=`<div class="g-body-title">Plugins</div><div class="g-plugin-list-container">`,(function(){var n=e;if(typeof n.length==`number`)for(var r=0,i=n.length;r<i;r++){var a=n[r],o=!a.value.version||a.value.version.indexOf(`0.`)===0;t=t+`<div`+(` class="g-plugin-list-item"`+LO(`data-name`,a.key,!0,!1))+`><div class="g-plugin-name">`,t=a.value.url?t+`<a`+(LO(`href`,a.value.url,!0,!1)+` target="_blank"`)+`>`+RO(a.value.name??``)+`</a>`:t+`<span>`+RO(a.value.name??``)+`</span>`,a.value.version&&(t=t+`<span class="g-plugin-version">Version `+RO(a.value.version??``)+`</span>`),o&&(t+=`<span class="g-plugin-list-item-notice g-plugin-list-item-experimental-notice" title="WARNING: this plugin is an alpha version and is subject to breaking changes; use at your own risk.">Experimental</span>`),a.value.configRoute&&(t=t+`<a`+(` class="g-plugin-config-link"`+LO(`g-route`,a.value.configRoute,!0,!1)+` title="Configure Plugin"`)+`><i class="icon-cog"></i></a>`),t=t+`</div><div class="g-plugin-description">`+RO(a.value.description??``)+`</div></div>`}else{var i=0;for(var r in n){i++;var a=n[r],o=!a.value.version||a.value.version.indexOf(`0.`)===0;t=t+`<div`+(` class="g-plugin-list-item"`+LO(`data-name`,a.key,!0,!1))+`><div class="g-plugin-name">`,t=a.value.url?t+`<a`+(LO(`href`,a.value.url,!0,!1)+` target="_blank"`)+`>`+RO(a.value.name??``)+`</a>`:t+`<span>`+RO(a.value.name??``)+`</span>`,a.value.version&&(t=t+`<span class="g-plugin-version">Version `+RO(a.value.version??``)+`</span>`),o&&(t+=`<span class="g-plugin-list-item-notice g-plugin-list-item-experimental-notice" title="WARNING: this plugin is an alpha version and is subject to breaking changes; use at your own risk.">Experimental</span>`),a.value.configRoute&&(t=t+`<a`+(` class="g-plugin-config-link"`+LO(`g-route`,a.value.configRoute,!0,!1)+` title="Configure Plugin"`)+`><i class="icon-cog"></i></a>`),t=t+`</div><div class="g-plugin-description">`+RO(a.value.description??``)+`</div></div>`}}}).call(this),t+=`</div>`}).call(this,`allPlugins`in n?n.allPlugins:typeof allPlugins<`u`?allPlugins:void 0),t}mo();var VO=Y.extend({events:{"click a.g-plugin-config-link":function(e){var t=(0,W.default)(e.currentTarget).attr(`g-route`);J.navigate(t,{trigger:!0})}},initialize:function(e){qp(`fetch`),e.all?(this.allPlugins=e.all,this.render()):Up({url:`system/plugins`,method:`GET`}).done(e=>{this.allPlugins=e.all,this.render()}).fail(()=>{J.navigate(`/`,{trigger:!0})})},render:function(){return U.each(this.allPlugins,function(e,t){e.configRoute=Kv(t)},this),this.$el.html(BO({allPlugins:this._sortPlugins(this.allPlugins)})),this},_sortPlugins:function(e){var t=U.map(e,function(e,t){return{key:t,value:e}});return t.sort(function(e,t){return e.value.name.localeCompare(t.value.name)}),t}}),HO=mm.extend({resourceName:`system/setting/collection_creation_policy`,fetchAccess:function(){return Up({url:`${this.resourceName}/access`,method:`GET`}).done(e=>(this.set(`access`,e),this.trigger(`g:accessFetched`),e)).fail(e=>{this.trigger(`g:error`,e)})}});function UO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=WO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function WO(e){var t=``+e,n=GO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var GO=/["&<>]/;function KO(e){var t=``,n=e||{};return(function(e,n){t=t+`<div class="g-body-title">System configuration</div><div class="g-body-subtitle"><p>Note: all settings other than those referencing data in the database should be set as
|
|
2636
|
-
environment variables in the execution environment.</p></div><form class="g-settings-form" role="form"><div class="g-settings-form-container"><h4>Instance Branding</h4><div class="form-group"><label for="g-core-brand-name">Brand Name</label><input`+(` class="form-control input-sm" id="g-core-brand-name" disabled="disabled" type="text"`+UO(`value`,n[`core.brand_name`]||``,!0,!1)+` title="The brand name of the application."`)+`/></div><div class="form-group"><label for="g-core-contact-email-address">Contact email address</label><input`+(` class="form-control input-sm" id="g-core-contact-email-address" disabled="disabled" type="text"`+UO(`value`,n[`core.contact_email_address`]||``,!0,!1)+` title="The contact email address for users to obtain support with this instance."`)+`/></div><div class="form-group"><label for="g-core-banner-color">Banner Color</label><div id="g-core-banner-color-container"><input`+(` class="form-control input-sm" id="g-core-banner-color" disabled="disabled" type="color"`+UO(`value`,n[`core.banner_color`],!0,!1)+` title="The banner color of the application."`)+`/></div></div></div><div class="form-group"><label for="g-core-privacy-notice">Privacy Notice Link</label><input`+(` class="form-control input-sm" id="g-core-privacy-notice" disabled="disabled" type="text"`+UO(`value`,n[`core.privacy_notice`]||``,!0,!1)+` title="The privacy notice link."`)+`/></div><div class="form-group"><label for="g-core-cookie-lifetime">Cookie duration (days)</label><input`+(` class="form-control input-sm" id="g-core-cookie-lifetime" disabled="disabled" type="text"`+UO(`value`,n[`core.cookie_lifetime`]||``,!0,!1)+` title="How long users will stay logged in."`)+`/></div><div class="g-settings-form-container"><h4>Administrative Policy</h4><div class="form-group"><label for="g-core-registration-policy">Registration policy</label><select class="form-control input-sm" id="g-core-registration-policy" disabled="disabled"><option`+(` value="open"`+UO(`selected`,n[`core.registration_policy`]===`open`,!0,!1))+`>Open registration</option><option`+(` value="closed"`+UO(`selected`,n[`core.registration_policy`]===`closed`,!0,!1))+`>Closed registration</option><option`+(` value="approve"`+UO(`selected`,n[`core.registration_policy`]===`approve`,!0,!1))+`>Admin approval required</option></select></div><div class="form-group"><label for="g-core-email-verification">Email verification</label><select class="form-control input-sm" id="g-core-email-verification" disabled="disabled"><option`+(` value="required"`+UO(`selected`,n[`core.email_verification`]===`required`,!0,!1))+`>Required</option><option`+(` value="optional"`+UO(`selected`,n[`core.email_verification`]===`optional`,!0,!1))+`>Optional</option><option`+(` value="disabled"`+UO(`selected`,n[`core.email_verification`]===`disabled`,!0,!1))+`>Disabled</option></select></div><div class="form-group"><label for="g-core-add-to-group-policy">Allow members to be directly added to groups</label><select class="form-control input-sm" id="g-core-add-to-group-policy" disabled="disabled"><option`+(` value="never"`+UO(`selected`,n[`core.add_to_group_policy`]===`never`,!0,!1))+`>No, members must be invited and accept invitations</option><option`+(` value="noadmin"`+UO(`selected`,n[`core.add_to_group_policy`]===`noadmin`,!0,!1))+`>No, except for group administrators when enabled per group</option><option`+(` value="nomod"`+UO(`selected`,n[`core.add_to_group_policy`]===`nomod`,!0,!1))+`>No, except for group administrators and moderators when enabled per group</option><option`+(` value="yesadmin"`+UO(`selected`,n[`core.add_to_group_policy`]===`yesadmin`,!0,!1))+`>Yes, by group administrators unless disabled per group</option><option`+(` value="yesmod"`+UO(`selected`,n[`core.add_to_group_policy`]===`yesmod`,!0,!1))+`>Yes, by group administrators and moderators unless disabled per group</option></select></div><div class="g-collection-create-policy-container"><label>Collection creation policy</label><p>Allow additional users and groups to create collections.</p><input class="g-setting-switch" type="checkbox" checked="checked" data-size="mini" data-on-color="primary"/><div class="access-widget-container"></div><textarea class="hide" id="g-core-collection-create-policy">`+WO(e.stringify(n[`core.collection_create_policy`])??``)+`</textarea></div><div class="form-group"><label for="g-core-user-default-folders">Create default folders for new users</label><select class="form-control input-sm" id="g-core-user-default-folders" disabled="disabled"><option`+(` value="none"`+UO(`selected`,n[`core.user_default_folders`]===`none`,!0,!1))+`>No</option><option`+(` value="public_private"`+UO(`selected`,n[`core.user_default_folders`]===`public_private`,!0,!1))+`>Yes, "Public" and "Private"</option></select></div><div class="form-group"><div class="checkbox"><label for="g-core-api-keys"><input`+(` id="g-core-api-keys" type="checkbox"`+UO(`checked`,n[`core.api_keys`],!0,!1)+` disabled="disabled"`)+`/>Enable API keys</label></div></div><div class="form-group"><div class="checkbox"><label for="g-core-enable-password-login"><input`+(` id="g-core-enable-password-login" type="checkbox"`+UO(`checked`,n[`core.enable_password_login`],!0,!1)+` disabled="disabled"`)+`/>Enable password login</label></div></div><div class="form-group"><div class="checkbox"><label for="g-core-disable-anonymous-access"><input`+(` id="g-core-disable-anonymous-access" disabled="disabled" type="checkbox"`+UO(`checked`,n[`core.disable_anonymous_access`],!0,!1))+`/>Disable anonymous access</label></div></div></div><div class="g-settings-form-container"><h4>Email Creation</h4><div class="form-group"><label for="g-core-email-from-address">Email from address</label><input`+(` class="form-control input-sm" id="g-core-email-from-address" disabled="disabled" type="text"`+UO(`value`,n[`core.email_from_address`]||``,!0,!1)+` title="The email address the system will use when sending emails."`)+`/></div><div class="form-group"><label for="g-core-email-host">Email host</label><input`+(` class="form-control input-sm" id="g-core-email-host" disabled="disabled" type="text"`+UO(`value`,n[`core.email_host`]||``,!0,!1)+` title="The host email server that is shown as a link in the footer of emails."`)+`/></div></div><div class="g-settings-form-container"><h4>Email Delivery</h4><div class="form-group"><label for="g-core-smtp-host">SMTP host</label><input`+(` class="form-control input-sm" id="g-core-smtp-host" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp_host`]||``,!0,!1)+` title="The hostname of the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-port">SMTP port</label><input`+(` class="form-control input-sm" id="g-core-smtp-port" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp.port`]||``,!0,!1)+` title="The port number of the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-encryption">SMTP encryption</label><select class="form-control input-sm" id="g-core-smtp-encryption" disabled="disabled"><option`+(` value="none"`+UO(`selected`,n[`core.smtp.encryption`]===`none`,!0,!1))+`>None</option><option`+(` value="starttls"`+UO(`selected`,n[`core.smtp.encryption`]===`starttls`,!0,!1))+`>Use STARTTLS</option><option`+(` value="ssl"`+UO(`selected`,n[`core.smtp.encryption`]===`ssl`,!0,!1))+`>Use SSL/TLS</option></select></div><div class="form-group"><label for="g-core-smtp-username">SMTP username</label><input`+(` class="form-control input-sm" id="g-core-smtp-username" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp.username`]||``,!0,!1)+` title="The username, if any, used to authenticate to the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-password">SMTP password</label><input`+(` class="form-control input-sm" id="g-core-smtp-password" disabled="disabled" type="password"`+UO(`value`,n[`core.smtp.password`]||``,!0,!1)+` title="The password, if any, used to authenticate to the SMTP server used to send emails."`)+`/></div></div><div class="panel-group" id="g-configuration-accordion"><div class="panel panel-default"><div class="panel-heading" data-toggle="collapse" data-parent="#g-configuration-accordion" data-target="#g-advanced-settings-tab"><div class="panel-title"><a><b>Advanced Settings</b></a></div></div><div class="panel-collapse collapse" id="g-advanced-settings-tab"><div class="panel-body"><p>These settings should only be changed if you are certain of what you are doing.</p><div class="form-group"><label for="g-core-server-root">Server root URL</label><input`+(` class="form-control input-sm" id="g-core-server-root" disabled="disabled" type="text"`+UO(`value`,n[`core.server_root`]||``,!0,!1)+` placeholder="Detect automatically"`)+`/></div><div class="form-group"><label for="g-core-upload-minimum-chunk-size">Upload minimum chunk size (bytes)</label><br/><span>This applies to Filesystem assetstores.</span><input`+(` class="form-control input-sm" id="g-core-upload-minimum-chunk-size" disabled="disabled" type="text"`+UO(`value`,n[`core.upload_minimum_chunk_size`]||``,!0,!1)+` title="For large files, the minimum size of all but the last chunk."`)+`/></div><div class="g-settings-form-container"><h4>CORS</h4><p>CORS (Cross-origin resource sharing) allows access from other websites.
|
|
2636
|
+
environment variables in the execution environment.</p></div><form class="g-settings-form" role="form"><div class="g-settings-form-container"><h4>Instance Branding</h4><div class="form-group"><label for="g-core-brand-name">Brand Name</label><input`+(` class="form-control input-sm" id="g-core-brand-name" disabled="disabled" type="text"`+UO(`value`,n[`core.brand_name`]||``,!0,!1)+` title="The brand name of the application."`)+`/></div><div class="form-group"><label for="g-core-contact-email-address">Contact email address</label><input`+(` class="form-control input-sm" id="g-core-contact-email-address" disabled="disabled" type="text"`+UO(`value`,n[`core.contact_email_address`]||``,!0,!1)+` title="The contact email address for users to obtain support with this instance."`)+`/></div><div class="form-group"><label for="g-core-banner-color">Banner Color</label><div id="g-core-banner-color-container"><input`+(` class="form-control input-sm" id="g-core-banner-color" disabled="disabled" type="color"`+UO(`value`,n[`core.banner_color`],!0,!1)+` title="The banner color of the application."`)+`/></div></div></div><div class="form-group"><label for="g-core-privacy-notice">Privacy Notice Link</label><input`+(` class="form-control input-sm" id="g-core-privacy-notice" disabled="disabled" type="text"`+UO(`value`,n[`core.privacy_notice`]||``,!0,!1)+` title="The privacy notice link."`)+`/></div><div class="form-group"><label for="g-core-cookie-lifetime">Cookie duration (days)</label><input`+(` class="form-control input-sm" id="g-core-cookie-lifetime" disabled="disabled" type="text"`+UO(`value`,n[`core.cookie_lifetime`]||``,!0,!1)+` title="How long users will stay logged in."`)+`/></div><div class="form-group"><label for="g-core-show-download">Download control visibility</label><select class="form-control input-sm" id="g-core-show-download" disabled="disabled"><option`+(` value="all"`+UO(`selected`,n[`core.show_download`]===`all`,!0,!1))+`>Visible to anyone</option><option`+(` value="user"`+UO(`selected`,n[`core.show_download`]===`user`,!0,!1))+`>Visible to logged-in users</option><option`+(` value="admin"`+UO(`selected`,n[`core.show_download`]===`admin`,!0,!1))+`>Visible to admins only</option><option`+(` value="none"`+UO(`selected`,n[`core.show_download`]===`none`,!0,!1))+`>Not visible to anyone</option></select></div><div class="g-settings-form-container"><h4>Administrative Policy</h4><div class="form-group"><label for="g-core-registration-policy">Registration policy</label><select class="form-control input-sm" id="g-core-registration-policy" disabled="disabled"><option`+(` value="open"`+UO(`selected`,n[`core.registration_policy`]===`open`,!0,!1))+`>Open registration</option><option`+(` value="closed"`+UO(`selected`,n[`core.registration_policy`]===`closed`,!0,!1))+`>Closed registration</option><option`+(` value="approve"`+UO(`selected`,n[`core.registration_policy`]===`approve`,!0,!1))+`>Admin approval required</option></select></div><div class="form-group"><label for="g-core-email-verification">Email verification</label><select class="form-control input-sm" id="g-core-email-verification" disabled="disabled"><option`+(` value="required"`+UO(`selected`,n[`core.email_verification`]===`required`,!0,!1))+`>Required</option><option`+(` value="optional"`+UO(`selected`,n[`core.email_verification`]===`optional`,!0,!1))+`>Optional</option><option`+(` value="disabled"`+UO(`selected`,n[`core.email_verification`]===`disabled`,!0,!1))+`>Disabled</option></select></div><div class="form-group"><label for="g-core-add-to-group-policy">Allow members to be directly added to groups</label><select class="form-control input-sm" id="g-core-add-to-group-policy" disabled="disabled"><option`+(` value="never"`+UO(`selected`,n[`core.add_to_group_policy`]===`never`,!0,!1))+`>No, members must be invited and accept invitations</option><option`+(` value="noadmin"`+UO(`selected`,n[`core.add_to_group_policy`]===`noadmin`,!0,!1))+`>No, except for group administrators when enabled per group</option><option`+(` value="nomod"`+UO(`selected`,n[`core.add_to_group_policy`]===`nomod`,!0,!1))+`>No, except for group administrators and moderators when enabled per group</option><option`+(` value="yesadmin"`+UO(`selected`,n[`core.add_to_group_policy`]===`yesadmin`,!0,!1))+`>Yes, by group administrators unless disabled per group</option><option`+(` value="yesmod"`+UO(`selected`,n[`core.add_to_group_policy`]===`yesmod`,!0,!1))+`>Yes, by group administrators and moderators unless disabled per group</option></select></div><div class="g-collection-create-policy-container"><label>Collection creation policy</label><p>Allow additional users and groups to create collections.</p><input class="g-setting-switch" type="checkbox" checked="checked" data-size="mini" data-on-color="primary"/><div class="access-widget-container"></div><textarea class="hide" id="g-core-collection-create-policy">`+WO(e.stringify(n[`core.collection_create_policy`])??``)+`</textarea></div><div class="form-group"><label for="g-core-user-default-folders">Create default folders for new users</label><select class="form-control input-sm" id="g-core-user-default-folders" disabled="disabled"><option`+(` value="none"`+UO(`selected`,n[`core.user_default_folders`]===`none`,!0,!1))+`>No</option><option`+(` value="public_private"`+UO(`selected`,n[`core.user_default_folders`]===`public_private`,!0,!1))+`>Yes, "Public" and "Private"</option></select></div><div class="form-group"><div class="checkbox"><label for="g-core-api-keys"><input`+(` id="g-core-api-keys" type="checkbox"`+UO(`checked`,n[`core.api_keys`],!0,!1)+` disabled="disabled"`)+`/>Enable API keys</label></div></div><div class="form-group"><div class="checkbox"><label for="g-core-enable-password-login"><input`+(` id="g-core-enable-password-login" type="checkbox"`+UO(`checked`,n[`core.enable_password_login`],!0,!1)+` disabled="disabled"`)+`/>Enable password login</label></div></div><div class="form-group"><div class="checkbox"><label for="g-core-disable-anonymous-access"><input`+(` id="g-core-disable-anonymous-access" disabled="disabled" type="checkbox"`+UO(`checked`,n[`core.disable_anonymous_access`],!0,!1))+`/>Disable anonymous access</label></div></div></div><div class="g-settings-form-container"><h4>Email Creation</h4><div class="form-group"><label for="g-core-email-from-address">Email from address</label><input`+(` class="form-control input-sm" id="g-core-email-from-address" disabled="disabled" type="text"`+UO(`value`,n[`core.email_from_address`]||``,!0,!1)+` title="The email address the system will use when sending emails."`)+`/></div><div class="form-group"><label for="g-core-email-host">Email host</label><input`+(` class="form-control input-sm" id="g-core-email-host" disabled="disabled" type="text"`+UO(`value`,n[`core.email_host`]||``,!0,!1)+` title="The host email server that is shown as a link in the footer of emails."`)+`/></div></div><div class="g-settings-form-container"><h4>Email Delivery</h4><div class="form-group"><label for="g-core-smtp-host">SMTP host</label><input`+(` class="form-control input-sm" id="g-core-smtp-host" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp_host`]||``,!0,!1)+` title="The hostname of the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-port">SMTP port</label><input`+(` class="form-control input-sm" id="g-core-smtp-port" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp.port`]||``,!0,!1)+` title="The port number of the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-encryption">SMTP encryption</label><select class="form-control input-sm" id="g-core-smtp-encryption" disabled="disabled"><option`+(` value="none"`+UO(`selected`,n[`core.smtp.encryption`]===`none`,!0,!1))+`>None</option><option`+(` value="starttls"`+UO(`selected`,n[`core.smtp.encryption`]===`starttls`,!0,!1))+`>Use STARTTLS</option><option`+(` value="ssl"`+UO(`selected`,n[`core.smtp.encryption`]===`ssl`,!0,!1))+`>Use SSL/TLS</option></select></div><div class="form-group"><label for="g-core-smtp-username">SMTP username</label><input`+(` class="form-control input-sm" id="g-core-smtp-username" disabled="disabled" type="text"`+UO(`value`,n[`core.smtp.username`]||``,!0,!1)+` title="The username, if any, used to authenticate to the SMTP server used to send emails."`)+`/></div><div class="form-group"><label for="g-core-smtp-password">SMTP password</label><input`+(` class="form-control input-sm" id="g-core-smtp-password" disabled="disabled" type="password"`+UO(`value`,n[`core.smtp.password`]||``,!0,!1)+` title="The password, if any, used to authenticate to the SMTP server used to send emails."`)+`/></div></div><div class="panel-group" id="g-configuration-accordion"><div class="panel panel-default"><div class="panel-heading" data-toggle="collapse" data-parent="#g-configuration-accordion" data-target="#g-advanced-settings-tab"><div class="panel-title"><a><b>Advanced Settings</b></a></div></div><div class="panel-collapse collapse" id="g-advanced-settings-tab"><div class="panel-body"><p>These settings should only be changed if you are certain of what you are doing.</p><div class="form-group"><label for="g-core-server-root">Server root URL</label><input`+(` class="form-control input-sm" id="g-core-server-root" disabled="disabled" type="text"`+UO(`value`,n[`core.server_root`]||``,!0,!1)+` placeholder="Detect automatically"`)+`/></div><div class="form-group"><label for="g-core-upload-minimum-chunk-size">Upload minimum chunk size (bytes)</label><br/><span>This applies to Filesystem assetstores.</span><input`+(` class="form-control input-sm" id="g-core-upload-minimum-chunk-size" disabled="disabled" type="text"`+UO(`value`,n[`core.upload_minimum_chunk_size`]||``,!0,!1)+` title="For large files, the minimum size of all but the last chunk."`)+`/></div><div class="g-settings-form-container"><h4>CORS</h4><p>CORS (Cross-origin resource sharing) allows access from other websites.
|
|
2637
2637
|
These settings are described in
|
|
2638
|
-
detail <a href="http://girder.readthedocs.org/en/latest/security.html#cors-cross-origin-resource-sharing" target="_blank">here</a>.</p><div class="form-group"><label for="g-core-cors-allow-origin">CORS Allowed Origins</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-origin" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_origin`]||``,!0,!1)+` title="A comma-separated list of allowed base URLs that can make cross-site requests. This may include *."`)+`/></div><div class="form-group"><label for="g-core-cors-allow-methods">CORS Allowed Methods</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-methods" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_methods`]||``,!0,!1)+` placeholder="Default: allow all methods" title="A comma-separated list of allowed methods"`)+`/></div><div class="form-group"><label for="g-core-cors-allow-headers">CORS Allowed Headers</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-headers" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_headers`]||``,!0,!1)+` title="A comma-separated list of allowed headers."`)+`/></div></div></div></div></div></div><p></p><div class="form-group"><button class="g-submit-settings btn btn-default btn-sm"><i class="icon-ok"></i> Save</button></div><div class="g-validation-failed-message" id="g-settings-error-message"></div></form>`}).call(this,`JSON`in n?n.JSON:typeof JSON<`u`?JSON:void 0,`settings`in n?n.settings:typeof settings<`u`?settings:void 0),t}s((e=>{(function(t,n){typeof define==`function`&&define.amd?define([`jquery`],n):e===void 0?(n(t.jquery),t.bootstrapSwitch={exports:{}}.exports):n(p())})(e,function(e){var t=n(e);function n(e){return e&&e.__esModule?e:{default:e}}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=t.default||window.jQuery||window.$;function s(e,t){var n=e.state,r=e.size,i=e.disabled,a=e.readonly,o=e.indeterminate,s=e.inverse;return[n?`on`:`off`,r,i?`disabled`:void 0,a?`readonly`:void 0,o?`indeterminate`:void 0,s?`inverse`:void 0,t?`id-`+t:void 0].filter(function(e){return e==null})}function c(){return{state:this.$element.is(`:checked`),size:this.$element.data(`size`),animate:this.$element.data(`animate`),disabled:this.$element.is(`:disabled`),readonly:this.$element.is(`[readonly]`),indeterminate:this.$element.data(`indeterminate`),inverse:this.$element.data(`inverse`),radioAllOff:this.$element.data(`radio-all-off`),onColor:this.$element.data(`on-color`),offColor:this.$element.data(`off-color`),onText:this.$element.data(`on-text`),offText:this.$element.data(`off-text`),labelText:this.$element.data(`label-text`),handleWidth:this.$element.data(`handle-width`),labelWidth:this.$element.data(`label-width`),baseClass:this.$element.data(`base-class`),wrapperClass:this.$element.data(`wrapper-class`)}}function l(){var e=this,t=this.$on.add(this.$off).add(this.$label).css(`width`,``),n=this.options.handleWidth===`auto`?Math.round(Math.max(this.$on.width(),this.$off.width())):this.options.handleWidth;return t.width(n),this.$label.width(function(t,r){return e.options.labelWidth===`auto`?r<n?n:r:e.options.labelWidth}),this.privateHandleWidth=this.$on.outerWidth(),this.privateLabelWidth=this.$label.outerWidth(),this.$container.width(this.privateHandleWidth*2+this.privateLabelWidth),this.$wrapper.width(this.privateHandleWidth+this.privateLabelWidth)}function u(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.ope;this.$container.css(`margin-left`,function(){var n=[0,`-`+e.privateHandleWidth+`px`];return e.options.indeterminate?`-`+e.privateHandleWidth/2+`px`:t?e.options.inverse?n[1]:n[0]:e.options.inverse?n[0]:n[1]})}function d(e){return this.options.baseClass+`-`+e}function f(){var e=this,t=function(){e.setPrevOptions(),l.call(e),u.call(e),setTimeout(function(){return e.options.animate&&e.$wrapper.addClass(d.call(e,`animate`))},50)};if(this.$wrapper.is(`:visible`)){t();return}var n=window.setInterval(function(){return e.$wrapper.is(`:visible`)&&(t()||!0)&&window.clearInterval(n)},50)}function p(){var e=this;return this.$element.on({"setPreviousOptions.bootstrapSwitch":function(){return e.setPrevOptions()},"previousState.bootstrapSwitch":function(){e.options=e.prevOptions,e.options.indeterminate&&e.$wrapper.addClass(d.call(e,`indeterminate`)),e.$element.prop(`checked`,e.options.state).trigger(`change.bootstrapSwitch`,!0)},"change.bootstrapSwitch":function(t,n){t.preventDefault(),t.stopImmediatePropagation();var r=e.$element.is(`:checked`);u.call(e,r),r!==e.options.state&&(e.options.state=r,e.$wrapper.toggleClass(d.call(e,`off`)).toggleClass(d.call(e,`on`)),n||(e.$element.is(`:radio`)&&o(`[name="`+e.$element.attr(`name`)+`"]`).not(e.$element).prop(`checked`,!1).trigger(`change.bootstrapSwitch`,!0),e.$element.trigger(`switchChange.bootstrapSwitch`,[r])))},"focus.bootstrapSwitch":function(t){t.preventDefault(),e.$wrapper.addClass(d.call(e,`focused`))},"blur.bootstrapSwitch":function(t){t.preventDefault(),e.$wrapper.removeClass(d.call(e,`focused`))},"keydown.bootstrapSwitch":function(t){!t.which||e.options.disabled||e.options.readonly||(t.which===37||t.which===39)&&(t.preventDefault(),t.stopImmediatePropagation(),e.state(t.which===39))}})}function m(){var e=this;return this.$on.on(`click.bootstrapSwitch`,function(t){return t.preventDefault(),t.stopPropagation(),e.state(!1),e.$element.trigger(`focus.bootstrapSwitch`)}),this.$off.on(`click.bootstrapSwitch`,function(t){return t.preventDefault(),t.stopPropagation(),e.state(!0),e.$element.trigger(`focus.bootstrapSwitch`)})}function h(){var e=this,t=void 0,n=void 0;this.$label.on({click:function(e){e.stopPropagation()},"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(n){t||e.options.disabled||e.options.readonly||(n.preventDefault(),n.stopPropagation(),t=(n.pageX||n.originalEvent.touches[0].pageX)-parseInt(e.$container.css(`margin-left`),10),e.options.animate&&e.$wrapper.removeClass(d.call(e,`animate`)),e.$element.trigger(`focus.bootstrapSwitch`))},"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(r){if(t!=null){var i=(r.pageX||r.originalEvent.touches[0].pageX)-t;r.preventDefault(),!(i<-e.privateHandleWidth||i>0)&&(n=i,e.$container.css(`margin-left`,n+`px`))}},"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(r){if(t){if(r.preventDefault(),e.options.animate&&e.$wrapper.addClass(d.call(e,`animate`)),n){var i=n>-(e.privateHandleWidth/2);n=!1,e.state(e.options.inverse?!i:i)}else e.state(!e.options.state);t=!1}},"mouseleave.bootstrapSwitch":function(){e.$label.trigger(`mouseup.bootstrapSwitch`)}})}function g(){var e=this,t=this.$element.closest(`label`);t.on(`click`,function(n){n.preventDefault(),n.stopImmediatePropagation(),n.target===t[0]&&e.toggleState()})}function v(){function e(){return o(this).data(`bootstrap-switch`)}function t(){return o(this).bootstrapSwitch(`state`,this.checked)}var n=this.$element.closest(`form`);n.data(`bootstrap-switch`)||n.on(`reset.bootstrapSwitch`,function(){window.setTimeout(function(){n.find(`input`).filter(e).each(t)},1)}).data(`bootstrap-switch`,!0)}function y(e){var t=this;return o.isArray(e)?e.map(function(e){return d.call(t,e)}):[d.call(this,e)]}var b=function(){function e(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};i(this,e),this.$element=o(t),this.options=o.extend({},o.fn.bootstrapSwitch.defaults,c.call(this),r),this.prevOptions={},this.$wrapper=o(`<div>`,{class:function(){return s(n.options,n.$element.attr(`id`)).map(function(e){return d.call(n,e)}).concat([n.options.baseClass],y.call(n,n.options.wrapperClass)).join(` `)}}),this.$container=o(`<div>`,{class:d.call(this,`container`)}),this.$on=o(`<span>`,{html:this.options.onText,class:d.call(this,`handle-on`)+` `+d.call(this,this.options.onColor)}),this.$off=o(`<span>`,{html:this.options.offText,class:d.call(this,`handle-off`)+` `+d.call(this,this.options.offColor)}),this.$label=o(`<span>`,{html:this.options.labelText,class:d.call(this,`label`)}),this.$element.on(`init.bootstrapSwitch`,function(){return n.options.onInit(t)}),this.$element.on(`switchChange.bootstrapSwitch`,function(){var e=[...arguments];n.options.onSwitchChange.apply(t,e)===!1&&(n.$element.is(`:radio`)?o(`[name="`+n.$element.attr(`name`)+`"]`).trigger(`previousState.bootstrapSwitch`,!0):n.$element.trigger(`previousState.bootstrapSwitch`,!0))}),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop(`indeterminate`,!0),f.call(this),p.call(this),m.call(this),h.call(this),v.call(this),g.call(this),this.$element.trigger(`init.bootstrapSwitch`,this.options.state)}return a(e,[{key:`setPrevOptions`,value:function(){this.prevOptions=r({},this.options)}},{key:`state`,value:function(e,t){return e===void 0?this.options.state:this.options.disabled||this.options.readonly||this.options.state&&!this.options.radioAllOff&&this.$element.is(`:radio`)?this.$element:(this.$element.is(`:radio`)?o(`[name="`+this.$element.attr(`name`)+`"]`).trigger(`setPreviousOptions.bootstrapSwitch`):this.$element.trigger(`setPreviousOptions.bootstrapSwitch`),this.options.indeterminate&&this.indeterminate(!1),this.$element.prop(`checked`,!!e).trigger(`change.bootstrapSwitch`,t),this.$element)}},{key:`toggleState`,value:function(e){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop(`checked`,!this.options.state).trigger(`change.bootstrapSwitch`,e)}},{key:`size`,value:function(e){return e===void 0?this.options.size:(this.options.size!=null&&this.$wrapper.removeClass(d.call(this,this.options.size)),e&&this.$wrapper.addClass(d.call(this,e)),l.call(this),u.call(this),this.options.size=e,this.$element)}},{key:`animate`,value:function(e){return e===void 0?this.options.animate:this.options.animate===!!e?this.$element:this.toggleAnimate()}},{key:`toggleAnimate`,value:function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(d.call(this,`animate`)),this.$element}},{key:`disabled`,value:function(e){return e===void 0?this.options.disabled:this.options.disabled===!!e?this.$element:this.toggleDisabled()}},{key:`toggleDisabled`,value:function(){return this.options.disabled=!this.options.disabled,this.$element.prop(`disabled`,this.options.disabled),this.$wrapper.toggleClass(d.call(this,`disabled`)),this.$element}},{key:`readonly`,value:function(e){return e===void 0?this.options.readonly:this.options.readonly===!!e?this.$element:this.toggleReadonly()}},{key:`toggleReadonly`,value:function(){return this.options.readonly=!this.options.readonly,this.$element.prop(`readonly`,this.options.readonly),this.$wrapper.toggleClass(d.call(this,`readonly`)),this.$element}},{key:`indeterminate`,value:function(e){return e===void 0?this.options.indeterminate:this.options.indeterminate===!!e?this.$element:this.toggleIndeterminate()}},{key:`toggleIndeterminate`,value:function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop(`indeterminate`,this.options.indeterminate),this.$wrapper.toggleClass(d.call(this,`indeterminate`)),u.call(this),this.$element}},{key:`inverse`,value:function(e){return e===void 0?this.options.inverse:this.options.inverse===!!e?this.$element:this.toggleInverse()}},{key:`toggleInverse`,value:function(){this.$wrapper.toggleClass(d.call(this,`inverse`));var e=this.$on.clone(!0),t=this.$off.clone(!0);return this.$on.replaceWith(t),this.$off.replaceWith(e),this.$on=t,this.$off=e,this.options.inverse=!this.options.inverse,this.$element}},{key:`onColor`,value:function(e){return e===void 0?this.options.onColor:(this.options.onColor&&this.$on.removeClass(d.call(this,this.options.onColor)),this.$on.addClass(d.call(this,e)),this.options.onColor=e,this.$element)}},{key:`offColor`,value:function(e){return e===void 0?this.options.offColor:(this.options.offColor&&this.$off.removeClass(d.call(this,this.options.offColor)),this.$off.addClass(d.call(this,e)),this.options.offColor=e,this.$element)}},{key:`onText`,value:function(e){return e===void 0?this.options.onText:(this.$on.html(e),l.call(this),u.call(this),this.options.onText=e,this.$element)}},{key:`offText`,value:function(e){return e===void 0?this.options.offText:(this.$off.html(e),l.call(this),u.call(this),this.options.offText=e,this.$element)}},{key:`labelText`,value:function(e){return e===void 0?this.options.labelText:(this.$label.html(e),l.call(this),this.options.labelText=e,this.$element)}},{key:`handleWidth`,value:function(e){return e===void 0?this.options.handleWidth:(this.options.handleWidth=e,l.call(this),u.call(this),this.$element)}},{key:`labelWidth`,value:function(e){return e===void 0?this.options.labelWidth:(this.options.labelWidth=e,l.call(this),u.call(this),this.$element)}},{key:`baseClass`,value:function(){return this.options.baseClass}},{key:`wrapperClass`,value:function(e){if(e===void 0)return this.options.wrapperClass;var t=e||o.fn.bootstrapSwitch.defaults.wrapperClass;return this.$wrapper.removeClass(y.call(this,this.options.wrapperClass).join(` `)),this.$wrapper.addClass(y.call(this,t).join(` `)),this.options.wrapperClass=t,this.$element}},{key:`radioAllOff`,value:function(e){if(e===void 0)return this.options.radioAllOff;var t=!!e;return this.options.radioAllOff===t||(this.options.radioAllOff=t),this.$element}},{key:`onInit`,value:function(e){return e===void 0?this.options.onInit:(this.options.onInit=e||o.fn.bootstrapSwitch.defaults.onInit,this.$element)}},{key:`onSwitchChange`,value:function(e){return e===void 0?this.options.onSwitchChange:(this.options.onSwitchChange=e||o.fn.bootstrapSwitch.defaults.onSwitchChange,this.$element)}},{key:`destroy`,value:function(){var e=this.$element.closest(`form`);return e.length&&e.off(`reset.bootstrapSwitch`).removeData(`bootstrap-switch`),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(`.bootstrapSwitch`).removeData(`bootstrap-switch`),this.$element}}]),e}();function x(e){var t=[...arguments].slice(1);function n(n,r){var i=o(r),a=i.data(`bootstrap-switch`),s=a||new b(r,e);return a||i.data(`bootstrap-switch`,s),typeof e==`string`?s[e].apply(s,t):n}return Array.prototype.reduce.call(this,n,this)}o.fn.bootstrapSwitch=x,o.fn.bootstrapSwitch.Constructor=b,o.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:`primary`,offColor:`default`,onText:`ON`,offText:`OFF`,labelText:` `,handleWidth:`auto`,labelWidth:`auto`,baseClass:`bootstrap-switch`,wrapperClass:`wrapper`,onInit:function(){},onSwitchChange:function(){}}})}))(),mo();var qO=Y.extend({events:{"submit .g-settings-form":function(e){e.preventDefault(),this.$(`.g-submit-settings`).girderEnable(!1),this.$(`#g-settings-error-message`).empty(),this.$(`#g-core-collection-create-policy`).val(JSON.stringify(this._covertCollectionCreationPolicy()));var t=U.map(this.settingsKeys,e=>{let t=this.$(`#g-`+e.replace(/[_.]/g,`-`));return U.contains([`core.api_keys`,`core.enable_password_login`,`core.disable_anonymous_access`],e)?{key:e,value:t.is(`:checked`)}:{key:e,value:t.val()||null}});Up({method:`PUT`,url:`system/setting`,data:{list:JSON.stringify(t)},error:null}).done(()=>{this.$(`.g-submit-settings`).girderEnable(!0),q.trigger(`g:alert`,{icon:`ok`,text:`Settings saved.`,type:`success`,timeout:4e3})}).fail(e=>{this.$(`.g-submit-settings`).girderEnable(!0),this.$(`#g-settings-error-message`).text(e.responseJSON.message)})}},initialize:function(){qp(`fetch`);var e=[`core.api_keys`,`core.contact_email_address`,`core.brand_name`,`core.banner_color`,`core.privacy_notice`,`core.cookie_lifetime`,`core.disable_anonymous_access`,`core.enable_password_login`,`core.email_from_address`,`core.email_host`,`core.registration_policy`,`core.email_verification`,`core.server_root`,`core.smtp_host`,`core.smtp.port`,`core.smtp.encryption`,`core.smtp.username`,`core.smtp.password`,`core.upload_minimum_chunk_size`,`core.cors.allow_origin`,`core.cors.allow_methods`,`core.cors.allow_headers`,`core.add_to_group_policy`,`core.collection_create_policy`,`core.user_default_folders`];this.settingsKeys=e,Up({url:`system/setting`,method:`GET`,data:{list:JSON.stringify(e)}}).done(e=>{this.settings=e,this.render()})},render:function(){this.$el.html(KO({settings:this.settings,JSON:window.JSON}));var e=this.settings[`core.collection_create_policy`]?this.settings[`core.collection_create_policy`].open:!1;return this.$(`.g-setting-switch`).bootstrapSwitch().bootstrapSwitch(`state`,e).off(`switchChange.bootstrapSwitch`).on(`switchChange.bootstrapSwitch`,(e,t)=>{t?this._renderCollectionCreationPolicyAccessWidget():(this.accessWidget.destroy(),this.accessWidget=null)}),e&&this._renderCollectionCreationPolicyAccessWidget(),this},_renderCollectionCreationPolicyAccessWidget:function(){var e=new HO;this.accessWidget=new Yw({el:this.$(`.g-collection-create-policy-container .access-widget-container`),modelType:`collection_creation_policy`,model:e,parentView:this,modal:!1,hideRecurseOption:!0,hideSaveButton:!0,hidePrivacyEditor:!0,hideAccessType:!0,noAccessFlag:!0})},_covertCollectionCreationPolicy:function(){var e=null;if(this.$(`.g-setting-switch`).bootstrapSwitch(`state`)&&this.accessWidget){e={open:this.$(`.g-setting-switch`).bootstrapSwitch(`state`)};var t=this.accessWidget.getAccessList();U.each(U.keys(t),n=>{e[n]=U.pluck(t[n],`id`)})}else e=this.settings[`core.collection_create_policy`],e.open=!1;return e}});function JO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=YO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function YO(e){var t=``+e,n=XO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var XO=/["&<>]/;function ZO(e){var t=``,n=e||{};return(function(e,n){t+=`<div class="modal-dialog"><div class="modal-content"><form class="modal-form" id="g-api-key-edit-form" role="form"><div class="modal-header"><button class="close" data-dismiss="modal" aria-hidden="true" type="button">×</button><h4 class="modal-title">`,t+=e?`Edit API key`:`Create new API key`,t=t+`</h4></div><div class="modal-body"><div class="form-group"><label class="control-label" for="g-api-key-name">Name</label><input class="input-sm form-control" id="g-api-key-name" type="text" placeholder="Enter a name for this API key"/></div><div class="form-group"><label class="control-label" for="g-api-key-token-duration">Token duration in days (optional)</label><input class="input-sm form-control" id="g-api-key-token-duration" placeholder="Enter number of days"/></div><label class="control-label">Permission scope for this key</label><div class="g-scope-selection-container"><div class="radio"><label><input`+(` id="g-scope-mode-full" type="radio" name="scopeType" value="full"`+JO(`checked`,!0,!0,!1))+`/>Allow all actions on behalf of my user</label></div><div class="radio"><label><input id="g-scope-mode-custom" type="radio" name="scopeType" value="custom"/>Only allow specific permissions for this key:</label></div>`,(function(){var e=n;if(typeof e.length==`number`)for(var r=0,i=e.length;r<i;r++){var a=e[r];t=t+`<div class="checkbox disabled"><label`+(` class="g-custom-scope-description"`+JO(`title`,a.description,!0,!1))+`><input`+(` class="g-custom-scope-checkbox" type="checkbox"`+JO(`value`,a.id,!0,!1)+JO(`disabled`,!0,!0,!1))+`/><span>`+YO(a.name??``)+`</span></label></div>`}else{var i=0;for(var r in e){i++;var a=e[r];t=t+`<div class="checkbox disabled"><label`+(` class="g-custom-scope-description"`+JO(`title`,a.description,!0,!1))+`><input`+(` class="g-custom-scope-checkbox" type="checkbox"`+JO(`value`,a.id,!0,!1)+JO(`disabled`,!0,!0,!1))+`/><span>`+YO(a.name??``)+`</span></label></div>`}}}).call(this),t+=`</div><div class="g-validation-failed-message"></div></div><div class="modal-footer"><a class="btn btn-small btn-default" data-dismiss="modal">Cancel</a><button class="g-save-api-key btn btn-small btn-primary" type="submit">`,t+=e?`<i class="icon-edit"></i> Save`:`<i class="icon-plus-squared"></i> Create`,t+=`</button></div></form></div></div>`}).call(this,`apiKey`in n?n.apiKey:typeof apiKey<`u`?apiKey:void 0,`tokenScopes`in n?n.tokenScopes:typeof tokenScopes<`u`?tokenScopes:void 0),t}mo();var QO=Y.extend({events:{"submit #g-api-key-edit-form":function(e){e.preventDefault();var t={name:this.$(`#g-api-key-name`).val(),tokenDuration:this.$(`#g-api-key-token-duration`).val(),scope:null,targetUserId:this.targetUserId};this._getSelectedScopeMode()===`custom`&&(t.scope=U.map(this.$(`.g-custom-scope-checkbox:checked`),function(e){return(0,W.default)(e).val()})),this.saveModel(this.model,t),this.$(`button.g-save-api-key`).girderEnable(!1),this.$(`.g-validation-failed-message`).text(``)},"change .g-scope-selection-container .radio input":function(){var e=this._getSelectedScopeMode();e===`full`?this.$(`.g-custom-scope-checkbox`).girderEnable(!1).parent().parent().girderEnable(!1):e===`custom`&&this.$(`.g-custom-scope-checkbox`).girderEnable(!0).parent().parent().girderEnable(!0)}},initialize:function(e){this.model=e.model||null,this.scopeInfo=null,this.targetUserId=e.parentView.model.id,this._shouldRender=!1,Up({url:`token/scopes`}).done(e=>{this.scopeInfo=e,this._shouldRender&&(this._shouldRender=!1,this.render())})},render:function(){if(!this.scopeInfo){this._shouldRender=!0;return}let e=this.scopeInfo.custom;om().get(`admin`)&&(e=e.concat(this.scopeInfo.adminCustom));var t=this.$el.html(ZO({apiKey:this.model,tokenScopes:e})).girderModal(this).on(`shown.bs.modal`,()=>{this.$(`#g-api-key-name`).trigger(`focus`)}).on(`ready.girder.modal`,()=>{this.model&&(this.$(`#g-api-key-name`).val(this.model.get(`name`)),this.$(`#g-api-key-token-duration`).val(this.model.get(`tokenDuration`)||``),this.model.get(`scope`)&&(this.$(`#g-scope-mode-custom`).attr(`checked`,`checked`).trigger(`change`),this.$(`.g-custom-scope-checkbox`).girderEnable(!0),U.each(this.model.get(`scope`),function(e){this.$(`.g-custom-scope-checkbox[value="`+e+`"]`).attr(`checked`,`checked`)},this)))});return t.trigger(W.default.Event(`ready.girder.modal`,{relatedTarget:t})),this.$(`#g-api-key-name`).trigger(`focus`),this},saveModel:function(e,t){e||=new hm,e.set(t),e.once(`g:saved`,function(){this.$el.modal(`hide`),this.trigger(`g:saved`,e)},this).off(`g:error`,null,this).on(`g:error`,function(e){this.$(`.g-validation-failed-message`).text(e.responseJSON.message),this.$(`button.g-save-api-key`).girderEnable(!0)},this).save()},_getSelectedScopeMode:function(){return this.$(`.g-scope-selection-container .radio input:checked`).attr(`value`)}});function $O(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=ek(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function ek(e){var t=``+e,n=tk.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var tk=/["&<>]/;function nk(e){var t=``,n=e||{};return(function(e,n){e.length===0?t+=`<div class="g-api-keys-empty-message">You have no existing API keys. Click the button below to create one.</div>`:(t+=`<div class="g-api-key-list-header">Your API keys</div><table class="g-api-key-table"><thead><tr><th col="name">Name</th><th col="key">Key</th><th col="scope">Scope</th><th col="active">Active</th><th col="tokenDuration">Token duration</th><th col="lastUse">Last used</th><th col="actions">Actions</th></tr></thead><tbody>`,(function(){var r=e;if(typeof r.length==`number`)for(var i=0,a=r.length;i<a;i++){var o=r[i];if(t=t+`<tr`+(` class="g-api-key-container"`+$O(`api-key-id`,o.id,!0,!1)+$O(`cid`,o.cid,!0,!1))+`><td col="name">`+ek(o.get(`name`)??``)+`</td><td col="key"><a`+(` class="g-show-api-key" data-toggle="popover"`+$O(`data-content`,o.get(`key`),!0,!1))+`>show</a></td><td col="scope">`,o.get(`scope`)?t+=`<span>Custom scopes</span>`:t+=`<span>Full access</span>`,t=t+`</td><td col="active">`+ek(o.get(`active`)?`Yes`:`No`)+`</td><td col="tokenDuration">`,o.get(`tokenDuration`)?t=t+`<span>`+ek(o.get(`tokenDuration`)??``)+` days</span>`:t+=`<span>Default</span>`,t+=`</td><td col="lastUse">`,o.get(`lastUse`)){var s=n(o.get(`lastUse`));t=t+`<span`+$O(`title`,s,!0,!1)+`>`+ek(s.fromNow()??``)+`</span>`}else t+=`<span>Never</span>`;t+=`</td><td col="actions"><button class="btn btn-sm btn-primary g-api-key-edit" title="Edit"><i class="icon-edit"></i></button>`,o.get(`active`)?t+=`<button class="btn btn-sm btn-warning g-api-key-toggle-active" title="Deactivate"><i class="icon-minus-circled"></i></button>`:t+=`<button class="btn btn-sm btn-success g-api-key-toggle-active" title="Activate"><i class="icon-plus-circled"></i></button>`,t+=`<button class="btn btn-sm btn-danger g-api-key-delete" title="Delete key"><i class="icon-cancel"></i></button></td></tr>`}else{var a=0;for(var i in r){a++;var o=r[i];if(t=t+`<tr`+(` class="g-api-key-container"`+$O(`api-key-id`,o.id,!0,!1)+$O(`cid`,o.cid,!0,!1))+`><td col="name">`+ek(o.get(`name`)??``)+`</td><td col="key"><a`+(` class="g-show-api-key" data-toggle="popover"`+$O(`data-content`,o.get(`key`),!0,!1))+`>show</a></td><td col="scope">`,o.get(`scope`)?t+=`<span>Custom scopes</span>`:t+=`<span>Full access</span>`,t=t+`</td><td col="active">`+ek(o.get(`active`)?`Yes`:`No`)+`</td><td col="tokenDuration">`,o.get(`tokenDuration`)?t=t+`<span>`+ek(o.get(`tokenDuration`)??``)+` days</span>`:t+=`<span>Default</span>`,t+=`</td><td col="lastUse">`,o.get(`lastUse`)){var s=n(o.get(`lastUse`));t=t+`<span`+$O(`title`,s,!0,!1)+`>`+ek(s.fromNow()??``)+`</span>`}else t+=`<span>Never</span>`;t+=`</td><td col="actions"><button class="btn btn-sm btn-primary g-api-key-edit" title="Edit"><i class="icon-edit"></i></button>`,o.get(`active`)?t+=`<button class="btn btn-sm btn-warning g-api-key-toggle-active" title="Deactivate"><i class="icon-minus-circled"></i></button>`:t+=`<button class="btn btn-sm btn-success g-api-key-toggle-active" title="Activate"><i class="icon-plus-circled"></i></button>`,t+=`<button class="btn btn-sm btn-danger g-api-key-delete" title="Delete key"><i class="icon-cancel"></i></button></td></tr>`}}}).call(this),t+=`</tbody></table>`),t+=`<div class="g-paginate-container"></div><div class="g-api-key-list-bottom-buttons"><button class="btn btn-default g-api-key-new">Create new key</button></div>`}).call(this,`apiKeys`in n?n.apiKeys:typeof apiKeys<`u`?apiKeys:void 0,`moment`in n?n.moment:typeof moment<`u`?moment:void 0),t}var rk=Y.extend({events:{"click .g-api-key-toggle-active":function(e){var t=this._getModelFromEvent(e),n=()=>{t.once(`g:setActive`,function(){this.render()},this).setActive(!t.get(`active`))};t.get(`active`)?Rv({text:`Deactivating this API key will delete any existing tokens created with it, and will not be usable until it is activated again. Are you sure you want to deactivate it?`,yesText:`Yes`,yesClass:`btn-warning`,escapedHtml:!0,confirmCallback:n}):n()},"click .g-api-key-new":function(){this._renderEditWidget()},"click .g-api-key-edit":function(e){var t=this._getModelFromEvent(e);this._renderEditWidget(t)},"click .g-api-key-delete":function(e){var t=this._getModelFromEvent(e);Rv({text:`Are you sure you want to delete the API key <b>`+t.escape(`name`)+`</b>? Any client applications using this key will no longer be able to authenticate.`,yesText:`Delete`,escapedHtml:!0,confirmCallback:()=>{t.on(`g:deleted`,function(){q.trigger(`g:alert`,{icon:`ok`,text:`API key deleted.`,type:`success`,timeout:3e3}),this.render()},this).destroy()}})}},initialize:function(e){this.model=e.user,this.fetched=!1,this.collection=new lv,this.collection.on(`g:changed`,function(){this.fetched=!0,this.render(),this.trigger(`g:changed`)},this).fetch({userId:this.model.id}),this.paginateWidget=new ZE({collection:this.collection,parentView:this})},render:function(){if(this.fetched)return this.$el.html(nk({apiKeys:this.collection.toArray(),moment:G})),this.$(`.g-show-api-key`).popover({container:this.$(`.g-api-key-table`),placement:`top`}),this.paginateWidget.setElement(this.$(`.g-paginate-container`)).render(),this},_getModelFromEvent:function(e){var t=(0,W.default)(e.currentTarget).parents(`.g-api-key-container`).attr(`cid`);return this.collection.get(t)},_renderEditWidget:function(e){this.editApiKeyWidget||=new QO({el:(0,W.default)(`#g-dialog-container`),parentView:this}).on(`g:saved`,function(e){this.collection.get(e.cid)||this.collection.add(e),this.render()},this),this.editApiKeyWidget.model=e||null,this.editApiKeyWidget.render()}}),ik=s(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),ak=s((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),ok=s((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),sk=s(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ck=s(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),lk=s((e=>{var t=ak().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),uk=s((e=>{var t=ak().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),dk=s((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),fk=s((e=>{var t=ok(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),pk=s((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),mk=s((e=>{var t=pk();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),hk=s(((e,t)=>{var n=mk();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),gk=s((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),_k=s((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
2638
|
+
detail <a href="http://girder.readthedocs.org/en/latest/security.html#cors-cross-origin-resource-sharing" target="_blank">here</a>.</p><div class="form-group"><label for="g-core-cors-allow-origin">CORS Allowed Origins</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-origin" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_origin`]||``,!0,!1)+` title="A comma-separated list of allowed base URLs that can make cross-site requests. This may include *."`)+`/></div><div class="form-group"><label for="g-core-cors-allow-methods">CORS Allowed Methods</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-methods" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_methods`]||``,!0,!1)+` placeholder="Default: allow all methods" title="A comma-separated list of allowed methods"`)+`/></div><div class="form-group"><label for="g-core-cors-allow-headers">CORS Allowed Headers</label><input`+(` class="form-control input-sm" id="g-core-cors-allow-headers" disabled="disabled" type="text"`+UO(`value`,n[`core.cors.allow_headers`]||``,!0,!1)+` title="A comma-separated list of allowed headers."`)+`/></div></div></div></div></div></div><p></p><div class="form-group"><button class="g-submit-settings btn btn-default btn-sm"><i class="icon-ok"></i> Save</button></div><div class="g-validation-failed-message" id="g-settings-error-message"></div></form>`}).call(this,`JSON`in n?n.JSON:typeof JSON<`u`?JSON:void 0,`settings`in n?n.settings:typeof settings<`u`?settings:void 0),t}s((e=>{(function(t,n){typeof define==`function`&&define.amd?define([`jquery`],n):e===void 0?(n(t.jquery),t.bootstrapSwitch={exports:{}}.exports):n(p())})(e,function(e){var t=n(e);function n(e){return e&&e.__esModule?e:{default:e}}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=t.default||window.jQuery||window.$;function s(e,t){var n=e.state,r=e.size,i=e.disabled,a=e.readonly,o=e.indeterminate,s=e.inverse;return[n?`on`:`off`,r,i?`disabled`:void 0,a?`readonly`:void 0,o?`indeterminate`:void 0,s?`inverse`:void 0,t?`id-`+t:void 0].filter(function(e){return e==null})}function c(){return{state:this.$element.is(`:checked`),size:this.$element.data(`size`),animate:this.$element.data(`animate`),disabled:this.$element.is(`:disabled`),readonly:this.$element.is(`[readonly]`),indeterminate:this.$element.data(`indeterminate`),inverse:this.$element.data(`inverse`),radioAllOff:this.$element.data(`radio-all-off`),onColor:this.$element.data(`on-color`),offColor:this.$element.data(`off-color`),onText:this.$element.data(`on-text`),offText:this.$element.data(`off-text`),labelText:this.$element.data(`label-text`),handleWidth:this.$element.data(`handle-width`),labelWidth:this.$element.data(`label-width`),baseClass:this.$element.data(`base-class`),wrapperClass:this.$element.data(`wrapper-class`)}}function l(){var e=this,t=this.$on.add(this.$off).add(this.$label).css(`width`,``),n=this.options.handleWidth===`auto`?Math.round(Math.max(this.$on.width(),this.$off.width())):this.options.handleWidth;return t.width(n),this.$label.width(function(t,r){return e.options.labelWidth===`auto`?r<n?n:r:e.options.labelWidth}),this.privateHandleWidth=this.$on.outerWidth(),this.privateLabelWidth=this.$label.outerWidth(),this.$container.width(this.privateHandleWidth*2+this.privateLabelWidth),this.$wrapper.width(this.privateHandleWidth+this.privateLabelWidth)}function u(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.ope;this.$container.css(`margin-left`,function(){var n=[0,`-`+e.privateHandleWidth+`px`];return e.options.indeterminate?`-`+e.privateHandleWidth/2+`px`:t?e.options.inverse?n[1]:n[0]:e.options.inverse?n[0]:n[1]})}function d(e){return this.options.baseClass+`-`+e}function f(){var e=this,t=function(){e.setPrevOptions(),l.call(e),u.call(e),setTimeout(function(){return e.options.animate&&e.$wrapper.addClass(d.call(e,`animate`))},50)};if(this.$wrapper.is(`:visible`)){t();return}var n=window.setInterval(function(){return e.$wrapper.is(`:visible`)&&(t()||!0)&&window.clearInterval(n)},50)}function p(){var e=this;return this.$element.on({"setPreviousOptions.bootstrapSwitch":function(){return e.setPrevOptions()},"previousState.bootstrapSwitch":function(){e.options=e.prevOptions,e.options.indeterminate&&e.$wrapper.addClass(d.call(e,`indeterminate`)),e.$element.prop(`checked`,e.options.state).trigger(`change.bootstrapSwitch`,!0)},"change.bootstrapSwitch":function(t,n){t.preventDefault(),t.stopImmediatePropagation();var r=e.$element.is(`:checked`);u.call(e,r),r!==e.options.state&&(e.options.state=r,e.$wrapper.toggleClass(d.call(e,`off`)).toggleClass(d.call(e,`on`)),n||(e.$element.is(`:radio`)&&o(`[name="`+e.$element.attr(`name`)+`"]`).not(e.$element).prop(`checked`,!1).trigger(`change.bootstrapSwitch`,!0),e.$element.trigger(`switchChange.bootstrapSwitch`,[r])))},"focus.bootstrapSwitch":function(t){t.preventDefault(),e.$wrapper.addClass(d.call(e,`focused`))},"blur.bootstrapSwitch":function(t){t.preventDefault(),e.$wrapper.removeClass(d.call(e,`focused`))},"keydown.bootstrapSwitch":function(t){!t.which||e.options.disabled||e.options.readonly||(t.which===37||t.which===39)&&(t.preventDefault(),t.stopImmediatePropagation(),e.state(t.which===39))}})}function m(){var e=this;return this.$on.on(`click.bootstrapSwitch`,function(t){return t.preventDefault(),t.stopPropagation(),e.state(!1),e.$element.trigger(`focus.bootstrapSwitch`)}),this.$off.on(`click.bootstrapSwitch`,function(t){return t.preventDefault(),t.stopPropagation(),e.state(!0),e.$element.trigger(`focus.bootstrapSwitch`)})}function h(){var e=this,t=void 0,n=void 0;this.$label.on({click:function(e){e.stopPropagation()},"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(n){t||e.options.disabled||e.options.readonly||(n.preventDefault(),n.stopPropagation(),t=(n.pageX||n.originalEvent.touches[0].pageX)-parseInt(e.$container.css(`margin-left`),10),e.options.animate&&e.$wrapper.removeClass(d.call(e,`animate`)),e.$element.trigger(`focus.bootstrapSwitch`))},"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(r){if(t!=null){var i=(r.pageX||r.originalEvent.touches[0].pageX)-t;r.preventDefault(),!(i<-e.privateHandleWidth||i>0)&&(n=i,e.$container.css(`margin-left`,n+`px`))}},"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(r){if(t){if(r.preventDefault(),e.options.animate&&e.$wrapper.addClass(d.call(e,`animate`)),n){var i=n>-(e.privateHandleWidth/2);n=!1,e.state(e.options.inverse?!i:i)}else e.state(!e.options.state);t=!1}},"mouseleave.bootstrapSwitch":function(){e.$label.trigger(`mouseup.bootstrapSwitch`)}})}function g(){var e=this,t=this.$element.closest(`label`);t.on(`click`,function(n){n.preventDefault(),n.stopImmediatePropagation(),n.target===t[0]&&e.toggleState()})}function v(){function e(){return o(this).data(`bootstrap-switch`)}function t(){return o(this).bootstrapSwitch(`state`,this.checked)}var n=this.$element.closest(`form`);n.data(`bootstrap-switch`)||n.on(`reset.bootstrapSwitch`,function(){window.setTimeout(function(){n.find(`input`).filter(e).each(t)},1)}).data(`bootstrap-switch`,!0)}function y(e){var t=this;return o.isArray(e)?e.map(function(e){return d.call(t,e)}):[d.call(this,e)]}var b=function(){function e(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};i(this,e),this.$element=o(t),this.options=o.extend({},o.fn.bootstrapSwitch.defaults,c.call(this),r),this.prevOptions={},this.$wrapper=o(`<div>`,{class:function(){return s(n.options,n.$element.attr(`id`)).map(function(e){return d.call(n,e)}).concat([n.options.baseClass],y.call(n,n.options.wrapperClass)).join(` `)}}),this.$container=o(`<div>`,{class:d.call(this,`container`)}),this.$on=o(`<span>`,{html:this.options.onText,class:d.call(this,`handle-on`)+` `+d.call(this,this.options.onColor)}),this.$off=o(`<span>`,{html:this.options.offText,class:d.call(this,`handle-off`)+` `+d.call(this,this.options.offColor)}),this.$label=o(`<span>`,{html:this.options.labelText,class:d.call(this,`label`)}),this.$element.on(`init.bootstrapSwitch`,function(){return n.options.onInit(t)}),this.$element.on(`switchChange.bootstrapSwitch`,function(){var e=[...arguments];n.options.onSwitchChange.apply(t,e)===!1&&(n.$element.is(`:radio`)?o(`[name="`+n.$element.attr(`name`)+`"]`).trigger(`previousState.bootstrapSwitch`,!0):n.$element.trigger(`previousState.bootstrapSwitch`,!0))}),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop(`indeterminate`,!0),f.call(this),p.call(this),m.call(this),h.call(this),v.call(this),g.call(this),this.$element.trigger(`init.bootstrapSwitch`,this.options.state)}return a(e,[{key:`setPrevOptions`,value:function(){this.prevOptions=r({},this.options)}},{key:`state`,value:function(e,t){return e===void 0?this.options.state:this.options.disabled||this.options.readonly||this.options.state&&!this.options.radioAllOff&&this.$element.is(`:radio`)?this.$element:(this.$element.is(`:radio`)?o(`[name="`+this.$element.attr(`name`)+`"]`).trigger(`setPreviousOptions.bootstrapSwitch`):this.$element.trigger(`setPreviousOptions.bootstrapSwitch`),this.options.indeterminate&&this.indeterminate(!1),this.$element.prop(`checked`,!!e).trigger(`change.bootstrapSwitch`,t),this.$element)}},{key:`toggleState`,value:function(e){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop(`checked`,!this.options.state).trigger(`change.bootstrapSwitch`,e)}},{key:`size`,value:function(e){return e===void 0?this.options.size:(this.options.size!=null&&this.$wrapper.removeClass(d.call(this,this.options.size)),e&&this.$wrapper.addClass(d.call(this,e)),l.call(this),u.call(this),this.options.size=e,this.$element)}},{key:`animate`,value:function(e){return e===void 0?this.options.animate:this.options.animate===!!e?this.$element:this.toggleAnimate()}},{key:`toggleAnimate`,value:function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(d.call(this,`animate`)),this.$element}},{key:`disabled`,value:function(e){return e===void 0?this.options.disabled:this.options.disabled===!!e?this.$element:this.toggleDisabled()}},{key:`toggleDisabled`,value:function(){return this.options.disabled=!this.options.disabled,this.$element.prop(`disabled`,this.options.disabled),this.$wrapper.toggleClass(d.call(this,`disabled`)),this.$element}},{key:`readonly`,value:function(e){return e===void 0?this.options.readonly:this.options.readonly===!!e?this.$element:this.toggleReadonly()}},{key:`toggleReadonly`,value:function(){return this.options.readonly=!this.options.readonly,this.$element.prop(`readonly`,this.options.readonly),this.$wrapper.toggleClass(d.call(this,`readonly`)),this.$element}},{key:`indeterminate`,value:function(e){return e===void 0?this.options.indeterminate:this.options.indeterminate===!!e?this.$element:this.toggleIndeterminate()}},{key:`toggleIndeterminate`,value:function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop(`indeterminate`,this.options.indeterminate),this.$wrapper.toggleClass(d.call(this,`indeterminate`)),u.call(this),this.$element}},{key:`inverse`,value:function(e){return e===void 0?this.options.inverse:this.options.inverse===!!e?this.$element:this.toggleInverse()}},{key:`toggleInverse`,value:function(){this.$wrapper.toggleClass(d.call(this,`inverse`));var e=this.$on.clone(!0),t=this.$off.clone(!0);return this.$on.replaceWith(t),this.$off.replaceWith(e),this.$on=t,this.$off=e,this.options.inverse=!this.options.inverse,this.$element}},{key:`onColor`,value:function(e){return e===void 0?this.options.onColor:(this.options.onColor&&this.$on.removeClass(d.call(this,this.options.onColor)),this.$on.addClass(d.call(this,e)),this.options.onColor=e,this.$element)}},{key:`offColor`,value:function(e){return e===void 0?this.options.offColor:(this.options.offColor&&this.$off.removeClass(d.call(this,this.options.offColor)),this.$off.addClass(d.call(this,e)),this.options.offColor=e,this.$element)}},{key:`onText`,value:function(e){return e===void 0?this.options.onText:(this.$on.html(e),l.call(this),u.call(this),this.options.onText=e,this.$element)}},{key:`offText`,value:function(e){return e===void 0?this.options.offText:(this.$off.html(e),l.call(this),u.call(this),this.options.offText=e,this.$element)}},{key:`labelText`,value:function(e){return e===void 0?this.options.labelText:(this.$label.html(e),l.call(this),this.options.labelText=e,this.$element)}},{key:`handleWidth`,value:function(e){return e===void 0?this.options.handleWidth:(this.options.handleWidth=e,l.call(this),u.call(this),this.$element)}},{key:`labelWidth`,value:function(e){return e===void 0?this.options.labelWidth:(this.options.labelWidth=e,l.call(this),u.call(this),this.$element)}},{key:`baseClass`,value:function(){return this.options.baseClass}},{key:`wrapperClass`,value:function(e){if(e===void 0)return this.options.wrapperClass;var t=e||o.fn.bootstrapSwitch.defaults.wrapperClass;return this.$wrapper.removeClass(y.call(this,this.options.wrapperClass).join(` `)),this.$wrapper.addClass(y.call(this,t).join(` `)),this.options.wrapperClass=t,this.$element}},{key:`radioAllOff`,value:function(e){if(e===void 0)return this.options.radioAllOff;var t=!!e;return this.options.radioAllOff===t||(this.options.radioAllOff=t),this.$element}},{key:`onInit`,value:function(e){return e===void 0?this.options.onInit:(this.options.onInit=e||o.fn.bootstrapSwitch.defaults.onInit,this.$element)}},{key:`onSwitchChange`,value:function(e){return e===void 0?this.options.onSwitchChange:(this.options.onSwitchChange=e||o.fn.bootstrapSwitch.defaults.onSwitchChange,this.$element)}},{key:`destroy`,value:function(){var e=this.$element.closest(`form`);return e.length&&e.off(`reset.bootstrapSwitch`).removeData(`bootstrap-switch`),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(`.bootstrapSwitch`).removeData(`bootstrap-switch`),this.$element}}]),e}();function x(e){var t=[...arguments].slice(1);function n(n,r){var i=o(r),a=i.data(`bootstrap-switch`),s=a||new b(r,e);return a||i.data(`bootstrap-switch`,s),typeof e==`string`?s[e].apply(s,t):n}return Array.prototype.reduce.call(this,n,this)}o.fn.bootstrapSwitch=x,o.fn.bootstrapSwitch.Constructor=b,o.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:`primary`,offColor:`default`,onText:`ON`,offText:`OFF`,labelText:` `,handleWidth:`auto`,labelWidth:`auto`,baseClass:`bootstrap-switch`,wrapperClass:`wrapper`,onInit:function(){},onSwitchChange:function(){}}})}))(),mo();var qO=Y.extend({events:{"submit .g-settings-form":function(e){e.preventDefault(),this.$(`.g-submit-settings`).girderEnable(!1),this.$(`#g-settings-error-message`).empty(),this.$(`#g-core-collection-create-policy`).val(JSON.stringify(this._covertCollectionCreationPolicy()));var t=U.map(this.settingsKeys,e=>{let t=this.$(`#g-`+e.replace(/[_.]/g,`-`));return U.contains([`core.api_keys`,`core.enable_password_login`,`core.disable_anonymous_access`],e)?{key:e,value:t.is(`:checked`)}:{key:e,value:t.val()||null}});Up({method:`PUT`,url:`system/setting`,data:{list:JSON.stringify(t)},error:null}).done(()=>{this.$(`.g-submit-settings`).girderEnable(!0),q.trigger(`g:alert`,{icon:`ok`,text:`Settings saved.`,type:`success`,timeout:4e3})}).fail(e=>{this.$(`.g-submit-settings`).girderEnable(!0),this.$(`#g-settings-error-message`).text(e.responseJSON.message)})}},initialize:function(){qp(`fetch`);var e=`core.api_keys,core.contact_email_address,core.brand_name,core.banner_color,core.privacy_notice,core.cookie_lifetime,core.disable_anonymous_access,core.enable_password_login,core.email_from_address,core.email_host,core.registration_policy,core.email_verification,core.server_root,core.smtp_host,core.smtp.port,core.smtp.encryption,core.smtp.username,core.smtp.password,core.upload_minimum_chunk_size,core.cors.allow_origin,core.cors.allow_methods,core.cors.allow_headers,core.add_to_group_policy,core.collection_create_policy,core.user_default_folders,core.show_download`.split(`,`);this.settingsKeys=e,Up({url:`system/setting`,method:`GET`,data:{list:JSON.stringify(e)}}).done(e=>{this.settings=e,this.render()})},render:function(){this.$el.html(KO({settings:this.settings,JSON:window.JSON}));var e=this.settings[`core.collection_create_policy`]?this.settings[`core.collection_create_policy`].open:!1;return this.$(`.g-setting-switch`).bootstrapSwitch().bootstrapSwitch(`state`,e).off(`switchChange.bootstrapSwitch`).on(`switchChange.bootstrapSwitch`,(e,t)=>{t?this._renderCollectionCreationPolicyAccessWidget():(this.accessWidget.destroy(),this.accessWidget=null)}),e&&this._renderCollectionCreationPolicyAccessWidget(),this},_renderCollectionCreationPolicyAccessWidget:function(){var e=new HO;this.accessWidget=new Yw({el:this.$(`.g-collection-create-policy-container .access-widget-container`),modelType:`collection_creation_policy`,model:e,parentView:this,modal:!1,hideRecurseOption:!0,hideSaveButton:!0,hidePrivacyEditor:!0,hideAccessType:!0,noAccessFlag:!0})},_covertCollectionCreationPolicy:function(){var e=null;if(this.$(`.g-setting-switch`).bootstrapSwitch(`state`)&&this.accessWidget){e={open:this.$(`.g-setting-switch`).bootstrapSwitch(`state`)};var t=this.accessWidget.getAccessList();U.each(U.keys(t),n=>{e[n]=U.pluck(t[n],`id`)})}else e=this.settings[`core.collection_create_policy`],e.open=!1;return e}});function JO(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=YO(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function YO(e){var t=``+e,n=XO.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var XO=/["&<>]/;function ZO(e){var t=``,n=e||{};return(function(e,n){t+=`<div class="modal-dialog"><div class="modal-content"><form class="modal-form" id="g-api-key-edit-form" role="form"><div class="modal-header"><button class="close" data-dismiss="modal" aria-hidden="true" type="button">×</button><h4 class="modal-title">`,t+=e?`Edit API key`:`Create new API key`,t=t+`</h4></div><div class="modal-body"><div class="form-group"><label class="control-label" for="g-api-key-name">Name</label><input class="input-sm form-control" id="g-api-key-name" type="text" placeholder="Enter a name for this API key"/></div><div class="form-group"><label class="control-label" for="g-api-key-token-duration">Token duration in days (optional)</label><input class="input-sm form-control" id="g-api-key-token-duration" placeholder="Enter number of days"/></div><label class="control-label">Permission scope for this key</label><div class="g-scope-selection-container"><div class="radio"><label><input`+(` id="g-scope-mode-full" type="radio" name="scopeType" value="full"`+JO(`checked`,!0,!0,!1))+`/>Allow all actions on behalf of my user</label></div><div class="radio"><label><input id="g-scope-mode-custom" type="radio" name="scopeType" value="custom"/>Only allow specific permissions for this key:</label></div>`,(function(){var e=n;if(typeof e.length==`number`)for(var r=0,i=e.length;r<i;r++){var a=e[r];t=t+`<div class="checkbox disabled"><label`+(` class="g-custom-scope-description"`+JO(`title`,a.description,!0,!1))+`><input`+(` class="g-custom-scope-checkbox" type="checkbox"`+JO(`value`,a.id,!0,!1)+JO(`disabled`,!0,!0,!1))+`/><span>`+YO(a.name??``)+`</span></label></div>`}else{var i=0;for(var r in e){i++;var a=e[r];t=t+`<div class="checkbox disabled"><label`+(` class="g-custom-scope-description"`+JO(`title`,a.description,!0,!1))+`><input`+(` class="g-custom-scope-checkbox" type="checkbox"`+JO(`value`,a.id,!0,!1)+JO(`disabled`,!0,!0,!1))+`/><span>`+YO(a.name??``)+`</span></label></div>`}}}).call(this),t+=`</div><div class="g-validation-failed-message"></div></div><div class="modal-footer"><a class="btn btn-small btn-default" data-dismiss="modal">Cancel</a><button class="g-save-api-key btn btn-small btn-primary" type="submit">`,t+=e?`<i class="icon-edit"></i> Save`:`<i class="icon-plus-squared"></i> Create`,t+=`</button></div></form></div></div>`}).call(this,`apiKey`in n?n.apiKey:typeof apiKey<`u`?apiKey:void 0,`tokenScopes`in n?n.tokenScopes:typeof tokenScopes<`u`?tokenScopes:void 0),t}mo();var QO=Y.extend({events:{"submit #g-api-key-edit-form":function(e){e.preventDefault();var t={name:this.$(`#g-api-key-name`).val(),tokenDuration:this.$(`#g-api-key-token-duration`).val(),scope:null,targetUserId:this.targetUserId};this._getSelectedScopeMode()===`custom`&&(t.scope=U.map(this.$(`.g-custom-scope-checkbox:checked`),function(e){return(0,W.default)(e).val()})),this.saveModel(this.model,t),this.$(`button.g-save-api-key`).girderEnable(!1),this.$(`.g-validation-failed-message`).text(``)},"change .g-scope-selection-container .radio input":function(){var e=this._getSelectedScopeMode();e===`full`?this.$(`.g-custom-scope-checkbox`).girderEnable(!1).parent().parent().girderEnable(!1):e===`custom`&&this.$(`.g-custom-scope-checkbox`).girderEnable(!0).parent().parent().girderEnable(!0)}},initialize:function(e){this.model=e.model||null,this.scopeInfo=null,this.targetUserId=e.parentView.model.id,this._shouldRender=!1,Up({url:`token/scopes`}).done(e=>{this.scopeInfo=e,this._shouldRender&&(this._shouldRender=!1,this.render())})},render:function(){if(!this.scopeInfo){this._shouldRender=!0;return}let e=this.scopeInfo.custom;om().get(`admin`)&&(e=e.concat(this.scopeInfo.adminCustom));var t=this.$el.html(ZO({apiKey:this.model,tokenScopes:e})).girderModal(this).on(`shown.bs.modal`,()=>{this.$(`#g-api-key-name`).trigger(`focus`)}).on(`ready.girder.modal`,()=>{this.model&&(this.$(`#g-api-key-name`).val(this.model.get(`name`)),this.$(`#g-api-key-token-duration`).val(this.model.get(`tokenDuration`)||``),this.model.get(`scope`)&&(this.$(`#g-scope-mode-custom`).attr(`checked`,`checked`).trigger(`change`),this.$(`.g-custom-scope-checkbox`).girderEnable(!0),U.each(this.model.get(`scope`),function(e){this.$(`.g-custom-scope-checkbox[value="`+e+`"]`).attr(`checked`,`checked`)},this)))});return t.trigger(W.default.Event(`ready.girder.modal`,{relatedTarget:t})),this.$(`#g-api-key-name`).trigger(`focus`),this},saveModel:function(e,t){e||=new hm,e.set(t),e.once(`g:saved`,function(){this.$el.modal(`hide`),this.trigger(`g:saved`,e)},this).off(`g:error`,null,this).on(`g:error`,function(e){this.$(`.g-validation-failed-message`).text(e.responseJSON.message),this.$(`button.g-save-api-key`).girderEnable(!0)},this).save()},_getSelectedScopeMode:function(){return this.$(`.g-scope-selection-container .radio input:checked`).attr(`value`)}});function $O(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=ek(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function ek(e){var t=``+e,n=tk.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var tk=/["&<>]/;function nk(e){var t=``,n=e||{};return(function(e,n){e.length===0?t+=`<div class="g-api-keys-empty-message">You have no existing API keys. Click the button below to create one.</div>`:(t+=`<div class="g-api-key-list-header">Your API keys</div><table class="g-api-key-table"><thead><tr><th col="name">Name</th><th col="key">Key</th><th col="scope">Scope</th><th col="active">Active</th><th col="tokenDuration">Token duration</th><th col="lastUse">Last used</th><th col="actions">Actions</th></tr></thead><tbody>`,(function(){var r=e;if(typeof r.length==`number`)for(var i=0,a=r.length;i<a;i++){var o=r[i];if(t=t+`<tr`+(` class="g-api-key-container"`+$O(`api-key-id`,o.id,!0,!1)+$O(`cid`,o.cid,!0,!1))+`><td col="name">`+ek(o.get(`name`)??``)+`</td><td col="key"><a`+(` class="g-show-api-key" data-toggle="popover"`+$O(`data-content`,o.get(`key`),!0,!1))+`>show</a></td><td col="scope">`,o.get(`scope`)?t+=`<span>Custom scopes</span>`:t+=`<span>Full access</span>`,t=t+`</td><td col="active">`+ek(o.get(`active`)?`Yes`:`No`)+`</td><td col="tokenDuration">`,o.get(`tokenDuration`)?t=t+`<span>`+ek(o.get(`tokenDuration`)??``)+` days</span>`:t+=`<span>Default</span>`,t+=`</td><td col="lastUse">`,o.get(`lastUse`)){var s=n(o.get(`lastUse`));t=t+`<span`+$O(`title`,s,!0,!1)+`>`+ek(s.fromNow()??``)+`</span>`}else t+=`<span>Never</span>`;t+=`</td><td col="actions"><button class="btn btn-sm btn-primary g-api-key-edit" title="Edit"><i class="icon-edit"></i></button>`,o.get(`active`)?t+=`<button class="btn btn-sm btn-warning g-api-key-toggle-active" title="Deactivate"><i class="icon-minus-circled"></i></button>`:t+=`<button class="btn btn-sm btn-success g-api-key-toggle-active" title="Activate"><i class="icon-plus-circled"></i></button>`,t+=`<button class="btn btn-sm btn-danger g-api-key-delete" title="Delete key"><i class="icon-cancel"></i></button></td></tr>`}else{var a=0;for(var i in r){a++;var o=r[i];if(t=t+`<tr`+(` class="g-api-key-container"`+$O(`api-key-id`,o.id,!0,!1)+$O(`cid`,o.cid,!0,!1))+`><td col="name">`+ek(o.get(`name`)??``)+`</td><td col="key"><a`+(` class="g-show-api-key" data-toggle="popover"`+$O(`data-content`,o.get(`key`),!0,!1))+`>show</a></td><td col="scope">`,o.get(`scope`)?t+=`<span>Custom scopes</span>`:t+=`<span>Full access</span>`,t=t+`</td><td col="active">`+ek(o.get(`active`)?`Yes`:`No`)+`</td><td col="tokenDuration">`,o.get(`tokenDuration`)?t=t+`<span>`+ek(o.get(`tokenDuration`)??``)+` days</span>`:t+=`<span>Default</span>`,t+=`</td><td col="lastUse">`,o.get(`lastUse`)){var s=n(o.get(`lastUse`));t=t+`<span`+$O(`title`,s,!0,!1)+`>`+ek(s.fromNow()??``)+`</span>`}else t+=`<span>Never</span>`;t+=`</td><td col="actions"><button class="btn btn-sm btn-primary g-api-key-edit" title="Edit"><i class="icon-edit"></i></button>`,o.get(`active`)?t+=`<button class="btn btn-sm btn-warning g-api-key-toggle-active" title="Deactivate"><i class="icon-minus-circled"></i></button>`:t+=`<button class="btn btn-sm btn-success g-api-key-toggle-active" title="Activate"><i class="icon-plus-circled"></i></button>`,t+=`<button class="btn btn-sm btn-danger g-api-key-delete" title="Delete key"><i class="icon-cancel"></i></button></td></tr>`}}}).call(this),t+=`</tbody></table>`),t+=`<div class="g-paginate-container"></div><div class="g-api-key-list-bottom-buttons"><button class="btn btn-default g-api-key-new">Create new key</button></div>`}).call(this,`apiKeys`in n?n.apiKeys:typeof apiKeys<`u`?apiKeys:void 0,`moment`in n?n.moment:typeof moment<`u`?moment:void 0),t}var rk=Y.extend({events:{"click .g-api-key-toggle-active":function(e){var t=this._getModelFromEvent(e),n=()=>{t.once(`g:setActive`,function(){this.render()},this).setActive(!t.get(`active`))};t.get(`active`)?Rv({text:`Deactivating this API key will delete any existing tokens created with it, and will not be usable until it is activated again. Are you sure you want to deactivate it?`,yesText:`Yes`,yesClass:`btn-warning`,escapedHtml:!0,confirmCallback:n}):n()},"click .g-api-key-new":function(){this._renderEditWidget()},"click .g-api-key-edit":function(e){var t=this._getModelFromEvent(e);this._renderEditWidget(t)},"click .g-api-key-delete":function(e){var t=this._getModelFromEvent(e);Rv({text:`Are you sure you want to delete the API key <b>`+t.escape(`name`)+`</b>? Any client applications using this key will no longer be able to authenticate.`,yesText:`Delete`,escapedHtml:!0,confirmCallback:()=>{t.on(`g:deleted`,function(){q.trigger(`g:alert`,{icon:`ok`,text:`API key deleted.`,type:`success`,timeout:3e3}),this.render()},this).destroy()}})}},initialize:function(e){this.model=e.user,this.fetched=!1,this.collection=new lv,this.collection.on(`g:changed`,function(){this.fetched=!0,this.render(),this.trigger(`g:changed`)},this).fetch({userId:this.model.id}),this.paginateWidget=new ZE({collection:this.collection,parentView:this})},render:function(){if(this.fetched)return this.$el.html(nk({apiKeys:this.collection.toArray(),moment:G})),this.$(`.g-show-api-key`).popover({container:this.$(`.g-api-key-table`),placement:`top`}),this.paginateWidget.setElement(this.$(`.g-paginate-container`)).render(),this},_getModelFromEvent:function(e){var t=(0,W.default)(e.currentTarget).parents(`.g-api-key-container`).attr(`cid`);return this.collection.get(t)},_renderEditWidget:function(e){this.editApiKeyWidget||=new QO({el:(0,W.default)(`#g-dialog-container`),parentView:this}).on(`g:saved`,function(e){this.collection.get(e.cid)||this.collection.add(e),this.render()},this),this.editApiKeyWidget.model=e||null,this.editApiKeyWidget.render()}}),ik=s(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),ak=s((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),ok=s((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),sk=s(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ck=s(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),lk=s((e=>{var t=ak().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),uk=s((e=>{var t=ak().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),dk=s((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),fk=s((e=>{var t=ok(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),pk=s((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),mk=s((e=>{var t=pk();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),hk=s(((e,t)=>{var n=mk();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),gk=s((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),_k=s((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
2639
2639
|
]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),vk=s((e=>{var t=gk(),n=_k();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),yk=s((e=>{var t=ak(),n=fk(),r=ok(),i=vk(),a=gk(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),bk=s((e=>{var t=ak(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),xk=s(((e,t)=>{var n=vk();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),Sk=s(((e,t)=>{var n=vk(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),Ck=s(((e,t)=>{var n=vk();function r(e){this.mode=n.BYTE,this.data=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),wk=s(((e,t)=>{var n=vk(),r=ak();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t=0;for(;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
|
|
2640
2640
|
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),Tk=s(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),Ek=s((e=>{var t=vk(),n=xk(),r=Sk(),i=Ck(),a=wk(),o=_k(),s=ak(),c=Tk();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
|
|
2641
2641
|
Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),Dk=s((e=>{var t=ak(),n=ok(),r=sk(),i=ck(),a=lk(),o=uk(),s=dk(),c=fk(),l=hk(),u=yk(),d=bk(),f=vk(),p=Ek();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function v(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function y(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function b(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function x(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return S(a,e,n)}function S(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),v=Array(o),y=0,b=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=b.slice(h,h+t),v[e]=m.encode(g[e]),h+=t,y=Math.max(y,t)}let x=new Uint8Array(i),S=0,C,w;for(C=0;C<y;C++)for(w=0;w<o;w++)C<g[w].length&&(x[S++]=g[w][C]);for(C=0;C<p;C++)for(w=0;w<o;w++)x[S++]=v[w][C];return x}function C(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
|
|
@@ -2657,4 +2657,4 @@ tokens created with a given key will last before expiration. If you do not speci
|
|
|
2657
2657
|
the default expiration for user login sessions will be used.
|
|
2658
2658
|
</div><div class="g-api-keys-list-container"></div></div></div><div class="tab-pane" id="g-account-tab-otp"><div class="g-user-settings-container"><div class="g-account-otp-info-text">Two-factor authentication adds another level of authentication to your account log-in.
|
|
2659
2659
|
</div><div class="g-account-otp-container"></div></div></div></div>`}).call(this,`getCurrentUser`in n?n.getCurrentUser:typeof getCurrentUser<`u`?getCurrentUser:void 0,`isCurrentUser`in n?n.isCurrentUser:typeof isCurrentUser<`u`?isCurrentUser:void 0,`temporaryToken`in n?n.temporaryToken:typeof temporaryToken<`u`?temporaryToken:void 0,`user`in n?n.user:typeof user<`u`?user:void 0),t}mo();var zA=Y.extend({events:{"submit #g-user-info-form":function(e){e.preventDefault(),this.$(`#g-user-info-error-msg`).empty();var t={email:this.$(`#g-email`).val(),firstName:this.$(`#g-firstName`).val(),lastName:this.$(`#g-lastName`).val()};this.$(`#g-admin`).length>0&&(t.admin=this.$(`#g-admin`).is(`:checked`)),this.user.set(t),this.user.off(`g:error`).on(`g:error`,function(e){var t=e.responseJSON.message;this.$(`#g-`+e.responseJSON.field).trigger(`focus`),this.$(`#g-user-info-error-msg`).text(t)},this).off(`g:saved`).on(`g:saved`,function(){q.trigger(`g:alert`,{icon:`ok`,text:`Info saved.`,type:`success`,timeout:4e3})},this).save()},"submit #g-password-change-form":function(e){if(e.preventDefault(),this.$(`#g-password-change-error-msg`).empty(),this.$(`#g-password-new`).val()!==this.$(`#g-password-retype`).val()){this.$(`#g-password-change-error-msg`).text(`Passwords do not match, try again.`),this.$(`#g-password-retype,#g-password-new`).val(``),this.$(`#g-password-new`).trigger(`focus`);return}this.user.off(`g:error`).on(`g:error`,function(e){var t=e.responseJSON.message;this.$(`#g-password-change-error-msg`).text(t)},this).off(`g:passwordChanged`).on(`g:passwordChanged`,function(){q.trigger(`g:alert`,{icon:`ok`,text:`Password changed.`,type:`success`,timeout:4e3}),this.$(`#g-password-old,#g-password-new,#g-password-retype`).val(``)},this),this.isCurrentUser?this.user.changePassword(this.$(`#g-password-old`).val(),this.$(`#g-password-new`).val()):this.user.adminChangePassword(this.$(`#g-password-new`).val())}},initialize:function(e){if(this.tab=e.tab||`info`,this.user=e.user||om(),this.isCurrentUser=om()&&e.user.id===om().id,this.model=this.user,this.temporary=e.temporary,!this.user||this.user.getAccessLevel()<vm.WRITE){J.navigate(``,{trigger:!0});return}qp(`fetch`),this.apiKeyListWidget=new rk({user:this.user,parentView:this}),this.userOtpManagementWidget=new PA({user:this.user,parentView:this}),this.render()},render:function(){if(om()===null){J.navigate(``,{trigger:!0});return}return this.$el.html(RA({user:this.model,isCurrentUser:this.isCurrentUser,getCurrentUser:om,temporaryToken:this.temporary})),U.each((0,W.default)(`.g-account-tabs>li>a`),function(e){var t=(0,W.default)(e);t.tab().on(`shown.bs.tab`,e=>{this.tab=(0,W.default)(e.currentTarget).attr(`name`),J.navigate(`useraccount/`+this.model.id+`/`+this.tab),this.tab===`apikeys`?this.apiKeyListWidget.setElement(this.$(`.g-api-keys-list-container`)).render():this.tab===`otp`&&this.userOtpManagementWidget.setElement(this.$(`.g-account-otp-container`)).render()}),t.attr(`name`)===this.tab&&t.tab(`show`)},this),this}},{fetchAndInit:function(e,t){var n=new nm;n.set({_id:e}).on(`g:fetched`,function(){q.trigger(`g:navigateTo`,zA,{user:n,tab:t})},this).on(`g:error`,function(){J.navigate(``,{trigger:!0})},this).fetch()}});mo();var BA=Y.extend({events:{"click .g-page-next:not(.disabled)":function(){this._updateHasNextPage(!0)},"click .g-page-prev:not(.disabled)":function(){this._updateHasPreviousPage(!0)}},initialize:function(e){this._type=e.type,this._query=e.query,this._mode=e.mode,this._limit=e.limit,this._offset=0,this._currentPage=0,this._hasNextPage=!1,this._hasPreviousPage=!1,this.results=null,this._updateHasNextPage()},render:function(){return this.$el.html(XE({collection:this})),this.$(`.g-page-next`).girderEnable(this._hasNextPage),this.$(`.g-page-prev`).girderEnable(this._hasPreviousPage),!this._hasNextPage&&!this._hasPreviousPage?this.$el.hide():this.$el.show(),this},pageNum:function(){return this._currentPage},_updateHasPreviousPage:function(e=!1){return this._currentPage&&e?this._fetchPreviousPage(e).done(()=>this._fetchPreviousPage()):this._fetchPreviousPage()},_updateHasNextPage:function(e=!1){return e?this._fetchNextPage(e).done(()=>this._fetchNextPage()):this._fetchNextPage()},_fetchPreviousPage:function(e=!1){var t=this._limit*(this._currentPage-1);if(t<0)this._hasPreviousPage=!1,this.render();else return this._fetch(t).done(t=>{var n=t[this._type];n.length?(this._hasPreviousPage=!0,e&&(this.results=n,this.trigger(`g:changed`),this._currentPage--,this._updateHasNextPage())):this._hasPreviousPage=!1,this.render()})},_fetchNextPage:function(e=!1){var t=this._limit*(this._currentPage+1);return this._fetch(t).done(t=>{var n=t[this._type];n.length?(this._hasNextPage=!0,e&&(this.results=n,this.trigger(`g:changed`),this._currentPage++,this._updateHasPreviousPage())):this._hasNextPage=!1,this.render()})},_fetch:function(e){return Up({url:`resource/search`,data:{q:this._query,mode:this._mode,types:JSON.stringify(U.intersection([this._type],Ny.getModeTypes(this._mode))),limit:this._limit,offset:e}})}});function VA(e){var t=``+e,n=HA.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var HA=/["&<>]/;function UA(e){var t=``,n=e||{};return(function(e){t=t+`<div class="g-search-results-header-container"><div class="g-search-results-title-container"><i class="g-search-results-title-element icon-search"></i><span class="g-search-results-title g-search-results-title-element">Results : `+VA(e??``)+`</span></div><div class="g-search-results-header"><div class="g-search-results-advance-search"></div></div></div><div class="g-search-results-container"></div><div class="g-search-pending"><i class="icon-spin4 animate-spin"></i></div><div class="g-search-no-results" style="display: none;"><i class="icon-block"></i> No results found</div>`}).call(this,`query`in n?n.query:typeof query<`u`?query:void 0),t}function WA(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=JA(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function GA(e,t){return Array.isArray(e)?KA(e,t):e&&typeof e==`object`?qA(e):e||``}function KA(e,t){for(var n,r=``,i=``,a=Array.isArray(t),o=0;o<e.length;o++)(n=GA(e[o]))&&(a&&t[o]&&(n=JA(n)),r=r+i+n,i=` `);return r}function qA(e){var t=``,n=``;for(var r in e)r&&e[r]&&YA.call(e,r)&&(t=t+n+r,n=` `);return t}function JA(e){var t=``+e,n=XA.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var YA=Object.prototype.hasOwnProperty,XA=/["&<>]/;function ZA(e){var t=``,n=e||{};return(function(e,n,r,i){t=t+`<div class="g-search-result-type-header-container"><i`+WA(`class`,GA([`g-search-result-type-header`,`g-search-result-type-icon`,`icon-${n}`],[!1,!1,!0]),!1,!1)+`></i><div class="g-search-result-type-header g-search-results-type-title">`+JA(e??``)+`</div></div><ul class="g-search-results-type">`,(function(){var e=r;if(typeof e.length==`number`)for(var n=0,a=e.length;n<a;n++){var o=e[n];t=t+`<li class="g-search-result"><a`+WA(`href`,`#${i}/${o._id}`,!0,!1)+`>`,i===`user`?t=t+JA(o.firstName??``)+` `+JA(o.lastName??``)+` (`+JA(o.login??``)+`)`:t+=JA(o.name??``),t+=`</a></li>`}else{var a=0;for(var n in e){a++;var o=e[n];t=t+`<li class="g-search-result"><a`+WA(`href`,`#${i}/${o._id}`,!0,!1)+`>`,i===`user`?t=t+JA(o.firstName??``)+` `+JA(o.lastName??``)+` (`+JA(o.login??``)+`)`:t+=JA(o.name??``),t+=`</a></li>`}}}).call(this),t=t+`</ul><div`+(` class="g-search-results-paginate"`+WA(`id`,`${i}Paginate`,!0,!1))+`></div>`}).call(this,`collectionName`in n?n.collectionName:typeof collectionName<`u`?collectionName:void 0,`icon`in n?n.icon:typeof icon<`u`?icon:void 0,`results`in n?n.results:typeof results<`u`?results:void 0,`type`in n?n.type:typeof type<`u`?type:void 0),t}mo();var QA=Y.extend({initialize:function(e){this._query=e.query||``,this._mode=e.mode||`text`,this._sizeOneElement=28,this.pageLimit=10,this._request=Up({url:`resource/search`,data:{q:this._query,mode:this._mode,types:JSON.stringify(Ny.getModeTypes(this._mode)),limit:this.pageLimit}}),this.render()},_getTypeOrdering:function(e){let t=[`collection`,`folder`,`item`,`group`,`user`],n=U.intersection(t,e),r=U.difference(e,t).sort();return n.concat(r)},render:function(){return this.$el.html(UA({query:this._query})),this._subviews={},this._request.done(e=>{this.$(`.g-search-pending`).hide();let t=U.keys(e),n=this._getTypeOrdering(t);U.each(n,t=>{e[t].length&&(this._subviews[t]=new $A({parentView:this,query:this._query,mode:this._mode,type:t,limit:this.pageLimit,initResults:e[t],sizeOneElement:this._sizeOneElement}).render(),this._subviews[t].$el.appendTo(this.$(`.g-search-results-container`)))}),U.isEmpty(this._subviews)&&this.$(`.g-search-no-results`).show()}),this}}),$A=Y.extend({className:`g-search-results-type-container`,initialize:function(e){this._query=e.query,this._mode=e.mode,this._type=e.type,this._initResults=e.initResults||[],this._pageLimit=e.limit||10,this._sizeOneElement=e.sizeOneElement||30,this._paginateWidget=new BA({parentView:this,type:this._type,query:this._query,mode:this._mode,limit:this._pageLimit}).on(`g:changed`,()=>{this._results=this._paginateWidget.results,this.render()}),this._results=this._initResults},_getTypeName:function(e){return{collection:`Collections`,group:`Groups`,user:`Users`,folder:`Folders`,item:`Items`}[e]||e},_getTypeIcon:function(e){return{user:`user`,group:`users`,collection:`sitemap`,folder:`folder`,item:`doc-text-inv`}[e]||`icon-attention-alt`},render:function(){return this.$el.html(ZA({results:this._results,collectionName:this._getTypeName(this._type),type:this._type,icon:this._getTypeIcon(this._type)})),this.$(`.g-search-results-type`).css(`min-height`,`${this._initResults.length*this._sizeOneElement}px`),this._paginateWidget.setElement(this.$(`#${this._type}Paginate`)).render(),this}});J.route(`admin`,`admin`,function(){q.trigger(`g:navigateTo`,vb)}),J.route(`assetstores`,`assetstores`,function(e){q.trigger(`g:navigateTo`,qE,{assetstoreEdit:e.dialog===`assetstoreedit`&&e.dialogid})}),J.route(`assetstore/:id/import`,`assetstoreImport`,function(e){qE.import(e)}),J.route(`collections`,`collections`,function(e){q.trigger(`g:navigateTo`,nD,e||{}),q.trigger(`g:highlightItem`,`CollectionsView`)}),J.route(`collection/:id`,`collectionAccess`,function(e,t){sD.fetchAndInit(e,{access:t.dialog===`access`,edit:t.dialog===`edit`,folderCreate:t.dialog===`foldercreate`,dialog:t.dialog})}),J.route(`collection/:id/folder/:id`,`collectionFolder`,function(e,t,n){sD.fetchAndInit(e,{folderId:t,upload:n.dialog===`upload`,access:n.dialog===`access`,edit:n.dialog===`edit`,folderAccess:n.dialog===`folderaccess`,folderCreate:n.dialog===`foldercreate`,folderEdit:n.dialog===`folderedit`,itemCreate:n.dialog===`itemcreate`})}),J.route(`folder/:id`,`folder`,function(e,t){cD.fetchAndInit(e,{upload:t.dialog===`upload`,folderAccess:t.dialog===`folderaccess`,folderCreate:t.dialog===`foldercreate`,folderEdit:t.dialog===`folderedit`,itemCreate:t.dialog===`itemcreate`})}),J.route(``,`index`,function(){q.trigger(`g:navigateTo`,pD)}),J.route(`groups`,`groups`,function(e){q.trigger(`g:navigateTo`,CD,e||{}),q.trigger(`g:highlightItem`,`GroupsView`)}),J.route(`group/:id`,`groupView`,function(e,t){fO.fetchAndInit(e,{edit:t.dialog===`edit`})}),J.route(`group/:id/:tab`,`groupView`,function(e,t,n){fO.fetchAndInit(e,{edit:n.dialog===`edit`,tab:t})}),J.route(`item/:id`,`item`,function(e,t){IO.fetchAndInit(e,{edit:t.dialog===`itemedit`,fileEdit:t.dialog===`fileedit`&&t.dialogid,upload:t.dialog===`upload`&&t.dialogid})}),J.route(`plugins`,`plugins`,function(){q.trigger(`g:navigateTo`,VO)}),J.route(`settings`,`settings`,function(){q.trigger(`g:navigateTo`,qO)}),J.route(`useraccount/:id/:tab`,`accountTab`,function(e,t){zA.fetchAndInit(e,t)}),J.route(`useraccount/:id/token/:token`,`accountToken`,function(e,t){nm.fromTemporaryToken(e,t).done(()=>{q.trigger(`g:navigateTo`,zA,{user:om(),tab:`password`,temporary:t})}).fail(()=>{J.navigate(``,{trigger:!0})})}),J.route(`useraccount/:id/verification/:token`,`accountVerify`,function(e,t){Up({url:`user/${e}/verification`,method:`PUT`,data:{token:t},error:null}).done(e=>{e.authToken&&(e.user.token=e.authToken.token,tm.close(),sm(new nm(e.user)),tm.open(),q.trigger(`g:login-changed`)),q.trigger(`g:navigateTo`,pD),q.trigger(`g:alert`,{icon:`ok`,text:`Email verified.`,type:`success`,timeout:4e3})}).fail(()=>{q.trigger(`g:navigateTo`,pD),q.trigger(`g:alert`,{icon:`cancel`,text:`Could not verify email.`,type:`danger`,timeout:4e3})})}),J.route(`users`,`users`,function(e){q.trigger(`g:navigateTo`,ND,e||{}),q.trigger(`g:highlightItem`,`UsersView`)}),J.route(`user/:id`,`user`,function(e,t){LD.fetchAndInit(e,{folderCreate:t.dialog===`foldercreate`,dialog:t.dialog})}),J.route(`user/:id/folder/:id`,`userFolder`,function(e,t,n){LD.fetchAndInit(e,{folderId:t,upload:n.dialog===`upload`,folderAccess:n.dialog===`folderaccess`,folderCreate:n.dialog===`foldercreate`,folderEdit:n.dialog===`folderedit`,itemCreate:n.dialog===`itemcreate`})}),J.route(`search/results`,`SearchResults`,function(e){q.trigger(`g:navigateTo`,QA,{query:e.query,mode:e.mode})}),mo();var ej=Y.extend({initialize:function(e){this._started=!1,e||={},this.contactEmail=e.contactEmail||null,this.privacyNoticeHref=e.privacyNoticeHref||null,this.brandName=e.brandName||null,this.bannerColor=e.bannerColor||null,this.registrationPolicy=e.registrationPolicy||null,this.enablePasswordLogin=!U.has(e,`enablePasswordLogin`)||e.enablePasswordLogin,this.downloadShown=e.showDownload||`all`,(e.start===void 0||e.start)&&this.start()},start:function(e){var t=new W.default.Deferred().resolve(null).promise();if(this._started)return t;e=U.defaults(e||{},{fetch:!0,render:!0,history:!0});var n=t=>{this._createLayout(),t&&(sm(new nm(t)),tm.open()),this._started=!0,e.render&&this.render(),e.history&&(go.default.history.stop(),go.default.history.start({pushState:!1}))};return e.fetch?t=um().done(n):n(null),this.bindGirderEvents(),t},bindGirderEvents:function(){q.off(null,null,this),q.on(`g:navigateTo`,this.navigateTo,this),q.on(`g:loginUi`,this.loginDialog,this),q.on(`g:registerUi`,this.registerDialog,this),q.on(`g:resetPasswordUi`,this.resetPasswordDialog,this),q.on(`g:alert`,this.alert,this),q.on(`g:login`,this.login,this)},_createLayout:function(){this.headerView=new By({parentView:this,brandName:this.brandName,bannerColor:this.bannerColor,registrationPolicy:this.registrationPolicy}),this.globalNavView=new cy({parentView:this}),this.footerView=new $v({parentView:this,contactEmail:this.contactEmail,privacyNoticeHref:this.privacyNoticeHref}),this.progressListView=new tb({eventStream:tm,parentView:this}),this.layoutRenderMap={},this.layoutRenderMap[bm.DEFAULT]=this._defaultLayout,this.layoutRenderMap[bm.EMPTY]=this._emptyLayout},_layout:`default`,_defaultLayout:{show:function(){this.$(`#g-app-header-container,#g-global-nav-container,#g-app-footer-container`).show(),this.$(`#g-app-body-container`).addClass(`g-default-layout`)},hide:function(){this.$(`#g-app-header-container,#g-global-nav-container,#g-app-footer-container`).hide(),this.$(`#g-app-body-container`).removeClass(`g-default-layout`)}},_emptyLayout:{show:function(){this.$(`#g-app-body-container`).addClass(`g-empty-layout`)},hide:function(){this.$(`#g-app-body-container`).removeClass(`g-empty-layout`)}},render:function(){if(this._started)return this.$el.html(gb()),this.globalNavView.setElement(this.$(`#g-global-nav-container`)).render(),this.headerView.setElement(this.$(`#g-app-header-container`)).render(),this.footerView.setElement(this.$(`#g-app-footer-container`)).render(),this.progressListView.setElement(this.$(`#g-app-progress-container`)).render(),this},navigateTo:function(e,t,n){return this.globalNavView.deactivateAll(),t||={},n||={},n.layout?this._layout!==n.layout&&(U.has(this.layoutRenderMap,n.layout)?(this.layoutRenderMap[this._layout].hide.call(this,n),this._layout=n.layout,this.layoutRenderMap[this._layout].show.call(this,n)):console.error(`Attempting to set unknown layout type: `+n.layout)):this._layout!==bm.DEFAULT&&(this.layoutRenderMap[this._layout].hide.call(this,n),this._layout=bm.DEFAULT,this.layoutRenderMap[this._layout].show.call(this,n)),e?(this.bodyView&&this.bodyView.destroy(),t=U.extend(t,{el:this.$(`#g-app-body-container`),parentView:this,brandName:this.brandName}),this.bodyView=new e(t),n.renderNow&&this.bodyView.render()):console.error(`Undefined page.`),this},closeDialogIfUser:function(){return om()?((0,W.default)(`.modal`).girderModal(`close`),!0):!1},loginDialog:function(){this.closeDialogIfUser()||(this.loginView||=new Hy({el:this.$(`#g-dialog-container`),parentView:this,registrationPolicy:this.registrationPolicy,enablePasswordLogin:this.enablePasswordLogin}),this.loginView.render())},registerDialog:function(){this.closeDialogIfUser()||(this.registerView||=new ab({el:this.$(`#g-dialog-container`),parentView:this}),this.registerView.render())},resetPasswordDialog:function(){this.closeDialogIfUser()||(this.resetPasswordView||=new sb({el:this.$(`#g-dialog-container`),parentView:this,registrationPolicy:this.registrationPolicy}),this.resetPasswordView.render())},alert:function(e){var t=(0,W.default)(hb({text:e.text,type:e.type||`info`,icon:e.icon}));(0,W.default)(`#g-alerts-container`).append(t),t.fadeIn(500),e.timeout===void 0&&(e.timeout=6e3),e.timeout>0&&window.setTimeout(function(){t.fadeOut(750,function(){(0,W.default)(this).remove()})},e.timeout)},showDownload:function(){let e=om(),t=!!(e&&e.get(`admin`));return this.downloadShown===void 0||this.downloadShown===null||this.downloadShown===`all`||this.downloadShown===`user`&&e||this.downloadShown===`admin`&&t},login:function(){var e=ov(go.default.history.fragment).base;go.default.history.fragment=null,tm.close(),om()?(tm.open(),J.navigate(e,{trigger:!0})):J.navigate(`/`,{trigger:!0})}}),tj=c({AdminView:()=>vb,AssetstoresView:()=>qE,CollectionView:()=>sD,CollectionsView:()=>nD,FilesystemImportView:()=>VE,FolderView:()=>cD,FrontPageView:()=>pD,GroupView:()=>fO,GroupsView:()=>CD,ItemView:()=>IO,PluginsView:()=>VO,S3ImportView:()=>GE,SearchResultsView:()=>QA,SystemConfigurationView:()=>qO,UserAccountView:()=>zA,UserView:()=>LD,UsersView:()=>ND,assetstoreImportViewMap:()=>KE}),nj=c({FooterView:()=>$v,GlobalNavView:()=>cy,HeaderUserView:()=>py,HeaderView:()=>By,LoginView:()=>Hy,ProgressListView:()=>tb,RegisterView:()=>ab,ResetPasswordView:()=>sb});function rj(e){var t=``+e,n=ij.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var ij=/["&<>]/;function aj(e){var t=``,n=e||{};return(function(e,n,r){t=t+`<div class="form-group"><label class="control-label">`+rj(e??``)+`</label>`,t+=n?`<div class="input-group date g-datetime-widget-from"><input class="input-sm form-control" type="text"/><div class="input-group-addon"><span class="icon-calendar"></span></div></div>`:`<div class="input-group date"><input class="input-sm form-control g-datetime-widget-from" type="text"/></div>`,t=t+`</div><div class="form-group"><label class="control-label">`+rj(r??``)+`</label>`,t+=n?`<div class="input-group date g-datetime-widget-to"><input class="input-sm form-control" type="text"/><div class="input-group-addon"><span class="icon-calendar"></span></div></div>`:`<div class="input-group date"><input class="input-sm form-control g-datetime-widget-to" type="text"/></div>`,t+=`</div>`}).call(this,`fromLabel`in n?n.fromLabel:typeof fromLabel<`u`?fromLabel:void 0,`showIcon`in n?n.showIcon:typeof showIcon<`u`?showIcon:void 0,`toLabel`in n?n.toLabel:typeof toLabel<`u`?toLabel:void 0),t}mo();var oj=Y.extend({initialize:function(e){this.defaultFromDate=e.defaultFromDate||!1,this.defaultToDate=e.defaultToDate||!1,this.showIcon=!U.has(e,`showIcon`)||e.showIcon,this.fromLabel=e.fromLabel||`Start date`,this.toLabel=e.toLabel||`End date`},render:function(){this.$el.html(aj({showIcon:this.showIcon,fromLabel:this.fromLabel,toLabel:this.toLabel}));var e={showClear:!0,showTodayButton:!0,icons:{time:`icon-clock`,date:`icon-calendar`,up:`icon-up-open`,down:`icon-down-open`,previous:`icon-left-open`,next:`icon-right-open`,clear:`icon-trash`,close:`icon-cancel`,today:`icon-target`}};return e.useCurrent=`day`,e.defaultDate=this.defaultFromDate,this.$(`.g-datetime-widget-from`).datetimepicker(e),e.useCurrent=!1,e.defaultDate=this.defaultToDate,this.$(`.g-datetime-widget-to`).datetimepicker(e),this.$(`.g-datetime-widget-from`).on(`dp.change`,e=>{this._picker(`.g-datetime-widget-to`).minDate(e.date)}),this.$(`.g-datetime-widget-to`).on(`dp.change`,e=>{this._picker(`.g-datetime-widget-from`).maxDate(e.date)}),this},setFromDate:function(e){this._setDate(`.g-datetime-widget-from`,e)},setToDate:function(e){this._setDate(`.g-datetime-widget-to`,e)},_setDate:function(e,t){var n=this._picker(e);if(U.isEmpty(t))n.clear();else if(U.isString(t)){var r=G.utc(t).local();n.date(r)}else n.date(t)},fromDate:function(){return this._date(`.g-datetime-widget-from`)},toDate:function(){return this._date(`.g-datetime-widget-to`)},fromDateString:function(){return this._dateString(`.g-datetime-widget-from`)},toDateString:function(){return this._dateString(`.g-datetime-widget-to`)},_picker:function(e){return this.$(e).data(`DateTimePicker`)},_date:function(e){var t=this._picker(e).date();return t!==null&&(t=G(t),t.utc()),t},_dateString:function(e){var t=this._date(e);return t===null?``:t.format()}});function sj(e){var t=``,n=e||{};return(function(e){t+=e?`<div class="input-group date g-datetime-widget"><input class="input-sm form-control" type="text"/><span class="input-group-addon"><span class="icon-calendar"></span></span></div>`:`<div class="input-group"><input class="input-sm form-control g-datetime-widget" type="text"/></div>`}).call(this,`showIcon`in n?n.showIcon:typeof showIcon<`u`?showIcon:void 0),t}mo();var cj=Y.extend({initialize:function(e){this.defaultDate=e.defaultDate||!1,this.showIcon=!U.has(e,`showIcon`)||e.showIcon},render:function(){return this.$el.html(sj({showIcon:this.showIcon})),this.$(`.g-datetime-widget`).datetimepicker({showClear:!0,showTodayButton:!0,useCurrent:`day`,icons:{time:`icon-clock`,date:`icon-calendar`,up:`icon-up-open`,down:`icon-down-open`,previous:`icon-left-open`,next:`icon-right-open`,clear:`icon-trash`,close:`icon-cancel`,today:`icon-target`},defaultDate:this.defaultDate}),this},setDate:function(e){var t=this._picker();if(U.isEmpty(e))t.clear();else if(U.isString(e)){var n=G.utc(e).local();t.date(n)}else t.date(e)},date:function(){var e=this._picker().date();return e!==null&&(e=G(e),e.utc()),e},dateString:function(){var e=this.date();return e===null?``:e.format()},_picker:function(){return this.$(`.g-datetime-widget`).data(`DateTimePicker`)}});function lj(e){var t=``+e,n=uj.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var uj=/["&<>]/;function dj(e){var t=``,n=e||{};return(function(e){t=t+`<div class="g-plugin-config-breadcrumbs"><ol class="breadcrumb"><li><a class="g-admin-console-link"><i class="icon-wrench"></i>Admin console</a></li><li><a class="g-plugins-link"><i class="icon-puzzle"></i>Plugins</a></li><li class="active"><i class="icon-cog"></i>`+lj(e??``)+`</li></ol></div>`}).call(this,`pluginName`in n?n.pluginName:typeof pluginName<`u`?pluginName:void 0),t}var fj=Y.extend({events:{"click a.g-admin-console-link":function(){J.navigate(`admin`,{trigger:!0})},"click a.g-plugins-link":function(){J.navigate(`plugins`,{trigger:!0})}},initialize:function(e){this.pluginName=e.pluginName},render:function(){return this.$el.html(dj({pluginName:this.pluginName})),this}});function pj(e,t,n,r){if(!1===t||t==null||!t&&(e===`class`||e===`style`))return``;if(!0===t)return` `+(r?e:e+`="`+e+`"`);var i=typeof t;return i!==`object`&&i!==`function`||typeof t.toJSON!=`function`||(t=t.toJSON()),typeof t==`string`||(t=JSON.stringify(t),n||t.indexOf(`"`)===-1)?(n&&(t=_j(t)),` `+e+`="`+t+`"`):` `+e+`='`+t.replace(/'/g,`'`)+`'`}function mj(e,t){return Array.isArray(e)?hj(e,t):e&&typeof e==`object`?gj(e):e||``}function hj(e,t){for(var n,r=``,i=``,a=Array.isArray(t),o=0;o<e.length;o++)(n=mj(e[o]))&&(a&&t[o]&&(n=_j(n)),r=r+i+n,i=` `);return r}function gj(e){var t=``,n=``;for(var r in e)r&&e[r]&&vj.call(e,r)&&(t=t+n+r,n=` `);return t}function _j(e){var t=``+e,n=yj.exec(t);if(!n)return e;var r,i,a,o=``;for(r=n.index,i=0;r<t.length;r++){switch(t.charCodeAt(r)){case 34:a=`"`;break;case 38:a=`&`;break;case 60:a=`<`;break;case 62:a=`>`;break;default:continue}i!==r&&(o+=t.substring(i,r)),i=r+1,o+=a}return i===r?o:o+t.substring(i,r)}var vj=Object.prototype.hasOwnProperty,yj=/["&<>]/;function bj(e){if(!e)return``;if(typeof e==`object`){var t=``;for(var n in e)vj.call(e,n)&&(t=t+n+`:`+e[n]+`;`);return t}return e+``}function xj(e){var t=``,n=e||{};return(function(e,n,r,i){t+=`<div class="g-timeline-widget-wrapper"><div class="g-timeline-container">`,(function(){var e=r;if(typeof e.length==`number`)for(var n=0,i=e.length;n<i;n++){var a=e[n];t=t+`<div`+(pj(`class`,mj([`g-timeline-segment`,a.class],[!1,!0]),!1,!1)+pj(`title`,a.tooltip,!0,!1)+pj(`style`,bj(`left: ${a.left}; width: ${a.width}; ${a.color}`),!0,!1))+`></div>`}else{var i=0;for(var n in e){i++;var a=e[n];t=t+`<div`+(pj(`class`,mj([`g-timeline-segment`,a.class],[!1,!0]),!1,!1)+pj(`title`,a.tooltip,!0,!1)+pj(`style`,bj(`left: ${a.left}; width: ${a.width}; ${a.color}`),!0,!1))+`></div>`}}}).call(this),(function(){var e=n;if(typeof e.length==`number`)for(var r=0,i=e.length;r<i;r++){var a=e[r];t=t+`<div`+(pj(`class`,mj([`g-timeline-point`,a.class],[!1,!0]),!1,!1)+pj(`title`,a.tooltip,!0,!1)+pj(`style`,bj(`left: calc(${a.left} - 10px); ${a.color}`),!0,!1))+`></div>`}else{var i=0;for(var r in e){i++;var a=e[r];t=t+`<div`+(pj(`class`,mj([`g-timeline-point`,a.class],[!1,!0]),!1,!1)+pj(`title`,a.tooltip,!0,!1)+pj(`style`,bj(`left: calc(${a.left} - 10px); ${a.color}`),!0,!1))+`></div>`}}}).call(this),t+=`</div>`,(i!==void 0||e!==void 0)&&(t+=`<div class="g-timeline-labels-container">`,i!==void 0&&(t=t+`<div class="g-timeline-start-label">`+_j(i??``)+`</div>`),e!==void 0&&(t=t+`<div class="g-timeline-end-label">`+_j(e??``)+`</div>`),t+=`</div>`),t+=`</div>`}).call(this,`endLabel`in n?n.endLabel:typeof endLabel<`u`?endLabel:void 0,`points`in n?n.points:typeof points<`u`?points:void 0,`segments`in n?n.segments:typeof segments<`u`?segments:void 0,`startLabel`in n?n.startLabel:typeof startLabel<`u`?startLabel:void 0),t}mo();var Sj=Y.extend({initialize:function(e){this.startTime=e.startTime,this.endTime=e.endTime,this.segments=e.segments||[],this.points=e.points||[],this.numeric=!!e.numeric,this.startLabel=e.startLabel,this.endLabel=e.endLabel,this.defaultSegmentClass=e.defaultSegmentClass||`g-segment-default`,this.defaultPointClass=e.defaultPointClass||`g-point-default`,this._processData()},_processData:function(){if(this.numeric||(this.startTime=new Date(this.startTime),this.endTime=new Date(this.endTime)),this.endTime<=this.startTime){console.error(`Timeline widget: end time must be after start time.`),this._processedSegments=[],this._processedPoints=[];return}var e=this.endTime-this.startTime;this._processedSegments=U.map(this.segments,function(t){var n=this.numeric?t.start:new Date(t.start),r=this.numeric?t.end:new Date(t.end),i=t.class?[t.class]:[this.defaultSegmentClass],a=t.color?`background-color: ${t.color}`:``;return{class:i.join(` `),left:(100*(n-this.startTime)/e).toFixed(1)+`%`,width:(100*(r-n)/e).toFixed(1)+`%`,tooltip:this._segmentTooltip(t,{range:this.numeric?r-n:(r-n)/1e3}),color:a}},this),this._processedPoints=U.map(this.points,function(t){var n=this.numeric?t.time:new Date(t.time),r=t.class?[t.class]:[this.defaultPointClass],i=t.color?`background-color: ${t.color}`:``;return{class:r.join(` `),left:(100*(n-this.startTime)/e).toFixed(1)+`%`,tooltip:this._pointTooltip(t,{time:n}),color:i}},this)},_segmentTooltip:function(e,t){return e.tooltip?e.tooltip.replace(`%r`,t.range):null},_pointTooltip:function(e,t){return e.tooltip?this.numeric?e.tooltip.replace(`%t`,t.time):e.tooltip.replace(`%t`,t.time.toISOString()):null},render:function(){return this.$el.html(xj({segments:this._processedSegments,points:this._processedPoints,startLabel:this.startLabel,endLabel:this.endLabel})),this}}),Cj=c({AccessWidget:()=>Yw,ApiKeyListWidget:()=>rk,BrowserWidget:()=>LE,CheckedMenuWidget:()=>$w,CollectionInfoWidget:()=>iT,DateTimeRangeWidget:()=>oj,DateTimeWidget:()=>cj,EditApiKeyWidget:()=>QO,EditAssetstoreWidget:()=>bb,EditCollectionWidget:()=>dT,EditFileWidget:()=>_O,EditFolderWidget:()=>pT,EditGroupWidget:()=>vD,EditItemWidget:()=>hT,FileInfoWidget:()=>xO,FileListWidget:()=>EO,FolderInfoWidget:()=>bT,FolderListWidget:()=>TT,GroupAdminsWidget:()=>HD,GroupInvitesWidget:()=>qD,GroupMembersWidget:()=>nO,GroupModsWidget:()=>sO,HierarchyWidget:()=>DE,ItemBreadcrumbWidget:()=>jO,ItemListWidget:()=>PT,LoadingAnimation:()=>Jw,MarkdownWidget:()=>lT,MetadataWidget:()=>nE,NewAssetstoreWidget:()=>Cb,PaginateWidget:()=>ZE,PluginConfigBreadcrumbWidget:()=>fj,RootSelectorWidget:()=>ME,SearchFieldWidget:()=>Ny,SearchPaginateWidget:()=>BA,SortCollectionWidget:()=>OD,TaskProgressWidget:()=>$y,TimelineWidget:()=>Sj,UploadWidget:()=>dE,UserOtpManagementWidget:()=>PA}),wj=c({App:()=>ej,View:()=>Y,body:()=>tj,layout:()=>nj,widgets:()=>Cj});mo();var Tj={$:W.default,_:U,Backbone:go.default,moment:G,initializeDefaultApp:async(e,t=`body`)=>new Promise((n,r)=>{(0,W.default)(()=>{Bp(e),q.trigger(`g:appload.before`),Up({url:`system/public_settings`,method:`GET`}).done(e=>{Hp(e);let r=new ej({el:t,parentView:null,contactEmail:e[`core.contact_email_address`],privacyNoticeHref:e[`core.privacy_notice`],brandName:e[`core.brand_name`],bannerColor:e[`core.banner_color`],registrationPolicy:e[`core.registration_policy`],enablePasswordLogin:e[`core.enable_password_login`],showDownload:e[`core.show_download`]});r.render(),document.title=e[`core.brand_name`],q.trigger(`g:appload.after`,r),n(r)}).fail(e=>{q.trigger(`g:error`,e),r(Error(`Could not retrieve public settings from server.`))})})}),auth:rm,collections:Ev,constants:gm,dialog:Fv,events:q,misc:Y_,models:zv,plugins:{},pluginUtils:Bv,rest:Pp,router:J,utilities:Jv,version:null,views:wj};window.girder=Tj;var Ej=void 0;(async()=>{if(!Ej){let e=document.getElementById(`app`);Ej=e&&e.getAttribute(`root`)||``,Ej+=(Ej.endsWith(`/`)?``:`/`)+`api/v1`,!Ej.startsWith(`/`)&&Ej.indexOf(`:`)<0&&(Ej=`/`+Ej)}let e=await(await fetch(`${Ej}/system/plugin_static_files`)).json(),t=Ej.indexOf(`:`)>=0?Ej.replace(/\/api\/v1\/?$/,`/`):window.location.origin+Ej.replace(/\/api\/v1\/?$/,`/`);e.css.forEach(e=>{let n=document.createElement(`link`);n.rel=`stylesheet`,n.type=`text/css`,n.href=new URL(e,t).href,document.head.appendChild(n)});for(let n of e.js)await new Promise(e=>{let r=document.createElement(`script`);r.type=`text/javascript`,r.src=new URL(n,t).href,document.head.appendChild(r),r.addEventListener(`load`,function(){e()})});await Tj.initializeDefaultApp(Ej)})();
|
|
2660
|
-
//# sourceMappingURL=index-
|
|
2660
|
+
//# sourceMappingURL=index-DH5Or_NP.js.map
|