commit d42be59ec675b2e938db6ed16a51f34fd1a8fc04 Author: Jan Modrzejewski Date: Fri Jan 27 21:24:56 2023 +0100 Struktura programu z widokami i repozytorium diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a56759 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +node_modules +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..c1dd12f Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..b74bf7f --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar diff --git a/frontend/generated/index.ts b/frontend/generated/index.ts new file mode 100644 index 0000000..c20aa03 --- /dev/null +++ b/frontend/generated/index.ts @@ -0,0 +1,32 @@ +/****************************************************************************** + * This file is auto-generated by Vaadin. + * If you want to customize the entry point, you can copy this file or create + * your own `index.ts` in your frontend directory. + * By default, the `index.ts` file should be in `./frontend/` folder. + * + * NOTE: + * - You need to restart the dev-server after adding the new `index.ts` file. + * After that, all modifications to `index.ts` are recompiled automatically. + * - `index.js` is also supported if you don't want to use TypeScript. + ******************************************************************************/ + +// import Vaadin client-router to handle client-side and server-side navigation +import { Router } from '@vaadin/router'; + +// import Flow module to enable navigation to Vaadin server-side views +import { Flow } from 'Frontend/generated/jar-resources/Flow.js'; + +const { serverSideRoutes } = new Flow({ + imports: () => import('../../target/frontend/generated-flow-imports.js') +}); + +const routes = [ + // for client-side, place routes below (more info https://vaadin.com/docs/v15/flow/typescript/creating-routes.html) + + // for server-side, the next magic line sends all unmatched routes: + ...serverSideRoutes // IMPORTANT: this must be the last entry in the array +]; + +// Vaadin router needs an outlet in the index.html page to display views +const router = new Router(document.querySelector('#outlet')); +router.setRoutes(routes); diff --git a/frontend/generated/jar-resources/Flow.d.ts b/frontend/generated/jar-resources/Flow.d.ts new file mode 100644 index 0000000..efbbbe8 --- /dev/null +++ b/frontend/generated/jar-resources/Flow.d.ts @@ -0,0 +1,74 @@ +export interface FlowConfig { + imports?: () => void; +} +interface AppConfig { + productionMode: boolean; + appId: string; + uidl: any; + clientRouting: boolean; +} +interface AppInitResponse { + appConfig: AppConfig; + pushScript?: string; +} +interface Router { + render: (ctx: NavigationParameters, shouldUpdateHistory: boolean) => Promise; +} +interface HTMLRouterContainer extends HTMLElement { + onBeforeEnter?: (ctx: NavigationParameters, cmd: PreventAndRedirectCommands, router: Router) => void | Promise; + onBeforeLeave?: (ctx: NavigationParameters, cmd: PreventCommands, router: Router) => void | Promise; + serverConnected?: (cancel: boolean, url?: NavigationParameters) => void; +} +interface FlowRoute { + action: (params: NavigationParameters) => Promise; + path: string; +} +export interface NavigationParameters { + pathname: string; + search: string; +} +export interface PreventCommands { + prevent: () => any; +} +export interface PreventAndRedirectCommands extends PreventCommands { + redirect: (route: string) => any; +} +/** + * Client API for flow UI operations. + */ +export declare class Flow { + config: FlowConfig; + response?: AppInitResponse; + pathname: string; + container: HTMLRouterContainer; + private isActive; + private baseRegex; + private appShellTitle; + constructor(config?: FlowConfig); + /** + * Return a `route` object for vaadin-router in an one-element array. + * + * The `FlowRoute` object `path` property handles any route, + * and the `action` returns the flow container without updating the content, + * delaying the actual Flow server call to the `onBeforeEnter` phase. + * + * This is a specific API for its use with `vaadin-router`. + */ + get serverSideRoutes(): [FlowRoute]; + loadingStarted(): void; + loadingFinished(): void; + private get action(); + private flowLeave; + private flowNavigate; + private getFlowRoutePath; + private getFlowRouteQuery; + private flowInit; + private loadScript; + private injectAppIdScript; + private flowInitClient; + private flowInitUi; + private addConnectionIndicator; + private offlineStubAction; + private isFlowClientLoaded; +} +export {}; diff --git a/frontend/generated/jar-resources/Flow.js b/frontend/generated/jar-resources/Flow.js new file mode 100644 index 0000000..66ab4ae --- /dev/null +++ b/frontend/generated/jar-resources/Flow.js @@ -0,0 +1,324 @@ +import { ConnectionIndicator, ConnectionState } from '@vaadin/common-frontend'; +class FlowUiInitializationError extends Error { +} +// flow uses body for keeping references +const flowRoot = window.document.body; +const $wnd = window; +/** + * Client API for flow UI operations. + */ +export class Flow { + constructor(config) { + this.response = undefined; + this.pathname = ''; + // flag used to inform Testbench whether a server route is in progress + this.isActive = false; + this.baseRegex = /^\//; + flowRoot.$ = flowRoot.$ || []; + this.config = config || {}; + // TB checks for the existence of window.Vaadin.Flow in order + // to consider that TB needs to wait for `initFlow()`. + $wnd.Vaadin = $wnd.Vaadin || {}; + $wnd.Vaadin.Flow = $wnd.Vaadin.Flow || {}; + $wnd.Vaadin.Flow.clients = { + TypeScript: { + isActive: () => this.isActive + } + }; + // Regular expression used to remove the app-context + const elm = document.head.querySelector('base'); + this.baseRegex = new RegExp(`^${ + // IE11 does not support document.baseURI + (document.baseURI || (elm && elm.href) || '/').replace(/^https?:\/\/[^/]+/i, '')}`); + this.appShellTitle = document.title; + // Put a vaadin-connection-indicator in the dom + this.addConnectionIndicator(); + } + /** + * Return a `route` object for vaadin-router in an one-element array. + * + * The `FlowRoute` object `path` property handles any route, + * and the `action` returns the flow container without updating the content, + * delaying the actual Flow server call to the `onBeforeEnter` phase. + * + * This is a specific API for its use with `vaadin-router`. + */ + get serverSideRoutes() { + return [ + { + path: '(.*)', + action: this.action + } + ]; + } + loadingStarted() { + // Make Testbench know that server request is in progress + this.isActive = true; + $wnd.Vaadin.connectionState.loadingStarted(); + } + loadingFinished() { + // Make Testbench know that server request has finished + this.isActive = false; + $wnd.Vaadin.connectionState.loadingFinished(); + } + get action() { + // Return a function which is bound to the flow instance, thus we can use + // the syntax `...serverSideRoutes` in vaadin-router. + return async (params) => { + // Store last action pathname so as we can check it in events + this.pathname = params.pathname; + if ($wnd.Vaadin.connectionState.online) { + try { + await this.flowInit(); + } + catch (error) { + if (error instanceof FlowUiInitializationError) { + // error initializing Flow: assume connection lost + $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST; + return this.offlineStubAction(); + } + else { + throw error; + } + } + } + else { + // insert an offline stub + return this.offlineStubAction(); + } + // When an action happens, navigation will be resolved `onBeforeEnter` + this.container.onBeforeEnter = (ctx, cmd) => this.flowNavigate(ctx, cmd); + // For covering the 'server -> client' use case + this.container.onBeforeLeave = (ctx, cmd) => this.flowLeave(ctx, cmd); + return this.container; + }; + } + // Send a remote call to `JavaScriptBootstrapUI` to check + // whether navigation has to be cancelled. + async flowLeave(ctx, cmd) { + // server -> server, viewing offline stub, or browser is offline + const { connectionState } = $wnd.Vaadin; + if (this.pathname === ctx.pathname || !this.isFlowClientLoaded() || connectionState.offline) { + return Promise.resolve({}); + } + // 'server -> client' + return new Promise((resolve) => { + this.loadingStarted(); + // The callback to run from server side to cancel navigation + this.container.serverConnected = (cancel) => { + resolve(cmd && cancel ? cmd.prevent() : {}); + this.loadingFinished(); + }; + // Call server side to check whether we can leave the view + flowRoot.$server.leaveNavigation(this.getFlowRoutePath(ctx), this.getFlowRouteQuery(ctx)); + }); + } + // Send the remote call to `JavaScriptBootstrapUI` to render the flow + // route specified by the context + async flowNavigate(ctx, cmd) { + if (this.response) { + return new Promise((resolve) => { + this.loadingStarted(); + // The callback to run from server side once the view is ready + this.container.serverConnected = (cancel, redirectContext) => { + if (cmd && cancel) { + resolve(cmd.prevent()); + } + else if (cmd && cmd.redirect && redirectContext) { + resolve(cmd.redirect(redirectContext.pathname)); + } + else { + this.container.style.display = ''; + resolve(this.container); + } + this.loadingFinished(); + }; + // Call server side to navigate to the given route + flowRoot.$server.connectClient(this.container.localName, this.container.id, this.getFlowRoutePath(ctx), this.getFlowRouteQuery(ctx), this.appShellTitle, history.state); + }); + } + else { + // No server response => offline or erroneous connection + return Promise.resolve(this.container); + } + } + getFlowRoutePath(context) { + return decodeURIComponent(context.pathname).replace(this.baseRegex, ''); + } + getFlowRouteQuery(context) { + return (context.search && context.search.substring(1)) || ''; + } + // import flow client modules and initialize UI in server side. + async flowInit(serverSideRouting = false) { + // Do not start flow twice + if (!this.isFlowClientLoaded()) { + // show flow progress indicator + this.loadingStarted(); + // Initialize server side UI + this.response = await this.flowInitUi(serverSideRouting); + // Enable or disable server side routing + this.response.appConfig.clientRouting = !serverSideRouting; + const { pushScript, appConfig } = this.response; + if (typeof pushScript === 'string') { + await this.loadScript(pushScript); + } + const { appId } = appConfig; + // Load bootstrap script with server side parameters + const bootstrapMod = await import('./FlowBootstrap'); + await bootstrapMod.init(this.response); + // Load custom modules defined by user + if (typeof this.config.imports === 'function') { + this.injectAppIdScript(appId); + await this.config.imports(); + } + // Load flow-client module + const clientMod = await import('./FlowClient'); + await this.flowInitClient(clientMod); + if (!serverSideRouting) { + // we use a custom tag for the flow app container + const tag = `flow-container-${appId.toLowerCase()}`; + this.container = document.createElement(tag); + flowRoot.$[appId] = this.container; + this.container.id = appId; + } + // hide flow progress indicator + this.loadingFinished(); + } + // It might be that components created from server expect that their content has been rendered. + // Appending eagerly the container we avoid these kind of errors. + // Note that the client router will move this container to the outlet if the navigation succeed + if (this.container && !this.container.isConnected) { + this.container.style.display = 'none'; + document.body.appendChild(this.container); + } + return this.response; + } + async loadScript(url) { + return new Promise((resolve, reject) => { + const script = document.createElement('script'); + script.onload = () => resolve(); + script.onerror = reject; + script.src = url; + document.body.appendChild(script); + }); + } + injectAppIdScript(appId) { + const appIdWithoutHashCode = appId.substring(0, appId.lastIndexOf('-')); + const scriptAppId = document.createElement('script'); + scriptAppId.type = 'module'; + scriptAppId.setAttribute('data-app-id', appIdWithoutHashCode); + document.body.append(scriptAppId); + } + // After the flow-client javascript module has been loaded, this initializes flow UI + // in the browser. + async flowInitClient(clientMod) { + clientMod.init(); + // client init is async, we need to loop until initialized + return new Promise((resolve) => { + const intervalId = setInterval(() => { + // client `isActive() == true` while initializing or processing + const initializing = Object.keys($wnd.Vaadin.Flow.clients) + .filter((key) => key !== 'TypeScript') + .reduce((prev, id) => prev || $wnd.Vaadin.Flow.clients[id].isActive(), false); + if (!initializing) { + clearInterval(intervalId); + resolve(); + } + }, 5); + }); + } + // Returns the `appConfig` object + async flowInitUi(serverSideRouting) { + // appConfig was sent in the index.html request + const initial = $wnd.Vaadin && $wnd.Vaadin.TypeScript && $wnd.Vaadin.TypeScript.initial; + if (initial) { + $wnd.Vaadin.TypeScript.initial = undefined; + return Promise.resolve(initial); + } + // send a request to the `JavaScriptBootstrapHandler` + return new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + const httpRequest = xhr; + const serverRoutingParam = serverSideRouting ? '&serverSideRouting' : ''; + const requestPath = `?v-r=init&location=${encodeURIComponent(this.getFlowRoutePath(location))}&query=${encodeURIComponent(this.getFlowRouteQuery(location))}${serverRoutingParam}`; + httpRequest.open('GET', requestPath); + httpRequest.onerror = () => reject(new FlowUiInitializationError(`Invalid server response when initializing Flow UI. + ${httpRequest.status} + ${httpRequest.responseText}`)); + httpRequest.onload = () => { + const contentType = httpRequest.getResponseHeader('content-type'); + if (contentType && contentType.indexOf('application/json') !== -1) { + resolve(JSON.parse(httpRequest.responseText)); + } + else { + httpRequest.onerror(); + } + }; + httpRequest.send(); + }); + } + // Create shared connection state store and connection indicator + addConnectionIndicator() { + // add connection indicator to DOM + ConnectionIndicator.create(); + // Listen to browser online/offline events and update the loading indicator accordingly. + // Note: if flow-client is loaded, it instead handles the state transitions. + $wnd.addEventListener('online', () => { + if (!this.isFlowClientLoaded()) { + // Send an HTTP HEAD request for sw.js to verify server reachability. + // We do not expect sw.js to be cached, so the request goes to the + // server rather than being served from local cache. + // Require network-level failure to revert the state to CONNECTION_LOST + // (HTTP error code is ok since it still verifies server's presence). + $wnd.Vaadin.connectionState.state = ConnectionState.RECONNECTING; + const http = new XMLHttpRequest(); + http.open('HEAD', 'sw.js'); + http.onload = () => { + $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTED; + }; + http.onerror = () => { + $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST; + }; + // Postpone request to reduce potential net::ERR_INTERNET_DISCONNECTED + // errors that sometimes occurs even if browser says it is online + setTimeout(() => http.send(), 50); + } + }); + $wnd.addEventListener('offline', () => { + if (!this.isFlowClientLoaded()) { + $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST; + } + }); + } + async offlineStubAction() { + const offlineStub = document.createElement('iframe'); + const offlineStubPath = './offline-stub.html'; + offlineStub.setAttribute('src', offlineStubPath); + offlineStub.setAttribute('style', 'width: 100%; height: 100%; border: 0'); + this.response = undefined; + let onlineListener; + const removeOfflineStubAndOnlineListener = () => { + if (onlineListener !== undefined) { + $wnd.Vaadin.connectionState.removeStateChangeListener(onlineListener); + onlineListener = undefined; + } + }; + offlineStub.onBeforeEnter = (ctx, _cmds, router) => { + onlineListener = () => { + if ($wnd.Vaadin.connectionState.online) { + removeOfflineStubAndOnlineListener(); + router.render(ctx, false); + } + }; + $wnd.Vaadin.connectionState.addStateChangeListener(onlineListener); + }; + offlineStub.onBeforeLeave = (_ctx, _cmds, _router) => { + removeOfflineStubAndOnlineListener(); + }; + return offlineStub; + } + isFlowClientLoaded() { + return this.response !== undefined; + } +} +//# sourceMappingURL=Flow.js.map \ No newline at end of file diff --git a/frontend/generated/jar-resources/Flow.js.map b/frontend/generated/jar-resources/Flow.js.map new file mode 100644 index 0000000..779992c --- /dev/null +++ b/frontend/generated/jar-resources/Flow.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Flow.js","sourceRoot":"","sources":["../../../../src/main/frontend/Flow.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ConnectionIndicator,\n ConnectionState,\n ConnectionStateChangeListener,\n ConnectionStateStore\n} from '@vaadin/common-frontend';\n\nexport interface FlowConfig {\n imports?: () => void;\n}\n\nclass FlowUiInitializationError extends Error {}\n\ninterface AppConfig {\n productionMode: boolean;\n appId: string;\n uidl: any;\n clientRouting: boolean;\n}\n\ninterface AppInitResponse {\n appConfig: AppConfig;\n pushScript?: string;\n}\n\ninterface Router {\n render: (ctx: NavigationParameters, shouldUpdateHistory: boolean) => Promise;\n}\n\ninterface HTMLRouterContainer extends HTMLElement {\n onBeforeEnter?: (ctx: NavigationParameters, cmd: PreventAndRedirectCommands, router: Router) => void | Promise;\n onBeforeLeave?: (ctx: NavigationParameters, cmd: PreventCommands, router: Router) => void | Promise;\n serverConnected?: (cancel: boolean, url?: NavigationParameters) => void;\n}\n\ninterface FlowRoute {\n action: (params: NavigationParameters) => Promise;\n path: string;\n}\n\ninterface FlowRoot {\n $: any;\n $server: any;\n}\n\nexport interface NavigationParameters {\n pathname: string;\n search: string;\n}\n\nexport interface PreventCommands {\n prevent: () => any;\n}\n\nexport interface PreventAndRedirectCommands extends PreventCommands {\n redirect: (route: string) => any;\n}\n\n// flow uses body for keeping references\nconst flowRoot: FlowRoot = window.document.body as any;\nconst $wnd = (window as any) as {\n Vaadin: {\n Flow: any;\n TypeScript: any;\n connectionState: ConnectionStateStore;\n };\n} & EventTarget;\n\n/**\n * Client API for flow UI operations.\n */\nexport class Flow {\n config: FlowConfig;\n response?: AppInitResponse = undefined;\n pathname = '';\n\n container!: HTMLRouterContainer;\n\n // flag used to inform Testbench whether a server route is in progress\n private isActive = false;\n\n private baseRegex = /^\\//;\n private appShellTitle: string;\n\n constructor(config?: FlowConfig) {\n flowRoot.$ = flowRoot.$ || [];\n this.config = config || {};\n\n // TB checks for the existence of window.Vaadin.Flow in order\n // to consider that TB needs to wait for `initFlow()`.\n $wnd.Vaadin = $wnd.Vaadin || {};\n $wnd.Vaadin.Flow = $wnd.Vaadin.Flow || {};\n $wnd.Vaadin.Flow.clients = {\n TypeScript: {\n isActive: () => this.isActive\n }\n };\n\n // Regular expression used to remove the app-context\n const elm = document.head.querySelector('base');\n this.baseRegex = new RegExp(\n `^${\n // IE11 does not support document.baseURI\n (document.baseURI || (elm && elm.href) || '/').replace(/^https?:\\/\\/[^/]+/i, '')\n }`\n );\n this.appShellTitle = document.title;\n // Put a vaadin-connection-indicator in the dom\n this.addConnectionIndicator();\n }\n\n /**\n * Return a `route` object for vaadin-router in an one-element array.\n *\n * The `FlowRoute` object `path` property handles any route,\n * and the `action` returns the flow container without updating the content,\n * delaying the actual Flow server call to the `onBeforeEnter` phase.\n *\n * This is a specific API for its use with `vaadin-router`.\n */\n get serverSideRoutes(): [FlowRoute] {\n return [\n {\n path: '(.*)',\n action: this.action\n }\n ];\n }\n\n loadingStarted() {\n // Make Testbench know that server request is in progress\n this.isActive = true;\n $wnd.Vaadin.connectionState.loadingStarted();\n }\n\n loadingFinished() {\n // Make Testbench know that server request has finished\n this.isActive = false;\n $wnd.Vaadin.connectionState.loadingFinished();\n }\n\n private get action(): (params: NavigationParameters) => Promise {\n // Return a function which is bound to the flow instance, thus we can use\n // the syntax `...serverSideRoutes` in vaadin-router.\n return async (params: NavigationParameters) => {\n // Store last action pathname so as we can check it in events\n this.pathname = params.pathname;\n\n if ($wnd.Vaadin.connectionState.online) {\n try {\n await this.flowInit();\n } catch (error) {\n if (error instanceof FlowUiInitializationError) {\n // error initializing Flow: assume connection lost\n $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST;\n return this.offlineStubAction();\n } else {\n throw error;\n }\n }\n } else {\n // insert an offline stub\n return this.offlineStubAction();\n }\n\n // When an action happens, navigation will be resolved `onBeforeEnter`\n this.container.onBeforeEnter = (ctx, cmd) => this.flowNavigate(ctx, cmd);\n // For covering the 'server -> client' use case\n this.container.onBeforeLeave = (ctx, cmd) => this.flowLeave(ctx, cmd);\n return this.container;\n };\n }\n\n // Send a remote call to `JavaScriptBootstrapUI` to check\n // whether navigation has to be cancelled.\n private async flowLeave(ctx: NavigationParameters, cmd?: PreventCommands): Promise {\n // server -> server, viewing offline stub, or browser is offline\n const { connectionState } = $wnd.Vaadin;\n if (this.pathname === ctx.pathname || !this.isFlowClientLoaded() || connectionState.offline) {\n return Promise.resolve({});\n }\n // 'server -> client'\n return new Promise((resolve) => {\n this.loadingStarted();\n // The callback to run from server side to cancel navigation\n this.container.serverConnected = (cancel) => {\n resolve(cmd && cancel ? cmd.prevent() : {});\n this.loadingFinished();\n };\n\n // Call server side to check whether we can leave the view\n flowRoot.$server.leaveNavigation(this.getFlowRoutePath(ctx), this.getFlowRouteQuery(ctx));\n });\n }\n\n // Send the remote call to `JavaScriptBootstrapUI` to render the flow\n // route specified by the context\n private async flowNavigate(ctx: NavigationParameters, cmd?: PreventAndRedirectCommands): Promise {\n if (this.response) {\n return new Promise((resolve) => {\n this.loadingStarted();\n // The callback to run from server side once the view is ready\n this.container.serverConnected = (cancel, redirectContext?: NavigationParameters) => {\n if (cmd && cancel) {\n resolve(cmd.prevent());\n } else if (cmd && cmd.redirect && redirectContext) {\n resolve(cmd.redirect(redirectContext.pathname));\n } else {\n this.container.style.display = '';\n resolve(this.container);\n }\n this.loadingFinished();\n };\n\n // Call server side to navigate to the given route\n flowRoot.$server.connectClient(\n this.container.localName,\n this.container.id,\n this.getFlowRoutePath(ctx),\n this.getFlowRouteQuery(ctx),\n this.appShellTitle,\n history.state\n );\n });\n } else {\n // No server response => offline or erroneous connection\n return Promise.resolve(this.container);\n }\n }\n\n private getFlowRoutePath(context: NavigationParameters | Location): string {\n return decodeURIComponent(context.pathname).replace(this.baseRegex, '');\n }\n private getFlowRouteQuery(context: NavigationParameters | Location): string {\n return (context.search && context.search.substring(1)) || '';\n }\n\n // import flow client modules and initialize UI in server side.\n private async flowInit(serverSideRouting = false): Promise {\n // Do not start flow twice\n if (!this.isFlowClientLoaded()) {\n // show flow progress indicator\n this.loadingStarted();\n\n // Initialize server side UI\n this.response = await this.flowInitUi(serverSideRouting);\n\n // Enable or disable server side routing\n this.response.appConfig.clientRouting = !serverSideRouting;\n\n const { pushScript, appConfig } = this.response;\n\n if (typeof pushScript === 'string') {\n await this.loadScript(pushScript);\n }\n const { appId } = appConfig;\n\n // Load bootstrap script with server side parameters\n const bootstrapMod = await import('./FlowBootstrap');\n await bootstrapMod.init(this.response);\n\n // Load custom modules defined by user\n if (typeof this.config.imports === 'function') {\n this.injectAppIdScript(appId);\n await this.config.imports();\n }\n\n // Load flow-client module\n const clientMod = await import('./FlowClient');\n await this.flowInitClient(clientMod);\n\n if (!serverSideRouting) {\n // we use a custom tag for the flow app container\n const tag = `flow-container-${appId.toLowerCase()}`;\n this.container = document.createElement(tag);\n flowRoot.$[appId] = this.container;\n this.container.id = appId;\n }\n\n // hide flow progress indicator\n this.loadingFinished();\n }\n\n // It might be that components created from server expect that their content has been rendered.\n // Appending eagerly the container we avoid these kind of errors.\n // Note that the client router will move this container to the outlet if the navigation succeed\n if (this.container && !this.container.isConnected) {\n this.container.style.display = 'none';\n document.body.appendChild(this.container);\n }\n return this.response!;\n }\n\n private async loadScript(url: string): Promise {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.onload = () => resolve();\n script.onerror = reject;\n script.src = url;\n document.body.appendChild(script);\n });\n }\n\n private injectAppIdScript(appId: string) {\n const appIdWithoutHashCode = appId.substring(0, appId.lastIndexOf('-'));\n const scriptAppId = document.createElement('script');\n scriptAppId.type = 'module';\n scriptAppId.setAttribute('data-app-id', appIdWithoutHashCode);\n document.body.append(scriptAppId);\n }\n\n // After the flow-client javascript module has been loaded, this initializes flow UI\n // in the browser.\n private async flowInitClient(clientMod: any): Promise {\n clientMod.init();\n // client init is async, we need to loop until initialized\n return new Promise((resolve) => {\n const intervalId = setInterval(() => {\n // client `isActive() == true` while initializing or processing\n const initializing = Object.keys($wnd.Vaadin.Flow.clients)\n .filter((key) => key !== 'TypeScript')\n .reduce((prev, id) => prev || $wnd.Vaadin.Flow.clients[id].isActive(), false);\n if (!initializing) {\n clearInterval(intervalId);\n resolve();\n }\n }, 5);\n });\n }\n\n // Returns the `appConfig` object\n private async flowInitUi(serverSideRouting: boolean): Promise {\n // appConfig was sent in the index.html request\n const initial = $wnd.Vaadin && $wnd.Vaadin.TypeScript && $wnd.Vaadin.TypeScript.initial;\n if (initial) {\n $wnd.Vaadin.TypeScript.initial = undefined;\n return Promise.resolve(initial);\n }\n\n // send a request to the `JavaScriptBootstrapHandler`\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n const httpRequest = xhr as any;\n const serverRoutingParam = serverSideRouting ? '&serverSideRouting' : '';\n const requestPath = `?v-r=init&location=${encodeURIComponent(\n this.getFlowRoutePath(location)\n )}&query=${encodeURIComponent(this.getFlowRouteQuery(location))}${serverRoutingParam}`;\n\n httpRequest.open('GET', requestPath);\n\n httpRequest.onerror = () =>\n reject(\n new FlowUiInitializationError(\n `Invalid server response when initializing Flow UI.\n ${httpRequest.status}\n ${httpRequest.responseText}`\n )\n );\n\n httpRequest.onload = () => {\n const contentType = httpRequest.getResponseHeader('content-type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n resolve(JSON.parse(httpRequest.responseText));\n } else {\n httpRequest.onerror();\n }\n };\n httpRequest.send();\n });\n }\n\n // Create shared connection state store and connection indicator\n private addConnectionIndicator() {\n // add connection indicator to DOM\n ConnectionIndicator.create();\n\n // Listen to browser online/offline events and update the loading indicator accordingly.\n // Note: if flow-client is loaded, it instead handles the state transitions.\n $wnd.addEventListener('online', () => {\n if (!this.isFlowClientLoaded()) {\n // Send an HTTP HEAD request for sw.js to verify server reachability.\n // We do not expect sw.js to be cached, so the request goes to the\n // server rather than being served from local cache.\n // Require network-level failure to revert the state to CONNECTION_LOST\n // (HTTP error code is ok since it still verifies server's presence).\n $wnd.Vaadin.connectionState.state = ConnectionState.RECONNECTING;\n const http = new XMLHttpRequest();\n http.open('HEAD', 'sw.js');\n http.onload = () => {\n $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTED;\n };\n http.onerror = () => {\n $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST;\n };\n // Postpone request to reduce potential net::ERR_INTERNET_DISCONNECTED\n // errors that sometimes occurs even if browser says it is online\n setTimeout(() => http.send(), 50);\n }\n });\n $wnd.addEventListener('offline', () => {\n if (!this.isFlowClientLoaded()) {\n $wnd.Vaadin.connectionState.state = ConnectionState.CONNECTION_LOST;\n }\n });\n }\n\n private async offlineStubAction() {\n const offlineStub = document.createElement('iframe') as HTMLRouterContainer;\n const offlineStubPath = './offline-stub.html';\n offlineStub.setAttribute('src', offlineStubPath);\n offlineStub.setAttribute('style', 'width: 100%; height: 100%; border: 0');\n this.response = undefined;\n\n let onlineListener: ConnectionStateChangeListener | undefined;\n const removeOfflineStubAndOnlineListener = () => {\n if (onlineListener !== undefined) {\n $wnd.Vaadin.connectionState.removeStateChangeListener(onlineListener);\n onlineListener = undefined;\n }\n };\n\n offlineStub.onBeforeEnter = (ctx, _cmds, router) => {\n onlineListener = () => {\n if ($wnd.Vaadin.connectionState.online) {\n removeOfflineStubAndOnlineListener();\n router.render(ctx, false);\n }\n };\n $wnd.Vaadin.connectionState.addStateChangeListener(onlineListener);\n };\n offlineStub.onBeforeLeave = (_ctx, _cmds, _router) => {\n removeOfflineStubAndOnlineListener();\n };\n return offlineStub;\n }\n\n private isFlowClientLoaded(): boolean {\n return this.response !== undefined;\n }\n}\n"]} \ No newline at end of file diff --git a/frontend/generated/jar-resources/FlowBootstrap.d.ts b/frontend/generated/jar-resources/FlowBootstrap.d.ts new file mode 100644 index 0000000..0398d57 --- /dev/null +++ b/frontend/generated/jar-resources/FlowBootstrap.d.ts @@ -0,0 +1 @@ +export const init: (appInitResponse: any) => void; diff --git a/frontend/generated/jar-resources/FlowBootstrap.js b/frontend/generated/jar-resources/FlowBootstrap.js new file mode 100644 index 0000000..a8d9485 --- /dev/null +++ b/frontend/generated/jar-resources/FlowBootstrap.js @@ -0,0 +1,262 @@ +/* This is a copy of the regular `BootstrapHandler.js` in the flow-server + module, but with the following modifications: + - The main function is exported as an ES module for lazy initialization. + - Application configuration is passed as a parameter instead of using + replacement placeholders as in the regular bootstrapping. + - It reuses `Vaadin.Flow.clients` if exists. + - Fixed lint errors. + */ +const init = function (appInitResponse) { + window.Vaadin = window.Vaadin || {}; + window.Vaadin.Flow = window.Vaadin.Flow || {}; + + var apps = {}; + var widgetsets = {}; + + var log; + if (typeof window.console === undefined || !window.location.search.match(/[&?]debug(&|$)/)) { + /* If no console.log present, just use a no-op */ + log = function () {}; + } else if (typeof window.console.log === 'function') { + /* If it's a function, use it with apply */ + log = function () { + window.console.log.apply(window.console, arguments); + }; + } else { + /* In IE, its a native function for which apply is not defined, but it works + without a proper 'this' reference */ + log = window.console.log; + } + + var isInitializedInDom = function (appId) { + var appDiv = document.getElementById(appId); + if (!appDiv) { + return false; + } + for (var i = 0; i < appDiv.childElementCount; i++) { + var className = appDiv.childNodes[i].className; + /* If the app div contains a child with the class + 'v-app-loading' we have only received the HTML + but not yet started the widget set + (UIConnector removes the v-app-loading div). */ + if (className && className.indexOf('v-app-loading') != -1) { + return false; + } + } + return true; + }; + + /* + * Needed for Testbench compatibility, but prevents any Vaadin 7 app from + * bootstrapping unless the legacy vaadinBootstrap.js file is loaded before + * this script. + */ + window.Vaadin = window.Vaadin || {}; + window.Vaadin.Flow = window.Vaadin.Flow || {}; + + /* + * Needed for wrapping custom javascript functionality in the components (i.e. connectors) + */ + window.Vaadin.Flow.tryCatchWrapper = function (originalFunction, component) { + return function () { + try { + // eslint-disable-next-line + const result = originalFunction.apply(this, arguments); + return result; + } catch (error) { + console.error( + `There seems to be an error in ${component}: +${error.message} +Please submit an issue to https://github.com/vaadin/flow-components/issues/new/choose` + ); + } + }; + }; + + if (!window.Vaadin.Flow.initApplication) { + window.Vaadin.Flow.clients = window.Vaadin.Flow.clients || {}; + + window.Vaadin.Flow.initApplication = function (appId, config) { + var testbenchId = appId.replace(/-\d+$/, ''); + + if (apps[appId]) { + if ( + window.Vaadin && + window.Vaadin.Flow && + window.Vaadin.Flow.clients && + window.Vaadin.Flow.clients[testbenchId] && + window.Vaadin.Flow.clients[testbenchId].initializing + ) { + throw new Error('Application ' + appId + ' is already being initialized'); + } + if (isInitializedInDom(appId)) { + throw new Error('Application ' + appId + ' already initialized'); + } + } + + log('init application', appId, config); + + window.Vaadin.Flow.clients[testbenchId] = { + isActive: function () { + return true; + }, + initializing: true, + productionMode: mode + }; + + var getConfig = function (name) { + var value = config[name]; + return value; + }; + + /* Export public data */ + var app = { + getConfig: getConfig + }; + apps[appId] = app; + + if (!window.name) { + window.name = appId + '-' + Math.random(); + } + + var widgetset = 'client'; + widgetsets[widgetset] = { + pendingApps: [] + }; + if (widgetsets[widgetset].callback) { + log('Starting from bootstrap', appId); + widgetsets[widgetset].callback(appId); + } else { + log('Setting pending startup', appId); + widgetsets[widgetset].pendingApps.push(appId); + } + + return app; + }; + window.Vaadin.Flow.getAppIds = function () { + var ids = []; + for (var id in apps) { + if (Object.prototype.hasOwnProperty.call(apps, id)) { + ids.push(id); + } + } + return ids; + }; + window.Vaadin.Flow.getApp = function (appId) { + return apps[appId]; + }; + window.Vaadin.Flow.registerWidgetset = function (widgetset, callback) { + log('Widgetset registered', widgetset); + var ws = widgetsets[widgetset]; + if (ws && ws.pendingApps) { + ws.callback = callback; + for (var i = 0; i < ws.pendingApps.length; i++) { + var appId = ws.pendingApps[i]; + log('Starting from register widgetset', appId); + callback(appId); + } + ws.pendingApps = null; + } + }; + window.Vaadin.Flow.getBrowserDetailsParameters = function () { + var params = {}; + + /* Screen height and width */ + params['v-sh'] = window.screen.height; + params['v-sw'] = window.screen.width; + /* Browser window dimensions */ + params['v-wh'] = window.innerHeight; + params['v-ww'] = window.innerWidth; + /* Body element dimensions */ + params['v-bh'] = document.body.clientHeight; + params['v-bw'] = document.body.clientWidth; + + /* Current time */ + var date = new Date(); + params['v-curdate'] = date.getTime(); + + /* Current timezone offset (including DST shift) */ + var tzo1 = date.getTimezoneOffset(); + + /* Compare the current tz offset with the first offset from the end + of the year that differs --- if less that, we are in DST, otherwise + we are in normal time */ + var dstDiff = 0; + var rawTzo = tzo1; + for (var m = 12; m > 0; m--) { + date.setUTCMonth(m); + var tzo2 = date.getTimezoneOffset(); + if (tzo1 != tzo2) { + dstDiff = tzo1 > tzo2 ? tzo1 - tzo2 : tzo2 - tzo1; + rawTzo = tzo1 > tzo2 ? tzo1 : tzo2; + break; + } + } + + /* Time zone offset */ + params['v-tzo'] = tzo1; + + /* DST difference */ + params['v-dstd'] = dstDiff; + + /* Time zone offset without DST */ + params['v-rtzo'] = rawTzo; + + /* DST in effect? */ + params['v-dston'] = tzo1 != rawTzo; + + /* Time zone id (if available) */ + try { + params['v-tzid'] = Intl.DateTimeFormat().resolvedOptions().timeZone; + } catch (err) { + params['v-tzid'] = ''; + } + + /* Window name */ + if (window.name) { + params['v-wn'] = window.name; + } + + /* Detect touch device support */ + var supportsTouch = false; + try { + document.createEvent('TouchEvent'); + supportsTouch = true; + } catch (e) { + /* Chrome and IE10 touch detection */ + supportsTouch = 'ontouchstart' in window || typeof navigator.msMaxTouchPoints !== 'undefined'; + } + params['v-td'] = supportsTouch; + + /* Device Pixel Ratio */ + params['v-pr'] = window.devicePixelRatio; + + if (navigator.platform) { + params['v-np'] = navigator.platform; + } + + /* Stringify each value (they are parsed on the server side) */ + Object.keys(params).forEach(function (key) { + var value = params[key]; + if (typeof value !== 'undefined') { + params[key] = value.toString(); + } + }); + return params; + }; + } + + log('Flow bootstrap loaded'); + if (appInitResponse.appConfig.productionMode && typeof window.__gwtStatsEvent != 'function') { + window.Vaadin.Flow.gwtStatsEvents = []; + window.__gwtStatsEvent = function (event) { + window.Vaadin.Flow.gwtStatsEvents.push(event); + return true; + }; + } + var config = appInitResponse.appConfig; + var mode = appInitResponse.appConfig.productionMode; + window.Vaadin.Flow.initApplication(config.appId, config); +}; + +export { init }; diff --git a/frontend/generated/jar-resources/FlowClient.d.ts b/frontend/generated/jar-resources/FlowClient.d.ts new file mode 100644 index 0000000..7b21f90 --- /dev/null +++ b/frontend/generated/jar-resources/FlowClient.d.ts @@ -0,0 +1 @@ +export const init: () => void; diff --git a/frontend/generated/jar-resources/FlowClient.js b/frontend/generated/jar-resources/FlowClient.js new file mode 100644 index 0000000..ef0bada --- /dev/null +++ b/frontend/generated/jar-resources/FlowClient.js @@ -0,0 +1,1100 @@ +export function init() { +function client(){var Jb='',Kb=0,Lb='gwt.codesvr=',Mb='gwt.hosted=',Nb='gwt.hybrid',Ob='client',Pb='#',Qb='?',Rb='/',Sb=1,Tb='img',Ub='clear.cache.gif',Vb='baseUrl',Wb='script',Xb='client.nocache.js',Yb='base',Zb='//',$b='meta',_b='name',ac='gwt:property',bc='content',cc='=',dc='gwt:onPropertyErrorFn',ec='Bad handler "',fc='" for "gwt:onPropertyErrorFn"',gc='gwt:onLoadErrorFn',hc='" for "gwt:onLoadErrorFn"',ic='user.agent',jc='webkit',kc='safari',lc='msie',mc=10,nc=11,oc='ie10',pc=9,qc='ie9',rc=8,sc='ie8',tc='gecko',uc='gecko1_8',vc=2,wc=3,xc=4,yc='Single-script hosted mode not yet implemented. See issue ',zc='http://code.google.com/p/google-web-toolkit/issues/detail?id=2079',Ac='170126969AEFB72AFD1C9D37FFA24BE1',Bc=':1',Cc=':',Dc='DOMContentLoaded',Ec=50;var l=Jb,m=Kb,n=Lb,o=Mb,p=Nb,q=Ob,r=Pb,s=Qb,t=Rb,u=Sb,v=Tb,w=Ub,A=Vb,B=Wb,C=Xb,D=Yb,F=Zb,G=$b,H=_b,I=ac,J=bc,K=cc,L=dc,M=ec,N=fc,O=gc,P=hc,Q=ic,R=jc,S=kc,T=lc,U=mc,V=nc,W=oc,X=pc,Y=qc,Z=rc,$=sc,_=tc,ab=uc,bb=vc,cb=wc,db=xc,eb=yc,fb=zc,gb=Ac,hb=Bc,ib=Cc,jb=Dc,kb=Ec;var lb=window,mb=document,nb,ob,pb=l,qb={},rb=[],sb=[],tb=[],ub=m,vb,wb;if(!lb.__gwt_stylesLoaded){lb.__gwt_stylesLoaded={}}if(!lb.__gwt_scriptsLoaded){lb.__gwt_scriptsLoaded={}}function xb(){var b=false;try{var c=lb.location.search;return (c.indexOf(n)!=-1||(c.indexOf(o)!=-1||lb.external&&lb.external.gwtOnLoad))&&c.indexOf(p)==-1}catch(a){}xb=function(){return b};return b} +function yb(){if(nb&&ob){nb(vb,q,pb,ub)}} +function zb(){function e(a){var b=a.lastIndexOf(r);if(b==-1){b=a.length}var c=a.indexOf(s);if(c==-1){c=a.length}var d=a.lastIndexOf(t,Math.min(c,b));return d>=m?a.substring(m,d+u):l} +function f(a){if(a.match(/^\w+:\/\//)){}else{var b=mb.createElement(v);b.src=a+w;a=e(b.src)}return a} +function g(){var a=Cb(A);if(a!=null){return a}return l} +function h(){var a=mb.getElementsByTagName(B);for(var b=m;bm){return a[a.length-u].href}return l} +function j(){var a=mb.location;return a.href==a.protocol+F+a.host+a.pathname+a.search+a.hash} +var k=g();if(k==l){k=h()}if(k==l){k=i()}if(k==l&&j()){k=e(mb.location.href)}k=f(k);return k} +function Ab(){var b=document.getElementsByTagName(G);for(var c=m,d=b.length;c=m){f=g.substring(m,i);h=g.substring(i+u)}else{f=g;h=l}qb[f]=h}}else if(f==L){g=e.getAttribute(J);if(g){try{wb=eval(g)}catch(a){alert(M+g+N)}}}else if(f==O){g=e.getAttribute(J);if(g){try{vb=eval(g)}catch(a){alert(M+g+P)}}}}}} +var Bb=function(a,b){return b in rb[a]};var Cb=function(a){var b=qb[a];return b==null?null:b};function Db(a,b){var c=tb;for(var d=m,e=a.length-u;d=U&&b=X&&b=Z&&b=V}())return ab;return S};rb[Q]={'gecko1_8':m,'ie10':u,'ie8':bb,'ie9':cb,'safari':db};client.onScriptLoad=function(a){client=null;nb=a;yb()};if(xb()){alert(eb+fb);return}zb();Ab();try{var Fb;Db([ab],gb);Db([S],gb+hb);Fb=tb[Eb(Q)];var Gb=Fb.indexOf(ib);if(Gb!=-1){ub=Number(Fb.substring(Gb+u))}}catch(a){return}var Hb;function Ib(){if(!ob){ob=true;yb();if(mb.removeEventListener){mb.removeEventListener(jb,Ib,false)}if(Hb){clearInterval(Hb)}}} +if(mb.addEventListener){mb.addEventListener(jb,function(){Ib()},false)}var Hb=setInterval(function(){if(/loaded|complete/.test(mb.readyState)){Ib()}},kb)} +client();(function () {var $gwt_version = "2.9.0";var $wnd = window;var $doc = $wnd.document;var $moduleName, $moduleBase;var $stats = $wnd.__gwtStatsEvent ? function(a) {$wnd.__gwtStatsEvent(a)} : null;var $strongName = '170126969AEFB72AFD1C9D37FFA24BE1';function I(){} +function Ik(){} +function Ek(){} +function Gk(){} +function fj(){} +function bj(){} +function lj(){} +function Pj(){} +function Yj(){} +function nc(){} +function uc(){} +function ul(){} +function zl(){} +function El(){} +function Gl(){} +function Ql(){} +function Qo(){} +function Zo(){} +function Zm(){} +function _m(){} +function bn(){} +function Ln(){} +function Nn(){} +function Iq(){} +function It(){} +function Et(){} +function Lt(){} +function Or(){} +function Qr(){} +function Sr(){} +function Ur(){} +function ss(){} +function ws(){} +function fu(){} +function Wu(){} +function _v(){} +function dw(){} +function sw(){} +function sE(){} +function by(){} +function By(){} +function Dy(){} +function pz(){} +function tz(){} +function AA(){} +function iB(){} +function oC(){} +function ZF(){} +function cH(){} +function nH(){} +function pH(){} +function rH(){} +function IH(){} +function fA(){cA()} +function T(a){S=a;Jb()} +function zj(a,b){a.b=b} +function Bj(a,b){a.d=b} +function Cj(a,b){a.e=b} +function Dj(a,b){a.f=b} +function Ej(a,b){a.g=b} +function Fj(a,b){a.h=b} +function Gj(a,b){a.i=b} +function Ij(a,b){a.k=b} +function Jj(a,b){a.l=b} +function Kj(a,b){a.m=b} +function Lj(a,b){a.n=b} +function Mj(a,b){a.o=b} +function Nj(a,b){a.p=b} +function Oj(a,b){a.q=b} +function ms(a,b){a.g=b} +function ou(a,b){a.b=b} +function HH(a,b){a.a=b} +function bc(a){this.a=a} +function dc(a){this.a=a} +function pk(a){this.a=a} +function rk(a){this.a=a} +function sl(a){this.a=a} +function xl(a){this.a=a} +function Cl(a){this.a=a} +function Kl(a){this.a=a} +function Ml(a){this.a=a} +function Ol(a){this.a=a} +function Sl(a){this.a=a} +function Ul(a){this.a=a} +function xm(a){this.a=a} +function dn(a){this.a=a} +function hn(a){this.a=a} +function un(a){this.a=a} +function Bn(a){this.a=a} +function Dn(a){this.a=a} +function Fn(a){this.a=a} +function Pn(a){this.a=a} +function An(a){this.c=a} +function lo(a){this.a=a} +function oo(a){this.a=a} +function po(a){this.a=a} +function vo(a){this.a=a} +function Bo(a){this.a=a} +function Lo(a){this.a=a} +function No(a){this.a=a} +function So(a){this.a=a} +function Uo(a){this.a=a} +function Wo(a){this.a=a} +function $o(a){this.a=a} +function ep(a){this.a=a} +function yp(a){this.a=a} +function Qp(a){this.a=a} +function rq(a){this.a=a} +function Gq(a){this.a=a} +function Kq(a){this.a=a} +function Mq(a){this.a=a} +function yq(a){this.b=a} +function ys(a){this.a=a} +function Fs(a){this.a=a} +function Hs(a){this.a=a} +function Ts(a){this.a=a} +function Xs(a){this.a=a} +function tr(a){this.a=a} +function vr(a){this.a=a} +function xr(a){this.a=a} +function Gr(a){this.a=a} +function Jr(a){this.a=a} +function et(a){this.a=a} +function lt(a){this.a=a} +function nt(a){this.a=a} +function pt(a){this.a=a} +function rt(a){this.a=a} +function tt(a){this.a=a} +function ut(a){this.a=a} +function Ct(a){this.a=a} +function Wt(a){this.a=a} +function du(a){this.a=a} +function hu(a){this.a=a} +function su(a){this.a=a} +function uu(a){this.a=a} +function Iu(a){this.a=a} +function Ou(a){this.a=a} +function Uu(a){this.a=a} +function pu(a){this.c=a} +function Ss(a){this.c=a} +function dv(a){this.a=a} +function fv(a){this.a=a} +function zv(a){this.a=a} +function Dv(a){this.a=a} +function Dw(a){this.a=a} +function bw(a){this.a=a} +function Ew(a){this.a=a} +function Gw(a){this.a=a} +function Kw(a){this.a=a} +function Mw(a){this.a=a} +function Rw(a){this.a=a} +function Hy(a){this.a=a} +function Jy(a){this.a=a} +function Xy(a){this.a=a} +function _y(a){this.a=a} +function Gy(a){this.b=a} +function dz(a){this.a=a} +function rz(a){this.a=a} +function xz(a){this.a=a} +function zz(a){this.a=a} +function Dz(a){this.a=a} +function Kz(a){this.a=a} +function Mz(a){this.a=a} +function Oz(a){this.a=a} +function Qz(a){this.a=a} +function Sz(a){this.a=a} +function Zz(a){this.a=a} +function _z(a){this.a=a} +function rA(a){this.a=a} +function uA(a){this.a=a} +function CA(a){this.a=a} +function EA(a){this.e=a} +function gB(a){this.a=a} +function kB(a){this.a=a} +function mB(a){this.a=a} +function IB(a){this.a=a} +function XB(a){this.a=a} +function ZB(a){this.a=a} +function _B(a){this.a=a} +function kC(a){this.a=a} +function mC(a){this.a=a} +function CC(a){this.a=a} +function bD(a){this.a=a} +function oE(a){this.a=a} +function qE(a){this.a=a} +function tE(a){this.a=a} +function jF(a){this.a=a} +function HG(a){this.a=a} +function hG(a){this.b=a} +function uG(a){this.c=a} +function LH(a){this.a=a} +function kk(a){throw a} +function Ui(a){return a.e} +function gj(){Hp();Lp()} +function Hp(){Hp=bj;Gp=[]} +function R(){this.a=xb()} +function wj(){this.a=++vj} +function Yk(){this.d=null} +function PD(b,a){b.data=a} +function WD(b,a){b.warn(a)} +function VD(b,a){b.log(a)} +function wv(a,b){b.kb(a)} +function Gx(a,b){Zx(b,a)} +function Mx(a,b){Yx(b,a)} +function Qx(a,b){Cx(b,a)} +function SA(a,b){Uv(b,a)} +function yt(a,b){LC(a.a,b)} +function zC(a){_A(a.a,a.b)} +function Yb(a){return a.H()} +function Ym(a){return Dm(a)} +function hc(a){gc();fc.J(a)} +function Ms(a){Ls(a)&&Ps(a)} +function Yr(a){a.i||Zr(a.a)} +function UD(b,a){b.error(a)} +function TD(b,a){b.debug(a)} +function Zp(a,b){a.push(b)} +function Z(a,b){a.e=b;W(a,b)} +function Hj(a,b){a.j=b;gk=!b} +function om(a,b,c){jm(a,c,b)} +function aB(a,b,c){a.Tb(c,b)} +function kb(){ab.call(this)} +function zE(){ab.call(this)} +function xE(){kb.call(this)} +function qF(){kb.call(this)} +function BG(){kb.call(this)} +function cA(){cA=bj;bA=pA()} +function pb(){pb=bj;ob=new I} +function Qb(){Qb=bj;Pb=new Zo} +function $t(){$t=bj;Zt=new fu} +function JA(){JA=bj;IA=new iB} +function mk(a){S=a;!!a&&Jb()} +function pm(a,b){a.a.add(b.d)} +function Wm(a,b,c){a.set(b,c)} +function ry(a,b){b.forEach(a)} +function ZD(b,a){b.replace(a)} +function KD(b,a){b.display=a} +function ol(a){fl();this.a=a} +function dB(a){cB.call(this,a)} +function FB(a){cB.call(this,a)} +function UB(a){cB.call(this,a)} +function nE(a){lb.call(this,a)} +function vE(a){lb.call(this,a)} +function hF(a){lb.call(this,a)} +function iF(a){lb.call(this,a)} +function sF(a){lb.call(this,a)} +function rF(a){nb.call(this,a)} +function uF(a){hF.call(this,a)} +function VF(a){vE.call(this,a)} +function wE(a){vE.call(this,a)} +function _F(a){lb.call(this,a)} +function SF(){tE.call(this,'')} +function TF(){tE.call(this,'')} +function Xi(){Vi==null&&(Vi=[])} +function XF(){XF=bj;WF=new sE} +function Db(){Db=bj;!!(gc(),fc)} +function Q(a){return xb()-a.a} +function EE(a){return UH(a),a} +function eF(a){return UH(a),a} +function Wc(a,b){return $c(a,b)} +function xc(a,b){return SE(a,b)} +function qr(a,b){return a.a>b.a} +function lE(b,a){return a in b} +function JE(a){IE(a);return a.i} +function Uz(a){Sx(a.b,a.a,a.c)} +function XG(a,b,c){b.ib(a.a[c])} +function CH(a,b,c){b.ib(YF(c))} +function ny(a,b,c){iC(dy(a,c,b))} +function Rm(a,b){uC(new sn(b,a))} +function Jx(a,b){uC(new Zy(b,a))} +function Kx(a,b){uC(new bz(b,a))} +function ml(a,b){++el;b.eb(a,bl)} +function gC(a,b){a.e||a.c.add(b)} +function jv(a,b){a.c.forEach(b)} +function Zn(a,b){a.d?_n(b):pl()} +function mH(a,b){Ic(a,106).cc(b)} +function wH(a,b){sH(a);a.a.kc(b)} +function MG(a,b){while(a.lc(b));} +function qy(a,b){return Wl(a.b,b)} +function KA(a,b){return YA(a.a,b)} +function Ox(a,b){return ox(b.a,a)} +function wB(a,b){return YA(a.a,b)} +function KB(a,b){return YA(a.a,b)} +function YF(a){return Ic(a,5).e} +function kE(a){return Object(a)} +function hj(b,a){return b.exec(a)} +function Ub(a){return !!a.b||!!a.g} +function NA(a){bB(a.a);return a.g} +function RA(a){bB(a.a);return a.c} +function bx(b,a){Ww();delete b[a]} +function gm(a,b){return Nc(a.b[b])} +function _D(c,a,b){c.setItem(a,b)} +function $j(a,b){this.b=a;this.a=b} +function fn(a,b){this.b=a;this.a=b} +function kn(a,b){this.a=a;this.b=b} +function mn(a,b){this.a=a;this.b=b} +function on(a,b){this.a=a;this.b=b} +function qn(a,b){this.a=a;this.b=b} +function sn(a,b){this.a=a;this.b=b} +function so(a,b){this.a=a;this.b=b} +function Il(a,b){this.a=a;this.b=b} +function cm(a,b){this.a=a;this.b=b} +function em(a,b){this.a=a;this.b=b} +function tm(a,b){this.a=a;this.b=b} +function vm(a,b){this.a=a;this.b=b} +function xo(a,b){this.b=a;this.a=b} +function zo(a,b){this.b=a;this.a=b} +function Wr(a,b){this.b=a;this.a=b} +function ip(a,b){this.b=a;this.c=b} +function Bs(a,b){this.a=a;this.b=b} +function Ds(a,b){this.a=a;this.b=b} +function Ku(a,b){this.a=a;this.b=b} +function Mu(a,b){this.a=a;this.b=b} +function xv(a,b){this.a=a;this.b=b} +function Bv(a,b){this.a=a;this.b=b} +function Fv(a,b){this.a=a;this.b=b} +function wu(a,b){this.b=a;this.a=b} +function Ly(a,b){this.b=a;this.a=b} +function Ny(a,b){this.b=a;this.a=b} +function Ty(a,b){this.b=a;this.a=b} +function Zy(a,b){this.b=a;this.a=b} +function bz(a,b){this.b=a;this.a=b} +function lz(a,b){this.a=a;this.b=b} +function nz(a,b){this.a=a;this.b=b} +function Fz(a,b){this.a=a;this.b=b} +function Xz(a,b){this.a=a;this.b=b} +function jA(a,b){this.a=a;this.b=b} +function lA(a,b){this.b=a;this.a=b} +function sp(a,b){ip.call(this,a,b)} +function Eq(a,b){ip.call(this,a,b)} +function aF(){lb.call(this,null)} +function Ob(){yb!=0&&(yb=0);Cb=-1} +function Au(){this.a=new $wnd.Map} +function SC(){this.c=new $wnd.Map} +function bC(a,b){this.a=a;this.b=b} +function AC(a,b){this.a=a;this.b=b} +function DC(a,b){this.a=a;this.b=b} +function oB(a,b){this.a=a;this.b=b} +function vB(a,b){this.d=a;this.e=b} +function lH(a,b){this.a=a;this.b=b} +function FH(a,b){this.a=a;this.b=b} +function MH(a,b){this.b=a;this.a=b} +function jH(a,b){ip.call(this,a,b)} +function tD(a,b){ip.call(this,a,b)} +function BD(a,b){ip.call(this,a,b)} +function $q(a,b){Sq(a,(pr(),nr),b)} +function Pt(a,b,c,d){Ot(a,b.d,c,d)} +function Ix(a,b,c){Wx(a,b);xx(c.e)} +function OH(a,b,c){a.splice(b,0,c)} +function xp(a,b){return vp(b,wp(a))} +function Yc(a){return typeof a===kI} +function nA(a){a.length=0;return a} +function bd(a){XH(a==null);return a} +function TC(a){MC(a.a,a.d,a.c,a.b)} +function eA(a,b){jC(b);bA.delete(a)} +function JF(a,b){return a.substr(b)} +function fF(a){return ad((UH(a),a))} +function Nb(a){$wnd.clearTimeout(a)} +function nj(a){$wnd.clearTimeout(a)} +function bE(b,a){b.clearTimeout(a)} +function aE(b,a){b.clearInterval(a)} +function PF(a,b){a.a+=''+b;return a} +function QF(a,b){a.a+=''+b;return a} +function RF(a,b){a.a+=''+b;return a} +function AH(a,b,c){mH(b,c);return b} +function fr(a,b){Sq(a,(pr(),or),b.a)} +function nm(a,b){return a.a.has(b.d)} +function H(a,b){return _c(a)===_c(b)} +function $D(b,a){return b.getItem(a)} +function CF(a,b){return a.indexOf(b)} +function hE(a){return a&&a.valueOf()} +function jE(a){return a&&a.valueOf()} +function DG(a){return a!=null?O(a):0} +function _c(a){return a==null?null:a} +function FG(){FG=bj;EG=new HG(null)} +function uw(){uw=bj;tw=new $wnd.Map} +function Ww(){Ww=bj;Vw=new $wnd.Map} +function DE(){DE=bj;BE=false;CE=true} +function Wq(a){!!a.b&&dr(a,(pr(),mr))} +function _q(a){!!a.b&&dr(a,(pr(),nr))} +function ir(a){!!a.b&&dr(a,(pr(),or))} +function U(a){a.h=zc(mi,nI,31,0,0,1)} +function mj(a){$wnd.clearInterval(a)} +function hk(a){gk&&TD($wnd.console,a)} +function jk(a){gk&&UD($wnd.console,a)} +function nk(a){gk&&VD($wnd.console,a)} +function ok(a){gk&&WD($wnd.console,a)} +function Fo(a){gk&&UD($wnd.console,a)} +function Er(a){this.a=a;lj.call(this)} +function us(a){this.a=a;lj.call(this)} +function ct(a){this.a=a;lj.call(this)} +function Bt(a){this.a=new SC;this.c=a} +function ab(){U(this);V(this);this.F()} +function pA(){return new $wnd.WeakMap} +function _A(a,b){return a.a.delete(b)} +function ov(a,b){return a.h.delete(b)} +function qv(a,b){return a.b.delete(b)} +function oy(a,b,c){return dy(a,c.a,b)} +function KH(a,b,c){return AH(a.a,b,c)} +function BH(a,b,c){HH(a,KH(b,a.a,c))} +function bm(a,b){Ic(tk(a,ze),29).ab(b)} +function jl(a){Yo((Qb(),Pb),new Ol(a))} +function xn(a){Yo((Qb(),Pb),new Fn(a))} +function Pp(a){Yo((Qb(),Pb),new Qp(a))} +function cq(a){Yo((Qb(),Pb),new rq(a))} +function hs(a){Yo((Qb(),Pb),new Hs(a))} +function uy(a){Yo((Qb(),Pb),new Sz(a))} +function UF(a){tE.call(this,(UH(a),a))} +function oG(){this.a=zc(ji,nI,1,0,5,1)} +function OF(a){return a==null?qI:ej(a)} +function GG(a,b){return a.a!=null?a.a:b} +function py(a,b){return Jm(a.b.root,b)} +function MD(a,b,c,d){return ED(a,b,c,d)} +function XD(d,a,b,c){d.pushState(a,b,c)} +function Nx(a,b){var c;c=ox(b,a);iC(c)} +function yB(a,b){bB(a.a);a.c.forEach(b)} +function LB(a,b){bB(a.a);a.b.forEach(b)} +function Zs(a,b){b.a.b==(rp(),qp)&&_s(a)} +function Sc(a,b){return a!=null&&Hc(a,b)} +function _H(a){return a.$H||(a.$H=++ZH)} +function _r(a){return uJ in a?a[uJ]:-1} +function Jn(a){return ''+Kn(Hn.pb()-a,3)} +function ND(a,b){return a.appendChild(b)} +function OD(b,a){return b.appendChild(a)} +function EF(a,b){return a.lastIndexOf(b)} +function DF(a,b,c){return a.indexOf(b,c)} +function Uc(a){return typeof a==='number'} +function Xc(a){return typeof a==='string'} +function tb(a){return a==null?null:a.name} +function IE(a){if(a.i!=null){return}WE(a)} +function hC(a){if(a.d||a.e){return}fC(a)} +function _s(a){if(a.a){ij(a.a);a.a=null}} +function RH(a){if(!a){throw Ui(new xE)}} +function SH(a){if(!a){throw Ui(new BG)}} +function XH(a){if(!a){throw Ui(new aF)}} +function dI(){dI=bj;aI=new I;cI=new I} +function Xu(a,b){ED(b,iJ,new dv(a),false)} +function qB(a,b){EA.call(this,a);this.a=b} +function zH(a,b){uH.call(this,a);this.a=b} +function ql(a,b,c){fl();return a.set(c,b)} +function KF(a,b,c){return a.substr(b,c-b)} +function kc(a){gc();return parseInt(a)||-1} +function Tc(a){return typeof a==='boolean'} +function hp(a){return a.b!=null?a.b:''+a.c} +function QD(b,a){return b.createElement(a)} +function Hz(a,b){sy(a.a,a.c,a.d,a.b,Pc(b))} +function YD(d,a,b,c){d.replaceState(a,b,c)} +function LD(d,a,b,c){d.setProperty(a,b,c)} +function zr(a,b){b.a.b==(rp(),qp)&&Cr(a,-1)} +function bB(a){var b;b=qC;!!b&&dC(b,a.b)} +function Pk(a){a.f=[];a.g=[];a.a=0;a.b=xb()} +function rl(a){fl();el==0?a.I():dl.push(a)} +function uC(a){rC==null&&(rC=[]);rC.push(a)} +function vC(a){tC==null&&(tC=[]);tC.push(a)} +function Jc(a){XH(a==null||Tc(a));return a} +function Kc(a){XH(a==null||Uc(a));return a} +function Lc(a){XH(a==null||Yc(a));return a} +function Pc(a){XH(a==null||Xc(a));return a} +function sb(a){return a==null?null:a.message} +function $c(a,b){return a&&b&&a instanceof b} +function FE(a,b){return UH(a),_c(a)===_c(b)} +function AF(a,b){return UH(a),_c(a)===_c(b)} +function rj(a,b){return $wnd.setTimeout(a,b)} +function qj(a,b){return $wnd.setInterval(a,b)} +function FF(a,b,c){return a.lastIndexOf(b,c)} +function Eb(a,b,c){return a.apply(b,c);var d} +function Xb(a,b){a.b=Zb(a.b,[b,false]);Vb(a)} +function Ho(a,b){Io(a,b,Ic(tk(a.a,ud),9).n)} +function xk(a,b,c){wk(a,b,c._());a.b.set(b,c)} +function Mr(a,b,c){a.ib(nF(OA(Ic(c.e,14),b)))} +function kt(a,b,c){a.set(c,(bB(b.a),Pc(b.g)))} +function rr(a,b,c){ip.call(this,a,b);this.a=c} +function Do(a,b,c){this.a=a;this.b=b;this.c=c} +function tq(a,b,c){this.a=a;this.c=b;this.b=c} +function xw(a,b,c){this.a=a;this.c=b;this.g=c} +function Tw(a,b,c){this.b=a;this.a=b;this.c=c} +function Ry(a,b,c){this.b=a;this.c=b;this.a=c} +function Py(a,b,c){this.c=a;this.b=b;this.a=c} +function Vy(a,b,c){this.a=a;this.b=b;this.c=c} +function fz(a,b,c){this.a=a;this.b=b;this.c=c} +function hz(a,b,c){this.a=a;this.b=b;this.c=c} +function jz(a,b,c){this.a=a;this.b=b;this.c=c} +function vz(a,b,c){this.c=a;this.b=b;this.a=c} +function Bz(a,b,c){this.b=a;this.a=b;this.c=c} +function Vz(a,b,c){this.b=a;this.a=b;this.c=c} +function cB(a){this.a=new $wnd.Set;this.b=a} +function im(){this.a=new $wnd.Map;this.b=[]} +function cp(){this.b=(rp(),op);this.a=new SC} +function fl(){fl=bj;dl=[];bl=new ul;cl=new zl} +function pF(){pF=bj;oF=zc(ei,nI,27,256,0,1)} +function zw(a){a.b?aE($wnd,a.c):bE($wnd,a.c)} +function hv(a,b){a.b.add(b);return new Fv(a,b)} +function iv(a,b){a.h.add(b);return new Bv(a,b)} +function UA(a,b){a.d=true;LA(a,b);vC(new kB(a))} +function jC(a){a.e=true;fC(a);a.c.clear();eC(a)} +function KG(a){FG();return !a?EG:new HG(UH(a))} +function oj(a,b){return hI(function(){a.M(b)})} +function Ow(a,b){return Pw(new Rw(a),b,19,true)} +function JD(b,a){return b.getPropertyValue(a)} +function sm(a,b,c){return a.set(c,(bB(b.a),b.g))} +function Kp(a){return $wnd.Vaadin.Flow.getApp(a)} +function lb(a){U(this);this.g=a;V(this);this.F()} +function kr(a,b){this.a=a;this.b=b;lj.call(this)} +function cu(a){$t();this.c=[];this.a=Zt;this.d=a} +function mu(a,b){this.a=a;this.b=b;lj.call(this)} +function kG(a,b){a.a[a.a.length]=b;return true} +function lG(a,b){TH(b,a.a.length);return a.a[b]} +function Ic(a,b){XH(a==null||Hc(a,b));return a} +function Oc(a,b){XH(a==null||$c(a,b));return a} +function eE(a){if(a==null){return 0}return +a} +function PE(a,b){var c;c=ME(a,b);c.e=2;return c} +function Vs(a,b){var c;c=ad(eF(Kc(b.a)));$s(a,c)} +function KC(a,b,c,d){var e;e=OC(a,b,c);e.push(d)} +function IC(a,b){a.a==null&&(a.a=[]);a.a.push(b)} +function uk(a,b,c){a.a.delete(c);a.a.set(c,b._())} +function HD(a,b,c,d){a.removeEventListener(b,c,d)} +function ID(b,a){return b.getPropertyPriority(a)} +function Bc(a){return Array.isArray(a)&&a.oc===fj} +function Rc(a){return !Array.isArray(a)&&a.oc===fj} +function Vc(a){return a!=null&&Zc(a)&&!(a.oc===fj)} +function zG(a){return new zH(null,yG(a,a.length))} +function yG(a,b){return NG(b,a.length),new YG(a,b)} +function nl(a){++el;Zn(Ic(tk(a.a,we),57),new Gl)} +function Qu(a){a.a=wt(Ic(tk(a.d,Gf),13),new Uu(a))} +function gs(a,b){Bu(Ic(tk(a.j,Zf),85),b['execute'])} +function Zb(a,b){!a&&(a=[]);a[a.length]=b;return a} +function ME(a,b){var c;c=new KE;c.f=a;c.d=b;return c} +function NE(a,b,c){var d;d=ME(a,b);$E(c,d);return d} +function Jv(a,b){var c;c=b;return Ic(a.a.get(c),6)} +function xx(a){var b;b=a.a;rv(a,null);rv(a,b);rw(a)} +function SG(a,b){UH(b);while(a.c=0){a.a=new ct(a);kj(a.a,b)}} +function uH(a){if(!a){this.b=null;new oG}else{this.b=a}} +function Iz(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function XC(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function zs(a,b,c,d){this.a=a;this.d=b;this.b=c;this.c=d} +function RD(a,b,c,d){this.b=a;this.c=b;this.a=c;this.d=d} +function YG(a,b){this.c=0;this.d=b;this.b=17488;this.a=a} +function UC(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c} +function VC(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c} +function V(a){if(a.j){a.e!==oI&&a.F();a.h=null}return a} +function Nc(a){XH(a==null||Zc(a)&&!(a.oc===fj));return a} +function Rv(a,b,c,d){Mv(a,b)&&Pt(Ic(tk(a.c,Kf),28),b,c,d)} +function Rq(a,b){Jo(Ic(tk(a.c,Fe),22),'',b,'',null,null)} +function Io(a,b,c){Jo(a,c.caption,c.message,b,c.url,null)} +function Mk(a,b,c){Xk(Dc(xc(cd,1),nI,90,15,[b,c]));TC(a.e)} +function tp(){rp();return Dc(xc(Je,1),nI,60,0,[op,pp,qp])} +function sr(){pr();return Dc(xc(Xe,1),nI,63,0,[mr,nr,or])} +function CD(){AD();return Dc(xc(Ih,1),nI,43,0,[yD,xD,zD])} +function kH(){iH();return Dc(xc(Gi,1),nI,48,0,[fH,gH,hH])} +function Qc(a){return a.mc||Array.isArray(a)&&xc(fd,1)||fd} +function Kk(a){var b;b=Uk();a.f[a.a]=b[0];a.g[a.a]=b[1]} +function Km(a){var b;b=a.f;while(!!b&&!b.a){b=b.f}return b} +function xC(a,b){var c;c=qC;qC=a;try{b.I()}finally{qC=c}} +function $(a,b){var c;c=JE(a.mc);return b==null?c:c+': '+b} +function vH(a,b){var c;return yH(a,new oG,(c=new LH(b),c))} +function VH(a,b){if(a<0||a>b){throw Ui(new vE(pK+a+qK+b))}} +function Iw(a,b){tA(b).forEach(cj(Mw.prototype.ib,Mw,[a]))} +function pv(a,b){_c(b.U(a))===_c((DE(),CE))&&a.b.delete(b)} +function ho(a,b,c){this.a=a;this.c=b;this.b=c;lj.call(this)} +function jo(a,b,c){this.a=a;this.c=b;this.b=c;lj.call(this)} +function fo(a,b,c){this.b=a;this.d=b;this.c=c;this.a=new R} +function yE(a,b){U(this);this.f=b;this.g=a;V(this);this.F()} +function dE(c,a,b){return c.setTimeout(hI(a.Xb).bind(a),b)} +function cE(c,a,b){return c.setInterval(hI(a.Xb).bind(a),b)} +function zA(a){if(!xA){return a}return $wnd.Polymer.dom(a)} +function UE(a){if(a.bc()){return null}var b=a.h;return $i[b]} +function au(a){a.a=Zt;if(!a.b){return}Ps(Ic(tk(a.d,uf),19))} +function Nr(a){ek('applyDefaultTheme',(DE(),a?true:false))} +function Zr(a){a&&a.afterServerUpdate&&a.afterServerUpdate()} +function hq(a){$wnd.vaadinPush.atmosphere.unsubscribeUrl(a)} +function GD(a,b){Rc(a)?a.nb(b):(a.handleEvent(b),undefined)} +function Xm(a,b,c,d,e){a.splice.apply(a,[b,c,d].concat(e))} +function MC(a,b,c,d){a.b>0?IC(a,new XC(a,b,c,d)):NC(a,b,c,d)} +function wA(a,b,c,d){return a.splice.apply(a,[b,c].concat(d))} +function Rx(a,b,c){return a.push(MA(MB(mv(b.e,1),c),b.b[c]))} +function Fq(){Dq();return Dc(xc(Qe,1),nI,52,0,[Aq,zq,Cq,Bq])} +function uD(){sD();return Dc(xc(Hh,1),nI,44,0,[rD,pD,qD,oD])} +function Fw(a,b){tA(b).forEach(cj(Kw.prototype.ib,Kw,[a.a]))} +function LA(a,b){if(!a.b&&a.c&&CG(b,a.g)){return}VA(a,b,true)} +function TH(a,b){if(a<0||a>=b){throw Ui(new vE(pK+a+qK+b))}} +function WH(a,b){if(a<0||a>=b){throw Ui(new VF(pK+a+qK+b))}} +function Am(a,b){a.updateComplete.then(hI(function(){b.N()}))} +function SE(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.Yb(b))} +function Lk(a){var b;b={};b[EI]=kE(a.a);b[FI]=kE(a.b);return b} +function OE(a,b,c,d){var e;e=ME(a,b);$E(c,e);e.e=d?8:0;return e} +function dj(a){function b(){} +;b.prototype=a||{};return new b} +function tG(a){SH(a.a2){jD(a[0],'OS major');jD(a[1],dK)}} +function Cp(a){a?($wnd.location=a):$wnd.location.reload(false)} +function iq(){return $wnd.vaadinPush&&$wnd.vaadinPush.atmosphere} +function wq(a,b,c){return KF(a.b,b,$wnd.Math.min(a.b.length,c))} +function $C(a,b,c,d){return aD(new $wnd.XMLHttpRequest,a,b,c,d)} +function Mm(a,b,c){var d;d=[];c!=null&&d.push(c);return Em(a,b,d)} +function VA(a,b,c){var d;d=a.g;a.c=c;a.g=b;$A(a.a,new sB(a,d,b))} +function Bu(a,b){var c,d;for(c=0;c-1} +function ad(a){return Math.max(Math.min(a,2147483647),-2147483648)|0} +function wD(){wD=bj;vD=jp((sD(),Dc(xc(Hh,1),nI,44,0,[rD,pD,qD,oD])))} +function Hx(a,b){var c;c=b.f;Ay(Ic(tk(b.e.e.g.c,ud),9),a,c,(bB(b.a),b.g))} +function Sm(a,b,c){var d;d=c.a;a.push(KA(d,new mn(d,b)));uC(new fn(d,b))} +function Ws(a,b){var c,d;c=mv(a,8);d=MB(c,'pollInterval');KA(d,new Xs(b))} +function tA(a){var b;b=[];a.forEach(cj(uA.prototype.eb,uA,[b]));return b} +function sy(a,b,c,d,e){a.forEach(cj(Dy.prototype.ib,Dy,[]));zy(b,c,d,e)} +function Jw(a,b){Hz(b.f,null);kG(a,b.f);if(b.d){zw(b.d);Aw(b.d,ad(b.g))}} +function PB(a,b){vB.call(this,a,b);this.b=new $wnd.Map;this.a=new UB(this)} +function nb(a){U(this);V(this);this.e=a;W(this,a);this.g=a==null?qI:ej(a)} +function mb(a){U(this);this.g=!a?null:$(a,a.D());this.f=a;V(this);this.F()} +function ns(a){this.k=new $wnd.Set;this.h=[];this.c=new us(this);this.j=a} +function aH(){this.b=', ';this.d='[';this.e=']';this.c=this.d+(''+this.e)} +function GF(a,b){b=NF(b);return a.replace(new RegExp('[^0-9].*','g'),b)} +function NB(a,b){if(!a.b.has(b)){return false}return RA(Ic(a.b.get(b),14))} +function TG(a,b){UH(b);if(a.ca||a>b){throw Ui(new wE('fromIndex: 0, toIndex: '+a+', length: '+b))}} +function kj(a,b){if(b<=0){throw Ui(new hF(yI))}!!a.f&&ij(a);a.e=true;a.f=nF(qj(oj(a,a.d),b))} +function jj(a,b){if(b<0){throw Ui(new hF(xI))}!!a.f&&ij(a);a.e=false;a.f=nF(rj(oj(a,a.d),b))} +function aq(a,b){if(b.a.b==(rp(),qp)){if(a.f==(Dq(),Cq)||a.f==Bq){return}Xp(a,new Iq)}} +function Vp(c,a){var b=c.getConfig(a);if(b===null||b===undefined){return null}else{return b+''}} +function ey(a,b){var c;c=a;while(true){c=c.f;if(!c){return false}if(K(b,c.a)){return true}}} +function bk(){try{document.createEvent('TouchEvent');return true}catch(a){return false}} +function lu(b){if(b.readyState!=1){return false}try{b.send();return true}catch(a){return false}} +function bu(a){if(Zt!=a.a||a.c.length==0){return}a.b=true;a.a=new du(a);Yo((Qb(),Pb),new hu(a))} +function Fx(a,b,c,d){var e,f,g;g=c[HJ];e="path='"+wb(g)+"'";f=new lz(a,g);wx(a,b,d,f,null,e)} +function Ov(a,b){var c;if(b!=a.e){c=b.a;!!c&&(Ww(),!!c[NJ])&&ax((Ww(),c[NJ]));Wv(a,b);b.f=null}} +function Zl(a,b){return !!(a[VI]&&a[VI][WI]&&a[VI][WI][b])&&typeof a[VI][WI][b][XI]!=sI} +function Zi(a,b){typeof window===iI&&typeof window['$gwt']===iI&&(window['$gwt'][a]=b)} +function ek(a,b){$wnd.Vaadin.connectionIndicator&&($wnd.Vaadin.connectionIndicator[a]=b)} +function Cr(a,b){gk&&VD($wnd.console,'Setting heartbeat interval to '+b+'sec.');a.a=b;Ar(a)} +function kv(a){var b;b=$wnd.Object.create(null);jv(a,cj(xv.prototype.eb,xv,[a,b]));return b} +function px(a,b,c,d){var e;e=mv(d,a);LB(e,cj(Ly.prototype.eb,Ly,[b,c]));return KB(e,new Ny(b,c))} +function Vx(a,b){var c;c=Ic(b.d.get(a),45);b.d.delete(a);if(!c){debugger;throw Ui(new zE)}c.Ib()} +function Zv(a,b){var c;if(Sc(a,30)){c=Ic(a,30);ad((UH(b),b))==2?zB(c,(bB(c.a),c.c.length)):xB(c)}} +function Sv(a,b,c,d,e,f){if(!Hv(a,b)){debugger;throw Ui(new zE)}Qt(Ic(tk(a.c,Kf),28),b,c,d,e,f)} +function vF(a,b,c){if(a==null){debugger;throw Ui(new zE)}this.a=wI;this.d=a;this.b=b;this.c=c} +function Vb(a){if(!a.i){a.i=true;!a.f&&(a.f=new bc(a));_b(a.f,1);!a.h&&(a.h=new dc(a));_b(a.h,50)}} +function Sj(a,b){if(!b){Ms(Ic(tk(a.a,uf),19))}else{At(Ic(tk(a.a,Gf),13));cs(Ic(tk(a.a,sf),21),b)}} +function Zq(a,b,c){_p(b)&&xt(Ic(tk(a.c,Gf),13));cr(c)||Tq(a,'Invalid JSON from server: '+c,null)} +function bq(a,b,c){BF(b,'true')||BF(b,'false')?(a.a[c]=BF(b,'true'),undefined):(a.a[c]=b,undefined)} +function _b(b,c){Qb();function d(){var a=hI(Yb)(b);a&&$wnd.setTimeout(d,c)} +$wnd.setTimeout(d,c)} +function FC(b,c,d){return hI(function(){var a=Array.prototype.slice.call(arguments);d.Eb(b,c,a)})} +function es(a,b){if(b==-1){return true}if(b==a.f+1){return true}if(a.f==-1){return true}return false} +function Up(c,a){var b=c.getConfig(a);if(b===null||b===undefined){return null}else{return nF(b)}} +function gE(c){return $wnd.JSON.stringify(c,function(a,b){if(a=='$H'){return undefined}return b},0)} +function FD(b){var c=b.handler;if(!c){c=hI(function(a){GD(b,a)});c.listener=b;b.handler=c}return c} +function vp(a,b){var c;if(a==null){return null}c=up('context://',b,a);c=up('base://','',c);return c} +function Ti(a){var b;if(Sc(a,5)){return a}b=a&&a.__java$exception;if(!b){b=new rb(a);hc(b)}return b} +function Wn(a,b){var c,d;c=new oo(a);d=new $wnd.Function(a);eo(a,new vo(d),new xo(b,c),new zo(b,c))} +function ll(a,b){var c;c=new $wnd.Map;b.forEach(cj(Il.prototype.eb,Il,[a,c]));c.size==0||rl(new Ml(c))} +function Aj(a,b){var c;c='/'.length;if(!AF(b.substr(b.length-c,c),'/')){debugger;throw Ui(new zE)}a.c=b} +function Fu(a,b){var c;c=!!b.a&&!FE((DE(),BE),NA(MB(mv(b,0),GJ)));if(!c||!b.f){return c}return Fu(a,b.f)} +function nD(a,b,c){var d,e;b<0?(e=0):(e=b);c<0||c>a.length?(d=a.length):(d=c);return a.substr(e,d-e)} +function Ot(a,b,c,d){var e;e={};e[OI]=BJ;e[CJ]=Object(b);e[BJ]=c;!!d&&(e['data']=d,undefined);St(a,e)} +function Dc(a,b,c,d,e){e.mc=a;e.nc=b;e.oc=fj;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e} +function zy(a,b,c,d){if(d==null){!!c&&(delete c['for'],undefined)}else{!c&&(c={});c['for']=d}Rv(a.g,a,b,c)} +function ac(b,c){Qb();var d=$wnd.setInterval(function(){var a=hI(Yb)(b);!a&&$wnd.clearInterval(d)},c)} +function hx(a,b){var c;if(b.d.has(a)){debugger;throw Ui(new zE)}c=MD(b.b,a,new Dz(b),false);b.d.set(a,c)} +function OA(a,b){var c;bB(a.a);if(a.c){c=(bB(a.a),a.g);if(c==null){return b}return fF(Kc(c))}else{return b}} +function Tp(c,a){var b=c.getConfig(a);if(b===null||b===undefined){return false}else{return DE(),b?true:false}} +function Y(a){var b,c,d,e;for(b=(a.h==null&&(a.h=(gc(),e=fc.K(a),ic(e))),a.h),c=0,d=b.length;c-129&&a<128){b=a+128;c=(pF(),oF)[b];!c&&(c=oF[b]=new jF(a));return c}return new jF(a)} +function ib(a){var b;if(a!=null){b=a.__java$exception;if(b){return b}}return Wc(a,TypeError)?new rF(a):new nb(a)} +function QA(a){var b;bB(a.a);if(a.c){b=(bB(a.a),a.g);if(b==null){return true}return EE(Jc(b))}else{return true}} +function rw(a){var b,c;c=qw(a);b=a.a;if(!a.a){b=c.Mb(a);if(!b){debugger;throw Ui(new zE)}rv(a,b)}pw(a,b);return b} +function jp(a){var b,c,d,e,f;b={};for(d=a,e=0,f=d.length;e0){c=Ic(a.b.splice(0,1)[0],14);qm(c,b)||Uv(Ic(tk(a.c,gg),12),c);wC()}} +function mx(a,b){var c,d;c=lv(b,11);for(d=0;d<(bB(c.a),c.c.length);d++){zA(a).classList.add(Pc(c.c[d]))}return wB(c,new Kz(a))} +function qm(a,b){var c,d;c=Oc(b.get(a.e.e.d),$wnd.Map);if(c!=null&&c.has(a.f)){d=c.get(a.f);UA(a,d);return true}return false} +function Pm(a){while(a.parentNode&&(a=a.parentNode)){if(a.toString()==='[object ShadowRoot]'){return true}}return false} +function $w(a,b){if(typeof a.get===kI){var c=a.get(b);if(typeof c===iI&&typeof c[$I]!==sI){return {nodeId:c[$I]}}}return null} +function wp(a){var b,c;b=Ic(tk(a.a,ud),9).c;c='/'.length;if(!AF(b.substr(b.length-c,c),'/')){debugger;throw Ui(new zE)}return b} +function Jp(a){var b,c,d,e;b=(e=new Pj,e.a=a,Np(e,Kp(a)),e);c=new Tj(b);Gp.push(c);d=Kp(a).getConfig('uidl');Sj(c,d)} +function ej(a){var b;if(Array.isArray(a)&&a.oc===fj){return JE(M(a))+'@'+(b=O(a)>>>0,b.toString(16))}return a.toString()} +function Mb(a,b){Db();var c;c=S;if(c){if(c==Ab){return}c.v(a);return}if(b){Lb(Sc(a,26)?Ic(a,26).G():a)}else{XF();X(a,WF,'')}} +function pl(){fl();var a,b;--el;if(el==0&&dl.length!=0){try{for(b=0;b1} +function ck(){this.a=new lD($wnd.navigator.userAgent);this.a.b?'ontouchstart' in window:this.a.f?!!navigator.msMaxTouchPoints:bk()} +function $n(a){this.b=new $wnd.Set;this.a=new $wnd.Map;this.d=!!($wnd.HTMLImports&&$wnd.HTMLImports.whenReady);this.c=a;Tn(this)} +function jr(a){this.c=a;ap(Ic(tk(a,Ke),10),new tr(this));ED($wnd,'offline',new vr(this),false);ED($wnd,'online',new xr(this),false)} +function sD(){sD=bj;rD=new tD('STYLESHEET',0);pD=new tD('JAVASCRIPT',1);qD=new tD('JS_MODULE',2);oD=new tD('DYNAMIC_IMPORT',3)} +function Hm(a){var b;if(Bm==null){return}b=Oc(Bm.get(a),$wnd.Set);if(b!=null){Bm.delete(a);b.forEach(cj(bn.prototype.ib,bn,[]))}} +function fC(a){var b;a.d=true;eC(a);a.e||uC(new kC(a));if(a.c.size!=0){b=a.c;a.c=new $wnd.Set;b.forEach(cj(oC.prototype.ib,oC,[]))}} +function Ut(a,b,c,d,e){var f;f={};f[OI]='mSync';f[CJ]=kE(b.d);f['feature']=Object(c);f['property']=d;f[XI]=e==null?null:e;St(a,f)} +function Xj(a,b,c){var d;if(a==c.d){d=new $wnd.Function('callback','callback();');d.call(null,b);return DE(),true}return DE(),false} +function mc(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function MB(a,b){var c;c=Ic(a.b.get(b),14);if(!c){c=new WA(b,a,AF('innerHTML',b)&&a.d==1);a.b.set(b,c);$A(a.a,new qB(a,c))}return c} +function $l(a,b){var c,d;d=mv(a,1);if(!a.a){Om(Pc(NA(MB(mv(a,0),'tag'))),new cm(a,b));return}for(c=0;c3.4028234663852886E38){return Infinity}else if(b<-3.4028234663852886E38){return -Infinity}return b} +function GE(a){if(a>=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function ZE(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cd&&Cc(b,d,null);return b} +function Xx(a,b){var c,d;d=MB(b,XJ);bB(d.a);d.c||UA(d,a.getAttribute(XJ));c=MB(b,YJ);Pm(a)&&(bB(c.a),!c.c)&&!!a.style&&UA(c,a.style.display)} +function Pv(a){yB(lv(a.e,24),cj(_v.prototype.ib,_v,[]));jv(a.e,cj(dw.prototype.eb,dw,[]));a.a.forEach(cj(bw.prototype.eb,bw,[a]));a.d=true} +function fI(a){dI();var b,c,d;c=':'+a;d=cI[c];if(d!=null){return ad((UH(d),d))}d=aI[c];b=d==null?eI(a):ad((UH(d),d));gI();cI[c]=b;return b} +function O(a){return Xc(a)?fI(a):Uc(a)?ad((UH(a),a)):Tc(a)?(UH(a),a)?1231:1237:Rc(a)?a.t():Bc(a)?_H(a):!!a&&!!a.hashCode?a.hashCode():_H(a)} +function wk(a,b,c){if(a.a.has(b)){debugger;throw Ui(new AE((IE(b),'Registry already has a class of type '+b.i+' registered')))}a.a.set(b,c)} +function pw(a,b){ow();var c;if(a.g.f){debugger;throw Ui(new AE('Binding state node while processing state tree changes'))}c=qw(a);c.Lb(a,b,mw)} +function GA(a,b,c,d,e){this.e=a;if(c==null){debugger;throw Ui(new zE)}if(d==null){debugger;throw Ui(new zE)}this.c=b;this.d=c;this.a=d;this.b=e} +function Yl(a,b,c,d){var e,f;if(!d){f=Ic(tk(a.g.c,Vd),59);e=Ic(f.a.get(c),27);if(!e){f.b[b]=c;f.a.set(c,nF(b));return nF(b)}return e}return d} +function iy(a,b){var c,d;while(b!=null){for(c=a.length-1;c>-1;c--){d=Ic(a[c],6);if(b.isSameNode(d.a)){return d.d}}b=zA(b.parentNode)}return -1} +function _l(a,b,c){var d;if(Zl(a.a,c)){d=Ic(a.e.get(Zg),78);if(!d||!d.a.has(c)){return}MA(MB(b,c),a.a[c]).N()}else{NB(b,c)||UA(MB(b,c),null)}} +function jm(a,b,c){var d,e;e=Jv(Ic(tk(a.c,gg),12),ad((UH(b),b)));if(e.c.has(1)){d=new $wnd.Map;LB(mv(e,1),cj(xm.prototype.eb,xm,[d]));c.set(b,d)}} +function OC(a,b,c){var d,e;e=Oc(a.c.get(b),$wnd.Map);if(e==null){e=new $wnd.Map;a.c.set(b,e)}d=Mc(e.get(c));if(d==null){d=[];e.set(c,d)}return d} +function hy(a){var b;fx==null&&(fx=new $wnd.Map);b=Lc(fx.get(a));if(b==null){b=Lc(new $wnd.Function(BJ,TJ,'return ('+a+')'));fx.set(a,b)}return b} +function os(){if($wnd.performance&&$wnd.performance.timing){return (new Date).getTime()-$wnd.performance.timing.responseStart}else{return -1}} +function Qw(a,b,c,d){var e,f,g,h,i;i=Nc(a._());h=d.d;for(g=0;g=1&&jD(a[0],'OS major');if(a.length>=2){b=CF(a[1],MF(45));if(b>-1){c=a[1].substr(0,b-0);jD(c,dK)}else{jD(a[1],dK)}}} +function X(a,b,c){var d,e,f,g,h;Y(a);for(e=(a.i==null&&(a.i=zc(ri,nI,5,0,0,1)),a.i),f=0,g=e.length;f0){hk('Scheduling heartbeat in '+a.a+' seconds');jj(a.c,a.a*1000)}else{gk&&($wnd.console.debug('Disabling heartbeat'),undefined);ij(a.c)}} +function gt(a){var b,c,d,e;b=MB(mv(Ic(tk(a.a,gg),12).e,5),'parameters');e=(bB(b.a),Ic(b.g,6));d=mv(e,6);c=new $wnd.Map;LB(d,cj(rt.prototype.eb,rt,[c]));return c} +function Uv(a,b){var c,d;if(!b){debugger;throw Ui(new zE)}d=b.e;c=d.e;if(mm(Ic(tk(a.c,Xd),51),b)||!Mv(a,c)){return}Ut(Ic(tk(a.c,Kf),28),c,d.d,b.f,(bB(b.a),b.g))} +function bv(a,b){var c;c=$wnd.location.pathname;if(c==null){debugger;throw Ui(new AE('window.location.path should never be null'))}if(c!=a){return false}return b} +function JC(a,b,c){var d;if(!b){throw Ui(new sF('Cannot add a handler with a null type'))}a.b>0?IC(a,new VC(a,b,c)):(d=OC(a,b,null),d.push(c));return new UC(a,b,c)} +function Wx(a,b){var c,d,e;Xx(a,b);e=MB(b,XJ);bB(e.a);e.c&&Ay(Ic(tk(b.e.g.c,ud),9),a,XJ,(bB(e.a),e.g));c=MB(b,YJ);bB(c.a);if(c.c){d=(bB(c.a),ej(c.g));KD(a.style,d)}} +function bp(a,b){if(b.c!=a.b.c+1){throw Ui(new hF('Tried to move from state '+hp(a.b)+' to '+(b.b!=null?b.b:''+b.c)+' which is not allowed'))}a.b=b;LC(a.a,new ep(a))} +function rs(a){var b;if(a==null){return null}if(!AF(a.substr(0,9),'for(;;);[')||(b=']'.length,!AF(a.substr(a.length-b,b),']'))){return null}return KF(a,9,a.length-1)} +function Yi(b,c,d,e){Xi();var f=Vi;$moduleName=c;$moduleBase=d;Si=e;function g(){for(var a=0;a=0;d--){if(AF(a[d].d,b)||AF(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Qt(a,b,c,d,e,f){var g;g={};g[OI]='attachExistingElement';g[CJ]=kE(b.d);g[DJ]=Object(c);g[EJ]=Object(d);g['attachTagName']=e;g['attachIndex']=Object(f);St(a,g)} +function Qm(a){var b=typeof $wnd.Polymer===kI&&$wnd.Polymer.Element&&a instanceof $wnd.Polymer.Element;var c=a.constructor.polymerElementVersion!==undefined;return b||c} +function Pw(a,b,c,d){var e,f,g,h;h=lv(b,c);bB(h.a);if(h.c.length>0){f=Nc(a._());for(e=0;e<(bB(h.a),h.c.length);e++){g=Pc(h.c[e]);Xw(f,g,b,d)}}return wB(h,new Tw(a,b,d))} +function gy(a,b){var c,d,e,f,g;c=zA(b).childNodes;for(e=0;ed&&(WH(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b=65536){b=55296+(a-65536>>10&1023)&65535;c=56320+(a-65536&1023)&65535;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&65535)}} +function Ib(a){a&&Sb((Qb(),Pb));--yb;if(yb<0){debugger;throw Ui(new AE('Negative entryDepth value at exit '+yb))}if(a){if(yb!=0){debugger;throw Ui(new AE('Depth not 0'+yb))}if(Cb!=-1){Nb(Cb);Cb=-1}}} +function xy(a,b,c,d){var e,f,g,h,i,j,k;e=false;for(h=0;h2000){Bb=a;Cb=$wnd.setTimeout(Ob,10)}}if(yb++==0){Rb((Qb(),Pb));return true}return false} +function xq(a){var b,c,d;if(a.a>=a.b.length){debugger;throw Ui(new zE)}if(a.a==0){c=''+a.b.length+'|';b=4095-c.length;d=c+KF(a.b,0,$wnd.Math.min(a.b.length,b));a.a+=b}else{d=wq(a,a.a,a.a+4095);a.a+=4095}return d} +function ds(a){var b,c,d,e;if(a.h.length==0){return false}e=-1;for(b=0;b=f&&(WH(b,a.length),a.charCodeAt(b)!=32)){--b}if(b==f){return}d=a.substr(b+1,c-(b+1));e=IF(d,'\\.',0);fD(e)} +function zu(a,b){var c,d,e,f,g,h;if(!b){debugger;throw Ui(new zE)}for(d=(g=mE(b),g),e=0,f=d.length;e=0;d--){RF((g.a+=i,g),Pc(c[d]));i='.'}return g.a} +function fq(a,b){var c,d,e,f,g;if(iq()){cq(b.a)}else{f=(Ic(tk(a.d,ud),9).j?(e='VAADIN/static/push/vaadinPush-min.js'):(e='VAADIN/static/push/vaadinPush.js'),e);gk&&VD($wnd.console,'Loading '+f);d=Ic(tk(a.d,we),57);g=Ic(tk(a.d,ud),9).l+f;c=new tq(a,f,b);Xn(d,g,c,false,UI)}} +function HC(a,b){var c,d,e,f,g,h;if(fE(b)==1){c=b;h=ad(jE(c[0]));switch(h){case 0:{g=ad(jE(c[1]));d=(f=g,Ic(a.a.get(f),6)).a;return d}case 1:return e=Mc(c[1]),e;case 2:return FC(ad(jE(c[1])),ad(jE(c[2])),Ic(tk(a.c,Kf),28));default:throw Ui(new hF(bK+gE(c)));}}else{return b}} +function as(a,b){var c,d,e,f,g;gk&&($wnd.console.log('Handling dependencies'),undefined);c=new $wnd.Map;for(e=(AD(),Dc(xc(Ih,1),nI,43,0,[yD,xD,zD])),f=0,g=e.length;fa.a){a.a==0?gk&&VD($wnd.console,'Updating client-to-server id to '+b+' based on server'):ok('Server expects next client-to-server id to be '+b+' but we were going to use '+a.a+'. Will use '+b+'.');a.a=b}} +function bo(a,b,c){a.onload=hI(function(){a.onload=null;a.onerror=null;a.onreadystatechange=null;b.gb(c)});a.onerror=hI(function(){a.onload=null;a.onerror=null;a.onreadystatechange=null;b.fb(c)});a.onreadystatechange=function(){('loaded'===a.readyState||'complete'===a.readyState)&&a.onload(arguments[0])}} +function Ns(a,b,c){var d,e,f,g,h,i,j,k;At(Ic(tk(a.c,Gf),13));i={};d=Ic(tk(a.c,sf),21).b;AF(d,'init')||(i['csrfToken']=d,undefined);i['rpc']=b;i[uJ]=kE(Ic(tk(a.c,sf),21).f);i[xJ]=kE(a.a++);if(c){for(f=(j=mE(c),j),g=0,h=f.length;g0){k=Ax(a,b);d=!k?null:zA(k.a).nextSibling}else{d=null}for(g=0;g=a.f.length||a.a>=a.g.length){ok('No matching scroll position found (entries X:'+a.f.length+', Y:'+a.g.length+') for opened history index ('+a.a+'). '+KI);Pk(a);return}c=fF(Kc(a.f[a.a]));d=fF(Kc(a.g[a.a]));b?(a.e=wt(Ic(tk(a.d,Gf),13),new Do(a,c,d))):Xk(Dc(xc(cd,1),nI,90,15,[c,d]))} +function zx(b,c){var d,e,f,g,h;if(!c){return -1}try{h=zA(Nc(c));f=[];f.push(b);for(e=0;e0&&(WH(0,a.length),a.charCodeAt(0)==45||(WH(0,a.length),a.charCodeAt(0)==43))?1:0;for(b=e;b2147483647){throw Ui(new uF(mK+a+'"'))}return f} +function IF(a,b,c){var d,e,f,g,h,i,j,k;d=new RegExp(b,'g');j=zc(pi,nI,2,0,6,1);e=0;k=a;g=null;while(true){i=d.exec(k);if(i==null||k==''||e==c-1&&c>0){j[e]=k;break}else{h=i.index;j[e]=k.substr(0,h);k=KF(k,h+i[0].length,k.length);d.lastIndex=0;if(g==k){j[e]=k.substr(0,1);k=k.substr(1)}g=k;++e}}if(c==0&&a.length>0){f=j.length;while(f>0&&j[f-1]==''){--f}f=14&&c<=16));case 11:return b!=null&&Yc(b);case 12:return b!=null&&(typeof b===iI||typeof b==kI);case 0:return Hc(b,a.__elementTypeId$);case 2:return Zc(b)&&!(b.oc===fj);case 1:return Zc(b)&&!(b.oc===fj)||Hc(b,a.__elementTypeId$);default:return true;}} +function Wl(b,c){if(document.body.$&&document.body.$.hasOwnProperty&&document.body.$.hasOwnProperty(c)){return document.body.$[c]}else if(b.shadowRoot){return b.shadowRoot.getElementById(c)}else if(b.getElementById){return b.getElementById(c)}else if(c&&c.match('^[a-zA-Z0-9-_]*$')){return b.querySelector('#'+c)}else{return Array.from(b.querySelectorAll('[id]')).find(function(a){return a.id==c})}} +function eq(a,b){var c,d;if(!_p(a)){throw Ui(new iF('This server to client push connection should not be used to send client to server messages'))}if(a.f==(Dq(),zq)){d=Dp(b);nk('Sending push ('+a.g+') message to server: '+d);if(AF(a.g,nJ)){c=new yq(d);while(c.a=OA((d=mv(Ic(tk(Ic(tk(a.c,Ef),37).a,gg),12).e,9),MB(d,'reconnectAttempts')),10000)?Qq(a):er(a,c)} +function Xl(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;j=null;g=zA(a.a).childNodes;o=new $wnd.Map;e=!b;i=-1;for(m=0;m. User has navigated out of site in an unrecognized way.');Pk(b)}}else{Pk(b)}} +function Ay(a,b,c,d){var e,f,g,h,i;if(d==null||Xc(d)){Ep(b,c,Pc(d))}else{f=d;if(0==fE(f)){g=f;if(!('uri' in g)){debugger;throw Ui(new AE("Implementation error: JsonObject is recieved as an attribute value for '"+c+"' but it has no "+'uri'+' key'))}i=g['uri'];if(a.q&&!i.match(/^(?:[a-zA-Z]+:)?\/\//)){e=a.l;e=(h='/'.length,AF(e.substr(e.length-h,h),'/')?e:e+'/');zA(b).setAttribute(c,e+(''+i))}else{i==null?zA(b).removeAttribute(c):zA(b).setAttribute(c,i)}}else{Ep(b,c,ej(d))}}} +function Ex(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;p=Ic(c.e.get(Zg),78);if(!p||!p.a.has(a)){return}k=IF(a,'\\.',0);g=c;f=null;e=0;j=k.length;for(m=k,n=0,o=m.length;n=f){debugger;throw Ui(new zE)}return g.length==0?null:g}else{return a}} +function jy(a,b,c,d,e){var f,g,h;h=Jv(e,ad(a));if(!h.c.has(1)){return}if(!ey(h,b)){debugger;throw Ui(new AE('Host element is not a parent of the node whose property has changed. This is an implementation error. Most likely it means that there are several StateTrees on the same page (might be possible with portlets) and the target StateTree should not be passed into the method as an argument but somehow detected from the host element. Another option is that host element is calculated incorrectly.'))}f=mv(h,1);g=MB(f,c);MA(g,d).N()} +function Go(a,b,c,d){var e,f,g,h,i,j;h=$doc;j=h.createElement('div');j.className='v-system-error';if(a!=null){f=h.createElement('div');f.className='caption';f.textContent=a;j.appendChild(f);gk&&UD($wnd.console,a)}if(b!=null){i=h.createElement('div');i.className='message';i.textContent=b;j.appendChild(i);gk&&UD($wnd.console,b)}if(c!=null){g=h.createElement('div');g.className='details';g.textContent=c;j.appendChild(g);gk&&UD($wnd.console,c)}if(d!=null){e=h.querySelector(d);!!e&&ND(Nc(GG(KG(e.shadowRoot),e)),j)}else{OD(h.body,j)}return j} +function Cu(h,e,f){var g={};g.getNode=hI(function(a){var b=e.get(a);if(b==null){throw new ReferenceError('There is no a StateNode for the given argument.')}return b});g.$appId=h.Fb().replace(/-\d+$/,'');g.registry=h.a;g.attachExistingElement=hI(function(a,b,c,d){Xl(g.getNode(a),b,c,d)});g.populateModelProperties=hI(function(a,b){$l(g.getNode(a),b)});g.registerUpdatableModelProperties=hI(function(a,b){am(g.getNode(a),b)});g.stopApplication=hI(function(){f.N()});g.scrollPositionHandlerAfterServerNavigation=hI(function(a){bm(g.registry,a)});return g} +function qc(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.L(wI,uI,-1,-1)}k=LF(b);AF(k.substr(0,3),'at ')&&(k=k.substr(3));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=LF(k.substr(g+1));k=LF(k.substr(0,g))}}else{c=k.indexOf(')',g);j=k.substr(g+1,c-(g+1));k=LF(k.substr(0,g))}g=CF(k,MF(46));g!=-1&&(k=k.substr(g+1));(k.length==0||AF(k,'Anonymous function'))&&(k=uI);h=EF(j,MF(58));e=FF(j,MF(58),h-1);i=-1;d=-1;f=wI;if(h!=-1&&e!=-1){f=j.substr(0,e);i=kc(j.substr(e+1,h-(e+1)));d=kc(j.substr(h+1))}return a.L(f,k,i,d)} +function Np(a,b){var c,d,e;c=Vp(b,'serviceUrl');Oj(a,Tp(b,'webComponentMode'));zj(a,Tp(b,'clientRouting'));if(c==null){Jj(a,Bp('.'));Aj(a,Bp(Vp(b,kJ)))}else{a.l=c;Aj(a,Bp(c+(''+Vp(b,kJ))))}Nj(a,Up(b,'v-uiId').a);Dj(a,Up(b,'heartbeatInterval').a);Gj(a,Up(b,'maxMessageSuspendTimeout').a);Kj(a,(d=b.getConfig(lJ),d?d.vaadinVersion:null));e=b.getConfig(lJ);Sp();Lj(a,b.getConfig('sessExpMsg'));Hj(a,!Tp(b,'debug'));Ij(a,Tp(b,'requestTiming'));Cj(a,b.getConfig('webcomponents'));Bj(a,Tp(b,'devToolsEnabled'));Fj(a,Vp(b,'liveReloadUrl'));Ej(a,Vp(b,'liveReloadBackend'));Mj(a,Vp(b,'springBootLiveReloadPort'))} +function gq(a){var b,c;this.f=(Dq(),Aq);this.d=a;ap(Ic(tk(a,Ke),10),new Gq(this));this.a={transport:nJ,maxStreamingLength:1000000,fallbackTransport:'long-polling',contentType:pJ,reconnectInterval:5000,timeout:-1,maxReconnectOnClose:10000000,trackMessageLength:true,enableProtocol:true,handleOnlineOffline:false,messageDelimiter:String.fromCharCode(124)};this.a['logLevel']='debug';gt(Ic(tk(this.d,Cf),49)).forEach(cj(Kq.prototype.eb,Kq,[this]));this.h=(Ic(tk(this.d,Cf),49),'VAADIN/push');b=Ic(tk(a,ud),9).l;if(!AF(b,'.')){c='/'.length;AF(b.substr(b.length-c,c),'/')||(b+='/');this.h=b+(''+this.h)}fq(this,new Mq(this))} +function wb(b){var c=function(a){return typeof a!=sI};var d=function(a){return a.replace(/\r\n/g,'')};if(c(b.outerHTML))return d(b.outerHTML);c(b.innerHTML)&&b.cloneNode&&$doc.createElement('div').appendChild(b.cloneNode(true)).innerHTML;if(c(b.nodeType)&&b.nodeType==3){return "'"+b.data.replace(/ /g,'\u25AB').replace(/\u00A0/,'\u25AA')+"'"}if(typeof c(b.htmlText)&&b.collapse){var e=b.htmlText;if(e){return 'IETextRange ['+d(e)+']'}else{var f=b.duplicate();f.pasteHTML('|');var g='IETextRange '+d(b.parentElement().outerHTML);f.moveStart('character',-1);f.pasteHTML('');return g}}return b.toString?b.toString():'[JavaScriptObject]'} +function Vm(a,b,c){var d,e,f;f=[];if(a.c.has(1)){if(!Sc(b,42)){debugger;throw Ui(new AE('Received an inconsistent NodeFeature for a node that has a ELEMENT_PROPERTIES feature. It should be NodeMap, but it is: '+b))}e=Ic(b,42);LB(e,cj(on.prototype.eb,on,[f,c]));f.push(KB(e,new kn(f,c)))}else if(a.c.has(16)){if(!Sc(b,30)){debugger;throw Ui(new AE('Received an inconsistent NodeFeature for a node that has a TEMPLATE_MODELLIST feature. It should be NodeList, but it is: '+b))}d=Ic(b,30);f.push(wB(d,new dn(c)))}if(f.length==0){debugger;throw Ui(new AE('Node should have ELEMENT_PROPERTIES or TEMPLATE_MODELLIST feature'))}f.push(iv(a,new hn(f)))} +function Dk(a,b){this.a=new $wnd.Map;this.b=new $wnd.Map;wk(this,xd,a);wk(this,ud,b);wk(this,we,new $n(this));wk(this,Le,new yp(this));wk(this,Sd,new ol(this));wk(this,Fe,new Lo(this));xk(this,Ke,new Ek);wk(this,gg,new Xv(this));wk(this,Gf,new Bt(this));wk(this,sf,new ns(this));wk(this,uf,new Ss(this));wk(this,Of,new cu(this));wk(this,Kf,new Wt(this));wk(this,Zf,new Iu(this));xk(this,Vf,new Gk);xk(this,Vd,new Ik);wk(this,Xd,new rm(this));wk(this,df,new Dr(this));wk(this,Ve,new jr(this));wk(this,Uf,new ku(this));wk(this,Cf,new it(this));wk(this,Ef,new tt(this));b.b||(b.q?wk(this,ze,new Yk):wk(this,ze,new Rk(this)));wk(this,yf,new at(this))} +function ay(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;l=e.e;o=Pc(NA(MB(mv(b,0),'tag')));h=false;if(!a){h=true;gk&&WD($wnd.console,ZJ+d+" is not found. The requested tag name is '"+o+"'")}else if(!(!!a&&BF(o,a.tagName))){h=true;ok(ZJ+d+" has the wrong tag name '"+a.tagName+"', the requested tag name is '"+o+"'")}if(h){Tv(l.g,l,b.d,-1,c);return false}if(!l.c.has(20)){return true}k=mv(l,20);m=Ic(NA(MB(k,UJ)),6);if(!m){return true}j=lv(m,2);g=null;for(i=0;i<(bB(j.a),j.c.length);i++){n=Ic(j.c[i],6);f=n.a;if(K(f,a)){g=nF(n.d);break}}if(g){gk&&WD($wnd.console,ZJ+d+" has been already attached previously via the node id='"+g+"'");Tv(l.g,l,b.d,g.a,c);return false}return true} +function Eu(b,c,d,e){var f,g,h,i,j,k,l,m,n;if(c.length!=d.length+1){debugger;throw Ui(new zE)}try{j=new ($wnd.Function.bind.apply($wnd.Function,[null].concat(c)));j.apply(Cu(b,e,new Ou(b)),d)}catch(a){a=Ti(a);if(Sc(a,7)){i=a;gk&&ik(new pk(i));gk&&($wnd.console.error('Exception is thrown during JavaScript execution. Stacktrace will be dumped separately.'),undefined);if(!Ic(tk(b.a,ud),9).j){g=new UF('[');h='';for(l=c,m=0,n=l.length;m=0){g=b.substr(f+3);g=HF(g,iK,'$1');this.a=gF(g)}}else if(this.l){g=JF(b,b.indexOf('webkit/')+7);g=HF(g,jK,'$1');this.a=gF(g)}else if(this.k){g=JF(b,b.indexOf(fK)+8);g=HF(g,jK,'$1');this.a=gF(g);this.a>7&&(this.a=7)}else this.c&&(this.a=0)}catch(a){a=Ti(a);if(Sc(a,7)){c=a;XF();'Browser engine version parsing failed for: '+b+' '+c.D()}else throw Ui(a)}try{if(this.f){if(b.indexOf('msie')!=-1){if(this.k);else{e=JF(b,b.indexOf('msie ')+5);e=nD(e,0,CF(e,MF(59)));kD(e)}}else{f=b.indexOf('rv:');if(f>=0){g=b.substr(f+3);g=HF(g,iK,'$1');kD(g)}}}else if(this.d){d=b.indexOf(' firefox/')+9;kD(nD(b,d,d+5))}else if(this.b){gD(b)}else if(this.j){d=b.indexOf(' version/');if(d>=0){d+=9;kD(nD(b,d,d+5))}}else if(this.i){d=b.indexOf(' version/');d!=-1?(d+=9):(d=b.indexOf('opera/')+6);kD(nD(b,d,d+5))}else if(this.c){d=b.indexOf(' edge/')+6;b.indexOf(' edg/')!=-1?(d=b.indexOf(' edg/')+5):b.indexOf(gK)!=-1?(d=b.indexOf(gK)+6):b.indexOf(hK)!=-1&&(d=b.indexOf(hK)+8);kD(nD(b,d,d+8))}}catch(a){a=Ti(a);if(Sc(a,7)){c=a;XF();'Browser version parsing failed for: '+b+' '+c.D()}else throw Ui(a)}if(b.indexOf('windows ')!=-1){b.indexOf('windows phone')!=-1}else if(b.indexOf('android')!=-1){dD(b)}else if(b.indexOf('linux')!=-1);else if(b.indexOf('macintosh')!=-1||b.indexOf('mac osx')!=-1||b.indexOf('mac os x')!=-1){this.g=b.indexOf('ipad')!=-1;this.h=b.indexOf('iphone')!=-1;(this.g||this.h)&&hD(b)}else b.indexOf('; cros ')!=-1&&eD(b)} +var iI='object',jI='[object Array]',kI='function',lI='java.lang',mI='com.google.gwt.core.client',nI={4:1},oI='__noinit__',pI={4:1,7:1,8:1,5:1},qI='null',rI='com.google.gwt.core.client.impl',sI='undefined',tI='Working array length changed ',uI='anonymous',vI='fnStack',wI='Unknown',xI='must be non-negative',yI='must be positive',zI='com.google.web.bindery.event.shared',AI='com.vaadin.client',BI='url',CI={67:1},DI={33:1},EI='historyIndex',FI='historyResetToken',GI='xPositions',HI='yPositions',II='scrollPos-',JI='Failed to get session storage: ',KI='Unable to restore scroll positions. History.state has been manipulated or user has navigated away from site in an unrecognized way.',LI='beforeunload',MI='scrollPositionX',NI='scrollPositionY',OI='type',QI={47:1},RI={25:1},SI={18:1},TI={24:1},UI='text/javascript',VI='constructor',WI='properties',XI='value',YI='com.vaadin.client.flow.reactive',ZI={15:1},$I='nodeId',_I='Root node for node ',aJ=' could not be found',bJ=' is not an Element',cJ={65:1},dJ={82:1},eJ={46:1},fJ={91:1},gJ='script',hJ='stylesheet',iJ='click',jJ='com.vaadin.flow.shared',kJ='contextRootUrl',lJ='versionInfo',mJ='v-uiId=',nJ='websocket',oJ='transport',pJ='application/json; charset=UTF-8',qJ='com.vaadin.client.communication',rJ={92:1},sJ='dialogText',tJ='dialogTextGaveUp',uJ='syncId',vJ='resynchronize',wJ='Received message with server id ',xJ='clientId',yJ='Vaadin-Security-Key',zJ='Vaadin-Push-ID',AJ='sessionExpired',BJ='event',CJ='node',DJ='attachReqId',EJ='attachAssignedId',FJ='com.vaadin.client.flow',GJ='bound',HJ='payload',IJ='subTemplate',JJ={45:1},KJ='Node is null',LJ='Node is not created for this tree',MJ='Node id is not registered with this tree',NJ='$server',OJ='feat',PJ='remove',QJ='com.vaadin.client.flow.binding',RJ='intermediate',SJ='elemental.util',TJ='element',UJ='shadowRoot',VJ='The HTML node for the StateNode with id=',WJ='An error occurred when Flow tried to find a state node matching the element ',XJ='hidden',YJ='styleDisplay',ZJ='Element addressed by the ',$J='dom-repeat',_J='dom-change',aK='com.vaadin.client.flow.nodefeature',bK='Unsupported complex type in ',cK='com.vaadin.client.gwt.com.google.web.bindery.event.shared',dK='OS minor',eK=' headlesschrome/',fK='trident/',gK=' edga/',hK=' edgios/',iK='(\\.[0-9]+).+',jK='([0-9]+\\.[0-9]+).*',kK='com.vaadin.flow.shared.ui',lK='java.io',mK='For input string: "',nK='java.util',oK='java.util.stream',pK='Index: ',qK=', Size: ',rK='user.agent';var _,$i,Vi,Si=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;_i();aj(1,null,{},I);_.r=function J(a){return H(this,a)};_.s=function L(){return this.mc};_.t=function N(){return _H(this)};_.u=function P(){var a;return JE(M(this))+'@'+(a=O(this)>>>0,a.toString(16))};_.equals=function(a){return this.r(a)};_.hashCode=function(){return this.t()};_.toString=function(){return this.u()};var Ec,Fc,Gc;aj(68,1,{68:1},KE);_.Yb=function LE(a){var b;b=new KE;b.e=4;a>1?(b.c=SE(this,a-1)):(b.c=this);return b};_.Zb=function RE(){IE(this);return this.b};_.$b=function TE(){return JE(this)};_._b=function VE(){IE(this);return this.g};_.ac=function XE(){return (this.e&4)!=0};_.bc=function YE(){return (this.e&1)!=0};_.u=function _E(){return ((this.e&2)!=0?'interface ':(this.e&1)!=0?'':'class ')+(IE(this),this.i)};_.e=0;var HE=1;var ji=NE(lI,'Object',1);var Yh=NE(lI,'Class',68);aj(97,1,{},R);_.a=0;var dd=NE(mI,'Duration',97);var S=null;aj(5,1,{4:1,5:1});_.w=function bb(a){return new Error(a)};_.A=function db(){return this.e};_.B=function eb(){var a;return a=Ic(vH(xH(zG((this.i==null&&(this.i=zc(ri,nI,5,0,0,1)),this.i)),new ZF),eH(new pH,new nH,new rH,Dc(xc(Gi,1),nI,48,0,[(iH(),gH)]))),93),nG(a,zc(ji,nI,1,a.a.length,5,1))};_.C=function fb(){return this.f};_.D=function gb(){return this.g};_.F=function hb(){Z(this,cb(this.w($(this,this.g))));hc(this)};_.u=function jb(){return $(this,this.D())};_.e=oI;_.j=true;var ri=NE(lI,'Throwable',5);aj(7,5,{4:1,7:1,5:1});var ai=NE(lI,'Exception',7);aj(8,7,pI,mb);var li=NE(lI,'RuntimeException',8);aj(54,8,pI,nb);var fi=NE(lI,'JsException',54);aj(122,54,pI);var hd=NE(rI,'JavaScriptExceptionBase',122);aj(26,122,{26:1,4:1,7:1,8:1,5:1},rb);_.D=function ub(){return qb(this),this.c};_.G=function vb(){return _c(this.b)===_c(ob)?null:this.b};var ob;var ed=NE(mI,'JavaScriptException',26);var fd=NE(mI,'JavaScriptObject$',0);aj(320,1,{});var gd=NE(mI,'Scheduler',320);var yb=0,zb=false,Ab,Bb=0,Cb=-1;aj(132,320,{});_.e=false;_.i=false;var Pb;var ld=NE(rI,'SchedulerImpl',132);aj(133,1,{},bc);_.H=function cc(){this.a.e=true;Tb(this.a);this.a.e=false;return this.a.i=Ub(this.a)};var jd=NE(rI,'SchedulerImpl/Flusher',133);aj(134,1,{},dc);_.H=function ec(){this.a.e&&_b(this.a.f,1);return this.a.i};var kd=NE(rI,'SchedulerImpl/Rescuer',134);var fc;aj(330,1,{});var pd=NE(rI,'StackTraceCreator/Collector',330);aj(123,330,{},nc);_.J=function oc(a){var b={},j;var c=[];a[vI]=c;var d=arguments.callee.caller;while(d){var e=(gc(),d.name||(d.name=jc(d.toString())));c.push(e);var f=':'+e;var g=b[f];if(g){var h,i;for(h=0,i=g.length;h0){Sn(this.b,this.c);return false}else if(a==0){Rn(this.b,this.c);return true}else if(Q(this.a)>60000){Rn(this.b,this.c);return false}else{return true}};var le=NE(AI,'ResourceLoader/1',196);aj(197,41,{},ho);_.N=function io(){this.a.b.has(this.c)||Rn(this.a,this.b)};var me=NE(AI,'ResourceLoader/2',197);aj(201,41,{},jo);_.N=function ko(){this.a.b.has(this.c)?Sn(this.a,this.b):Rn(this.a,this.b)};var ne=NE(AI,'ResourceLoader/3',201);aj(202,1,RI,lo);_.fb=function mo(a){Rn(this.a,a)};_.gb=function no(a){Sn(this.a,a)};var oe=NE(AI,'ResourceLoader/4',202);aj(62,1,{},oo);var pe=NE(AI,'ResourceLoader/ResourceLoadEvent',62);aj(101,1,RI,po);_.fb=function qo(a){Rn(this.a,a)};_.gb=function ro(a){Sn(this.a,a)};var re=NE(AI,'ResourceLoader/SimpleLoadListener',101);aj(195,1,RI,so);_.fb=function to(a){Rn(this.a,a)};_.gb=function uo(a){var b;if((!ak&&(ak=new ck),ak).a.b||(!ak&&(ak=new ck),ak).a.f||(!ak&&(ak=new ck),ak).a.c){b=co(this.b);if(b==0){Rn(this.a,a);return}}Sn(this.a,a)};var se=NE(AI,'ResourceLoader/StyleSheetLoadListener',195);aj(198,1,DI,vo);_._=function wo(){return this.a.call(null)};var te=NE(AI,'ResourceLoader/lambda$0$Type',198);aj(199,1,SI,xo);_.N=function yo(){this.b.gb(this.a)};var ue=NE(AI,'ResourceLoader/lambda$1$Type',199);aj(200,1,SI,zo);_.N=function Ao(){this.b.fb(this.a)};var ve=NE(AI,'ResourceLoader/lambda$2$Type',200);aj(160,1,{},Bo);_.nb=function Co(a){Nk(this.a)};var xe=NE(AI,'ScrollPositionHandler/0methodref$onBeforeUnload$Type',160);aj(161,1,fJ,Do);_.ob=function Eo(a){Mk(this.a,this.b,this.c)};_.b=0;_.c=0;var ye=NE(AI,'ScrollPositionHandler/lambda$1$Type',161);aj(22,1,{22:1},Lo);var Fe=NE(AI,'SystemErrorHandler',22);aj(165,1,{},No);_.qb=function Oo(a,b){var c;c=b;Fo(c.D())};_.rb=function Po(a){var b;nk('Received xhr HTTP session resynchronization message: '+a.responseText);vk(this.a.a);bp(Ic(tk(this.a.a,Ke),10),(rp(),pp));b=qs(rs(a.responseText));cs(Ic(tk(this.a.a,sf),21),b);Nj(Ic(tk(this.a.a,ud),9),b['uiId']);Yo((Qb(),Pb),new So(this))};var Ce=NE(AI,'SystemErrorHandler/1',165);aj(166,1,{},Qo);_.ib=function Ro(a){Ko(Pc(a))};var Ae=NE(AI,'SystemErrorHandler/1/0methodref$recreateNodes$Type',166);aj(167,1,{},So);_.I=function To(){wH(zG(Ic(tk(this.a.a.a,ud),9).e),new Qo)};var Be=NE(AI,'SystemErrorHandler/1/lambda$0$Type',167);aj(163,1,{},Uo);_.nb=function Vo(a){Cp(this.a)};var De=NE(AI,'SystemErrorHandler/lambda$0$Type',163);aj(164,1,{},Wo);_.nb=function Xo(a){Mo(this.a,a)};var Ee=NE(AI,'SystemErrorHandler/lambda$1$Type',164);aj(136,132,{},Zo);_.a=0;var He=NE(AI,'TrackingScheduler',136);aj(137,1,{},$o);_.I=function _o(){this.a.a--};var Ge=NE(AI,'TrackingScheduler/lambda$0$Type',137);aj(10,1,{10:1},cp);var Ke=NE(AI,'UILifecycle',10);aj(171,337,{},ep);_.P=function fp(a){Ic(a,92).sb(this)};_.Q=function gp(){return dp};var dp=null;var Ie=NE(AI,'UILifecycle/StateChangeEvent',171);aj(20,1,{4:1,32:1,20:1});_.r=function kp(a){return this===a};_.t=function lp(){return _H(this)};_.u=function mp(){return this.b!=null?this.b:''+this.c};_.c=0;var $h=NE(lI,'Enum',20);aj(60,20,{60:1,4:1,32:1,20:1},sp);var op,pp,qp;var Je=OE(AI,'UILifecycle/UIState',60,tp);aj(336,1,nI);var Gh=NE(jJ,'VaadinUriResolver',336);aj(50,336,{50:1,4:1},yp);_.tb=function Ap(a){return xp(this,a)};var Le=NE(AI,'URIResolver',50);var Fp=false,Gp;aj(116,1,{},Qp);_.I=function Rp(){Mp(this.a)};var Me=NE('com.vaadin.client.bootstrap','Bootstrapper/lambda$0$Type',116);aj(102,1,{},gq);_.ub=function jq(a){this.f=(Dq(),Bq);Jo(Ic(tk(Ic(tk(this.d,Ve),16).c,Fe),22),'','Client unexpectedly disconnected. Ensure client timeout is disabled.','',null,null)};_.vb=function kq(a){this.f=(Dq(),Aq);Ic(tk(this.d,Ve),16);gk&&($wnd.console.log('Push connection closed'),undefined)};_.wb=function lq(a){this.f=(Dq(),Bq);Rq(Ic(tk(this.d,Ve),16),'Push connection using '+a[oJ]+' failed!')};_.xb=function mq(a){var b,c;c=a['responseBody'];b=qs(rs(c));if(!b){Zq(Ic(tk(this.d,Ve),16),this,c);return}else{nk('Received push ('+this.g+') message: '+c);cs(Ic(tk(this.d,sf),21),b)}};_.yb=function nq(a){nk('Push connection established using '+a[oJ]);dq(this,a)};_.zb=function oq(a,b){this.f==(Dq(),zq)&&(this.f=Aq);ar(Ic(tk(this.d,Ve),16),this)};_.Ab=function pq(a){nk('Push connection re-established using '+a[oJ]);dq(this,a)};_.Bb=function qq(){ok('Push connection using primary method ('+this.a[oJ]+') failed. Trying with '+this.a['fallbackTransport'])};var Ue=NE(qJ,'AtmospherePushConnection',102);aj(252,1,{},rq);_.I=function sq(){Wp(this.a)};var Ne=NE(qJ,'AtmospherePushConnection/0methodref$connect$Type',252);aj(254,1,RI,tq);_.fb=function uq(a){br(Ic(tk(this.a.d,Ve),16),a.a)};_.gb=function vq(a){if(iq()){nk(this.c+' loaded');cq(this.b.a)}else{br(Ic(tk(this.a.d,Ve),16),a.a)}};var Oe=NE(qJ,'AtmospherePushConnection/1',254);aj(249,1,{},yq);_.a=0;var Pe=NE(qJ,'AtmospherePushConnection/FragmentedMessage',249);aj(52,20,{52:1,4:1,32:1,20:1},Eq);var zq,Aq,Bq,Cq;var Qe=OE(qJ,'AtmospherePushConnection/State',52,Fq);aj(251,1,rJ,Gq);_.sb=function Hq(a){aq(this.a,a)};var Re=NE(qJ,'AtmospherePushConnection/lambda$0$Type',251);aj(250,1,TI,Iq);_.I=function Jq(){};var Se=NE(qJ,'AtmospherePushConnection/lambda$1$Type',250);aj(365,$wnd.Function,{},Kq);_.eb=function Lq(a,b){bq(this.a,Pc(a),Pc(b))};aj(253,1,TI,Mq);_.I=function Nq(){cq(this.a)};var Te=NE(qJ,'AtmospherePushConnection/lambda$3$Type',253);var Ve=PE(qJ,'ConnectionStateHandler');aj(224,1,{16:1},jr);_.a=0;_.b=null;var _e=NE(qJ,'DefaultConnectionStateHandler',224);aj(226,41,{},kr);_.N=function lr(){this.a.d=null;Pq(this.a,this.b)};var We=NE(qJ,'DefaultConnectionStateHandler/1',226);aj(63,20,{63:1,4:1,32:1,20:1},rr);_.a=0;var mr,nr,or;var Xe=OE(qJ,'DefaultConnectionStateHandler/Type',63,sr);aj(225,1,rJ,tr);_.sb=function ur(a){Xq(this.a,a)};var Ye=NE(qJ,'DefaultConnectionStateHandler/lambda$0$Type',225);aj(227,1,{},vr);_.nb=function wr(a){Qq(this.a)};var Ze=NE(qJ,'DefaultConnectionStateHandler/lambda$1$Type',227);aj(228,1,{},xr);_.nb=function yr(a){Yq(this.a)};var $e=NE(qJ,'DefaultConnectionStateHandler/lambda$2$Type',228);aj(56,1,{56:1},Dr);_.a=-1;var df=NE(qJ,'Heartbeat',56);aj(221,41,{},Er);_.N=function Fr(){Br(this.a)};var af=NE(qJ,'Heartbeat/1',221);aj(223,1,{},Gr);_.qb=function Hr(a,b){!b?Vq(Ic(tk(this.a.b,Ve),16),a):Uq(Ic(tk(this.a.b,Ve),16),b);Ar(this.a)};_.rb=function Ir(a){Wq(Ic(tk(this.a.b,Ve),16));Ar(this.a)};var bf=NE(qJ,'Heartbeat/2',223);aj(222,1,rJ,Jr);_.sb=function Kr(a){zr(this.a,a)};var cf=NE(qJ,'Heartbeat/lambda$0$Type',222);aj(173,1,{},Or);_.ib=function Pr(a){ek('firstDelay',nF(Ic(a,27).a))};var ef=NE(qJ,'LoadingIndicatorConfigurator/0methodref$setFirstDelay$Type',173);aj(174,1,{},Qr);_.ib=function Rr(a){ek('secondDelay',nF(Ic(a,27).a))};var ff=NE(qJ,'LoadingIndicatorConfigurator/1methodref$setSecondDelay$Type',174);aj(175,1,{},Sr);_.ib=function Tr(a){ek('thirdDelay',nF(Ic(a,27).a))};var gf=NE(qJ,'LoadingIndicatorConfigurator/2methodref$setThirdDelay$Type',175);aj(176,1,eJ,Ur);_.mb=function Vr(a){Nr(QA(Ic(a.e,14)))};var hf=NE(qJ,'LoadingIndicatorConfigurator/lambda$3$Type',176);aj(177,1,eJ,Wr);_.mb=function Xr(a){Mr(this.b,this.a,a)};_.a=0;var jf=NE(qJ,'LoadingIndicatorConfigurator/lambda$4$Type',177);aj(21,1,{21:1},ns);_.a=0;_.b='init';_.d=false;_.e=0;_.f=-1;_.i=null;_.m=0;var sf=NE(qJ,'MessageHandler',21);aj(188,1,TI,ss);_.I=function ts(){!yA&&$wnd.Polymer!=null&&AF($wnd.Polymer.version.substr(0,'1.'.length),'1.')&&(yA=true,gk&&($wnd.console.log('Polymer micro is now loaded, using Polymer DOM API'),undefined),xA=new AA,undefined)};var kf=NE(qJ,'MessageHandler/0methodref$updateApiImplementation$Type',188);aj(187,41,{},us);_.N=function vs(){$r(this.a)};var lf=NE(qJ,'MessageHandler/1',187);aj(353,$wnd.Function,{},ws);_.ib=function xs(a){Yr(Ic(a,6))};aj(61,1,{61:1},ys);var mf=NE(qJ,'MessageHandler/PendingUIDLMessage',61);aj(189,1,TI,zs);_.I=function As(){js(this.a,this.d,this.b,this.c)};_.c=0;var nf=NE(qJ,'MessageHandler/lambda$1$Type',189);aj(191,1,ZI,Bs);_.hb=function Cs(){vC(new Ds(this.a,this.b))};var of=NE(qJ,'MessageHandler/lambda$3$Type',191);aj(190,1,ZI,Ds);_.hb=function Es(){gs(this.a,this.b)};var pf=NE(qJ,'MessageHandler/lambda$4$Type',190);aj(193,1,ZI,Fs);_.hb=function Gs(){hs(this.a)};var qf=NE(qJ,'MessageHandler/lambda$5$Type',193);aj(192,1,{},Hs);_.I=function Is(){this.a.forEach(cj(ws.prototype.ib,ws,[]))};var rf=NE(qJ,'MessageHandler/lambda$6$Type',192);aj(19,1,{19:1},Ss);_.a=0;_.d=0;var uf=NE(qJ,'MessageSender',19);aj(185,1,TI,Ts);_.I=function Us(){Ks(this.a)};var tf=NE(qJ,'MessageSender/lambda$0$Type',185);aj(168,1,eJ,Xs);_.mb=function Ys(a){Vs(this.a,a)};var vf=NE(qJ,'PollConfigurator/lambda$0$Type',168);aj(74,1,{74:1},at);_.Cb=function bt(){var a;a=Ic(tk(this.b,gg),12);Rv(a,a.e,'ui-poll',null)};_.a=null;var yf=NE(qJ,'Poller',74);aj(170,41,{},ct);_.N=function dt(){var a;a=Ic(tk(this.a.b,gg),12);Rv(a,a.e,'ui-poll',null)};var wf=NE(qJ,'Poller/1',170);aj(169,1,rJ,et);_.sb=function ft(a){Zs(this.a,a)};var xf=NE(qJ,'Poller/lambda$0$Type',169);aj(49,1,{49:1},it);var Cf=NE(qJ,'PushConfiguration',49);aj(233,1,eJ,lt);_.mb=function mt(a){ht(this.a,a)};var zf=NE(qJ,'PushConfiguration/0methodref$onPushModeChange$Type',233);aj(234,1,ZI,nt);_.hb=function ot(){Rs(Ic(tk(this.a.a,uf),19),true)};var Af=NE(qJ,'PushConfiguration/lambda$1$Type',234);aj(235,1,ZI,pt);_.hb=function qt(){Rs(Ic(tk(this.a.a,uf),19),false)};var Bf=NE(qJ,'PushConfiguration/lambda$2$Type',235);aj(359,$wnd.Function,{},rt);_.eb=function st(a,b){kt(this.a,Ic(a,14),Pc(b))};aj(37,1,{37:1},tt);var Ef=NE(qJ,'ReconnectConfiguration',37);aj(172,1,TI,ut);_.I=function vt(){Oq(this.a)};var Df=NE(qJ,'ReconnectConfiguration/lambda$0$Type',172);aj(13,1,{13:1},Bt);_.b=false;var Gf=NE(qJ,'RequestResponseTracker',13);aj(186,1,{},Ct);_.I=function Dt(){zt(this.a)};var Ff=NE(qJ,'RequestResponseTracker/lambda$0$Type',186);aj(248,337,{},Et);_.P=function Ft(a){bd(a);null.pc()};_.Q=function Gt(){return null};var Hf=NE(qJ,'RequestStartingEvent',248);aj(162,337,{},It);_.P=function Jt(a){Ic(a,91).ob(this)};_.Q=function Kt(){return Ht};var Ht;var If=NE(qJ,'ResponseHandlingEndedEvent',162);aj(289,337,{},Lt);_.P=function Mt(a){bd(a);null.pc()};_.Q=function Nt(){return null};var Jf=NE(qJ,'ResponseHandlingStartedEvent',289);aj(28,1,{28:1},Wt);_.Db=function Xt(a,b,c){Ot(this,a,b,c)};_.Eb=function Yt(a,b,c){var d;d={};d[OI]='channel';d[CJ]=Object(a);d['channel']=Object(b);d['args']=c;St(this,d)};var Kf=NE(qJ,'ServerConnector',28);aj(36,1,{36:1},cu);_.b=false;var Zt;var Of=NE(qJ,'ServerRpcQueue',36);aj(215,1,SI,du);_.N=function eu(){au(this.a)};var Lf=NE(qJ,'ServerRpcQueue/0methodref$doFlush$Type',215);aj(214,1,SI,fu);_.N=function gu(){$t()};var Mf=NE(qJ,'ServerRpcQueue/lambda$0$Type',214);aj(216,1,{},hu);_.I=function iu(){this.a.a.N()};var Nf=NE(qJ,'ServerRpcQueue/lambda$2$Type',216);aj(72,1,{72:1},ku);_.b=false;var Uf=NE(qJ,'XhrConnection',72);aj(232,41,{},mu);_.N=function nu(){lu(this.b)&&this.a.b&&jj(this,250)};var Pf=NE(qJ,'XhrConnection/1',232);aj(229,1,{},pu);_.qb=function qu(a,b){var c;c=new wu(a,this.a);if(!b){hr(Ic(tk(this.c.a,Ve),16),c);return}else{fr(Ic(tk(this.c.a,Ve),16),c)}};_.rb=function ru(a){var b,c;nk('Server visit took '+Jn(this.b)+'ms');c=a.responseText;b=qs(rs(c));if(!b){gr(Ic(tk(this.c.a,Ve),16),new wu(a,this.a));return}ir(Ic(tk(this.c.a,Ve),16));gk&&VD($wnd.console,'Received xhr message: '+c);cs(Ic(tk(this.c.a,sf),21),b)};_.b=0;var Qf=NE(qJ,'XhrConnection/XhrResponseHandler',229);aj(230,1,{},su);_.nb=function tu(a){this.a.b=true};var Rf=NE(qJ,'XhrConnection/lambda$0$Type',230);aj(231,1,fJ,uu);_.ob=function vu(a){this.a.b=false};var Sf=NE(qJ,'XhrConnection/lambda$1$Type',231);aj(105,1,{},wu);var Tf=NE(qJ,'XhrConnectionError',105);aj(58,1,{58:1},Au);var Vf=NE(FJ,'ConstantPool',58);aj(85,1,{85:1},Iu);_.Fb=function Ju(){return Ic(tk(this.a,ud),9).a};var Zf=NE(FJ,'ExecuteJavaScriptProcessor',85);aj(218,1,CI,Ku);_.U=function Lu(a){var b;return vC(new Mu(this.a,(b=this.b,b))),DE(),true};var Wf=NE(FJ,'ExecuteJavaScriptProcessor/lambda$0$Type',218);aj(217,1,ZI,Mu);_.hb=function Nu(){Du(this.a,this.b)};var Xf=NE(FJ,'ExecuteJavaScriptProcessor/lambda$1$Type',217);aj(219,1,SI,Ou);_.N=function Pu(){Hu(this.a)};var Yf=NE(FJ,'ExecuteJavaScriptProcessor/lambda$2$Type',219);aj(309,1,{},Su);var _f=NE(FJ,'FragmentHandler',309);aj(310,1,fJ,Uu);_.ob=function Vu(a){Ru(this.a)};var $f=NE(FJ,'FragmentHandler/0methodref$onResponseHandlingEnded$Type',310);aj(308,1,{},Wu);var ag=NE(FJ,'NodeUnregisterEvent',308);aj(183,1,{},dv);_.nb=function ev(a){$u(this.a,a)};var bg=NE(FJ,'RouterLinkHandler/lambda$0$Type',183);aj(184,1,TI,fv);_.I=function gv(){Cp(this.a)};var cg=NE(FJ,'RouterLinkHandler/lambda$1$Type',184);aj(6,1,{6:1},tv);_.Gb=function uv(){return kv(this)};_.Hb=function vv(){return this.g};_.d=0;_.i=false;var fg=NE(FJ,'StateNode',6);aj(346,$wnd.Function,{},xv);_.eb=function yv(a,b){nv(this.a,this.b,Ic(a,34),Kc(b))};aj(347,$wnd.Function,{},zv);_.ib=function Av(a){wv(this.a,Ic(a,107))};var Jh=PE('elemental.events','EventRemover');aj(152,1,JJ,Bv);_.Ib=function Cv(){ov(this.a,this.b)};var dg=NE(FJ,'StateNode/lambda$2$Type',152);aj(348,$wnd.Function,{},Dv);_.ib=function Ev(a){pv(this.a,Ic(a,67))};aj(153,1,JJ,Fv);_.Ib=function Gv(){qv(this.a,this.b)};var eg=NE(FJ,'StateNode/lambda$4$Type',153);aj(12,1,{12:1},Xv);_.Jb=function Yv(){return this.e};_.Kb=function $v(a,b,c,d){var e;if(Mv(this,a)){e=Nc(c);Vt(Ic(tk(this.c,Kf),28),a,b,e,d)}};_.d=false;_.f=false;var gg=NE(FJ,'StateTree',12);aj(351,$wnd.Function,{},_v);_.ib=function aw(a){jv(Ic(a,6),cj(dw.prototype.eb,dw,[]))};aj(352,$wnd.Function,{},bw);_.eb=function cw(a,b){var c;Ov(this.a,(c=Ic(a,6),Kc(b),c))};aj(340,$wnd.Function,{},dw);_.eb=function ew(a,b){Zv(Ic(a,34),Kc(b))};var mw,nw;aj(178,1,{},sw);var hg=NE(QJ,'Binder/BinderContextImpl',178);var ig=PE(QJ,'BindingStrategy');aj(80,1,{80:1},xw);_.b=false;_.g=0;var tw;var lg=NE(QJ,'Debouncer',80);aj(339,1,{});_.b=false;_.c=0;var Oh=NE(SJ,'Timer',339);aj(313,339,{},Dw);var jg=NE(QJ,'Debouncer/1',313);aj(314,339,{},Ew);var kg=NE(QJ,'Debouncer/2',314);aj(380,$wnd.Function,{},Gw);_.eb=function Hw(a,b){var c;Fw(this,(c=Oc(a,$wnd.Map),Nc(b),c))};aj(381,$wnd.Function,{},Kw);_.ib=function Lw(a){Iw(this.a,Oc(a,$wnd.Map))};aj(382,$wnd.Function,{},Mw);_.ib=function Nw(a){Jw(this.a,Ic(a,80))};aj(305,1,DI,Rw);_._=function Sw(){return cx(this.a)};var mg=NE(QJ,'ServerEventHandlerBinder/lambda$0$Type',305);aj(306,1,cJ,Tw);_.jb=function Uw(a){Qw(this.b,this.a,this.c,a)};_.c=false;var ng=NE(QJ,'ServerEventHandlerBinder/lambda$1$Type',306);var Vw;aj(255,1,{317:1},by);_.Lb=function cy(a,b,c){kx(this,a,b,c)};_.Mb=function fy(a){return ux(a)};_.Ob=function ky(a,b){var c,d,e;d=Object.keys(a);e=new Vz(d,a,b);c=Ic(b.e.get(pg),77);!c?Sx(e.b,e.a,e.c):(c.a=e)};_.Pb=function ly(r,s){var t=this;var u=s._propertiesChanged;u&&(s._propertiesChanged=function(a,b,c){hI(function(){t.Ob(b,r)})();u.apply(this,arguments)});var v=r.Hb();var w=s.ready;s.ready=function(){w.apply(this,arguments);Hm(s);var q=function(){var o=s.root.querySelector($J);if(o){s.removeEventListener(_J,q)}else{return}if(!o.constructor.prototype.$propChangedModified){o.constructor.prototype.$propChangedModified=true;var p=o.constructor.prototype._propertiesChanged;o.constructor.prototype._propertiesChanged=function(a,b,c){p.apply(this,arguments);var d=Object.getOwnPropertyNames(b);var e='items.';var f;for(f=0;f0){var i=h.substr(0,g);var j=h.substr(g+1);var k=a.items[i];if(k&&k.nodeId){var l=k.nodeId;var m=k[j];var n=this.__dataHost;while(!n.localName||n.__dataHost){n=n.__dataHost}hI(function(){jy(l,n,j,m,v)})()}}}}}}};s.root&&s.root.querySelector($J)?q():s.addEventListener(_J,q)}};_.Nb=function my(a){if(a.c.has(0)){return true}return !!a.g&&K(a,a.g.e)};var ex,fx;var Ug=NE(QJ,'SimpleElementBindingStrategy',255);aj(370,$wnd.Function,{},By);_.ib=function Cy(a){Ic(a,45).Ib()};aj(374,$wnd.Function,{},Dy);_.ib=function Ey(a){Ic(a,18).N()};aj(103,1,{},Fy);var og=NE(QJ,'SimpleElementBindingStrategy/BindingContext',103);aj(77,1,{77:1},Gy);var pg=NE(QJ,'SimpleElementBindingStrategy/InitialPropertyUpdate',77);aj(256,1,{},Hy);_.Qb=function Iy(a){Gx(this.a,a)};var qg=NE(QJ,'SimpleElementBindingStrategy/lambda$0$Type',256);aj(257,1,{},Jy);_.Qb=function Ky(a){Hx(this.a,a)};var rg=NE(QJ,'SimpleElementBindingStrategy/lambda$1$Type',257);aj(366,$wnd.Function,{},Ly);_.eb=function My(a,b){var c;ny(this.b,this.a,(c=Ic(a,14),Pc(b),c))};aj(266,1,dJ,Ny);_.lb=function Oy(a){oy(this.b,this.a,a)};var sg=NE(QJ,'SimpleElementBindingStrategy/lambda$11$Type',266);aj(267,1,eJ,Py);_.mb=function Qy(a){$x(this.c,this.b,this.a)};var tg=NE(QJ,'SimpleElementBindingStrategy/lambda$12$Type',267);aj(268,1,ZI,Ry);_.hb=function Sy(){Ix(this.b,this.c,this.a)};var ug=NE(QJ,'SimpleElementBindingStrategy/lambda$13$Type',268);aj(269,1,TI,Ty);_.I=function Uy(){this.b.Qb(this.a)};var vg=NE(QJ,'SimpleElementBindingStrategy/lambda$14$Type',269);aj(270,1,TI,Vy);_.I=function Wy(){this.a[this.b]=Dm(this.c)};var wg=NE(QJ,'SimpleElementBindingStrategy/lambda$15$Type',270);aj(272,1,cJ,Xy);_.jb=function Yy(a){Jx(this.a,a)};var xg=NE(QJ,'SimpleElementBindingStrategy/lambda$16$Type',272);aj(271,1,ZI,Zy);_.hb=function $y(){Bx(this.b,this.a)};var yg=NE(QJ,'SimpleElementBindingStrategy/lambda$17$Type',271);aj(274,1,cJ,_y);_.jb=function az(a){Kx(this.a,a)};var zg=NE(QJ,'SimpleElementBindingStrategy/lambda$18$Type',274);aj(273,1,ZI,bz);_.hb=function cz(){Lx(this.b,this.a)};var Ag=NE(QJ,'SimpleElementBindingStrategy/lambda$19$Type',273);aj(258,1,{},dz);_.Qb=function ez(a){Mx(this.a,a)};var Bg=NE(QJ,'SimpleElementBindingStrategy/lambda$2$Type',258);aj(275,1,SI,fz);_.N=function gz(){Dx(this.a,this.b,this.c,false)};var Cg=NE(QJ,'SimpleElementBindingStrategy/lambda$20$Type',275);aj(276,1,SI,hz);_.N=function iz(){Dx(this.a,this.b,this.c,false)};var Dg=NE(QJ,'SimpleElementBindingStrategy/lambda$21$Type',276);aj(277,1,SI,jz);_.N=function kz(){Fx(this.a,this.b,this.c,false)};var Eg=NE(QJ,'SimpleElementBindingStrategy/lambda$22$Type',277);aj(278,1,DI,lz);_._=function mz(){return py(this.a,this.b)};var Fg=NE(QJ,'SimpleElementBindingStrategy/lambda$23$Type',278);aj(279,1,DI,nz);_._=function oz(){return qy(this.a,this.b)};var Gg=NE(QJ,'SimpleElementBindingStrategy/lambda$24$Type',279);aj(367,$wnd.Function,{},pz);_.eb=function qz(a,b){var c;jC((c=Ic(a,75),Pc(b),c))};aj(368,$wnd.Function,{},rz);_.ib=function sz(a){ry(this.a,Oc(a,$wnd.Map))};aj(369,$wnd.Function,{},tz);_.eb=function uz(a,b){var c;(c=Ic(a,45),Pc(b),c).Ib()};aj(259,1,{107:1},vz);_.kb=function wz(a){Tx(this.c,this.b,this.a)};var Hg=NE(QJ,'SimpleElementBindingStrategy/lambda$3$Type',259);aj(371,$wnd.Function,{},xz);_.eb=function yz(a,b){var c;Nx(this.a,(c=Ic(a,14),Pc(b),c))};aj(280,1,dJ,zz);_.lb=function Az(a){Ox(this.a,a)};var Ig=NE(QJ,'SimpleElementBindingStrategy/lambda$31$Type',280);aj(281,1,TI,Bz);_.I=function Cz(){Px(this.b,this.a,this.c)};var Jg=NE(QJ,'SimpleElementBindingStrategy/lambda$32$Type',281);aj(282,1,{},Dz);_.nb=function Ez(a){Qx(this.a,a)};var Kg=NE(QJ,'SimpleElementBindingStrategy/lambda$33$Type',282);aj(372,$wnd.Function,{},Fz);_.ib=function Gz(a){Rx(this.a,this.b,Pc(a))};aj(283,1,{},Iz);_.ib=function Jz(a){Hz(this,a)};var Lg=NE(QJ,'SimpleElementBindingStrategy/lambda$35$Type',283);aj(284,1,cJ,Kz);_.jb=function Lz(a){ty(this.a,a)};var Mg=NE(QJ,'SimpleElementBindingStrategy/lambda$37$Type',284);aj(285,1,DI,Mz);_._=function Nz(){return this.a.b};var Ng=NE(QJ,'SimpleElementBindingStrategy/lambda$38$Type',285);aj(373,$wnd.Function,{},Oz);_.ib=function Pz(a){this.a.push(Ic(a,6))};aj(261,1,ZI,Qz);_.hb=function Rz(){uy(this.a)};var Og=NE(QJ,'SimpleElementBindingStrategy/lambda$4$Type',261);aj(260,1,{},Sz);_.I=function Tz(){vy(this.a)};var Pg=NE(QJ,'SimpleElementBindingStrategy/lambda$5$Type',260);aj(263,1,SI,Vz);_.N=function Wz(){Uz(this)};var Qg=NE(QJ,'SimpleElementBindingStrategy/lambda$6$Type',263);aj(262,1,DI,Xz);_._=function Yz(){return this.a[this.b]};var Rg=NE(QJ,'SimpleElementBindingStrategy/lambda$7$Type',262);aj(265,1,dJ,Zz);_.lb=function $z(a){uC(new _z(this.a))};var Sg=NE(QJ,'SimpleElementBindingStrategy/lambda$8$Type',265);aj(264,1,ZI,_z);_.hb=function aA(){jx(this.a)};var Tg=NE(QJ,'SimpleElementBindingStrategy/lambda$9$Type',264);aj(286,1,{317:1},fA);_.Lb=function gA(a,b,c){dA(a,b)};_.Mb=function hA(a){return $doc.createTextNode('')};_.Nb=function iA(a){return a.c.has(7)};var bA;var Xg=NE(QJ,'TextBindingStrategy',286);aj(287,1,TI,jA);_.I=function kA(){cA();PD(this.a,Pc(NA(this.b)))};var Vg=NE(QJ,'TextBindingStrategy/lambda$0$Type',287);aj(288,1,{107:1},lA);_.kb=function mA(a){eA(this.b,this.a)};var Wg=NE(QJ,'TextBindingStrategy/lambda$1$Type',288);aj(345,$wnd.Function,{},rA);_.ib=function sA(a){this.a.add(a)};aj(349,$wnd.Function,{},uA);_.eb=function vA(a,b){this.a.push(a)};var xA,yA=false;aj(297,1,{},AA);var Yg=NE('com.vaadin.client.flow.dom','PolymerDomApiImpl',297);aj(78,1,{78:1},BA);var Zg=NE('com.vaadin.client.flow.model','UpdatableModelProperties',78);aj(379,$wnd.Function,{},CA);_.ib=function DA(a){this.a.add(Pc(a))};aj(87,1,{});_.Rb=function FA(){return this.e};var yh=NE(YI,'ReactiveValueChangeEvent',87);aj(53,87,{53:1},GA);_.Rb=function HA(){return Ic(this.e,30)};_.b=false;_.c=0;var $g=NE(aK,'ListSpliceEvent',53);aj(14,1,{14:1,318:1},WA);_.Sb=function XA(a){return ZA(this.a,a)};_.b=false;_.c=false;_.d=false;var IA;var ih=NE(aK,'MapProperty',14);aj(86,1,{});var xh=NE(YI,'ReactiveEventRouter',86);aj(241,86,{},dB);_.Tb=function eB(a,b){Ic(a,46).mb(Ic(b,79))};_.Ub=function fB(a){return new gB(a)};var ah=NE(aK,'MapProperty/1',241);aj(242,1,eJ,gB);_.mb=function hB(a){hC(this.a)};var _g=NE(aK,'MapProperty/1/0methodref$onValueChange$Type',242);aj(240,1,SI,iB);_.N=function jB(){JA()};var bh=NE(aK,'MapProperty/lambda$0$Type',240);aj(243,1,ZI,kB);_.hb=function lB(){this.a.d=false};var dh=NE(aK,'MapProperty/lambda$1$Type',243);aj(244,1,ZI,mB);_.hb=function nB(){this.a.d=false};var eh=NE(aK,'MapProperty/lambda$2$Type',244);aj(245,1,SI,oB);_.N=function pB(){SA(this.a,this.b)};var fh=NE(aK,'MapProperty/lambda$3$Type',245);aj(88,87,{88:1},qB);_.Rb=function rB(){return Ic(this.e,42)};var gh=NE(aK,'MapPropertyAddEvent',88);aj(79,87,{79:1},sB);_.Rb=function tB(){return Ic(this.e,14)};var hh=NE(aK,'MapPropertyChangeEvent',79);aj(34,1,{34:1});_.d=0;var jh=NE(aK,'NodeFeature',34);aj(30,34,{34:1,30:1,318:1},BB);_.Sb=function CB(a){return ZA(this.a,a)};_.Vb=function DB(a){var b,c,d;c=[];for(b=0;b=0?':'+this.c:'')+')'};_.c=0;var mi=NE(lI,'StackTraceElement',31);Gc={4:1,113:1,32:1,2:1};var pi=NE(lI,'String',2);aj(69,84,{113:1},SF,TF,UF);var ni=NE(lI,'StringBuilder',69);aj(126,70,pI,VF);var oi=NE(lI,'StringIndexOutOfBoundsException',126);aj(494,1,{});var WF;aj(108,1,CI,ZF);_.U=function $F(a){return YF(a)};var qi=NE(lI,'Throwable/lambda$0$Type',108);aj(96,8,pI,_F);var si=NE(lI,'UnsupportedOperationException',96);aj(334,1,{106:1});_.cc=function aG(a){throw Ui(new _F('Add not supported on this collection'))};_.u=function bG(){var a,b,c;c=new aH;for(b=this.dc();b.gc();){a=b.hc();_G(c,a===this?'(this Collection)':a==null?qI:ej(a))}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)};var ti=NE(nK,'AbstractCollection',334);aj(335,334,{106:1,93:1});_.fc=function cG(a,b){throw Ui(new _F('Add not supported on this list'))};_.cc=function dG(a){this.fc(this.ec(),a);return true};_.r=function eG(a){var b,c,d,e,f;if(a===this){return true}if(!Sc(a,40)){return false}f=Ic(a,93);if(this.a.length!=f.a.length){return false}e=new uG(f);for(c=new uG(this);c.a Element[]; +export declare const licenseCheckOk: (data: Product) => void; +export declare const licenseCheckFailed: (data: ProductAndMessage) => void; +export declare const licenseCheckNoKey: (data: ProductAndMessage) => void; +export declare const licenseInit: () => void; diff --git a/frontend/generated/jar-resources/License.js b/frontend/generated/jar-resources/License.js new file mode 100644 index 0000000..5f0f617 --- /dev/null +++ b/frontend/generated/jar-resources/License.js @@ -0,0 +1,110 @@ +const noLicenseFallbackTimeout = 1000; +export const findAll = (element, tags) => { + const lightDom = Array.from(element.querySelectorAll(tags.join(', '))); + const shadowDom = Array.from(element.querySelectorAll('*')) + .filter((e) => e.shadowRoot) + .flatMap((e) => findAll(e.shadowRoot, tags)); + return [...lightDom, ...shadowDom]; +}; +let licenseCheckListener = false; +const showNoLicenseFallback = (element, productAndMessage) => { + if (!licenseCheckListener) { + // When a license check has succeeded, refresh so that all elements are properly shown again + window.addEventListener('message', (e) => { + if (e.data === 'validate-license') { + window.location.reload(); + } + }, false); + licenseCheckListener = true; + } + const overlay = element._overlayElement; + if (overlay) { + if (overlay.shadowRoot) { + const defaultSlot = overlay.shadowRoot.querySelector('slot:not([name])'); + if (defaultSlot && defaultSlot.assignedElements().length > 0) { + showNoLicenseFallback(defaultSlot.assignedElements()[0], productAndMessage); + return; + } + } + showNoLicenseFallback(overlay, productAndMessage); + return; + } + const htmlMessage = productAndMessage.messageHtml + ? productAndMessage.messageHtml + : `${productAndMessage.message}

Component: ${productAndMessage.product.name} ${productAndMessage.product.version}

`.replace(/https:([^ ]*)/g, "https:$1"); + if (element.isConnected) { + element.outerHTML = `
${htmlMessage}
`; + } +}; +const productTagNames = {}; +const productChecking = {}; +const productMissingLicense = {}; +const productCheckOk = {}; +const key = (product) => { + return `${product.name}_${product.version}`; +}; +const checkLicenseIfNeeded = (cvdlElement) => { + var _a; + const { cvdlName, version } = cvdlElement.constructor; + const product = { name: cvdlName, version }; + const tagName = cvdlElement.tagName.toLowerCase(); + productTagNames[cvdlName] = (_a = productTagNames[cvdlName]) !== null && _a !== void 0 ? _a : []; + productTagNames[cvdlName].push(tagName); + const failedLicenseCheck = productMissingLicense[key(product)]; + if (failedLicenseCheck) { + // Has been checked and the check failed + setTimeout(() => showNoLicenseFallback(cvdlElement, failedLicenseCheck), noLicenseFallbackTimeout); + } + if (productMissingLicense[key(product)] || productCheckOk[key(product)]) { + // Already checked + } + else if (!productChecking[key(product)]) { + // Has not been checked + productChecking[key(product)] = true; + window.Vaadin.devTools.checkLicense(product); + } +}; +export const licenseCheckOk = (data) => { + productCheckOk[key(data)] = true; + // eslint-disable-next-line no-console + console.debug('License check ok for', data); +}; +export const licenseCheckFailed = (data) => { + const productName = data.product.name; + productMissingLicense[key(data.product)] = data; + // eslint-disable-next-line no-console + console.error('License check failed for', productName); + const tags = productTagNames[productName]; + if ((tags === null || tags === void 0 ? void 0 : tags.length) > 0) { + findAll(document, tags).forEach((element) => { + setTimeout(() => showNoLicenseFallback(element, productMissingLicense[key(data.product)]), noLicenseFallbackTimeout); + }); + } +}; +export const licenseCheckNoKey = (data) => { + const keyUrl = data.message; + const productName = data.product.name; + data.messageHtml = `No license found. Go here to start a trial or retrieve your license.`; + productMissingLicense[key(data.product)] = data; + // eslint-disable-next-line no-console + console.error('No license found when checking', productName); + const tags = productTagNames[productName]; + if ((tags === null || tags === void 0 ? void 0 : tags.length) > 0) { + findAll(document, tags).forEach((element) => { + setTimeout(() => showNoLicenseFallback(element, productMissingLicense[key(data.product)]), noLicenseFallbackTimeout); + }); + } +}; +export const licenseInit = () => { + // Process already registered elements + window.Vaadin.devTools.createdCvdlElements.forEach((element) => { + checkLicenseIfNeeded(element); + }); + // Handle new elements directly + window.Vaadin.devTools.createdCvdlElements = { + push: (element) => { + checkLicenseIfNeeded(element); + } + }; +}; +//# sourceMappingURL=License.js.map \ No newline at end of file diff --git a/frontend/generated/jar-resources/License.js.map b/frontend/generated/jar-resources/License.js.map new file mode 100644 index 0000000..49a8674 --- /dev/null +++ b/frontend/generated/jar-resources/License.js.map @@ -0,0 +1 @@ +{"version":3,"file":"License.js","sourceRoot":"","sources":["../../../../src/main/frontend/License.ts"],"names":[],"mappings":"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","sourcesContent":["const noLicenseFallbackTimeout = 1000;\n\nexport interface Product {\n name: string;\n version: string;\n}\n\nexport interface ProductAndMessage {\n message: string;\n messageHtml?: string;\n product: Product;\n}\n\nexport const findAll = (element: Element | ShadowRoot | Document, tags: string[]): Element[] => {\n const lightDom = Array.from(element.querySelectorAll(tags.join(', ')));\n const shadowDom = Array.from(element.querySelectorAll('*'))\n .filter((e) => e.shadowRoot)\n .flatMap((e) => findAll(e.shadowRoot!, tags));\n return [...lightDom, ...shadowDom];\n};\n\nlet licenseCheckListener = false;\n\nconst showNoLicenseFallback = (element: Element, productAndMessage: ProductAndMessage) => {\n if (!licenseCheckListener) {\n // When a license check has succeeded, refresh so that all elements are properly shown again\n window.addEventListener(\n 'message',\n (e) => {\n if (e.data === 'validate-license') {\n window.location.reload();\n }\n },\n false\n );\n licenseCheckListener = true;\n }\n const overlay = (element as any)._overlayElement;\n if (overlay) {\n if (overlay.shadowRoot) {\n const defaultSlot = overlay.shadowRoot.querySelector('slot:not([name])');\n if (defaultSlot && defaultSlot.assignedElements().length > 0) {\n showNoLicenseFallback(defaultSlot.assignedElements()[0], productAndMessage);\n return;\n }\n }\n showNoLicenseFallback(overlay, productAndMessage);\n return;\n }\n\n const htmlMessage = productAndMessage.messageHtml\n ? productAndMessage.messageHtml\n : `${productAndMessage.message}

Component: ${productAndMessage.product.name} ${productAndMessage.product.version}

`.replace(\n /https:([^ ]*)/g,\n \"https:$1\"\n );\n\n if (element.isConnected) {\n element.outerHTML = `
${htmlMessage}
`;\n }\n};\n\nconst productTagNames: Record = {};\nconst productChecking: Record = {};\nconst productMissingLicense: Record = {};\nconst productCheckOk: Record = {};\n\nconst key = (product: Product): string => {\n return `${product.name}_${product.version}`;\n};\n\nconst checkLicenseIfNeeded = (cvdlElement: Element) => {\n const { cvdlName, version } = cvdlElement.constructor as CustomElementConstructor & {\n cvdlName: string;\n version: string;\n };\n const product: Product = { name: cvdlName, version };\n const tagName = cvdlElement.tagName.toLowerCase();\n productTagNames[cvdlName] = productTagNames[cvdlName] ?? [];\n productTagNames[cvdlName].push(tagName);\n\n const failedLicenseCheck = productMissingLicense[key(product)];\n if (failedLicenseCheck) {\n // Has been checked and the check failed\n setTimeout(() => showNoLicenseFallback(cvdlElement, failedLicenseCheck), noLicenseFallbackTimeout);\n }\n\n if (productMissingLicense[key(product)] || productCheckOk[key(product)]) {\n // Already checked\n } else if (!productChecking[key(product)]) {\n // Has not been checked\n productChecking[key(product)] = true;\n (window as any).Vaadin.devTools.checkLicense(product);\n }\n};\n\nexport const licenseCheckOk = (data: Product) => {\n productCheckOk[key(data)] = true;\n\n // eslint-disable-next-line no-console\n console.debug('License check ok for', data);\n};\n\nexport const licenseCheckFailed = (data: ProductAndMessage) => {\n const productName = data.product.name;\n productMissingLicense[key(data.product)] = data;\n // eslint-disable-next-line no-console\n console.error('License check failed for', productName);\n\n const tags = productTagNames[productName];\n if (tags?.length > 0) {\n findAll(document, tags).forEach((element) => {\n setTimeout(\n () => showNoLicenseFallback(element, productMissingLicense[key(data.product)]),\n noLicenseFallbackTimeout\n );\n });\n }\n};\n\nexport const licenseCheckNoKey = (data: ProductAndMessage) => {\n const keyUrl = data.message;\n\n const productName = data.product.name;\n data.messageHtml = `No license found. Go here to start a trial or retrieve your license.`;\n productMissingLicense[key(data.product)] = data;\n // eslint-disable-next-line no-console\n console.error('No license found when checking', productName);\n\n const tags = productTagNames[productName];\n if (tags?.length > 0) {\n findAll(document, tags).forEach((element) => {\n setTimeout(\n () => showNoLicenseFallback(element, productMissingLicense[key(data.product)]),\n noLicenseFallbackTimeout\n );\n });\n }\n};\n\nexport const licenseInit = () => {\n // Process already registered elements\n (window as any).Vaadin.devTools.createdCvdlElements.forEach((element: Element) => {\n checkLicenseIfNeeded(element);\n });\n\n // Handle new elements directly\n (window as any).Vaadin.devTools.createdCvdlElements = {\n push: (element: Element) => {\n checkLicenseIfNeeded(element);\n }\n };\n};\n"]} \ No newline at end of file diff --git a/frontend/generated/jar-resources/comboBoxConnector.js b/frontend/generated/jar-resources/comboBoxConnector.js new file mode 100644 index 0000000..1168c0f --- /dev/null +++ b/frontend/generated/jar-resources/comboBoxConnector.js @@ -0,0 +1,284 @@ +import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js'; +import { timeOut } from '@polymer/polymer/lib/utils/async.js'; +import { ComboBoxPlaceholder } from '@vaadin/combo-box/src/vaadin-combo-box-placeholder.js'; + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Combo Box'); + }; + + window.Vaadin.Flow.comboBoxConnector = { + initLazy: (comboBox) => + tryCatchWrapper(function (comboBox) { + // Check whether the connector was already initialized for the ComboBox + if (comboBox.$connector) { + return; + } + + comboBox.$connector = {}; + + // holds pageIndex -> callback pairs of subsequent indexes (current active range) + const pageCallbacks = {}; + let cache = {}; + let lastFilter = ''; + const placeHolder = new window.Vaadin.ComboBoxPlaceholder(); + + const serverFacade = (() => { + // Private variables + let lastFilterSentToServer = ''; + let dataCommunicatorResetNeeded = false; + + // Public methods + const needsDataCommunicatorReset = () => (dataCommunicatorResetNeeded = true); + const getLastFilterSentToServer = () => lastFilterSentToServer; + const requestData = (startIndex, endIndex, params) => { + const count = endIndex - startIndex; + const filter = params.filter; + + comboBox.$server.setRequestedRange(startIndex, count, filter); + lastFilterSentToServer = filter; + if (dataCommunicatorResetNeeded) { + comboBox.$server.resetDataCommunicator(); + dataCommunicatorResetNeeded = false; + } + }; + + return { + needsDataCommunicatorReset, + getLastFilterSentToServer, + requestData + }; + })(); + + const clearPageCallbacks = (pages = Object.keys(pageCallbacks)) => { + // Flush and empty the existing requests + pages.forEach((page) => { + pageCallbacks[page]([], comboBox.size); + delete pageCallbacks[page]; + + // Empty the comboBox's internal cache without invoking observers by filling + // the filteredItems array with placeholders (comboBox will request for data when it + // encounters a placeholder) + const pageStart = parseInt(page) * comboBox.pageSize; + const pageEnd = pageStart + comboBox.pageSize; + const end = Math.min(pageEnd, comboBox.filteredItems.length); + for (let i = pageStart; i < end; i++) { + comboBox.filteredItems[i] = placeHolder; + } + }); + }; + + comboBox.dataProvider = function (params, callback) { + if (params.pageSize != comboBox.pageSize) { + throw 'Invalid pageSize'; + } + + if (comboBox._clientSideFilter) { + // For clientside filter we first make sure we have all data which we also + // filter based on comboBox.filter. While later we only filter clientside data. + + if (cache[0]) { + performClientSideFilter(cache[0], params.filter, callback); + return; + } else { + // If client side filter is enabled then we need to first ask all data + // and filter it on client side, otherwise next time when user will + // input another filter, eg. continue to type, the local cache will be only + // what was received for the first filter, which may not be the whole + // data from server (keep in mind that client side filter is enabled only + // when the items count does not exceed one page). + params.filter = ''; + } + } + + const filterChanged = params.filter !== lastFilter; + if (filterChanged) { + cache = {}; + lastFilter = params.filter; + this._filterDebouncer = Debouncer.debounce(this._filterDebouncer, timeOut.after(500), () => { + if (serverFacade.getLastFilterSentToServer() === params.filter) { + // Fixes the case when the filter changes + // to something else and back to the original value + // within debounce timeout, and the + // DataCommunicator thinks it doesn't need to send data + serverFacade.needsDataCommunicatorReset(); + } + if (params.filter !== lastFilter) { + throw new Error("Expected params.filter to be '" + lastFilter + "' but was '" + params.filter + "'"); + } + // Remove the debouncer before clearing page callbacks. + // This makes sure that they are executed. + this._filterDebouncer = undefined; + // Call the method again after debounce. + clearPageCallbacks(); + comboBox.dataProvider(params, callback); + }); + return; + } + + // Postpone the execution of new callbacks if there is an active debouncer. + // They will be executed when the page callbacks are cleared within the debouncer. + if (this._filterDebouncer) { + pageCallbacks[params.page] = callback; + return; + } + + if (cache[params.page]) { + // This may happen after skipping pages by scrolling fast + commitPage(params.page, callback); + } else { + pageCallbacks[params.page] = callback; + const maxRangeCount = Math.max(params.pageSize * 2, 500); // Max item count in active range + const activePages = Object.keys(pageCallbacks).map((page) => parseInt(page)); + const rangeMin = Math.min(...activePages); + const rangeMax = Math.max(...activePages); + + if (activePages.length * params.pageSize > maxRangeCount) { + if (params.page === rangeMin) { + clearPageCallbacks([String(rangeMax)]); + } else { + clearPageCallbacks([String(rangeMin)]); + } + comboBox.dataProvider(params, callback); + } else if (rangeMax - rangeMin + 1 !== activePages.length) { + // Wasn't a sequential page index, clear the cache so combo-box will request for new pages + clearPageCallbacks(); + } else { + // The requested page was sequential, extend the requested range + const startIndex = params.pageSize * rangeMin; + const endIndex = params.pageSize * (rangeMax + 1); + + serverFacade.requestData(startIndex, endIndex, params); + } + } + }; + + comboBox.$connector.clear = tryCatchWrapper((start, length) => { + const firstPageToClear = Math.floor(start / comboBox.pageSize); + const numberOfPagesToClear = Math.ceil(length / comboBox.pageSize); + + for (let i = firstPageToClear; i < firstPageToClear + numberOfPagesToClear; i++) { + delete cache[i]; + } + }); + + comboBox.$connector.filter = tryCatchWrapper(function (item, filter) { + filter = filter ? filter.toString().toLowerCase() : ''; + return comboBox._getItemLabel(item, comboBox.itemLabelPath).toString().toLowerCase().indexOf(filter) > -1; + }); + + comboBox.$connector.set = tryCatchWrapper(function (index, items, filter) { + if (filter != serverFacade.getLastFilterSentToServer()) { + return; + } + + if (index % comboBox.pageSize != 0) { + throw 'Got new data to index ' + index + ' which is not aligned with the page size of ' + comboBox.pageSize; + } + + if (index === 0 && items.length === 0 && pageCallbacks[0]) { + // Makes sure that the dataProvider callback is called even when server + // returns empty data set (no items match the filter). + cache[0] = []; + return; + } + + const firstPageToSet = index / comboBox.pageSize; + const updatedPageCount = Math.ceil(items.length / comboBox.pageSize); + + for (let i = 0; i < updatedPageCount; i++) { + let page = firstPageToSet + i; + let slice = items.slice(i * comboBox.pageSize, (i + 1) * comboBox.pageSize); + + cache[page] = slice; + } + }); + + comboBox.$connector.updateData = tryCatchWrapper(function (items) { + const itemsMap = new Map(items.map((item) => [item.key, item])); + + comboBox.filteredItems = comboBox.filteredItems.map((item) => { + return itemsMap.get(item.key) || item; + }); + }); + + comboBox.$connector.updateSize = tryCatchWrapper(function (newSize) { + if (!comboBox._clientSideFilter) { + // FIXME: It may be that this size set is unnecessary, since when + // providing data to combobox via callback we may use data's size. + // However, if this size reflect the whole data size, including + // data not fetched yet into client side, and combobox expect it + // to be set as such, the at least, we don't need it in case the + // filter is clientSide only, since it'll increase the height of + // the popup at only at first user filter to this size, while the + // filtered items count are less. + comboBox.size = newSize; + } + }); + + comboBox.$connector.reset = tryCatchWrapper(function () { + clearPageCallbacks(); + cache = {}; + comboBox.clearCache(); + }); + + comboBox.$connector.confirm = tryCatchWrapper(function (id, filter) { + if (filter != serverFacade.getLastFilterSentToServer()) { + return; + } + + // We're done applying changes from this batch, resolve pending + // callbacks + let activePages = Object.getOwnPropertyNames(pageCallbacks); + for (let i = 0; i < activePages.length; i++) { + let page = activePages[i]; + + if (cache[page]) { + commitPage(page, pageCallbacks[page]); + } + } + + // Let server know we're done + comboBox.$server.confirmUpdate(id); + }); + + const commitPage = tryCatchWrapper(function (page, callback) { + let data = cache[page]; + + if (comboBox._clientSideFilter) { + performClientSideFilter(data, comboBox.filter, callback); + } else { + // Remove the data if server-side filtering, but keep it for client-side + // filtering + delete cache[page]; + + // FIXME: It may be that we ought to provide data.length instead of + // comboBox.size and remove updateSize function. + callback(data, comboBox.size); + } + }); + + // Perform filter on client side (here) using the items from specified page + // and submitting the filtered items to specified callback. + // The filter used is the one from combobox, not the lastFilter stored since + // that may not reflect user's input. + const performClientSideFilter = tryCatchWrapper(function (page, filter, callback) { + let filteredItems = page; + + if (filter) { + filteredItems = page.filter((item) => comboBox.$connector.filter(item, filter)); + } + + callback(filteredItems, filteredItems.length); + }); + + // Prevent setting the custom value as the 'value'-prop automatically + comboBox.addEventListener( + 'custom-value-set', + tryCatchWrapper((e) => e.preventDefault()) + ); + })(comboBox) + }; +})(); + +window.Vaadin.ComboBoxPlaceholder = ComboBoxPlaceholder; diff --git a/frontend/generated/jar-resources/confirmDialogConnector.js b/frontend/generated/jar-resources/confirmDialogConnector.js new file mode 100644 index 0000000..98fea91 --- /dev/null +++ b/frontend/generated/jar-resources/confirmDialogConnector.js @@ -0,0 +1,40 @@ +(function () { + function copyClassName(dialog) { + const overlay = dialog._overlayElement; + if (overlay) { + overlay.className = dialog.className; + } + } + + const observer = new MutationObserver((records) => { + records.forEach((mutation) => { + if (mutation.type === 'attributes' && mutation.attributeName === 'class') { + copyClassName(mutation.target); + } + }); + }); + + window.Vaadin.Flow.confirmDialogConnector = { + initLazy: function (dialog) { + if (dialog.$connector) { + return; + } + + dialog.$connector = {}; + + dialog.addEventListener('opened-changed', (e) => { + if (e.detail.value) { + copyClassName(dialog); + } + }); + + observer.observe(dialog, { + attributes: true, + attributeFilter: ['class'] + }); + + // Copy initial class + copyClassName(dialog); + } + }; +})(); diff --git a/frontend/generated/jar-resources/contextMenuConnector.js b/frontend/generated/jar-resources/contextMenuConnector.js new file mode 100644 index 0000000..edbd5a5 --- /dev/null +++ b/frontend/generated/jar-resources/contextMenuConnector.js @@ -0,0 +1,117 @@ +(function () { + function tryCatchWrapper(callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Context Menu'); + } + + function getContainer(appId, nodeId) { + try { + return window.Vaadin.Flow.clients[appId].getByNodeId(nodeId); + } catch (error) { + console.error('Could not get node %s from app %s', nodeId, appId); + console.error(error); + } + } + + /** + * Initializes the connector for a context menu element. + * + * @param {HTMLElement} contextMenu + * @param {string} appId + */ + function initLazy(contextMenu, appId) { + if (contextMenu.$connector) { + return; + } + + contextMenu.$connector = { + /** + * Generates and assigns the items to the context menu. + * + * @param {number} nodeId + */ + generateItems: tryCatchWrapper((nodeId) => { + const items = generateItemsTree(appId, nodeId); + + contextMenu.items = items; + }) + }; + } + + /** + * Generates an items tree compatible with the context-menu web component + * by traversing the given Flow DOM tree of context menu item nodes + * whose root node is identified by the `nodeId` argument. + * + * The app id is required to access the store of Flow DOM nodes. + * + * @param {string} appId + * @param {number} nodeId + */ + function generateItemsTree(appId, nodeId) { + const container = getContainer(appId, nodeId); + if (!container) { + return; + } + + return Array.from(container.children).map((child) => { + const item = { + component: child, + checked: child._checked, + theme: child.__theme + }; + if (child.localName == 'vaadin-context-menu-item' && child._containerNodeId) { + item.children = generateItemsTree(appId, child._containerNodeId); + } + child._item = item; + return item; + }); + } + + /** + * Sets the checked state for a context menu item. + * + * This method is supposed to be called when the context menu item is closed, + * so there is no need for triggering a re-render eagarly. + * + * @param {HTMLElement} component + * @param {boolean} checked + */ + function setChecked(component, checked) { + if (component._item) { + component._item.checked = checked; + } + } + + /** + * Sets the theme for a context menu item. + * + * This method is supposed to be called when the context menu item is closed, + * so there is no need for triggering a re-render eagarly. + * + * @param {HTMLElement} component + * @param {string | undefined | null} theme + */ + function setTheme(component, theme) { + if (component._item) { + component._item.theme = theme; + } + } + + window.Vaadin.Flow.contextMenuConnector = { + initLazy(...args) { + return tryCatchWrapper(initLazy)(...args); + }, + + generateItemsTree(...args) { + return tryCatchWrapper(generateItemsTree)(...args); + }, + + setChecked(...args) { + return tryCatchWrapper(setChecked)(...args); + }, + + setTheme(...args) { + return tryCatchWrapper(setTheme)(...args); + } + }; +})(); diff --git a/frontend/generated/jar-resources/contextMenuTargetConnector.js b/frontend/generated/jar-resources/contextMenuTargetConnector.js new file mode 100644 index 0000000..9e2b3bb --- /dev/null +++ b/frontend/generated/jar-resources/contextMenuTargetConnector.js @@ -0,0 +1,70 @@ +import * as Gestures from '@vaadin/component-base/src/gestures.js'; + +(function () { + function tryCatchWrapper(callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Context Menu Target'); + } + + function init(target) { + if (target.$contextMenuTargetConnector) { + return; + } + + target.$contextMenuTargetConnector = { + openOnHandler: tryCatchWrapper(function (e) { + e.preventDefault(); + e.stopPropagation(); + this.$contextMenuTargetConnector.openEvent = e; + let detail = {}; + if (target.getContextMenuBeforeOpenDetail) { + detail = target.getContextMenuBeforeOpenDetail(e); + } + target.dispatchEvent( + new CustomEvent('vaadin-context-menu-before-open', { + detail: detail + }) + ); + }), + + updateOpenOn: tryCatchWrapper(function (eventType) { + this.removeListener(); + this.openOnEventType = eventType; + + customElements.whenDefined('vaadin-context-menu').then( + tryCatchWrapper(() => { + if (Gestures.gestures[eventType]) { + Gestures.addListener(target, eventType, this.openOnHandler); + } else { + target.addEventListener(eventType, this.openOnHandler); + } + }) + ); + }), + + removeListener: tryCatchWrapper(function () { + if (this.openOnEventType) { + if (Gestures.gestures[this.openOnEventType]) { + Gestures.removeListener(target, this.openOnEventType, this.openOnHandler); + } else { + target.removeEventListener(this.openOnEventType, this.openOnHandler); + } + } + }), + + openMenu: tryCatchWrapper(function (contextMenu) { + contextMenu.open(this.openEvent); + }), + + removeConnector: tryCatchWrapper(function () { + this.removeListener(); + target.$contextMenuTargetConnector = undefined; + }) + }; + } + + window.Vaadin.Flow.contextMenuTargetConnector = { + init(...args) { + return tryCatchWrapper(init)(...args); + } + }; +})(); diff --git a/frontend/generated/jar-resources/copy-to-clipboard.js b/frontend/generated/jar-resources/copy-to-clipboard.js new file mode 100644 index 0000000..475842a --- /dev/null +++ b/frontend/generated/jar-resources/copy-to-clipboard.js @@ -0,0 +1,150 @@ +"use strict"; + +var deselectCurrent = function () { + var selection = document.getSelection(); + if (!selection.rangeCount) { + return function () {}; + } + var active = document.activeElement; + + var ranges = []; + for (var i = 0; i < selection.rangeCount; i++) { + ranges.push(selection.getRangeAt(i)); + } + + switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML + case 'INPUT': + case 'TEXTAREA': + active.blur(); + break; + + default: + active = null; + break; + } + + selection.removeAllRanges(); + return function () { + selection.type === 'Caret' && + selection.removeAllRanges(); + + if (!selection.rangeCount) { + ranges.forEach(function(range) { + selection.addRange(range); + }); + } + + active && + active.focus(); + }; +}; + + +var clipboardToIE11Formatting = { + "text/plain": "Text", + "text/html": "Url", + "default": "Text" +} + +var defaultMessage = "Copy to clipboard: #{key}, Enter"; + +function format(message) { + var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C"; + return message.replace(/#{\s*key\s*}/g, copyKey); +} + +export function copy(text, options) { + var debug, + message, + reselectPrevious, + range, + selection, + mark, + success = false; + if (!options) { + options = {}; + } + debug = options.debug || false; + try { + reselectPrevious = deselectCurrent(); + + range = document.createRange(); + selection = document.getSelection(); + + mark = document.createElement("span"); + mark.textContent = text; + // reset user styles for span element + mark.style.all = "unset"; + // prevents scrolling to the end of the page + mark.style.position = "fixed"; + mark.style.top = 0; + mark.style.clip = "rect(0, 0, 0, 0)"; + // used to preserve spaces and line breaks + mark.style.whiteSpace = "pre"; + // do not inherit user-select (it may be `none`) + mark.style.webkitUserSelect = "text"; + mark.style.MozUserSelect = "text"; + mark.style.msUserSelect = "text"; + mark.style.userSelect = "text"; + mark.addEventListener("copy", function(e) { + e.stopPropagation(); + if (options.format) { + e.preventDefault(); + if (typeof e.clipboardData === "undefined") { // IE 11 + debug && console.warn("unable to use e.clipboardData"); + debug && console.warn("trying IE specific stuff"); + window.clipboardData.clearData(); + var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"] + window.clipboardData.setData(format, text); + } else { // all other browsers + e.clipboardData.clearData(); + e.clipboardData.setData(options.format, text); + } + } + if (options.onCopy) { + e.preventDefault(); + options.onCopy(e.clipboardData); + } + }); + + document.body.appendChild(mark); + + range.selectNodeContents(mark); + selection.addRange(range); + + var successful = document.execCommand("copy"); + if (!successful) { + throw new Error("copy command was unsuccessful"); + } + success = true; + } catch (err) { + debug && console.error("unable to copy using execCommand: ", err); + debug && console.warn("trying IE specific stuff"); + try { + window.clipboardData.setData(options.format || "text", text); + options.onCopy && options.onCopy(window.clipboardData); + success = true; + } catch (err) { + debug && console.error("unable to copy using clipboardData: ", err); + debug && console.error("falling back to prompt"); + message = format("message" in options ? options.message : defaultMessage); + window.prompt(message, text); + } + } finally { + if (selection) { + if (typeof selection.removeRange == "function") { + selection.removeRange(range); + } else { + selection.removeAllRanges(); + } + } + + if (mark) { + document.body.removeChild(mark); + } + reselectPrevious(); + } + + return success; +} + diff --git a/frontend/generated/jar-resources/datepickerConnector.js b/frontend/generated/jar-resources/datepickerConnector.js new file mode 100644 index 0000000..517d5ac --- /dev/null +++ b/frontend/generated/jar-resources/datepickerConnector.js @@ -0,0 +1,159 @@ +import dateFnsFormat from 'date-fns/format'; +import dateFnsParse from 'date-fns/parse'; +import dateFnsIsValid from 'date-fns/isValid'; +import { extractDateParts, parseDate as _parseDate } from '@vaadin/date-picker/src/vaadin-date-picker-helper.js'; + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Date Picker'); + }; + + window.Vaadin.Flow.datepickerConnector = { + initLazy: (datepicker) => + tryCatchWrapper(function (datepicker) { + // Check whether the connector was already initialized for the datepicker + if (datepicker.$connector) { + return; + } + + datepicker.$connector = {}; + + const createLocaleBasedDateFormat = function (locale) { + try { + // Check whether the locale is supported or not + new Date().toLocaleDateString(locale); + } catch (e) { + console.warn('The locale is not supported, using default locale setting(en-US).'); + return 'M/d/yyyy'; + } + + // format test date and convert to date-fns pattern + const testDate = new Date(Date.UTC(1234, 4, 6)); + let pattern = testDate.toLocaleDateString(locale, { timeZone: 'UTC' }); + pattern = pattern + // escape date-fns pattern letters by enclosing them in single quotes + .replace(/([a-zA-Z]+)/g, "'$1'") + // insert date placeholder + .replace('06', 'dd') + .replace('6', 'd') + // insert month placeholder + .replace('05', 'MM') + .replace('5', 'M') + // insert year placeholder + .replace('1234', 'yyyy'); + const isValidPattern = pattern.includes('d') && pattern.includes('M') && pattern.includes('y'); + if (!isValidPattern) { + console.warn('The locale is not supported, using default locale setting(en-US).'); + return 'M/d/yyyy'; + } + + return pattern; + }; + + const createFormatterAndParser = tryCatchWrapper(function (formats) { + if (!formats || formats.length === 0) { + throw new Error('Array of custom date formats is null or empty'); + } + + function getShortYearFormat(format) { + if (format.includes('yyyy') && !format.includes('yyyyy')) { + return format.replace('yyyy', 'yy'); + } + if (format.includes('YYYY') && !format.includes('YYYYY')) { + return format.replace('YYYY', 'YY'); + } + return undefined; + } + + function isShortYearFormat(format) { + if (format.includes('y')) { + return !format.includes('yyy'); + } + if (format.includes('Y')) { + return !format.includes('YYY'); + } + return false; + } + + function formatDate(dateParts) { + const format = formats[0]; + const date = _parseDate(`${dateParts.year}-${dateParts.month + 1}-${dateParts.day}`); + + return dateFnsFormat(date, format); + } + + function parseDate(dateString) { + const referenceDate = _getReferenceDate(); + for (let format of formats) { + // We first try to match the date with the shorter version. + const shortYearFormat = getShortYearFormat(format); + if (shortYearFormat) { + const shortYearFormatDate = dateFnsParse(dateString, shortYearFormat, referenceDate); + if (dateFnsIsValid(shortYearFormatDate)) { + let yearValue = shortYearFormatDate.getFullYear(); + // The last parsed year check handles the case where a four-digit year is parsed, then formatted + // as a two-digit year, and then parsed again. In this case we want to keep the century of the + // originally parsed year, instead of using the century of the reference date. + if ( + datepicker.$connector._lastParsedYear && + yearValue === datepicker.$connector._lastParsedYear % 100 + ) { + yearValue = datepicker.$connector._lastParsedYear; + } + return { + day: shortYearFormatDate.getDate(), + month: shortYearFormatDate.getMonth(), + year: yearValue + }; + } + } + const date = dateFnsParse(dateString, format, referenceDate); + + if (dateFnsIsValid(date)) { + let yearValue = date.getFullYear(); + if ( + datepicker.$connector._lastParsedYear && + yearValue % 100 === datepicker.$connector._lastParsedYear % 100 && + isShortYearFormat(format) + ) { + yearValue = datepicker.$connector._lastParsedYear; + } else { + datepicker.$connector._lastParsedYear = yearValue; + } + return { + day: date.getDate(), + month: date.getMonth(), + year: yearValue + }; + } + } + datepicker.$connector._lastParsedYear = undefined; + return false; + } + + return { + formatDate: formatDate, + parseDate: parseDate + }; + }); + + function _getReferenceDate() { + const { referenceDate } = datepicker.i18n; + return referenceDate ? new Date(referenceDate.year, referenceDate.month - 1, referenceDate.day) : new Date(); + } + + datepicker.$connector.updateI18n = tryCatchWrapper(function (locale, i18n) { + // Either use custom formats specified in I18N, or create format from locale + const hasCustomFormats = i18n && i18n.dateFormats && i18n.dateFormats.length > 0; + if (i18n && i18n.referenceDate) { + i18n.referenceDate = extractDateParts(new Date(i18n.referenceDate)); + } + const usedFormats = hasCustomFormats ? i18n.dateFormats : [createLocaleBasedDateFormat(locale)]; + const formatterAndParser = createFormatterAndParser(usedFormats); + + // Merge current web component I18N settings with new I18N settings and the formatting and parsing functions + datepicker.i18n = Object.assign({}, datepicker.i18n, i18n, formatterAndParser); + }); + })(datepicker) + }; +})(); diff --git a/frontend/generated/jar-resources/dialogConnector.js b/frontend/generated/jar-resources/dialogConnector.js new file mode 100644 index 0000000..60a41ce --- /dev/null +++ b/frontend/generated/jar-resources/dialogConnector.js @@ -0,0 +1,38 @@ +(function () { + function copyClassName(dialog) { + const overlay = dialog.$.overlay; + if (overlay) { + overlay.className = dialog.className; + } + } + + const observer = new MutationObserver((records) => { + records.forEach((mutation) => { + if (mutation.type === 'attributes' && mutation.attributeName === 'class') { + copyClassName(mutation.target); + } + }); + }); + + window.Vaadin.Flow.dialogConnector = { + initLazy: function (dialog) { + if (dialog.$connector) { + return; + } + dialog.$connector = {}; + + dialog.addEventListener('opened-changed', (e) => { + if (e.detail.value) { + copyClassName(dialog); + } + }); + + observer.observe(dialog, { + attributes: true, + attributeFilter: ['class'] + }); + + copyClassName(dialog); + } + }; +})(); diff --git a/frontend/generated/jar-resources/dndConnector-es6.js b/frontend/generated/jar-resources/dndConnector-es6.js new file mode 100644 index 0000000..699684d --- /dev/null +++ b/frontend/generated/jar-resources/dndConnector-es6.js @@ -0,0 +1 @@ +import './dndConnector.js'; diff --git a/frontend/generated/jar-resources/dndConnector.js b/frontend/generated/jar-resources/dndConnector.js new file mode 100644 index 0000000..13170ec --- /dev/null +++ b/frontend/generated/jar-resources/dndConnector.js @@ -0,0 +1,110 @@ +window.Vaadin = window.Vaadin || {}; +window.Vaadin.Flow = window.Vaadin.Flow || {}; +window.Vaadin.Flow.dndConnector = { + __ondragenterListener: function (event) { + // TODO filter by data type + // TODO prevent dropping on itself (by default) + const effect = event.currentTarget['__dropEffect']; + if (!event.currentTarget.hasAttribute('disabled')) { + if (effect) { + event.dataTransfer.dropEffect = effect; + } + + if (effect && effect !== 'none') { + /* #7108: if drag moves on top of drop target's children, first another ondragenter event + * is fired and then a ondragleave event. This happens again once the drag + * moves on top of another children, or back on top of the drop target element. + * Thus need to "cancel" the following ondragleave, to not remove class name. + * Drop event will happen even when dropped to a child element. */ + if (event.currentTarget.classList.contains('v-drag-over-target')) { + event.currentTarget['__skip-leave'] = true; + } else { + event.currentTarget.classList.add('v-drag-over-target'); + } + // enables browser specific pseudo classes (at least FF) + event.preventDefault(); + event.stopPropagation(); // don't let parents know + } + } + }, + + __ondragoverListener: function (event) { + // TODO filter by data type + // TODO filter by effectAllowed != dropEffect due to Safari & IE11 ? + if (!event.currentTarget.hasAttribute('disabled')) { + const effect = event.currentTarget['__dropEffect']; + if (effect) { + event.dataTransfer.dropEffect = effect; + } + // allows the drop && don't let parents know + event.preventDefault(); + event.stopPropagation(); + } + }, + + __ondragleaveListener: function (event) { + if (event.currentTarget['__skip-leave']) { + event.currentTarget['__skip-leave'] = false; + } else { + event.currentTarget.classList.remove('v-drag-over-target'); + } + // #7109 need to stop or any parent drop target might not get highlighted, + // as ondragenter for it is fired before the child gets dragleave. + event.stopPropagation(); + }, + + __ondropListener: function (event) { + const effect = event.currentTarget['__dropEffect']; + if (effect) { + event.dataTransfer.dropEffect = effect; + } + event.currentTarget.classList.remove('v-drag-over-target'); + // prevent browser handling && don't let parents know + event.preventDefault(); + event.stopPropagation(); + }, + + updateDropTarget: function (element) { + if (element['__active']) { + element.addEventListener('dragenter', this.__ondragenterListener, false); + element.addEventListener('dragover', this.__ondragoverListener, false); + element.addEventListener('dragleave', this.__ondragleaveListener, false); + element.addEventListener('drop', this.__ondropListener, false); + } else { + element.removeEventListener('dragenter', this.__ondragenterListener, false); + element.removeEventListener('dragover', this.__ondragoverListener, false); + element.removeEventListener('dragleave', this.__ondragleaveListener, false); + element.removeEventListener('drop', this.__ondropListener, false); + element.classList.remove('v-drag-over-target'); + } + }, + + /** DRAG SOURCE METHODS: */ + + __dragstartListener: function (event) { + event.stopPropagation(); + event.dataTransfer.setData('text/plain', ''); + if (event.currentTarget.hasAttribute('disabled')) { + event.preventDefault(); + } else { + if (event.currentTarget['__effectAllowed']) { + event.dataTransfer.effectAllowed = event.currentTarget['__effectAllowed']; + } + event.currentTarget.classList.add('v-dragged'); + } + }, + + __dragendListener: function (event) { + event.currentTarget.classList.remove('v-dragged'); + }, + + updateDragSource: function (element) { + if (element['draggable']) { + element.addEventListener('dragstart', this.__dragstartListener, false); + element.addEventListener('dragend', this.__dragendListener, false); + } else { + element.removeEventListener('dragstart', this.__dragstartListener, false); + element.removeEventListener('dragend', this.__dragendListener, false); + } + } +}; diff --git a/frontend/generated/jar-resources/flow-component-renderer.js b/frontend/generated/jar-resources/flow-component-renderer.js new file mode 100644 index 0000000..0f6ad78 --- /dev/null +++ b/frontend/generated/jar-resources/flow-component-renderer.js @@ -0,0 +1,155 @@ +import '@polymer/polymer/lib/elements/dom-if.js'; +import { html } from '@polymer/polymer/lib/utils/html-tag.js'; +import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js'; +import { idlePeriod } from '@polymer/polymer/lib/utils/async.js'; +import { PolymerElement } from '@polymer/polymer/polymer-element.js'; + +class FlowComponentRenderer extends PolymerElement { + static get template() { + return html` + + + `; + } + + static get is() { + return 'flow-component-renderer'; + } + static get properties() { + return { + nodeid: Number, + appid: String, + }; + } + static get observers() { + return ['_attachRenderedComponentIfAble(appid, nodeid)']; + } + + ready() { + super.ready(); + this.addEventListener('click', function (event) { + if ( + this.firstChild && + typeof this.firstChild.click === 'function' && + event.target === this + ) { + event.stopPropagation(); + this.firstChild.click(); + } + }); + this.addEventListener('animationend', this._onAnimationEnd); + } + + _asyncAttachRenderedComponentIfAble() { + this._debouncer = Debouncer.debounce(this._debouncer, idlePeriod, () => + this._attachRenderedComponentIfAble() + ); + } + + _attachRenderedComponentIfAble() { + if (!this.nodeid || !this.appid) { + return; + } + const renderedComponent = this._getRenderedComponent(); + if (this.firstChild) { + if (!renderedComponent) { + this._asyncAttachRenderedComponentIfAble(); + } else if (this.firstChild !== renderedComponent) { + this.replaceChild(renderedComponent, this.firstChild); + this._defineFocusTarget(); + this.onComponentRendered(); + } else { + this._defineFocusTarget(); + this.onComponentRendered(); + } + } else { + if (renderedComponent) { + this.appendChild(renderedComponent); + this._defineFocusTarget(); + this.onComponentRendered(); + } else { + this._asyncAttachRenderedComponentIfAble(); + } + } + } + + _getRenderedComponent() { + try { + return window.Vaadin.Flow.clients[this.appid].getByNodeId(this.nodeid); + } catch (error) { + console.error( + 'Could not get node %s from app %s', + this.nodeid, + this.appid + ); + console.error(error); + } + return null; + } + + onComponentRendered() { + // subclasses can override this method to execute custom logic on resize + } + + /* Setting the `focus-target` attribute to the first focusable descendant + starting from the firstChild necessary for the focus to be delegated + within the flow-component-renderer when used inside a vaadin-grid cell */ + _defineFocusTarget() { + var focusable = this._getFirstFocusableDescendant(this.firstChild); + if (focusable !== null) { + focusable.setAttribute('focus-target', 'true'); + } + } + + _getFirstFocusableDescendant(node) { + if (this._isFocusable(node)) { + return node; + } + if (node.hasAttribute && (node.hasAttribute('disabled') || node.hasAttribute('hidden'))) { + return null; + } + if (!node.children) { + return null; + } + for (var i = 0; i < node.children.length; i++) { + var focusable = this._getFirstFocusableDescendant(node.children[i]); + if (focusable !== null) { + return focusable; + } + } + return null; + } + + _isFocusable(node) { + if ( + node.hasAttribute && + typeof node.hasAttribute === 'function' && + (node.hasAttribute('disabled') || node.hasAttribute('hidden')) + ) { + return false; + } + + return node.tabIndex === 0; + } + + _onAnimationEnd(e) { + // ShadyCSS applies scoping suffixes to animation names + // To ensure that child is attached once element is unhidden + // for when it was filtered out from, eg, ComboBox + // https://github.com/vaadin/vaadin-flow-components/issues/437 + if (e.animationName.indexOf('flow-component-renderer-appear') === 0) { + this._attachRenderedComponentIfAble(); + } + } +} +window.customElements.define(FlowComponentRenderer.is, FlowComponentRenderer); diff --git a/frontend/generated/jar-resources/gridConnector.js b/frontend/generated/jar-resources/gridConnector.js new file mode 100644 index 0000000..5c67b64 --- /dev/null +++ b/frontend/generated/jar-resources/gridConnector.js @@ -0,0 +1,1185 @@ +import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js'; +import { timeOut, animationFrame } from '@polymer/polymer/lib/utils/async.js'; +import { Grid } from '@vaadin/grid/src/vaadin-grid.js'; +import { ItemCache } from '@vaadin/grid/src/vaadin-grid-data-provider-mixin.js'; +import { isFocusable } from '@vaadin/grid/src/vaadin-grid-active-item-mixin.js'; + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Grid'); + }; + + let isItemCacheInitialized = false; + + window.Vaadin.Flow.gridConnector = { + initLazy: (grid) => + tryCatchWrapper(function (grid) { + // Check whether the connector was already initialized for the grid + if (grid.$connector) { + return; + } + + // Make sure ItemCache patching is done only once, but delay it for when + // a server grid is initialized + if (!isItemCacheInitialized) { + isItemCacheInitialized = true; + // Storing original implementation of the method to be used for client + // side only grids + ItemCache.prototype.ensureSubCacheForScaledIndexOriginal = ItemCache.prototype.ensureSubCacheForScaledIndex; + ItemCache.prototype.ensureSubCacheForScaledIndex = tryCatchWrapper(function (scaledIndex) { + if (!this.grid.$connector) { + this.ensureSubCacheForScaledIndexOriginal(scaledIndex); + return; + } + + if (!this.itemCaches[scaledIndex]) { + this.grid.$connector.beforeEnsureSubCacheForScaledIndex(this, scaledIndex); + } + }); + + ItemCache.prototype.isLoadingOriginal = ItemCache.prototype.isLoading; + ItemCache.prototype.isLoading = tryCatchWrapper(function () { + if (!this.grid.$connector) { + return this.isLoadingOriginal(); + } + + return Boolean( + this.grid.$connector.hasEnsureSubCacheQueue() || + Object.keys(this.pendingRequests).length || + Object.keys(this.itemCaches).filter((index) => { + return this.itemCaches[index].isLoading(); + })[0] + ); + }); + + ItemCache.prototype.doEnsureSubCacheForScaledIndex = tryCatchWrapper(function (scaledIndex) { + if (!this.itemCaches[scaledIndex]) { + const subCache = new ItemCache.prototype.constructor(this.grid, this, this.items[scaledIndex]); + subCache.itemkeyCaches = {}; + if (!this.itemkeyCaches) { + this.itemkeyCaches = {}; + } + this.itemCaches[scaledIndex] = subCache; + this.itemkeyCaches[this.grid.getItemId(subCache.parentItem)] = subCache; + this.grid._loadPage(0, subCache); + } + }); + + ItemCache.prototype.getCacheAndIndexByKey = tryCatchWrapper(function (key) { + for (let index in this.items) { + if (this.grid.getItemId(this.items[index]) === key) { + return { cache: this, scaledIndex: index }; + } + } + const keys = Object.keys(this.itemkeyCaches); + for (let i = 0; i < keys.length; i++) { + const expandedKey = keys[i]; + const subCache = this.itemkeyCaches[expandedKey]; + let cacheAndIndex = subCache.getCacheAndIndexByKey(key); + if (cacheAndIndex) { + return cacheAndIndex; + } + } + return undefined; + }); + + ItemCache.prototype.getLevel = tryCatchWrapper(function () { + let cache = this; + let level = 0; + while (cache.parentCache) { + cache = cache.parentCache; + level++; + } + return level; + }); + } + + const rootPageCallbacks = {}; + const treePageCallbacks = {}; + const cache = {}; + + /* parentRequestDelay - optimizes parent requests by batching several requests + * into one request. Delay in milliseconds. Disable by setting to 0. + * parentRequestBatchMaxSize - maximum size of the batch. + */ + const parentRequestDelay = 50; + const parentRequestBatchMaxSize = 20; + + let parentRequestQueue = []; + let parentRequestDebouncer; + let ensureSubCacheQueue = []; + let ensureSubCacheDebouncer; + + const rootRequestDelay = 150; + let rootRequestDebouncer; + + let lastRequestedRanges = {}; + const root = 'null'; + lastRequestedRanges[root] = [0, 0]; + + const validSelectionModes = ['SINGLE', 'NONE', 'MULTI']; + let selectedKeys = {}; + let selectionMode = 'SINGLE'; + + let sorterDirectionsSetFromServer = false; + + grid.size = 0; // To avoid NaN here and there before we get proper data + grid.itemIdPath = 'key'; + + grid.$connector = {}; + + grid.$connector.hasEnsureSubCacheQueue = tryCatchWrapper(() => ensureSubCacheQueue.length > 0); + + grid.$connector.hasParentRequestQueue = tryCatchWrapper(() => parentRequestQueue.length > 0); + + grid.$connector.hasRootRequestQueue = tryCatchWrapper(() => { + return Object.keys(rootPageCallbacks).length > 0 || (rootRequestDebouncer && rootRequestDebouncer.isActive()); + }); + + grid.$connector.beforeEnsureSubCacheForScaledIndex = tryCatchWrapper(function (targetCache, scaledIndex) { + // add call to queue + ensureSubCacheQueue.push({ + cache: targetCache, + scaledIndex: scaledIndex, + itemkey: grid.getItemId(targetCache.items[scaledIndex]), + level: targetCache.getLevel() + }); + + ensureSubCacheDebouncer = Debouncer.debounce(ensureSubCacheDebouncer, animationFrame, () => { + while (ensureSubCacheQueue.length) { + grid.$connector.flushEnsureSubCache(); + } + }); + }); + + grid.$connector.doSelection = tryCatchWrapper(function (items, userOriginated) { + if (selectionMode === 'NONE' || !items.length || (userOriginated && grid.hasAttribute('disabled'))) { + return; + } + if (selectionMode === 'SINGLE') { + grid.selectedItems = []; + selectedKeys = {}; + } + + // For single selection mode, "deselect all" selects a single item `null`, + // which should not end up in the selected items + const sanitizedItems = items.filter((item) => item !== null); + grid.selectedItems = grid.selectedItems.concat(sanitizedItems); + + items.forEach((item) => { + if (item) { + selectedKeys[item.key] = item; + if (userOriginated) { + item.selected = true; + grid.$server.select(item.key); + } + } + const isSelectedItemDifferentOrNull = !grid.activeItem || !item || item.key != grid.activeItem.key; + if (!userOriginated && selectionMode === 'SINGLE' && isSelectedItemDifferentOrNull) { + grid.activeItem = item; + } + }); + }); + + grid.$connector.doDeselection = tryCatchWrapper(function (items, userOriginated) { + if (selectionMode === 'NONE' || !items.length || (userOriginated && grid.hasAttribute('disabled'))) { + return; + } + + const updatedSelectedItems = grid.selectedItems.slice(); + while (items.length) { + const itemToDeselect = items.shift(); + for (let i = 0; i < updatedSelectedItems.length; i++) { + const selectedItem = updatedSelectedItems[i]; + if (itemToDeselect && itemToDeselect.key === selectedItem.key) { + updatedSelectedItems.splice(i, 1); + break; + } + } + if (itemToDeselect) { + delete selectedKeys[itemToDeselect.key]; + if (userOriginated) { + delete itemToDeselect.selected; + grid.$server.deselect(itemToDeselect.key); + } + } + } + grid.selectedItems = updatedSelectedItems; + }); + + grid.__activeItemChanged = tryCatchWrapper(function (newVal, oldVal) { + if (selectionMode != 'SINGLE') { + return; + } + if (!newVal) { + if (oldVal && selectedKeys[oldVal.key]) { + if (grid.__deselectDisallowed) { + grid.activeItem = oldVal; + } else { + grid.$connector.doDeselection([oldVal], true); + } + } + } else if (!selectedKeys[newVal.key]) { + grid.$connector.doSelection([newVal], true); + } + }); + grid._createPropertyObserver('activeItem', '__activeItemChanged', true); + + grid.__activeItemChangedDetails = tryCatchWrapper(function (newVal, oldVal) { + if (grid.__disallowDetailsOnClick) { + return; + } + // when grid is attached, newVal is not set and oldVal is undefined + // do nothing + if (newVal == null && oldVal === undefined) { + return; + } + if (newVal && !newVal.detailsOpened) { + grid.$server.setDetailsVisible(newVal.key); + } else { + grid.$server.setDetailsVisible(null); + } + }); + grid._createPropertyObserver('activeItem', '__activeItemChangedDetails', true); + + grid.$connector._getPageIfSameLevel = tryCatchWrapper(function (parentKey, index, defaultPage) { + let cacheAndIndex = grid._cache.getCacheAndIndex(index); + let parentItem = cacheAndIndex.cache.parentItem; + let parentKeyOfIndex = parentItem ? grid.getItemId(parentItem) : root; + if (parentKey !== parentKeyOfIndex) { + return defaultPage; + } else { + return grid._getPageForIndex(cacheAndIndex.scaledIndex); + } + }); + + grid.$connector.getCacheByKey = tryCatchWrapper(function (key) { + let cacheAndIndex = grid._cache.getCacheAndIndexByKey(key); + if (cacheAndIndex) { + return cacheAndIndex.cache; + } + return undefined; + }); + + grid.$connector.flushEnsureSubCache = tryCatchWrapper(function () { + let pendingFetch = ensureSubCacheQueue.splice(0, 1)[0]; + let itemkey = pendingFetch.itemkey; + + const visibleRows = grid._getVisibleRows(); + let start = visibleRows[0].index; + let end = visibleRows[visibleRows.length - 1].index; + + let buffer = end - start; + let firstNeededIndex = Math.max(0, start - buffer); + let lastNeededIndex = Math.min(end + buffer, grid._effectiveSize); + + // only fetch if given item is still in visible range + for (let index = firstNeededIndex; index <= lastNeededIndex; index++) { + let item = grid._cache.getItemForIndex(index); + + if (grid.getItemId(item) === itemkey) { + if (grid._isExpanded(item)) { + pendingFetch.cache.doEnsureSubCacheForScaledIndex(pendingFetch.scaledIndex); + return true; + } else { + break; + } + } + } + return false; + }); + + grid.$connector.flushParentRequests = tryCatchWrapper(function () { + let pendingFetches = parentRequestQueue.splice(0, parentRequestBatchMaxSize); + + if (pendingFetches.length) { + grid.$server.setParentRequestedRanges(pendingFetches); + return true; + } + return false; + }); + + grid.$connector.beforeParentRequest = tryCatchWrapper(function (firstIndex, size, parentKey) { + // add request in queue + parentRequestQueue.push({ + firstIndex: firstIndex, + size: size, + parentKey: parentKey + }); + + parentRequestDebouncer = Debouncer.debounce(parentRequestDebouncer, timeOut.after(parentRequestDelay), () => { + while (parentRequestQueue.length) { + grid.$connector.flushParentRequests(); + } + }); + }); + + grid.$connector.fetchPage = tryCatchWrapper(function (fetch, page, parentKey) { + // Determine what to fetch based on scroll position and not only + // what grid asked for + + // The buffer size could be multiplied by some constant defined by the user, + // if he needs to reduce the number of items sent to the Grid to improve performance + // or to increase it to make Grid smoother when scrolling + const visibleRows = grid._getVisibleRows(); + let start = visibleRows.length > 0 ? visibleRows[0].index : 0; + let end = visibleRows.length > 0 ? visibleRows[visibleRows.length - 1].index : 0; + let buffer = end - start; + + let firstNeededIndex = Math.max(0, start - buffer); + let lastNeededIndex = Math.min(end + buffer, grid._effectiveSize); + + let firstNeededPage = page; + let lastNeededPage = page; + for (let idx = firstNeededIndex; idx <= lastNeededIndex; idx++) { + firstNeededPage = Math.min( + firstNeededPage, + grid.$connector._getPageIfSameLevel(parentKey, idx, firstNeededPage) + ); + lastNeededPage = Math.max( + lastNeededPage, + grid.$connector._getPageIfSameLevel(parentKey, idx, lastNeededPage) + ); + } + + let firstPage = Math.max(0, firstNeededPage); + let lastPage = + parentKey !== root ? lastNeededPage : Math.min(lastNeededPage, Math.floor(grid.size / grid.pageSize)); + let lastRequestedRange = lastRequestedRanges[parentKey]; + if (!lastRequestedRange) { + lastRequestedRange = [-1, -1]; + } + if (lastRequestedRange[0] != firstPage || lastRequestedRange[1] != lastPage) { + lastRequestedRange = [firstPage, lastPage]; + lastRequestedRanges[parentKey] = lastRequestedRange; + let count = lastPage - firstPage + 1; + fetch(firstPage * grid.pageSize, count * grid.pageSize); + } + }); + + grid.dataProvider = tryCatchWrapper(function (params, callback) { + if (params.pageSize != grid.pageSize) { + throw 'Invalid pageSize'; + } + + let page = params.page; + + if (params.parentItem) { + let parentUniqueKey = grid.getItemId(params.parentItem); + if (!treePageCallbacks[parentUniqueKey]) { + treePageCallbacks[parentUniqueKey] = {}; + } + + let parentCache = grid.$connector.getCacheByKey(parentUniqueKey); + let itemCache = + parentCache && parentCache.itemkeyCaches ? parentCache.itemkeyCaches[parentUniqueKey] : undefined; + if (cache[parentUniqueKey] && cache[parentUniqueKey][page] && itemCache) { + // workaround: sometimes grid-element gives page index that overflows + page = Math.min(page, Math.floor(cache[parentUniqueKey].size / grid.pageSize)); + + // Ensure grid isn't in loading state when the callback executes + ensureSubCacheQueue = []; + callback(cache[parentUniqueKey][page], cache[parentUniqueKey].size); + + // Flush after the callback to have the grid rows up-to-date + updateAllGridRowsInDomBasedOnCache(); + // Prevent sub-caches from being created (& data requests sent) for items + // that may no longer be visible + ensureSubCacheQueue = []; + // Eliminate flickering on eager fetch mode + grid.requestContentUpdate(); + } else { + treePageCallbacks[parentUniqueKey][page] = callback; + + grid.$connector.fetchPage( + (firstIndex, size) => grid.$connector.beforeParentRequest(firstIndex, size, params.parentItem.key), + page, + parentUniqueKey + ); + } + } else { + // workaround: sometimes grid-element gives page index that overflows + page = Math.min(page, Math.floor(grid.size / grid.pageSize)); + + if (cache[root] && cache[root][page]) { + callback(cache[root][page]); + } else { + rootPageCallbacks[page] = callback; + + rootRequestDebouncer = Debouncer.debounce( + rootRequestDebouncer, + timeOut.after(grid._hasData ? rootRequestDelay : 0), + () => { + grid.$connector.fetchPage( + (firstIndex, size) => grid.$server.setRequestedRange(firstIndex, size), + page, + root + ); + } + ); + } + } + }); + + const sorterChangeListener = tryCatchWrapper(function (_, oldValue) { + if (oldValue !== undefined && !sorterDirectionsSetFromServer) { + grid.$server.sortersChanged( + grid._sorters.map(function (sorter) { + return { + path: sorter.path, + direction: sorter.direction + }; + }) + ); + } + }); + + grid.$connector.setSorterDirections = tryCatchWrapper(function (directions) { + sorterDirectionsSetFromServer = true; + setTimeout( + tryCatchWrapper(() => { + try { + const sorters = Array.from(grid.querySelectorAll('vaadin-grid-sorter')); + + // Sorters for hidden columns are removed from DOM but stored in the web component. + // We need to ensure that all the sorters are reset when using `grid.sort(null)`. + grid._sorters.forEach((sorter) => { + if (!sorters.includes(sorter)) { + sorters.push(sorter); + } + }); + + sorters.forEach((sorter) => { + if (!directions.filter((d) => d.column === sorter.getAttribute('path'))[0]) { + sorter.direction = null; + } + }); + + // Apply directions in correct order, depending on configured multi-sort priority. + // For the default "prepend" mode, directions need to be applied in reverse, in + // order for the sort indicators to match the order on the server. For "append" + // just keep the order passed from the server. + if (grid.multiSortPriority !== 'append') { + directions = directions.reverse() + } + directions.forEach(({ column, direction }) => { + sorters.forEach((sorter) => { + if (sorter.getAttribute('path') === column && sorter.direction !== direction) { + sorter.direction = direction; + } + }); + }); + } finally { + sorterDirectionsSetFromServer = false; + } + }) + ); + }); + grid._createPropertyObserver('_previousSorters', sorterChangeListener); + + grid._updateItem = tryCatchWrapper(function (row, item) { + Grid.prototype._updateItem.call(grid, row, item); + + // There might be inactive component renderers on hidden rows that still refer to the + // same component instance as one of the renderers on a visible row. Making the + // inactive/hidden renderer attach the component might steal it from a visible/active one. + if (!row.hidden) { + // make sure that component renderers are updated + Array.from(row.children).forEach((cell) => { + if (cell._content && cell._content.__templateInstance && cell._content.__templateInstance.children) { + Array.from(cell._content.__templateInstance.children).forEach((content) => { + if (content._attachRenderedComponentIfAble) { + content._attachRenderedComponentIfAble(); + } + // In hierarchy column of tree grid, the component renderer is inside its content, + // this updates it renderer from innerContent + if (content.children) { + Array.from(content.children).forEach((innerContent) => { + if (innerContent._attachRenderedComponentIfAble) { + innerContent._attachRenderedComponentIfAble(); + } + }); + } + }); + } + }); + } + // since no row can be selected when selection mode is NONE + // if selectionMode is set to NONE, remove aria-selected attribute from the row + if (selectionMode === validSelectionModes[1]) { + // selectionMode === NONE + row.removeAttribute('aria-selected'); + Array.from(row.children).forEach((cell) => cell.removeAttribute('aria-selected')); + } + }); + + const itemExpandedChanged = tryCatchWrapper(function (item, expanded) { + // method available only for the TreeGrid server-side component + if (item == undefined || grid.$server.updateExpandedState == undefined) { + return; + } + let parentKey = grid.getItemId(item); + grid.$server.updateExpandedState(parentKey, expanded); + + if (!expanded) { + delete cache[parentKey]; + let parentCache = grid.$connector.getCacheByKey(parentKey); + if (parentCache && parentCache.itemkeyCaches && parentCache.itemkeyCaches[parentKey]) { + delete parentCache.itemkeyCaches[parentKey]; + } + if (parentCache && parentCache.itemkeyCaches) { + Object.keys(parentCache.itemCaches) + .filter((idx) => parentCache.items[idx].key === parentKey) + .forEach((idx) => delete parentCache.itemCaches[idx]); + } + delete lastRequestedRanges[parentKey]; + } + }); + + // Patch grid.expandItem and grid.collapseItem to have + // itemExpandedChanged run when either happens. + grid.expandItem = tryCatchWrapper(function (item) { + itemExpandedChanged(item, true); + Grid.prototype.expandItem.call(grid, item); + }); + + grid.collapseItem = tryCatchWrapper(function (item) { + itemExpandedChanged(item, false); + Grid.prototype.collapseItem.call(grid, item); + }); + + const itemsUpdated = function (items) { + if (!items || !Array.isArray(items)) { + throw 'Attempted to call itemsUpdated with an invalid value: ' + JSON.stringify(items); + } + let detailsOpenedItems = Array.from(grid.detailsOpenedItems); + let updatedSelectedItem = false; + for (let i = 0; i < items.length; ++i) { + const item = items[i]; + if (!item) { + continue; + } + if (item.detailsOpened) { + if (grid._getItemIndexInArray(item, detailsOpenedItems) < 0) { + detailsOpenedItems.push(item); + } + } else if (grid._getItemIndexInArray(item, detailsOpenedItems) >= 0) { + detailsOpenedItems.splice(grid._getItemIndexInArray(item, detailsOpenedItems), 1); + } + if (selectedKeys[item.key]) { + selectedKeys[item.key] = item; + item.selected = true; + updatedSelectedItem = true; + } + } + grid.detailsOpenedItems = detailsOpenedItems; + if (updatedSelectedItem) { + // IE 11 Object doesn't support method values + grid.selectedItems = Object.keys(selectedKeys).map(function (e) { + return selectedKeys[e]; + }); + } + }; + + /** + * Updates the cache for the given page for grid or tree-grid. + * + * @param page index of the page to update + * @param parentKey the key of the parent item for the page + * @returns an array of the updated items for the page, or undefined if no items were cached for the page + */ + const updateGridCache = function (page, parentKey) { + let items; + if ((parentKey || root) !== root) { + items = cache[parentKey][page]; + let parentCache = grid.$connector.getCacheByKey(parentKey); + if (parentCache && parentCache.itemkeyCaches) { + let _cache = parentCache.itemkeyCaches[parentKey]; + const callbacksForParentKey = treePageCallbacks[parentKey]; + const callback = callbacksForParentKey && callbacksForParentKey[page]; + _updateGridCache(page, items, callback, _cache); + } + } else { + items = cache[root][page]; + _updateGridCache(page, items, rootPageCallbacks[page], grid._cache); + } + return items; + }; + + const _updateGridCache = function (page, items, callback, levelcache) { + // Force update unless there's a callback waiting + if (!callback) { + let rangeStart = page * grid.pageSize; + let rangeEnd = rangeStart + grid.pageSize; + if (!items) { + if (levelcache && levelcache.items) { + for (let idx = rangeStart; idx < rangeEnd; idx++) { + delete levelcache.items[idx]; + } + } + } else { + if (levelcache && levelcache.items) { + for (let idx = rangeStart; idx < rangeEnd; idx++) { + if (levelcache.items[idx]) { + levelcache.items[idx] = items[idx - rangeStart]; + } + } + } + } + } + }; + + /** + * Updates all visible grid rows in DOM. + */ + const updateAllGridRowsInDomBasedOnCache = function () { + grid._cache.updateSize(); + grid._effectiveSize = grid._cache.effectiveSize; + grid.__updateVisibleRows(); + }; + + /** + * Update the given items in DOM if currently visible. + * + * @param array items the items to update in DOM + */ + const updateGridItemsInDomBasedOnCache = function (items) { + if (!items || !grid.$ || grid.$.items.childElementCount === 0) { + return; + } + + const itemKeys = items.map((item) => item.key); + const indexes = grid + ._getVisibleRows() + .filter((row) => row._item && itemKeys.includes(row._item.key)) + .map((row) => row.index); + if (indexes.length > 0) { + grid.__updateVisibleRows(indexes[0], indexes[indexes.length - 1]); + } + }; + + grid.$connector.set = tryCatchWrapper(function (index, items, parentKey) { + if (index % grid.pageSize != 0) { + throw 'Got new data to index ' + index + ' which is not aligned with the page size of ' + grid.pageSize; + } + let pkey = parentKey || root; + + const firstPage = index / grid.pageSize; + const updatedPageCount = Math.ceil(items.length / grid.pageSize); + + for (let i = 0; i < updatedPageCount; i++) { + let page = firstPage + i; + let slice = items.slice(i * grid.pageSize, (i + 1) * grid.pageSize); + if (!cache[pkey]) { + cache[pkey] = {}; + } + cache[pkey][page] = slice; + + grid.$connector.doSelection(slice.filter((item) => item.selected)); + grid.$connector.doDeselection( + slice.filter((item) => !item.selected && selectedKeys[item.key]) + ); + + const updatedItems = updateGridCache(page, pkey); + if (updatedItems) { + itemsUpdated(updatedItems); + updateGridItemsInDomBasedOnCache(updatedItems); + } + } + }); + + const itemToCacheLocation = function (item) { + let parent = item.parentUniqueKey || root; + if (cache[parent]) { + for (let page in cache[parent]) { + for (let index in cache[parent][page]) { + if (grid.getItemId(cache[parent][page][index]) === grid.getItemId(item)) { + return { page: page, index: index, parentKey: parent }; + } + } + } + } + return null; + }; + + /** + * Updates the given items for a hierarchical grid. + * + * @param updatedItems the updated items array + */ + grid.$connector.updateHierarchicalData = tryCatchWrapper(function (updatedItems) { + let pagesToUpdate = []; + // locate and update the items in cache + // find pages that need updating + for (let i = 0; i < updatedItems.length; i++) { + let cacheLocation = itemToCacheLocation(updatedItems[i]); + if (cacheLocation) { + cache[cacheLocation.parentKey][cacheLocation.page][cacheLocation.index] = updatedItems[i]; + let key = cacheLocation.parentKey + ':' + cacheLocation.page; + if (!pagesToUpdate[key]) { + pagesToUpdate[key] = { + parentKey: cacheLocation.parentKey, + page: cacheLocation.page + }; + } + } + } + // IE11 doesn't work with the transpiled version of the forEach. + let keys = Object.keys(pagesToUpdate); + for (let i = 0; i < keys.length; i++) { + let pageToUpdate = pagesToUpdate[keys[i]]; + const affectedUpdatedItems = updateGridCache(pageToUpdate.page, pageToUpdate.parentKey); + if (affectedUpdatedItems) { + itemsUpdated(affectedUpdatedItems); + updateGridItemsInDomBasedOnCache(affectedUpdatedItems); + } + } + }); + + /** + * Updates the given items for a non-hierarchical grid. + * + * @param updatedItems the updated items array + */ + grid.$connector.updateFlatData = tryCatchWrapper(function (updatedItems) { + // update (flat) caches + for (let i = 0; i < updatedItems.length; i++) { + let cacheLocation = itemToCacheLocation(updatedItems[i]); + if (cacheLocation) { + // update connector cache + cache[cacheLocation.parentKey][cacheLocation.page][cacheLocation.index] = updatedItems[i]; + + // update grid's cache + const index = parseInt(cacheLocation.page) * grid.pageSize + parseInt(cacheLocation.index); + if (grid._cache.items[index]) { + grid._cache.items[index] = updatedItems[i]; + } + } + } + itemsUpdated(updatedItems); + + updateGridItemsInDomBasedOnCache(updatedItems); + }); + + grid.$connector.clearExpanded = tryCatchWrapper(function () { + grid.expandedItems = []; + ensureSubCacheQueue = []; + parentRequestQueue = []; + }); + + grid.$connector.clear = tryCatchWrapper(function (index, length, parentKey) { + let pkey = parentKey || root; + if (!cache[pkey] || Object.keys(cache[pkey]).length === 0) { + return; + } + if (index % grid.pageSize != 0) { + throw ( + 'Got cleared data for index ' + index + ' which is not aligned with the page size of ' + grid.pageSize + ); + } + + let firstPage = Math.floor(index / grid.pageSize); + let updatedPageCount = Math.ceil(length / grid.pageSize); + + for (let i = 0; i < updatedPageCount; i++) { + let page = firstPage + i; + let items = cache[pkey][page]; + grid.$connector.doDeselection(items.filter((item) => selectedKeys[item.key])); + delete cache[pkey][page]; + const updatedItems = updateGridCache(page, parentKey); + if (updatedItems) { + itemsUpdated(updatedItems); + } + updateGridItemsInDomBasedOnCache(items); + } + let cacheToClear = grid._cache; + if (parentKey) { + const cacheAndIndex = grid._cache.getCacheAndIndexByKey(pkey); + cacheToClear = cacheAndIndex.cache.itemCaches[cacheAndIndex.scaledIndex]; + } + const endIndex = index + updatedPageCount * grid.pageSize; + for (let itemIndex = index; itemIndex < endIndex; itemIndex++) { + delete cacheToClear.items[itemIndex]; + const subcacheToClear = cacheToClear.itemCaches[itemIndex]; + delete cacheToClear.itemCaches[itemIndex]; + const itemKeyToRemove = subcacheToClear && subcacheToClear.parentItem.key; + if (itemKeyToRemove) { + delete cacheToClear.itemkeyCaches[itemKeyToRemove]; + } + } + grid._cache.updateSize(); + }); + + grid.$connector.reset = tryCatchWrapper(function () { + grid.size = 0; + deleteObjectContents(cache); + deleteObjectContents(grid._cache.items); + deleteObjectContents(lastRequestedRanges); + if (ensureSubCacheDebouncer) { + ensureSubCacheDebouncer.cancel(); + } + if (parentRequestDebouncer) { + parentRequestDebouncer.cancel(); + } + if (rootRequestDebouncer) { + rootRequestDebouncer.cancel(); + } + ensureSubCacheDebouncer = undefined; + parentRequestDebouncer = undefined; + ensureSubCacheQueue = []; + parentRequestQueue = []; + updateAllGridRowsInDomBasedOnCache(); + }); + + const deleteObjectContents = (obj) => Object.keys(obj).forEach((key) => delete obj[key]); + + grid.$connector.updateSize = (newSize) => (grid.size = newSize); + + grid.$connector.updateUniqueItemIdPath = (path) => (grid.itemIdPath = path); + + grid.$connector.expandItems = tryCatchWrapper(function (items) { + let newExpandedItems = Array.from(grid.expandedItems); + items.filter((item) => !grid._isExpanded(item)).forEach((item) => newExpandedItems.push(item)); + grid.expandedItems = newExpandedItems; + }); + + grid.$connector.collapseItems = tryCatchWrapper(function (items) { + let newExpandedItems = Array.from(grid.expandedItems); + items.forEach((item) => { + let index = grid._getItemIndexInArray(item, newExpandedItems); + if (index >= 0) { + newExpandedItems.splice(index, 1); + } + }); + grid.expandedItems = newExpandedItems; + items.forEach((item) => grid.$connector.removeFromQueue(item)); + }); + + grid.$connector.removeFromQueue = tryCatchWrapper(function (item) { + let itemId = grid.getItemId(item); + delete treePageCallbacks[itemId]; + grid.$connector.removeFromArray(ensureSubCacheQueue, (item) => item.itemkey === itemId); + grid.$connector.removeFromArray(parentRequestQueue, (item) => item.parentKey === itemId); + }); + + grid.$connector.removeFromArray = tryCatchWrapper(function (array, removeTest) { + if (array.length) { + for (let index = array.length - 1; index--; ) { + if (removeTest(array[index])) { + array.splice(index, 1); + } + } + } + }); + + grid.$connector.confirmParent = tryCatchWrapper(function (id, parentKey, levelSize) { + if (!cache[parentKey]) { + cache[parentKey] = {}; + } + cache[parentKey].size = levelSize; + if (levelSize === 0) { + cache[parentKey][0] = []; + } + + let outstandingRequests = Object.getOwnPropertyNames(treePageCallbacks[parentKey] || {}); + for (let i = 0; i < outstandingRequests.length; i++) { + let page = outstandingRequests[i]; + + let lastRequestedRange = lastRequestedRanges[parentKey] || [0, 0]; + + const callback = treePageCallbacks[parentKey][page]; + if ( + (cache[parentKey] && cache[parentKey][page]) || + page < lastRequestedRange[0] || + page > lastRequestedRange[1] + ) { + delete treePageCallbacks[parentKey][page]; + let items = cache[parentKey][page] || new Array(levelSize); + callback(items, levelSize); + } else if (callback && levelSize === 0) { + // The parent item has 0 child items => resolve the callback with an empty array + delete treePageCallbacks[parentKey][page]; + callback([], levelSize); + } + } + // Let server know we're done + grid.$server.confirmParentUpdate(id, parentKey); + + if (!grid.loading) { + grid.__updateVisibleRows(); + } + }); + + grid.$connector.confirm = tryCatchWrapper(function (id) { + // We're done applying changes from this batch, resolve outstanding + // callbacks + let outstandingRequests = Object.getOwnPropertyNames(rootPageCallbacks); + for (let i = 0; i < outstandingRequests.length; i++) { + let page = outstandingRequests[i]; + let lastRequestedRange = lastRequestedRanges[root] || [0, 0]; + + const lastAvailablePage = grid.size ? Math.ceil(grid.size / grid.pageSize) - 1 : 0; + // It's possible that the lastRequestedRange includes a page that's beyond lastAvailablePage if the grid's size got reduced during an ongoing data request + const lastRequestedRangeEnd = Math.min(lastRequestedRange[1], lastAvailablePage); + // Resolve if we have data or if we don't expect to get data + const callback = rootPageCallbacks[page]; + if ((cache[root] && cache[root][page]) || page < lastRequestedRange[0] || +page > lastRequestedRangeEnd) { + delete rootPageCallbacks[page]; + + if (cache[root][page]) { + // Cached data is available, resolve the callback + callback(cache[root][page]); + } else { + // No cached data, resolve the callback with an empty array + callback(new Array(grid.pageSize)); + // Request grid for content update + grid.requestContentUpdate(); + } + + // Makes sure to push all new rows before this stack execution is done so any timeout expiration called after will be applied on a fully updated grid + //Resolves https://github.com/vaadin/vaadin-grid-flow/issues/511 + if (grid._debounceIncreasePool) { + grid._debounceIncreasePool.flush(); + } + } else if (callback && grid.size === 0) { + // The grid has 0 items => resolve the callback with an empty array + delete rootPageCallbacks[page]; + callback([]); + } + } + + // Let server know we're done + grid.$server.confirmUpdate(id); + }); + + grid.$connector.ensureHierarchy = tryCatchWrapper(function () { + for (let parentKey in cache) { + if (parentKey !== root) { + delete cache[parentKey]; + } + } + deleteObjectContents(lastRequestedRanges); + + grid._cache.itemCaches = {}; + grid._cache.itemkeyCaches = {}; + + updateAllGridRowsInDomBasedOnCache(); + }); + + grid.$connector.setSelectionMode = tryCatchWrapper(function (mode) { + if ((typeof mode === 'string' || mode instanceof String) && validSelectionModes.indexOf(mode) >= 0) { + selectionMode = mode; + selectedKeys = {}; + grid.$connector.updateMultiSelectable(); + } else { + throw 'Attempted to set an invalid selection mode'; + } + }); + + /* + * Manage aria-multiselectable attribute depending on the selection mode. + * see more: https://github.com/vaadin/web-components/issues/1536 + * or: https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable + * For selection mode SINGLE, set the aria-multiselectable attribute to false + */ + grid.$connector.updateMultiSelectable = tryCatchWrapper(function () { + if (!grid.$) { + return; + } + + if (selectionMode === validSelectionModes[0]) { + grid.$.table.setAttribute('aria-multiselectable', false); + // For selection mode NONE, remove the aria-multiselectable attribute + } else if (selectionMode === validSelectionModes[1]) { + grid.$.table.removeAttribute('aria-multiselectable'); + // For selection mode MULTI, set aria-multiselectable to true + } else { + grid.$.table.setAttribute('aria-multiselectable', true); + } + }); + + // Have the multi-selectable state updated on attach + grid._createPropertyObserver('isAttached', () => grid.$connector.updateMultiSelectable()); + + // TODO: should be removed once https://github.com/vaadin/vaadin-grid/issues/1471 gets implemented + grid.$connector.setVerticalScrollingEnabled = tryCatchWrapper(function (enabled) { + // There are two scollable containers in grid so apply the changes for both + setVerticalScrollingEnabled(grid.$.table, enabled); + }); + + const setVerticalScrollingEnabled = function (scrollable, enabled) { + // Prevent Y axis scrolling with CSS. This will hide the vertical scrollbar. + scrollable.style.overflowY = enabled ? '' : 'hidden'; + // Clean up an existing listener + scrollable.removeEventListener('wheel', scrollable.__wheelListener); + // Add a wheel event listener with the horizontal scrolling prevention logic + !enabled && + scrollable.addEventListener( + 'wheel', + (scrollable.__wheelListener = tryCatchWrapper((e) => { + if (e.deltaX) { + // If there was some horizontal delta related to the wheel event, force the vertical + // delta to 0 and let grid process the wheel event normally + Object.defineProperty(e, 'deltaY', { value: 0 }); + } else { + // If there was verical delta only, skip the grid's wheel event processing to + // enable scrolling the page even if grid isn't scrolled to end + e.stopImmediatePropagation(); + } + })) + ); + }; + + grid.addEventListener( + 'vaadin-context-menu-before-open', + tryCatchWrapper(function (e) { + const { key, columnId } = e.detail; + grid.$server.updateContextMenuTargetItem(key, columnId); + }) + ); + + grid.getContextMenuBeforeOpenDetail = tryCatchWrapper(function (event) { + // For `contextmenu` events, we need to access the source event, + // when using open on click we just use the click event itself + const sourceEvent = event.detail.sourceEvent || event; + const eventContext = grid.getEventContext(sourceEvent); + const key = (eventContext.item && eventContext.item.key) || ''; + const columnId = (eventContext.column && eventContext.column.id) || ''; + return { key, columnId }; + }); + + grid.addEventListener( + 'click', + tryCatchWrapper((e) => _fireClickEvent(e, 'item-click')) + ); + grid.addEventListener( + 'dblclick', + tryCatchWrapper((e) => _fireClickEvent(e, 'item-double-click')) + ); + + grid.addEventListener( + 'column-resize', + tryCatchWrapper((e) => { + const cols = grid._getColumnsInOrder().filter((col) => !col.hidden); + + cols.forEach((col) => { + col.dispatchEvent(new CustomEvent('column-drag-resize')); + }); + + grid.dispatchEvent( + new CustomEvent('column-drag-resize', { + detail: { + resizedColumnKey: e.detail.resizedColumn._flowId + } + }) + ); + }) + ); + + grid.addEventListener( + 'column-reorder', + tryCatchWrapper((e) => { + const columns = grid._columnTree + .slice(0) + .pop() + .filter((c) => c._flowId) + .sort((b, a) => b._order - a._order) + .map((c) => c._flowId); + + grid.dispatchEvent( + new CustomEvent('column-reorder-all-columns', { + detail: { columns } + }) + ); + }) + ); + + grid.addEventListener( + 'cell-focus', + tryCatchWrapper((e) => { + const eventContext = grid.getEventContext(e); + const expectedSectionValues = ['header', 'body', 'footer']; + + if (expectedSectionValues.indexOf(eventContext.section) === -1) { + return; + } + + grid.dispatchEvent( + new CustomEvent('grid-cell-focus', { + detail: { + itemKey: eventContext.item ? eventContext.item.key : null, + + internalColumnId: eventContext.column ? eventContext.column._flowId : null, + + section: eventContext.section + } + }) + ); + }) + ); + + function _fireClickEvent(event, eventName) { + // Click event was handled by the component inside grid, do nothing. + if (event.defaultPrevented) { + return; + } + + const target = event.target; + const eventContext = grid.getEventContext(event); + const section = eventContext.section; + + if (isFocusable(target) || target instanceof HTMLLabelElement) { + return; + } + + if (eventContext.item && section !== 'details') { + event.itemKey = eventContext.item.key; + // if you have a details-renderer, getEventContext().column is undefined + if (eventContext.column) { + event.internalColumnId = eventContext.column._flowId; + } + grid.dispatchEvent(new CustomEvent(eventName, { detail: event })); + } + } + + grid.cellClassNameGenerator = tryCatchWrapper(function (column, rowData) { + const style = rowData.item.style; + if (!style) { + return; + } + return (style.row || '') + ' ' + ((column && style[column._flowId]) || ''); + }); + + grid.dropFilter = tryCatchWrapper((rowData) => !rowData.item.dropDisabled); + + grid.dragFilter = tryCatchWrapper((rowData) => !rowData.item.dragDisabled); + + grid.addEventListener( + 'grid-dragstart', + tryCatchWrapper((e) => { + if (grid._isSelected(e.detail.draggedItems[0])) { + // Dragging selected (possibly multiple) items + if (grid.__selectionDragData) { + Object.keys(grid.__selectionDragData).forEach((type) => { + e.detail.setDragData(type, grid.__selectionDragData[type]); + }); + } else { + (grid.__dragDataTypes || []).forEach((type) => { + e.detail.setDragData(type, e.detail.draggedItems.map((item) => item.dragData[type]).join('\n')); + }); + } + + if (grid.__selectionDraggedItemsCount > 1) { + e.detail.setDraggedItemsCount(grid.__selectionDraggedItemsCount); + } + } else { + // Dragging just one (non-selected) item + (grid.__dragDataTypes || []).forEach((type) => { + e.detail.setDragData(type, e.detail.draggedItems[0].dragData[type]); + }); + } + }) + ); + })(grid) + }; +})(); diff --git a/frontend/generated/jar-resources/index.d.ts b/frontend/generated/jar-resources/index.d.ts new file mode 100644 index 0000000..d4e6e0d --- /dev/null +++ b/frontend/generated/jar-resources/index.d.ts @@ -0,0 +1 @@ +export * from './Flow'; diff --git a/frontend/generated/jar-resources/index.js b/frontend/generated/jar-resources/index.js new file mode 100644 index 0000000..6c14827 --- /dev/null +++ b/frontend/generated/jar-resources/index.js @@ -0,0 +1,2 @@ +export * from './Flow'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/frontend/generated/jar-resources/index.js.map b/frontend/generated/jar-resources/index.js.map new file mode 100644 index 0000000..c662ab4 --- /dev/null +++ b/frontend/generated/jar-resources/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/main/frontend/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC","sourcesContent":["export * from './Flow';\n"]} \ No newline at end of file diff --git a/frontend/generated/jar-resources/ironListConnector.js b/frontend/generated/jar-resources/ironListConnector.js new file mode 100644 index 0000000..82d297f --- /dev/null +++ b/frontend/generated/jar-resources/ironListConnector.js @@ -0,0 +1,166 @@ +import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js'; +import { timeOut } from '@polymer/polymer/lib/utils/async.js'; + +window.Vaadin.Flow.ironListConnector = { + initLazy: function (list) { + // Check whether the connector was already initialized for the Iron list + if (list.$connector) { + return; + } + + const extraItemsBuffer = 20; + + let lastRequestedRange = [0, 0]; + + list.$connector = {}; + list.$connector.placeholderItem = { __placeholder: true }; + + const updateRequestedItem = function () { + /* + * TODO Iron list seems to do a small index adjustment after scrolling + * has stopped. This causes a redundant request to be sent to make a + * corresponding minimal change to the buffer. We should avoid these + * requests by making the logic skip doing a request if the available + * buffer is within some tolerance compared to the requested buffer. + */ + let firstNeededItem = list._virtualStart; + let lastNeededItem = list._virtualEnd; + + let first = Math.max(0, firstNeededItem - extraItemsBuffer); + let last = Math.min(lastNeededItem + extraItemsBuffer, list.items.length); + + if (lastRequestedRange[0] != first || lastRequestedRange[1] != last) { + lastRequestedRange = [first, last]; + const count = 1 + last - first; + list.$server.setRequestedRange(first, count); + } + }; + + let requestDebounce; + const scheduleUpdateRequest = function () { + requestDebounce = Debouncer.debounce(requestDebounce, timeOut.after(10), updateRequestedItem); + }; + + /* + * Ensure all items that iron list will be looking at are actually defined. + * If this is not done, the component will keep looking ahead through the + * array until finding enough present items to render. In our case, that's + * a really slow way of achieving nothing since the rest of the array is + * empty. + */ + const originalAssign = list._assignModels; + list._assignModels = function () { + const tempItems = []; + const start = list._virtualStart; + const count = Math.min(list.items.length, list._physicalCount); + for (let i = 0; i < count; i++) { + if (list.items[start + i] === undefined) { + tempItems.push(i); + list.items[start + i] = list.$connector.placeholderItem; + } + } + + originalAssign.apply(list, arguments); + + /* + * TODO: Keep track of placeholder items in the "active" range and + * avoid deleting them so that the next pass will be faster. Instead, + * the end of each pass should only delete placeholders that are no + * longer needed. + */ + for (let i = 0; i < tempItems.length; i++) { + delete list.items[start + tempItems[i]]; + } + + /* + * Check if we need to do anything once things have settled down. + * This method is called multiple times in sequence for the same user + * action, but we only want to do the check once. + */ + scheduleUpdateRequest(); + }; + + list.items = []; + + list.$connector.set = function (index, items) { + for (let i = 0; i < items.length; i++) { + const itemsIndex = index + i; + list.items[itemsIndex] = items[i]; + } + // Do a full render since dirty detection for splices is broken + list._render(); + }; + + list.$connector.updateData = function (items) { + // Find the items by key inside the list update them + const oldItems = list.items; + const mapByKey = {}; + let leftToUpdate = items.length; + + for (let i = 0; i < items.length; i++) { + const item = items[i]; + mapByKey[item.key] = item; + } + + for (let i = 0; i < oldItems.length; i++) { + const oldItem = oldItems[i]; + const newItem = mapByKey[oldItem.key]; + if (newItem) { + list.items[i] = newItem; + list.notifyPath('items.' + i); + leftToUpdate--; + if (leftToUpdate == 0) { + break; + } + } + } + }; + + list.$connector.clear = function (index, length) { + for (let i = 0; i < length; i++) { + const itemsIndex = index + i; + delete list.items[itemsIndex]; + + // Most likely a no-op since the affected index isn't in view + list.notifyPath('items.' + itemsIndex); + } + }; + + list.$connector.updateSize = function (newSize) { + const delta = newSize - list.items.length; + if (delta > 0) { + list.items.length = newSize; + + list.notifySplices('items', [ + { + index: newSize - delta, + removed: [], + addedCount: delta, + object: list.items, + type: 'splice' + } + ]); + } else if (delta < 0) { + const removed = list.items.slice(newSize, list.items.length); + list.items.splice(newSize); + list.notifySplices('items', [ + { + index: newSize, + removed: removed, + addedCount: 0, + object: list.items, + type: 'splice' + } + ]); + } + }; + + list.$connector.setPlaceholderItem = function (placeholderItem) { + if (!placeholderItem) { + placeholderItem = {}; + } + placeholderItem.__placeholder = true; + list.$connector.placeholderItem = placeholderItem; + }; + } +}; diff --git a/frontend/generated/jar-resources/ironListStyles.js b/frontend/generated/jar-resources/ironListStyles.js new file mode 100644 index 0000000..96b50e2 --- /dev/null +++ b/frontend/generated/jar-resources/ironListStyles.js @@ -0,0 +1,12 @@ +import '@polymer/polymer/lib/elements/custom-style.js'; +const $_documentContainer = document.createElement('template'); + +$_documentContainer.innerHTML = ``; + +document.head.appendChild($_documentContainer.content); diff --git a/frontend/generated/jar-resources/lit-renderer.ts b/frontend/generated/jar-resources/lit-renderer.ts new file mode 100644 index 0000000..081a40a --- /dev/null +++ b/frontend/generated/jar-resources/lit-renderer.ts @@ -0,0 +1,108 @@ +/* eslint-disable no-restricted-syntax */ +/* eslint-disable max-params */ +import { html, render } from 'lit'; + +type RenderRoot = HTMLElement & { __litRenderer?: Renderer; _$litPart$?: any }; + +type ItemModel = { item: any; index: number }; + +type Renderer = ((root: RenderRoot, rendererOwner: HTMLElement, model: ItemModel) => void) & { __rendererId?: string }; + +type Component = HTMLElement & { [key: string]: Renderer | undefined }; + +const _window = window as any; +_window.Vaadin = _window.Vaadin || {}; + +/** + * Assigns the component a renderer function which uses Lit to render + * the given template expression inside the render root element. + * + * @param component The host component to which the renderer runction is to be set + * @param rendererName The name of the renderer function + * @param templateExpression The content of the template literal passed to Lit for rendering. + * @param returnChannel A channel to the server. + * Calling it will end up invoking a handler in the server-side LitRenderer. + * @param clientCallables A list of function names that can be called from within the template literal. + * @param propertyNamespace LitRenderer-specific namespace for properties. + * Needed to avoid property name collisions between renderers. + */ +_window.Vaadin.setLitRenderer = ( + component: Component, + rendererName: string, + templateExpression: string, + returnChannel: (name: string, itemKey: string, args: any[]) => void, + clientCallables: string[], + propertyNamespace: string, +) => { + // Dynamically created function that renders the templateExpression + // inside the given root element using Lit + const renderFunction = Function(` + "use strict"; + + const [render, html, returnChannel] = arguments; + + return (root, {item, index}, itemKey) => { + ${clientCallables + .map((clientCallable) => { + // Map all the client-callables as inline functions so they can be accessed from the template literal + return ` + const ${clientCallable} = (...args) => { + if (itemKey !== undefined) { + returnChannel('${clientCallable}', itemKey, args[0] instanceof Event ? [] : [...args]); + } + }`; + }) + .join('')} + + render(html\`${templateExpression}\`, root) + } + `)(render, html, returnChannel); + + const renderer: Renderer = (root, _, { index, item }) => { + // Clean up the root element of any existing content + // (and Lit's _$litPart$ property) from other renderers + // TODO: Remove once https://github.com/vaadin/web-components/issues/2235 is done + if (root.__litRenderer !== renderer) { + root.innerHTML = ''; + delete root._$litPart$; + root.__litRenderer = renderer; + } + + // Map a new item that only includes the properties defined by + // this specific LitRenderer instance. The renderer instance specific + // "propertyNamespace" prefix is stripped from the property name at this point: + // + // item: { key: "2", lr_3_lastName: "Tyler"} + // -> + // mappedItem: { lastName: "Tyler" } + const mappedItem: { [key: string]: any } = {}; + for (const key in item) { + if (key.startsWith(propertyNamespace)) { + mappedItem[key.replace(propertyNamespace, '')] = item[key]; + } + } + + renderFunction(root, { index, item: mappedItem }, item.key); + }; + + renderer.__rendererId = propertyNamespace; + component[rendererName] = renderer; +}; + +/** + * Removes the renderer function with the given name from the component + * if the propertyNamespace matches the renderer's id. + * + * @param component The host component whose renderer function is to be removed + * @param rendererName The name of the renderer function + * @param rendererId The rendererId of the function to be removed + */ +_window.Vaadin.unsetLitRenderer = (component: Component, rendererName: string, rendererId: string) => { + // The check for __rendererId property is necessary since the renderer function + // may get overridden by another renderer, for example, by one coming from + // vaadin-template-renderer. We don't want LitRenderer registration cleanup to + // unintentionally remove the new renderer. + if (component[rendererName]?.__rendererId === rendererId) { + component[rendererName] = undefined; + } +}; diff --git a/frontend/generated/jar-resources/loginOverlayConnector.js b/frontend/generated/jar-resources/loginOverlayConnector.js new file mode 100644 index 0000000..b56477b --- /dev/null +++ b/frontend/generated/jar-resources/loginOverlayConnector.js @@ -0,0 +1,40 @@ +(function () { + function copyClassName(loginOverlay) { + const overlayWrapper = loginOverlay.$.vaadinLoginOverlayWrapper; + if (overlayWrapper) { + overlayWrapper.className = loginOverlay.className; + } + } + + const observer = new MutationObserver((records) => { + records.forEach((mutation) => { + if (mutation.type === 'attributes' && mutation.attributeName === 'class') { + copyClassName(mutation.target); + } + }); + }); + + window.Vaadin.Flow.loginOverlayConnector = { + initLazy: function (loginOverlay) { + if (loginOverlay.$connector) { + return; + } + + loginOverlay.$connector = {}; + + loginOverlay.addEventListener('opened-changed', (e) => { + if (e.detail.value) { + copyClassName(loginOverlay); + } + }); + + observer.observe(loginOverlay, { + attributes: true, + attributeFilter: ['class'] + }); + + // Copy initial class + copyClassName(loginOverlay); + } + }; +})(); diff --git a/frontend/generated/jar-resources/lumo-includes.ts b/frontend/generated/jar-resources/lumo-includes.ts new file mode 100644 index 0000000..bd4834f --- /dev/null +++ b/frontend/generated/jar-resources/lumo-includes.ts @@ -0,0 +1,9 @@ +import { color } from '@vaadin/vaadin-lumo-styles/color.js'; +import { typography } from '@vaadin/vaadin-lumo-styles/typography.js'; + +const tpl = document.createElement('template'); +tpl.innerHTML = ``; +document.head.appendChild(tpl.content); diff --git a/frontend/generated/jar-resources/material-includes.ts b/frontend/generated/jar-resources/material-includes.ts new file mode 100644 index 0000000..07ba838 --- /dev/null +++ b/frontend/generated/jar-resources/material-includes.ts @@ -0,0 +1,9 @@ +import { colorLight } from '@vaadin/vaadin-material-styles'; +import { typography } from '@vaadin/vaadin-material-styles'; + +const tpl = document.createElement('template'); +tpl.innerHTML = ``; +document.head.appendChild(tpl.content); diff --git a/frontend/generated/jar-resources/menubarConnector.js b/frontend/generated/jar-resources/menubarConnector.js new file mode 100644 index 0000000..72c808e --- /dev/null +++ b/frontend/generated/jar-resources/menubarConnector.js @@ -0,0 +1,111 @@ +/* + * Copyright 2000-2022 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +import './contextMenuConnector.js'; + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Menu Bar'); + }; + + /** + * Initializes the connector for a menu bar element. + * + * @param {HTMLElement} menubar + * @param {string} appId + */ + function initLazy(menubar, appId) { + if (menubar.$connector) { + return; + } + + const observer = new MutationObserver((records) => { + const hasChangedAttributes = records.some((entry) => { + const oldValue = entry.oldValue; + const newValue = entry.target.getAttribute(entry.attributeName); + return oldValue !== newValue; + }); + + if (hasChangedAttributes) { + menubar.$connector.generateItems(); + } + }); + + menubar.$connector = { + /** + * Generates and assigns the items to the menu bar. + * + * When the method is called without providing a node id, + * the previously generated items tree will be used. + * That can be useful if you only want to sync the disabled and hidden properties of root items. + * + * @param {number | undefined} nodeId + */ + generateItems: tryCatchWrapper((nodeId) => { + if (!menubar.shadowRoot) { + // workaround for https://github.com/vaadin/flow/issues/5722 + setTimeout(() => menubar.$connector.generateItems(nodeId)); + return; + } + + if (nodeId) { + menubar.__generatedItems = window.Vaadin.Flow.contextMenuConnector.generateItemsTree(appId, nodeId); + } + + let items = menubar.__generatedItems || []; + + // Propagate disabled state from items to parent buttons + items.forEach((item) => (item.disabled = item.component.disabled)); + + // Remove hidden items entirely from the array. Just hiding them + // could cause the overflow button to be rendered without items. + // + // The items-prop needs to be set even when all items are visible + // to update the disabled state and re-render buttons. + items = items.filter((item) => !item.component.hidden); + + // Observe for hidden and disabled attributes in case they are changed by Flow. + // When a change occurs, the observer will re-generate items on top of the existing tree + // to sync the new attribute values with the corresponding properties in the items array. + items.forEach((item) => { + observer.observe(item.component, { + attributeFilter: ['hidden', 'disabled'], + attributeOldValue: true + }); + }); + + menubar.items = items; + + // Propagate click events from the menu buttons to the item components + menubar._buttons.forEach((button) => { + if (button.item && button.item.component) { + button.addEventListener('click', (e) => { + if (e.composedPath().indexOf(button.item.component) === -1) { + button.item.component.click(); + e.stopPropagation(); + } + }); + } + }); + }) + }; + } + + window.Vaadin.Flow.menubarConnector = { + initLazy(...args) { + return tryCatchWrapper(initLazy)(...args); + } + }; +})(); diff --git a/frontend/generated/jar-resources/messageListConnector.js b/frontend/generated/jar-resources/messageListConnector.js new file mode 100644 index 0000000..6e1a325 --- /dev/null +++ b/frontend/generated/jar-resources/messageListConnector.js @@ -0,0 +1,41 @@ +/* + * Copyright 2000-2022 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Message List'); + }; + + window.Vaadin.Flow.messageListConnector = { + setItems: (list, items, locale) => + tryCatchWrapper(function (list, items, locale) { + const formatter = new Intl.DateTimeFormat(locale, { + year: 'numeric', + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: 'numeric' + }); + list.items = items.map((item) => + item.time + ? Object.assign(item, { + time: formatter.format(new Date(item.time)) + }) + : item + ); + })(list, items, locale) + }; +})(); diff --git a/frontend/generated/jar-resources/notificationConnector.js b/frontend/generated/jar-resources/notificationConnector.js new file mode 100644 index 0000000..beee883 --- /dev/null +++ b/frontend/generated/jar-resources/notificationConnector.js @@ -0,0 +1,38 @@ +(function () { + function copyClassName(notification) { + const card = notification._card; + if (card) { + card.className = notification.className; + } + } + + const observer = new MutationObserver((records) => { + records.forEach((mutation) => { + if (mutation.type === 'attributes' && mutation.attributeName === 'class') { + copyClassName(mutation.target); + } + }); + }); + + window.Vaadin.Flow.notificationConnector = { + initLazy: function (notification) { + if (notification.$connector) { + return; + } + notification.$connector = {}; + + notification.addEventListener('opened-changed', (e) => { + if (e.detail.value) { + copyClassName(notification); + } + }); + + observer.observe(notification, { + attributes: true, + attributeFilter: ['class'] + }); + + copyClassName(notification); + } + }; +})(); diff --git a/frontend/generated/jar-resources/selectConnector.js b/frontend/generated/jar-resources/selectConnector.js new file mode 100644 index 0000000..52fc0a2 --- /dev/null +++ b/frontend/generated/jar-resources/selectConnector.js @@ -0,0 +1,36 @@ +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Select'); + }; + + window.Vaadin.Flow.selectConnector = { + initLazy: (select) => + tryCatchWrapper(function (select) { + const _findListBoxElement = tryCatchWrapper(function () { + for (let i = 0; i < select.childElementCount; i++) { + const child = select.children[i]; + if ('VAADIN-SELECT-LIST-BOX' === child.tagName.toUpperCase()) { + return child; + } + } + }); + + // do not init this connector twice for the given select + if (select.$connector) { + return; + } + + select.$connector = {}; + + select.renderer = tryCatchWrapper(function (root) { + const listBox = _findListBoxElement(); + if (listBox) { + if (root.firstChild) { + root.removeChild(root.firstChild); + } + root.appendChild(listBox); + } + }); + })(select) + }; +})(); diff --git a/frontend/generated/jar-resources/tooltip.ts b/frontend/generated/jar-resources/tooltip.ts new file mode 100644 index 0000000..a9c8628 --- /dev/null +++ b/frontend/generated/jar-resources/tooltip.ts @@ -0,0 +1,11 @@ +import { Tooltip } from '@vaadin/tooltip'; + +const _window = window as any; +_window.Vaadin = _window.Vaadin || {}; +_window.Vaadin.Flow = _window.Vaadin.Flow || {}; + +_window.Vaadin.Flow.tooltip = { + setDefaultHideDelay: (hideDelay: number) => Tooltip.setDefaultHideDelay(hideDelay), + setDefaultFocusDelay: (focusDelay: number) => Tooltip.setDefaultFocusDelay(focusDelay), + setDefaultHoverDelay: (hoverDelay: number) => Tooltip.setDefaultHoverDelay(hoverDelay), +} diff --git a/frontend/generated/jar-resources/vaadin-big-decimal-field.js b/frontend/generated/jar-resources/vaadin-big-decimal-field.js new file mode 100644 index 0000000..3f4b28f --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-big-decimal-field.js @@ -0,0 +1,77 @@ +/* + * Copyright 2000-2022 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +(function() { + + let memoizedTemplate; + + customElements.whenDefined('vaadin-text-field').then(() => { + + class BigDecimalFieldElement extends customElements.get('vaadin-text-field') { + + static get template() { + if (!memoizedTemplate) { + memoizedTemplate = super.template.cloneNode(true); + memoizedTemplate.innerHTML += + ``; + } + return memoizedTemplate; + } + + static get is() { + return 'vaadin-big-decimal-field'; + } + + static get properties() { + return { + _decimalSeparator: { + type: String, + value: '.', + observer: '__decimalSeparatorChanged' + } + } + } + + ready() { + super.ready(); + this.inputElement.setAttribute('inputmode', 'decimal'); + } + + __decimalSeparatorChanged(separator, oldSeparator) { + this.allowedCharPattern = '[\\d-+' + separator + ']'; + + if (this.value && oldSeparator) { + this.value = this.value.split(oldSeparator).join(separator); + } + } + + } + + customElements.define(BigDecimalFieldElement.is, BigDecimalFieldElement); + + }); +})(); diff --git a/frontend/generated/jar-resources/vaadin-dev-tools.d.ts b/frontend/generated/jar-resources/vaadin-dev-tools.d.ts new file mode 100644 index 0000000..a7583c0 --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-dev-tools.d.ts @@ -0,0 +1,119 @@ +import { LitElement } from 'lit'; +import { Product } from './License'; +interface Feature { + id: string; + title: string; + moreInfoLink: string; + requiresServerRestart: boolean; + enabled: boolean; +} +declare enum ConnectionStatus { + ACTIVE = "active", + INACTIVE = "inactive", + UNAVAILABLE = "unavailable", + ERROR = "error" +} +export declare class Connection extends Object { + static HEARTBEAT_INTERVAL: number; + status: ConnectionStatus; + webSocket?: WebSocket; + constructor(url?: string); + onHandshake(): void; + onReload(): void; + onConnectionError(_: string): void; + onStatusChange(_: ConnectionStatus): void; + onMessage(message: any): void; + handleMessage(msg: any): void; + handleError(msg: any): void; + setActive(yes: boolean): void; + setStatus(status: ConnectionStatus): void; + private send; + setFeature(featureId: string, enabled: boolean): void; + sendTelemetry(browserData: any): void; + sendLicenseCheck(product: Product): void; +} +declare enum MessageType { + LOG = "log", + INFORMATION = "information", + WARNING = "warning", + ERROR = "error" +} +interface Message { + id: number; + type: MessageType; + message: string; + details?: string; + link?: string; + persistentId?: string; + dontShowAgain: boolean; + deleted: boolean; +} +export declare class VaadinDevTools extends LitElement { + static BLUE_HSL: import("lit").CSSResult; + static GREEN_HSL: import("lit").CSSResult; + static GREY_HSL: import("lit").CSSResult; + static YELLOW_HSL: import("lit").CSSResult; + static RED_HSL: import("lit").CSSResult; + static MAX_LOG_ROWS: number; + static get styles(): import("lit").CSSResult; + static DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE: string; + static ACTIVE_KEY_IN_SESSION_STORAGE: string; + static TRIGGERED_KEY_IN_SESSION_STORAGE: string; + static TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE: string; + static AUTO_DEMOTE_NOTIFICATION_DELAY: number; + static HOTSWAP_AGENT: string; + static JREBEL: string; + static SPRING_BOOT_DEVTOOLS: string; + static BACKEND_DISPLAY_NAME: Record; + static get isActive(): boolean; + static notificationDismissed(persistentId: string): boolean; + url?: string; + liveReloadDisabled?: boolean; + backend?: string; + springBootLiveReloadPort?: number; + expanded: boolean; + messages: Message[]; + splashMessage?: string; + notifications: Message[]; + frontendStatus: ConnectionStatus; + javaStatus: ConnectionStatus; + private tabs; + private activeTab; + private serverInfo; + private features; + private unreadErrors; + private root; + private javaConnection?; + private frontendConnection?; + private nextMessageId; + private disableEventListener?; + private transitionDuration; + elementTelemetry(): void; + openWebSocketConnection(): void; + getDedicatedWebSocketUrl(): string | undefined; + getSpringBootWebSocketUrl(location: any): string; + connectedCallback(): void; + format(o: any): string; + catchErrors(): void; + disconnectedCallback(): void; + toggleExpanded(): void; + showSplashMessage(msg: string | undefined): void; + demoteSplashMessage(): void; + checkLicense(productInfo: Product): void; + log(type: MessageType, message: string, details?: string, link?: string): void; + showNotification(type: MessageType, message: string, details?: string, link?: string, persistentId?: string): void; + dismissNotification(id: number): void; + findNotificationIndex(id: number): number; + toggleDontShowAgain(id: number): void; + setActive(yes: boolean): void; + getStatusColor(status: ConnectionStatus | undefined): import("lit").CSSResult; + renderMessage(messageObject: Message): import("lit-html").TemplateResult<1>; + render(): import("lit-html").TemplateResult<1>; + renderLog(): import("lit-html").TemplateResult<1>; + activateLog(): void; + renderInfo(): import("lit-html").TemplateResult<1>; + private renderFeatures; + copyInfoToClipboard(): void; + toggleFeatureFlag(e: Event, feature: Feature): void; +} +export {}; diff --git a/frontend/generated/jar-resources/vaadin-dev-tools.js b/frontend/generated/jar-resources/vaadin-dev-tools.js new file mode 100644 index 0000000..547fd0d --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-dev-tools.js @@ -0,0 +1,1477 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +import { css, html, LitElement, nothing } from 'lit'; +import { property, query, state } from 'lit/decorators.js'; +import { classMap } from 'lit/directives/class-map.js'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import { copy } from './copy-to-clipboard.js'; +import { licenseCheckFailed, licenseCheckNoKey, licenseCheckOk, licenseInit } from './License'; +var ConnectionStatus; +(function (ConnectionStatus) { + ConnectionStatus["ACTIVE"] = "active"; + ConnectionStatus["INACTIVE"] = "inactive"; + ConnectionStatus["UNAVAILABLE"] = "unavailable"; + ConnectionStatus["ERROR"] = "error"; +})(ConnectionStatus || (ConnectionStatus = {})); +export class Connection extends Object { + constructor(url) { + super(); + this.status = ConnectionStatus.UNAVAILABLE; + if (url) { + this.webSocket = new WebSocket(url); + this.webSocket.onmessage = (msg) => this.handleMessage(msg); + this.webSocket.onerror = (err) => this.handleError(err); + this.webSocket.onclose = (_) => { + if (this.status !== ConnectionStatus.ERROR) { + this.setStatus(ConnectionStatus.UNAVAILABLE); + } + this.webSocket = undefined; + }; + } + setInterval(() => { + if (this.webSocket && self.status !== ConnectionStatus.ERROR && this.status !== ConnectionStatus.UNAVAILABLE) { + this.webSocket.send(''); + } + }, Connection.HEARTBEAT_INTERVAL); + } + onHandshake() { + // Intentionally empty + } + onReload() { + // Intentionally empty + } + onConnectionError(_) { + // Intentionally empty + } + onStatusChange(_) { + // Intentionally empty + } + onMessage(message) { + // eslint-disable-next-line no-console + console.error('Unknown message received from the live reload server:', message); + } + handleMessage(msg) { + let json; + try { + json = JSON.parse(msg.data); + } + catch (e) { + this.handleError(`[${e.name}: ${e.message}`); + return; + } + if (json.command === 'hello') { + this.setStatus(ConnectionStatus.ACTIVE); + this.onHandshake(); + } + else if (json.command === 'reload') { + if (this.status === ConnectionStatus.ACTIVE) { + this.onReload(); + } + } + else if (json.command === 'license-check-ok') { + licenseCheckOk(json.data); + } + else if (json.command === 'license-check-failed') { + licenseCheckFailed(json.data); + } + else if (json.command === 'license-check-nokey') { + licenseCheckNoKey(json.data); + } + else { + this.onMessage(json); + } + } + handleError(msg) { + // eslint-disable-next-line no-console + console.error(msg); + this.setStatus(ConnectionStatus.ERROR); + if (msg instanceof Event && this.webSocket) { + this.onConnectionError(`Error in WebSocket connection to ${this.webSocket.url}`); + } + else { + this.onConnectionError(msg); + } + } + setActive(yes) { + if (!yes && this.status === ConnectionStatus.ACTIVE) { + this.setStatus(ConnectionStatus.INACTIVE); + } + else if (yes && this.status === ConnectionStatus.INACTIVE) { + this.setStatus(ConnectionStatus.ACTIVE); + } + } + setStatus(status) { + if (this.status !== status) { + this.status = status; + this.onStatusChange(status); + } + } + send(command, data) { + const message = JSON.stringify({ command, data }); + if (!this.webSocket) { + // eslint-disable-next-line no-console + console.error(`Unable to send message ${command}. No websocket is available`); + } + else if (this.webSocket.readyState !== WebSocket.OPEN) { + this.webSocket.addEventListener('open', () => this.webSocket.send(message)); + } + else { + this.webSocket.send(message); + } + } + setFeature(featureId, enabled) { + this.send('setFeature', { featureId, enabled }); + } + sendTelemetry(browserData) { + this.send('reportTelemetry', { browserData }); + } + sendLicenseCheck(product) { + this.send('checkLicense', product); + } +} +Connection.HEARTBEAT_INTERVAL = 180000; +var MessageType; +(function (MessageType) { + MessageType["LOG"] = "log"; + MessageType["INFORMATION"] = "information"; + MessageType["WARNING"] = "warning"; + MessageType["ERROR"] = "error"; +})(MessageType || (MessageType = {})); +export class VaadinDevTools extends LitElement { + constructor() { + super(...arguments); + this.expanded = false; + this.messages = []; + this.notifications = []; + this.frontendStatus = ConnectionStatus.UNAVAILABLE; + this.javaStatus = ConnectionStatus.UNAVAILABLE; + this.tabs = [ + { id: 'log', title: 'Log', render: this.renderLog, activate: this.activateLog }, + { id: 'info', title: 'Info', render: this.renderInfo }, + { id: 'features', title: 'Feature Flags', render: this.renderFeatures } + ]; + this.activeTab = 'log'; + this.serverInfo = { + flowVersion: '', + vaadinVersion: '', + javaVersion: '', + osVersion: '', + productName: '' + }; + this.features = []; + this.unreadErrors = false; + this.nextMessageId = 1; + this.transitionDuration = 0; + } + static get styles() { + return css ` + :host { + --dev-tools-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, + 'Helvetica Neue', sans-serif; + --dev-tools-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; + + --dev-tools-font-size: 0.8125rem; + --dev-tools-font-size-small: 0.75rem; + + --dev-tools-text-color: rgba(255, 255, 255, 0.8); + --dev-tools-text-color-secondary: rgba(255, 255, 255, 0.65); + --dev-tools-text-color-emphasis: rgba(255, 255, 255, 0.95); + --dev-tools-text-color-active: rgba(255, 255, 255, 1); + + --dev-tools-background-color-inactive: rgba(45, 45, 45, 0.25); + --dev-tools-background-color-active: rgba(45, 45, 45, 0.98); + --dev-tools-background-color-active-blurred: rgba(45, 45, 45, 0.85); + + --dev-tools-border-radius: 0.5rem; + --dev-tools-box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05), 0 4px 12px -2px rgba(0, 0, 0, 0.4); + + --dev-tools-blue-hsl: ${this.BLUE_HSL}; + --dev-tools-blue-color: hsl(var(--dev-tools-blue-hsl)); + --dev-tools-green-hsl: ${this.GREEN_HSL}; + --dev-tools-green-color: hsl(var(--dev-tools-green-hsl)); + --dev-tools-grey-hsl: ${this.GREY_HSL}; + --dev-tools-grey-color: hsl(var(--dev-tools-grey-hsl)); + --dev-tools-yellow-hsl: ${this.YELLOW_HSL}; + --dev-tools-yellow-color: hsl(var(--dev-tools-yellow-hsl)); + --dev-tools-red-hsl: ${this.RED_HSL}; + --dev-tools-red-color: hsl(var(--dev-tools-red-hsl)); + + /* Needs to be in ms, used in JavaScript as well */ + --dev-tools-transition-duration: 180ms; + + all: initial; + + direction: ltr; + cursor: default; + font: normal 400 var(--dev-tools-font-size) / 1.125rem var(--dev-tools-font-family); + color: var(--dev-tools-text-color); + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + + position: fixed; + z-index: 20000; + pointer-events: none; + bottom: 0; + right: 0; + width: 100%; + height: 100%; + display: flex; + flex-direction: column-reverse; + align-items: flex-end; + } + + .dev-tools { + pointer-events: auto; + display: flex; + align-items: center; + position: fixed; + z-index: inherit; + right: 0.5rem; + bottom: 0.5rem; + min-width: 1.75rem; + height: 1.75rem; + max-width: 1.75rem; + border-radius: 0.5rem; + padding: 0.375rem; + box-sizing: border-box; + background-color: var(--dev-tools-background-color-inactive); + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05); + color: var(--dev-tools-text-color); + transition: var(--dev-tools-transition-duration); + white-space: nowrap; + line-height: 1rem; + } + + .dev-tools:hover, + .dev-tools.active { + background-color: var(--dev-tools-background-color-active); + box-shadow: var(--dev-tools-box-shadow); + } + + .dev-tools.active { + max-width: calc(100% - 1rem); + } + + .dev-tools .dev-tools-icon { + flex: none; + pointer-events: none; + display: inline-block; + width: 1rem; + height: 1rem; + fill: #fff; + transition: var(--dev-tools-transition-duration); + margin: 0; + } + + .dev-tools.active .dev-tools-icon { + opacity: 0; + position: absolute; + transform: scale(0.5); + } + + .dev-tools .status-blip { + flex: none; + display: block; + width: 6px; + height: 6px; + border-radius: 50%; + z-index: 20001; + background: var(--dev-tools-grey-color); + position: absolute; + top: -1px; + right: -1px; + } + + .dev-tools .status-description { + overflow: hidden; + text-overflow: ellipsis; + padding: 0 0.25rem; + } + + .dev-tools.error { + background-color: hsla(var(--dev-tools-red-hsl), 0.15); + animation: bounce 0.5s; + animation-iteration-count: 2; + } + + .switch { + display: inline-flex; + align-items: center; + } + + .switch input { + opacity: 0; + width: 0; + height: 0; + position: absolute; + } + + .switch .slider { + display: block; + flex: none; + width: 28px; + height: 18px; + border-radius: 9px; + background-color: rgba(255, 255, 255, 0.3); + transition: var(--dev-tools-transition-duration); + margin-right: 0.5rem; + } + + .switch:focus-within .slider, + .switch .slider:hover { + background-color: rgba(255, 255, 255, 0.35); + transition: none; + } + + .switch input:focus-visible ~ .slider { + box-shadow: 0 0 0 2px var(--dev-tools-background-color-active), 0 0 0 4px var(--dev-tools-blue-color); + } + + .switch .slider::before { + content: ''; + display: block; + margin: 2px; + width: 14px; + height: 14px; + background-color: #fff; + transition: var(--dev-tools-transition-duration); + border-radius: 50%; + } + + .switch input:checked + .slider { + background-color: var(--dev-tools-green-color); + } + + .switch input:checked + .slider::before { + transform: translateX(10px); + } + + .switch input:disabled + .slider::before { + background-color: var(--dev-tools-grey-color); + } + + .window.hidden { + opacity: 0; + transform: scale(0); + position: absolute; + } + + .window.visible { + transform: none; + opacity: 1; + pointer-events: auto; + } + + .window.visible ~ .dev-tools { + opacity: 0; + pointer-events: none; + } + + .window.visible ~ .dev-tools .dev-tools-icon, + .window.visible ~ .dev-tools .status-blip { + transition: none; + opacity: 0; + } + + .window { + border-radius: var(--dev-tools-border-radius); + overflow: hidden; + margin: 0.5rem; + width: 30rem; + max-width: calc(100% - 1rem); + max-height: calc(100vh - 1rem); + flex-shrink: 1; + background-color: var(--dev-tools-background-color-active); + color: var(--dev-tools-text-color); + transition: var(--dev-tools-transition-duration); + transform-origin: bottom right; + display: flex; + flex-direction: column; + box-shadow: var(--dev-tools-box-shadow); + outline: none; + } + + .window-toolbar { + display: flex; + flex: none; + align-items: center; + padding: 0.375rem; + white-space: nowrap; + order: 1; + background-color: rgba(0, 0, 0, 0.2); + gap: 0.5rem; + } + + .tab { + color: var(--dev-tools-text-color-secondary); + font: inherit; + font-size: var(--dev-tools-font-size-small); + font-weight: 500; + line-height: 1; + padding: 0.25rem 0.375rem; + background: none; + border: none; + margin: 0; + border-radius: 0.25rem; + transition: var(--dev-tools-transition-duration); + } + + .tab:hover, + .tab.active { + color: var(--dev-tools-text-color-active); + } + + .tab.active { + background-color: rgba(255, 255, 255, 0.12); + } + + .tab.unreadErrors::after { + content: '•'; + color: hsl(var(--dev-tools-red-hsl)); + font-size: 1.5rem; + position: absolute; + transform: translate(0, -50%); + } + + .ahreflike { + font-weight: 500; + color: var(--dev-tools-text-color-secondary); + text-decoration: underline; + cursor: pointer; + } + + .ahreflike:hover { + color: var(--dev-tools-text-color-emphasis); + } + + .button { + all: initial; + font-family: inherit; + font-size: var(--dev-tools-font-size-small); + line-height: 1; + white-space: nowrap; + background-color: rgba(0, 0, 0, 0.2); + color: inherit; + font-weight: 600; + padding: 0.25rem 0.375rem; + border-radius: 0.25rem; + } + + .button:focus, + .button:hover { + color: var(--dev-tools-text-color-emphasis); + } + + .minimize-button { + flex: none; + width: 1rem; + height: 1rem; + color: inherit; + background-color: transparent; + border: 0; + padding: 0; + margin: 0 0 0 auto; + opacity: 0.8; + } + + .minimize-button:hover { + opacity: 1; + } + + .minimize-button svg { + max-width: 100%; + } + + .message.information { + --dev-tools-notification-color: var(--dev-tools-blue-color); + } + + .message.warning { + --dev-tools-notification-color: var(--dev-tools-yellow-color); + } + + .message.error { + --dev-tools-notification-color: var(--dev-tools-red-color); + } + + .message { + display: flex; + padding: 0.1875rem 0.75rem 0.1875rem 2rem; + background-clip: padding-box; + } + + .message.log { + padding-left: 0.75rem; + } + + .message-content { + margin-right: 0.5rem; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + } + + .message-heading { + position: relative; + display: flex; + align-items: center; + margin: 0.125rem 0; + } + + .message.log { + color: var(--dev-tools-text-color-secondary); + } + + .message:not(.log) .message-heading { + font-weight: 500; + } + + .message.has-details .message-heading { + color: var(--dev-tools-text-color-emphasis); + font-weight: 600; + } + + .message-heading::before { + position: absolute; + margin-left: -1.5rem; + display: inline-block; + text-align: center; + font-size: 0.875em; + font-weight: 600; + line-height: calc(1.25em - 2px); + width: 14px; + height: 14px; + box-sizing: border-box; + border: 1px solid transparent; + border-radius: 50%; + } + + .message.information .message-heading::before { + content: 'i'; + border-color: currentColor; + color: var(--dev-tools-notification-color); + } + + .message.warning .message-heading::before, + .message.error .message-heading::before { + content: '!'; + color: var(--dev-tools-background-color-active); + background-color: var(--dev-tools-notification-color); + } + + .features-tray { + padding: 0.75rem; + flex: auto; + overflow: auto; + animation: fade-in var(--dev-tools-transition-duration) ease-in; + user-select: text; + } + + .features-tray p { + margin-top: 0; + color: var(--dev-tools-text-color-secondary); + } + + .features-tray .feature { + display: flex; + align-items: center; + gap: 1rem; + padding-bottom: 0.5em; + } + + .message .message-details { + font-weight: 400; + color: var(--dev-tools-text-color-secondary); + margin: 0.25rem 0; + } + + .message .message-details[hidden] { + display: none; + } + + .message .message-details p { + display: inline; + margin: 0; + margin-right: 0.375em; + word-break: break-word; + } + + .message .persist { + color: var(--dev-tools-text-color-secondary); + white-space: nowrap; + margin: 0.375rem 0; + display: flex; + align-items: center; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } + + .message .persist::before { + content: ''; + width: 1em; + height: 1em; + border-radius: 0.2em; + margin-right: 0.375em; + background-color: rgba(255, 255, 255, 0.3); + } + + .message .persist:hover::before { + background-color: rgba(255, 255, 255, 0.4); + } + + .message .persist.on::before { + background-color: rgba(255, 255, 255, 0.9); + } + + .message .persist.on::after { + content: ''; + order: -1; + position: absolute; + width: 0.75em; + height: 0.25em; + border: 2px solid var(--dev-tools-background-color-active); + border-width: 0 0 2px 2px; + transform: translate(0.05em, -0.05em) rotate(-45deg) scale(0.8, 0.9); + } + + .message .dismiss-message { + font-weight: 600; + align-self: stretch; + display: flex; + align-items: center; + padding: 0 0.25rem; + margin-left: 0.5rem; + color: var(--dev-tools-text-color-secondary); + } + + .message .dismiss-message:hover { + color: var(--dev-tools-text-color); + } + + .notification-tray { + display: flex; + flex-direction: column-reverse; + align-items: flex-end; + margin: 0.5rem; + flex: none; + } + + .window.hidden + .notification-tray { + margin-bottom: 3rem; + } + + .notification-tray .message { + pointer-events: auto; + background-color: var(--dev-tools-background-color-active); + color: var(--dev-tools-text-color); + max-width: 30rem; + box-sizing: border-box; + border-radius: var(--dev-tools-border-radius); + margin-top: 0.5rem; + transition: var(--dev-tools-transition-duration); + transform-origin: bottom right; + animation: slideIn var(--dev-tools-transition-duration); + box-shadow: var(--dev-tools-box-shadow); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + } + + .notification-tray .message.animate-out { + animation: slideOut forwards var(--dev-tools-transition-duration); + } + + .notification-tray .message .message-details { + max-height: 10em; + overflow: hidden; + } + + .message-tray { + flex: auto; + overflow: auto; + max-height: 20rem; + user-select: text; + } + + .message-tray .message { + animation: fade-in var(--dev-tools-transition-duration) ease-in; + padding-left: 2.25rem; + } + + .message-tray .message.warning { + background-color: hsla(var(--dev-tools-yellow-hsl), 0.09); + } + + .message-tray .message.error { + background-color: hsla(var(--dev-tools-red-hsl), 0.09); + } + + .message-tray .message.error .message-heading { + color: hsl(var(--dev-tools-red-hsl)); + } + + .message-tray .message.warning .message-heading { + color: hsl(var(--dev-tools-yellow-hsl)); + } + + .message-tray .message + .message { + border-top: 1px solid rgba(255, 255, 255, 0.07); + } + + .message-tray .dismiss-message, + .message-tray .persist { + display: none; + } + + .info-tray { + padding: 0.75rem; + position: relative; + flex: auto; + overflow: auto; + animation: fade-in var(--dev-tools-transition-duration) ease-in; + user-select: text; + } + + .info-tray dl { + margin: 0; + display: grid; + grid-template-columns: max-content 1fr; + column-gap: 0.75rem; + position: relative; + } + + .info-tray dt { + grid-column: 1; + color: var(--dev-tools-text-color-emphasis); + } + + .info-tray dt:not(:first-child)::before { + content: ''; + width: 100%; + position: absolute; + height: 1px; + background-color: rgba(255, 255, 255, 0.1); + margin-top: -0.375rem; + } + + .info-tray dd { + grid-column: 2; + margin: 0; + } + + .info-tray :is(dt, dd):not(:last-child) { + margin-bottom: 0.75rem; + } + + .info-tray dd + dd { + margin-top: -0.5rem; + } + + .info-tray .live-reload-status::before { + content: '•'; + color: var(--status-color); + width: 0.75rem; + display: inline-block; + font-size: 1rem; + line-height: 0.5rem; + } + + .info-tray .copy { + position: fixed; + z-index: 1; + top: 0.5rem; + right: 0.5rem; + } + + .info-tray .switch { + vertical-align: -4px; + } + + @keyframes slideIn { + from { + transform: translateX(100%); + opacity: 0; + } + to { + transform: translateX(0%); + opacity: 1; + } + } + + @keyframes slideOut { + from { + transform: translateX(0%); + opacity: 1; + } + to { + transform: translateX(100%); + opacity: 0; + } + } + + @keyframes fade-in { + 0% { + opacity: 0; + } + } + + @keyframes bounce { + 0% { + transform: scale(0.8); + } + 50% { + transform: scale(1.5); + background-color: hsla(var(--dev-tools-red-hsl), 1); + } + 100% { + transform: scale(1); + } + } + + @supports (backdrop-filter: blur(1px)) { + .dev-tools, + .window, + .notification-tray .message { + backdrop-filter: blur(8px); + } + .dev-tools:hover, + .dev-tools.active, + .window, + .notification-tray .message { + background-color: var(--dev-tools-background-color-active-blurred); + } + } + `; + } + static get isActive() { + const active = window.sessionStorage.getItem(VaadinDevTools.ACTIVE_KEY_IN_SESSION_STORAGE); + return active === null || active !== 'false'; + } + static notificationDismissed(persistentId) { + const shown = window.localStorage.getItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE); + return shown !== null && shown.includes(persistentId); + } + elementTelemetry() { + let data = {}; + try { + // localstorage data is collected by vaadin-usage-statistics.js + const localStorageStatsString = localStorage.getItem('vaadin.statistics.basket'); + if (!localStorageStatsString) { + // Do not send empty data + return; + } + data = JSON.parse(localStorageStatsString); + } + catch (e) { + // In case of parse errors don't send anything + return; + } + if (this.frontendConnection) { + this.frontendConnection.sendTelemetry(data); + } + } + openWebSocketConnection() { + this.frontendStatus = ConnectionStatus.UNAVAILABLE; + this.javaStatus = ConnectionStatus.UNAVAILABLE; + const onConnectionError = (msg) => this.log(MessageType.ERROR, msg); + const onReload = () => { + if (this.liveReloadDisabled) { + return; + } + this.showSplashMessage('Reloading…'); + const lastReload = window.sessionStorage.getItem(VaadinDevTools.TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE); + const nextReload = lastReload ? parseInt(lastReload, 10) + 1 : 1; + window.sessionStorage.setItem(VaadinDevTools.TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE, nextReload.toString()); + window.sessionStorage.setItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE, 'true'); + window.location.reload(); + }; + const frontendConnection = new Connection(this.getDedicatedWebSocketUrl()); + frontendConnection.onHandshake = () => { + this.log(MessageType.LOG, 'Vaadin development mode initialized'); + if (!VaadinDevTools.isActive) { + frontendConnection.setActive(false); + } + this.elementTelemetry(); + }; + frontendConnection.onConnectionError = onConnectionError; + frontendConnection.onReload = onReload; + frontendConnection.onStatusChange = (status) => { + this.frontendStatus = status; + }; + frontendConnection.onMessage = (message) => { + if ((message === null || message === void 0 ? void 0 : message.command) === 'serverInfo') { + this.serverInfo = message.data; + } + else if ((message === null || message === void 0 ? void 0 : message.command) === 'featureFlags') { + this.features = message.data.features; + } + else { + // eslint-disable-next-line no-console + console.error('Unknown message from front-end connection:', JSON.stringify(message)); + } + }; + this.frontendConnection = frontendConnection; + let javaConnection; + if (this.backend === VaadinDevTools.SPRING_BOOT_DEVTOOLS && this.springBootLiveReloadPort) { + javaConnection = new Connection(this.getSpringBootWebSocketUrl(window.location)); + javaConnection.onHandshake = () => { + if (!VaadinDevTools.isActive) { + javaConnection.setActive(false); + } + }; + javaConnection.onReload = onReload; + javaConnection.onConnectionError = onConnectionError; + } + else if (this.backend === VaadinDevTools.JREBEL || this.backend === VaadinDevTools.HOTSWAP_AGENT) { + javaConnection = frontendConnection; + } + else { + javaConnection = new Connection(undefined); + } + const prevOnStatusChange = javaConnection.onStatusChange; + javaConnection.onStatusChange = (status) => { + prevOnStatusChange(status); + this.javaStatus = status; + }; + const prevOnHandshake = javaConnection.onHandshake; + javaConnection.onHandshake = () => { + prevOnHandshake(); + if (this.backend) { + this.log(MessageType.INFORMATION, `Java live reload available: ${VaadinDevTools.BACKEND_DISPLAY_NAME[this.backend]}`); + } + }; + this.javaConnection = javaConnection; + if (!this.backend) { + this.showNotification(MessageType.WARNING, 'Java live reload unavailable', 'Live reload for Java changes is currently not set up. Find out how to make use of this functionality to boost your workflow.', 'https://vaadin.com/docs/latest/flow/configuration/live-reload', 'liveReloadUnavailable'); + } + } + getDedicatedWebSocketUrl() { + function getAbsoluteUrl(relative) { + // Use innerHTML to obtain an absolute URL + const div = document.createElement('div'); + div.innerHTML = ``; + return div.firstChild.href; + } + if (this.url === undefined) { + return undefined; + } + const connectionBaseUrl = getAbsoluteUrl(this.url); + if (!connectionBaseUrl.startsWith('http://') && !connectionBaseUrl.startsWith('https://')) { + // eslint-disable-next-line no-console + console.error('The protocol of the url should be http or https for live reload to work.'); + return undefined; + } + return `${connectionBaseUrl.replace(/^http/, 'ws')}?v-r=push&debug_window`; + } + getSpringBootWebSocketUrl(location) { + const { hostname } = location; + const wsProtocol = location.protocol === 'https:' ? 'wss' : 'ws'; + if (hostname.endsWith('gitpod.io')) { + // Gitpod uses `port-url` instead of `url:port` + const hostnameWithoutPort = hostname.replace(/.*?-/, ''); + return `${wsProtocol}://${this.springBootLiveReloadPort}-${hostnameWithoutPort}`; + } + else { + return `${wsProtocol}://${hostname}:${this.springBootLiveReloadPort}`; + } + } + connectedCallback() { + super.connectedCallback(); + this.catchErrors(); + // when focus or clicking anywhere, move the splash message to the message tray + this.disableEventListener = (_) => this.demoteSplashMessage(); + document.body.addEventListener('focus', this.disableEventListener); + document.body.addEventListener('click', this.disableEventListener); + this.openWebSocketConnection(); + const lastReload = window.sessionStorage.getItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE); + if (lastReload) { + const now = new Date(); + const reloaded = `${`0${now.getHours()}`.slice(-2)}:${`0${now.getMinutes()}`.slice(-2)}:${`0${now.getSeconds()}`.slice(-2)}`; + this.showSplashMessage(`Page reloaded at ${reloaded}`); + window.sessionStorage.removeItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE); + } + this.transitionDuration = parseInt(window.getComputedStyle(this).getPropertyValue('--dev-tools-transition-duration'), 10); + const windowAny = window; + windowAny.Vaadin = windowAny.Vaadin || {}; + windowAny.Vaadin.devTools = Object.assign(this, windowAny.Vaadin.devTools); + licenseInit(); + } + format(o) { + return o.toString(); + } + catchErrors() { + // Process stored messages + const queue = window.Vaadin.ConsoleErrors; + if (queue) { + queue.forEach((args) => { + this.log(MessageType.ERROR, args.map((o) => this.format(o)).join(' ')); + }); + } + // Install new handler that immediately processes messages + window.Vaadin.ConsoleErrors = { + push: (args) => { + this.log(MessageType.ERROR, args.map((o) => this.format(o)).join(' ')); + } + }; + } + disconnectedCallback() { + if (this.disableEventListener) { + document.body.removeEventListener('focus', this.disableEventListener); + document.body.removeEventListener('click', this.disableEventListener); + } + super.disconnectedCallback(); + } + toggleExpanded() { + this.notifications.slice().forEach((notification) => this.dismissNotification(notification.id)); + this.expanded = !this.expanded; + if (this.expanded) { + this.root.focus(); + } + } + showSplashMessage(msg) { + this.splashMessage = msg; + if (this.splashMessage) { + if (this.expanded) { + this.demoteSplashMessage(); + } + else { + // automatically move notification to message tray after a certain amount of time + setTimeout(() => { + this.demoteSplashMessage(); + }, VaadinDevTools.AUTO_DEMOTE_NOTIFICATION_DELAY); + } + } + } + demoteSplashMessage() { + if (this.splashMessage) { + this.log(MessageType.LOG, this.splashMessage); + } + this.showSplashMessage(undefined); + } + checkLicense(productInfo) { + if (this.frontendConnection) { + this.frontendConnection.sendLicenseCheck(productInfo); + } + else { + licenseCheckFailed({ message: 'Internal error: no connection', product: productInfo }); + } + } + log(type, message, details, link) { + const id = this.nextMessageId; + this.nextMessageId += 1; + this.messages.push({ + id, + type, + message, + details, + link, + dontShowAgain: false, + deleted: false + }); + while (this.messages.length > VaadinDevTools.MAX_LOG_ROWS) { + this.messages.shift(); + } + this.requestUpdate(); + this.updateComplete.then(() => { + // Scroll into view + const lastMessage = this.renderRoot.querySelector('.message-tray .message:last-child'); + if (this.expanded && lastMessage) { + setTimeout(() => lastMessage.scrollIntoView({ behavior: 'smooth' }), this.transitionDuration); + this.unreadErrors = false; + } + else if (type === MessageType.ERROR) { + this.unreadErrors = true; + } + }); + } + showNotification(type, message, details, link, persistentId) { + if (persistentId === undefined || !VaadinDevTools.notificationDismissed(persistentId)) { + // Do not open persistent message if another is already visible with the same persistentId + const matchingVisibleNotifications = this.notifications + .filter((notification) => notification.persistentId === persistentId) + .filter((notification) => !notification.deleted); + if (matchingVisibleNotifications.length > 0) { + return; + } + const id = this.nextMessageId; + this.nextMessageId += 1; + this.notifications.push({ + id, + type, + message, + details, + link, + persistentId, + dontShowAgain: false, + deleted: false + }); + // automatically move notification to message tray after a certain amount of time unless it contains a link + if (link === undefined) { + setTimeout(() => { + this.dismissNotification(id); + }, VaadinDevTools.AUTO_DEMOTE_NOTIFICATION_DELAY); + } + this.requestUpdate(); + } + else { + this.log(type, message, details, link); + } + } + dismissNotification(id) { + const index = this.findNotificationIndex(id); + if (index !== -1 && !this.notifications[index].deleted) { + const notification = this.notifications[index]; + // user is explicitly dismissing a notification---after that we won't bug them with it + if (notification.dontShowAgain && + notification.persistentId && + !VaadinDevTools.notificationDismissed(notification.persistentId)) { + let dismissed = window.localStorage.getItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE); + dismissed = dismissed === null ? notification.persistentId : `${dismissed},${notification.persistentId}`; + window.localStorage.setItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE, dismissed); + } + notification.deleted = true; + this.log(notification.type, notification.message, notification.details, notification.link); + // give some time for the animation + setTimeout(() => { + const idx = this.findNotificationIndex(id); + if (idx !== -1) { + this.notifications.splice(idx, 1); + this.requestUpdate(); + } + }, this.transitionDuration); + } + } + findNotificationIndex(id) { + let index = -1; + this.notifications.some((notification, idx) => { + if (notification.id === id) { + index = idx; + return true; + } + else { + return false; + } + }); + return index; + } + toggleDontShowAgain(id) { + const index = this.findNotificationIndex(id); + if (index !== -1 && !this.notifications[index].deleted) { + const notification = this.notifications[index]; + notification.dontShowAgain = !notification.dontShowAgain; + this.requestUpdate(); + } + } + setActive(yes) { + var _a, _b; + (_a = this.frontendConnection) === null || _a === void 0 ? void 0 : _a.setActive(yes); + (_b = this.javaConnection) === null || _b === void 0 ? void 0 : _b.setActive(yes); + window.sessionStorage.setItem(VaadinDevTools.ACTIVE_KEY_IN_SESSION_STORAGE, yes ? 'true' : 'false'); + } + getStatusColor(status) { + if (status === ConnectionStatus.ACTIVE) { + return css `hsl(${VaadinDevTools.GREEN_HSL})`; + } + else if (status === ConnectionStatus.INACTIVE) { + return css `hsl(${VaadinDevTools.GREY_HSL})`; + } + else if (status === ConnectionStatus.UNAVAILABLE) { + return css `hsl(${VaadinDevTools.YELLOW_HSL})`; + } + else if (status === ConnectionStatus.ERROR) { + return css `hsl(${VaadinDevTools.RED_HSL})`; + } + else { + return css `none`; + } + } + /* eslint-disable lit/no-template-arrow */ + renderMessage(messageObject) { + return html ` + + `; + } + /* eslint-disable lit/no-template-map */ + render() { + return html `
e.key === 'Escape' && this.toggleExpanded()} + > +
+ ${this.tabs.map((tab) => html ` `)} + +
+ ${this.tabs.map((tab) => (this.activeTab === tab.id ? tab.render.call(this) : nothing))} +
+ +
${this.notifications.map((msg) => this.renderMessage(msg))}
+
this.toggleExpanded()} + > + ${this.unreadErrors + ? html ` + + + + + + ` + : html ``} + + + ${this.splashMessage ? html `${this.splashMessage}
` : nothing} + `; + } + renderLog() { + return html `
${this.messages.map((msg) => this.renderMessage(msg))}
`; + } + activateLog() { + this.unreadErrors = false; + this.updateComplete.then(() => { + const lastMessage = this.renderRoot.querySelector('.message-tray .message:last-child'); + if (lastMessage) { + lastMessage.scrollIntoView(); + } + }); + } + renderInfo() { + return html `
+ +
+
${this.serverInfo.productName}
+
${this.serverInfo.vaadinVersion}
+
Flow
+
${this.serverInfo.flowVersion}
+
Java
+
${this.serverInfo.javaVersion}
+
OS
+
${this.serverInfo.osVersion}
+
Browser
+
${navigator.userAgent}
+
+ Live reload + +
+
+ Java ${this.javaStatus} ${this.backend ? `(${VaadinDevTools.BACKEND_DISPLAY_NAME[this.backend]})` : ''} +
+
+ Front end ${this.frontendStatus} +
+
+
`; + } + renderFeatures() { + return html `
+ ${this.features.map((feature) => html `
+ + Learn more +
`)} +
`; + } + copyInfoToClipboard() { + const items = this.renderRoot.querySelectorAll('.info-tray dt, .info-tray dd'); + const text = Array.from(items) + .map((message) => (message.localName === 'dd' ? ': ' : '\n') + message.textContent.trim()) + .join('') + .replace(/^\n/, ''); + copy(text); + this.showNotification(MessageType.INFORMATION, 'Environment information copied to clipboard', undefined, undefined, 'versionInfoCopied'); + } + toggleFeatureFlag(e, feature) { + const enabled = e.target.checked; + if (this.frontendConnection) { + this.frontendConnection.setFeature(feature.id, enabled); + this.showNotification(MessageType.INFORMATION, `“${feature.title}” ${enabled ? 'enabled' : 'disabled'}`, feature.requiresServerRestart ? 'This feature requires a server restart' : undefined, undefined, `feature${feature.id}${enabled ? 'Enabled' : 'Disabled'}`); + } + else { + this.log(MessageType.ERROR, `Unable to toggle feature ${feature.title}: No server connection available`); + } + } +} +VaadinDevTools.BLUE_HSL = css `206, 100%, 70%`; +VaadinDevTools.GREEN_HSL = css `145, 80%, 42%`; +VaadinDevTools.GREY_HSL = css `0, 0%, 50%`; +VaadinDevTools.YELLOW_HSL = css `38, 98%, 64%`; +VaadinDevTools.RED_HSL = css `355, 100%, 68%`; +VaadinDevTools.MAX_LOG_ROWS = 1000; +VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE = 'vaadin.live-reload.dismissedNotifications'; +VaadinDevTools.ACTIVE_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.active'; +VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.triggered'; +VaadinDevTools.TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.triggeredCount'; +VaadinDevTools.AUTO_DEMOTE_NOTIFICATION_DELAY = 5000; +VaadinDevTools.HOTSWAP_AGENT = 'HOTSWAP_AGENT'; +VaadinDevTools.JREBEL = 'JREBEL'; +VaadinDevTools.SPRING_BOOT_DEVTOOLS = 'SPRING_BOOT_DEVTOOLS'; +VaadinDevTools.BACKEND_DISPLAY_NAME = { + HOTSWAP_AGENT: 'HotswapAgent', + JREBEL: 'JRebel', + SPRING_BOOT_DEVTOOLS: 'Spring Boot Devtools' +}; +__decorate([ + property({ type: String }) +], VaadinDevTools.prototype, "url", void 0); +__decorate([ + property({ type: Boolean, attribute: true }) +], VaadinDevTools.prototype, "liveReloadDisabled", void 0); +__decorate([ + property({ type: String }) +], VaadinDevTools.prototype, "backend", void 0); +__decorate([ + property({ type: Number }) +], VaadinDevTools.prototype, "springBootLiveReloadPort", void 0); +__decorate([ + property({ type: Boolean, attribute: false }) +], VaadinDevTools.prototype, "expanded", void 0); +__decorate([ + property({ type: Array, attribute: false }) +], VaadinDevTools.prototype, "messages", void 0); +__decorate([ + property({ type: String, attribute: false }) +], VaadinDevTools.prototype, "splashMessage", void 0); +__decorate([ + property({ type: Array, attribute: false }) +], VaadinDevTools.prototype, "notifications", void 0); +__decorate([ + property({ type: String, attribute: false }) +], VaadinDevTools.prototype, "frontendStatus", void 0); +__decorate([ + property({ type: String, attribute: false }) +], VaadinDevTools.prototype, "javaStatus", void 0); +__decorate([ + state() +], VaadinDevTools.prototype, "tabs", void 0); +__decorate([ + state() +], VaadinDevTools.prototype, "activeTab", void 0); +__decorate([ + state() +], VaadinDevTools.prototype, "serverInfo", void 0); +__decorate([ + state() +], VaadinDevTools.prototype, "features", void 0); +__decorate([ + state() +], VaadinDevTools.prototype, "unreadErrors", void 0); +__decorate([ + query('.window') +], VaadinDevTools.prototype, "root", void 0); +if (customElements.get('vaadin-dev-tools') === undefined) { + customElements.define('vaadin-dev-tools', VaadinDevTools); +} +//# sourceMappingURL=vaadin-dev-tools.js.map \ No newline at end of file diff --git a/frontend/generated/jar-resources/vaadin-dev-tools.js.map b/frontend/generated/jar-resources/vaadin-dev-tools.js.map new file mode 100644 index 0000000..55ba4dd --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-dev-tools.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vaadin-dev-tools.js","sourceRoot":"","sources":["../../../../src/main/frontend/vaadin-dev-tools.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { copy } from './copy-to-clipboard.js';\nimport { licenseCheckFailed, licenseCheckNoKey, licenseCheckOk, Product, licenseInit } from './License';\n\ninterface ServerInfo {\n vaadinVersion: string;\n flowVersion: string;\n javaVersion: string;\n osVersion: string;\n productName: string;\n}\n\ninterface Feature {\n id: string;\n title: string;\n moreInfoLink: string;\n requiresServerRestart: boolean;\n enabled: boolean;\n}\n\ninterface Tab {\n id: 'log' | 'info' | 'features';\n title: string;\n render: () => unknown;\n activate?: () => void;\n}\n\nenum ConnectionStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n UNAVAILABLE = 'unavailable',\n ERROR = 'error'\n}\n\nexport class Connection extends Object {\n static HEARTBEAT_INTERVAL = 180000;\n\n status: ConnectionStatus = ConnectionStatus.UNAVAILABLE;\n webSocket?: WebSocket;\n\n constructor(url?: string) {\n super();\n\n if (url) {\n this.webSocket = new WebSocket(url);\n this.webSocket.onmessage = (msg) => this.handleMessage(msg);\n this.webSocket.onerror = (err) => this.handleError(err);\n this.webSocket.onclose = (_) => {\n if (this.status !== ConnectionStatus.ERROR) {\n this.setStatus(ConnectionStatus.UNAVAILABLE);\n }\n this.webSocket = undefined;\n };\n }\n\n setInterval(() => {\n if (this.webSocket && self.status !== ConnectionStatus.ERROR && this.status !== ConnectionStatus.UNAVAILABLE) {\n this.webSocket.send('');\n }\n }, Connection.HEARTBEAT_INTERVAL);\n }\n\n onHandshake() {\n // Intentionally empty\n }\n\n onReload() {\n // Intentionally empty\n }\n\n onConnectionError(_: string) {\n // Intentionally empty\n }\n\n onStatusChange(_: ConnectionStatus) {\n // Intentionally empty\n }\n\n onMessage(message: any) {\n // eslint-disable-next-line no-console\n console.error('Unknown message received from the live reload server:', message);\n }\n\n handleMessage(msg: any) {\n let json;\n try {\n json = JSON.parse(msg.data);\n } catch (e: any) {\n this.handleError(`[${e.name}: ${e.message}`);\n return;\n }\n if (json.command === 'hello') {\n this.setStatus(ConnectionStatus.ACTIVE);\n this.onHandshake();\n } else if (json.command === 'reload') {\n if (this.status === ConnectionStatus.ACTIVE) {\n this.onReload();\n }\n } else if (json.command === 'license-check-ok') {\n licenseCheckOk(json.data);\n } else if (json.command === 'license-check-failed') {\n licenseCheckFailed(json.data);\n } else if (json.command === 'license-check-nokey') {\n licenseCheckNoKey(json.data);\n } else {\n this.onMessage(json);\n }\n }\n\n handleError(msg: any) {\n // eslint-disable-next-line no-console\n console.error(msg);\n this.setStatus(ConnectionStatus.ERROR);\n if (msg instanceof Event && this.webSocket) {\n this.onConnectionError(`Error in WebSocket connection to ${this.webSocket.url}`);\n } else {\n this.onConnectionError(msg);\n }\n }\n\n setActive(yes: boolean) {\n if (!yes && this.status === ConnectionStatus.ACTIVE) {\n this.setStatus(ConnectionStatus.INACTIVE);\n } else if (yes && this.status === ConnectionStatus.INACTIVE) {\n this.setStatus(ConnectionStatus.ACTIVE);\n }\n }\n\n setStatus(status: ConnectionStatus) {\n if (this.status !== status) {\n this.status = status;\n this.onStatusChange(status);\n }\n }\n\n private send(command: string, data: any) {\n const message = JSON.stringify({ command, data });\n if (!this.webSocket) {\n // eslint-disable-next-line no-console\n console.error(`Unable to send message ${command}. No websocket is available`);\n } else if (this.webSocket.readyState !== WebSocket.OPEN) {\n this.webSocket.addEventListener('open', () => this.webSocket!.send(message));\n } else {\n this.webSocket.send(message);\n }\n }\n\n setFeature(featureId: string, enabled: boolean) {\n this.send('setFeature', { featureId, enabled });\n }\n sendTelemetry(browserData: any) {\n this.send('reportTelemetry', { browserData });\n }\n sendLicenseCheck(product: Product) {\n this.send('checkLicense', product);\n }\n}\n\nenum MessageType {\n LOG = 'log',\n INFORMATION = 'information',\n WARNING = 'warning',\n ERROR = 'error'\n}\n\ninterface Message {\n id: number;\n type: MessageType;\n message: string;\n details?: string;\n link?: string;\n persistentId?: string;\n dontShowAgain: boolean;\n deleted: boolean;\n}\n\nexport class VaadinDevTools extends LitElement {\n static BLUE_HSL = css`206, 100%, 70%`;\n static GREEN_HSL = css`145, 80%, 42%`;\n static GREY_HSL = css`0, 0%, 50%`;\n static YELLOW_HSL = css`38, 98%, 64%`;\n static RED_HSL = css`355, 100%, 68%`;\n static MAX_LOG_ROWS = 1000;\n\n static get styles() {\n return css`\n :host {\n --dev-tools-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,\n 'Helvetica Neue', sans-serif;\n --dev-tools-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',\n monospace;\n\n --dev-tools-font-size: 0.8125rem;\n --dev-tools-font-size-small: 0.75rem;\n\n --dev-tools-text-color: rgba(255, 255, 255, 0.8);\n --dev-tools-text-color-secondary: rgba(255, 255, 255, 0.65);\n --dev-tools-text-color-emphasis: rgba(255, 255, 255, 0.95);\n --dev-tools-text-color-active: rgba(255, 255, 255, 1);\n\n --dev-tools-background-color-inactive: rgba(45, 45, 45, 0.25);\n --dev-tools-background-color-active: rgba(45, 45, 45, 0.98);\n --dev-tools-background-color-active-blurred: rgba(45, 45, 45, 0.85);\n\n --dev-tools-border-radius: 0.5rem;\n --dev-tools-box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05), 0 4px 12px -2px rgba(0, 0, 0, 0.4);\n\n --dev-tools-blue-hsl: ${this.BLUE_HSL};\n --dev-tools-blue-color: hsl(var(--dev-tools-blue-hsl));\n --dev-tools-green-hsl: ${this.GREEN_HSL};\n --dev-tools-green-color: hsl(var(--dev-tools-green-hsl));\n --dev-tools-grey-hsl: ${this.GREY_HSL};\n --dev-tools-grey-color: hsl(var(--dev-tools-grey-hsl));\n --dev-tools-yellow-hsl: ${this.YELLOW_HSL};\n --dev-tools-yellow-color: hsl(var(--dev-tools-yellow-hsl));\n --dev-tools-red-hsl: ${this.RED_HSL};\n --dev-tools-red-color: hsl(var(--dev-tools-red-hsl));\n\n /* Needs to be in ms, used in JavaScript as well */\n --dev-tools-transition-duration: 180ms;\n\n all: initial;\n\n direction: ltr;\n cursor: default;\n font: normal 400 var(--dev-tools-font-size) / 1.125rem var(--dev-tools-font-family);\n color: var(--dev-tools-text-color);\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n\n position: fixed;\n z-index: 20000;\n pointer-events: none;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column-reverse;\n align-items: flex-end;\n }\n\n .dev-tools {\n pointer-events: auto;\n display: flex;\n align-items: center;\n position: fixed;\n z-index: inherit;\n right: 0.5rem;\n bottom: 0.5rem;\n min-width: 1.75rem;\n height: 1.75rem;\n max-width: 1.75rem;\n border-radius: 0.5rem;\n padding: 0.375rem;\n box-sizing: border-box;\n background-color: var(--dev-tools-background-color-inactive);\n box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.05);\n color: var(--dev-tools-text-color);\n transition: var(--dev-tools-transition-duration);\n white-space: nowrap;\n line-height: 1rem;\n }\n\n .dev-tools:hover,\n .dev-tools.active {\n background-color: var(--dev-tools-background-color-active);\n box-shadow: var(--dev-tools-box-shadow);\n }\n\n .dev-tools.active {\n max-width: calc(100% - 1rem);\n }\n\n .dev-tools .dev-tools-icon {\n flex: none;\n pointer-events: none;\n display: inline-block;\n width: 1rem;\n height: 1rem;\n fill: #fff;\n transition: var(--dev-tools-transition-duration);\n margin: 0;\n }\n\n .dev-tools.active .dev-tools-icon {\n opacity: 0;\n position: absolute;\n transform: scale(0.5);\n }\n\n .dev-tools .status-blip {\n flex: none;\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n z-index: 20001;\n background: var(--dev-tools-grey-color);\n position: absolute;\n top: -1px;\n right: -1px;\n }\n\n .dev-tools .status-description {\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0 0.25rem;\n }\n\n .dev-tools.error {\n background-color: hsla(var(--dev-tools-red-hsl), 0.15);\n animation: bounce 0.5s;\n animation-iteration-count: 2;\n }\n\n .switch {\n display: inline-flex;\n align-items: center;\n }\n\n .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n }\n\n .switch .slider {\n display: block;\n flex: none;\n width: 28px;\n height: 18px;\n border-radius: 9px;\n background-color: rgba(255, 255, 255, 0.3);\n transition: var(--dev-tools-transition-duration);\n margin-right: 0.5rem;\n }\n\n .switch:focus-within .slider,\n .switch .slider:hover {\n background-color: rgba(255, 255, 255, 0.35);\n transition: none;\n }\n\n .switch input:focus-visible ~ .slider {\n box-shadow: 0 0 0 2px var(--dev-tools-background-color-active), 0 0 0 4px var(--dev-tools-blue-color);\n }\n\n .switch .slider::before {\n content: '';\n display: block;\n margin: 2px;\n width: 14px;\n height: 14px;\n background-color: #fff;\n transition: var(--dev-tools-transition-duration);\n border-radius: 50%;\n }\n\n .switch input:checked + .slider {\n background-color: var(--dev-tools-green-color);\n }\n\n .switch input:checked + .slider::before {\n transform: translateX(10px);\n }\n\n .switch input:disabled + .slider::before {\n background-color: var(--dev-tools-grey-color);\n }\n\n .window.hidden {\n opacity: 0;\n transform: scale(0);\n position: absolute;\n }\n\n .window.visible {\n transform: none;\n opacity: 1;\n pointer-events: auto;\n }\n\n .window.visible ~ .dev-tools {\n opacity: 0;\n pointer-events: none;\n }\n\n .window.visible ~ .dev-tools .dev-tools-icon,\n .window.visible ~ .dev-tools .status-blip {\n transition: none;\n opacity: 0;\n }\n\n .window {\n border-radius: var(--dev-tools-border-radius);\n overflow: hidden;\n margin: 0.5rem;\n width: 30rem;\n max-width: calc(100% - 1rem);\n max-height: calc(100vh - 1rem);\n flex-shrink: 1;\n background-color: var(--dev-tools-background-color-active);\n color: var(--dev-tools-text-color);\n transition: var(--dev-tools-transition-duration);\n transform-origin: bottom right;\n display: flex;\n flex-direction: column;\n box-shadow: var(--dev-tools-box-shadow);\n outline: none;\n }\n\n .window-toolbar {\n display: flex;\n flex: none;\n align-items: center;\n padding: 0.375rem;\n white-space: nowrap;\n order: 1;\n background-color: rgba(0, 0, 0, 0.2);\n gap: 0.5rem;\n }\n\n .tab {\n color: var(--dev-tools-text-color-secondary);\n font: inherit;\n font-size: var(--dev-tools-font-size-small);\n font-weight: 500;\n line-height: 1;\n padding: 0.25rem 0.375rem;\n background: none;\n border: none;\n margin: 0;\n border-radius: 0.25rem;\n transition: var(--dev-tools-transition-duration);\n }\n\n .tab:hover,\n .tab.active {\n color: var(--dev-tools-text-color-active);\n }\n\n .tab.active {\n background-color: rgba(255, 255, 255, 0.12);\n }\n\n .tab.unreadErrors::after {\n content: '•';\n color: hsl(var(--dev-tools-red-hsl));\n font-size: 1.5rem;\n position: absolute;\n transform: translate(0, -50%);\n }\n\n .ahreflike {\n font-weight: 500;\n color: var(--dev-tools-text-color-secondary);\n text-decoration: underline;\n cursor: pointer;\n }\n\n .ahreflike:hover {\n color: var(--dev-tools-text-color-emphasis);\n }\n\n .button {\n all: initial;\n font-family: inherit;\n font-size: var(--dev-tools-font-size-small);\n line-height: 1;\n white-space: nowrap;\n background-color: rgba(0, 0, 0, 0.2);\n color: inherit;\n font-weight: 600;\n padding: 0.25rem 0.375rem;\n border-radius: 0.25rem;\n }\n\n .button:focus,\n .button:hover {\n color: var(--dev-tools-text-color-emphasis);\n }\n\n .minimize-button {\n flex: none;\n width: 1rem;\n height: 1rem;\n color: inherit;\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0 0 0 auto;\n opacity: 0.8;\n }\n\n .minimize-button:hover {\n opacity: 1;\n }\n\n .minimize-button svg {\n max-width: 100%;\n }\n\n .message.information {\n --dev-tools-notification-color: var(--dev-tools-blue-color);\n }\n\n .message.warning {\n --dev-tools-notification-color: var(--dev-tools-yellow-color);\n }\n\n .message.error {\n --dev-tools-notification-color: var(--dev-tools-red-color);\n }\n\n .message {\n display: flex;\n padding: 0.1875rem 0.75rem 0.1875rem 2rem;\n background-clip: padding-box;\n }\n\n .message.log {\n padding-left: 0.75rem;\n }\n\n .message-content {\n margin-right: 0.5rem;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n }\n\n .message-heading {\n position: relative;\n display: flex;\n align-items: center;\n margin: 0.125rem 0;\n }\n\n .message.log {\n color: var(--dev-tools-text-color-secondary);\n }\n\n .message:not(.log) .message-heading {\n font-weight: 500;\n }\n\n .message.has-details .message-heading {\n color: var(--dev-tools-text-color-emphasis);\n font-weight: 600;\n }\n\n .message-heading::before {\n position: absolute;\n margin-left: -1.5rem;\n display: inline-block;\n text-align: center;\n font-size: 0.875em;\n font-weight: 600;\n line-height: calc(1.25em - 2px);\n width: 14px;\n height: 14px;\n box-sizing: border-box;\n border: 1px solid transparent;\n border-radius: 50%;\n }\n\n .message.information .message-heading::before {\n content: 'i';\n border-color: currentColor;\n color: var(--dev-tools-notification-color);\n }\n\n .message.warning .message-heading::before,\n .message.error .message-heading::before {\n content: '!';\n color: var(--dev-tools-background-color-active);\n background-color: var(--dev-tools-notification-color);\n }\n\n .features-tray {\n padding: 0.75rem;\n flex: auto;\n overflow: auto;\n animation: fade-in var(--dev-tools-transition-duration) ease-in;\n user-select: text;\n }\n\n .features-tray p {\n margin-top: 0;\n color: var(--dev-tools-text-color-secondary);\n }\n\n .features-tray .feature {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding-bottom: 0.5em;\n }\n\n .message .message-details {\n font-weight: 400;\n color: var(--dev-tools-text-color-secondary);\n margin: 0.25rem 0;\n }\n\n .message .message-details[hidden] {\n display: none;\n }\n\n .message .message-details p {\n display: inline;\n margin: 0;\n margin-right: 0.375em;\n word-break: break-word;\n }\n\n .message .persist {\n color: var(--dev-tools-text-color-secondary);\n white-space: nowrap;\n margin: 0.375rem 0;\n display: flex;\n align-items: center;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n .message .persist::before {\n content: '';\n width: 1em;\n height: 1em;\n border-radius: 0.2em;\n margin-right: 0.375em;\n background-color: rgba(255, 255, 255, 0.3);\n }\n\n .message .persist:hover::before {\n background-color: rgba(255, 255, 255, 0.4);\n }\n\n .message .persist.on::before {\n background-color: rgba(255, 255, 255, 0.9);\n }\n\n .message .persist.on::after {\n content: '';\n order: -1;\n position: absolute;\n width: 0.75em;\n height: 0.25em;\n border: 2px solid var(--dev-tools-background-color-active);\n border-width: 0 0 2px 2px;\n transform: translate(0.05em, -0.05em) rotate(-45deg) scale(0.8, 0.9);\n }\n\n .message .dismiss-message {\n font-weight: 600;\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0 0.25rem;\n margin-left: 0.5rem;\n color: var(--dev-tools-text-color-secondary);\n }\n\n .message .dismiss-message:hover {\n color: var(--dev-tools-text-color);\n }\n\n .notification-tray {\n display: flex;\n flex-direction: column-reverse;\n align-items: flex-end;\n margin: 0.5rem;\n flex: none;\n }\n\n .window.hidden + .notification-tray {\n margin-bottom: 3rem;\n }\n\n .notification-tray .message {\n pointer-events: auto;\n background-color: var(--dev-tools-background-color-active);\n color: var(--dev-tools-text-color);\n max-width: 30rem;\n box-sizing: border-box;\n border-radius: var(--dev-tools-border-radius);\n margin-top: 0.5rem;\n transition: var(--dev-tools-transition-duration);\n transform-origin: bottom right;\n animation: slideIn var(--dev-tools-transition-duration);\n box-shadow: var(--dev-tools-box-shadow);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n\n .notification-tray .message.animate-out {\n animation: slideOut forwards var(--dev-tools-transition-duration);\n }\n\n .notification-tray .message .message-details {\n max-height: 10em;\n overflow: hidden;\n }\n\n .message-tray {\n flex: auto;\n overflow: auto;\n max-height: 20rem;\n user-select: text;\n }\n\n .message-tray .message {\n animation: fade-in var(--dev-tools-transition-duration) ease-in;\n padding-left: 2.25rem;\n }\n\n .message-tray .message.warning {\n background-color: hsla(var(--dev-tools-yellow-hsl), 0.09);\n }\n\n .message-tray .message.error {\n background-color: hsla(var(--dev-tools-red-hsl), 0.09);\n }\n\n .message-tray .message.error .message-heading {\n color: hsl(var(--dev-tools-red-hsl));\n }\n\n .message-tray .message.warning .message-heading {\n color: hsl(var(--dev-tools-yellow-hsl));\n }\n\n .message-tray .message + .message {\n border-top: 1px solid rgba(255, 255, 255, 0.07);\n }\n\n .message-tray .dismiss-message,\n .message-tray .persist {\n display: none;\n }\n\n .info-tray {\n padding: 0.75rem;\n position: relative;\n flex: auto;\n overflow: auto;\n animation: fade-in var(--dev-tools-transition-duration) ease-in;\n user-select: text;\n }\n\n .info-tray dl {\n margin: 0;\n display: grid;\n grid-template-columns: max-content 1fr;\n column-gap: 0.75rem;\n position: relative;\n }\n\n .info-tray dt {\n grid-column: 1;\n color: var(--dev-tools-text-color-emphasis);\n }\n\n .info-tray dt:not(:first-child)::before {\n content: '';\n width: 100%;\n position: absolute;\n height: 1px;\n background-color: rgba(255, 255, 255, 0.1);\n margin-top: -0.375rem;\n }\n\n .info-tray dd {\n grid-column: 2;\n margin: 0;\n }\n\n .info-tray :is(dt, dd):not(:last-child) {\n margin-bottom: 0.75rem;\n }\n\n .info-tray dd + dd {\n margin-top: -0.5rem;\n }\n\n .info-tray .live-reload-status::before {\n content: '•';\n color: var(--status-color);\n width: 0.75rem;\n display: inline-block;\n font-size: 1rem;\n line-height: 0.5rem;\n }\n\n .info-tray .copy {\n position: fixed;\n z-index: 1;\n top: 0.5rem;\n right: 0.5rem;\n }\n\n .info-tray .switch {\n vertical-align: -4px;\n }\n\n @keyframes slideIn {\n from {\n transform: translateX(100%);\n opacity: 0;\n }\n to {\n transform: translateX(0%);\n opacity: 1;\n }\n }\n\n @keyframes slideOut {\n from {\n transform: translateX(0%);\n opacity: 1;\n }\n to {\n transform: translateX(100%);\n opacity: 0;\n }\n }\n\n @keyframes fade-in {\n 0% {\n opacity: 0;\n }\n }\n\n @keyframes bounce {\n 0% {\n transform: scale(0.8);\n }\n 50% {\n transform: scale(1.5);\n background-color: hsla(var(--dev-tools-red-hsl), 1);\n }\n 100% {\n transform: scale(1);\n }\n }\n\n @supports (backdrop-filter: blur(1px)) {\n .dev-tools,\n .window,\n .notification-tray .message {\n backdrop-filter: blur(8px);\n }\n .dev-tools:hover,\n .dev-tools.active,\n .window,\n .notification-tray .message {\n background-color: var(--dev-tools-background-color-active-blurred);\n }\n }\n `;\n }\n\n static DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE = 'vaadin.live-reload.dismissedNotifications';\n static ACTIVE_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.active';\n static TRIGGERED_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.triggered';\n static TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE = 'vaadin.live-reload.triggeredCount';\n\n static AUTO_DEMOTE_NOTIFICATION_DELAY = 5000;\n\n static HOTSWAP_AGENT = 'HOTSWAP_AGENT';\n static JREBEL = 'JREBEL';\n static SPRING_BOOT_DEVTOOLS = 'SPRING_BOOT_DEVTOOLS';\n static BACKEND_DISPLAY_NAME: Record = {\n HOTSWAP_AGENT: 'HotswapAgent',\n JREBEL: 'JRebel',\n SPRING_BOOT_DEVTOOLS: 'Spring Boot Devtools'\n };\n\n static get isActive() {\n const active = window.sessionStorage.getItem(VaadinDevTools.ACTIVE_KEY_IN_SESSION_STORAGE);\n return active === null || active !== 'false';\n }\n\n static notificationDismissed(persistentId: string) {\n const shown = window.localStorage.getItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE);\n return shown !== null && shown.includes(persistentId);\n }\n\n @property({ type: String })\n url?: string;\n\n @property({ type: Boolean, attribute: true })\n liveReloadDisabled?: boolean;\n\n @property({ type: String })\n backend?: string;\n\n @property({ type: Number })\n springBootLiveReloadPort?: number;\n\n @property({ type: Boolean, attribute: false })\n expanded: boolean = false;\n\n @property({ type: Array, attribute: false })\n messages: Message[] = [];\n\n @property({ type: String, attribute: false })\n splashMessage?: string;\n\n @property({ type: Array, attribute: false })\n notifications: Message[] = [];\n\n @property({ type: String, attribute: false })\n frontendStatus: ConnectionStatus = ConnectionStatus.UNAVAILABLE;\n\n @property({ type: String, attribute: false })\n javaStatus: ConnectionStatus = ConnectionStatus.UNAVAILABLE;\n\n @state()\n private tabs: readonly Tab[] = [\n { id: 'log', title: 'Log', render: this.renderLog, activate: this.activateLog },\n { id: 'info', title: 'Info', render: this.renderInfo },\n { id: 'features', title: 'Feature Flags', render: this.renderFeatures }\n ];\n\n @state()\n private activeTab: string = 'log';\n\n @state()\n private serverInfo: ServerInfo = {\n flowVersion: '',\n vaadinVersion: '',\n javaVersion: '',\n osVersion: '',\n productName: ''\n };\n\n @state()\n private features: Feature[] = [];\n\n @state()\n private unreadErrors = false;\n\n @query('.window')\n private root!: HTMLElement;\n\n private javaConnection?: Connection;\n private frontendConnection?: Connection;\n\n private nextMessageId: number = 1;\n\n private disableEventListener?: EventListener;\n\n private transitionDuration: number = 0;\n\n elementTelemetry() {\n let data = {};\n try {\n // localstorage data is collected by vaadin-usage-statistics.js\n const localStorageStatsString = localStorage.getItem('vaadin.statistics.basket');\n if (!localStorageStatsString) {\n // Do not send empty data\n return;\n }\n data = JSON.parse(localStorageStatsString);\n } catch (e) {\n // In case of parse errors don't send anything\n return;\n }\n\n if (this.frontendConnection) {\n this.frontendConnection.sendTelemetry(data);\n }\n }\n\n openWebSocketConnection() {\n this.frontendStatus = ConnectionStatus.UNAVAILABLE;\n this.javaStatus = ConnectionStatus.UNAVAILABLE;\n\n const onConnectionError = (msg: string) => this.log(MessageType.ERROR, msg);\n const onReload = () => {\n if (this.liveReloadDisabled) {\n return;\n }\n this.showSplashMessage('Reloading…');\n const lastReload = window.sessionStorage.getItem(VaadinDevTools.TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE);\n const nextReload = lastReload ? parseInt(lastReload, 10) + 1 : 1;\n window.sessionStorage.setItem(VaadinDevTools.TRIGGERED_COUNT_KEY_IN_SESSION_STORAGE, nextReload.toString());\n window.sessionStorage.setItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE, 'true');\n window.location.reload();\n };\n\n const frontendConnection = new Connection(this.getDedicatedWebSocketUrl());\n frontendConnection.onHandshake = () => {\n this.log(MessageType.LOG, 'Vaadin development mode initialized');\n if (!VaadinDevTools.isActive) {\n frontendConnection.setActive(false);\n }\n this.elementTelemetry();\n };\n frontendConnection.onConnectionError = onConnectionError;\n frontendConnection.onReload = onReload;\n frontendConnection.onStatusChange = (status: ConnectionStatus) => {\n this.frontendStatus = status;\n };\n frontendConnection.onMessage = (message: any) => {\n if (message?.command === 'serverInfo') {\n this.serverInfo = message.data as ServerInfo;\n } else if (message?.command === 'featureFlags') {\n this.features = message.data.features as Feature[];\n } else {\n // eslint-disable-next-line no-console\n console.error('Unknown message from front-end connection:', JSON.stringify(message));\n }\n };\n this.frontendConnection = frontendConnection;\n\n let javaConnection: Connection;\n if (this.backend === VaadinDevTools.SPRING_BOOT_DEVTOOLS && this.springBootLiveReloadPort) {\n javaConnection = new Connection(this.getSpringBootWebSocketUrl(window.location));\n javaConnection.onHandshake = () => {\n if (!VaadinDevTools.isActive) {\n javaConnection.setActive(false);\n }\n };\n javaConnection.onReload = onReload;\n javaConnection.onConnectionError = onConnectionError;\n } else if (this.backend === VaadinDevTools.JREBEL || this.backend === VaadinDevTools.HOTSWAP_AGENT) {\n javaConnection = frontendConnection;\n } else {\n javaConnection = new Connection(undefined);\n }\n const prevOnStatusChange = javaConnection.onStatusChange;\n javaConnection.onStatusChange = (status) => {\n prevOnStatusChange(status);\n this.javaStatus = status;\n };\n const prevOnHandshake = javaConnection.onHandshake;\n javaConnection.onHandshake = () => {\n prevOnHandshake();\n if (this.backend) {\n this.log(\n MessageType.INFORMATION,\n `Java live reload available: ${VaadinDevTools.BACKEND_DISPLAY_NAME[this.backend]}`\n );\n }\n };\n this.javaConnection = javaConnection;\n\n if (!this.backend) {\n this.showNotification(\n MessageType.WARNING,\n 'Java live reload unavailable',\n 'Live reload for Java changes is currently not set up. Find out how to make use of this functionality to boost your workflow.',\n 'https://vaadin.com/docs/latest/flow/configuration/live-reload',\n 'liveReloadUnavailable'\n );\n }\n }\n\n getDedicatedWebSocketUrl(): string | undefined {\n function getAbsoluteUrl(relative: string) {\n // Use innerHTML to obtain an absolute URL\n const div = document.createElement('div');\n div.innerHTML = ``;\n return (div.firstChild as HTMLLinkElement).href;\n }\n if (this.url === undefined) {\n return undefined;\n }\n const connectionBaseUrl = getAbsoluteUrl(this.url!);\n\n if (!connectionBaseUrl.startsWith('http://') && !connectionBaseUrl.startsWith('https://')) {\n // eslint-disable-next-line no-console\n console.error('The protocol of the url should be http or https for live reload to work.');\n return undefined;\n }\n return `${connectionBaseUrl.replace(/^http/, 'ws')}?v-r=push&debug_window`;\n }\n\n getSpringBootWebSocketUrl(location: any) {\n const { hostname } = location;\n const wsProtocol = location.protocol === 'https:' ? 'wss' : 'ws';\n if (hostname.endsWith('gitpod.io')) {\n // Gitpod uses `port-url` instead of `url:port`\n const hostnameWithoutPort = hostname.replace(/.*?-/, '');\n return `${wsProtocol}://${this.springBootLiveReloadPort}-${hostnameWithoutPort}`;\n } else {\n return `${wsProtocol}://${hostname}:${this.springBootLiveReloadPort}`;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.catchErrors();\n\n // when focus or clicking anywhere, move the splash message to the message tray\n this.disableEventListener = (_: any) => this.demoteSplashMessage();\n document.body.addEventListener('focus', this.disableEventListener);\n document.body.addEventListener('click', this.disableEventListener);\n this.openWebSocketConnection();\n\n const lastReload = window.sessionStorage.getItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE);\n if (lastReload) {\n const now = new Date();\n const reloaded = `${`0${now.getHours()}`.slice(-2)}:${`0${now.getMinutes()}`.slice(\n -2\n )}:${`0${now.getSeconds()}`.slice(-2)}`;\n this.showSplashMessage(`Page reloaded at ${reloaded}`);\n window.sessionStorage.removeItem(VaadinDevTools.TRIGGERED_KEY_IN_SESSION_STORAGE);\n }\n\n this.transitionDuration = parseInt(\n window.getComputedStyle(this).getPropertyValue('--dev-tools-transition-duration'),\n 10\n );\n\n const windowAny = window as any;\n windowAny.Vaadin = windowAny.Vaadin || {};\n windowAny.Vaadin.devTools = Object.assign(this, windowAny.Vaadin.devTools);\n\n licenseInit();\n }\n format(o: any): string {\n return o.toString();\n }\n catchErrors() {\n // Process stored messages\n const queue = (window as any).Vaadin.ConsoleErrors as any[];\n if (queue) {\n queue.forEach((args: any[]) => {\n this.log(MessageType.ERROR, args.map((o) => this.format(o)).join(' '));\n });\n }\n // Install new handler that immediately processes messages\n (window as any).Vaadin.ConsoleErrors = {\n push: (args: any[]) => {\n this.log(MessageType.ERROR, args.map((o) => this.format(o)).join(' '));\n }\n };\n }\n\n disconnectedCallback() {\n if (this.disableEventListener) {\n document.body.removeEventListener('focus', this.disableEventListener!);\n document.body.removeEventListener('click', this.disableEventListener!);\n }\n super.disconnectedCallback();\n }\n\n toggleExpanded() {\n this.notifications.slice().forEach((notification) => this.dismissNotification(notification.id));\n this.expanded = !this.expanded;\n if (this.expanded) {\n this.root.focus();\n }\n }\n\n showSplashMessage(msg: string | undefined) {\n this.splashMessage = msg;\n if (this.splashMessage) {\n if (this.expanded) {\n this.demoteSplashMessage();\n } else {\n // automatically move notification to message tray after a certain amount of time\n setTimeout(() => {\n this.demoteSplashMessage();\n }, VaadinDevTools.AUTO_DEMOTE_NOTIFICATION_DELAY);\n }\n }\n }\n\n demoteSplashMessage() {\n if (this.splashMessage) {\n this.log(MessageType.LOG, this.splashMessage);\n }\n this.showSplashMessage(undefined);\n }\n\n checkLicense(productInfo: Product) {\n if (this.frontendConnection) {\n this.frontendConnection.sendLicenseCheck(productInfo);\n } else {\n licenseCheckFailed({ message: 'Internal error: no connection', product: productInfo });\n }\n }\n\n log(type: MessageType, message: string, details?: string, link?: string) {\n const id = this.nextMessageId;\n this.nextMessageId += 1;\n this.messages.push({\n id,\n type,\n message,\n details,\n link,\n dontShowAgain: false,\n deleted: false\n });\n while (this.messages.length > VaadinDevTools.MAX_LOG_ROWS) {\n this.messages.shift();\n }\n this.requestUpdate();\n this.updateComplete.then(() => {\n // Scroll into view\n const lastMessage = this.renderRoot.querySelector('.message-tray .message:last-child');\n if (this.expanded && lastMessage) {\n setTimeout(() => lastMessage.scrollIntoView({ behavior: 'smooth' }), this.transitionDuration);\n this.unreadErrors = false;\n } else if (type === MessageType.ERROR) {\n this.unreadErrors = true;\n }\n });\n }\n\n showNotification(type: MessageType, message: string, details?: string, link?: string, persistentId?: string) {\n if (persistentId === undefined || !VaadinDevTools.notificationDismissed(persistentId!)) {\n // Do not open persistent message if another is already visible with the same persistentId\n const matchingVisibleNotifications = this.notifications\n .filter((notification) => notification.persistentId === persistentId)\n .filter((notification) => !notification.deleted);\n if (matchingVisibleNotifications.length > 0) {\n return;\n }\n const id = this.nextMessageId;\n this.nextMessageId += 1;\n this.notifications.push({\n id,\n type,\n message,\n details,\n link,\n persistentId,\n dontShowAgain: false,\n deleted: false\n });\n // automatically move notification to message tray after a certain amount of time unless it contains a link\n if (link === undefined) {\n setTimeout(() => {\n this.dismissNotification(id);\n }, VaadinDevTools.AUTO_DEMOTE_NOTIFICATION_DELAY);\n }\n this.requestUpdate();\n } else {\n this.log(type, message, details, link);\n }\n }\n\n dismissNotification(id: number) {\n const index = this.findNotificationIndex(id);\n if (index !== -1 && !this.notifications[index].deleted) {\n const notification = this.notifications[index];\n\n // user is explicitly dismissing a notification---after that we won't bug them with it\n if (\n notification.dontShowAgain &&\n notification.persistentId &&\n !VaadinDevTools.notificationDismissed(notification.persistentId)\n ) {\n let dismissed = window.localStorage.getItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE);\n dismissed = dismissed === null ? notification.persistentId : `${dismissed},${notification.persistentId}`;\n window.localStorage.setItem(VaadinDevTools.DISMISSED_NOTIFICATIONS_IN_LOCAL_STORAGE, dismissed);\n }\n\n notification.deleted = true;\n this.log(notification.type, notification.message, notification.details, notification.link);\n\n // give some time for the animation\n setTimeout(() => {\n const idx = this.findNotificationIndex(id);\n if (idx !== -1) {\n this.notifications.splice(idx, 1);\n this.requestUpdate();\n }\n }, this.transitionDuration);\n }\n }\n\n findNotificationIndex(id: number): number {\n let index = -1;\n this.notifications.some((notification, idx) => {\n if (notification.id === id) {\n index = idx;\n return true;\n } else {\n return false;\n }\n });\n return index;\n }\n\n toggleDontShowAgain(id: number) {\n const index = this.findNotificationIndex(id);\n if (index !== -1 && !this.notifications[index].deleted) {\n const notification = this.notifications[index];\n notification.dontShowAgain = !notification.dontShowAgain;\n this.requestUpdate();\n }\n }\n\n setActive(yes: boolean) {\n this.frontendConnection?.setActive(yes);\n this.javaConnection?.setActive(yes);\n window.sessionStorage.setItem(VaadinDevTools.ACTIVE_KEY_IN_SESSION_STORAGE, yes ? 'true' : 'false');\n }\n\n getStatusColor(status: ConnectionStatus | undefined) {\n if (status === ConnectionStatus.ACTIVE) {\n return css`hsl(${VaadinDevTools.GREEN_HSL})`;\n } else if (status === ConnectionStatus.INACTIVE) {\n return css`hsl(${VaadinDevTools.GREY_HSL})`;\n } else if (status === ConnectionStatus.UNAVAILABLE) {\n return css`hsl(${VaadinDevTools.YELLOW_HSL})`;\n } else if (status === ConnectionStatus.ERROR) {\n return css`hsl(${VaadinDevTools.RED_HSL})`;\n } else {\n return css`none`;\n }\n }\n\n /* eslint-disable lit/no-template-arrow */\n renderMessage(messageObject: Message) {\n return html`\n \n
\n
${messageObject.message}
\n
\n ${messageObject.persistentId\n ? html` this.toggleDontShowAgain(messageObject.id)}\n >\n Don’t show again\n
`\n : ''}\n \n
this.dismissNotification(messageObject.id)}>Dismiss
\n \n `;\n }\n\n /* eslint-disable lit/no-template-map */\n render() {\n return html` e.key === 'Escape' && this.toggleExpanded()}\n >\n
\n ${this.tabs.map(\n (tab) =>\n html` {\n this.activeTab = tab.id;\n if (tab.activate) tab.activate.call(this);\n }}\n >\n ${tab.title}\n `\n )}\n \n
\n ${this.tabs.map((tab) => (this.activeTab === tab.id ? tab.render.call(this) : nothing))}\n \n\n
${this.notifications.map((msg) => this.renderMessage(msg))}
\n this.toggleExpanded()}\n >\n ${this.unreadErrors\n ? html`\n \n \n \n \n \n `\n : html`\n \n \n \n \n `}\n\n \n ${this.splashMessage ? html`${this.splashMessage}` : nothing}\n `;\n }\n\n renderLog() {\n return html`
${this.messages.map((msg) => this.renderMessage(msg))}
`;\n }\n activateLog() {\n this.unreadErrors = false;\n this.updateComplete.then(() => {\n const lastMessage = this.renderRoot.querySelector('.message-tray .message:last-child');\n if (lastMessage) {\n lastMessage.scrollIntoView();\n }\n });\n }\n\n renderInfo() {\n return html`
\n \n
\n
${this.serverInfo.productName}
\n
${this.serverInfo.vaadinVersion}
\n
Flow
\n
${this.serverInfo.flowVersion}
\n
Java
\n
${this.serverInfo.javaVersion}
\n
OS
\n
${this.serverInfo.osVersion}
\n
Browser
\n
${navigator.userAgent}
\n
\n Live reload\n \n
\n
\n Java ${this.javaStatus} ${this.backend ? `(${VaadinDevTools.BACKEND_DISPLAY_NAME[this.backend]})` : ''}\n
\n
\n Front end ${this.frontendStatus}\n
\n
\n
`;\n }\n\n private renderFeatures() {\n return html`
\n ${this.features.map(\n (feature) => html`
\n \n Learn more\n
`\n )}\n
`;\n }\n\n copyInfoToClipboard() {\n const items = this.renderRoot.querySelectorAll('.info-tray dt, .info-tray dd');\n const text = Array.from(items)\n .map((message) => (message.localName === 'dd' ? ': ' : '\\n') + message.textContent!.trim())\n .join('')\n .replace(/^\\n/, '');\n copy(text);\n this.showNotification(\n MessageType.INFORMATION,\n 'Environment information copied to clipboard',\n undefined,\n undefined,\n 'versionInfoCopied'\n );\n }\n\n toggleFeatureFlag(e: Event, feature: Feature) {\n const enabled = (e.target! as HTMLInputElement).checked;\n if (this.frontendConnection) {\n this.frontendConnection.setFeature(feature.id, enabled);\n this.showNotification(\n MessageType.INFORMATION,\n `“${feature.title}” ${enabled ? 'enabled' : 'disabled'}`,\n feature.requiresServerRestart ? 'This feature requires a server restart' : undefined,\n undefined,\n `feature${feature.id}${enabled ? 'Enabled' : 'Disabled'}`\n );\n } else {\n this.log(MessageType.ERROR, `Unable to toggle feature ${feature.title}: No server connection available`);\n }\n }\n}\n\nif (customElements.get('vaadin-dev-tools') === undefined) {\n customElements.define('vaadin-dev-tools', VaadinDevTools);\n}\n"]} \ No newline at end of file diff --git a/frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js b/frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js new file mode 100644 index 0000000..3c368de --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js @@ -0,0 +1,156 @@ +import '@vaadin/grid/vaadin-grid-column.js'; +import { GridColumn } from '@vaadin/grid/src/vaadin-grid-column.js'; +{ + class GridFlowSelectionColumnElement extends GridColumn { + + static get is() { + return 'vaadin-grid-flow-selection-column'; + } + + static get properties() { + return { + + /** + * Automatically sets the width of the column based on the column contents when this is set to `true`. + */ + autoWidth: { + type: Boolean, + value: true + }, + + /** + * Width of the cells for this column. + */ + width: { + type: String, + value: '56px' + }, + + /** + * Flex grow ratio for the cell widths. When set to 0, cell width is fixed. + */ + flexGrow: { + type: Number, + value: 0 + }, + + /** + * When true, all the items are selected. + */ + selectAll: { + type: Boolean, + value: false, + notify: true + }, + + /** + * Whether to display the select all checkbox in indeterminate state, + * which means some, but not all, items are selected + */ + indeterminate: { + type: Boolean, + value: false, + notify: true + }, + + selectAllHidden: Boolean + }; + } + + constructor() { + super(); + this._boundOnSelectEvent = this._onSelectEvent.bind(this); + this._boundOnDeselectEvent = this._onDeselectEvent.bind(this); + } + + static get observers() { + return [ + '_onHeaderRendererOrBindingChanged(_headerRenderer, _headerCell, path, header, selectAll, indeterminate, selectAllHidden)' + ]; + } + + /** @private */ + connectedCallback() { + super.connectedCallback(); + if (this._grid) { + this._grid.addEventListener('select', this._boundOnSelectEvent); + this._grid.addEventListener('deselect', this._boundOnDeselectEvent); + } + } + + /** @private */ + disconnectedCallback() { + super.disconnectedCallback(); + if (this._grid) { + this._grid.removeEventListener('select', this._boundOnSelectEvent); + this._grid.removeEventListener('deselect', this._boundOnDeselectEvent); + } + } + + /** + * Renders the Select All checkbox to the header cell. + * + * @override + */ + _defaultHeaderRenderer(root, _column) { + let checkbox = root.firstElementChild; + if (!checkbox) { + checkbox = document.createElement('vaadin-checkbox'); + checkbox.id = 'selectAllCheckbox'; + checkbox.setAttribute('aria-label', 'Select All'); + checkbox.classList.add('vaadin-grid-select-all-checkbox'); + checkbox.addEventListener('click', this._onSelectAllClick.bind(this)); + root.appendChild(checkbox); + } + + const checked = this.selectAll; + checkbox.hidden = this.selectAllHidden; + checkbox.checked = checked; + checkbox.indeterminate = this.indeterminate; + } + + /** + * Renders the Select Row checkbox to the body cell. + * + * @override + */ + _defaultRenderer(root, _column, { item, selected }) { + let checkbox = root.firstElementChild; + if (!checkbox) { + checkbox = document.createElement('vaadin-checkbox'); + checkbox.setAttribute('aria-label', 'Select Row'); + checkbox.addEventListener('click', this._onSelectClick.bind(this)); + root.appendChild(checkbox); + } + + checkbox.__item = item; + checkbox.checked = selected; + } + + _onSelectClick(e) { + e.currentTarget.checked ? this._grid.$connector.doDeselection([e.currentTarget.__item], true) : this._grid.$connector.doSelection([e.currentTarget.__item], true); + } + + _onSelectAllClick(e) { + e.preventDefault(); + if (this._grid.hasAttribute('disabled')) { + e.currentTarget.checked = !e.currentTarget.checked; + return; + } + this.selectAll ? this.$server.deselectAll() : this.$server.selectAll(); + } + + _onSelectEvent(e) { + } + + _onDeselectEvent(e) { + if (e.detail.userOriginated) { + this.selectAll = false; + } + } + } + + customElements.define(GridFlowSelectionColumnElement.is, GridFlowSelectionColumnElement); + + Vaadin.GridFlowSelectionColumnElement = GridFlowSelectionColumnElement; +} diff --git a/frontend/generated/jar-resources/vaadin-time-picker/helpers.js b/frontend/generated/jar-resources/vaadin-time-picker/helpers.js new file mode 100644 index 0000000..dd3c328 --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-time-picker/helpers.js @@ -0,0 +1,183 @@ +// map from unicode eastern arabic number characters to arabic numbers +const EASTERN_ARABIC_DIGIT_MAP = { + '\\u0660': '0', + '\\u0661': '1', + '\\u0662': '2', + '\\u0663': '3', + '\\u0664': '4', + '\\u0665': '5', + '\\u0666': '6', + '\\u0667': '7', + '\\u0668': '8', + '\\u0669': '9' +}; + +/** + * Escapes the given string so it can be safely used in a regexp. + * + * @param {string} string + * @return {string} + */ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +/** + * Parses eastern arabic number characters to arabic numbers (0-9) + * + * @param {string} digits + * @return {string} + */ +function parseEasternArabicDigits(digits) { + return digits.replace(/[\u0660-\u0669]/g, function (char) { + const unicode = '\\u0' + char.charCodeAt(0).toString(16); + return EASTERN_ARABIC_DIGIT_MAP[unicode]; + }); +} + +/** + * @param {string} locale + * @param {Date} testTime + * @return {string | null} + */ +function getAmOrPmString(locale, testTime) { + const testTimeString = testTime.toLocaleTimeString(locale); + + // AM/PM string is anything from one letter in eastern arabic to standard two letters, + // to having space in between, dots ... + // cannot disqualify whitespace since some locales use a. m. / p. m. + // TODO when more scripts support is added (than Arabic), need to exclude those numbers too + const amOrPmRegExp = /[^\d\u0660-\u0669]/; + + const matches = + // In most locales, the time ends with AM/PM: + testTimeString.match(new RegExp(`${amOrPmRegExp.source}+$`, 'g')) || + // In some locales, the time starts with AM/PM e.g in Chinese: + testTimeString.match(new RegExp(`^${amOrPmRegExp.source}+`, 'g')); + + return matches && matches[0].trim(); +} + +/** + * @param {string} locale + * @return {string | null} + */ +export function getSeparator(locale) { + let timeString = TEST_PM_TIME.toLocaleTimeString(locale); + + // Since the next regex picks first non-number-whitespace, + // need to discard possible PM from beginning (eg. chinese locale) + const pmString = getPmString(locale); + if (pmString && timeString.startsWith(pmString)) { + timeString = timeString.replace(pmString, ''); + } + + const matches = timeString.match(/[^\u0660-\u0669\s\d]/); + return matches && matches[0]; +} + +/** + * Searches for either an AM or PM token in the given time string + * depending on what is provided in `amOrPmString`. + * + * The search is case and space insensitive. + * + * @example + * `searchAmOrPmToken('1 P M', 'PM')` => `'P M'` + * + * @example + * `searchAmOrPmToken('1 a.m.', 'A. M.')` => `a.m.` + * + * @param {string} timeString + * @param {string} amOrPmString + * @return {string | null} + */ +export function searchAmOrPmToken(timeString, amOrPmString) { + if (!amOrPmString) return null; + + // Create a regexp string for searching for AM/PM without space-sensitivity. + const tokenRegExpString = amOrPmString.split(/\s*/).map(escapeRegExp).join('\\s*'); + + // Create a regexp without case-sensitivity. + const tokenRegExp = new RegExp(tokenRegExpString, 'i'); + + // Match the regexp against the time string. + const tokenMatches = timeString.match(tokenRegExp); + if (tokenMatches) { + return tokenMatches[0]; + } +} + +export const TEST_PM_TIME = new Date('August 19, 1975 23:15:30'); + +export const TEST_AM_TIME = new Date('August 19, 1975 05:15:30'); + +/** + * @param {string} locale + * @return {string} + */ +export function getPmString(locale) { + return getAmOrPmString(locale, TEST_PM_TIME); +} + +/** + * @param {string} locale + * @return {string} + */ +export function getAmString(locale) { + return getAmOrPmString(locale, TEST_AM_TIME); +} + +/** + * @param {string} digits + * @return {number} + */ +export function parseDigitsIntoInteger(digits) { + return parseInt(parseEasternArabicDigits(digits)); +} + +/** + * @param {string} milliseconds + * @return {number} + */ +export function parseMillisecondsIntoInteger(milliseconds) { + milliseconds = parseEasternArabicDigits(milliseconds); + // digits are either .1 .01 or .001 so need to "shift" + if (milliseconds.length === 1) { + milliseconds += '00'; + } else if (milliseconds.length === 2) { + milliseconds += '0'; + } + return parseInt(milliseconds); +} + +/** + * @param {string} timeString + * @param {number} milliseconds + * @param {string} amString + * @param {string} pmString + * @return {string} + */ +export function formatMilliseconds(timeString, milliseconds, amString, pmString) { + // might need to inject milliseconds between seconds and AM/PM + let cleanedTimeString = timeString; + if (timeString.endsWith(amString)) { + cleanedTimeString = timeString.replace(' ' + amString, ''); + } else if (timeString.endsWith(pmString)) { + cleanedTimeString = timeString.replace(' ' + pmString, ''); + } + if (milliseconds) { + let millisecondsString = milliseconds < 10 ? '0' : ''; + millisecondsString += milliseconds < 100 ? '0' : ''; + millisecondsString += milliseconds; + cleanedTimeString += '.' + millisecondsString; + } else { + cleanedTimeString += '.000'; + } + if (timeString.endsWith(amString)) { + cleanedTimeString = cleanedTimeString + ' ' + amString; + } else if (timeString.endsWith(pmString)) { + cleanedTimeString = cleanedTimeString + ' ' + pmString; + } + return cleanedTimeString; +} diff --git a/frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js b/frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js new file mode 100644 index 0000000..b41daf9 --- /dev/null +++ b/frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js @@ -0,0 +1,178 @@ +import { + TEST_PM_TIME, + formatMilliseconds, + parseMillisecondsIntoInteger, + parseDigitsIntoInteger, + getAmString, + getPmString, + getSeparator, + searchAmOrPmToken +} from './helpers.js'; + +(function () { + const tryCatchWrapper = function (callback) { + return window.Vaadin.Flow.tryCatchWrapper(callback, 'Vaadin Time Picker'); + }; + + // Execute callback when predicate returns true. + // Try again later if predicate returns false. + function when(predicate, callback, timeout = 0) { + if (predicate()) { + callback(); + } else { + setTimeout(() => when(predicate, callback, 200), timeout); + } + } + + window.Vaadin.Flow.timepickerConnector = { + initLazy: (timepicker) => + tryCatchWrapper(function (timepicker) { + // Check whether the connector was already initialized for the timepicker + if (timepicker.$connector) { + return; + } + + timepicker.$connector = {}; + + timepicker.$connector.setLocale = tryCatchWrapper(function (locale) { + // capture previous value if any + let previousValueObject; + if (timepicker.value && timepicker.value !== '') { + previousValueObject = timepicker.i18n.parseTime(timepicker.value); + } + + try { + // Check whether the locale is supported by the browser or not + TEST_PM_TIME.toLocaleTimeString(locale); + } catch (e) { + locale = 'en-US'; + // FIXME should do a callback for server to throw an exception ? + throw new Error( + 'vaadin-time-picker: The locale ' + + locale + + ' is not supported, falling back to default locale setting(en-US).' + ); + } + + // 1. 24 or 12 hour clock, if latter then what are the am/pm strings ? + const pmString = getPmString(locale); + const amString = getAmString(locale); + + // 2. What is the separator ? + const separator = getSeparator(locale); + + const includeSeconds = function () { + return timepicker.step && timepicker.step < 60; + }; + + const includeMilliSeconds = function () { + return timepicker.step && timepicker.step < 1; + }; + + let cachedTimeString; + let cachedTimeObject; + + timepicker.i18n = { + formatTime: tryCatchWrapper(function (timeObject) { + if (!timeObject) return; + + const timeToBeFormatted = new Date(); + timeToBeFormatted.setHours(timeObject.hours); + timeToBeFormatted.setMinutes(timeObject.minutes); + timeToBeFormatted.setSeconds(timeObject.seconds !== undefined ? timeObject.seconds : 0); + + // the web component expects the correct granularity used for the time string, + // thus need to format the time object in correct granularity by passing the format options + let localeTimeString = timeToBeFormatted.toLocaleTimeString(locale, { + hour: 'numeric', + minute: 'numeric', + second: includeSeconds() ? 'numeric' : undefined + }); + + // milliseconds not part of the time format API + if (includeMilliSeconds()) { + localeTimeString = formatMilliseconds(localeTimeString, timeObject.milliseconds, amString, pmString); + } + + return localeTimeString; + }), + + parseTime: tryCatchWrapper(function (timeString) { + if (timeString && timeString === cachedTimeString && cachedTimeObject) { + return cachedTimeObject; + } + + if (!timeString) { + // when nothing is returned, the component shows the invalid state for the input + return; + } + + const amToken = searchAmOrPmToken(timeString, amString); + const pmToken = searchAmOrPmToken(timeString, pmString); + + const numbersOnlyTimeString = timeString + .replace(amToken || '', '') + .replace(pmToken || '', '') + .trim(); + + // A regexp that allows to find the numbers with optional separator and continuing searching after it. + const numbersRegExp = new RegExp('([\\d\\u0660-\\u0669]){1,2}(?:' + separator + ')?', 'g'); + + let hours = numbersRegExp.exec(numbersOnlyTimeString); + if (hours) { + hours = parseDigitsIntoInteger(hours[0].replace(separator, '')); + // handle 12 am -> 0 + // do not do anything if am & pm are not used or if those are the same, + // as with locale bg-BG there is always ч. at the end of the time + if (amToken !== pmToken) { + if (hours === 12 && amToken) { + hours = 0; + } + if (hours !== 12 && pmToken) { + hours += 12; + } + } + const minutes = numbersRegExp.exec(numbersOnlyTimeString); + const seconds = minutes && numbersRegExp.exec(numbersOnlyTimeString); + // detecting milliseconds from input, expects am/pm removed from end, eg. .0 or .00 or .000 + const millisecondRegExp = /[[\.][\d\u0660-\u0669]{1,3}$/; + // reset to end or things can explode + let milliseconds = seconds && includeMilliSeconds() && millisecondRegExp.exec(numbersOnlyTimeString); + // handle case where last numbers are seconds and . is the separator (invalid regexp match) + if (milliseconds && milliseconds['index'] <= seconds['index']) { + milliseconds = undefined; + } + // hours is a number at this point, others are either arrays or null + // the string in [0] from the arrays includes the separator too + cachedTimeObject = hours !== undefined && { + hours: hours, + minutes: minutes ? parseDigitsIntoInteger(minutes[0].replace(separator, '')) : 0, + seconds: seconds ? parseDigitsIntoInteger(seconds[0].replace(separator, '')) : 0, + milliseconds: + minutes && seconds && milliseconds + ? parseMillisecondsIntoInteger(milliseconds[0].replace('.', '')) + : 0 + }; + cachedTimeString = timeString; + return cachedTimeObject; + } + }) + }; + + if (previousValueObject) { + when( + () => timepicker.$, + () => { + const newValue = timepicker.i18n.formatTime(previousValueObject); + // FIXME works but uses private API, needs fixes in web component + if (timepicker.inputElement.value !== newValue) { + timepicker.inputElement.value = newValue; + timepicker.$.comboBox.value = newValue; + } + } + ); + } + }); + })(timepicker) + }; +})(); diff --git a/frontend/generated/jar-resources/virtualListConnector.js b/frontend/generated/jar-resources/virtualListConnector.js new file mode 100644 index 0000000..eda42f6 --- /dev/null +++ b/frontend/generated/jar-resources/virtualListConnector.js @@ -0,0 +1,130 @@ +import { Debouncer } from '@polymer/polymer/lib/utils/debounce.js'; +import { timeOut } from '@polymer/polymer/lib/utils/async.js'; + +window.Vaadin.Flow.virtualListConnector = { + initLazy: function (list) { + // Check whether the connector was already initialized for the virtual list + if (list.$connector) { + return; + } + + const extraItemsBuffer = 20; + + let lastRequestedRange = [0, 0]; + + list.$connector = {}; + list.$connector.placeholderItem = { __placeholder: true }; + + const updateRequestedItem = function () { + /* + * TODO virtual list seems to do a small index adjustment after scrolling + * has stopped. This causes a redundant request to be sent to make a + * corresponding minimal change to the buffer. We should avoid these + * requests by making the logic skip doing a request if the available + * buffer is within some tolerance compared to the requested buffer. + */ + const visibleIndexes = [...list.children] + .filter((el) => '__virtualListIndex' in el) + .map((el) => el.__virtualListIndex); + const firstNeededItem = Math.min(...visibleIndexes); + const lastNeededItem = Math.max(...visibleIndexes); + + let first = Math.max(0, firstNeededItem - extraItemsBuffer); + let last = Math.min(lastNeededItem + extraItemsBuffer, list.items.length); + + if (lastRequestedRange[0] != first || lastRequestedRange[1] != last) { + lastRequestedRange = [first, last]; + const count = 1 + last - first; + list.$server.setRequestedRange(first, count); + } + }; + + const scheduleUpdateRequest = function () { + list.__requestDebounce = Debouncer.debounce(list.__requestDebounce, timeOut.after(50), updateRequestedItem); + }; + + requestAnimationFrame(() => updateRequestedItem); + + // Add an observer function that will invoke on virtualList.renderer property + // change and then patches it with a wrapper renderer + list.patchVirtualListRenderer = function () { + if (!list.renderer || list.renderer.__virtualListConnectorPatched) { + // The list either doesn't have a renderer yet or it's already been patched + return; + } + + const originalRenderer = list.renderer; + + const renderer = (root, list, model) => { + root.__virtualListIndex = model.index; + + if (model.item === undefined) { + originalRenderer.call(list, root, list, { + ...model, + item: list.$connector.placeholderItem + }); + } else { + originalRenderer.call(list, root, list, model); + } + + /* + * Check if we need to do anything once things have settled down. + * This method is called multiple times in sequence for the same user + * action, but we only want to do the check once. + */ + scheduleUpdateRequest(); + }; + renderer.__virtualListConnectorPatched = true; + renderer.__rendererId = originalRenderer.__rendererId; + + list.renderer = renderer; + }; + + list._createPropertyObserver('renderer', 'patchVirtualListRenderer', true); + list.patchVirtualListRenderer(); + + list.items = []; + + list.$connector.set = function (index, items) { + list.items.splice(index, items.length, ...items); + list.items = [...list.items]; + }; + + list.$connector.clear = function (index, length) { + // How many items, starting from "index", should be set as undefined + const clearCount = Math.min(length, list.items.length - index); + list.$connector.set(index, [...Array(clearCount)]); + }; + + list.$connector.updateData = function (items) { + const updatedItemsMap = items.reduce((map, item) => { + map[item.key] = item; + return map; + }, {}); + + list.items = list.items.map((item) => { + // Items can be undefined if they are outside the viewport + if (!item) { + return item; + } + // Replace existing item with updated item, + // return existing item as fallback if it was not updated + return updatedItemsMap[item.key] || item; + }); + }; + + list.$connector.updateSize = function (newSize) { + const delta = newSize - list.items.length; + if (delta > 0) { + list.items = [...list.items, ...Array(delta)]; + } else if (delta < 0) { + list.items = list.items.slice(0, newSize); + } + }; + + list.$connector.setPlaceholderItem = function (placeholderItem = {}) { + placeholderItem.__placeholder = true; + list.$connector.placeholderItem = placeholderItem; + }; + } +}; diff --git a/frontend/generated/vaadin-featureflags.ts b/frontend/generated/vaadin-featureflags.ts new file mode 100644 index 0000000..d339943 --- /dev/null +++ b/frontend/generated/vaadin-featureflags.ts @@ -0,0 +1,11 @@ +// @ts-nocheck +window.Vaadin = window.Vaadin || {}; +window.Vaadin.featureFlags = window.Vaadin.featureFlags || {}; +window.Vaadin.featureFlags.exampleFeatureFlag = false; +window.Vaadin.featureFlags.hillaPush = false; +window.Vaadin.featureFlags.hillaEngine = false; +window.Vaadin.featureFlags.oldLicenseChecker = false; +window.Vaadin.featureFlags.collaborationEngineBackend = false; +window.Vaadin.featureFlags.webpackForFrontendBuild = false; +window.Vaadin.featureFlags.enforceFieldValidation = false; +export {}; \ No newline at end of file diff --git a/frontend/generated/vaadin.ts b/frontend/generated/vaadin.ts new file mode 100644 index 0000000..3c8cdfc --- /dev/null +++ b/frontend/generated/vaadin.ts @@ -0,0 +1,5 @@ +import './vaadin-featureflags.ts'; + +import './index'; + +import 'Frontend/generated/jar-resources/vaadin-dev-tools.js'; diff --git a/frontend/generated/vite-devmode.ts b/frontend/generated/vite-devmode.ts new file mode 100644 index 0000000..f9f7a5f --- /dev/null +++ b/frontend/generated/vite-devmode.ts @@ -0,0 +1,31 @@ +// @ts-ignore +if (import.meta.hot) { + // @ts-ignore + const hot = import.meta.hot; + + const isLiveReloadDisabled = () => { + // Checks if live reload is disabled in the debug window + return sessionStorage.getItem('vaadin.live-reload.active') === 'false'; + }; + + const preventViteReload = (payload: any) => { + // Changing the path prevents Vite from reloading + payload.path = '/_fake/path.html'; + }; + + let pendingNavigationTo: string | undefined = undefined; + + window.addEventListener('vaadin-router-go', (routerEvent: any) => { + pendingNavigationTo = routerEvent.detail.pathname + routerEvent.detail.search; + }); + hot.on('vite:beforeFullReload', (payload: any) => { + if (isLiveReloadDisabled()) { + preventViteReload(payload); + } + if (pendingNavigationTo) { + // Force reload with the new URL + location.href = pendingNavigationTo; + preventViteReload(payload); + } + }); +} diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..a5cdd40 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
+ + diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..8a8fb22 --- /dev/null +++ b/mvnw @@ -0,0 +1,316 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..1d8ab01 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a8dc614 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12371 @@ +{ + "name": "no-name", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "no-name", + "license": "UNLICENSED", + "dependencies": { + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/iron-list": "3.1.0", + "@polymer/iron-meta": "3.0.1", + "@polymer/iron-resizable-behavior": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/accordion": "23.3.5", + "@vaadin/app-layout": "23.3.5", + "@vaadin/avatar": "23.3.5", + "@vaadin/avatar-group": "23.3.5", + "@vaadin/bundles": "23.3.5", + "@vaadin/button": "23.3.5", + "@vaadin/checkbox": "23.3.5", + "@vaadin/checkbox-group": "23.3.5", + "@vaadin/combo-box": "23.3.5", + "@vaadin/common-frontend": "0.0.17", + "@vaadin/component-base": "23.3.5", + "@vaadin/confirm-dialog": "23.3.5", + "@vaadin/context-menu": "23.3.5", + "@vaadin/custom-field": "23.3.5", + "@vaadin/date-picker": "23.3.5", + "@vaadin/date-time-picker": "23.3.5", + "@vaadin/details": "23.3.5", + "@vaadin/dialog": "23.3.5", + "@vaadin/email-field": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/field-highlighter": "23.3.5", + "@vaadin/form-layout": "23.3.5", + "@vaadin/grid": "23.3.5", + "@vaadin/horizontal-layout": "23.3.5", + "@vaadin/icon": "23.3.5", + "@vaadin/icons": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/integer-field": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/login": "23.3.5", + "@vaadin/menu-bar": "23.3.5", + "@vaadin/message-input": "23.3.5", + "@vaadin/message-list": "23.3.5", + "@vaadin/multi-select-combo-box": "23.3.5", + "@vaadin/notification": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/polymer-legacy-adapter": "23.3.5", + "@vaadin/progress-bar": "23.3.5", + "@vaadin/radio-group": "23.3.5", + "@vaadin/router": "1.7.4", + "@vaadin/scroller": "23.3.5", + "@vaadin/select": "23.3.5", + "@vaadin/split-layout": "23.3.5", + "@vaadin/tabs": "23.3.5", + "@vaadin/tabsheet": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/time-picker": "23.3.5", + "@vaadin/tooltip": "23.3.5", + "@vaadin/upload": "23.3.5", + "@vaadin/vaadin-accordion": "23.3.5", + "@vaadin/vaadin-app-layout": "23.3.5", + "@vaadin/vaadin-avatar": "23.3.5", + "@vaadin/vaadin-button": "23.3.5", + "@vaadin/vaadin-checkbox": "23.3.5", + "@vaadin/vaadin-combo-box": "23.3.5", + "@vaadin/vaadin-confirm-dialog": "23.3.5", + "@vaadin/vaadin-context-menu": "23.3.5", + "@vaadin/vaadin-custom-field": "23.3.5", + "@vaadin/vaadin-date-picker": "23.3.5", + "@vaadin/vaadin-date-time-picker": "23.3.5", + "@vaadin/vaadin-details": "23.3.5", + "@vaadin/vaadin-development-mode-detector": "2.0.5", + "@vaadin/vaadin-dialog": "23.3.5", + "@vaadin/vaadin-form-layout": "23.3.5", + "@vaadin/vaadin-grid": "23.3.5", + "@vaadin/vaadin-icon": "23.3.5", + "@vaadin/vaadin-icons": "23.3.5", + "@vaadin/vaadin-item": "23.3.5", + "@vaadin/vaadin-list-box": "23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-login": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-menu-bar": "23.3.5", + "@vaadin/vaadin-messages": "23.3.5", + "@vaadin/vaadin-notification": "23.3.5", + "@vaadin/vaadin-ordered-layout": "23.3.5", + "@vaadin/vaadin-overlay": "23.3.5", + "@vaadin/vaadin-progress-bar": "23.3.5", + "@vaadin/vaadin-radio-button": "23.3.5", + "@vaadin/vaadin-select": "23.3.5", + "@vaadin/vaadin-split-layout": "23.3.5", + "@vaadin/vaadin-tabs": "23.3.5", + "@vaadin/vaadin-template-renderer": "23.3.5", + "@vaadin/vaadin-text-field": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "@vaadin/vaadin-time-picker": "23.3.5", + "@vaadin/vaadin-upload": "23.3.5", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-virtual-list": "23.3.5", + "@vaadin/vertical-layout": "23.3.5", + "@vaadin/virtual-list": "23.3.5", + "construct-style-sheets-polyfill": "3.1.0", + "date-fns": "2.29.3", + "lit": "2.6.1" + }, + "devDependencies": { + "@rollup/plugin-replace": "3.1.0", + "@rollup/pluginutils": "4.1.0", + "async": "3.2.2", + "glob": "7.2.3", + "mkdirp": "1.0.4", + "rollup-plugin-brotli": "3.1.0", + "strip-css-comments": "5.0.0", + "transform-ast": "2.4.4", + "typescript": "4.9.3", + "vite": "3.2.5", + "vite-plugin-checker": "0.5.1", + "workbox-build": "6.5.4", + "workbox-core": "6.5.4", + "workbox-precaching": "6.5.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", + "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", + "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" + }, + "node_modules/@lit/reactive-element": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", + "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-wc/dedupe-mixin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", + "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" + }, + "node_modules/@polymer/iron-a11y-keys-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz", + "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-flex-layout": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz", + "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-icon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz", + "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==", + "dependencies": { + "@polymer/iron-flex-layout": "^3.0.0-pre.26", + "@polymer/iron-meta": "^3.0.0-pre.26", + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-iconset-svg": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz", + "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==", + "dependencies": { + "@polymer/iron-meta": "^3.0.0-pre.26", + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz", + "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==", + "dependencies": { + "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26", + "@polymer/iron-resizable-behavior": "^3.0.0-pre.26", + "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26", + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-meta": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz", + "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-resizable-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz", + "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/iron-scroll-target-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz", + "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0" + } + }, + "node_modules/@polymer/polymer": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", + "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "dependencies": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-babel/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@rollup/plugin-replace": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-3.1.0.tgz", + "integrity": "sha512-pA3XRUrSKybVYqmH5TqWNZpGxF+VV+1GrYchKgCNIj2vsSOX7CVm2RCtx8p2nrC7xvkziYyK+lSi74T93MU3YA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "node_modules/@vaadin/accordion": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-23.3.5.tgz", + "integrity": "sha512-UVYcd1XxCPF4YM9YLu3L2EAf+9Mul4OV2C+dGK9+liExm/0LF5ftIvUJ96vN1qUNf8oVEIKLlF5JpzSADcX3kQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/details": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/app-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-23.3.5.tgz", + "integrity": "sha512-Aa2ITZjgVfVJqV/ulRTI7+sLq491IhMPqU0Q2BAdyw4rBD2HROI+hlr2cHsk2Y9gXaBihUz0SdyAOiQG2EGing==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/avatar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-23.3.5.tgz", + "integrity": "sha512-ih4rWQhzxUuvNgaB5Ycp4FU6QgJphng/Omgq9sHNYhhtFLcrS5AG27eM0HkDmUFGQCF/KHBz/vuFFFu4RsXW5w==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/list-box": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/tooltip": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/avatar-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-23.3.5.tgz", + "integrity": "sha512-PLTOcdMrmLb2p4sxA28IRdPIrtF/xvRtu8eX3g7KLa6hEqgbUx4qBDVnetJl9IDOu/l05gtbS0hZK8Suw/pKnA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/avatar": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/list-box": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/bundles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-23.3.5.tgz", + "integrity": "sha512-fEVlbKONGLf2363Fa7qKtzPHGauALslua2R4owBAfH5rhO5i6pJ3FnEZ1huAh1uZ0LAJqiG13tjgCkvZixBOEQ==", + "peerDependencies": { + "@polymer/iron-flex-layout": "3.0.1", + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/iron-media-query": "3.0.1", + "@polymer/iron-meta": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/accordion": "23.3.5", + "@vaadin/app-layout": "23.3.5", + "@vaadin/avatar": "23.3.5", + "@vaadin/avatar-group": "23.3.5", + "@vaadin/board": "23.3.5", + "@vaadin/button": "23.3.5", + "@vaadin/charts": "23.3.5", + "@vaadin/checkbox": "23.3.5", + "@vaadin/checkbox-group": "23.3.5", + "@vaadin/combo-box": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/confirm-dialog": "23.3.5", + "@vaadin/context-menu": "23.3.5", + "@vaadin/cookie-consent": "23.3.5", + "@vaadin/crud": "23.3.5", + "@vaadin/custom-field": "23.3.5", + "@vaadin/date-picker": "23.3.5", + "@vaadin/date-time-picker": "23.3.5", + "@vaadin/details": "23.3.5", + "@vaadin/dialog": "23.3.5", + "@vaadin/email-field": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/field-highlighter": "23.3.5", + "@vaadin/form-layout": "23.3.5", + "@vaadin/grid": "23.3.5", + "@vaadin/grid-pro": "23.3.5", + "@vaadin/horizontal-layout": "23.3.5", + "@vaadin/icon": "23.3.5", + "@vaadin/icons": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/integer-field": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/login": "23.3.5", + "@vaadin/map": "23.3.5", + "@vaadin/menu-bar": "23.3.5", + "@vaadin/message-input": "23.3.5", + "@vaadin/message-list": "23.3.5", + "@vaadin/multi-select-combo-box": "23.3.5", + "@vaadin/notification": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/overlay": "23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/polymer-legacy-adapter": "23.3.5", + "@vaadin/progress-bar": "23.3.5", + "@vaadin/radio-group": "23.3.5", + "@vaadin/rich-text-editor": "23.3.5", + "@vaadin/scroller": "23.3.5", + "@vaadin/select": "23.3.5", + "@vaadin/split-layout": "23.3.5", + "@vaadin/tabs": "23.3.5", + "@vaadin/tabsheet": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/time-picker": "23.3.5", + "@vaadin/tooltip": "23.3.5", + "@vaadin/upload": "23.3.5", + "@vaadin/vaadin-development-mode-detector": "2.0.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vertical-layout": "23.3.5", + "@vaadin/virtual-list": "23.3.5", + "cookieconsent": "3.1.1", + "highcharts": "9.2.2", + "lit": "2.6.1", + "ol": "6.13.0", + "quickselect": "2.0.0", + "rbush": "3.0.1" + }, + "peerDependenciesMeta": { + "@polymer/iron-flex-layout": { + "optional": true + }, + "@polymer/iron-icon": { + "optional": true + }, + "@polymer/iron-iconset-svg": { + "optional": true + }, + "@polymer/iron-media-query": { + "optional": true + }, + "@polymer/iron-meta": { + "optional": true + }, + "@polymer/polymer": { + "optional": true + }, + "@vaadin/accordion": { + "optional": true + }, + "@vaadin/app-layout": { + "optional": true + }, + "@vaadin/avatar": { + "optional": true + }, + "@vaadin/avatar-group": { + "optional": true + }, + "@vaadin/board": { + "optional": true + }, + "@vaadin/button": { + "optional": true + }, + "@vaadin/charts": { + "optional": true + }, + "@vaadin/checkbox": { + "optional": true + }, + "@vaadin/checkbox-group": { + "optional": true + }, + "@vaadin/combo-box": { + "optional": true + }, + "@vaadin/component-base": { + "optional": true + }, + "@vaadin/confirm-dialog": { + "optional": true + }, + "@vaadin/context-menu": { + "optional": true + }, + "@vaadin/cookie-consent": { + "optional": true + }, + "@vaadin/crud": { + "optional": true + }, + "@vaadin/custom-field": { + "optional": true + }, + "@vaadin/date-picker": { + "optional": true + }, + "@vaadin/date-time-picker": { + "optional": true + }, + "@vaadin/details": { + "optional": true + }, + "@vaadin/dialog": { + "optional": true + }, + "@vaadin/email-field": { + "optional": true + }, + "@vaadin/field-base": { + "optional": true + }, + "@vaadin/field-highlighter": { + "optional": true + }, + "@vaadin/form-layout": { + "optional": true + }, + "@vaadin/grid": { + "optional": true + }, + "@vaadin/grid-pro": { + "optional": true + }, + "@vaadin/horizontal-layout": { + "optional": true + }, + "@vaadin/icon": { + "optional": true + }, + "@vaadin/icons": { + "optional": true + }, + "@vaadin/input-container": { + "optional": true + }, + "@vaadin/integer-field": { + "optional": true + }, + "@vaadin/item": { + "optional": true + }, + "@vaadin/list-box": { + "optional": true + }, + "@vaadin/lit-renderer": { + "optional": true + }, + "@vaadin/login": { + "optional": true + }, + "@vaadin/map": { + "optional": true + }, + "@vaadin/menu-bar": { + "optional": true + }, + "@vaadin/message-input": { + "optional": true + }, + "@vaadin/message-list": { + "optional": true + }, + "@vaadin/multi-select-combo-box": { + "optional": true + }, + "@vaadin/notification": { + "optional": true + }, + "@vaadin/number-field": { + "optional": true + }, + "@vaadin/overlay": { + "optional": true + }, + "@vaadin/password-field": { + "optional": true + }, + "@vaadin/polymer-legacy-adapter": { + "optional": true + }, + "@vaadin/progress-bar": { + "optional": true + }, + "@vaadin/radio-group": { + "optional": true + }, + "@vaadin/rich-text-editor": { + "optional": true + }, + "@vaadin/scroller": { + "optional": true + }, + "@vaadin/select": { + "optional": true + }, + "@vaadin/split-layout": { + "optional": true + }, + "@vaadin/tabs": { + "optional": true + }, + "@vaadin/tabsheet": { + "optional": true + }, + "@vaadin/text-area": { + "optional": true + }, + "@vaadin/text-field": { + "optional": true + }, + "@vaadin/time-picker": { + "optional": true + }, + "@vaadin/tooltip": { + "optional": true + }, + "@vaadin/upload": { + "optional": true + }, + "@vaadin/vaadin-development-mode-detector": { + "optional": true + }, + "@vaadin/vaadin-list-mixin": { + "optional": true + }, + "@vaadin/vaadin-lumo-styles": { + "optional": true + }, + "@vaadin/vaadin-themable-mixin": { + "optional": true + }, + "@vaadin/vaadin-usage-statistics": { + "optional": true + }, + "@vaadin/vertical-layout": { + "optional": true + }, + "@vaadin/virtual-list": { + "optional": true + }, + "cookieconsent": { + "optional": true + }, + "highcharts": { + "optional": true + }, + "lit": { + "optional": true + }, + "ol": { + "optional": true + }, + "quickselect": { + "optional": true + }, + "rbush": { + "optional": true + } + } + }, + "node_modules/@vaadin/button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-23.3.5.tgz", + "integrity": "sha512-dRqIYl5wD77OPjBRaBufEGXITIVIfyGgnsjW7G6IjfeYYdJwepV+kb7GPmMnnGJojp02yPKhJI6EA5YmyfTyew==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/checkbox": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-23.3.5.tgz", + "integrity": "sha512-+2mQ0BRqbf/ASxubJ2+m65vutPSsVzZu4W97R78REw8gnR6nv4itcVm4/p3O6eOqZHKpBd3fI0mwVGvMW61+ow==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/checkbox-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-23.3.5.tgz", + "integrity": "sha512-5bNLeRctJkGbOKOHdeRv0IBhephIRugoH0SWDEQ3vcRDEODFF9t+2DnHM5DGWawcQWO8lJEt03fmL0z04YI60A==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/checkbox": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-23.3.5.tgz", + "integrity": "sha512-koV56y7Rq5veaZ9WcG30axhBTWAcHIt0Yu+6q1xiSIW4T0RomDcuNbz/Roq/E3/7Wv4mKoLF34qyi5FApRa33g==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/common-frontend": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@vaadin/common-frontend/-/common-frontend-0.0.17.tgz", + "integrity": "sha512-M4tg10cYgdDqQAXfGfXpQ90eHm+xL6ynAFEDgtc2IxXVWXKYU8jGK08SM5yOcZ4wDk0ETyHMtQlKUPDNkz6Qfw==", + "dependencies": { + "tslib": "^2.3.1" + }, + "peerDependencies": { + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/component-base": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-23.3.5.tgz", + "integrity": "sha512-9I3DmXWiyeRqy/P793Y8zAu9HCj6opr1C1Rt5JQgSqAoOH/Rs7Z1H+N2YKcaa3rmVIVqlur4PtDZb/CnEgSOMg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/vaadin-development-mode-detector": "^2.0.0", + "@vaadin/vaadin-usage-statistics": "^2.1.0", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/confirm-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-23.3.5.tgz", + "integrity": "sha512-W2hvsZte2AiVVM2K+zu+GmPlZcdxDHH2UVVFBTlgxq3vZmK+dZAG3718fQjWk38Ud5gtgmQ+Rynd2DmjUwzoLw==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/dialog": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/context-menu": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-23.3.5.tgz", + "integrity": "sha512-ltk7dD2gV7nVvvnjNtnuCEb+3mbR1KJ1XE+EtpnxZAoeDIE39+cOxGA6V0Sd7VIRxvZT22PinZrNDDTNddDpgA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/list-box": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/custom-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-23.3.5.tgz", + "integrity": "sha512-mKkDoBd4CYgAM49UTfVsp7ukPnLXDkbUBD8CSbXdBc9JSo7+gX9n2Sw6MopnR9GGO/yqmz3Xhn5VVtA/hiYM1g==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/date-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-23.3.5.tgz", + "integrity": "sha512-S0DfmRkgXyK5EZHQ/ahKpNM0zkLK+OmmLxChgI6LRKsA8a01sO+YWNa1qrfZFHYdZGVDmGYAYQAnCdsFFNWxFg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.2.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/date-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-23.3.5.tgz", + "integrity": "sha512-m85Od+/BTWGxD/38U7n9LwVb4NoyzVfngTHY8AdqANklqR08+D40dEGueNh+e/6peL5RHBsgiDSJjwEzXgd4MA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/custom-field": "~23.3.5", + "@vaadin/date-picker": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/time-picker": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/details": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-23.3.5.tgz", + "integrity": "sha512-FVyVOYifvWktn/B2nMZcffEols8StLRtlnX8MQWbExxEVxQ0BrWzzLhBaGN53KS7OXV4OzSUTefTEDwU9tXE9Q==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-23.3.5.tgz", + "integrity": "sha512-7QbPftotXmB0yRScZMH3TvUSQIDURsG5nOAlZw0wN6okB2pAIXnMfUGLkdZkmuu68vD3cUgLhxaN+ROvkr7ixA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/email-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-23.3.5.tgz", + "integrity": "sha512-kqEUR5+lNZVLRuMzPqa99JhFUtExG/cxAC/MmHKVkOxiUkBcbBQWYMldfOXh+MLDUpGsIHTPLtiKEcXUa1GDow==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/text-field": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/field-base": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-23.3.5.tgz", + "integrity": "sha512-PqZX9zY1RVxZCdQ9cT02CKQY69KW4PWMTHXrerhyK29Zy2a+InQOVE0uwjs9GEChAo85TL3YrVw4DDnBz1ruvA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/field-highlighter": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-23.3.5.tgz", + "integrity": "sha512-Ud4pRnrt0WUqXWMKB+qN9QlzXfzxHqSnQEf1NeYNm4+5Q537FxFejMzBZ61IDCZ9IFlvIabeVz0SuSrJoecfSg==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/form-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-23.3.5.tgz", + "integrity": "sha512-o1gAkp27MnVeztNcyNWkUaebPVhO00WSBWD0MQ/Amn2f+pRYRUS9FD09T1po+FXubHQpHTmU50ElDbJnj7vI/A==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/grid": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-23.3.5.tgz", + "integrity": "sha512-6wnHiZB1qz3Ebmm2hkBM1Q3qqiAxsEiNOSnPKCLAAABbFzoVyxZZe8hc+qn/agA5qGLv6mMj0DyET0OvnG4ZFQ==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/checkbox": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/text-field": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/horizontal-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-23.3.5.tgz", + "integrity": "sha512-oD4EJvttgoDPxEA2hlQdRbpIIo9FMrOE/fsSGrCd3Padb0T2SrV5nlp3gUhzAvQ9DCmiRTl3YmrfeOXRa2WdrA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/icon": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-23.3.5.tgz", + "integrity": "sha512-jIRqTwHaTW3CPdWDxVluxb5PERK8Y74k28sfL7zCSbi2XVt2TjkRFUioraLBseRTZhdCCOn1OEBZ54v8KtiBqA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/icons": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-23.3.5.tgz", + "integrity": "sha512-BZHedo5G5t0IlNMhHtRZqcZiqq6yKeRYQP2ayXnHzJHv6ALlIEgjOlguCGRdSAo8EE9Z3HHTo11+6xBN7ybwnQ==", + "dependencies": { + "@polymer/iron-icon": "^3.0.0", + "@polymer/iron-iconset-svg": "^3.0.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/icon": "~23.3.5" + } + }, + "node_modules/@vaadin/input-container": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-23.3.5.tgz", + "integrity": "sha512-uJf2qKSln9d6OW+M95ZGY6EMOwZFQ9rS7s9AwtC3JaxGusIT8ouU+SoQXAdMr5i+UEdxPczHSheYUx+6jdoYTA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/integer-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-23.3.5.tgz", + "integrity": "sha512-/727MYba0Z8fdqHc6S2ED/TY8YoYlVS9ezp7UHe2ZyXr15z6sBKJrjk1i2wP4rQM1He2idmyNxsq7HRQ9DS2iA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/number-field": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5" + } + }, + "node_modules/@vaadin/item": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-23.3.5.tgz", + "integrity": "sha512-Cg1AnvN3etFR5NbabfQMoy18dsCdrccRiB1iJpoLaEaKJuDONB0Qkqc9gXt2sPF16FGtfNkn9sSAnmQOllQ/6A==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/list-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-23.3.5.tgz", + "integrity": "sha512-45eOcmAfwjriy2NbfqvBc0YFJ9spJYSuj3WnngMDh9G/lHEnjdsXZpueUWqW7viJ4n6xNcvyRGZhjoLp9fUUBA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/vaadin-list-mixin": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/lit-renderer": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-23.3.5.tgz", + "integrity": "sha512-7gV15aHutasPqbbCx+TuUl/+i3uJOl2GLD0rPkuv7gswK6lxEey2hoWWsS1B4WxD109sfC5w+MgoVYq11WIv2Q==", + "dependencies": { + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/login": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-23.3.5.tgz", + "integrity": "sha512-SmP4Ww4G0XyVWhmykdT8QszgjxDiNpCJTHENvdMEgx4+UhX9VpWKv89qA42c6u80wYNILYqrecj0BStoOeNJBQ==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/password-field": "~23.3.5", + "@vaadin/text-field": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/menu-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-23.3.5.tgz", + "integrity": "sha512-OWFNBXzPjxaqXuwUmg7tto0PDeocUCxHOO2nLpBRNfKXB76wxot2/tLoyLxCkgpkNm0mxoqlM9vqJj4vzUi4+g==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/context-menu": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/message-input": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-23.3.5.tgz", + "integrity": "sha512-iSJdlaSwq7XTtA+QoY9bOYEqWgeobm/GjaLthOpskM75NhSkgWrT/K451iJa96MHeOGSJT24xUb/bRneU3zWQw==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/text-area": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/message-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-23.3.5.tgz", + "integrity": "sha512-k49lvegpJAU2BJGxLhdeQdScjLK9jp6ITnUNAeOYQCMy0o/CnrUXtYaEsgAIImvjAqSSTK/DA3frzwZ/lvhIKA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/avatar": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/multi-select-combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-23.3.5.tgz", + "integrity": "sha512-RKRYS9T0XrhvvPXcG8nme2KRtjjXgrmnM1cdBrd3meuQRkyJ3bTKFlCGEjyi/FCmgs0dZpls/8NogjMvZoTzRQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/combo-box": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/notification": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-23.3.5.tgz", + "integrity": "sha512-JatTcDrLHwG/sS1l6s7lb5S4Qr0c1xwgegC9pvREphlA4Mw/e7SDSuZPmTbVQWdz4lVfCKj9G5DXw9iqvjq/7w==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/number-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-23.3.5.tgz", + "integrity": "sha512-dDWSKq9JHzqEBENBf2grQsJ+EqOIfgVcBNAM6yC3v0xlrWTd36MCdkbJC3UmkGdRdkdHx+2mC6/QcQlwMcv/SQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/overlay": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-23.3.5.tgz", + "integrity": "sha512-tfq28DNwKdhQVrzBB4ZI0bOEYKQDkVLWMVHeXGVyHEMaaswRLj8JXL7ECZMF+MZbmMuwDIB32HRaZl7Js1YLgA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/password-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-23.3.5.tgz", + "integrity": "sha512-VJlghzJGVmwzBI+vMad2ivScK0bemGcxWtiMYdZc+k1uQQEgSB8q/1S9fQzh8GM4T7DOjrAyRyyowScTupTJHg==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/text-field": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/polymer-legacy-adapter": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-23.3.5.tgz", + "integrity": "sha512-62FkqTfznQuC3dlbDR+sDUOYQZgioCrJbyhR4PVjnJaPqcnv9o8RA971+1YDIV2WdNXmihU/QqkRTnXEUbyEdw==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/vaadin-themable-mixin": "~23.3.5", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/progress-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-23.3.5.tgz", + "integrity": "sha512-BjWuS81rOD1Q06NRuWnOPij0uuQCtzjk35DE79WW/CP7/BgrezFy72kcat5SNJv1CpbVAVB9KlQZQ/pkxMqElg==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/radio-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-23.3.5.tgz", + "integrity": "sha512-+OlA2ihZi5EIZArc97+IsOcLONbMxq8QevcRZalLsk+nEDDYl7bgFnPy5svLzWYnI7/FlNqRdQiHOVdAQFix7g==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/router": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.4.tgz", + "integrity": "sha512-B4JVtzFVUMlsjuJHNXEMfNZrM4QDrdeOMc6EEigiHYxwF82py6yDdP6SWP0aPoP3f6aQHt51tLWdXSpkKpWf7A==", + "dependencies": { + "@vaadin/vaadin-usage-statistics": "^2.1.0", + "path-to-regexp": "2.4.0" + } + }, + "node_modules/@vaadin/scroller": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-23.3.5.tgz", + "integrity": "sha512-Bo7JLt7wcp8xVcsJATNvjGAd/+V80GQgxEW/BKzBEQuY0qCD/7RRbZ2IElbmRcyHCRBxRVkTlXlBYHAIQVutlQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/select": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-23.3.5.tgz", + "integrity": "sha512-2a2IZ0PKjWsdW1JXWjSxeZriLo1G2hVi6i1cP7yhMiBw/WD4yEpXKYpFEEGlKW9d8ZQyfdGsFz03JARQaDFkxQ==", + "dependencies": { + "@polymer/polymer": "^3.2.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/list-box": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-list-mixin": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/split-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-23.3.5.tgz", + "integrity": "sha512-fy0EIrJ/Eb/LB73MDDVXjdtGjF6hal+MEch9hyLV3cUR39mwkjHQxHkFw/QMXzzm/teLTYpITCkZngE8Rcuz9A==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/tabs": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-23.3.5.tgz", + "integrity": "sha512-pzyG++9+9bsCORZJ+Hkyy2utHSJrmk0fF0dgjWUcLYw7VvyOLDxB0leBrmnhCgz3bRcSLKeB6nY56eFl32naPg==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/item": "~23.3.5", + "@vaadin/vaadin-list-mixin": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/tabsheet": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-23.3.5.tgz", + "integrity": "sha512-vHbV0VPd8L9drn92bsijzTkuNYXboxZ3wagZSDXU/154g4C4IfhwN/DqJOM2KcjbP5kM9ZKWTSakPQpJhx5k0w==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/scroller": "~23.3.5", + "@vaadin/tabs": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/text-area": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-23.3.5.tgz", + "integrity": "sha512-HwSHSWYC+PC28ZQxfPCHQGHMuYcrKpphWf6UQJT79si0aHyuehqVzGzKarT72sQ9w7k8aSl0QZRsYQunfPcyEA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/text-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-23.3.5.tgz", + "integrity": "sha512-Akkn2TkGTlxIrwxb7nPSUT9M3zBysIVBfwrIy+PCuu4BJtrYmtAiuTn4QwgBSvz7jh8PZkVnCftt5edJ6NCerA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-23.3.5.tgz", + "integrity": "sha512-vPi+i9JMmPQa5X4igV4Jubn/MtQMpiiVnsd5cYwokJvOe6aCGwPxbAf08mHbKwMMlfnoDTSn07YIwhLYLp+toQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/combo-box": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/field-base": "~23.3.5", + "@vaadin/input-container": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/tooltip": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-23.3.5.tgz", + "integrity": "sha512-CvT3i+V3P5BXKVtPrqSQpM59GQc/a+jqNJEO5QrZLAttY93bNEP60kSotsuc1/qHeQ+F2qhnMfmIbUtB2AHxpg==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/upload": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-23.3.5.tgz", + "integrity": "sha512-lyEpnu9rtbgV0MAPJJitMniL7WhfGMy5tHRJ9+6+XvD1bnVjXBFkHMR2m8W1Vi2JHuxVOY7QPd5kPHi5NqjaEQ==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/button": "~23.3.5", + "@vaadin/component-base": "~23.3.5", + "@vaadin/progress-bar": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-accordion": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-accordion/-/vaadin-accordion-23.3.5.tgz", + "integrity": "sha512-fpkVL+9aP9pTaOxyZT8+qsJ/m/r91YJ6Koz+pQNERnYzWmfU8ZQFk/Rq0y7XrvCunSl68Ym85s84UaAwmb7mNg==", + "dependencies": { + "@vaadin/accordion": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-app-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-app-layout/-/vaadin-app-layout-23.3.5.tgz", + "integrity": "sha512-6no4Y5cLjuO0bjezPbWUxfFSdDJImRPPkXgtpAKe6Jwfp+RBtSvWegqE+beVVDswPIQhh7FPnShb5zE8vHVXOg==", + "dependencies": { + "@vaadin/app-layout": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-avatar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-avatar/-/vaadin-avatar-23.3.5.tgz", + "integrity": "sha512-aT0W63wqFCy8mIPhP/yl5Pw7JHijkOfUloqOiNxbswDEzDmBcii2X2Ox+oLiWmMfqpDbOLFho/yTkFGM9UHmzQ==", + "dependencies": { + "@vaadin/avatar": "~23.3.5", + "@vaadin/avatar-group": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-button/-/vaadin-button-23.3.5.tgz", + "integrity": "sha512-mWNp3HYRaxhYl3acoWDJHCX4vbOscXKP8LrCStyK5Df5N4po3iRTRrlfCAUw8Yy0WzdlCYPL2Mr+bHhQeFTuBw==", + "dependencies": { + "@vaadin/button": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-checkbox": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-checkbox/-/vaadin-checkbox-23.3.5.tgz", + "integrity": "sha512-WLD11dq0mapApmLSWxuPl7E2dO3hc/+9c4zqO8SgU5wFIC7hti2oAvUumxAcz7mhGCtcAGKTcvjY8RHDIkVG+Q==", + "dependencies": { + "@vaadin/checkbox": "~23.3.5", + "@vaadin/checkbox-group": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-23.3.5.tgz", + "integrity": "sha512-uG11V8Em4AeoD6qp654Llnsj/UH9ldHTPsr7PORh+JtwvBZWmpwVJlRpRBEXr8K+P/YDRKStu0qToxQvolz8aA==", + "dependencies": { + "@vaadin/combo-box": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-confirm-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-confirm-dialog/-/vaadin-confirm-dialog-23.3.5.tgz", + "integrity": "sha512-jZDrnfZL7D50jsvxfg8CbSA/BL6jD0sHqghKIO0bLaPvUbmJP9yteVaQ0Z14OOwlTECCPCRBlChUcO2yQryoHw==", + "dependencies": { + "@vaadin/confirm-dialog": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-context-menu": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-context-menu/-/vaadin-context-menu-23.3.5.tgz", + "integrity": "sha512-mieoSgqkxXG/fHmTEQLc/N/whvzSE5/o8iabKjHTD7b8FOuz3Ns88A8weyZu3N+eFT6l9NvYkSJNQcau5sUCNg==", + "dependencies": { + "@vaadin/context-menu": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-custom-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-custom-field/-/vaadin-custom-field-23.3.5.tgz", + "integrity": "sha512-rp23oBvgRJ1aAZF+cbKHktLLL1BJebUBn3NtuN7lGIms/+I05zIzYc5Yhg2qLXuy8aPQEptT6mfYh0UoOU6+6w==", + "dependencies": { + "@vaadin/custom-field": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-date-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-date-picker/-/vaadin-date-picker-23.3.5.tgz", + "integrity": "sha512-d4N0Oy21SNycH9ntEe9tOU6xvVc0+X5ky/WWnUQRoEYpDCUPrBq4U/G9YC4k82fZ8481P5ZgFvO4WOYFEQflOw==", + "dependencies": { + "@vaadin/date-picker": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-date-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-date-time-picker/-/vaadin-date-time-picker-23.3.5.tgz", + "integrity": "sha512-HI5uQWH03zuvE2H3RM4LC5/pd8nQvoO1apPzBgnr7ccfoYIxOyfw2duJscB9q5rebRaIJEuJMExMJSmmDklTkA==", + "dependencies": { + "@vaadin/date-time-picker": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-details": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-details/-/vaadin-details-23.3.5.tgz", + "integrity": "sha512-YWWSvMthsjtiXU6jADUNxcplJe9KXMaR9gRplw+5+WEVegneUWRYWuack/YUxcOwpGCtqo3yeMvVPEs1rQdyhg==", + "dependencies": { + "@vaadin/details": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-development-mode-detector": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.5.tgz", + "integrity": "sha512-miirBQw10UHjKwRv29iZniXCo41cLg3wFotoyTeUZ2PTGIDk/fZVFr4Q4WVKZrp3D15878vz94nNQROSmPLjdg==" + }, + "node_modules/@vaadin/vaadin-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-dialog/-/vaadin-dialog-23.3.5.tgz", + "integrity": "sha512-t46XGQKkzyDDF7Vun8aWoEJh0DfEQuz1RAOCapg2lZ2Dya/F8OVeMaplRtC8FPP1DBrk/9fPcR64hrxEF8edQA==", + "dependencies": { + "@vaadin/dialog": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-form-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-form-layout/-/vaadin-form-layout-23.3.5.tgz", + "integrity": "sha512-SzRRFS12VK5Jmh3rIi0rjfkG4wGh5CVxocchukQG5R1a8u63daUyHFCA8rUtKQBuaaxr7ZP2LR8S4BtMcVtgcA==", + "dependencies": { + "@vaadin/form-layout": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-grid": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-grid/-/vaadin-grid-23.3.5.tgz", + "integrity": "sha512-/Mgl3ocGK1ee3OknyLGmuLwmsEU0ZdwSoRkh0YFEnhodd4NURSk5I2eBLZaj5aOFcCP79vnTgYnUjE6lgE67gg==", + "dependencies": { + "@vaadin/grid": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-icon": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-icon/-/vaadin-icon-23.3.5.tgz", + "integrity": "sha512-NGdt3ogga9azskeJEXD8Yknxc5bQd0ZEhfpp/mlWVEa0wSUF/cSW1dx7ahEPwVAjmbUDcDFCumZ04TMMKOWq0g==", + "dependencies": { + "@vaadin/icon": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-icons": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-icons/-/vaadin-icons-23.3.5.tgz", + "integrity": "sha512-1NsapTkd8j6zbKUk13ysC7WNtoeQib5d336jGzhruGrzqmBvgglE3UigiqBHRnMMv/F6q7MV2ycfdVxL6AvgNA==", + "dependencies": { + "@vaadin/icons": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-item": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-23.3.5.tgz", + "integrity": "sha512-gx89jdYp2pCTA9s9Qe/Lan9QO9Gi6+33LsLgJ97SGA4VPk+Rc+sHWOlq5oblDos5J61yNq2hzroNFt6CMEpU9g==", + "dependencies": { + "@vaadin/item": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-list-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-list-box/-/vaadin-list-box-23.3.5.tgz", + "integrity": "sha512-QeqWV6Fn02HP7r2kjce1drp+plgOCQtvlVObCJra/61KEA3nTC3PMB4BpGxG+H2ZKcIWc1D+2nS3Afw/6nOr2w==", + "dependencies": { + "@vaadin/list-box": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-list-mixin": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-list-mixin/-/vaadin-list-mixin-23.3.5.tgz", + "integrity": "sha512-vAIqF/NtHjPbkSuU9uaGohWBy2menX0KlqeuJTH6bVSlC6DUkIwiB+GHQoJHpIHT7/ZbiElgy6QGKuXCYBrwuA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-login": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-login/-/vaadin-login-23.3.5.tgz", + "integrity": "sha512-U/2JItMVOA8XPNdryVQofq9aHjPlea+ROGSrRo2Hm8Wpnaoh6+WP+Do3ivyfNgOTKI0ykpau1MTO1aPulyBTDg==", + "dependencies": { + "@vaadin/login": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-lumo-styles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-23.3.5.tgz", + "integrity": "sha512-Dd6kJO+2o65fWJYCBqGZv/A0ELl62BdkeMd9rCPULVRtXBLAliVmMwAq8byK8ytUuCIVa03XSWdltkWJc+KCpw==", + "dependencies": { + "@polymer/iron-icon": "^3.0.0", + "@polymer/iron-iconset-svg": "^3.0.0", + "@polymer/polymer": "^3.0.0", + "@vaadin/icon": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-material-styles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-23.3.5.tgz", + "integrity": "sha512-7iqLsRux6sk3hVmylXoD29mVI3QoRm50rx/H5mVoqn2N/Ox9U8b0K7kqCd6vbTUcPoa4svg24PhvEF5fCMNGFg==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-menu-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-menu-bar/-/vaadin-menu-bar-23.3.5.tgz", + "integrity": "sha512-YWYIZ6R3dVZFKb8UTH9XWw6O9x+DQLDWOfYBUOTlzOJf2vsdR66T5k84rfx9/wtPiTZPtOsMkbPUwpDII1OXFA==", + "dependencies": { + "@vaadin/menu-bar": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-messages": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-messages/-/vaadin-messages-23.3.5.tgz", + "integrity": "sha512-b4PALdPocAFHaQXOXF8jYx09Ii90qyCvTgk1671HNW55cIn/bLYeXhvlW/vzKlsdLMxrZuNmDEE9yNjZuL4uWg==", + "dependencies": { + "@vaadin/message-input": "~23.3.5", + "@vaadin/message-list": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-notification": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-notification/-/vaadin-notification-23.3.5.tgz", + "integrity": "sha512-5Tno0cX+UscM7Qgv6GrVhLS2lFOdnz3NrsEbvjvMjU933JQi64V+DwuroCeZoV5ov6bR+pJAXjN2RkkmacTxGQ==", + "dependencies": { + "@vaadin/notification": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-ordered-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-ordered-layout/-/vaadin-ordered-layout-23.3.5.tgz", + "integrity": "sha512-OwSrFFaeTnxu2fQBkq/w74W6JLu6QZpPPN5gCQVZAaS/v07OWQsDU9jIXMSTVFFuF9o1CgM7Ixx5/QzOX4vmOA==", + "dependencies": { + "@vaadin/horizontal-layout": "~23.3.5", + "@vaadin/scroller": "~23.3.5", + "@vaadin/vertical-layout": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-overlay": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-23.3.5.tgz", + "integrity": "sha512-UY3Prwf5Zt62zVTrSBAJFbfgTRaqRK1Ws8ginpisRJ10jc8HYr48gclgwaLV6NoAh3kYCvaLjVUSg6l1wraxWg==", + "dependencies": { + "@vaadin/overlay": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-progress-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-progress-bar/-/vaadin-progress-bar-23.3.5.tgz", + "integrity": "sha512-ETeoKMu9ND5uqfWjIIuIVWu7F7BVj51MgDvZtHh+jEdWOFEl8V2s/g378mZAvDMMT0nx8mL5+QDLv81bPAnKQQ==", + "dependencies": { + "@vaadin/progress-bar": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-radio-button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-radio-button/-/vaadin-radio-button-23.3.5.tgz", + "integrity": "sha512-73XqX90tfTffJiVjdk9yHRWZqUPbfjiN98AJpapI1nh3ZEkUphJ27G88hKzfN0RcXc8LzJxrX5I+hS41BMihTA==", + "dependencies": { + "@vaadin/radio-group": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-select": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-select/-/vaadin-select-23.3.5.tgz", + "integrity": "sha512-u9I33Fpa849QYmIPv01wic29eoOb0llhY+1GpdAb/tooXkuFHF8kTpw7e94p5kUp/7apoAmSy4F1PaxwWn2Kuw==", + "dependencies": { + "@vaadin/select": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-split-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-split-layout/-/vaadin-split-layout-23.3.5.tgz", + "integrity": "sha512-2EyDvVAhxxGzIRbvhkwKAUxaZjaVr1qk3tlNehg91COh9YVcAHKngOBSuvB72xj4eKMJbNKi4s47A4xVw1Hkeg==", + "dependencies": { + "@vaadin/split-layout": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-tabs": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-tabs/-/vaadin-tabs-23.3.5.tgz", + "integrity": "sha512-4TSS7lcK2B9GF6/uaKE7naXaub3bQItCT7Pv/lotIxRknDzA1Wl++IrfTcUv9jvgZ4hsBw8PxABdI+L6OtUj3Q==", + "dependencies": { + "@vaadin/tabs": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-template-renderer": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-template-renderer/-/vaadin-template-renderer-23.3.5.tgz", + "integrity": "sha512-sGQpcy1dfUmRVaEKqJxJm0XY4UMCjtNuUcY+bi9Lg/2xwTFLFHPKLRTJVXkBvnIRUbGGYrYcSF7jfOb9C7Y4kg==", + "dependencies": { + "@vaadin/polymer-legacy-adapter": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-text-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-23.3.5.tgz", + "integrity": "sha512-KysPNMlsL8Jet5l3iJRqs7GS+n+xP9mAQO4tql1Cs1NKFrzb9Tjc7MdB43WhUHVtUDjBshRbJE3VzlnS1bVqTA==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/email-field": "~23.3.5", + "@vaadin/integer-field": "~23.3.5", + "@vaadin/number-field": "~23.3.5", + "@vaadin/password-field": "~23.3.5", + "@vaadin/text-area": "~23.3.5", + "@vaadin/text-field": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-themable-mixin": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-23.3.5.tgz", + "integrity": "sha512-ehz9MBb8ld53nIk+d4+9bKa/qqHaDROKL2ExO7AnVYO71Vi+XHbqnFNs72vjTsZ1vyl4S+wIaXcIHoSvUQlxDA==", + "dependencies": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit": "^2.0.0" + } + }, + "node_modules/@vaadin/vaadin-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-time-picker/-/vaadin-time-picker-23.3.5.tgz", + "integrity": "sha512-RKGh/7dnVrtsnMWbCwMwyIxWgWKBt8sIaW6PJGEmY1i53TqwoU7C8O2Qz4RdeM/Jd58XRByKfFsBRl8TU2S0nw==", + "dependencies": { + "@vaadin/time-picker": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-upload": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-upload/-/vaadin-upload-23.3.5.tgz", + "integrity": "sha512-RAxBlSuQCX61pgiYOw1q5hzW4T278EqDoY95vyv587KbDit2kPjF/CGKYSSY+thoYkRbHSDNpykKvUyxyXt76Q==", + "dependencies": { + "@vaadin/upload": "~23.3.5" + } + }, + "node_modules/@vaadin/vaadin-usage-statistics": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.2.tgz", + "integrity": "sha512-xKs1PvRfTXsG0eWWcImLXWjv7D+f1vfoIvovppv6pZ5QX8xgcxWUdNgERlOOdGt3CTuxQXukTBW3+Qfva+OXSg==", + "hasInstallScript": true, + "dependencies": { + "@vaadin/vaadin-development-mode-detector": "^2.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@vaadin/vaadin-virtual-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-virtual-list/-/vaadin-virtual-list-23.3.5.tgz", + "integrity": "sha512-bbQP4llCMkoZi9oV708DEZ5X6hdhxAmV5ms9WhSmmgC2sSWULGsgrCgsLwMDY9E+qiLO649QegTaZoowrkXjgg==", + "dependencies": { + "@vaadin/virtual-list": "~23.3.5" + } + }, + "node_modules/@vaadin/vertical-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-23.3.5.tgz", + "integrity": "sha512-oBvARp/7L4FdepqKSZckS7FWyBipD22fVqItW+pgAjrJx2d2A685s4W6/GyDWvYvc6/X15Lg8Xo9KoEo4q5gOw==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@vaadin/virtual-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-23.3.5.tgz", + "integrity": "sha512-T3FXwF0oksGaDHM5mh9eTg1QylD91fIAm8HmAvQ4zE2f01jlnIBmeoAvKEoSkBcNKjIdYZzjXRyBXGTju90Acw==", + "dependencies": { + "@polymer/polymer": "^3.0.0", + "@vaadin/component-base": "~23.3.5", + "@vaadin/lit-renderer": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "~23.3.5", + "@vaadin/vaadin-material-styles": "~23.3.5", + "@vaadin/vaadin-themable-mixin": "~23.3.5" + } + }, + "node_modules/@webcomponents/shadycss": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.11.1.tgz", + "integrity": "sha512-qSok/oMynEgS99wFY5fKT6cR1y64i01RkHGYOspkh2JQsLSM8pjciER+gu3fqTx589y/7LoSuyB5G9Rh7dyXaQ==" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/construct-style-sheets-polyfill": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/construct-style-sheets-polyfill/-/construct-style-sheets-polyfill-3.1.0.tgz", + "integrity": "sha512-HBLKP0chz8BAY6rBdzda11c3wAZeCZ+kIG4weVC2NM3AXzxx09nhe8t0SQNdloAvg5GLuHwq/0SPOOSPvtCcKw==" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lit": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", + "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "dependencies": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.2.0", + "lit-html": "^2.6.0" + } + }, + "node_modules/lit-element": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", + "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "dependencies": { + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.2.0" + } + }, + "node_modules/lit-html": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", + "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mutexify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", + "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", + "dev": true, + "dependencies": { + "queue-tick": "^1.0.0" + } + }, + "node_modules/nanobench": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", + "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^0.1.2", + "chalk": "^1.1.3", + "mutexify": "^1.1.0", + "pretty-hrtime": "^1.0.2" + }, + "bin": { + "nanobench": "run.js", + "nanobench-compare": "compare.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", + "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-brotli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-brotli/-/rollup-plugin-brotli-3.1.0.tgz", + "integrity": "sha512-vXRPVd9B1x+aaXeBdmLKNNsai9AH3o0Qikf4u0m1icKqgi3qVA4UhOfwGaPYoAHML1GLMUnR//PDhiMHXN/M6g==", + "dev": true, + "engines": { + "node": ">=11.7.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stringify-object/node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-css-comments": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-css-comments/-/strip-css-comments-5.0.0.tgz", + "integrity": "sha512-943vUh0ZxvxO6eK+TzY2F4nVN7a+ZdRK4KIdwHaGMvMrXTrAsJBRudOR3Zi0bLTuVSbF0CQXis4uw04uCabWkg==", + "dev": true, + "dependencies": { + "is-regexp": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/transform-ast": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "convert-source-map": "^1.5.1", + "dash-ast": "^1.0.0", + "is-buffer": "^2.0.0", + "magic-string": "^0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "^2.1.1" + } + }, + "node_modules/transform-ast/node_modules/magic-string": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.5.1.tgz", + "integrity": "sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "npm-run-path": "^4.0.1", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" + }, + "engines": { + "node": ">=14.16" + }, + "peerDependencies": { + "eslint": ">=7", + "typescript": "*", + "vite": "^2.0.0 || ^3.0.0-0", + "vls": "*", + "vti": "*" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vite-plugin-checker/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-checker/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vite-plugin-checker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-checker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true, + "engines": { + "node": ">=8.0.0 || >=10.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", + "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4", + "semver": "^7.3.4", + "vscode-languageserver-protocol": "3.16.0" + }, + "engines": { + "vscode": "^1.52.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "dependencies": { + "vscode-languageserver-protocol": "3.16.0" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "dependencies": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "dev": true, + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==", + "dev": true + }, + "node_modules/workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "dev": true, + "dependencies": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "dev": true, + "dependencies": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==", + "dev": true + }, + "node_modules/workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true + }, + "@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz", + "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "dev": true, + "optional": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@lit-labs/ssr-dom-shim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.0.0.tgz", + "integrity": "sha512-ic93MBXfApIFTrup4a70M/+ddD8xdt2zxxj9sRwHQzhS9ag/syqkD8JPdTXsc1gUy2K8TTirhlCqyTEM/sifNw==" + }, + "@lit/reactive-element": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", + "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@open-wc/dedupe-mixin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.3.1.tgz", + "integrity": "sha512-ukowSvzpZQDUH0Y3znJTsY88HkiGk3Khc0WGpIPhap1xlerieYi27QBg6wx/nTurpWfU6XXXsx9ocxDYCdtw0Q==" + }, + "@polymer/iron-a11y-keys-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-a11y-keys-behavior/-/iron-a11y-keys-behavior-3.0.1.tgz", + "integrity": "sha512-lnrjKq3ysbBPT/74l0Fj0U9H9C35Tpw2C/tpJ8a+5g8Y3YJs1WSZYnEl1yOkw6sEyaxOq/1DkzH0+60gGu5/PQ==", + "requires": { + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-flex-layout": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-flex-layout/-/iron-flex-layout-3.0.1.tgz", + "integrity": "sha512-7gB869czArF+HZcPTVSgvA7tXYFze9EKckvM95NB7SqYF+NnsQyhoXgKnpFwGyo95lUjUW9TFDLUwDXnCYFtkw==", + "requires": { + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-icon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-icon/-/iron-icon-3.0.1.tgz", + "integrity": "sha512-QLPwirk+UPZNaLnMew9VludXA4CWUCenRewgEcGYwdzVgDPCDbXxy6vRJjmweZobMQv/oVLppT2JZtJFnPxX6g==", + "requires": { + "@polymer/iron-flex-layout": "^3.0.0-pre.26", + "@polymer/iron-meta": "3.0.1", + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-iconset-svg": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-iconset-svg/-/iron-iconset-svg-3.0.1.tgz", + "integrity": "sha512-XNwURbNHRw6u2fJe05O5fMYye6GSgDlDqCO+q6K1zAnKIrpgZwf2vTkBd5uCcZwsN0FyCB3mvNZx4jkh85dRDw==", + "requires": { + "@polymer/iron-meta": "3.0.1", + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@polymer/iron-list/-/iron-list-3.1.0.tgz", + "integrity": "sha512-Eiv6xd3h3oPmn8SXFntXVfC3ZnegH+KHAxiKLKcOASFSRY3mHnr2AdcnExUJ9ItoCMA5UzKaM/0U22eWzGERtA==", + "requires": { + "@polymer/iron-a11y-keys-behavior": "^3.0.0-pre.26", + "@polymer/iron-resizable-behavior": "3.0.1", + "@polymer/iron-scroll-target-behavior": "^3.0.0-pre.26", + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-meta": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-meta/-/iron-meta-3.0.1.tgz", + "integrity": "sha512-pWguPugiLYmWFV9UWxLWzZ6gm4wBwQdDy4VULKwdHCqR7OP7u98h+XDdGZsSlDPv6qoryV/e3tGHlTIT0mbzJA==", + "requires": { + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-resizable-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-resizable-behavior/-/iron-resizable-behavior-3.0.1.tgz", + "integrity": "sha512-FyHxRxFspVoRaeZSWpT3y0C9awomb4tXXolIJcZ7RvXhMP632V5lez+ch5G5SwK0LpnAPkg35eB0LPMFv+YMMQ==", + "requires": { + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/iron-scroll-target-behavior": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@polymer/iron-scroll-target-behavior/-/iron-scroll-target-behavior-3.0.1.tgz", + "integrity": "sha512-xg1WanG25BIkQE8rhuReqY9zx1K5M7F+YAIYpswEp5eyDIaZ1Y3vUmVeQ3KG+hiSugzI1M752azXN7kvyhOBcQ==", + "requires": { + "@polymer/polymer": "3.5.1" + } + }, + "@polymer/polymer": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.5.1.tgz", + "integrity": "sha512-JlAHuy+1qIC6hL1ojEUfIVD58fzTpJAoCxFwV5yr0mYTXV1H8bz5zy0+rC963Cgr9iNXQ4T9ncSjC2fkF9BQfw==", + "requires": { + "@webcomponents/shadycss": "^1.9.1" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/plugin-replace": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-3.1.0.tgz", + "integrity": "sha512-pA3XRUrSKybVYqmH5TqWNZpGxF+VV+1GrYchKgCNIj2vsSOX7CVm2RCtx8p2nrC7xvkziYyK+lSi74T93MU3YA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "requires": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "@vaadin/accordion": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/accordion/-/accordion-23.3.5.tgz", + "integrity": "sha512-UVYcd1XxCPF4YM9YLu3L2EAf+9Mul4OV2C+dGK9+liExm/0LF5ftIvUJ96vN1qUNf8oVEIKLlF5JpzSADcX3kQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/details": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/app-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/app-layout/-/app-layout-23.3.5.tgz", + "integrity": "sha512-Aa2ITZjgVfVJqV/ulRTI7+sLq491IhMPqU0Q2BAdyw4rBD2HROI+hlr2cHsk2Y9gXaBihUz0SdyAOiQG2EGing==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/avatar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-23.3.5.tgz", + "integrity": "sha512-ih4rWQhzxUuvNgaB5Ycp4FU6QgJphng/Omgq9sHNYhhtFLcrS5AG27eM0HkDmUFGQCF/KHBz/vuFFFu4RsXW5w==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/tooltip": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/avatar-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/avatar-group/-/avatar-group-23.3.5.tgz", + "integrity": "sha512-PLTOcdMrmLb2p4sxA28IRdPIrtF/xvRtu8eX3g7KLa6hEqgbUx4qBDVnetJl9IDOu/l05gtbS0hZK8Suw/pKnA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/avatar": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/bundles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/bundles/-/bundles-23.3.5.tgz", + "integrity": "sha512-fEVlbKONGLf2363Fa7qKtzPHGauALslua2R4owBAfH5rhO5i6pJ3FnEZ1huAh1uZ0LAJqiG13tjgCkvZixBOEQ==", + "requires": {} + }, + "@vaadin/button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-23.3.5.tgz", + "integrity": "sha512-dRqIYl5wD77OPjBRaBufEGXITIVIfyGgnsjW7G6IjfeYYdJwepV+kb7GPmMnnGJojp02yPKhJI6EA5YmyfTyew==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/checkbox": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-23.3.5.tgz", + "integrity": "sha512-+2mQ0BRqbf/ASxubJ2+m65vutPSsVzZu4W97R78REw8gnR6nv4itcVm4/p3O6eOqZHKpBd3fI0mwVGvMW61+ow==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/checkbox-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox-group/-/checkbox-group-23.3.5.tgz", + "integrity": "sha512-5bNLeRctJkGbOKOHdeRv0IBhephIRugoH0SWDEQ3vcRDEODFF9t+2DnHM5DGWawcQWO8lJEt03fmL0z04YI60A==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/checkbox": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/combo-box/-/combo-box-23.3.5.tgz", + "integrity": "sha512-koV56y7Rq5veaZ9WcG30axhBTWAcHIt0Yu+6q1xiSIW4T0RomDcuNbz/Roq/E3/7Wv4mKoLF34qyi5FApRa33g==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/common-frontend": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@vaadin/common-frontend/-/common-frontend-0.0.17.tgz", + "integrity": "sha512-M4tg10cYgdDqQAXfGfXpQ90eHm+xL6ynAFEDgtc2IxXVWXKYU8jGK08SM5yOcZ4wDk0ETyHMtQlKUPDNkz6Qfw==", + "requires": { + "tslib": "^2.3.1" + } + }, + "@vaadin/component-base": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-23.3.5.tgz", + "integrity": "sha512-9I3DmXWiyeRqy/P793Y8zAu9HCj6opr1C1Rt5JQgSqAoOH/Rs7Z1H+N2YKcaa3rmVIVqlur4PtDZb/CnEgSOMg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/vaadin-development-mode-detector": "2.0.5", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "lit": "2.6.1" + } + }, + "@vaadin/confirm-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/confirm-dialog/-/confirm-dialog-23.3.5.tgz", + "integrity": "sha512-W2hvsZte2AiVVM2K+zu+GmPlZcdxDHH2UVVFBTlgxq3vZmK+dZAG3718fQjWk38Ud5gtgmQ+Rynd2DmjUwzoLw==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/dialog": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/context-menu": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/context-menu/-/context-menu-23.3.5.tgz", + "integrity": "sha512-ltk7dD2gV7nVvvnjNtnuCEb+3mbR1KJ1XE+EtpnxZAoeDIE39+cOxGA6V0Sd7VIRxvZT22PinZrNDDTNddDpgA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/custom-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/custom-field/-/custom-field-23.3.5.tgz", + "integrity": "sha512-mKkDoBd4CYgAM49UTfVsp7ukPnLXDkbUBD8CSbXdBc9JSo7+gX9n2Sw6MopnR9GGO/yqmz3Xhn5VVtA/hiYM1g==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/date-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/date-picker/-/date-picker-23.3.5.tgz", + "integrity": "sha512-S0DfmRkgXyK5EZHQ/ahKpNM0zkLK+OmmLxChgI6LRKsA8a01sO+YWNa1qrfZFHYdZGVDmGYAYQAnCdsFFNWxFg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/date-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/date-time-picker/-/date-time-picker-23.3.5.tgz", + "integrity": "sha512-m85Od+/BTWGxD/38U7n9LwVb4NoyzVfngTHY8AdqANklqR08+D40dEGueNh+e/6peL5RHBsgiDSJjwEzXgd4MA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/custom-field": "23.3.5", + "@vaadin/date-picker": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/time-picker": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/details": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/details/-/details-23.3.5.tgz", + "integrity": "sha512-FVyVOYifvWktn/B2nMZcffEols8StLRtlnX8MQWbExxEVxQ0BrWzzLhBaGN53KS7OXV4OzSUTefTEDwU9tXE9Q==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/dialog/-/dialog-23.3.5.tgz", + "integrity": "sha512-7QbPftotXmB0yRScZMH3TvUSQIDURsG5nOAlZw0wN6okB2pAIXnMfUGLkdZkmuu68vD3cUgLhxaN+ROvkr7ixA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/email-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/email-field/-/email-field-23.3.5.tgz", + "integrity": "sha512-kqEUR5+lNZVLRuMzPqa99JhFUtExG/cxAC/MmHKVkOxiUkBcbBQWYMldfOXh+MLDUpGsIHTPLtiKEcXUa1GDow==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/field-base": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-23.3.5.tgz", + "integrity": "sha512-PqZX9zY1RVxZCdQ9cT02CKQY69KW4PWMTHXrerhyK29Zy2a+InQOVE0uwjs9GEChAo85TL3YrVw4DDnBz1ruvA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "lit": "2.6.1" + } + }, + "@vaadin/field-highlighter": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/field-highlighter/-/field-highlighter-23.3.5.tgz", + "integrity": "sha512-Ud4pRnrt0WUqXWMKB+qN9QlzXfzxHqSnQEf1NeYNm4+5Q537FxFejMzBZ61IDCZ9IFlvIabeVz0SuSrJoecfSg==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "lit": "2.6.1" + } + }, + "@vaadin/form-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/form-layout/-/form-layout-23.3.5.tgz", + "integrity": "sha512-o1gAkp27MnVeztNcyNWkUaebPVhO00WSBWD0MQ/Amn2f+pRYRUS9FD09T1po+FXubHQpHTmU50ElDbJnj7vI/A==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/grid": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-23.3.5.tgz", + "integrity": "sha512-6wnHiZB1qz3Ebmm2hkBM1Q3qqiAxsEiNOSnPKCLAAABbFzoVyxZZe8hc+qn/agA5qGLv6mMj0DyET0OvnG4ZFQ==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/checkbox": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/horizontal-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/horizontal-layout/-/horizontal-layout-23.3.5.tgz", + "integrity": "sha512-oD4EJvttgoDPxEA2hlQdRbpIIo9FMrOE/fsSGrCd3Padb0T2SrV5nlp3gUhzAvQ9DCmiRTl3YmrfeOXRa2WdrA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/icon": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-23.3.5.tgz", + "integrity": "sha512-jIRqTwHaTW3CPdWDxVluxb5PERK8Y74k28sfL7zCSbi2XVt2TjkRFUioraLBseRTZhdCCOn1OEBZ54v8KtiBqA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "lit": "2.6.1" + } + }, + "@vaadin/icons": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-23.3.5.tgz", + "integrity": "sha512-BZHedo5G5t0IlNMhHtRZqcZiqq6yKeRYQP2ayXnHzJHv6ALlIEgjOlguCGRdSAo8EE9Z3HHTo11+6xBN7ybwnQ==", + "requires": { + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/icon": "23.3.5" + } + }, + "@vaadin/input-container": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-23.3.5.tgz", + "integrity": "sha512-uJf2qKSln9d6OW+M95ZGY6EMOwZFQ9rS7s9AwtC3JaxGusIT8ouU+SoQXAdMr5i+UEdxPczHSheYUx+6jdoYTA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/integer-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/integer-field/-/integer-field-23.3.5.tgz", + "integrity": "sha512-/727MYba0Z8fdqHc6S2ED/TY8YoYlVS9ezp7UHe2ZyXr15z6sBKJrjk1i2wP4rQM1He2idmyNxsq7HRQ9DS2iA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5" + } + }, + "@vaadin/item": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-23.3.5.tgz", + "integrity": "sha512-Cg1AnvN3etFR5NbabfQMoy18dsCdrccRiB1iJpoLaEaKJuDONB0Qkqc9gXt2sPF16FGtfNkn9sSAnmQOllQ/6A==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/list-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-23.3.5.tgz", + "integrity": "sha512-45eOcmAfwjriy2NbfqvBc0YFJ9spJYSuj3WnngMDh9G/lHEnjdsXZpueUWqW7viJ4n6xNcvyRGZhjoLp9fUUBA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/lit-renderer": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-23.3.5.tgz", + "integrity": "sha512-7gV15aHutasPqbbCx+TuUl/+i3uJOl2GLD0rPkuv7gswK6lxEey2hoWWsS1B4WxD109sfC5w+MgoVYq11WIv2Q==", + "requires": { + "lit": "2.6.1" + } + }, + "@vaadin/login": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/login/-/login-23.3.5.tgz", + "integrity": "sha512-SmP4Ww4G0XyVWhmykdT8QszgjxDiNpCJTHENvdMEgx4+UhX9VpWKv89qA42c6u80wYNILYqrecj0BStoOeNJBQ==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/menu-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/menu-bar/-/menu-bar-23.3.5.tgz", + "integrity": "sha512-OWFNBXzPjxaqXuwUmg7tto0PDeocUCxHOO2nLpBRNfKXB76wxot2/tLoyLxCkgpkNm0mxoqlM9vqJj4vzUi4+g==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/context-menu": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/message-input": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/message-input/-/message-input-23.3.5.tgz", + "integrity": "sha512-iSJdlaSwq7XTtA+QoY9bOYEqWgeobm/GjaLthOpskM75NhSkgWrT/K451iJa96MHeOGSJT24xUb/bRneU3zWQw==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/message-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/message-list/-/message-list-23.3.5.tgz", + "integrity": "sha512-k49lvegpJAU2BJGxLhdeQdScjLK9jp6ITnUNAeOYQCMy0o/CnrUXtYaEsgAIImvjAqSSTK/DA3frzwZ/lvhIKA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/avatar": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/multi-select-combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/multi-select-combo-box/-/multi-select-combo-box-23.3.5.tgz", + "integrity": "sha512-RKRYS9T0XrhvvPXcG8nme2KRtjjXgrmnM1cdBrd3meuQRkyJ3bTKFlCGEjyi/FCmgs0dZpls/8NogjMvZoTzRQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/combo-box": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/notification": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/notification/-/notification-23.3.5.tgz", + "integrity": "sha512-JatTcDrLHwG/sS1l6s7lb5S4Qr0c1xwgegC9pvREphlA4Mw/e7SDSuZPmTbVQWdz4lVfCKj9G5DXw9iqvjq/7w==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "lit": "2.6.1" + } + }, + "@vaadin/number-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/number-field/-/number-field-23.3.5.tgz", + "integrity": "sha512-dDWSKq9JHzqEBENBf2grQsJ+EqOIfgVcBNAM6yC3v0xlrWTd36MCdkbJC3UmkGdRdkdHx+2mC6/QcQlwMcv/SQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/overlay": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-23.3.5.tgz", + "integrity": "sha512-tfq28DNwKdhQVrzBB4ZI0bOEYKQDkVLWMVHeXGVyHEMaaswRLj8JXL7ECZMF+MZbmMuwDIB32HRaZl7Js1YLgA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/password-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-23.3.5.tgz", + "integrity": "sha512-VJlghzJGVmwzBI+vMad2ivScK0bemGcxWtiMYdZc+k1uQQEgSB8q/1S9fQzh8GM4T7DOjrAyRyyowScTupTJHg==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/polymer-legacy-adapter": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/polymer-legacy-adapter/-/polymer-legacy-adapter-23.3.5.tgz", + "integrity": "sha512-62FkqTfznQuC3dlbDR+sDUOYQZgioCrJbyhR4PVjnJaPqcnv9o8RA971+1YDIV2WdNXmihU/QqkRTnXEUbyEdw==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "lit": "2.6.1" + } + }, + "@vaadin/progress-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/progress-bar/-/progress-bar-23.3.5.tgz", + "integrity": "sha512-BjWuS81rOD1Q06NRuWnOPij0uuQCtzjk35DE79WW/CP7/BgrezFy72kcat5SNJv1CpbVAVB9KlQZQ/pkxMqElg==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/radio-group": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/radio-group/-/radio-group-23.3.5.tgz", + "integrity": "sha512-+OlA2ihZi5EIZArc97+IsOcLONbMxq8QevcRZalLsk+nEDDYl7bgFnPy5svLzWYnI7/FlNqRdQiHOVdAQFix7g==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/router": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.4.tgz", + "integrity": "sha512-B4JVtzFVUMlsjuJHNXEMfNZrM4QDrdeOMc6EEigiHYxwF82py6yDdP6SWP0aPoP3f6aQHt51tLWdXSpkKpWf7A==", + "requires": { + "@vaadin/vaadin-usage-statistics": "2.1.2", + "path-to-regexp": "2.4.0" + } + }, + "@vaadin/scroller": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-23.3.5.tgz", + "integrity": "sha512-Bo7JLt7wcp8xVcsJATNvjGAd/+V80GQgxEW/BKzBEQuY0qCD/7RRbZ2IElbmRcyHCRBxRVkTlXlBYHAIQVutlQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/select": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/select/-/select-23.3.5.tgz", + "integrity": "sha512-2a2IZ0PKjWsdW1JXWjSxeZriLo1G2hVi6i1cP7yhMiBw/WD4yEpXKYpFEEGlKW9d8ZQyfdGsFz03JARQaDFkxQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/split-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/split-layout/-/split-layout-23.3.5.tgz", + "integrity": "sha512-fy0EIrJ/Eb/LB73MDDVXjdtGjF6hal+MEch9hyLV3cUR39mwkjHQxHkFw/QMXzzm/teLTYpITCkZngE8Rcuz9A==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/tabs": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-23.3.5.tgz", + "integrity": "sha512-pzyG++9+9bsCORZJ+Hkyy2utHSJrmk0fF0dgjWUcLYw7VvyOLDxB0leBrmnhCgz3bRcSLKeB6nY56eFl32naPg==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/tabsheet": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-23.3.5.tgz", + "integrity": "sha512-vHbV0VPd8L9drn92bsijzTkuNYXboxZ3wagZSDXU/154g4C4IfhwN/DqJOM2KcjbP5kM9ZKWTSakPQpJhx5k0w==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/scroller": "23.3.5", + "@vaadin/tabs": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/text-area": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/text-area/-/text-area-23.3.5.tgz", + "integrity": "sha512-HwSHSWYC+PC28ZQxfPCHQGHMuYcrKpphWf6UQJT79si0aHyuehqVzGzKarT72sQ9w7k8aSl0QZRsYQunfPcyEA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/text-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-23.3.5.tgz", + "integrity": "sha512-Akkn2TkGTlxIrwxb7nPSUT9M3zBysIVBfwrIy+PCuu4BJtrYmtAiuTn4QwgBSvz7jh8PZkVnCftt5edJ6NCerA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/time-picker/-/time-picker-23.3.5.tgz", + "integrity": "sha512-vPi+i9JMmPQa5X4igV4Jubn/MtQMpiiVnsd5cYwokJvOe6aCGwPxbAf08mHbKwMMlfnoDTSn07YIwhLYLp+toQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/combo-box": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/tooltip": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-23.3.5.tgz", + "integrity": "sha512-CvT3i+V3P5BXKVtPrqSQpM59GQc/a+jqNJEO5QrZLAttY93bNEP60kSotsuc1/qHeQ+F2qhnMfmIbUtB2AHxpg==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/overlay": "~23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/upload": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/upload/-/upload-23.3.5.tgz", + "integrity": "sha512-lyEpnu9rtbgV0MAPJJitMniL7WhfGMy5tHRJ9+6+XvD1bnVjXBFkHMR2m8W1Vi2JHuxVOY7QPd5kPHi5NqjaEQ==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/button": "23.3.5", + "@vaadin/component-base": "23.3.5", + "@vaadin/progress-bar": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/vaadin-accordion": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-accordion/-/vaadin-accordion-23.3.5.tgz", + "integrity": "sha512-fpkVL+9aP9pTaOxyZT8+qsJ/m/r91YJ6Koz+pQNERnYzWmfU8ZQFk/Rq0y7XrvCunSl68Ym85s84UaAwmb7mNg==", + "requires": { + "@vaadin/accordion": "23.3.5" + } + }, + "@vaadin/vaadin-app-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-app-layout/-/vaadin-app-layout-23.3.5.tgz", + "integrity": "sha512-6no4Y5cLjuO0bjezPbWUxfFSdDJImRPPkXgtpAKe6Jwfp+RBtSvWegqE+beVVDswPIQhh7FPnShb5zE8vHVXOg==", + "requires": { + "@vaadin/app-layout": "23.3.5" + } + }, + "@vaadin/vaadin-avatar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-avatar/-/vaadin-avatar-23.3.5.tgz", + "integrity": "sha512-aT0W63wqFCy8mIPhP/yl5Pw7JHijkOfUloqOiNxbswDEzDmBcii2X2Ox+oLiWmMfqpDbOLFho/yTkFGM9UHmzQ==", + "requires": { + "@vaadin/avatar": "23.3.5", + "@vaadin/avatar-group": "23.3.5" + } + }, + "@vaadin/vaadin-button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-button/-/vaadin-button-23.3.5.tgz", + "integrity": "sha512-mWNp3HYRaxhYl3acoWDJHCX4vbOscXKP8LrCStyK5Df5N4po3iRTRrlfCAUw8Yy0WzdlCYPL2Mr+bHhQeFTuBw==", + "requires": { + "@vaadin/button": "23.3.5" + } + }, + "@vaadin/vaadin-checkbox": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-checkbox/-/vaadin-checkbox-23.3.5.tgz", + "integrity": "sha512-WLD11dq0mapApmLSWxuPl7E2dO3hc/+9c4zqO8SgU5wFIC7hti2oAvUumxAcz7mhGCtcAGKTcvjY8RHDIkVG+Q==", + "requires": { + "@vaadin/checkbox": "23.3.5", + "@vaadin/checkbox-group": "23.3.5" + } + }, + "@vaadin/vaadin-combo-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-combo-box/-/vaadin-combo-box-23.3.5.tgz", + "integrity": "sha512-uG11V8Em4AeoD6qp654Llnsj/UH9ldHTPsr7PORh+JtwvBZWmpwVJlRpRBEXr8K+P/YDRKStu0qToxQvolz8aA==", + "requires": { + "@vaadin/combo-box": "23.3.5" + } + }, + "@vaadin/vaadin-confirm-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-confirm-dialog/-/vaadin-confirm-dialog-23.3.5.tgz", + "integrity": "sha512-jZDrnfZL7D50jsvxfg8CbSA/BL6jD0sHqghKIO0bLaPvUbmJP9yteVaQ0Z14OOwlTECCPCRBlChUcO2yQryoHw==", + "requires": { + "@vaadin/confirm-dialog": "23.3.5" + } + }, + "@vaadin/vaadin-context-menu": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-context-menu/-/vaadin-context-menu-23.3.5.tgz", + "integrity": "sha512-mieoSgqkxXG/fHmTEQLc/N/whvzSE5/o8iabKjHTD7b8FOuz3Ns88A8weyZu3N+eFT6l9NvYkSJNQcau5sUCNg==", + "requires": { + "@vaadin/context-menu": "23.3.5" + } + }, + "@vaadin/vaadin-custom-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-custom-field/-/vaadin-custom-field-23.3.5.tgz", + "integrity": "sha512-rp23oBvgRJ1aAZF+cbKHktLLL1BJebUBn3NtuN7lGIms/+I05zIzYc5Yhg2qLXuy8aPQEptT6mfYh0UoOU6+6w==", + "requires": { + "@vaadin/custom-field": "23.3.5" + } + }, + "@vaadin/vaadin-date-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-date-picker/-/vaadin-date-picker-23.3.5.tgz", + "integrity": "sha512-d4N0Oy21SNycH9ntEe9tOU6xvVc0+X5ky/WWnUQRoEYpDCUPrBq4U/G9YC4k82fZ8481P5ZgFvO4WOYFEQflOw==", + "requires": { + "@vaadin/date-picker": "23.3.5" + } + }, + "@vaadin/vaadin-date-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-date-time-picker/-/vaadin-date-time-picker-23.3.5.tgz", + "integrity": "sha512-HI5uQWH03zuvE2H3RM4LC5/pd8nQvoO1apPzBgnr7ccfoYIxOyfw2duJscB9q5rebRaIJEuJMExMJSmmDklTkA==", + "requires": { + "@vaadin/date-time-picker": "23.3.5" + } + }, + "@vaadin/vaadin-details": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-details/-/vaadin-details-23.3.5.tgz", + "integrity": "sha512-YWWSvMthsjtiXU6jADUNxcplJe9KXMaR9gRplw+5+WEVegneUWRYWuack/YUxcOwpGCtqo3yeMvVPEs1rQdyhg==", + "requires": { + "@vaadin/details": "23.3.5" + } + }, + "@vaadin/vaadin-development-mode-detector": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.5.tgz", + "integrity": "sha512-miirBQw10UHjKwRv29iZniXCo41cLg3wFotoyTeUZ2PTGIDk/fZVFr4Q4WVKZrp3D15878vz94nNQROSmPLjdg==" + }, + "@vaadin/vaadin-dialog": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-dialog/-/vaadin-dialog-23.3.5.tgz", + "integrity": "sha512-t46XGQKkzyDDF7Vun8aWoEJh0DfEQuz1RAOCapg2lZ2Dya/F8OVeMaplRtC8FPP1DBrk/9fPcR64hrxEF8edQA==", + "requires": { + "@vaadin/dialog": "23.3.5" + } + }, + "@vaadin/vaadin-form-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-form-layout/-/vaadin-form-layout-23.3.5.tgz", + "integrity": "sha512-SzRRFS12VK5Jmh3rIi0rjfkG4wGh5CVxocchukQG5R1a8u63daUyHFCA8rUtKQBuaaxr7ZP2LR8S4BtMcVtgcA==", + "requires": { + "@vaadin/form-layout": "23.3.5" + } + }, + "@vaadin/vaadin-grid": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-grid/-/vaadin-grid-23.3.5.tgz", + "integrity": "sha512-/Mgl3ocGK1ee3OknyLGmuLwmsEU0ZdwSoRkh0YFEnhodd4NURSk5I2eBLZaj5aOFcCP79vnTgYnUjE6lgE67gg==", + "requires": { + "@vaadin/grid": "23.3.5" + } + }, + "@vaadin/vaadin-icon": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-icon/-/vaadin-icon-23.3.5.tgz", + "integrity": "sha512-NGdt3ogga9azskeJEXD8Yknxc5bQd0ZEhfpp/mlWVEa0wSUF/cSW1dx7ahEPwVAjmbUDcDFCumZ04TMMKOWq0g==", + "requires": { + "@vaadin/icon": "23.3.5" + } + }, + "@vaadin/vaadin-icons": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-icons/-/vaadin-icons-23.3.5.tgz", + "integrity": "sha512-1NsapTkd8j6zbKUk13ysC7WNtoeQib5d336jGzhruGrzqmBvgglE3UigiqBHRnMMv/F6q7MV2ycfdVxL6AvgNA==", + "requires": { + "@vaadin/icons": "23.3.5" + } + }, + "@vaadin/vaadin-item": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-item/-/vaadin-item-23.3.5.tgz", + "integrity": "sha512-gx89jdYp2pCTA9s9Qe/Lan9QO9Gi6+33LsLgJ97SGA4VPk+Rc+sHWOlq5oblDos5J61yNq2hzroNFt6CMEpU9g==", + "requires": { + "@vaadin/item": "23.3.5" + } + }, + "@vaadin/vaadin-list-box": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-list-box/-/vaadin-list-box-23.3.5.tgz", + "integrity": "sha512-QeqWV6Fn02HP7r2kjce1drp+plgOCQtvlVObCJra/61KEA3nTC3PMB4BpGxG+H2ZKcIWc1D+2nS3Afw/6nOr2w==", + "requires": { + "@vaadin/list-box": "23.3.5" + } + }, + "@vaadin/vaadin-list-mixin": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-list-mixin/-/vaadin-list-mixin-23.3.5.tgz", + "integrity": "sha512-vAIqF/NtHjPbkSuU9uaGohWBy2menX0KlqeuJTH6bVSlC6DUkIwiB+GHQoJHpIHT7/ZbiElgy6QGKuXCYBrwuA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5" + } + }, + "@vaadin/vaadin-login": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-login/-/vaadin-login-23.3.5.tgz", + "integrity": "sha512-U/2JItMVOA8XPNdryVQofq9aHjPlea+ROGSrRo2Hm8Wpnaoh6+WP+Do3ivyfNgOTKI0ykpau1MTO1aPulyBTDg==", + "requires": { + "@vaadin/login": "23.3.5" + } + }, + "@vaadin/vaadin-lumo-styles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-23.3.5.tgz", + "integrity": "sha512-Dd6kJO+2o65fWJYCBqGZv/A0ELl62BdkeMd9rCPULVRtXBLAliVmMwAq8byK8ytUuCIVa03XSWdltkWJc+KCpw==", + "requires": { + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/icon": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/vaadin-material-styles": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-23.3.5.tgz", + "integrity": "sha512-7iqLsRux6sk3hVmylXoD29mVI3QoRm50rx/H5mVoqn2N/Ox9U8b0K7kqCd6vbTUcPoa4svg24PhvEF5fCMNGFg==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/vaadin-menu-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-menu-bar/-/vaadin-menu-bar-23.3.5.tgz", + "integrity": "sha512-YWYIZ6R3dVZFKb8UTH9XWw6O9x+DQLDWOfYBUOTlzOJf2vsdR66T5k84rfx9/wtPiTZPtOsMkbPUwpDII1OXFA==", + "requires": { + "@vaadin/menu-bar": "23.3.5" + } + }, + "@vaadin/vaadin-messages": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-messages/-/vaadin-messages-23.3.5.tgz", + "integrity": "sha512-b4PALdPocAFHaQXOXF8jYx09Ii90qyCvTgk1671HNW55cIn/bLYeXhvlW/vzKlsdLMxrZuNmDEE9yNjZuL4uWg==", + "requires": { + "@vaadin/message-input": "23.3.5", + "@vaadin/message-list": "23.3.5" + } + }, + "@vaadin/vaadin-notification": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-notification/-/vaadin-notification-23.3.5.tgz", + "integrity": "sha512-5Tno0cX+UscM7Qgv6GrVhLS2lFOdnz3NrsEbvjvMjU933JQi64V+DwuroCeZoV5ov6bR+pJAXjN2RkkmacTxGQ==", + "requires": { + "@vaadin/notification": "23.3.5" + } + }, + "@vaadin/vaadin-ordered-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-ordered-layout/-/vaadin-ordered-layout-23.3.5.tgz", + "integrity": "sha512-OwSrFFaeTnxu2fQBkq/w74W6JLu6QZpPPN5gCQVZAaS/v07OWQsDU9jIXMSTVFFuF9o1CgM7Ixx5/QzOX4vmOA==", + "requires": { + "@vaadin/horizontal-layout": "23.3.5", + "@vaadin/scroller": "23.3.5", + "@vaadin/vertical-layout": "23.3.5" + } + }, + "@vaadin/vaadin-overlay": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-overlay/-/vaadin-overlay-23.3.5.tgz", + "integrity": "sha512-UY3Prwf5Zt62zVTrSBAJFbfgTRaqRK1Ws8ginpisRJ10jc8HYr48gclgwaLV6NoAh3kYCvaLjVUSg6l1wraxWg==", + "requires": { + "@vaadin/overlay": "~23.3.5" + } + }, + "@vaadin/vaadin-progress-bar": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-progress-bar/-/vaadin-progress-bar-23.3.5.tgz", + "integrity": "sha512-ETeoKMu9ND5uqfWjIIuIVWu7F7BVj51MgDvZtHh+jEdWOFEl8V2s/g378mZAvDMMT0nx8mL5+QDLv81bPAnKQQ==", + "requires": { + "@vaadin/progress-bar": "23.3.5" + } + }, + "@vaadin/vaadin-radio-button": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-radio-button/-/vaadin-radio-button-23.3.5.tgz", + "integrity": "sha512-73XqX90tfTffJiVjdk9yHRWZqUPbfjiN98AJpapI1nh3ZEkUphJ27G88hKzfN0RcXc8LzJxrX5I+hS41BMihTA==", + "requires": { + "@vaadin/radio-group": "23.3.5" + } + }, + "@vaadin/vaadin-select": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-select/-/vaadin-select-23.3.5.tgz", + "integrity": "sha512-u9I33Fpa849QYmIPv01wic29eoOb0llhY+1GpdAb/tooXkuFHF8kTpw7e94p5kUp/7apoAmSy4F1PaxwWn2Kuw==", + "requires": { + "@vaadin/select": "23.3.5" + } + }, + "@vaadin/vaadin-split-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-split-layout/-/vaadin-split-layout-23.3.5.tgz", + "integrity": "sha512-2EyDvVAhxxGzIRbvhkwKAUxaZjaVr1qk3tlNehg91COh9YVcAHKngOBSuvB72xj4eKMJbNKi4s47A4xVw1Hkeg==", + "requires": { + "@vaadin/split-layout": "23.3.5" + } + }, + "@vaadin/vaadin-tabs": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-tabs/-/vaadin-tabs-23.3.5.tgz", + "integrity": "sha512-4TSS7lcK2B9GF6/uaKE7naXaub3bQItCT7Pv/lotIxRknDzA1Wl++IrfTcUv9jvgZ4hsBw8PxABdI+L6OtUj3Q==", + "requires": { + "@vaadin/tabs": "23.3.5" + } + }, + "@vaadin/vaadin-template-renderer": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-template-renderer/-/vaadin-template-renderer-23.3.5.tgz", + "integrity": "sha512-sGQpcy1dfUmRVaEKqJxJm0XY4UMCjtNuUcY+bi9Lg/2xwTFLFHPKLRTJVXkBvnIRUbGGYrYcSF7jfOb9C7Y4kg==", + "requires": { + "@vaadin/polymer-legacy-adapter": "23.3.5" + } + }, + "@vaadin/vaadin-text-field": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-text-field/-/vaadin-text-field-23.3.5.tgz", + "integrity": "sha512-KysPNMlsL8Jet5l3iJRqs7GS+n+xP9mAQO4tql1Cs1NKFrzb9Tjc7MdB43WhUHVtUDjBshRbJE3VzlnS1bVqTA==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/email-field": "23.3.5", + "@vaadin/integer-field": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/text-field": "23.3.5" + } + }, + "@vaadin/vaadin-themable-mixin": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-23.3.5.tgz", + "integrity": "sha512-ehz9MBb8ld53nIk+d4+9bKa/qqHaDROKL2ExO7AnVYO71Vi+XHbqnFNs72vjTsZ1vyl4S+wIaXcIHoSvUQlxDA==", + "requires": { + "@open-wc/dedupe-mixin": "^1.3.0", + "lit": "2.6.1" + } + }, + "@vaadin/vaadin-time-picker": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-time-picker/-/vaadin-time-picker-23.3.5.tgz", + "integrity": "sha512-RKGh/7dnVrtsnMWbCwMwyIxWgWKBt8sIaW6PJGEmY1i53TqwoU7C8O2Qz4RdeM/Jd58XRByKfFsBRl8TU2S0nw==", + "requires": { + "@vaadin/time-picker": "23.3.5" + } + }, + "@vaadin/vaadin-upload": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-upload/-/vaadin-upload-23.3.5.tgz", + "integrity": "sha512-RAxBlSuQCX61pgiYOw1q5hzW4T278EqDoY95vyv587KbDit2kPjF/CGKYSSY+thoYkRbHSDNpykKvUyxyXt76Q==", + "requires": { + "@vaadin/upload": "23.3.5" + } + }, + "@vaadin/vaadin-usage-statistics": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.2.tgz", + "integrity": "sha512-xKs1PvRfTXsG0eWWcImLXWjv7D+f1vfoIvovppv6pZ5QX8xgcxWUdNgERlOOdGt3CTuxQXukTBW3+Qfva+OXSg==", + "requires": { + "@vaadin/vaadin-development-mode-detector": "2.0.5" + } + }, + "@vaadin/vaadin-virtual-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-virtual-list/-/vaadin-virtual-list-23.3.5.tgz", + "integrity": "sha512-bbQP4llCMkoZi9oV708DEZ5X6hdhxAmV5ms9WhSmmgC2sSWULGsgrCgsLwMDY9E+qiLO649QegTaZoowrkXjgg==", + "requires": { + "@vaadin/virtual-list": "23.3.5" + } + }, + "@vaadin/vertical-layout": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/vertical-layout/-/vertical-layout-23.3.5.tgz", + "integrity": "sha512-oBvARp/7L4FdepqKSZckS7FWyBipD22fVqItW+pgAjrJx2d2A685s4W6/GyDWvYvc6/X15Lg8Xo9KoEo4q5gOw==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@vaadin/virtual-list": { + "version": "23.3.5", + "resolved": "https://registry.npmjs.org/@vaadin/virtual-list/-/virtual-list-23.3.5.tgz", + "integrity": "sha512-T3FXwF0oksGaDHM5mh9eTg1QylD91fIAm8HmAvQ4zE2f01jlnIBmeoAvKEoSkBcNKjIdYZzjXRyBXGTju90Acw==", + "requires": { + "@polymer/polymer": "3.5.1", + "@vaadin/component-base": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5" + } + }, + "@webcomponents/shadycss": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webcomponents/shadycss/-/shadycss-1.11.1.tgz", + "integrity": "sha512-qSok/oMynEgS99wFY5fKT6cR1y64i01RkHGYOspkh2JQsLSM8pjciER+gu3fqTx589y/7LoSuyB5G9Rh7dyXaQ==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "construct-style-sheets-polyfill": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/construct-style-sheets-polyfill/-/construct-style-sheets-polyfill-3.1.0.tgz", + "integrity": "sha512-HBLKP0chz8BAY6rBdzda11c3wAZeCZ+kIG4weVC2NM3AXzxx09nhe8t0SQNdloAvg5GLuHwq/0SPOOSPvtCcKw==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "core-js-compat": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", + "dev": true, + "requires": { + "browserslist": "^4.21.4" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "dev": true + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "lit": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", + "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "requires": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.2.0", + "lit-html": "^2.6.0" + } + }, + "lit-element": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.2.2.tgz", + "integrity": "sha512-6ZgxBR9KNroqKb6+htkyBwD90XGRiqKDHVrW/Eh0EZ+l+iC+u+v+w3/BA5NGi4nizAVHGYvQBHUDuSmLjPp7NQ==", + "requires": { + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.2.0" + } + }, + "lit-html": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.6.1.tgz", + "integrity": "sha512-Z3iw+E+3KKFn9t2YKNjsXNEu/LRLI98mtH/C6lnFg7kvaqPIzPn124Yd4eT/43lyqrejpc5Wb6BHq3fdv4S8Rw==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mutexify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", + "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", + "dev": true, + "requires": { + "queue-tick": "^1.0.0" + } + }, + "nanobench": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", + "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2", + "chalk": "^1.1.3", + "mutexify": "^1.1.0", + "pretty-hrtime": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-releases": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", + "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-brotli": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-brotli/-/rollup-plugin-brotli-3.1.0.tgz", + "integrity": "sha512-vXRPVd9B1x+aaXeBdmLKNNsai9AH3o0Qikf4u0m1icKqgi3qVA4UhOfwGaPYoAHML1GLMUnR//PDhiMHXN/M6g==", + "dev": true + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true + }, + "strip-css-comments": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-css-comments/-/strip-css-comments-5.0.0.tgz", + "integrity": "sha512-943vUh0ZxvxO6eK+TzY2F4nVN7a+ZdRK4KIdwHaGMvMrXTrAsJBRudOR3Zi0bLTuVSbF0CQXis4uw04uCabWkg==", + "dev": true, + "requires": { + "is-regexp": "^3.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true + } + } + }, + "terser": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "transform-ast": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "convert-source-map": "^1.5.1", + "dash-ast": "^1.0.0", + "is-buffer": "^2.0.0", + "magic-string": "^0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "^2.1.1" + }, + "dependencies": { + "magic-string": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.1" + } + } + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vite-plugin-checker": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.5.1.tgz", + "integrity": "sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "ansi-escapes": "^4.3.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.1", + "commander": "^8.0.0", + "fast-glob": "^3.2.7", + "lodash.debounce": "^4.0.8", + "lodash.pick": "^4.4.0", + "npm-run-path": "^4.0.1", + "strip-ansi": "^6.0.0", + "tiny-invariant": "^1.1.0", + "vscode-languageclient": "^7.0.0", + "vscode-languageserver": "^7.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-uri": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vscode-jsonrpc": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", + "dev": true + }, + "vscode-languageclient": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz", + "integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==", + "dev": true, + "requires": { + "minimatch": "^3.0.4", + "semver": "^7.3.4", + "vscode-languageserver-protocol": "3.16.0" + } + }, + "vscode-languageserver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.16.0" + } + }, + "vscode-languageserver-protocol": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", + "dev": true, + "requires": { + "vscode-jsonrpc": "6.0.0", + "vscode-languageserver-types": "3.16.0" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", + "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", + "dev": true + }, + "vscode-languageserver-types": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==", + "dev": true + }, + "vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "dev": true, + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "dev": true, + "requires": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "dependencies": { + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "requires": { + "whatwg-url": "^7.0.0" + } + } + } + }, + "workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==", + "dev": true + }, + "workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dev": true, + "requires": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "dev": true, + "requires": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dev": true, + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "dev": true, + "requires": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dev": true, + "requires": { + "workbox-core": "6.5.4" + } + }, + "workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "dev": true, + "requires": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==", + "dev": true + }, + "workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "dev": true, + "requires": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d3f116f --- /dev/null +++ b/package.json @@ -0,0 +1,360 @@ +{ + "name": "no-name", + "license": "UNLICENSED", + "dependencies": { + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/iron-list": "3.1.0", + "@polymer/iron-meta": "3.0.1", + "@polymer/iron-resizable-behavior": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/accordion": "23.3.5", + "@vaadin/app-layout": "23.3.5", + "@vaadin/avatar": "23.3.5", + "@vaadin/avatar-group": "23.3.5", + "@vaadin/bundles": "23.3.5", + "@vaadin/button": "23.3.5", + "@vaadin/checkbox": "23.3.5", + "@vaadin/checkbox-group": "23.3.5", + "@vaadin/combo-box": "23.3.5", + "@vaadin/common-frontend": "0.0.17", + "@vaadin/component-base": "23.3.5", + "@vaadin/confirm-dialog": "23.3.5", + "@vaadin/context-menu": "23.3.5", + "@vaadin/custom-field": "23.3.5", + "@vaadin/date-picker": "23.3.5", + "@vaadin/date-time-picker": "23.3.5", + "@vaadin/details": "23.3.5", + "@vaadin/dialog": "23.3.5", + "@vaadin/email-field": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/field-highlighter": "23.3.5", + "@vaadin/form-layout": "23.3.5", + "@vaadin/grid": "23.3.5", + "@vaadin/horizontal-layout": "23.3.5", + "@vaadin/icon": "23.3.5", + "@vaadin/icons": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/integer-field": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/login": "23.3.5", + "@vaadin/menu-bar": "23.3.5", + "@vaadin/message-input": "23.3.5", + "@vaadin/message-list": "23.3.5", + "@vaadin/multi-select-combo-box": "23.3.5", + "@vaadin/notification": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/polymer-legacy-adapter": "23.3.5", + "@vaadin/progress-bar": "23.3.5", + "@vaadin/radio-group": "23.3.5", + "@vaadin/router": "1.7.4", + "@vaadin/scroller": "23.3.5", + "@vaadin/select": "23.3.5", + "@vaadin/split-layout": "23.3.5", + "@vaadin/tabs": "23.3.5", + "@vaadin/tabsheet": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/time-picker": "23.3.5", + "@vaadin/tooltip": "23.3.5", + "@vaadin/upload": "23.3.5", + "@vaadin/vaadin-accordion": "23.3.5", + "@vaadin/vaadin-app-layout": "23.3.5", + "@vaadin/vaadin-avatar": "23.3.5", + "@vaadin/vaadin-button": "23.3.5", + "@vaadin/vaadin-checkbox": "23.3.5", + "@vaadin/vaadin-combo-box": "23.3.5", + "@vaadin/vaadin-confirm-dialog": "23.3.5", + "@vaadin/vaadin-context-menu": "23.3.5", + "@vaadin/vaadin-custom-field": "23.3.5", + "@vaadin/vaadin-date-picker": "23.3.5", + "@vaadin/vaadin-date-time-picker": "23.3.5", + "@vaadin/vaadin-details": "23.3.5", + "@vaadin/vaadin-development-mode-detector": "2.0.5", + "@vaadin/vaadin-dialog": "23.3.5", + "@vaadin/vaadin-form-layout": "23.3.5", + "@vaadin/vaadin-grid": "23.3.5", + "@vaadin/vaadin-icon": "23.3.5", + "@vaadin/vaadin-icons": "23.3.5", + "@vaadin/vaadin-item": "23.3.5", + "@vaadin/vaadin-list-box": "23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-login": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-menu-bar": "23.3.5", + "@vaadin/vaadin-messages": "23.3.5", + "@vaadin/vaadin-notification": "23.3.5", + "@vaadin/vaadin-ordered-layout": "23.3.5", + "@vaadin/vaadin-overlay": "23.3.5", + "@vaadin/vaadin-progress-bar": "23.3.5", + "@vaadin/vaadin-radio-button": "23.3.5", + "@vaadin/vaadin-select": "23.3.5", + "@vaadin/vaadin-split-layout": "23.3.5", + "@vaadin/vaadin-tabs": "23.3.5", + "@vaadin/vaadin-template-renderer": "23.3.5", + "@vaadin/vaadin-text-field": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "@vaadin/vaadin-time-picker": "23.3.5", + "@vaadin/vaadin-upload": "23.3.5", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-virtual-list": "23.3.5", + "@vaadin/vertical-layout": "23.3.5", + "@vaadin/virtual-list": "23.3.5", + "construct-style-sheets-polyfill": "3.1.0", + "date-fns": "2.29.3", + "lit": "2.6.1" + }, + "devDependencies": { + "@rollup/plugin-replace": "3.1.0", + "@rollup/pluginutils": "4.1.0", + "async": "3.2.2", + "glob": "7.2.3", + "mkdirp": "1.0.4", + "rollup-plugin-brotli": "3.1.0", + "strip-css-comments": "5.0.0", + "transform-ast": "2.4.4", + "typescript": "4.9.3", + "vite": "3.2.5", + "vite-plugin-checker": "0.5.1", + "workbox-build": "6.5.4", + "workbox-core": "6.5.4", + "workbox-precaching": "6.5.4" + }, + "vaadin": { + "dependencies": { + "@polymer/iron-icon": "3.0.1", + "@polymer/iron-iconset-svg": "3.0.1", + "@polymer/iron-list": "3.1.0", + "@polymer/iron-meta": "3.0.1", + "@polymer/iron-resizable-behavior": "3.0.1", + "@polymer/polymer": "3.5.1", + "@vaadin/accordion": "23.3.5", + "@vaadin/app-layout": "23.3.5", + "@vaadin/avatar": "23.3.5", + "@vaadin/avatar-group": "23.3.5", + "@vaadin/bundles": "23.3.5", + "@vaadin/button": "23.3.5", + "@vaadin/checkbox": "23.3.5", + "@vaadin/checkbox-group": "23.3.5", + "@vaadin/combo-box": "23.3.5", + "@vaadin/common-frontend": "0.0.17", + "@vaadin/component-base": "23.3.5", + "@vaadin/confirm-dialog": "23.3.5", + "@vaadin/context-menu": "23.3.5", + "@vaadin/custom-field": "23.3.5", + "@vaadin/date-picker": "23.3.5", + "@vaadin/date-time-picker": "23.3.5", + "@vaadin/details": "23.3.5", + "@vaadin/dialog": "23.3.5", + "@vaadin/email-field": "23.3.5", + "@vaadin/field-base": "23.3.5", + "@vaadin/field-highlighter": "23.3.5", + "@vaadin/form-layout": "23.3.5", + "@vaadin/grid": "23.3.5", + "@vaadin/horizontal-layout": "23.3.5", + "@vaadin/icon": "23.3.5", + "@vaadin/icons": "23.3.5", + "@vaadin/input-container": "23.3.5", + "@vaadin/integer-field": "23.3.5", + "@vaadin/item": "23.3.5", + "@vaadin/list-box": "23.3.5", + "@vaadin/lit-renderer": "23.3.5", + "@vaadin/login": "23.3.5", + "@vaadin/menu-bar": "23.3.5", + "@vaadin/message-input": "23.3.5", + "@vaadin/message-list": "23.3.5", + "@vaadin/multi-select-combo-box": "23.3.5", + "@vaadin/notification": "23.3.5", + "@vaadin/number-field": "23.3.5", + "@vaadin/password-field": "23.3.5", + "@vaadin/polymer-legacy-adapter": "23.3.5", + "@vaadin/progress-bar": "23.3.5", + "@vaadin/radio-group": "23.3.5", + "@vaadin/router": "1.7.4", + "@vaadin/scroller": "23.3.5", + "@vaadin/select": "23.3.5", + "@vaadin/split-layout": "23.3.5", + "@vaadin/tabs": "23.3.5", + "@vaadin/tabsheet": "23.3.5", + "@vaadin/text-area": "23.3.5", + "@vaadin/text-field": "23.3.5", + "@vaadin/time-picker": "23.3.5", + "@vaadin/tooltip": "23.3.5", + "@vaadin/upload": "23.3.5", + "@vaadin/vaadin-accordion": "23.3.5", + "@vaadin/vaadin-app-layout": "23.3.5", + "@vaadin/vaadin-avatar": "23.3.5", + "@vaadin/vaadin-button": "23.3.5", + "@vaadin/vaadin-checkbox": "23.3.5", + "@vaadin/vaadin-combo-box": "23.3.5", + "@vaadin/vaadin-confirm-dialog": "23.3.5", + "@vaadin/vaadin-context-menu": "23.3.5", + "@vaadin/vaadin-custom-field": "23.3.5", + "@vaadin/vaadin-date-picker": "23.3.5", + "@vaadin/vaadin-date-time-picker": "23.3.5", + "@vaadin/vaadin-details": "23.3.5", + "@vaadin/vaadin-development-mode-detector": "2.0.5", + "@vaadin/vaadin-dialog": "23.3.5", + "@vaadin/vaadin-form-layout": "23.3.5", + "@vaadin/vaadin-grid": "23.3.5", + "@vaadin/vaadin-icon": "23.3.5", + "@vaadin/vaadin-icons": "23.3.5", + "@vaadin/vaadin-item": "23.3.5", + "@vaadin/vaadin-list-box": "23.3.5", + "@vaadin/vaadin-list-mixin": "23.3.5", + "@vaadin/vaadin-login": "23.3.5", + "@vaadin/vaadin-lumo-styles": "23.3.5", + "@vaadin/vaadin-material-styles": "23.3.5", + "@vaadin/vaadin-menu-bar": "23.3.5", + "@vaadin/vaadin-messages": "23.3.5", + "@vaadin/vaadin-notification": "23.3.5", + "@vaadin/vaadin-ordered-layout": "23.3.5", + "@vaadin/vaadin-overlay": "23.3.5", + "@vaadin/vaadin-progress-bar": "23.3.5", + "@vaadin/vaadin-radio-button": "23.3.5", + "@vaadin/vaadin-select": "23.3.5", + "@vaadin/vaadin-split-layout": "23.3.5", + "@vaadin/vaadin-tabs": "23.3.5", + "@vaadin/vaadin-template-renderer": "23.3.5", + "@vaadin/vaadin-text-field": "23.3.5", + "@vaadin/vaadin-themable-mixin": "23.3.5", + "@vaadin/vaadin-time-picker": "23.3.5", + "@vaadin/vaadin-upload": "23.3.5", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vaadin-virtual-list": "23.3.5", + "@vaadin/vertical-layout": "23.3.5", + "@vaadin/virtual-list": "23.3.5", + "construct-style-sheets-polyfill": "3.1.0", + "date-fns": "2.29.3", + "lit": "2.6.1" + }, + "devDependencies": { + "@rollup/plugin-replace": "3.1.0", + "@rollup/pluginutils": "4.1.0", + "async": "3.2.2", + "glob": "7.2.3", + "mkdirp": "1.0.4", + "rollup-plugin-brotli": "3.1.0", + "strip-css-comments": "5.0.0", + "transform-ast": "2.4.4", + "typescript": "4.9.3", + "vite": "3.2.5", + "vite-plugin-checker": "0.5.1", + "workbox-build": "6.5.4", + "workbox-core": "6.5.4", + "workbox-precaching": "6.5.4" + }, + "hash": "4fbd84d097de8f423b32ad784ed7600eba86a880677dae141a768b1c60913627" + }, + "overrides": { + "@vaadin/bundles": "$@vaadin/bundles", + "@vaadin/accordion": "$@vaadin/accordion", + "@vaadin/app-layout": "$@vaadin/app-layout", + "@vaadin/avatar": "$@vaadin/avatar", + "@vaadin/avatar-group": "$@vaadin/avatar-group", + "@vaadin/button": "$@vaadin/button", + "@vaadin/checkbox": "$@vaadin/checkbox", + "@vaadin/checkbox-group": "$@vaadin/checkbox-group", + "@vaadin/combo-box": "$@vaadin/combo-box", + "@vaadin/component-base": "$@vaadin/component-base", + "@vaadin/confirm-dialog": "$@vaadin/confirm-dialog", + "@vaadin/context-menu": "$@vaadin/context-menu", + "@vaadin/custom-field": "$@vaadin/custom-field", + "@vaadin/date-picker": "$@vaadin/date-picker", + "@vaadin/date-time-picker": "$@vaadin/date-time-picker", + "@vaadin/details": "$@vaadin/details", + "@vaadin/dialog": "$@vaadin/dialog", + "@vaadin/email-field": "$@vaadin/email-field", + "@vaadin/field-base": "$@vaadin/field-base", + "@vaadin/field-highlighter": "$@vaadin/field-highlighter", + "@vaadin/form-layout": "$@vaadin/form-layout", + "@vaadin/grid": "$@vaadin/grid", + "@vaadin/horizontal-layout": "$@vaadin/horizontal-layout", + "@vaadin/icon": "$@vaadin/icon", + "@vaadin/icons": "$@vaadin/icons", + "@vaadin/input-container": "$@vaadin/input-container", + "@vaadin/integer-field": "$@vaadin/integer-field", + "@polymer/iron-icon": "$@polymer/iron-icon", + "@polymer/iron-iconset-svg": "$@polymer/iron-iconset-svg", + "@polymer/iron-list": "$@polymer/iron-list", + "@polymer/iron-meta": "$@polymer/iron-meta", + "@polymer/iron-resizable-behavior": "$@polymer/iron-resizable-behavior", + "@vaadin/item": "$@vaadin/item", + "@vaadin/list-box": "$@vaadin/list-box", + "@vaadin/lit-renderer": "$@vaadin/lit-renderer", + "@vaadin/login": "$@vaadin/login", + "@vaadin/menu-bar": "$@vaadin/menu-bar", + "@vaadin/message-input": "$@vaadin/message-input", + "@vaadin/message-list": "$@vaadin/message-list", + "@vaadin/multi-select-combo-box": "$@vaadin/multi-select-combo-box", + "@vaadin/notification": "$@vaadin/notification", + "@vaadin/number-field": "$@vaadin/number-field", + "@vaadin/password-field": "$@vaadin/password-field", + "@vaadin/polymer-legacy-adapter": "$@vaadin/polymer-legacy-adapter", + "@vaadin/progress-bar": "$@vaadin/progress-bar", + "@vaadin/radio-group": "$@vaadin/radio-group", + "@vaadin/scroller": "$@vaadin/scroller", + "@vaadin/select": "$@vaadin/select", + "@vaadin/split-layout": "$@vaadin/split-layout", + "@vaadin/tabs": "$@vaadin/tabs", + "@vaadin/tabsheet": "$@vaadin/tabsheet", + "@vaadin/text-area": "$@vaadin/text-area", + "@vaadin/text-field": "$@vaadin/text-field", + "@vaadin/time-picker": "$@vaadin/time-picker", + "@vaadin/tooltip": "$@vaadin/tooltip", + "@vaadin/upload": "$@vaadin/upload", + "@vaadin/vaadin-accordion": "$@vaadin/vaadin-accordion", + "@vaadin/vaadin-app-layout": "$@vaadin/vaadin-app-layout", + "@vaadin/vaadin-avatar": "$@vaadin/vaadin-avatar", + "@vaadin/vaadin-button": "$@vaadin/vaadin-button", + "@vaadin/vaadin-checkbox": "$@vaadin/vaadin-checkbox", + "@vaadin/vaadin-combo-box": "$@vaadin/vaadin-combo-box", + "@vaadin/vaadin-confirm-dialog": "$@vaadin/vaadin-confirm-dialog", + "@vaadin/vaadin-context-menu": "$@vaadin/vaadin-context-menu", + "@vaadin/vaadin-custom-field": "$@vaadin/vaadin-custom-field", + "@vaadin/vaadin-date-picker": "$@vaadin/vaadin-date-picker", + "@vaadin/vaadin-date-time-picker": "$@vaadin/vaadin-date-time-picker", + "@vaadin/vaadin-details": "$@vaadin/vaadin-details", + "@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector", + "@vaadin/vaadin-dialog": "$@vaadin/vaadin-dialog", + "@vaadin/vaadin-form-layout": "$@vaadin/vaadin-form-layout", + "@vaadin/vaadin-grid": "$@vaadin/vaadin-grid", + "@vaadin/vaadin-icon": "$@vaadin/vaadin-icon", + "@vaadin/vaadin-icons": "$@vaadin/vaadin-icons", + "@vaadin/vaadin-item": "$@vaadin/vaadin-item", + "@vaadin/vaadin-list-box": "$@vaadin/vaadin-list-box", + "@vaadin/vaadin-list-mixin": "$@vaadin/vaadin-list-mixin", + "@vaadin/vaadin-login": "$@vaadin/vaadin-login", + "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles", + "@vaadin/vaadin-material-styles": "$@vaadin/vaadin-material-styles", + "@vaadin/vaadin-menu-bar": "$@vaadin/vaadin-menu-bar", + "@vaadin/vaadin-messages": "$@vaadin/vaadin-messages", + "@vaadin/vaadin-notification": "$@vaadin/vaadin-notification", + "@vaadin/vaadin-ordered-layout": "$@vaadin/vaadin-ordered-layout", + "@vaadin/vaadin-overlay": "$@vaadin/vaadin-overlay", + "@vaadin/vaadin-progress-bar": "$@vaadin/vaadin-progress-bar", + "@vaadin/vaadin-radio-button": "$@vaadin/vaadin-radio-button", + "@vaadin/router": "$@vaadin/router", + "@vaadin/vaadin-select": "$@vaadin/vaadin-select", + "@vaadin/vaadin-split-layout": "$@vaadin/vaadin-split-layout", + "@vaadin/vaadin-tabs": "$@vaadin/vaadin-tabs", + "@vaadin/vaadin-template-renderer": "$@vaadin/vaadin-template-renderer", + "@vaadin/vaadin-text-field": "$@vaadin/vaadin-text-field", + "@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin", + "@vaadin/vaadin-time-picker": "$@vaadin/vaadin-time-picker", + "@vaadin/vaadin-upload": "$@vaadin/vaadin-upload", + "@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics", + "@vaadin/vaadin-virtual-list": "$@vaadin/vaadin-virtual-list", + "@vaadin/vertical-layout": "$@vaadin/vertical-layout", + "@vaadin/virtual-list": "$@vaadin/virtual-list", + "@vaadin/common-frontend": "$@vaadin/common-frontend", + "construct-style-sheets-polyfill": "$construct-style-sheets-polyfill", + "lit": "$lit", + "@polymer/polymer": "$@polymer/polymer", + "date-fns": "$date-fns" + } +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5ad8d6e --- /dev/null +++ b/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.7.8 + + + edu.janmod + SvarTalk + 0.0.1-SNAPSHOT + SvarTalk + Projekt komunikatora + + 17 + 23.3.5 + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + com.vaadin + vaadin-spring-boot-starter + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.h2database + h2 + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + com.vaadin + vaadin-bom + ${vaadin.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + production + + + + com.vaadin + vaadin-maven-plugin + ${vaadin.version} + + + frontend + compile + + prepare-frontend + build-frontend + + + true + + + + + + + + + + diff --git a/src/main/java/edu/janmod/SvarTalk/MainView.java b/src/main/java/edu/janmod/SvarTalk/MainView.java new file mode 100644 index 0000000..b7019ee --- /dev/null +++ b/src/main/java/edu/janmod/SvarTalk/MainView.java @@ -0,0 +1,78 @@ +package edu.janmod.SvarTalk; + +import com.vaadin.flow.component.Component; +import com.vaadin.flow.component.Key; +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.grid.Grid; +import com.vaadin.flow.component.html.Paragraph; +import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import com.vaadin.flow.component.textfield.EmailField; +import com.vaadin.flow.component.textfield.TextField; +import com.vaadin.flow.component.html.H1; +import com.vaadin.flow.component.orderedlayout.VerticalLayout; +import com.vaadin.flow.data.binder.Binder; +import com.vaadin.flow.data.binder.ValidationException; +import com.vaadin.flow.router.Route; + +@Route("") +public class MainView extends VerticalLayout { + + private PersonRepository repository; + private TextField firstName = new TextField("Imię"); + private TextField lastName = new TextField("Nazwisko"); + private EmailField email = new EmailField("Email"); + private Grid grid = new Grid<>(Person.class); + private Binder binder = new Binder<>(Person.class); + + public MainView(PersonRepository repository) { + this.repository = repository; + + grid.setColumns("firstName", "lastName", "email"); + add(getForm(), grid); + refreshGrid(); + + + /*var button = new Button("Przycisk"); + var textField = new TextField(); + + add(new HorizontalLayout(textField, button)); + + button.addClickListener(e -> { + add(new Paragraph("Hello, " + textField.getValue())); + textField.clear(); + });*/ + /* add(new H1("Hello!")); */ + } + + private Component getForm() { + var layout = new HorizontalLayout(); + layout.setAlignItems(Alignment.BASELINE); + + var addButton = new Button("Add"); + addButton.addClickShortcut(Key.ENTER); + addButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + layout.add(firstName, lastName, email, addButton); + + binder.bindInstanceFields(this); + + addButton.addClickListener(click -> { + try{ + var person = new Person(); + binder.writeBean(person); + repository.save(person); + binder.readBean(new Person()); + refreshGrid(); + + }catch(ValidationException e) { + + } + }); + + return layout; + } + + private void refreshGrid() { + grid.setItems(repository.findAll()); + } +} diff --git a/src/main/java/edu/janmod/SvarTalk/Person.java b/src/main/java/edu/janmod/SvarTalk/Person.java new file mode 100644 index 0000000..53861e3 --- /dev/null +++ b/src/main/java/edu/janmod/SvarTalk/Person.java @@ -0,0 +1,41 @@ +package edu.janmod.SvarTalk; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Person { + @Id + @GeneratedValue + private Long id; + + private String firstName; + private String lastName; + private String email; + + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } +} diff --git a/src/main/java/edu/janmod/SvarTalk/PersonRepository.java b/src/main/java/edu/janmod/SvarTalk/PersonRepository.java new file mode 100644 index 0000000..42233bf --- /dev/null +++ b/src/main/java/edu/janmod/SvarTalk/PersonRepository.java @@ -0,0 +1,7 @@ +package edu.janmod.SvarTalk; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PersonRepository extends JpaRepository { + +} diff --git a/src/main/java/edu/janmod/SvarTalk/SvarTalkApplication.java b/src/main/java/edu/janmod/SvarTalk/SvarTalkApplication.java new file mode 100644 index 0000000..e99e246 --- /dev/null +++ b/src/main/java/edu/janmod/SvarTalk/SvarTalkApplication.java @@ -0,0 +1,13 @@ +package edu.janmod.SvarTalk; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SvarTalkApplication { + + public static void main(String[] args) { + SpringApplication.run(SvarTalkApplication.class, args); + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/src/test/java/edu/janmod/SvarTalk/SvarTalkApplicationTests.java b/src/test/java/edu/janmod/SvarTalk/SvarTalkApplicationTests.java new file mode 100644 index 0000000..effaed0 --- /dev/null +++ b/src/test/java/edu/janmod/SvarTalk/SvarTalkApplicationTests.java @@ -0,0 +1,13 @@ +package edu.janmod.SvarTalk; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SvarTalkApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..770b33f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,37 @@ +// This TypeScript configuration file is generated by vaadin-maven-plugin. +// This is needed for TypeScript compiler to compile your TypeScript code in the project. +// It is recommended to commit this file to the VCS. +// You might want to change the configurations to fit your preferences +// For more information about the configurations, please refer to http://www.typescriptlang.org/docs/handbook/tsconfig-json.html +{ + "flow_version": "23.3.0.1", + "compilerOptions": { + "sourceMap": true, + "jsx": "react-jsx", + "inlineSources": true, + "module": "esNext", + "target": "es2020", + "moduleResolution": "node", + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "experimentalDecorators": true, + "useDefineForClassFields": false, + "baseUrl": "frontend", + "paths": { + "@vaadin/flow-frontend": ["generated/jar-resources"], + "@vaadin/flow-frontend/*": ["generated/jar-resources/*"], + "Frontend/*": ["*"] + } + }, + "include": [ + "frontend/**/*", + "types.d.ts" + ], + "exclude": [] +} diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..250302b --- /dev/null +++ b/types.d.ts @@ -0,0 +1,10 @@ +// This TypeScript modules definition file is generated by vaadin-maven-plugin. +// You can not directly import your different static files into TypeScript, +// This is needed for TypeScript compiler to declare and export as a TypeScript module. +// It is recommended to commit this file to the VCS. +// You might want to change the configurations to fit your preferences +declare module '*.css' { + import { CSSResultGroup } from 'lit'; + const content: CSSResultGroup; + export default content; +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..4d6a022 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,9 @@ +import { UserConfigFn } from 'vite'; +import { overrideVaadinConfig } from './vite.generated'; + +const customConfig: UserConfigFn = (env) => ({ + // Here you can add custom Vite parameters + // https://vitejs.dev/config/ +}); + +export default overrideVaadinConfig(customConfig); diff --git a/vite.generated.ts b/vite.generated.ts new file mode 100644 index 0000000..0c90ddf --- /dev/null +++ b/vite.generated.ts @@ -0,0 +1,639 @@ +/** + * NOTICE: this is an auto-generated file + * + * This file has been generated by the `flow:prepare-frontend` maven goal. + * This file will be overwritten on every run. Any custom changes should be made to vite.config.ts + */ +import path from 'path'; +import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'fs'; +import * as net from 'net'; + +import { processThemeResources } from './target/plugins/application-theme-plugin/theme-handle.js'; +import { rewriteCssUrls } from './target/plugins/theme-loader/theme-loader-utils.js'; +import settings from './target/vaadin-dev-server-settings.json'; +import { defineConfig, mergeConfig, PluginOption, ResolvedConfig, UserConfigFn, OutputOptions, AssetInfo, ChunkInfo } from 'vite'; +import { getManifest } from 'workbox-build'; + +import * as rollup from 'rollup'; +import brotli from 'rollup-plugin-brotli'; +import replace from '@rollup/plugin-replace'; +import checker from 'vite-plugin-checker'; +import postcssLit from './target/plugins/rollup-plugin-postcss-lit-custom/rollup-plugin-postcss-lit.js'; + +const appShellUrl = '.'; + +const frontendFolder = path.resolve(__dirname, settings.frontendFolder); +const themeFolder = path.resolve(frontendFolder, settings.themeFolder); +const statsFolder = path.resolve(__dirname, settings.statsOutput); +const frontendBundleFolder = path.resolve(__dirname, settings.frontendBundleOutput); +const jarResourcesFolder = path.resolve(__dirname, settings.jarResourcesFolder); +const generatedFlowImportsFolder = path.resolve(__dirname, settings.generatedFlowImportsFolder); +const themeResourceFolder = path.resolve(__dirname, settings.themeResourceFolder); + +const statsFile = path.resolve(statsFolder, 'stats.json'); + +const projectStaticAssetsFolders = [ + path.resolve(__dirname, 'src', 'main', 'resources', 'META-INF', 'resources'), + path.resolve(__dirname, 'src', 'main', 'resources', 'static'), + frontendFolder +]; + +// Folders in the project which can contain application themes +const themeProjectFolders = projectStaticAssetsFolders.map((folder) => path.resolve(folder, settings.themeFolder)); + +const themeOptions = { + devMode: false, + // The following matches folder 'frontend/generated/themes/' + // (not 'frontend/themes') for theme in JAR that is copied there + themeResourceFolder: path.resolve(themeResourceFolder, settings.themeFolder), + themeProjectFolders: themeProjectFolders, + projectStaticAssetsOutputFolder: path.resolve(__dirname, settings.staticOutput), + frontendGeneratedFolder: path.resolve(frontendFolder, settings.generatedFolder) +}; + +const hasExportedWebComponents = existsSync(path.resolve(frontendFolder, 'web-component.html')); + +// Block debug and trace logs. +console.trace = () => {}; +console.debug = () => {}; + +function injectManifestToSWPlugin(): rollup.Plugin { + const rewriteManifestIndexHtmlUrl = (manifest) => { + const indexEntry = manifest.find((entry) => entry.url === 'index.html'); + if (indexEntry) { + indexEntry.url = appShellUrl; + } + + return { manifest, warnings: [] }; + }; + + return { + name: 'vaadin:inject-manifest-to-sw', + async transform(code, id) { + if (/sw\.(ts|js)$/.test(id)) { + const { manifestEntries } = await getManifest({ + globDirectory: frontendBundleFolder, + globPatterns: ['**/*'], + globIgnores: ['**/*.br'], + manifestTransforms: [rewriteManifestIndexHtmlUrl], + maximumFileSizeToCacheInBytes: 100 * 1024 * 1024, // 100mb, + }); + + return code.replace('self.__WB_MANIFEST', JSON.stringify(manifestEntries)); + } + } + } +} + +function buildSWPlugin(opts): PluginOption { + let config: ResolvedConfig; + const devMode = opts.devMode; + + const swObj = {} + + async function build(action: 'generate' | 'write', additionalPlugins: rollup.Plugin[] = []) { + const includedPluginNames = [ + 'alias', + 'vite:resolve', + 'vite:esbuild', + 'rollup-plugin-dynamic-import-variables', + 'vite:esbuild-transpile', + 'vite:terser', + ] + const plugins: rollup.Plugin[] = config.plugins.filter((p) => { + return includedPluginNames.includes(p.name) + }); + plugins.push( + replace({ + values: { + 'process.env.NODE_ENV': JSON.stringify(config.mode), + ...config.define, + }, + preventAssignment: true + }) + ); + if (additionalPlugins) { + plugins.push(...additionalPlugins); + } + const bundle = await rollup.rollup({ + input: path.resolve(settings.clientServiceWorkerSource), + plugins + }); + + try { + return await bundle[action]({ + file: path.resolve(frontendBundleFolder, 'sw.js'), + format: 'es', + exports: 'none', + sourcemap: config.command === 'serve' || config.build.sourcemap, + inlineDynamicImports: true, + }); + } finally { + await bundle.close(); + } + } + + return { + name: 'vaadin:build-sw', + enforce: 'post', + async configResolved(resolvedConfig) { + config = resolvedConfig; + }, + async buildStart() { + if (devMode) { + const { output } = await build('generate'); + swObj.code = output[0].code; + swObj.map = output[0].map; + } + }, + async load(id) { + if (id.endsWith('sw.js')) { + return ''; + } + }, + async transform(_code, id) { + if (id.endsWith('sw.js')) { + return swObj; + } + }, + async closeBundle() { + await build('write', [ + injectManifestToSWPlugin(), + brotli(), + ]); + } + } +} + +function statsExtracterPlugin(): PluginOption { + return { + name: 'vaadin:stats', + enforce: 'post', + async writeBundle(options: OutputOptions, bundle: { [fileName: string]: AssetInfo | ChunkInfo }) { + const modules = Object.values(bundle).flatMap((b) => (b.modules ? Object.keys(b.modules) : [])); + const nodeModulesFolders = modules.filter((id) => id.includes('node_modules')); + const npmModules = nodeModulesFolders + .map((id) => id.replace(/.*node_modules./, '')) + .map((id) => { + const parts = id.split('/'); + if (id.startsWith('@')) { + return parts[0] + '/' + parts[1]; + } else { + return parts[0]; + } + }) + .sort() + .filter((value, index, self) => self.indexOf(value) === index); + + mkdirSync(path.dirname(statsFile), { recursive: true }); + writeFileSync(statsFile, JSON.stringify({ npmModules }, null, 1)); + } + }; +} +function vaadinBundlesPlugin(): PluginOption { + type ExportInfo = + | string + | { + namespace?: string; + source: string; + }; + + type ExposeInfo = { + exports: ExportInfo[]; + }; + + type PackageInfo = { + version: string; + exposes: Record; + }; + + type BundleJson = { + packages: Record; + }; + + const disabledMessage = 'Vaadin component dependency bundles are disabled.'; + + const modulesDirectory = path.resolve(__dirname, 'node_modules').replace(/\\/g, '/'); + + let vaadinBundleJson: BundleJson; + + function parseModuleId(id: string): { packageName: string; modulePath: string } { + const [scope, scopedPackageName] = id.split('/', 3); + const packageName = scope.startsWith('@') ? `${scope}/${scopedPackageName}` : scope; + const modulePath = `.${id.substring(packageName.length)}`; + return { + packageName, + modulePath + }; + } + + function getExports(id: string): string[] | undefined { + const { packageName, modulePath } = parseModuleId(id); + const packageInfo = vaadinBundleJson.packages[packageName]; + + if (!packageInfo) return; + + const exposeInfo: ExposeInfo = packageInfo.exposes[modulePath]; + if (!exposeInfo) return; + + const exportsSet = new Set(); + for (const e of exposeInfo.exports) { + if (typeof e === 'string') { + exportsSet.add(e); + } else { + const { namespace, source } = e; + if (namespace) { + exportsSet.add(namespace); + } else { + const sourceExports = getExports(source); + if (sourceExports) { + sourceExports.forEach((e) => exportsSet.add(e)); + } + } + } + } + return Array.from(exportsSet); + } + + function getExportBinding(binding: string) { + return binding === 'default' ? '_default as default' : binding; + } + + function getImportAssigment(binding: string) { + return binding === 'default' ? 'default: _default' : binding; + } + + return { + name: 'vaadin:bundles', + enforce: 'pre', + apply(config, { command }) { + if (command !== 'serve') return false; + + try { + const vaadinBundleJsonPath = require.resolve('@vaadin/bundles/vaadin-bundle.json'); + vaadinBundleJson = JSON.parse(readFileSync(vaadinBundleJsonPath, { encoding: 'utf8' })); + } catch (e: unknown) { + if (typeof e === 'object' && (e as { code: string }).code === 'MODULE_NOT_FOUND') { + vaadinBundleJson = { packages: {} }; + console.info(`@vaadin/bundles npm package is not found, ${disabledMessage}`); + return false; + } else { + throw e; + } + } + + const versionMismatches: Array<{ name: string; bundledVersion: string; installedVersion: string }> = []; + for (const [name, packageInfo] of Object.entries(vaadinBundleJson.packages)) { + let installedVersion: string | undefined = undefined; + try { + const { version: bundledVersion } = packageInfo; + const installedPackageJsonFile = path.resolve(modulesDirectory, name, 'package.json'); + const packageJson = JSON.parse(readFileSync(installedPackageJsonFile, { encoding: 'utf8' })); + installedVersion = packageJson.version; + if (installedVersion && installedVersion !== bundledVersion) { + versionMismatches.push({ + name, + bundledVersion, + installedVersion + }); + } + } catch (_) { + // ignore package not found + } + } + if (versionMismatches.length) { + console.info(`@vaadin/bundles has version mismatches with installed packages, ${disabledMessage}`); + console.info(`Packages with version mismatches: ${JSON.stringify(versionMismatches, undefined, 2)}`); + vaadinBundleJson = { packages: {} }; + return false; + } + + return true; + }, + async config(config) { + return mergeConfig( + { + optimizeDeps: { + exclude: [ + // Vaadin bundle + '@vaadin/bundles', + ...Object.keys(vaadinBundleJson.packages) + ] + } + }, + config + ); + }, + load(rawId) { + const [path, params] = rawId.split('?'); + if (!path.startsWith(modulesDirectory)) return; + + const id = path.substring(modulesDirectory.length + 1); + const bindings = getExports(id); + if (bindings === undefined) return; + + const cacheSuffix = params ? `?${params}` : ''; + const bundlePath = `@vaadin/bundles/vaadin.js${cacheSuffix}`; + + return `import { init as VaadinBundleInit, get as VaadinBundleGet } from '${bundlePath}'; +await VaadinBundleInit('default'); +const { ${bindings.map(getImportAssigment).join(', ')} } = (await VaadinBundleGet('./node_modules/${id}'))(); +export { ${bindings.map(getExportBinding).join(', ')} };`; + } + }; +} + +function themePlugin(opts): PluginOption { + const fullThemeOptions = {...themeOptions, devMode: opts.devMode }; + return { + name: 'vaadin:theme', + config() { + processThemeResources(fullThemeOptions, console); + }, + configureServer(server) { + function handleThemeFileCreateDelete(themeFile, stats) { + if (themeFile.startsWith(themeFolder)) { + const changed = path.relative(themeFolder, themeFile) + console.debug('Theme file ' + (!!stats ? 'created' : 'deleted'), changed); + processThemeResources(fullThemeOptions, console); + } + } + server.watcher.on('add', handleThemeFileCreateDelete); + server.watcher.on('unlink', handleThemeFileCreateDelete); + }, + handleHotUpdate(context) { + const contextPath = path.resolve(context.file); + const themePath = path.resolve(themeFolder); + if (contextPath.startsWith(themePath)) { + const changed = path.relative(themePath, contextPath); + + console.debug('Theme file changed', changed); + + if (changed.startsWith(settings.themeName)) { + processThemeResources(fullThemeOptions, console); + } + } + }, + async resolveId(id, importer) { + // force theme generation if generated theme sources does not yet exist + // this may happen for example during Java hot reload when updating + // @Theme annotation value + if (path.resolve(themeOptions.frontendGeneratedFolder, "theme.js") === importer && + !existsSync(path.resolve(themeOptions.frontendGeneratedFolder, id))) { + console.debug('Generate theme file ' + id + ' not existing. Processing theme resource'); + processThemeResources(fullThemeOptions, console); + return; + } + if (!id.startsWith(settings.themeFolder)) { + return; + } + + for (const location of [themeResourceFolder, frontendFolder]) { + const result = await this.resolve(path.resolve(location, id)); + if (result) { + return result; + } + } + }, + async transform(raw, id, options) { + // rewrite urls for the application theme css files + const [bareId, query] = id.split('?'); + if (!bareId?.startsWith(themeFolder) || !bareId?.endsWith('.css')) { + return; + } + const [themeName] = bareId.substring(themeFolder.length + 1).split('/'); + return rewriteCssUrls(raw, path.dirname(bareId), path.resolve(themeFolder, themeName), console, opts); + } + }; +} +function lenientLitImportPlugin(): PluginOption { + return { + name: 'vaadin:lenient-lit-import', + async transform(code, id) { + const decoratorImports = [ + /import (.*?) from (['"])(lit\/decorators)(['"])/, + /import (.*?) from (['"])(lit-element\/decorators)(['"])/ + ]; + const directiveImports = [ + /import (.*?) from (['"])(lit\/directives\/)([^\\.]*?)(['"])/, + /import (.*?) from (['"])(lit-html\/directives\/)([^\\.]*?)(['"])/ + ]; + + decoratorImports.forEach((decoratorImport) => { + let decoratorMatch; + while ((decoratorMatch = code.match(decoratorImport))) { + console.warn( + `Warning: the file ${id} imports from '${decoratorMatch[3]}' when it should import from '${decoratorMatch[3]}.js'` + ); + code = code.replace(decoratorImport, 'import $1 from $2$3.js$4'); + } + }); + + directiveImports.forEach((directiveImport) => { + let directiveMatch; + while ((directiveMatch = code.match(directiveImport))) { + console.warn( + `Warning: the file ${id} imports from '${directiveMatch[3]}${directiveMatch[4]}' when it should import from '${directiveMatch[3]}${directiveMatch[4]}.js'` + ); + code = code.replace(directiveImport, 'import $1 from $2$3$4.js$5'); + } + }); + + return code; + } + }; +} + +function runWatchDog(watchDogPort, watchDogHost) { + const client = net.Socket(); + client.setEncoding('utf8'); + client.on('error', function (err) { + console.log('Watchdog connection error. Terminating vite process...', err); + client.destroy(); + process.exit(0); + }); + client.on('close', function () { + client.destroy(); + runWatchDog(watchDogPort, watchDogHost); + }); + + client.connect(watchDogPort, watchDogHost || 'localhost'); +} + +let spaMiddlewareForceRemoved = false; + +const allowedFrontendFolders = [ + frontendFolder, + path.resolve(generatedFlowImportsFolder), // Contains only generated-flow-imports + path.resolve(__dirname, 'node_modules') +]; + +function setHmrPortToServerPort(): PluginOption { + return { + name: 'set-hmr-port-to-server-port', + configResolved(config) { + if (config.server.strictPort && config.server.hmr !== false) { + if (config.server.hmr === true) config.server.hmr = {}; + config.server.hmr = config.server.hmr || {}; + config.server.hmr.clientPort = config.server.port; + } + } + }; +} +function showRecompileReason(): PluginOption { + return { + name: 'vaadin:why-you-compile', + handleHotUpdate(context) { + console.log('Recompiling because', context.file, 'changed'); + } + }; +} + +export const vaadinConfig: UserConfigFn = (env) => { + const devMode = env.mode === 'development'; + + if (devMode && process.env.watchDogPort) { + // Open a connection with the Java dev-mode handler in order to finish + // vite when it exits or crashes. + runWatchDog(process.env.watchDogPort, process.env.watchDogHost); + } + + return { + root: frontendFolder, + base: '', + resolve: { + alias: { + '@vaadin/flow-frontend': jarResourcesFolder, + Frontend: frontendFolder + }, + preserveSymlinks: true + }, + define: { + OFFLINE_PATH: settings.offlinePath, + VITE_ENABLED: 'true' + }, + server: { + host: '127.0.0.1', + strictPort: true, + fs: { + allow: allowedFrontendFolders + } + }, + build: { + outDir: frontendBundleFolder, + assetsDir: 'VAADIN/build', + rollupOptions: { + input: { + indexhtml: path.resolve(frontendFolder, 'index.html'), + + ...hasExportedWebComponents + ? { webcomponenthtml: path.resolve(frontendFolder, 'web-component.html') } + : {} + } + } + }, + optimizeDeps: { + entries: [ + // Pre-scan entrypoints in Vite to avoid reloading on first open + 'generated/vaadin.ts' + ], + exclude: [ + '@vaadin/router', + '@vaadin/vaadin-license-checker', + '@vaadin/vaadin-usage-statistics', + 'workbox-core', + 'workbox-precaching', + 'workbox-routing', + 'workbox-strategies' + ] + }, + plugins: [ + !devMode && brotli(), + devMode && vaadinBundlesPlugin(), + devMode && setHmrPortToServerPort(), + devMode && showRecompileReason(), + settings.offlineEnabled && buildSWPlugin({ devMode }), + !devMode && statsExtracterPlugin(), + themePlugin({devMode}), + lenientLitImportPlugin(), + postcssLit({ + include: ['**/*.css', '**/*.css\?*'], + exclude: [ + `${themeFolder}/**/*.css`, + `${themeFolder}/**/*.css\?*`, + `${themeResourceFolder}/**/*.css`, + `${themeResourceFolder}/**/*.css\?*`, + '**/*\?html-proxy*' + ] + }), + { + name: 'vaadin:force-remove-html-middleware', + transformIndexHtml: { + enforce: 'pre', + transform(_html, { server }) { + if (server && !spaMiddlewareForceRemoved) { + server.middlewares.stack = server.middlewares.stack.filter((mw) => { + const handleName = '' + mw.handle; + return !handleName.includes('viteHtmlFallbackMiddleware'); + }); + spaMiddlewareForceRemoved = true; + } + } + } + }, + hasExportedWebComponents && { + name: 'vaadin:inject-entrypoints-to-web-component-html', + transformIndexHtml: { + enforce: 'pre', + transform(_html, { path, server }) { + if (path !== '/web-component.html') { + return; + } + + return [ + { + tag: 'script', + attrs: { type: 'module', src: `/generated/vaadin-web-component.ts` }, + injectTo: 'head' + } + ] + } + } + }, + { + name: 'vaadin:inject-entrypoints-to-index-html', + transformIndexHtml: { + enforce: 'pre', + transform(_html, { path, server }) { + if (path !== '/index.html') { + return; + } + + const scripts = []; + + if (devMode) { + scripts.push({ + tag: 'script', + attrs: { type: 'module', src: `/generated/vite-devmode.ts` }, + injectTo: 'head' + }); + } + scripts.push({ + tag: 'script', + attrs: { type: 'module', src: '/generated/vaadin.ts' }, + injectTo: 'head' + }); + return scripts; + } + } + }, + checker({ + typescript: true + }) + ] + }; +}; + +export const overrideVaadinConfig = (customConfig: UserConfigFn) => { + return defineConfig((env) => mergeConfig(vaadinConfig(env), customConfig(env))); +};